[RFC PATCH, i386]: Fuse compare and branch macro-ops for Core2
Jan Hubicka
hubicka@ucw.cz
Mon Mar 17 16:21:00 GMT 2008
> Uros Bizjak wrote:
> >Hello!
> >
> >This experimental patch is based on the Chapter 7.5, "Macro-op fusion"
> >of [1], where it is stated that when a bunch of condition is satisfied,
> >Core2 fuses compare and branch instruction into one macro-uop. This
> >functionality is limited to 32bit executables only.
> >
> >Attached patch increases fusion opportunities by keeping unsigned
> >compares together with their follow-up branch instruction, while trying
> >to align combined sequence to keep branch insn from crossing 16-byte
> >boundary.
>
> I think you should instead try converting the back-end to cbranch
> patterns (which you can split if worthwhile for scheduling).
Also note that the 16-byte boundary crossing has interesting effect on
Athlon decoders and ordinary instructions. Long time ago I implemented
patch to allow specifying alignment of instructions and use .p2align to
avoid those "bad crossings of boundary". I shoud be able to dig it out
if you are interested.
Honza
>
> Paolo
More information about the Gcc-patches
mailing list