On Wed, 26 Jul 2017, Jeff Law wrote:
> I'm not sure what you mean by extraneous compiler barriers -- isn't the
> worst case scenario here that the target emits them as well?  So there
> would be an extraneous one in that case, but that ought to be a "don't
> care".

Yes, exactly this.

> In the middle end patch, do we need a barrier before the fence as well?
> The post-fence barrier prevents reordering the fence with anything which
> follows the fence.  But do we have to also prevent reordering the fence
> with prior instructions with any of the memory models?  This isn't my
> area of expertise, so if it's dumb question, don't hesitate to let me
> know :-)

That depends on how pessimistic we want to be with respect to backend
getting it wrong.  My expectation here is that if a backend emits non-empty
RTL, the produced sequence for the fence itself acts as a compiler memory
barrier.

Thanks!
Alexander

Reply via email to