ychen added a comment.

In D118428#3294880 <https://reviews.llvm.org/D118428#3294880>, @rnk wrote:

> In D118428#3294411 <https://reviews.llvm.org/D118428#3294411>, @ychen wrote:
>
>> The passes in `lib/Transforms/Instrumentation` runs with 
>> `EmitAssemblyHelper::RunOptimizationPipeline`. JMC pass runs with 
>> `EmitAssemblyHelper::RunCodegenPipeline`.
>
> Sure, but that's a choice. Most of the instrumentation passes (ASan) are also 
> designed to run late to avoid interfering with middle end optimization. Is 
> there a specific reason that JMC has to be a codegen pass? Maybe you've 
> already mentioned it, apologies if so.

The instrumentation is per-function, ideally for each function that has 
debuginfo and ends up in the executable. So I want it to happen the last in the 
IR codegen pipeline (target could arrange additional IR passes, they may 
duplicate functions or anything). Making it codegen pass also makes it 
LTO-friendly, otherwise, I need to make sure the pass runs once. The JMC pass 
could be a machine-independent MIR pass too, but I think there is not much 
benefit for that.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118428/new/

https://reviews.llvm.org/D118428

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to