[PATCH] D21921: [proof of concept] Port old PM CGSCC visitation logic to new PM

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 30 23:43:42 PDT 2016


silvas added a comment.

I'd like to emphasize that there are still significant work items to be done as part of the transition to the new pass manager: https://llvm.org/bugs/showdependencytree.cgi?id=28315&hide_resolved=1
(Please add more bugs there if there is anything else you can think of!)
In order to get to the point that we can delete all these old-PM shims in the middle-end, we have things like optnone/optbisect, bugpoint support, debug-pass=Structure, and pass manager builder (the new PM doesn't know about dependencies which has the potential to make this quite non-trivial).

I'm sure there will be plenty of other yaks to be found when actually putting the new PM through its paces on real production compilation workloads. There are e.g. lingering issues with excessive memory use due to excessive caching and I'm sure plenty of unknown unknowns. Also unexpected perf swings due to new PM vs old PM will be fun to investigate :)
(One thing I discovered while doing this proof of concept port was that the "normal" use of BasicAA in the new PM uses domtree but it doesn't in the old PM; it was causing crashes in some places (see the note in FunctionAttrs.cpp; domtree would crash on declarations there so I had to add an isDeclaration check))


Repository:
  rL LLVM

http://reviews.llvm.org/D21921





More information about the llvm-commits mailing list