| ▲ | gpderetta 6 hours ago | |
In principle a compiler could convert the data dependency into to a control dependency (for example, after PGO after checking against the most likely value), and those are fairly fragile. I guess in practice mainstream compilers do not do it and relaxed+signal fence works for now, but the fact that compilers have been reluctant to use it to implement consume means that they are reluctant to commit to it. In any case I think you work on GCC, so you probably know the details better than me. edit: it seems that ARM specifically does not respect control dependencies. But I might misreading the MM. | ||