SuccessChanges

Summary

  1. [MachineLoop] New helper isLoopInvariant() (details)
  2. [clang][cli] Port DiagnosticOpts to new option parsing system (details)
  3. [VE] Add SVOB intrinsic instruction (details)
  4. [LV] Don't sink into replication regions (details)
  5. Revert "[clang][cli] Port DiagnosticOpts to new option parsing system" (details)
  6. [NFC] Update some PPC tests marked as auto-generated (details)
Commit 8af859d514fa0ef4a75b3c3dfb1ee8f42ac9bd04 by sjoerd.meijer
[MachineLoop] New helper isLoopInvariant()

This factors out code from MachineLICM that determines whether an instruction
is loop-invariant, which is a generally useful function. Thus this allows to
use that helper elsewhere too.

Differential Revision: https://reviews.llvm.org/D94082
The file was modifiedllvm/include/llvm/CodeGen/MachineLoopInfo.h
The file was modifiedllvm/lib/CodeGen/MachineLoopInfo.cpp
The file was modifiedllvm/lib/CodeGen/MachineLICM.cpp
Commit 8e3230ffa3ad2994c3bbddffc3e53b3bccb2ee41 by jan_svoboda
[clang][cli] Port DiagnosticOpts to new option parsing system

This patch introduces additional infrastructure necessary to accommodate DiagnosticOptions.

DiagnosticOptions are unique in that they are parsed by the same function in cc1 AND in the Clang driver. The call to the parsing function from the driver occurs early on in the compilation process, where no proper DiagnosticEngine exists, because the diagnostic options (passed through command line) are not known yet.

To preserve the current behavior, we need to be able to selectively parse:
* all options (for -cc1),
* only diagnostic options (for driver).

This patch achieves that in the following way:
* new MacroPrefix field is added to the Option TableGen class,
* new IsDiag TableGen mixin sets MacroPrefix to "DIAG_",
* TableGen backend serializes option records into a macro with the prefix,
* CompilerInvocation parse/generate methods define the [DIAG_]OPTION_WITH_MARSHALLING macros to handle diagnostic options separately.

Depends on D93700, D93701 & D93702.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D84673
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticOptions.h
The file was modifiedllvm/utils/TableGen/OptParserEmitter.cpp
The file was modifiedllvm/include/llvm/Option/OptParser.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit 12167632bc5cafee68da31592dae78a20a3e7e7a by marukawa
[VE] Add SVOB intrinsic instruction

Add SVOB intrinsic instruction and a regression test.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D94279
The file was addedllvm/test/CodeGen/VE/VELIntrinsics/svob.ll
The file was modifiedllvm/lib/Target/VE/VEInstrIntrinsicVL.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsVE.td
Commit 72fb5ba079019c2108d676526b5285b228795e48 by david.green
[LV] Don't sink into replication regions

The new test case here contains a first order recurrences and an
instruction that is replicated. The first order recurrence forces an
instruction to be sunk _into_, as opposed to after the replication
region. That causes several things to go wrong including registering
vector instructions multiple times and failing to create dominance
relations correctly.

Instead we should be sinking to after the replication region, which is
what this patch makes sure happens.

Differential Revision: https://reviews.llvm.org/D93629
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit 8e3e148c888e1d9d2b11721112a54a62e33a635a by jan_svoboda
Revert "[clang][cli] Port DiagnosticOpts to new option parsing system"

This reverts commit 8e3230ff
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/utils/TableGen/OptParserEmitter.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticOptions.h
The file was modifiedllvm/include/llvm/Option/OptParser.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
Commit 6175fcf01f17e0bd1155aaaba977b9baa88ee61d by qiucofan
[NFC] Update some PPC tests marked as auto-generated

Update CodeGen regression tests with marker at first line telling it's
auto-generated by the script, under PowerPC directory. For some reason,
these tests are generated but manually written, which makes things
unclear when someone's change affecting them.

However, some tests only show simple change after re-generated, like
extra blank lines, disappearing '.localentry', etc. Besides, some tests
are generated but added checks for debug output. This commit doesn't try
updating them.
The file was modifiedllvm/test/CodeGen/PowerPC/pr33547.ll
The file was modifiedllvm/test/CodeGen/PowerPC/scalar-rounding-ops.ll
The file was modifiedllvm/test/CodeGen/PowerPC/pr35688.ll
The file was modifiedllvm/test/CodeGen/PowerPC/ppc-32bit-shift.ll
The file was modifiedllvm/test/CodeGen/PowerPC/lsr-ctrloop.ll
The file was modifiedllvm/test/CodeGen/PowerPC/vec_constants.ll
The file was modifiedllvm/test/CodeGen/PowerPC/maddld.ll
The file was modifiedllvm/test/CodeGen/PowerPC/vec_int_ext.ll
The file was modifiedllvm/test/CodeGen/PowerPC/no-ctr-loop-if-exit-in-nested-loop.ll
The file was modifiedllvm/test/CodeGen/PowerPC/tls-pie-xform.ll
The file was modifiedllvm/test/CodeGen/PowerPC/noPermuteFormasking.ll