summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-02 02:19:35 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-02 02:19:35 +0000
commitc58894bc36d3d10dc459e3db749534ea230fbddd (patch)
tree43770f1bafb9f1a2a5f111e1b898261465bc2f7a /clang/lib/Frontend/CompilerInvocation.cpp
parenta13ad2adcf378e90d10ee77a7d67334dbd2198da (diff)
downloadbcm5719-llvm-c58894bc36d3d10dc459e3db749534ea230fbddd.tar.gz
bcm5719-llvm-c58894bc36d3d10dc459e3db749534ea230fbddd.zip
Add a RegisterClassInfo class that lazily caches information about
register classes. It provides information for each register class that cannot be determined statically, like: - The number of allocatable registers in a class after filtering out the reserved and invalid registers. - The preferred allocation order with registers that overlap callee-saved registers last. - The last callee-saved register that overlaps a given physical register. This information usually doesn't change between functions, so it is reused for compiling multiple functions when possible. The many possible combinations of reserved and callee saves registers makes it unfeasible to compute this information statically in TableGen. Use RegisterClassInfo to count available registers in various heuristics in SimpleRegisterCoalescing, making the pass run 4% faster. llvm-svn: 132450
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud