mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-08 04:07:07 +00:00
8ee1b65836
The NodeMetadata are maintained in an incremental way. When an edge between 2 nodes has its cost updated, in the course of graph reduction for example, the NodeMetadata need first to have the old edge cost removed, then the new edge cost added. Only once the NodeMetadata have been fully updated, it becomes safe to consider promoting the nodes to the ConservativelyAllocatable or OptimallyReducible sets. Previously, this promotion was occuring right after the removing the old cost, and this was breaking the assumption that a ConservativelyAllocatable should not be spilled. This patch also adds asserts to: - enforces the invariant that a node's reduction can not be downgraded, - only not provably allocatable or optimally reducible nodes can be spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228816 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
AsmParser | ||
Disassembler | ||
InstPrinter | ||
MCTargetDesc | ||
TargetInfo | ||
Utils | ||
AArch64.h | ||
AArch64.td | ||
AArch64A53Fix835769.cpp | ||
AArch64A57FPLoadBalancing.cpp | ||
AArch64AddressTypePromotion.cpp | ||
AArch64AdvSIMDScalarPass.cpp | ||
AArch64AsmPrinter.cpp | ||
AArch64BranchRelaxation.cpp | ||
AArch64CallingConvention.h | ||
AArch64CallingConvention.td | ||
AArch64CleanupLocalDynamicTLSPass.cpp | ||
AArch64CollectLOH.cpp | ||
AArch64ConditionalCompares.cpp | ||
AArch64ConditionOptimizer.cpp | ||
AArch64DeadRegisterDefinitionsPass.cpp | ||
AArch64ExpandPseudoInsts.cpp | ||
AArch64FastISel.cpp | ||
AArch64FrameLowering.cpp | ||
AArch64FrameLowering.h | ||
AArch64InstrAtomics.td | ||
AArch64InstrFormats.td | ||
AArch64InstrInfo.cpp | ||
AArch64InstrInfo.h | ||
AArch64InstrInfo.td | ||
AArch64ISelDAGToDAG.cpp | ||
AArch64ISelLowering.cpp | ||
AArch64ISelLowering.h | ||
AArch64LoadStoreOptimizer.cpp | ||
AArch64MachineCombinerPattern.h | ||
AArch64MachineFunctionInfo.h | ||
AArch64MCInstLower.cpp | ||
AArch64MCInstLower.h | ||
AArch64PBQPRegAlloc.cpp | ||
AArch64PBQPRegAlloc.h | ||
AArch64PerfectShuffle.h | ||
AArch64PromoteConstant.cpp | ||
AArch64RegisterInfo.cpp | ||
AArch64RegisterInfo.h | ||
AArch64RegisterInfo.td | ||
AArch64SchedA53.td | ||
AArch64SchedA57.td | ||
AArch64SchedA57WriteRes.td | ||
AArch64SchedCyclone.td | ||
AArch64Schedule.td | ||
AArch64SelectionDAGInfo.cpp | ||
AArch64SelectionDAGInfo.h | ||
AArch64StorePairSuppress.cpp | ||
AArch64Subtarget.cpp | ||
AArch64Subtarget.h | ||
AArch64TargetMachine.cpp | ||
AArch64TargetMachine.h | ||
AArch64TargetObjectFile.cpp | ||
AArch64TargetObjectFile.h | ||
AArch64TargetTransformInfo.cpp | ||
AArch64TargetTransformInfo.h | ||
CMakeLists.txt | ||
LLVMBuild.txt | ||
Makefile |