1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 08:23:21 +01:00
llvm-mirror/include/llvm/CodeGen
Evan Cheng 8af07ba749 Added a late machine instruction copy propagation pass. This catches
opportunities that only present themselves after late optimizations
such as tail duplication .e.g.
## BB#1:
        movl    %eax, %ecx
        movl    %ecx, %eax
        ret

The register allocator also leaves some of them around (due to false
dep between copies from phi-elimination, etc.)

This required some changes in codegen passes. Post-ra scheduler and the
pseudo-instruction expansion passes have been moved after branch folding
and tail merging. They were before branch folding before because it did
not always update block livein's. That's fixed now. The pass change makes
independently since we want to properly schedule instructions after
branch folding / tail duplication.

rdar://10428165
rdar://10640363

llvm-svn: 147716
2012-01-07 03:02:36 +00:00
..
PBQP
Analysis.h Move global variables in TargetMachine into new TargetOptions class. As an API 2011-12-02 22:16:29 +00:00
AsmPrinter.h Teach our Dwarf emission to use the string pool. 2011-10-27 06:44:11 +00:00
CalcSpillWeights.h Move CalculateRegClass to MRI::recomputeRegClass. 2011-08-09 16:46:27 +00:00
CallingConvLower.h Provide an ARMCCState subclass of CCState so that ARM clients will always set 2011-06-10 20:59:24 +00:00
DFAPacketizer.h use space star instead of star space 2011-12-06 17:34:16 +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 Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges. 2011-09-08 22:59:09 +00:00
GCMetadata.h
GCMetadataPrinter.h
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
ISDOpcodes.h Initial CodeGen support for CTTZ/CTLZ where a zero input produces an 2011-12-13 01:56:10 +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
LexicalScopes.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Delete the linear scan register allocator. 2011-11-12 22:39:45 +00:00
LiveInterval.h comment cleanup 2012-01-05 01:01:01 +00:00
LiveIntervalAnalysis.h Delete the old spilling framework from LiveIntervalAnalysis. 2011-11-12 23:57:05 +00:00
LiveStackAnalysis.h Move getCommonSubClass() into TRI. 2011-09-30 22:18:51 +00:00
LiveVariables.h Silence a bunch (but not all) "variable written but not read" warnings 2011-08-12 14:54:45 +00:00
MachineBasicBlock.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +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
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
MachineFrameInfo.h Fix typo, reported by Eitan Adler! 2011-12-10 03:16:20 +00:00
MachineFunction.h Allow inlining of functions with returns_twice calls, if they have the 2011-12-18 20:35:43 +00:00
MachineFunctionAnalysis.h Sink codegen optimization level into MCCodeGenInfo along side relocation model 2011-11-16 08:38:26 +00:00
MachineFunctionPass.h
MachineInstr.h - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function 2011-12-14 02:11:42 +00:00
MachineInstrBuilder.h - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function 2011-12-14 02:11:42 +00:00
MachineInstrBundle.h - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function 2011-12-14 02:11:42 +00:00
MachineJumpTableInfo.h
MachineLoopInfo.h
MachineLoopRanges.h
MachineMemOperand.h Make headers standalone. 2011-11-14 17:45:03 +00:00
MachineModuleInfo.h Add accessor method to check if the landing pad symbol has call site information. 2011-10-05 23:26:10 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Add MachineOperand IsInternalRead flag. 2011-12-07 00:22:07 +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 Freeze reserved registers before starting register allocation. 2012-01-05 00:26:49 +00:00
MachineRelocation.h
MachineSSAUpdater.h
MachORelocation.h
Passes.h Added a late machine instruction copy propagation pass. This catches 2012-01-07 03:02:36 +00:00
ProcessImplicitDefs.h
PseudoSourceValue.h
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
RuntimeLibcalls.h Add an intrinsic and codegen support for fused multiply-accumulate. The intent 2011-07-08 21:39:21 +00:00
ScheduleDAG.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h Delete the top-down "Latency" scheduler. Top-down scheduling doesn't handle 2011-10-24 18:01:06 +00:00
ScoreboardHazardRecognizer.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
SelectionDAG.h Update DebugLoc while merging nodes at -O0. 2011-12-15 18:21:18 +00:00
SelectionDAGISel.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
SelectionDAGNodes.h Add additional checking to ensure that MachineMemOperands are never set to null, which can happen in weird circumstances where target intrinsic hooks are implemented incorrectly. 2011-11-10 19:25:09 +00:00
SlotIndexes.h Simplify more DenseMap.find users. 2012-01-04 21:41:24 +00:00
TargetLoweringObjectFileImpl.h Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc. 2011-07-20 19:50:42 +00:00
ValueTypes.h Add basic generic CodeGen support for half. 2011-12-20 00:02:33 +00:00
ValueTypes.td Add basic generic CodeGen support for half. 2011-12-20 00:02:33 +00:00