On 10/22/15 04:07, Richard Biener wrote:

Yeah, please make them either end or start a BB so we have to check
at most a single stmt.  ECF_RETURNS_TWICE should achieve that,
it also makes it a code motion barrier.

Just so I'm clear, you're not saying that RETURNS_TWICE will stop the call being duplicated though?

thinking a little further, a code motion barrier is stronger than I need (but conservatively safe). For instance:

UNIQUE (HEAD)
for (...)
{
  a = <loop_invariant_expr>
}
UNIQUE (TAIL)

It would be safe and desirable to move that loop invariant to before the UNIQUE. Perhaps it won't matter in practice -- after all having N physical threads calculate it in parallel (just after the HEAD marker, but before the loop) will probably take no longer than a single thread doing it while the others wait.[*]

nathan

[*] ut it will take more power.

Reply via email to