[PATCH] D70767: [Attributor] Add an Attributor CG-SCC passNOTE: Not completely finished, see TODOs below!

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 26 23:38:13 PST 2019


jdoerfert created this revision.
jdoerfert added reviewers: xbolva00, spatel, chandlerc, uenoku, sstefan1.
Herald added subscribers: dang, dexonsmith, steven_wu, bollu, hiraditya, mehdi_amini.
Herald added a project: LLVM.

In addition to the module pass, this patch introduces a CG-SCC pass that
runs the Attributor on a strongly connected component of the call graph
(both old and new PM). The Attributor was always design to be used on a
subset of functions which makes this patch mostly mechanical.

The one change is that we give up `norecurse` deduction in the module
pass in favor of doing it during the CG-SCC pass. This makes an
interfaces simpler but can be revisited.

TODO:

- CG update methods missing
- Explicit CG specific tests missing.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D70767

Files:
  llvm/include/llvm/InitializePasses.h
  llvm/include/llvm/LinkAllPasses.h
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/lib/LTO/LTOCodeGenerator.cpp
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Passes/PassRegistry.def
  llvm/lib/Transforms/IPO/Attributor.cpp
  llvm/lib/Transforms/IPO/IPO.cpp
  llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  llvm/test/Transforms/FunctionAttrs/liveness.ll
  llvm/test/Transforms/FunctionAttrs/norecurse.ll
  llvm/test/Transforms/FunctionAttrs/willreturn.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70767.231182.patch
Type: text/x-patch
Size: 29369 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191127/5d411324/attachment.bin>


More information about the llvm-commits mailing list