[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