llvm-project/llvm/lib/Transforms
James Molloy f01488e2bc [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
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IPO Refactor threshold computation for inline cost analysis 2016-01-14 23:16:29 +00:00
InstCombine [InstCombine] Rewrite bswap/bitreverse handling completely. 2016-01-15 09:20:19 +00:00
Instrumentation Update to use new name alignTo(). 2016-01-14 21:06:47 +00:00
ObjCARC Refactor: Simplify boolean conditional return statements in lib/Transforms/ObjCARC 2015-12-28 16:19:08 +00:00
Scalar [SROA] Also insert a bit piece expression if only one piece is needed 2016-01-14 20:06:34 +00:00
Utils [InstCombine] Rewrite bswap/bitreverse handling completely. 2016-01-15 09:20:19 +00:00
Vectorize [SLP] Vectorize the index computations of getelementptr instructions. 2016-01-14 20:46:27 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile