Changes

Summary

  1. [TableGen] Use range-based for loop. NFC (details)
  2. [LoopDeletion] Add test for PR49967 (NFC) (details)
  3. [TableGen] Use MachineValueTypeSet in place of SmallSet. (details)
  4. [lit] Fix the return code for "not not" after evaluating "not" internally (details)
  5. [Coroutines] Move CoroEarly pass to before AlwaysInliner (details)
Commit f1aaa306ee6c7bf73dfd7b578a57ba8807bde539 by craig.topper
[TableGen] Use range-based for loop. NFC
The file was modifiedllvm/utils/TableGen/DAGISelEmitter.cpp
Commit 6e8e165085d4506d3df15da79f70abe1237a26ba by nikita.ppv
[LoopDeletion] Add test for PR49967 (NFC)

Test case for a SCEV invalidation bug caused by D100264, which
has since been reverted.
The file was addedllvm/test/Transforms/LoopDeletion/pr49967.ll
Commit f08b171b18744a2e75f13e7d4860a51eebd4d5e8 by craig.topper
[TableGen] Use MachineValueTypeSet in place of SmallSet.

MachineValueTypeSet is effectively a std::bitset<256>. This allows
us quickly insert into the set and check if a type is in the set.
The file was modifiedllvm/utils/TableGen/CodeGenDAGPatterns.cpp
Commit d0b03ec401e8465b88893a4c56aeb0c787a54ad9 by martin
[lit] Fix the return code for "not not" after evaluating "not" internally

This fixes cases where "not not <command>" is supposed to return
only the error codes 0 or 1, but after efee57925c3f46c74c6697,
it passed the original error code through.

This was visible on AIX in the shtest-output-printing.py testcase,
where 'wc' returns 2, while it returns 1 on other platforms, and the
test required "not not" to normalize it to 1.
The file was modifiedllvm/utils/lit/lit/TestRunner.py
The file was modifiedllvm/utils/lit/tests/shtest-not.py
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/fail2.py
The file was addedllvm/utils/lit/tests/Inputs/shtest-not/not-calls-fail2.txt
Commit 2b50f5a4343f8fb06acaa5c36355bcf58092c9cd by lxfind
[Coroutines] Move CoroEarly pass to before AlwaysInliner

Presplit coroutines cannot be inlined. During AlwaysInliner we check if a function is a presplit coroutine, if so we skip inlining.
The presplit coroutine attributes are set in CoroEarly pass.
However in O0 pipeline, AlwaysInliner runs before CoroEarly, so the attribute isn't set yet and will still inline the coroutine.
This causes Clang to crash: https://bugs.llvm.org/show_bug.cgi?id=49920

Differential Revision: https://reviews.llvm.org/D100282
The file was modifiedclang/test/CodeGenCoroutines/coro-always-inline.cpp
The file was modifiedllvm/test/Transforms/Coroutines/ex5.ll
The file was modifiedllvm/test/Transforms/Coroutines/phi-coro-end.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-recursive.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex3.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/restart-trigger.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex4.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroEarly.cpp
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-O2.ll
The file was addedclang/test/CodeGenCoroutines/coro-always-inline-resume.cpp
The file was modifiedllvm/test/Transforms/Coroutines/ex0.ll
The file was modifiedclang/lib/CodeGen/CGCoroutine.cpp
The file was modifiedllvm/test/Transforms/Coroutines/ex1.ll