[PATCH] [AArch64] Override useAA and remove unneeded edges in the scheduling graph. (Phabricator)

hfinkel at anl.gov hfinkel at anl.gov
Thu Aug 28 08:33:50 PDT 2014

Just to share some experience... (I enable AA during CodeGen on many PowerPC cores)

I've found using AA during CodeGen is very useful for in-order cores. It is less useful for ooo cores, but this is somewhat dependent on the size of the reorder buffers (and sometimes the loop dispatch buffers, depending on how the architecture is setup), because its main effect is to reduce pressure on these resources.

But it is sometimes very useful on ooo cores for architecture-specific reasons. For example, on the POWER cores there are expensive load-after-store hazards that are critical to avoid. These can be avoided by forcing dispatch-group termination using special nop instructions, but you don't want to do this if you don't have to. Using AA in CodeGen to reduce the number of unneeded group-terminating nops inserted is very helpful.

There is potentially some compile-time impact to doing this, so make sure you keep that in mind.


More information about the llvm-commits mailing list