[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