1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/include/llvm/CodeGen
Chad Rosier 0b2e4a1ba8 Fall back to the selection dag isel to select tail calls.
This shouldn't affect codegen for -O0 compiles as tail call markers are not
emitted in unoptimized compiles.  Testing with the external/internal nightly
test suite reveals no change in compile time performance.  Testing with -O1,
-O2 and -O3 with fast-isel enabled did not cause any compile-time or
execution-time failures.  All tests were performed on my x86 machine.
I'll monitor our arm testers to ensure no regressions occur there.

In an upcoming clang patch I will be marking the objc_autoreleaseReturnValue
and objc_retainAutoreleaseReturnValue as tail calls unconditionally.  While
it's theoretically true that this is just an optimization, it's an
optimization that we very much want to happen even at -O0, or else ARC
applications become substantially harder to debug.

Part of rdar://12553082

llvm-svn: 169796
2012-12-11 00:18:02 +00:00
..
PBQP Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
Analysis.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
AsmPrinter.h
CalcSpillWeights.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
CallingConvLower.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
CommandFlags.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
DFAPacketizer.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
EdgeBundles.h
FastISel.h Fall back to the selection dag isel to select tail calls. 2012-12-11 00:18:02 +00:00
FunctionLoweringInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
GCMetadata.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
ISDOpcodes.h
JITCodeEmitter.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LatencyPriorityQueue.h
LexicalScopes.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveInterval.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveIntervalAnalysis.h RegisterPressureTracker: unify virtual registers and physical regunits. 2012-12-05 21:37:47 +00:00
LiveIntervalUnion.h
LiveRangeEdit.h
LiveRegMatrix.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveStackAnalysis.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveVariables.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineBasicBlock.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineCodeEmitter.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineCodeInfo.h
MachineConstantPool.h
MachineDominators.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineFrameInfo.h Stack Alignment: when creating stack objects in MachineFrameInfo, make sure 2012-12-04 00:52:33 +00:00
MachineFunction.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h
MachineInstr.h Add higher-level API for dealing with bundled MachineInstrs. 2012-12-07 04:23:29 +00:00
MachineInstrBuilder.h Add an MIBundleBuilder class. 2012-12-07 04:23:35 +00:00
MachineInstrBundle.h
MachineJumpTableInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineLoopInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineMemOperand.h
MachineModuleInfo.h - Added calls to doInitialization/doFinalization to immutable passes 2012-12-05 17:12:22 +00:00
MachineModuleInfoImpls.h
MachineOperand.h
MachinePassRegistry.h
MachinePostDominators.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineRegisterInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineRelocation.h
MachineScheduler.h
MachineSSAUpdater.h
MachORelocation.h
Passes.h
PseudoSourceValue.h
RegAllocPBQP.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
RegAllocRegistry.h
RegisterClassInfo.h
RegisterPressure.h RegPressureTracker::dump(): Remove unnecessary argument. 2012-12-05 23:05:22 +00:00
RegisterScavenging.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ResourcePriorityQueue.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
RuntimeLibcalls.h
ScheduleDAG.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ScheduleDAGInstrs.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ScheduleDFS.h
ScheduleHazardRecognizer.h
SchedulerRegistry.h
ScoreboardHazardRecognizer.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
SelectionDAG.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
SelectionDAGISel.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
SelectionDAGNodes.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
SlotIndexes.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
TargetLoweringObjectFileImpl.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
TargetSchedule.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ValueTypes.h
ValueTypes.td
VirtRegMap.h Remove VirtRegMap::getRegAllocPref(). 2012-12-04 00:35:59 +00:00