[llvm-commits] [llvm] r82485 - in /llvm/trunk: lib/CodeGen/SimpleRegisterCoalescing.cpp lib/CodeGen/SimpleRegisterCoalescing.h test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll test/CodeGen/ARM/remat.ll test/CodeGen/X86/2008-02-22-ReMatBug.ll test/CodeGen/X86/2008-07-11-SpillerBug.ll test/CodeGen/X86/2009-04-20-LinearScanOpt.ll test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll test/CodeGen/X86/stack-color-with-reg.ll
Bill Wendling
wendling at apple.com
Mon Sep 21 15:34:17 PDT 2009
On Sep 21, 2009, at 2:39 PM, Evan Cheng wrote:
>
> On Sep 21, 2009, at 2:19 PM, Bill Wendling wrote:
>
>>>
>> This loop is dead is "HasDef" and "HasUse" are both true. :-)
>
> That's not possible. isDef() the opposite of isUse().
>
Yes, but the only affect of the "|=" operator on a boolean is to turn
it from a "false" to a "true". If HasDef and HasUse are already true
after their initializations, then the loop will can't turn them
"false". :-)
-bw
bool HasDef = mopi.isDef();
bool HasUse = mopi.isUse();
for (unsigned j = i+1; j != e; ++j) {
const MachineOperand &mopj = MI->getOperand(j);
if (!mopj.isReg() || mopj.getReg() != Reg)
continue;
HasDef |= mopj.isDef();
HasUse |= mopj.isUse();
}
More information about the llvm-commits
mailing list