[all-commits] [llvm/llvm-project] 6b1ce8: [NewPM][CGSCC] Handle newly added functions in upd...

aeubanks via All-commits all-commits at lists.llvm.org
Wed Sep 23 15:24:47 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6b1ce83a1238815899cf18f69bbc0eb37679a410
      https://github.com/llvm/llvm-project/commit/6b1ce83a1238815899cf18f69bbc0eb37679a410
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2020-09-23 (Wed, 23 Sep 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/LazyCallGraph.h
    M llvm/lib/Analysis/CGSCCPassManager.cpp
    M llvm/lib/Analysis/LazyCallGraph.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/Utils/CallGraphUpdater.cpp
    M llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
    M llvm/unittests/Analysis/LazyCallGraphTest.cpp

  Log Message:
  -----------
  [NewPM][CGSCC] Handle newly added functions in updateCGAndAnalysisManagerForPass

This seems to fit the CGSCC updates model better than calling
addNewFunctionInto{Ref,}SCC() on newly created/outlined functions.
Now addNewFunctionInto{Ref,}SCC() are no longer necessary.

However, this doesn't work on newly outlined functions that aren't
referenced by the original function. e.g. if a() was outlined into b()
and c(), but c() is only referenced by b() and not by a(), this will
trigger an assert.

This also fixes an issue I was seeing with newly created functions not
having passes run on them.

Ran check-llvm with expensive checks.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87798




More information about the All-commits mailing list