[PATCH] Detect loops in find_comparison_args
Paolo Bonzini
bonzini@gnu.org
Thu Jul 26 07:28:00 GMT 2012
Il 26/07/2012 04:25, Sandra Loosemore ha scritto:
> On 07/25/2012 01:27 AM, Paolo Bonzini wrote:
>>
>> What I'm worried about is the extra cost of malloc-ing and free-ing
>> the pointer set. Perhaps you can skip the pointer set creation in
>> the common case where find_comparison_args does not iterate?
>> Something like this:
>>
>> [snip]
>
> I think this version is a little neater; it just defers
> initialization of the pointer set to the end of the loop.
But the while condition could still fail right after you create the set,
and I would expect that to be the common case.
Paolo
> I checked
> the test case on the two targets where we've previously observed
> failures (the original one on MIPS and the current one on PowerPC),
> as well as doing a full bootstrap and regression-test on x86_64. OK
> to check in?
>
> -Sandra
>
>
> 2012-07-25 Andrew Jenner <andrew@codesourcery.com> Sandra Loosemore
> <sandra@codesourcery.com>
>
> gcc/ * cse.c (find_comparison_args): Check for cycles of any length.
>
> gcc/testsuite/ * gcc.c-torture/compile/pr50380.c: Add code to cause
> cycle of length 2.
>
More information about the Gcc-patches
mailing list