aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-01-09 22:42:48 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-01-09 22:42:48 +0000
commitda1f1f495066f95957fd1c19ad44d4453e47aff4 (patch)
treeea7414adc13d84d995fdc1377ca4359b51326bcc /lib/Analysis/ScalarEvolution.cpp
parent7975e3ebbac67cc50d918843bf68373cf48daa2e (diff)
Change virtual register numbering to make more space for physical registers.
The numbering plan is now: 0 NoRegister. [1;2^30) Physical registers. [2^30;2^31) Stack slots. [2^31;2^32) Virtual registers. (With -1u and -2u used by DenseMapInfo.) Each segment is filled from the left, so any mistaken interpretation should quickly cause crashes. FirstVirtualRegister has been removed. TargetRegisterInfo provides predicates conversion functions that should be used instead of interpreting register numbers manually. It is now legal to pass NoRegister to isPhysicalRegister() and isVirtualRegister(). The result is false in both cases. It is quite rare to represent stack slots in this way, so isPhysicalRegister() and isVirtualRegister() require that isStackSlot() be checked first if it can possibly return true. This allows a very fast implementation of the common predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123137 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolution.cpp')
0 files changed, 0 insertions, 0 deletions