llvm-project/llvm/lib
James Molloy 90111f79f9 [SDAG] Introduce a new BITREVERSE node along with a corresponding LLVM intrinsic
Several backends have instructions to reverse the order of bits in an integer. Conceptually matching such patterns is similar to @llvm.bswap, and it was mentioned in http://reviews.llvm.org/D14234 that it would be best if these patterns were matched in InstCombine instead of reimplemented in every different target.

This patch introduces an intrinsic @llvm.bitreverse.i* that operates similarly to @llvm.bswap. For plumbing purposes there is also a new ISD node ISD::BITREVERSE, with simple expansion and promotion support.

The intention is that InstCombine's BSWAP detection logic will be extended to support BITREVERSE too, and @llvm.bitreverse intrinsics emitted (if the backend supports lowering it efficiently).

llvm-svn: 252878
2015-11-12 12:29:09 +00:00
..
Analysis [ValueTracking] Remove untested / unreachable code, NFC 2015-11-11 00:16:41 +00:00
AsmParser [IR] Add support for empty tokens 2015-11-11 21:57:16 +00:00
Bitcode [OperandBundles] Identify operand bundles with both their names and IDs 2015-11-10 20:13:15 +00:00
CodeGen [SDAG] Introduce a new BITREVERSE node along with a corresponding LLVM intrinsic 2015-11-12 12:29:09 +00:00
DebugInfo dwarfdump: Added macro support to llvm-dwarfdump tool. 2015-11-12 09:38:54 +00:00
ExecutionEngine [RuntimeDyld] Add support for R_X86_64_PC8 relocation. 2015-11-08 19:34:17 +00:00
Fuzzer output_csv libfuzzer option 2015-11-12 04:38:40 +00:00
IR [IR] Add support for empty tokens 2015-11-11 21:57:16 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LTO Add a libLTO diagnostic handler that supports lto_get_error_message API 2015-11-11 19:59:08 +00:00
LibDriver [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
LineEditor
Linker Ensure ModuleLinker materializes complete comdat groups 2015-11-10 21:09:06 +00:00
MC [MC] Use LShr for constant evaluation of ">>" on non-arm64 darwin. 2015-11-11 00:51:36 +00:00
Object [Object, MachO] Mark symbols from DATA and BSS sections as ST_Data 2015-11-12 09:40:29 +00:00
Option [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
Passes [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
ProfileData Fix problems in coding style 2015-11-12 00:32:17 +00:00
Support dwarfdump: Added macro support to llvm-dwarfdump tool. 2015-11-12 09:38:54 +00:00
TableGen [TblGen] ArrayRefize TGParser. No functional change intended. 2015-10-24 12:46:45 +00:00
Target Add AVR backend skeleton 2015-11-12 09:26:44 +00:00
Transforms Revert "Revert "[FunctionAttrs] Identify norecurse functions"" 2015-11-12 10:55:20 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00