Displaying 7 results from an estimated 7 matches for "tracesiblingvalu".
Did you mean:
tracesiblingvalue
2012 Sep 19
2
[LLVMdev] InlineSpiller Questions
The InlineSpiller in 3.1 is quite different from the old spiller so I am
trying to slog through the code and learn a bit.
On a spill, the spiller calls traceSiblingValue. I gather that this is
supposed to find the "original" def point of a value, checking back
through copies, phis, etc. At the end we have an interval being spilled
and the original def instruction of the value.
For example:
r1 = load
...
r2 = r1
...
r3 = r2
...
use r3
If we decide...
2012 Sep 19
0
[LLVMdev] InlineSpiller Questions
On Sep 19, 2012, at 10:13 AM, dag at cray.com wrote:
> The InlineSpiller in 3.1 is quite different from the old spiller so I am
> trying to slog through the code and learn a bit.
>
> On a spill, the spiller calls traceSiblingValue. I gather that this is
> supposed to find the "original" def point of a value, checking back
> through copies, phis, etc. At the end we have an interval being spilled
> and the original def instruction of the value.
>
> For example:
>
> r1 = load
> ...
> r2...
2012 Sep 19
2
[LLVMdev] InlineSpiller Questions
Jakob Stoklund Olesen <stoklund at 2pi.dk> writes:
>> If we decide to spill r3, we call traceSiblingValue to find the original
>> def (the load). After traceSiblingValue we have the load instruction to
>> define r1 and the value number information for r3. We don't have the
>> value information from r2 as far as I can tell.
>>
>> Is that correct?
>
> Sounds ri...
2014 Nov 18
3
[LLVMdev] InlineSpiller.cpp 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(), analyzeSiblingValues() is called, which calls traceSiblingValue(). It traces in several iterations strangely back to the same register (inside a loop), finds it marked to be spilled, and the spill is cancelled:
Inline spilling %vreg86 [1396r,2276r:0) 0 at 1396r
>From original %vreg76
Tracing value %vreg86:0 at 1396r
%vreg86:0 at 1396r: copy of %vre...
2014 Dec 09
2
[LLVMdev] InlineSpiller.cpp bug?
...Thanks for your patience.
>>
>> I have looked into the problem you reported and although the fix you proposed seem correct, I am not sure yet this is the way to go. I would need the debug output of the regalloc to help you further, but here are my initial findings.
>>
>> traceSiblingValue looked into the problematic phi because the previous iteration said that %vreg87:6 and %vreg87:5 are sibling.
>> Since they are sibling it means they share the same original vreg.
>> The problem is that if vreg87:5, i.e., the original phi, is not the original value then it must have be...
2014 Nov 21
2
[LLVMdev] InlineSpiller.cpp 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(), analyzeSiblingValues() is called, which calls traceSiblingValue(). It traces in several iterations strangely back to the same register (inside a loop), finds it marked to be spilled, and the spill is cancelled:
Inline spilling %vreg86 [1396r,2276r:0) 0 at 1396r
>From original %vreg76
Tracing value %vreg86:0 at 1396r
%vreg86:0 at 1396r: copy of %vre...
2014 Dec 05
2
[LLVMdev] InlineSpiller.cpp bug?
...v] InlineSpiller.cpp bug?
Hi Jonas,
Thanks for your patience.
I have looked into the problem you reported and although the fix you proposed seem correct, I am not sure yet this is the way to go. I would need the debug output of the regalloc to help you further, but here are my initial findings.
traceSiblingValue looked into the problematic phi because the previous iteration said that %vreg87:6 and %vreg87:5 are sibling.
Since they are sibling it means they share the same original vreg.
The problem is that if vreg87:5, i.e., the original phi, is not the original value then it must have been inserted by spl...