diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-06-16 07:12:58 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-06-16 07:12:58 +0000 |
commit | 67fcf56ac48f5fea50cd8a1573a2ff348c597190 (patch) | |
tree | 799dcdbd1e39a273d3b4d351bbc5cd9c5c0017ff /lib/Transforms/Utils/Local.cpp | |
parent | db3c169f3a3102d40352ba63fd14a75c819c7adc (diff) |
If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead.
TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73478 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/Local.cpp')
0 files changed, 0 insertions, 0 deletions