testing a back-end pre-emit pass

Hi,

Does anyone have any direction for me on testing a back-end pre-emit pass independently of other passes? The pass I’m looking at is a MachineFunctionPass, so the code is already using target-specific instructions.

What I’m really looking to do is to see that the pass is correctly converting certain target-specific instructions sequences into other sequences, but I’m unsure how I can get an input in the correct format to construct a good unit test. Can I generate an “.ll” file using target specific instructions and then pass it through to a back-end MachineFunctionPass to test specifically just that one pass?

Chris Dewhurst,
Lero, University of Limerick.

Hi,

I’ve been trying all sorts of things to be able to resolve this, but I can’t find way to get this done.

Does anyone know how I might introduce a transform at the ASM level?

Chris.

You can print the function as MIR and then use that as an input to llc. llc can run individual passes on .mir input with -run-pass.

-Krzysztof

Try to create a .mir test and use “llc -start-after PASSNAME”.

BTW: If you want to review a patch that adds -start-before: https://reviews.llvm.org/D23089

  • Matthias