Displaying 9 results from an estimated 9 matches for "bb108".
Did you mean:
bb10
2009 Jan 29
2
[LLVMdev] undefs in phis
Ok, I understand a bit more of what's going on in my phi example.
Coming into DAGtoDAG we have this code:
bb74:
x = phi(1.0:bb134, %r1450:bb108)
y = phi(undef:bb134, x:bb108)
[...]
bb108:
%r1450 = <expr>
After DAGtoDAG we have:
bb134:
%reg1459 = IMPLICIT_DEF
%reg1458 = 1.0
bb74:
%reg1176 = phi(%reg1458:bb134, %reg1253:bb108)
%reg1177 = phi(%reg1459:bb134, %reg1176:bb108)
[...]
bb108:
%reg1253 = <expr>
So far...
2009 Jan 30
2
[LLVMdev] undefs in phis
...an 29, 2009 at 2:47 PM, David Greene <dag at cray.com> wrote:
> > After phi elimination we have:
> >
> > bb134:
> > %reg1645 = 1.0
> >
> > bb74:
> > %reg1176 = MOVAPS %reg1645
> > %reg1177 = MOVAPS %reg1646
> > [...]
> >
> > bb108:
> > %reg1645 = <expr>
> > %reg1646 = %reg1176
>
> I find it a little strange that the IMPLICIT_DEF disappears. Besides
> that, it looks okay up to here.
I just verified that it does disappear.
> > Should llvm be able to handle situations like
> > this or...
2009 Jan 30
2
[LLVMdev] undefs in phis
...reg1646<kill> ; srcLine 0 *** u before d
2708 %reg1178<def> = FsMOVAPSrr %reg1647<kill> ; srcLine 0 *** u before d
2712 TEST64rr %reg1173, %reg1173, %EFLAGS<imp-def> ; srcLine 30
2716 JLE mbb<file test.f90, bb90,0x3c37ed0>, %EFLAGS<imp-use,kill> ; srcLine 0
bb108:
[...]
4352 %reg1253<def> = MAXSSrr %reg1253, %reg1588<kill> ; srcLine 60
4356 %reg1645<def> = FsMOVAPSrr %reg1253<kill> ; srcLine 0
4360 %reg1646<def> = FsMOVAPSrr %reg1176<kill> ; srcLine 0
4364 %reg1647<def> = FsMOVAPSrr %reg1243<kill> ; srcLin...
2009 Jan 30
2
[LLVMdev] undefs in phis
...; I will look into this further. Just wanted to check in and make
>> sure.
>
> Ok, the Coalescer thinks %reg1177 value number 0 is defined by a
> copy from
> %reg1176. I guess that could be considered correct because %reg1177
> is
> defined by a copy from %reg1176 in bb108. It thus considers the
> intervals to
> not interfere.
>
> But this can't be right. I think the problem is that there should
> be two
> value numbers for %reg1177. We already have VN 0 defined from
> %reg1176.
> What coalescing is missing is that %reg1177 is ALS...
2009 Jan 30
0
[LLVMdev] undefs in phis
...Greene <dag at cray.com> wrote:
>>> After phi elimination we have:
>>>
>>> bb134:
>>> %reg1645 = 1.0
>>>
>>> bb74:
>>> %reg1176 = MOVAPS %reg1645
>>> %reg1177 = MOVAPS %reg1646
>>> [...]
>>>
>>> bb108:
>>> %reg1645 = <expr>
>>> %reg1646 = %reg1176
>>
>> I find it a little strange that the IMPLICIT_DEF disappears. Besides
>> that, it looks okay up to here.
>
> I just verified that it does disappear.
It's intentional. We don't want a live i...
2009 Feb 02
0
[LLVMdev] undefs in phis
...; srcLine 0
[deleted copy]
2708 %reg1178<def> = FsMOVAPSrr %reg1647<kill> ; srcLine 0 *** u
before d
2712 TEST64rr %reg1173, %reg1173, %EFLAGS<imp-def> ; srcLine 30
2716 JLE mbb<file test.f90, bb90,0x3c37ed0>, %EFLAGS<imp-use,kill> ;
srcLine
0
bb108:
[...]
4352 %reg1253<def> = MAXSSrr %reg1253, %reg1588<kill> ; srcLine 60
4356 %reg1645<def> = FsMOVAPSrr %reg1253<kill> ; srcLine 0
4360 %reg1177<def> = FsMOVAPSrr %reg1176<kill> ; srcLine 0 ***
updated
4364 %reg1647<def>...
2009 Jan 30
0
[LLVMdev] undefs in phis
On Thu, Jan 29, 2009 at 2:47 PM, David Greene <dag at cray.com> wrote:
> After phi elimination we have:
>
> bb134:
> %reg1645 = 1.0
>
> bb74:
> %reg1176 = MOVAPS %reg1645
> %reg1177 = MOVAPS %reg1646
> [...]
>
> bb108:
> %reg1645 = <expr>
> %reg1646 = %reg1176
I find it a little strange that the IMPLICIT_DEF disappears. Besides
that, it looks okay up to here.
> Should llvm be able to handle situations like
> this or is the result undefined?
LLVM should be able to handle the IL in question...
2009 Jan 30
0
[LLVMdev] undefs in phis
...verlap
> %reg1177:[2700,3712:0)?
>
> I will look into this further. Just wanted to check in and make sure.
Ok, the Coalescer thinks %reg1177 value number 0 is defined by a copy from
%reg1176. I guess that could be considered correct because %reg1177 is
defined by a copy from %reg1176 in bb108. It thus considers the intervals to
not interfere.
But this can't be right. I think the problem is that there should be two
value numbers for %reg1177. We already have VN 0 defined from %reg1176.
What coalescing is missing is that %reg1177 is ALSO defined by an implicit def
from bb134. T...
2009 Feb 02
2
[LLVMdev] undefs in phis
...<def> = FsMOVAPSrr %reg1647<kill> ; srcLine
> 0 *** u
> before d
> 2712 TEST64rr %reg1173, %reg1173, %EFLAGS<imp-def> ; srcLine 30
> 2716 JLE mbb<file test.f90, bb90,0x3c37ed0>, %EFLAGS<imp-
> use,kill> ;
> srcLine
> 0
>
> bb108:
> [...]
> 4352 %reg1253<def> = MAXSSrr %reg1253, %reg1588<kill> ;
> srcLine 60
> 4356 %reg1645<def> = FsMOVAPSrr %reg1253<kill> ; srcLine 0
> 4360 %reg1177<def> = FsMOVAPSrr %reg1176<kill> ; srcLine
> 0 ***
&...