[llvm-dev] [RFC] Heterogeneous LLVM-IR Modules

Renato Golin via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 30 09:11:24 PDT 2020


On Thu, 30 Jul 2020 at 16:58, Johannes Doerfert
<johannesdoerfert at gmail.com> wrote:
> I mean, you can put the command line string that set the options into
> the first place, right? That is as long as it initially was, or maybe I
> am missing something.

Options change with time, and this would make the IR incompatible
across releases without intentionally doing so.

> To recap things that might "differ" from the original proposal:
>    - We          want multiple target triples.
>    - We probably want multiple data layouts.
>    - We probably want multiple pass pipelines, with different (cmd
>      line) options and such.
>    - We might want to make modules self contained wrt. target options
>      such that you can create TTI and friends w/o repeating driver
>      options.

The extent of the separation is what made me suggest that it might be
easier, in the end, to carry multiple modules, from different
front-ends, through multiple pipelines but interacting with each
other.

I guess this is why David made a parallel with LTO, as this ends up as
being a multi-device LTO in a sense. I think that will be easier and
much less intrusive than rewriting the global context, target flags,
IR annotation, data layout assumptions, target triple parsing, target
options bundling, etc.

--renato


More information about the llvm-dev mailing list