[PATCH] final.c max_skip without p2align

Jan Hubicka jh@suse.cz
Thu Feb 20 20:12:00 GMT 2003


> + #ifndef ASM_OUTPUT_MAX_SKIP_ALIGN
> +             if ((new_address - insn_current_address)
> +                 <= LABEL_TO_MAX_SKIP (insn))
> +               insn_lengths[uid] = new_address - insn_current_address;
> +             else
> +               LABEL_TO_ALIGNMENT (insn) = 0;
> + #else
>               insn_lengths[uid] = new_address - insn_current_address;
> + #endif
> 
> This violates the assumption that the location counter is aligned after
> an alignment.  As a result, you might see out-of-range branches and
> shorten_branches looping forever.

I've made patch a long time ago that solved this by making conservative
observation after the max-skip-align labels.  I also was able to prove
finitarity of the new algorithm, but the change never went in.

Honza
> 
> -- 
> --------------------------
> SuperH (UK) Ltd.
> 2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
> T:+44 1454 465658



More information about the Gcc-patches mailing list