Changes
Summary
- [opt-viewer] Listify `dict_items` for Py3 indexing Summary: In Python 2, calling `dict.items()` returns an indexable `list`, whereas on Python 3 it returns a set-like `dict_items` object, which cannot be indexed. Explicitly onvert the `dict_items` object so that it can be indexed when using Python 3. In combination with D36622, D36623, and D36624, this change allows `opt-viewer.py` to exit successfully when run with Python 3.4. Test Plan: Run `opt-viewer.py` using Python 3.4 and confirm it does not encounter a runtime error when when indexing into `dict.items()`. Reviewers: anemet Reviewed By: anemet Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D36630
- [PowerPC] Revert r310346 (and followups r310356 & r310424) which introduce a miscompile bug. There appears to be a bug where the generated code to extract the sign bit doesn't work correctly for 32-bit inputs. I've replied to the original commit pointing out the problem. I think I see by inspection (and reading the manual for PPC) how to fix this, but I can't be 100% confident and I also don't know what the best way to test this is. Currently it seems nearly impossible to get the backend to hit this code path, but the patch autohr is likely in a better position to craft such test cases than I am, and based on where the bug is it should be easily done. Original commit message for r310346: """ [PowerPC] Eliminate compares - add i32 sext/zext handling for SETLE/SETGE Adds handling for SETLE/SETGE comparisons on i32 values. Furthermore, it adds the handling for the special case where RHS == 0. Differential Revision: https://reviews.llvm.org/D34048 """
Change Type | Path in Repository | Path in Workspace |
---|---|---|
![]() | /llvm/trunk/tools/opt-viewer/optrecord.py | llvm.src/tools/opt-viewer/optrecord.py |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | llvm.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesigesc.ll | llvm.src/test/CodeGen/PowerPC/testComparesigesc.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesigesi.ll | llvm.src/test/CodeGen/PowerPC/testComparesigesi.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesigess.ll | llvm.src/test/CodeGen/PowerPC/testComparesigess.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesilesc.ll | llvm.src/test/CodeGen/PowerPC/testComparesilesc.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesilesi.ll | llvm.src/test/CodeGen/PowerPC/testComparesilesi.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesiless.ll | llvm.src/test/CodeGen/PowerPC/testComparesiless.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesllgesc.ll | llvm.src/test/CodeGen/PowerPC/testComparesllgesc.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesllgesi.ll | llvm.src/test/CodeGen/PowerPC/testComparesllgesi.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesllgess.ll | llvm.src/test/CodeGen/PowerPC/testComparesllgess.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testCompareslllesc.ll | llvm.src/test/CodeGen/PowerPC/testCompareslllesc.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testCompareslllesi.ll | llvm.src/test/CodeGen/PowerPC/testCompareslllesi.ll |
![]() | /llvm/trunk/test/CodeGen/PowerPC/testComparesllless.ll | llvm.src/test/CodeGen/PowerPC/testComparesllless.ll |