This is an archive of the discontinued LLVM Phabricator instance.

[Power] Use lwsync for non-seq_cst fences
ClosedPublic

Authored by morisset on Sep 11 2014, 2:56 PM.

Details

Summary

hwsync is only required for seq_cst fences, acquire and release one can use
the cheaper lwsync.

Diff Detail

Repository
rL LLVM

Event Timeline

morisset updated this revision to Diff 13605.Sep 11 2014, 2:56 PM
morisset retitled this revision from to [Power] Use lwsync for non-seq_cst fences.
morisset updated this object.
morisset edited the test plan for this revision. (Show Details)
morisset added reviewers: jfb, wschmidt.
morisset added a subscriber: Unknown Object (MLST).
morisset updated this revision to Diff 14363.Oct 2 2014, 6:13 PM

Rebase on trunk.

hfinkel accepted this revision.Oct 2 2014, 9:14 PM
hfinkel added a reviewer: hfinkel.
hfinkel added a subscriber: hfinkel.

LGTM.

Please add a test run with ppc440 to make sure we still get msync.

lib/Target/PowerPC/PPCInstrInfo.td
2559 ↗(On Diff #14363)

By the way, what happens to AtomicOrdering == 2 (which is Monotonic). Is that (should that be) a noop?

This revision is now accepted and ready to land.Oct 2 2014, 9:14 PM

I will add the test with ppc440.

This path is only for fences, and I do not think a monotonic fence makes
much sense. So it is not special cased (but should trigger a bunch of
errors earlier in the front-end or at least asserts in the middle-end).

Thanks for the reviews !

morisset closed this revision.Oct 3 2014, 11:14 AM
morisset updated this revision to Diff 14389.

Closed by commit rL218995 (authored by @morisset).