You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some processors benefit more from store clustering than load clustering,
and vice-versa, depending on factors that are exclusive to each one
(e.g. macrofusions implemented).
Likewise, certain optimizations benefits more from misched clustering
than postRA clustering. Macrofusions are again an example: in a
processor with store pair macrofusions, like the veyron-v1, it is
observed that misched clustering increases the amount of macrofusions
more than postRA clustering. This of course isn't necessarily true for
other processors, but it shows that processors can benefit from a more
fine grained control of clustering mutations, and each one is able to do
it differently.
Add 4 new clustering options to be used with the existing
riscv-misched-load-store-clustering and
riscv-postmisched-load-store-clustering:
- riscv-misched-load-clustering and riscv-misched-store-clustering:
enable/disable load/store clustering during misched;
- riscv-postmisched-load-clustering and
riscv-postmisched-store-clustering: enable/disable load/store
clustering during PostRA.
To preserve the existing behavior of the existing flags all options added
are default 'true'. Note that the two existing flags have precedence, so
setting "riscv-misched-load-store-clustering=false" will disable load
mutations even if setting riscv-misched-load-clustering=true. Same thing
with stores and with the postRA options.
For the veyron-v1 case mentioned above, to enable just the store clustering
during misched, offline everything else:
-mllvm -riscv-misched-load-clustering=false -mllvm -riscv-postmisched-load-store-clustering=false
0 commit comments