Displaying 4 results from an estimated 4 matches for "origvni_curr".
2014 Nov 21
2
[LLVMdev] InlineSpiller.cpp bug?
...quot;orig phi value\n");
SVI->second.DefByOrigPHI = true;
SVI->second.AllDefsAreReloads = false;
propagateSiblingValue(SVI);
continue;
}
// check if the valno is actually an orig PHI, but is not OrigVNI
else {
LiveInterval &OrigLI = LIS.getInterval(Original);
VNInfo *OrigVNI_curr = OrigLI.getVNInfoAt(VNI->def);
if (OrigVNI_curr->def == VNI->def)
assert(0 && "OrigLI contained VNI which was a PHI, but not OrigVNI!");
}
, but the assert never triggered anywhere else than in my original case.
When I did the following, at least my test case wor...
2014 Dec 05
2
[LLVMdev] InlineSpiller.cpp bug?
...quot;orig phi value\n");
SVI->second.DefByOrigPHI = true;
SVI->second.AllDefsAreReloads = false;
propagateSiblingValue(SVI);
continue;
}
// check if the valno is actually an orig PHI, but is not OrigVNI
else {
LiveInterval &OrigLI = LIS.getInterval(Original);
VNInfo *OrigVNI_curr = OrigLI.getVNInfoAt(VNI->def);
if (OrigVNI_curr->def == VNI->def)
assert(0 && "OrigLI contained VNI which was a PHI, but not OrigVNI!");
}
, but the assert never triggered anywhere else than in my original case.
When I did the following, at least my test case wor...
2014 Dec 09
2
[LLVMdev] InlineSpiller.cpp bug?
...;> SVI->second.AllDefsAreReloads = false;
>> propagateSiblingValue(SVI);
>> continue;
>> }
>> // check if the valno is actually an orig PHI, but is not OrigVNI
>> else {
>> LiveInterval &OrigLI = LIS.getInterval(Original);
>> VNInfo *OrigVNI_curr = OrigLI.getVNInfoAt(VNI->def);
>> if (OrigVNI_curr->def == VNI->def)
>> assert(0 && "OrigLI contained VNI which was a PHI, but not OrigVNI!");
>> }
>>
>> , but the assert never triggered anywhere else than in my original case.
>&g...
2014 Nov 18
3
[LLVMdev] InlineSpiller.cpp bug?
Hi,
I have encountered a test case where InlineSpiller generates bad code. A register is reloaded but never spilled, and I suspect a bug in InlineSpiller.
A register is live over a loop that also have two inner loops. It is not used or defined over the inner loops. It is split into two sibling registers, where one covers just the inner loops interval, which is then spilled.
In spill(),