This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC PATCH, i386]: Fuse compare and branch macro-ops for Core2

> 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.

> Paolo

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]