aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineFunction.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-06-30 08:49:04 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-06-30 08:49:04 +0000
commit0dc101b897090e37e6e6eb239d96aec6d368b43f (patch)
treea815f76c82608705fe101084a8d5b50d2490fd05 /llvm/lib/CodeGen/MachineFunction.cpp
parent5df79c6642e7c6ed5dffdb78bcec864528614f4b (diff)
downloadllvm-0dc101b897090e37e6e6eb239d96aec6d368b43f.zip
llvm-0dc101b897090e37e6e6eb239d96aec6d368b43f.tar.gz
llvm-0dc101b897090e37e6e6eb239d96aec6d368b43f.tar.bz2
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.
The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. llvm-svn: 74518
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
0 files changed, 0 insertions, 0 deletions