llvm-6502/include/llvm/CodeGen
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
..
PBQP Matrix simplification in PBQP may push infinite costs onto register options. 2012-04-03 16:27:16 +00:00
Analysis.h Fix a long standing tail call optimization bug. When a libcall is emitted 2012-04-10 01:51:00 +00:00
AsmPrinter.h Allow the use of an alternate symbol for calculating a function's size. 2012-02-22 21:11:47 +00:00
CalcSpillWeights.h Move CalculateRegClass to MRI::recomputeRegClass. 2011-08-09 16:46:27 +00:00
CallingConvLower.h Convert more static tables of registers used by calling convention to uint16_t to reduce space. 2012-03-11 07:57:25 +00:00
DFAPacketizer.h Cleanup VLIWPacketizer to use the updated ScheduleDAGInstrs interface. 2012-03-07 23:01:09 +00:00
EdgeBundles.h Twinify GraphWriter a little bit. 2011-11-15 16:26:38 +00:00
FastISel.h [fast-isel] Add support for selecting insertvalue. 2011-12-09 20:09:54 +00:00
FunctionLoweringInfo.h Replace a DenseSet with SmallPtrSet. 2012-02-23 20:53:02 +00:00
GCMetadata.h Attach a DebugLoc to a GC point in order to get precise information in the JIT of a GC point. 2010-09-24 17:27:50 +00:00
GCMetadataPrinter.h Trailing whitespace. 2010-07-01 01:00:22 +00:00
GCs.h
GCStrategy.h Add a custom safepoint method, in order for language implementers to decide which machine instruction gets to be a safepoint. 2011-11-11 18:32:52 +00:00
IntrinsicLowering.h Recognize inline asm 'rev /bin/bash, ' as a bswap intrinsic call. 2011-01-08 01:24:27 +00:00
ISDOpcodes.h Add a RegisterMaskSDNode class. 2012-01-18 23:52:12 +00:00
JITCodeEmitter.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
LatencyPriorityQueue.h misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
LexicalScopes.h Typo. 2012-04-09 17:54:34 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Codegen pass definition cleanup. No functionality. 2012-02-08 21:23:13 +00:00
LiveInterval.h Drop the REDEF_BY_EC VNInfo flag. 2012-02-04 05:51:25 +00:00
LiveIntervalAnalysis.h Add API "handleMoveIntoBundl" for updating liveness when moving instructions into 2012-02-21 22:29:38 +00:00
LiveRangeEdit.h Fixes to r153903. Added missing explanation of behaviour when the VirtRegMap is NULL. Also changed it in this case to just avoid updating the map, but live ranges or intervals will still get updated and created 2012-04-03 00:28:46 +00:00
LiveStackAnalysis.h Move getCommonSubClass() into TRI. 2011-09-30 22:18:51 +00:00
LiveVariables.h Handle register masks in LiveVariables. 2012-01-21 00:58:53 +00:00
MachineBasicBlock.h Added MachineBasicBlock::getFullName() to standardize/factor codegen diagnostics. 2012-03-07 00:18:18 +00:00
MachineBlockFrequencyInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
MachineBranchProbabilityInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
MachineCodeEmitter.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
MachineCodeInfo.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineConstantPool.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
MachineDominators.h Silence the new -Wempty-body warning. It appeared because the next statement 2012-02-14 22:17:14 +00:00
MachineFrameInfo.h Fix typo, reported by Eitan Adler! 2011-12-10 03:16:20 +00:00
MachineFunction.h Teach CodeGen's version of computeMaskedBits to understand the range metadata. 2012-03-31 18:14:00 +00:00
MachineFunctionAnalysis.h Sink codegen optimization level into MCCodeGenInfo along side relocation model 2011-11-16 08:38:26 +00:00
MachineFunctionPass.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
MachineInstr.h MachineInstr: Inline the fast path (non-bundle instruction) of hasProperty. 2012-03-17 17:03:45 +00:00
MachineInstrBuilder.h Use <def,undef> operands when spilling NEON bundles. 2012-03-04 18:40:30 +00:00
MachineInstrBundle.h Move getBundleStart() into MachineInstrBundle.h. 2012-03-01 01:26:01 +00:00
MachineJumpTableInfo.h Add a new MachineJumpTableInfo entry type, EK_GPRel64BlockAddress, which is 2012-02-03 04:33:00 +00:00
MachineLoopInfo.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
MachineLoopRanges.h Enable loop splitting in RegAllocGreedy. 2010-12-17 23:16:32 +00:00
MachineMemOperand.h Teach CodeGen's version of computeMaskedBits to understand the range metadata. 2012-03-31 18:14:00 +00:00
MachineModuleInfo.h Properly emit _fltused with FastISel. Refactor to share code with SDAG. 2012-02-22 19:06:13 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Clean up comment. 2012-02-10 19:27:34 +00:00
MachinePassRegistry.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
MachineRegisterInfo.h Add an MRI::tracksLiveness() flag. 2012-03-27 15:13:58 +00:00
MachineRelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineScheduler.h misched: allow the default scheduler to be one chosen by the target. 2012-03-09 00:52:20 +00:00
MachineSSAUpdater.h
MachORelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
Passes.h Enable machine code verification in the entire code generator. 2012-03-28 23:54:28 +00:00
ProcessImplicitDefs.h Place context in member variables instead of passing around pointers. 2011-03-14 20:57:14 +00:00
PseudoSourceValue.h Typos. 2011-06-01 23:32:40 +00:00
RegAllocPBQP.h Add a hook for PBQP clients to run a custom pre-alloc pass to run prior to PBQP allocation. Patch by Arnaud Allard de Grandmaison. 2011-06-17 07:09:01 +00:00
RegAllocRegistry.h
RegisterScavenging.h Track reserved registers separately from RegsAvailable. 2012-02-23 01:13:32 +00:00
ResourcePriorityQueue.h misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
RuntimeLibcalls.h Add an intrinsic and codegen support for fused multiply-accumulate. The intent 2011-07-08 21:39:21 +00:00
ScheduleDAG.h misched: implemented a framework for top-down or bottom-up scheduling. 2012-03-14 04:00:41 +00:00
ScheduleDAGInstrs.h misched: Add finalizeScheduler to complete the target interface. 2012-04-01 07:24:23 +00:00
ScheduleHazardRecognizer.h Convert -enable-sched-cycles and -enable-sched-hazard to -disable 2011-01-21 05:51:33 +00:00
SchedulerRegistry.h VLIW specific scheduler framework that utilizes deterministic finite automaton (DFA). 2012-02-01 22:13:57 +00:00
ScoreboardHazardRecognizer.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
SelectionDAG.h Always compute all the bits in ComputeMaskedBits. 2012-04-04 12:51:34 +00:00
SelectionDAGISel.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
SelectionDAGNodes.h Teach CodeGen's version of computeMaskedBits to understand the range metadata. 2012-03-31 18:14:00 +00:00
SlotIndexes.h Move getBundleStart() into MachineInstrBundle.h. 2012-03-01 01:26:01 +00:00
TargetLoweringObjectFileImpl.h Modify the code that emits the module flags to use the new module flags accessor 2012-02-15 22:36:15 +00:00
ValueTypes.h Remove an unused function. 2012-03-05 12:49:45 +00:00
ValueTypes.td Added MVT::v2f16 2012-01-12 23:14:13 +00:00