eugenis added a comment.

To explain some design decisions:

The analysis is added to the IR pipeline and not to the AArch64 codegen 
pipeline mainly because we plan to extend it with ThinLTO support in the 
future. To do that, module summary builder will need to depend on the 
(function-)local stack safety analysis pass, and the global analysis result 
will be provided by the combined summary reader, and all of that must happen in 
the target-independent IR pipeline.

Another reason is that the legacy pass manager, which is still used for 
codegen, is not good at mixing function and module analyses. AFAIK a module 
pass that depends on function analysis will always produce an on-the-fly pass 
manager which can not reuse earlier analysis results; and a function pass can 
not depend on a module analysis at all (at least I could not make it work).

For these two reasons I opted not to use analysis manager framework to pass the 
safety information to AArch64StackTaggingPass, and chose to use alloca metadata 
instead.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73513



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

Reply via email to