search for: bb134

Displaying 9 results from an estimated 9 matches for "bb134".

Did you mean: bb13
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 = <ex...
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 = <expr> > > %reg1646 = %reg1176 > > I find it a little strange that the IMPLICIT_DEF di...
2009 Jan 30
2
[LLVMdev] undefs in phis
...erval defined by an > implicit_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>...
2009 Jan 30
2
[LLVMdev] undefs in phis
...gt; 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. That's the value number we're missing and is why > coalescing > incorrectly removed the copy. I don't have the whole context to understand why you think this is a bug. An implicit_def doesn't actually define any value. So we don't care if a live interval overlaps...
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 = MOVAPS %reg1646 >>> [...] >>> >>> bb108: >>> %reg1645 = <expr> >>> %reg1646 = %reg1176 >> >> I find it a little...
2009 Feb 02
0
[LLVMdev] undefs in phis
...ontext to understand why you think this 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...
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. > Sh...
2009 Jan 30
0
[LLVMdev] undefs in phis
...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. That's the value number we're missing and is why coalescing incorrectly removed the copy. So it appears we can't get rid of the IMPLICIT DEF. Evan, do you agree? -Dave
2009 Feb 02
2
[LLVMdev] undefs in phis
...gt;> 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 >...