[PATCH] [FastIsel][X86] Fix invalid register replacement for bool args
Juergen Ributzka
juergen at apple.com
Thu Nov 13 09:27:02 PST 2014
Hi Keno,
thanks for catching this. I am a little surprised this hasn't shown up earlier. I only have two minor tweaks inline.
The test case looks too verbose for what it is testing. Could you please trim it down to the bare essentials?
Thanks
Cheers,
Juergen
================
Comment at: lib/Target/X86/X86FastISel.cpp:2698
@@ -2697,3 +2697,3 @@
TI->hasOneUse()) {
- Val = cast<TruncInst>(Val)->getOperand(0);
- unsigned ResultReg = getRegForValue(Val);
+ Value *PrevVal = cast<TruncInst>(Val)->getOperand(0);
+ unsigned ResultReg = getRegForValue(PrevVal);
----------------
const Value *PrevVal = TI->getOperand(0);
================
Comment at: lib/Target/X86/X86FastISel.cpp:2709
@@ -2708,3 +2708,3 @@
ResultReg =
- fastEmit_ri(ArgVT, ArgVT, ISD::AND, ResultReg, Val->hasOneUse(), 1);
+ fastEmit_ri(ArgVT, ArgVT, ISD::AND, ResultReg, PrevVal->hasOneUse(), 1);
----------------
fastEmit_ri(ArgVT, ArgVT, ISD::AND, ResultReg, hasTrivialKill(PrevVal), 1);
http://reviews.llvm.org/D6245
More information about the llvm-commits
mailing list