[llvm-dev] [RFC] Introducing classes for the codegen driven by new pass manager

Nicolai Hähnle via llvm-dev
Wed, 15 Jul 2020 08:58:35 -0000

On Tue, Jul 14, 2020 at 11:29 PM James Y Knight via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I'd just note that not every pass you can run with "opt" is
actually part of the optimization pipeline. There are a few important IR-level
passes that only run in the codegen pipeline, but are still nameable with opt to
run individually for testing purposes. Switching over doesn't need to block
on these passes being migrated. So I'm not sure this method of determining
progress towards switching to NPM actually makes sense.

Somewhat along those lines, can you explain a bit how MachineFunction
passes and other passes can live within the same pass manager? The
split between "optimization" and "code generation" is a bit
arbitrary,
and there are benefits to be had from running everything in the same
pass manager, because analyses can be preserved. With GlobalISel, it
may even be possible to carry analyses like dominator tree and loop
info from the IR world over to the MIR world.

Cheers,
Nicolai

--
Lerne, wie die Welt wirklich ist,
aber vergiss niemals, wie sie sein sollte.