llvm-6502/lib
Jakob Stoklund Olesen 22a1df6bf2 Keep track of which stage produced a live range, and bypass earlier stages when revisiting.
This effectively disables the 'turbo' functionality of the greedy register
allocator where all new live ranges created by splitting would be reconsidered
as if they were originals.

There are two reasons for doing this, 1. It guarantees that the algorithm
terminates. Early versions were prone to infinite looping in certain corner
cases. 2. It is a 2x speedup. We can skip a lot of unnecessary interference
checks that won't lead to good splitting anyway.

The problem is that region splitting only gets one shot, so it should probably
be changed to target multiple physical registers at once.

Local live range splitting is still 'turbo' enabled. It only accounts for a
small fraction of compile time, so it is probably not necessary to do anything
about that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126781 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01 21:10:07 +00:00
..
Analysis Optimize "icmp pred (urem X, Y), Y" --> true/false depending on pred. There's 2011-03-01 08:15:50 +00:00
Archive Revert PathV2 changes, as sys::fs::unique_file is not finished yet. 2011-03-01 19:50:55 +00:00
AsmParser
Bitcode
CodeGen Keep track of which stage produced a live range, and bypass earlier stages when revisiting. 2011-03-01 21:10:07 +00:00
CompilerDriver
ExecutionEngine
Linker
MC Make all static functions become static class methods. Move shared (duplicated) functions to new MCELF class. 2011-02-28 21:45:04 +00:00
Object
Support
Target Add datalayout information for the IEEE quad precision fp128 type. 2011-03-01 20:56:50 +00:00
Transforms Make InstCombiner::FoldAndOfICmps create a ConstantRange that's the 2011-03-01 15:05:01 +00:00
VMCore Added missing va_end(). 2011-03-01 18:00:49 +00:00
CMakeLists.txt
Makefile