[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