llvm-6502/include/llvm
Arnaud A. de Grandmaison 8ee1b65836 [PBQP] Cautiously update edge costs in the solver
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
2015-02-11 08:25:36 +00:00
..
ADT ADT: Allow up to 18 arguments in hash_combine() 2015-02-09 23:21:05 +00:00
Analysis Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
AsmParser
Bitcode
CodeGen [PBQP] Cautiously update edge costs in the solver 2015-02-11 08:25:36 +00:00
Config Define HAVE_DIA_SDK on Windows when DIA is present. 2015-02-10 05:04:25 +00:00
DebugInfo Rewrite llvm-pdbdump in terms of LLVMDebugInfoPDB. 2015-02-10 22:43:25 +00:00
ExecutionEngine [Orc] Fix a bug in the LazyEmittingLayer - capture names by value (as 2015-02-10 07:35:39 +00:00
IR Adding support for llvm.eh.begincatch and llvm.eh.endcatch intrinsics and beginning the documentation of native Windows exception handling. 2015-02-10 19:52:43 +00:00
IRReader
LineEditor
Linker
LTO
MC
Object
Option
ProfileData
Support Now use the __debugbreak intrinsic instead of calling RaiseException; it requires no forward declares and still calls VEH. 2015-02-10 21:13:04 +00:00
TableGen
Target
Transforms
CMakeLists.txt
InitializePasses.h
LinkAllIR.h
LinkAllPasses.h
module.modulemap
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassManager.h
PassRegistry.h
PassSupport.h