On Wed, Aug 24, 2011 at 9:00 PM, Ian Lance Taylor <i...@google.com> wrote:
> Tom de Vries <vr...@codesourcery.com> writes:
>
>> Do you have a moment to give a second look to a gimple CFG optimization?  The
>> optimization removes duplicate basic blocks and reduces code size by 1-2%.
>>
>> The latest patch is posted at
>> http://gcc.gnu.org/ml/gcc-patches/2011-08/msg01602.html.
>
>
> I'm not really the best person to look at this patch, since it applies
> to areas of the compiler with which I am less familiar..  However, since
> you ask, I did read through the patch, and it looks OK to me.  Since
> Richi OK'ed it, this patch is OK with the following changes.
>
>
>> +typedef struct same_succ *same_succ_t;
>> +typedef const struct same_succ *const_same_succ_t;
>
> Don't name new types ending with "_t".  POSIX reserves names ending with
> "_t" when <sys/types.h> is #included.  Name these something else.
>
>> +typedef struct bb_cluster *bb_cluster_t;
>> +typedef const struct bb_cluster *const_bb_cluster_t;
>
> Same here.
>
>
>> +@item -ftree-tail-merge
>> +Merges identical blocks with same successors.  This flag is enabled by 
>> default
>> +at @option{-O2} and higher.  The run time of this pass can be limited using
>> +@option{max-tail-merge-comparisons} parameter.
>
> I think this text can be improved to be more meaningful to compiler
> users.  I suggest something like:
>
>  Look for identical code sequences.  When found, replace one with a
>  jump to the other.  This optimization is known as tail merging or
>  cross jumping.  This flag is enabled [now same as above]

Can you also add a --param for the maximum number of iterations
you perform (16 sounds quite high for GCC bootstrap), I'd default it
to 2 which seems to catch 99% of all cases.

If you already committed the patch just do it as a followup please.

Thanks,
Richard.

>
> Thanks.
>
> Ian
>

Reply via email to