1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 13:33:37 +02:00
llvm-mirror/lib/Transforms/InstCombine
James Molloy 7697faf6db [InstCombine] Rewrite bswap/bitreverse handling completely.
There are several requirements that ended up with this design;
  1. Matching bitreversals is too heavyweight for InstCombine and doesn't really need to be done so early.
  2. Bitreversals and byteswaps are very related in their matching logic.
  3. We want to implement support for matching more advanced bswap/bitreverse patterns like partial bswaps/bitreverses.
  4. Bswaps are best matched early in InstCombine.

The result of these is that a new utility function is created in Transforms/Utils/Local.h that can be configured to search for bswaps, bitreverses or both. InstCombine uses it to find only bswaps, CGP uses it to find only bitreversals.

We can then extend the matching logic in one place only.

llvm-svn: 257875
2016-01-15 09:20:19 +00:00
..
CMakeLists.txt
InstCombineAddSub.cpp [InstCombine] Fix indentation. NFC. 2015-12-21 01:02:28 +00:00
InstCombineAndOrXor.cpp [InstCombine] Rewrite bswap/bitreverse handling completely. 2016-01-15 09:20:19 +00:00
InstCombineCalls.cpp [Statepoints] Refactor GCRelocateOperands into an intrinsic wrapper. NFC. 2016-01-05 04:03:00 +00:00
InstCombineCasts.cpp fix formatting; NFC 2015-12-30 18:31:30 +00:00
InstCombineCompares.cpp Revert r257164 - it has caused spec2k6 failures in LTO mode 2016-01-11 16:19:38 +00:00
InstCombineInternal.h fix typo; NFC 2016-01-06 00:23:12 +00:00
InstCombineLoadStoreAlloca.cpp [OperandBundles] Have InstCombine play nice with operand bundles 2015-12-23 09:58:41 +00:00
InstCombineMulDivRem.cpp function names start with a lower case letter ; NFC 2016-01-12 18:03:37 +00:00
InstCombinePHI.cpp [InstCombine] Teach FoldPHIArgZextsIntoPHI about EHPads 2015-11-07 00:52:53 +00:00
InstCombineSelect.cpp function names start with a lower case letter ; NFC 2016-01-12 18:03:37 +00:00
InstCombineShifts.cpp don't repeat function names in comments; NFC 2015-11-02 22:34:55 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Teach SimplifyDemandedVectorElts how to handle ConstantVector select masks with ConstantExpr elements (PR24922) 2015-10-06 10:34:53 +00:00
InstCombineVectorOps.cpp [InstCombine] insert a new shuffle in a safe place (PR25999) 2016-01-08 01:39:16 +00:00
InstructionCombining.cpp [InstructionCombining] prepareICWorklistFromFunction halts in infinite loop with instructions of token type 2016-01-04 23:28:57 +00:00
LLVMBuild.txt
Makefile