llvm-6502/lib/CodeGen/SelectionDAG
Benjamin Kramer 45b5f7e457 [SDAG] Now that we have a way to communicate the exact bit on sdiv use it to simplify sdiv by a constant.
We had a hack in SDAGBuilder in place to work around this but now we
can avoid that. Call BuildExactSDIV from BuildSDIV so DAGCombiner can
perform this trick automatically.

The added check in DAGCombiner is necessary to prevent exact sdiv by pow2
from regressing as the target-specific pow2 lowering is not aware of
exact bits yet.

This is mostly covered by existing tests. One side effect is that we
get the better lowering for exact vector sdivs now too :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240891 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-27 20:33:26 +00:00
..
CMakeLists.txt [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
DAGCombiner.cpp [SDAG] Now that we have a way to communicate the exact bit on sdiv use it to simplify sdiv by a constant. 2015-06-27 20:33:26 +00:00
FastISel.cpp Use MCSymbols for FastISel. 2015-06-23 12:21:54 +00:00
FunctionLoweringInfo.cpp Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
InstrEmitter.cpp Avoid a Symbol -> Name -> Symbol conversion. 2015-06-22 17:46:53 +00:00
InstrEmitter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegalizeDAG.cpp Wrap assert loops in #ifndef NDEBUG 2015-06-26 19:23:20 +00:00
LegalizeFloatTypes.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeIntegerTypes.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:08:33 +00:00
LegalizeTypes.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegalizeTypes.h Added promotion to EXTRACT_SUBVECTOR operand. 2015-05-25 11:33:13 +00:00
LegalizeTypesGeneric.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeVectorOps.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:08:33 +00:00
LegalizeVectorTypes.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:08:33 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
ScheduleDAGFast.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGRRList.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGSDNodes.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGSDNodes.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ScheduleDAGVLIW.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
SDNodeDbgValue.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SelectionDAG.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:37:02 +00:00
SelectionDAGBuilder.cpp [SDAG] Now that we have a way to communicate the exact bit on sdiv use it to simplify sdiv by a constant. 2015-06-27 20:33:26 +00:00
SelectionDAGBuilder.h Switch lowering: add heuristic for filling leaf nodes in the weight-balanced binary search tree 2015-06-20 17:14:07 +00:00
SelectionDAGDumper.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:37:02 +00:00
SelectionDAGISel.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:37:02 +00:00
SelectionDAGPrinter.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
StatepointLowering.cpp [Statepoint] Remove unnecessary argument from Statepoint::getRelocates 2015-06-20 00:01:03 +00:00
StatepointLowering.h [StatepointLowering] Support of the gc.relocates for invoke statepoints. 2015-05-20 11:37:25 +00:00
TargetLowering.cpp [SDAG] Now that we have a way to communicate the exact bit on sdiv use it to simplify sdiv by a constant. 2015-06-27 20:33:26 +00:00
TargetSelectionDAGInfo.cpp