1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/include/llvm/CodeGen
Hans Wennborg c1cb270dba Check for dynamic allocas and inline asm that clobbers sp before building
selection dag (PR19012)

In X86SelectionDagInfo::EmitTargetCodeForMemcpy we check with MachineFrameInfo
to make sure that ESI isn't used as a base pointer register before we choose to
emit rep movs (which clobbers esi).

The problem is that MachineFrameInfo wouldn't know about dynamic allocas or
inline asm that clobbers the stack pointer until SelectionDAGBuilder has
encountered them.

This patch fixes the problem by checking for such things when building the
FunctionLoweringInfo.

Differential Revision: http://llvm-reviews.chandlerc.com/D2954

llvm-svn: 202930
2014-03-05 02:43:26 +00:00
..
PBQP Remove unused typedef 2014-03-04 09:57:00 +00:00
Analysis.h [Modules] Move CallSite into the IR library where it belogs. It is 2014-03-04 11:01:28 +00:00
AsmPrinter.h Add back r201608, r201622, r201624 and r201625 2014-02-19 17:23:20 +00:00
CalcSpillWeights.h CalcSpillWeights: allow overidding the spill weight normalizing function 2013-11-11 19:56:14 +00:00
CallingConvLower.h LLVM-1163: AAPCS-VFP violation when CPRC allocated to stack 2014-02-07 11:19:53 +00:00
CommandFlags.h Refactor TargetOptions initialization into a single place. 2014-02-19 17:09:35 +00:00
DAGCombine.h
DFAPacketizer.h
EdgeBundles.h
FastISel.h Rename a DebugLoc variable to DbgLoc and a DataLayout to DL. 2014-02-18 22:05:46 +00:00
FunctionLoweringInfo.h Check for dynamic allocas and inline asm that clobbers sp before building 2014-03-05 02:43:26 +00:00
GCMetadata.h
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h Rename some member variables from TD to DL. 2014-02-18 15:33:12 +00:00
ISDOpcodes.h Fix a typo. 2013-12-26 14:43:33 +00:00
JITCodeEmitter.h
LatencyPriorityQueue.h
LexicalScopes.h [Modules] Move ValueHandle into the IR library where Value itself lives. 2014-03-04 11:17:44 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h [C++11] Use std::tie to simplify compare operators. 2014-03-03 19:58:30 +00:00
LiveIntervalAnalysis.h [block-freq] Refactor LiveInterals::getSpillWeight to use the new MachineBlockFrequencyInfo methods. 2013-12-14 00:53:32 +00:00
LiveIntervalUnion.h Rename LiveRange to LiveInterval::Segment 2013-10-10 21:28:43 +00:00
LivePhysRegs.h Convert register liveness tracking to work on a sub-register level instead of just register units. 2013-12-14 06:52:56 +00:00
LiveRangeEdit.h
LiveRegMatrix.h
LiveStackAnalysis.h
LiveVariables.h
MachineBasicBlock.h [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
MachineBlockFrequencyInfo.h [block-freq] Rename getEntryFrequency() -> getEntryFreq() to match getBlockFreq() in all *BlockFrequencyInfo*. 2013-12-14 02:37:38 +00:00
MachineBranchProbabilityInfo.h
MachineCodeEmitter.h
MachineCodeInfo.h
MachineConstantPool.h
MachineDominators.h [cleanup] Re-sort all the includes with utils/sort_includes.py. 2014-03-04 10:07:28 +00:00
MachineFrameInfo.h Check for dynamic allocas and inline asm that clobbers sp before building 2014-03-05 02:43:26 +00:00
MachineFunction.h [Stackmap] Liveness Analysis Pass 2013-12-14 06:53:06 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h
MachineInstr.h Remove unused #include 2014-02-14 20:15:56 +00:00
MachineInstrBuilder.h
MachineInstrBundle.h
MachineJumpTableInfo.h
MachineLoopInfo.h Don't #include heavy Dominators.h file in LoopInfo.h. This change reduces 2013-12-07 21:20:17 +00:00
MachineMemOperand.h Print the address space of a MachineMemOperand 2013-12-14 00:24:02 +00:00
MachineModuleInfo.h [Modules] Move ValueHandle into the IR library where Value itself lives. 2014-03-04 11:17:44 +00:00
MachineModuleInfoImpls.h
MachineOperand.h [Stackmap] Liveness Analysis Pass 2013-12-14 06:53:06 +00:00
MachinePassRegistry.h
MachinePostDominators.h Remove unneeded include 2014-02-12 01:00:24 +00:00
MachineRegisterInfo.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
MachineRelocation.h
MachineScheduler.h Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
MachineSSAUpdater.h
MachineTraceMetrics.h
MachORelocation.h
Passes.h [CodeGenPrepare] Move CodeGenPrepare into lib/CodeGen. 2014-02-22 00:07:45 +00:00
PseudoSourceValue.h
RegAllocPBQP.h Re-apply r202551, which introduced new PBQP solver. 2014-03-03 18:50:05 +00:00
RegAllocRegistry.h
RegisterClassInfo.h
RegisterPressure.h Represent RegUnit liveness with LiveRange instance 2013-10-10 21:29:02 +00:00
RegisterScavenging.h
ResourcePriorityQueue.h
RuntimeLibcalls.h Fix filename in header comment 2013-11-16 15:40:54 +00:00
ScheduleDAG.h [C++11] Expand and eliminate the LLVM_ENUM_INT_TYPE() macro 2014-03-02 03:20:38 +00:00
ScheduleDAGInstrs.h Fix known typos 2014-01-24 17:20:08 +00:00
ScheduleDFS.h
ScheduleHazardRecognizer.h Add two additional hazard recognizer functions 2013-12-11 22:33:43 +00:00
SchedulerRegistry.h
ScoreboardHazardRecognizer.h
SelectionDAG.h [C++11] Replace llvm::tie with std::tie. 2014-03-02 13:30:33 +00:00
SelectionDAGISel.h Add CheckChildInteger to ISelMatcher operations. Removes nearly 2000 bytes from X86 matcher table. 2014-02-05 05:44:28 +00:00
SelectionDAGNodes.h [C++11] Use std::tie to simplify compare operators. 2014-03-03 19:58:30 +00:00
SlotIndexes.h [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
StackMapLivenessAnalysis.h [Stackmap] Liveness Analysis Pass 2013-12-14 06:53:06 +00:00
StackMaps.h [Stackmaps] Cleanup code. No functional change intended. 2014-02-10 23:30:26 +00:00
StackProtector.h [Modules] Move ValueMap to the IR library. While this class does not 2014-03-04 11:26:31 +00:00
TargetLoweringObjectFileImpl.h Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
TargetSchedule.h Fix known typos 2014-01-24 17:20:08 +00:00
ValueTypes.h Replace tablegen uses of EVT with MVT. Add isOverloaded() to MVT to facilitate. Remove TGValueTypes.cpp since its unused now (and may have been before). 2014-01-24 20:50:47 +00:00
ValueTypes.td Implement aarch64 neon instruction set AdvSIMD (Across). 2013-10-05 08:22:10 +00:00
VirtRegMap.h