llvm-6502/lib/CodeGen/SelectionDAG
Evan Cheng bf010eb911 Fix a long standing tail call optimization bug. When a libcall is emitted
legalizer always use the DAG entry node. This is wrong when the libcall is
emitted as a tail call since it effectively folds the return node. If
the return node's input chain is not the entry (i.e. call, load, or store)
use that as the tail call input chain.

PR12419
rdar://9770785
rdar://11195178


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154370 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-10 01:51:00 +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 Don't try to zExt just to check if an integer constant is zero, it might 2012-04-10 00:16:22 +00:00
FastISel.cpp If we have a VLA that has a "use" in a metadata node that's then used 2012-03-30 00:02:55 +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 Fix a long standing tail call optimization bug. When a libcall is emitted 2012-04-10 01:51:00 +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 Convert assert(0) to llvm_unreachable 2012-02-05 08:31:47 +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 Treat f16 the same as f80/f128 for the purposes of generating constants during instruction selection. 2012-04-05 18:50:32 +00:00
SelectionDAGBuilder.cpp Optimize code a bit. No functional change intended. 2012-04-08 23:15:04 +00:00
SelectionDAGBuilder.h [unwind removal] Remove all of the code for the dead 'unwind' instruction. There 2012-02-06 21:44:22 +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 Have TargetLowering::getPICJumpTableRelocBase return a node that points to the 2012-04-09 20:32:12 +00:00
TargetSelectionDAGInfo.cpp