llvm-project/llvm/lib/CodeGen/SelectionDAG
Matt Arsenault 8239eaab99 Add DAG combine for shl + add of constants.
Do
 (shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)

This is already done for multiplies, but since multiplies
by powers of two are turned into shifts, we also need
to handle it here.

This might want checks for isLegalAddImmediate to avoid
transforming an add of a legal immediate with one that isn't.

llvm-svn: 217610
2014-09-11 17:34:19 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
DAGCombiner.cpp Add DAG combine for shl + add of constants. 2014-09-11 17:34:19 +00:00
FastISel.cpp Fast-ISel: Remove dead code after falling back from selecting call instructions (PR20863) 2014-09-08 20:24:10 +00:00
FunctionLoweringInfo.cpp CodeGen: Handle va_start in the entry block 2014-09-02 18:42:44 +00:00
InstrEmitter.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
InstrEmitter.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
LLVMBuild.txt
LegalizeDAG.cpp [SDAG] Re-instate r215611 with a fix to a pesky X86 DAG combine. 2014-08-27 11:22:16 +00:00
LegalizeFloatTypes.cpp ARM: fix @llvm.convert.from.fp16 on softfloat targets. 2014-07-29 09:56:38 +00:00
LegalizeIntegerTypes.cpp Revert r216066, "Optimize ZERO_EXTEND and SIGN_EXTEND in both SelectionDAG Builder and type". 2014-08-21 01:59:30 +00:00
LegalizeTypes.cpp Make it possible for ints/floats to return different values from getBooleanContents() 2014-07-10 10:18:12 +00:00
LegalizeTypes.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
LegalizeTypesGeneric.cpp AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
LegalizeVectorOps.cpp Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
LegalizeVectorTypes.cpp Add support for scalarizing cttz_zero_undef 2014-08-10 22:49:54 +00:00
Makefile
ResourcePriorityQueue.cpp Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
SDNodeDbgValue.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ScheduleDAGFast.cpp [Modules] Remove potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:02:50 +00:00
ScheduleDAGRRList.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
ScheduleDAGSDNodes.cpp Make this SmallVector size a power of two as suggested by Chandler 2014-08-11 13:47:57 +00:00
ScheduleDAGSDNodes.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ScheduleDAGVLIW.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
SelectionDAG.cpp Do not assume the value passed to memset is an i32. 2014-08-29 08:23:53 +00:00
SelectionDAGBuilder.cpp Reinstate "Nuke the old JIT." 2014-09-02 22:28:02 +00:00
SelectionDAGBuilder.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
SelectionDAGDumper.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
SelectionDAGISel.cpp [FastISel] Rename public visible FastISel functions. NFC. 2014-09-03 20:56:52 +00:00
SelectionDAGPrinter.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
TargetLowering.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
TargetSelectionDAGInfo.cpp Have TargetSelectionDAGInfo take a DataLayout initializer rather than 2014-06-06 19:04:48 +00:00