[llvm-dev] [RFC] Heterogeneous LLVM-IR Modules (original) (raw)

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