[LLVMdev] Parallel Loop Metadata

Pekka Jääskeläinen pekka.jaaskelainen at tut.fi
Fri Feb 8 07:48:32 PST 2013


On 02/08/2013 05:17 PM, Daniel Berlin wrote:
> Yes, I agree, which is why i'm trying to understand how you don't end
> up having to mark*every*  memory in the loop with this instruction in
> practice to get anywhere.

OK. Got what you mean now, thanks.

You are right, when the parallel loop information is added to the loop
the first time, all of the memory instructions need to be annotated,
so this doesn't actually reduce the amount of metadata needed afterall :-I

However, it might help the fallback case. Instead of making
a single unannotated access ruin the whole parallelism data, the
remaining metadata can still be used to shortcut some checks.

E.g., in the example

i1: Aw,  Sw,  Br,  Cw
i2: Aw', Sw', Br', Cw'

The MD can be still exploited to do a code motion of Aw' before Br.
Vectorization might be ruined but some ILP can be still exploited.
To get A vectorized, the analyzer needs to prove !(Sw -> Aw'),
but not the other pairs.

-- 
Pekka



More information about the llvm-dev mailing list