1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Simon Pilgrim 75121ab2d6 [SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 integer scalar/vector types
An extension of D19978, this patch replaces the default BITREVERSE evaluation of individual bit masks+shifts with block mask+shifts when we have integer elements of power-of-2 bits in size.

After calling BSWAP to reverse the order of the constituent bytes (which typically follows a similar approach), every neighbouring 4-bits, 2-bits and finally 1-bit pairs are masked off and swapped over with shifts.

In doing so we can significantly reduce the number of operations required.

Differential Revision: https://reviews.llvm.org/D21578

llvm-svn: 276432
2016-07-22 16:46:25 +00:00
..
CMakeLists.txt Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
DAGCombiner.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
FastISel.cpp [FastISel] Ignore @llvm.assume. 2016-07-22 12:54:53 +00:00
FunctionLoweringInfo.cpp Swift Calling Convention: swifterror target-independent change. 2016-04-05 18:13:16 +00:00
InstrEmitter.cpp CodeGen: Use MachineInstr& in TargetLowering, NFC 2016-06-30 22:52:52 +00:00
InstrEmitter.h Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
LegalizeDAG.cpp [SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 integer scalar/vector types 2016-07-22 16:46:25 +00:00
LegalizeFloatTypes.cpp [X86] Accept SELECT op code for x86-64 fp128 type 2016-07-18 17:20:09 +00:00
LegalizeIntegerTypes.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeTypes.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeTypes.h fix documentation comments; NFC 2016-07-09 18:52:07 +00:00
LegalizeTypesGeneric.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeVectorOps.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeVectorTypes.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp Replace silly uses of 'signed' with 'int' 2016-06-21 05:10:24 +00:00
ScheduleDAGFast.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
ScheduleDAGRRList.cpp rangify; NFCI 2016-02-03 22:44:14 +00:00
ScheduleDAGSDNodes.cpp SelectionDAG: Avoid implicit iterator conversions in ScheduleDAGSDNodes, NFC 2016-07-08 19:07:09 +00:00
ScheduleDAGSDNodes.h [SelectionDAG] Remove dead code. NFC. 2015-10-15 17:54:06 +00:00
ScheduleDAGVLIW.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
SDNodeDbgValue.h Apply clang-tidy's misc-move-constructor-init throughout LLVM. 2016-05-27 14:27:24 +00:00
SelectionDAG.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
SelectionDAGBuilder.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
SelectionDAGBuilder.h Reverting r275284 due to platform-specific test failures 2016-07-13 19:09:16 +00:00
SelectionDAGDumper.cpp Indent consistently. 2016-06-19 12:37:52 +00:00
SelectionDAGISel.cpp [inlineasm] Propagate operand constraints to the backend 2016-07-18 13:17:31 +00:00
SelectionDAGPrinter.cpp Make the SelectionDAG graph printer use SDNode::PersistentId labels. 2015-10-27 23:09:03 +00:00
SelectionDAGTargetInfo.cpp Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
StatepointLowering.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
StatepointLowering.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
TargetLowering.cpp AVX-512: Fixed BT instruction selection. 2016-07-19 07:14:21 +00:00