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 Tabs, formatting and long lines oh my! 2012-02-24 01:59:01 +00:00
InstrEmitter.cpp Don't crash when a glue node contains an internal CopyToReg 2012-02-24 17:53:59 +00:00
InstrEmitter.h Simplify EXTRACT_SUBREG emission. 2011-10-05 20:26:40 +00:00
LegalizeDAG.cpp Make the code slightly more palatable. 2012-04-10 03:15:18 +00:00
LegalizeFloatTypes.cpp Convert assert(0) to llvm_unreachable 2012-02-05 08:31:47 +00:00
LegalizeIntegerTypes.cpp Always compute all the bits in ComputeMaskedBits. 2012-04-04 12:51:34 +00:00
LegalizeTypes.cpp Re-commit r151623 with fix. Only issue special no-return calls if it's a direct call. 2012-02-28 18:51:51 +00:00
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 Remove unnecessary default cases in switches that cover all enum values. 2012-01-10 16:47:17 +00:00
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 LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile
ResourcePriorityQueue.cpp misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
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 misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
ScheduleDAGVLIW.cpp misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
SDNodeDbgValue.h Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. 2011-02-18 22:43:42 +00:00
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 drop unneeded config.h includes 2011-12-22 23:04:07 +00:00
TargetLowering.cpp Fixes a problem in instruction selection with testing whether or not the 2012-04-17 22:23:10 +00:00
TargetSelectionDAGInfo.cpp