[PATCH] Fix PR47271: only if-convert full writes.

Matthias Klose doko@ubuntu.com
Tue Jan 25 03:43:00 GMT 2011


On 25.01.2011 00:54, Ian Lance Taylor wrote:
> Matthias Klose<doko@ubuntu.com>  writes:
>
>> On 24.01.2011 21:31, Sebastian Pop wrote:
>>> Hi,
>>>
>>> The following patch filters out before if-conversion all the loops
>>> containing basic blocks with more than 2 predecessors or containing
>>> basic blocks that have exactly 2 predecessors not post-dominated by
>>> the basic block: these basic blocks may contain phi nodes that are not
>>> full writes.  The current code generation for the tree-if-conversion
>>> does not handle these cases.
>>>
>>> I am regstrapping this patch on amd64-linux.  Ok for trunk?
>>
>> on ix86-linux-gnu, r169142 with the proposed patch applied on top,
>> fails to build in libgo, but builds without the proposed patch.
>
> I'm not sure what the issue here, but I'm sure it doesn't have anything
> to do with Sebastian's patch.
>
>
>> ../../../src/libgo/go/bytes/buffer.go:193:33: error: argument 1 has
>> incompatible type
>> ../../../src/libgo/go/bytes/buffer.go:193:39: error: argument 2 has
>> incompatible type
>> ../../../src/libgo/go/bytes/bytes.go:350:31: error: argument 1 has incompatible type
>> ../../../src/libgo/go/bytes/bytes.go:350:50: error: argument 2 has incompatible type
>> make[6]: *** [bytes/libbytes.a] Error 1
>
> Since the function declaration changed, this looks like the build is
> somehow picking up an old installed utf8.gox when it should be picking
> up the newly built one.  That is of course not supposed to happen, and I
> don't see any way that it could happen.

you are right. I had a week old version of libgo installed in /usr/lib, which 
apparently was picked up during the build (which was configured with 
--prefix=/usr too)?

   Matthias



More information about the Gcc-patches mailing list