llvm-6502/lib/CodeGen/SelectionDAG
Joel Jones d16ce17711 Fixes a problem in instruction selection with testing whether or not the
transformation:

(X op C1) ^ C2 --> (X op C1) & ~C2 iff (C1&C2) == C2

should be done.  

This change has been tested:
 Using a debug+asserts build:
   on the specific test case that brought this bug to light
   make check-all
   lnt nt
   using this clang to build a release version of clang
 Using the release+asserts clang-with-clang build:
   on the specific test case that brought this bug to light
   make check-all
   lnt nt

Checking in because Evan wants it checked in.  Test case forthcoming after
scrubbing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154955 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-17 22:23:10 +00:00
..
CMakeLists.txt Refactor the SelectionDAG's 'dump' methods into their own .cpp file. 2012-03-13 05:47:27 +00:00
DAGCombiner.cpp Remove dead SD nodes after the combining pass. Fixes PR12201. 2012-04-16 03:33:22 +00:00
FastISel.cpp To ensure that we have more accurate line information for a block 2012-04-10 18:18:10 +00:00
FunctionLoweringInfo.cpp
InstrEmitter.cpp
InstrEmitter.h
LegalizeDAG.cpp Make the code slightly more palatable. 2012-04-10 03:15:18 +00:00
LegalizeFloatTypes.cpp
LegalizeIntegerTypes.cpp Always compute all the bits in ComputeMaskedBits. 2012-04-04 12:51:34 +00:00
LegalizeTypes.cpp
LegalizeTypes.h Add VSELECT to LegalizeVectorTypes::ScalariseVectorResult. Previously it would crash if it encountered a 1 element VSELECT. Solution is slightly more complicated than just creating a SELET as we have to mask or sign extend the vector condition if it had different boolean contents from the scalar condition. Fixes <rdar://problem/11178095> 2012-04-03 22:57:55 +00:00
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp When emulating vselect using OR/AND/XOR make sure to bitcast the result back to the original type. 2012-04-15 15:08:09 +00:00
LegalizeVectorTypes.cpp Removed useless switch for default case when switch was covering all the enum values 2012-04-04 00:53:04 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp Use uint16_t to store instruction implicit uses and defs. Reduces static data. 2012-03-08 08:22:45 +00:00
ScheduleDAGRRList.cpp Source order scheduler should not preschedule nodes with multiple uses. rdar://11096639 2012-03-22 19:31:17 +00:00
ScheduleDAGSDNodes.cpp Insert the debugging instructions in one fell-swoop so that it doesn't call the 2012-03-14 07:14:25 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SDNodeOrdering.h
SelectionDAG.cpp Move the constant-folding support for FP_ROUND in SelectionDAG from the one-operand version of getNode() to the two-operand version, since it became a two-operand node at sound point. 2012-04-10 22:46:53 +00:00
SelectionDAGBuilder.cpp Fix an overly indented line. Remove an 'else' after an 'if' that returns. 2012-04-11 04:55:51 +00:00
SelectionDAGBuilder.h Inline implVisitAluOverflow by introducing a nested switch to convert the intrinsic to an nodetype. 2012-04-11 04:34:11 +00:00
SelectionDAGDumper.cpp Refactor the SelectionDAG's 'dump' methods into their own .cpp file. 2012-03-13 05:47:27 +00:00
SelectionDAGISel.cpp Always compute all the bits in ComputeMaskedBits. 2012-04-04 12:51:34 +00:00
SelectionDAGPrinter.cpp
TargetLowering.cpp Fixes a problem in instruction selection with testing whether or not the 2012-04-17 22:23:10 +00:00
TargetSelectionDAGInfo.cpp