llvm-project/llvm/lib/CodeGen/SelectionDAG
David Majnemer e48237df95 DAGCombiner: fold (xor (shl 1, x), -1) -> (rotl ~1, x)
Targets which provide a rotate make it possible to replace a sequence of
(XOR (SHL 1, x), -1) with (ROTL ~1, x).  This saves an instruction on
architectures like X86 and POWER(64).

Differential Revision: http://reviews.llvm.org/D8350

llvm-svn: 232572
2015-03-18 00:03:36 +00:00
..
CMakeLists.txt [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
DAGCombiner.cpp DAGCombiner: fold (xor (shl 1, x), -1) -> (rotl ~1, x) 2015-03-18 00:03:36 +00:00
FastISel.cpp Handle big index in getelementptr instruction 2015-03-11 23:36:10 +00:00
FunctionLoweringInfo.cpp getRegForInlineAsmConstraint wants to use TargetRegisterInfo for 2015-02-26 22:38:43 +00:00
InstrEmitter.cpp Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
InstrEmitter.h Remove the uses of getSubtargetImpl from InstrEmitter and remove 2014-10-09 01:35:29 +00:00
LLVMBuild.txt
LegalizeDAG.cpp [CodeGen] Replace the reused stores' chain for extractelt expansion. 2015-03-09 22:51:05 +00:00
LegalizeFloatTypes.cpp Fix makeLibCall argument (signed) in SoftenFloatRes_XINT_TO_FP function 2015-02-10 23:30:14 +00:00
LegalizeIntegerTypes.cpp LegalizeTypes: Handle shift by 0 in ExpandShiftByConstant. 2015-03-06 01:13:01 +00:00
LegalizeTypes.cpp [PowerPC] Implement readcyclecounter for PPC32 2014-12-02 22:01:00 +00:00
LegalizeTypes.h Fixed a bug in type legalizer for masked load/store intrinsics. 2015-01-22 12:07:59 +00:00
LegalizeTypesGeneric.cpp AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
LegalizeVectorOps.cpp [SDAG] Handle LowerOperation returning its input consistently 2015-02-24 12:59:47 +00:00
LegalizeVectorTypes.cpp Fixed a bug in type legalizer for masked load/store intrinsics. 2015-01-22 12:07:59 +00:00
Makefile
ResourcePriorityQueue.cpp unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
SDNodeDbgValue.h constify the getters in SDNodeDbgValue. 2014-10-13 20:43:47 +00:00
ScheduleDAGFast.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
ScheduleDAGRRList.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
ScheduleDAGSDNodes.cpp Prefer SmallVector::append/insert over push_back loops. 2015-02-17 15:29:18 +00:00
ScheduleDAGSDNodes.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ScheduleDAGVLIW.cpp Remove more calls to getSubtargetImpl from the schedulers and 2014-10-09 06:28:06 +00:00
SelectionDAG.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
SelectionDAGBuilder.cpp Recommit r232027 with PR22883 fixed: Add infrastructure for support of multiple memory constraints. 2015-03-13 12:45:09 +00:00
SelectionDAGBuilder.h Teach lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.relocates for invoke statepoints. 2015-03-10 16:26:48 +00:00
SelectionDAGDumper.cpp X86: Optimize address mode matching for FRAME_ALLOC_RECOVER nodes 2015-03-05 18:50:12 +00:00
SelectionDAGISel.cpp Recommit r232027 with PR22883 fixed: Add infrastructure for support of multiple memory constraints. 2015-03-13 12:45:09 +00:00
SelectionDAGPrinter.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
StatepointLowering.cpp Teach lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.relocates for invoke statepoints. 2015-03-10 16:26:48 +00:00
StatepointLowering.h [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
TargetLowering.cpp getRegForInlineAsmConstraint wants to use TargetRegisterInfo for 2015-02-26 22:38:43 +00:00
TargetSelectionDAGInfo.cpp Have TargetSelectionDAGInfo take a DataLayout initializer rather than 2014-06-06 19:04:48 +00:00