SuccessChanges

Summary

  1. [lldb] Sort forward declarations in lldb-forward.h (details)
  2. [LazyCallGraph] Fix ambiguous index value (details)
  3. [DebugInfo][test] Fix section flags/type to avoid warning/error in the future (details)
  4. [DebugInfo]: Added support for DWARFv5 Info section header parsing in llvm-dwp utility. (details)
  5. Re-land new pass manager coro-split and coro-elide (details)
  6. [Coroutines][4/6] New pass manager: coro-cleanup (details)
  7. [Coroutines][5/6] Add coroutine passes to pipeline (details)
Commit 7c4b70402c6679427a5a2d4508355af7d4c61678 by Jonas Devlieghere
[lldb] Sort forward declarations in lldb-forward.h

Sort forward declarations alphabetically. Also remove the two LLVM
forward declares as they frankly don't belong here.
The file was modifiedlldb/include/lldb/lldb-forward.h
Commit 26f356350bd56f5418e5fae230b1a6931774c8f1 by modocache
[LazyCallGraph] Fix ambiguous index value

After having committed https://reviews.llvm.org/D72226, 2 buildbots
running GCC 5.4.0 began failing. The cause was the order in which those
compilers evaluated the left- and right-hand sides of the expression
`RC.SCCIndices[C] = RC.SCCIndices.size();`. This commit splits the
expression into multiple statements to avoid ambiguity, and adds a test
case that exercises the code that caused the test failures on those
older compilers (which was originally included in the reviewed patch,
https://reviews.llvm.org/D72226).
The file was modifiedllvm/unittests/Analysis/CGSCCPassManagerTest.cpp
The file was modifiedllvm/lib/Analysis/LazyCallGraph.cpp
Commit d840e5452315e69d44cfe44b766e633964681b6a by maskray
[DebugInfo][test] Fix section flags/type to avoid warning/error in the future

A future MC change may add a warning/error when a .section directive
specifies incorrect sh_flags/sh_type. Fix the tests to use correct
sh_flags/sh_type.
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-str-offsets.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-header.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-line-dwo.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/typeunit-name.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-rnglists-dwarf64.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-str-offsets-dwp.s
The file was modifiedllvm/test/DebugInfo/X86/invalid-unit-header.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/eh-frame-return-address-reg.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/verify_debug_abbrev.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug-names-find-dwo.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-rnglists.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-str-offsets-invalid-6.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_loc_dwo.s
Commit a71feda24ea092ec14474216532b3ce9883b81ab by SourabhSingh.Tomar
[DebugInfo]: Added support for DWARFv5 Info section header parsing in llvm-dwp utility.

Summary:
This patch teaches llvm-dwp to parse DWARFv5 info section header.
Tested this using asm test case caontaining DWARFv5 info.
Assemling it to DWO object, checking corresponding content using llvm-dwarfdump. Then finally, packaging it
to DWP using llvm-dwp and  again checking corresponding content using llvm-dwarfdump.

Reviewers: dblaikie, aprantl, probinson.

Reviewed By: dblaikie.

Differential Revision: https://reviews.llvm.org/D74425
The file was addedllvm/test/tools/llvm-dwp/X86/info-v5.s
The file was addedllvm/test/tools/llvm-dwp/X86/wrong-unit-type-info-v5.s
The file was modifiedllvm/tools/llvm-dwp/llvm-dwp.cpp
Commit 2365238b9d0bc566f2e6dd1f10f0f3cb623292f4 by modocache
Re-land new pass manager coro-split and coro-elide

This re-applies patches https://reviews.llvm.org/D71899 and
https://reviews.llvm.org/D71900, which were reverted in
https://reviews.llvm.org/rG11053a1cc61 and
https://reviews.llvm.org/rGe999aa38d16. The underlying problem that
caused two buildbots to fail with these patches is explained in
https://reviews.llvm.org/rG26f356350bd -- older compliers disagree with
the order in which the left- and right-hand side of an assignment in
LazyCallGraph ought to be evaluated, which caused an assertion in
SmallVector::operator[] to fire when the test suite was run.
The file was addedllvm/test/Transforms/Coroutines/coro-split-eh-01.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug.ll
The file was removedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-materialize.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-catchswitch.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-spill-corobegin.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-dbg.ll
The file was addedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-00.ll
The file was addedllvm/test/Transforms/Coroutines/coro-alloc-with-param-O2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-arrayalloca.ll
The file was addedllvm/test/Transforms/Coroutines/coro-split-eh-00.ll
The file was addedllvm/test/Transforms/Coroutines/coro-alloc-with-param-O0.ll
The file was modifiedllvm/test/Transforms/Coroutines/restart-trigger.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-unreachable.ll
The file was addedllvm/include/llvm/Transforms/Coroutines/CoroElide.h
The file was addedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-param-copy.ll
The file was removedllvm/test/Transforms/Coroutines/coro-split-eh.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-heap-elide.ll
The file was addedllvm/include/llvm/Transforms/Coroutines/CoroSplit.h
The file was modifiedllvm/test/Transforms/Coroutines/coro-padding.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroElide.cpp
The file was addedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-elide.ll
The file was modifiedllvm/test/Transforms/Coroutines/no-suspend.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-spill-after-phi.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-00.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail1.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-hidden.ll
The file was removedllvm/test/Transforms/Coroutines/coro-alloc-with-param.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-alloc.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def
Commit 5a187d8ed11fc85365d0d3452a5001a913b2dc4b by modocache
[Coroutines][4/6] New pass manager: coro-cleanup

Summary:
Depends on https://reviews.llvm.org/D71900.

The fourth in a series of patches that ports the LLVM coroutines passes
to the new pass manager infrastructure. This patch implements
'coro-cleanup'.

No existing regression tests check the behavior of coro-cleanup on its
own, so this patch adds one. (A test named 'coro-cleanup.ll' exists, but
it relies on the entire coroutines pipeline being run. It's updated to
test the new pass manager in the 5th patch of this series.)

Reviewers: GorNishanov, lewissbaker, chandlerc, junparser, deadalnix, wenlei

Reviewed By: wenlei

Subscribers: wenlei, EricWF, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71901
The file was modifiedllvm/lib/Transforms/Coroutines/CoroCleanup.cpp
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was addedllvm/test/Transforms/Coroutines/coro-cleanup-lowering.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/include/llvm/Transforms/Coroutines/CoroCleanup.h
Commit 72961071f35a7da7e67ee3c6056b19900e8f28cc by modocache
[Coroutines][5/6] Add coroutine passes to pipeline

Summary:
Depends on https://reviews.llvm.org/D71901.

The fifth in a series of patches that ports the LLVM coroutines passes
to the new pass manager infrastructure.

The first 4 patches allow users to run coroutine passes by invoking, for
example `opt -passes=coro-early`. However, most of LLVM's tests for
coroutines use an option, `opt -enable-coroutines`, which adds all 4
coroutine passes to the appropriate legacy pass manager extension points.
This patch does the same, but using the new pass manager: when
coroutine features are enabled and the new pass manager is being used,
this adds the new-pass-manager-compliant coroutine passes to the pass
builder's pipeline.

This allows us to run all coroutine tests using the new pass manager
(besides those that use the coroutine retcon ABI used by the Swift
compiler, which is not yet supported in the new pass manager).

Reviewers: GorNishanov, lewissbaker, chandlerc, junparser, wenlei

Subscribers: wenlei, EricWF, Prazek, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71902
The file was modifiedllvm/test/Transforms/Coroutines/ex0.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex4.ll
The file was modifiedllvm/include/llvm/Passes/PassBuilder.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/Coroutines/ex5.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-cleanup.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex1.ll
The file was modifiedllvm/test/Transforms/Coroutines/restart-trigger.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex2.ll
The file was modifiedllvm/tools/opt/NewPMDriver.h
The file was modifiedllvm/tools/opt/NewPMDriver.cpp
The file was modifiedllvm/tools/opt/opt.cpp
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex3.ll
The file was modifiedllvm/test/Transforms/Coroutines/phi-coro-end.ll
The file was modifiedllvm/test/Transforms/Coroutines/smoketest.ll