aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/ModuleBuilder.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-09-01 18:27:51 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-09-01 18:27:51 +0000
commit5dc87d0f4d631b6701471649c0abc7045be8d5cd (patch)
treec2b80f2022c228e2d4d8d1da8dbb11f4fb5faa17 /clang/lib/CodeGen/ModuleBuilder.cpp
parentf6d5d60f993df484ff6bb613a90c1a69786873f3 (diff)
downloadllvm-5dc87d0f4d631b6701471649c0abc7045be8d5cd.zip
llvm-5dc87d0f4d631b6701471649c0abc7045be8d5cd.tar.gz
llvm-5dc87d0f4d631b6701471649c0abc7045be8d5cd.tar.bz2
Permit remat of partial register defs when it is safe.
An instruction may define part of a register where the other bits are undefined. In that case, it is safe to rematerialize the instruction. For example: %vreg2:ssub_0<def> = VLDRS <cp#0>, 0, pred:14, pred:%noreg, %vreg2<imp-def> The extra <imp-def> operand indicates that the instruction does not read the other parts of the virtual register, so a remat is safe. This patch simply allows multiple def operands for the virtual register. It is MI->readsVirtualRegister() that determines if we depend on a previous value so remat is impossible. llvm-svn: 138953
Diffstat (limited to 'clang/lib/CodeGen/ModuleBuilder.cpp')
0 files changed, 0 insertions, 0 deletions