Displaying 7 results from an estimated 7 matches for "fsmovapsrr".
2009 Feb 02
0
[LLVMdev] undefs in phis
...is is a
> bug. An implicit_def doesn't actually define any value. So we don't
> care if a live interval overlaps live ranges defined by an implicit_def.
It's a bug because the coalerscer does illegal coaescing.
Our last episode left us here:
bb134:
2696 %reg1645<def> = FsMOVAPSrr %reg1458<kill> ; srcLine 0
bb74:
2700 %reg1176<def> = FsMOVAPSrr %reg1645<kill> ; srcLine 0
[deleted copy]
2708 %reg1178<def> = FsMOVAPSrr %reg1647<kill> ; srcLine 0 *** u
before d
2712 TEST64rr %reg1173, %reg1173, %EFLAGS<imp-def>...
2009 Jan 30
2
[LLVMdev] undefs in phis
On Jan 30, 2009, at 1:52 PM, David Greene wrote:
> On Friday 30 January 2009 15:10, David Greene wrote:
>
>> This still looks correct. The coalescer then says:
>>
>> 4360 %reg1177<def> = FsMOVAPSrr %reg1176<kill> ; srcLine 0
>> Inspecting %reg1176,0 = [2702,4362:0) 0 at 2702-(4362) and
>> %reg1177,0 =
>> [2700,3712:0)[3768,3878:0)[4362,4372:0) 0 at 4362-(3878):
>> Joined. Result = %reg1177,0 = [2700,4372:0) 0 at 2702-(4362)
>>
>> Eh? How c...
2009 Jan 30
0
[LLVMdev] undefs in phis
On Jan 29, 2009, at 5:29 PM, David Greene wrote:
> On Thursday 29 January 2009 18:04, Eli Friedman wrote:
>> 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 =
2009 Jan 30
2
[LLVMdev] undefs in phis
...def. It unnecessarily increases register pressure.
Ah, I see. But coalescing seems to break. I don't know if it's because
of the eliminated IMPLICIT_DEF, though. Here's what happens. Let's look at
this code, annotated with live range indices:
bb134:
2696 %reg1645<def> = FsMOVAPSrr %reg1458<kill> ; srcLine 0
bb74:
2700 %reg1176<def> = FsMOVAPSrr %reg1645<kill> ; srcLine 0
2704 %reg1177<def> = FsMOVAPSrr %reg1646<kill> ; srcLine 0 *** u before d
2708 %reg1178<def> = FsMOVAPSrr %reg1647<kill> ; srcLine 0 *** u before d
2712 TEST6...
2009 Jan 30
2
[LLVMdev] undefs in phis
On Thursday 29 January 2009 18:04, Eli Friedman wrote:
> 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 =
2009 Feb 02
2
[LLVMdev] undefs in phis
...ctually define any value. So we don't
>> care if a live interval overlaps live ranges defined by an
>> implicit_def.
>
> It's a bug because the coalerscer does illegal coaescing.
>
> Our last episode left us here:
>
> bb134:
> 2696 %reg1645<def> = FsMOVAPSrr %reg1458<kill> ; srcLine 0
>
> bb74:
> 2700 %reg1176<def> = FsMOVAPSrr %reg1645<kill> ; srcLine 0
> [deleted copy]
> 2708 %reg1178<def> = FsMOVAPSrr %reg1647<kill> ; srcLine
> 0 *** u
> before d
> 2712 TEST64rr %...
2009 Jan 30
0
[LLVMdev] undefs in phis
On Friday 30 January 2009 15:10, David Greene wrote:
> This still looks correct. The coalescer then says:
>
> 4360 %reg1177<def> = FsMOVAPSrr %reg1176<kill> ; srcLine 0
> Inspecting %reg1176,0 = [2702,4362:0) 0 at 2702-(4362) and %reg1177,0 =
> [2700,3712:0)[3768,3878:0)[4362,4372:0) 0 at 4362-(3878):
> Joined. Result = %reg1177,0 = [2700,4372:0) 0 at 2702-(4362)
>
> Eh? How can it coalesce these two? Does...