[llvm-dev] Writing loop transformations on the right representation is more productive
Renato Golin via llvm-dev
llvm-dev at lists.llvm.org
Sun Jan 26 05:46:56 PST 2020
On Sun, 26 Jan 2020 at 02:06, Michael Kruse <llvmdev at meinersbur.de> wrote:
> A language where most instructions can access any memory is arguable
> harder to optimize than a language where only a selected set of
> instructions can do that. But the metadata describing what memory an
> instruction can access is not frond-end specific.
My point is that not all front-ends have the same pace at implementing
new metadata, and the discussion as to what each means in the context
of each language can take a while.
> I think the small selection mostly stems from Polly requiring
> well-formed IR. Very often it could algorithmically optimize a
> problem, but cannot represent the IR in its internal representation: a
> SCoP which is based on ISL's schedule tree representation. The main
> motivation of the proposal is to exactly address this, meaning there
> is no external library that restricts what we can represent.
I see, so this is basically the old proposal of re-writing ISL into
LLVM, but with a more powerful heuristics search.
I'm not against the idea (as I wasn't back then), but this will take a
very long time, and will somewhat compete with current VPlan (engine
to find transformations) and MLIR (extensible IR) efforts.
I'm also not saying there is a clear and trivial path from VPlan and
MLIR towards your proposal. There may be many hurdles, some even
impractical, so I'm not strongly proposing it either.
But I'd like to explore all the options before starting yet-another
effort to make high-level parallelisation more tractable.
More information about the llvm-dev