SuccessChanges

Summary

  1. [dexter] Change line label reference syntax to enable label-relative offsets (1/2) (details)
  2. [dexter] Change line label reference syntax to enable label-relative offsets (2/2) (details)
  3. [dexter] Remove accidentally committed .rej file (details)
  4. [clang-repl] Tell the LLJIT the exact target triple we use. (details)
  5. [clang][deps] Explicitly enable C++ modules in a test (details)
  6. [mlir] Rename MlirLspServerLib -> MLIRLspServerLib (details)
  7. [ARM] Fix the operand used for WLS in ARMLowOverheadLoops (details)
  8. [mlir] Add conversion from Complex to Standard dialect for NotEqualOp. (details)
  9. Recommit: "[Debugify][Original DI] Test dbg var loc preservation"" (details)
  10. [clang] Fix for "Bug 27113 - MSVC-compat __identifier implementation incomplete" (details)
  11. [clang] Fix Wnested-anon-types in ABIArgInfo (details)
  12. [mlir] Add convenience builders for EqualOp and NotEqualOp. (details)
  13. [analyzer][Z3][NFC] Use GTEST_SKIP instead of hacks (details)
  14. [mlir] NFC - Use builder.getI1Type() (details)
  15. [IR][Verifier] Relax restriction on alloca address spaces (details)
  16. [NFC][Debugify][Original DI] Use MapVector insted of DenseMap for DI tracking (details)
  17. [InstSimplify] Properly constrain {insert,extract}_subvector intrinsic fold (details)
  18. 3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" (details)
  19. [NFC][AMDGPU] Mark C code in AMDGPUUsage.rst (details)
Commit 723a8ae5dab25b329c6aebc25564b3630e8e7d17 by orlando.hyams
[dexter] Change line label reference syntax to enable label-relative offsets (1/2)

This patch changes how line labels are resolved in order to enable
label-relative offsets to be used in commands. This is a breaking change in
dexter. Instead of using label references directly as argument values, labels
will instead be referenced through a function `ref(str)`.

    // No way to use offsets currently.
    Currently: DexExpectWatchValue('x', '1', on_line='labled_line')
    Patched:   DexExpectWatchValue('x', '1', on_line=ref('labled_line'))
    Patched:   DexExpectWatchValue('x', '1', on_line=ref('labled_line') + 3)

A dexter command is "parsed" by finding the whole command and sending it off to
`eval`. This change adds a function called `ref` to the `eval` globals map that
simply looks up the name and returns an int. If the line name hasn't been
defined, or a name is defined more than once, an error is reported (see
err_bad_label_ref.cpp and err_duplicate_label.cpp). Label offsets can be
achieved by simply writing the desired expression.

The rationale behind removing the existing label referencing mechanic is for
consistency and to simplify the code required to make labels work.

I've separated the update to llvm's dexter tests into another patch for ease of
review here (D101148). Here is a small python script which can be used to
update tests to use the new syntax:
https://gist.github.com/OCHyams/8255efe7757cac266440ed2ba55f1442

If it helps anyone using dexter on downstream tests we can come up with a
deprecation plan instead out outright removing the existing syntax.

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D101147
The file was modifieddebuginfo-tests/dexter/dex/command/commands/DexExpectProgramState.py
The file was modifieddebuginfo-tests/dexter/dex/command/commands/DexExpectWatchBase.py
The file was addeddebuginfo-tests/dexter/feature_tests/subtools/test/label_offset.cpp
The file was modifieddebuginfo-tests/dexter/dex/command/ParseCommand.py
The file was modifieddebuginfo-tests/dexter/Commands.md
The file was addeddebuginfo-tests/dexter/feature_tests/subtools/test/err_bad_label_ref.cpp
The file was addeddebuginfo-tests/dexter/feature_tests/subtools/test/err_duplicate_label.cpp
The file was modifieddebuginfo-tests/dexter/dex/command/commands/DexLimitSteps.py
Commit 98e7911f9517cd9eab0f566ca445096d9e206a75 by orlando.hyams
[dexter] Change line label reference syntax to enable label-relative offsets (2/2)

Update dexter tests to use the new line label reference syntax introduced in D101147.

Updated with:
https://gist.github.com/OCHyams/8255efe7757cac266440ed2ba55f1442

Reviewed By: chrisjackson, jmorse

Differential Revision: https://reviews.llvm.org/D101148
The file was modifieddebuginfo-tests/dexter-tests/memvars/struct-dse.c
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_watch_type.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/ctrl-flow.c
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_overlapping_ranges.cpp
The file was modifieddebuginfo-tests/dexter-tests/optnone-simple-functions.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/ptr-to.c
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_line_mismatch.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/inline-escaping-function.c
The file was addeddebuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp.rej
The file was modifieddebuginfo-tests/dexter-tests/stack-var.c
The file was modifieddebuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp
The file was modifieddebuginfo-tests/dexter-tests/optnone-loops.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_program_state.cpp
The file was modifieddebuginfo-tests/dexter-tests/namespace.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/bitcast.c
The file was modifieddebuginfo-tests/dexter-tests/asan.c
The file was modifieddebuginfo-tests/dexter-tests/hello.c
The file was modifieddebuginfo-tests/dexter-tests/memvars/loop.c
The file was modifieddebuginfo-tests/dexter-tests/optnone-vectors-and-functions.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/implicit-ptr.c
The file was modifieddebuginfo-tests/dexter-tests/ctor.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_check_json_step_count.cpp
The file was modifieddebuginfo-tests/dexter-tests/optnone-struct-and-methods.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/inlining.c
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_same_line_conditional.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_expect_loop.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_watch_value.cpp
The file was modifieddebuginfo-tests/dexter-tests/deferred_globals.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_program_state.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/const-branch.c
The file was modifieddebuginfo-tests/dexter-tests/nrvo-string.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_watch_value.cpp
The file was modifieddebuginfo-tests/dexter-tests/optnone-fastmath.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/subtools/view.cpp
The file was modifieddebuginfo-tests/dexter-tests/realigned-frame.cpp
The file was modifieddebuginfo-tests/dexter-tests/vla.c
The file was modifieddebuginfo-tests/dexter-tests/memvars/inlining-dse.c
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_watch_type.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/subtools/test/source-root-dir.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/merged-store.c
The file was modifieddebuginfo-tests/dexter-tests/inline-line-gap.cpp
The file was modifieddebuginfo-tests/dexter-tests/aggregate-indirect-arg.cpp
The file was modifieddebuginfo-tests/dexter-tests/dbg-arg.c
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/limit_steps_expect_value.cpp
The file was modifieddebuginfo-tests/dexter-tests/memvars/unused-merged-value.c
The file was modifieddebuginfo-tests/dexter-tests/asan-deque.cpp
The file was modifieddebuginfo-tests/dexter-tests/global-constant.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/limit_steps/unconditional.cpp
The file was modifieddebuginfo-tests/dexter-tests/nrvo.cpp
Commit 2348b5c943198ffedb3494b8443ae172ba96c00e by orlando.hyams
[dexter] Remove accidentally committed .rej file

The file was added in 98e7911f9517.
The file was removeddebuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp.rej
Commit 49f9532165f0cc0485a7da84662ebf63d155652c by v.g.vassilev
[clang-repl] Tell the LLJIT the exact target triple we use.

Some systems use a different data layout. For instance, s390x the layout of
machines with vector registers is different from the ones without. In such
cases, the JIT will automatically detect the vector registers and go out of
sync.

This patch tells the JIT what is the target triple of the generated code so that
both ends are in sync.

Discussion available in https://reviews.llvm.org/D96033. Thanks to @uweigand for
helping understand the issue.

Differential revision https://reviews.llvm.org/D102756
The file was modifiedclang/lib/Interpreter/IncrementalExecutor.cpp
The file was modifiedclang/lib/Interpreter/IncrementalExecutor.h
The file was modifiedclang/lib/Interpreter/Interpreter.cpp
Commit 89ea60f392aa0a98e8d7ed8baa8ccbbec14d4050 by Jan Svoboda
[clang][deps] Explicitly enable C++ modules in a test

In Apple Clang, enabling modules for C++ input requires additional flag: -fcxx-modules.
The file was modifiedclang/test/ClangScanDeps/Inputs/modules_inferred_cdb.json
Commit 0297506d20dfeb5dd10c69d9327cd927a2d8c3ad by kkleine
[mlir] Rename MlirLspServerLib -> MLIRLspServerLib

I noticed while packaging mlir that most mlir library names start
with `libMLIR`. The only different libary was `libMlirLspServerLib.a`.

That's why I changed the library to be similarly named to the others.

Differential Revision: https://reviews.llvm.org/D102881
The file was modifiedmlir/tools/mlir-lsp-server/CMakeLists.txt
The file was modifiedmlir/lib/Tools/mlir-lsp-server/CMakeLists.txt
Commit e7a6df68a6f5cd1122582b89f8cb3d4ebfa49c71 by david.green
[ARM] Fix the operand used for WLS in ARMLowOverheadLoops

The Loop start instruction handled by the ARMLowOverheadLoops are:
$lr = t2DoLoopStart $r0
$lr = t2DoLoopStartTP $r1, $r0
$lr = t2WhileLoopStartLR $r0, %bb, implicit-def dead $cpsr
All three of these will have LR as the 0 argument, the trip count as the
1 argument.

This patch updated a few places in ARMLowOverheadLoops where the 0th arg
was being used for t2WhileLoopStartLR instructions as the trip count.
One place was entirely removed as it does not seem valid any more, the
case the code is trying to protect against should not be able to occur
with our correct-by-construction low overhead loops.

Differential Revision: https://reviews.llvm.org/D102620
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-memtp-loop.ll
Commit fb8b2b86d3d1ba6e26a5d9296e2b235eb36d10b8 by akuegel
[mlir] Add conversion from Complex to Standard dialect for NotEqualOp.

Differential Revision: https://reviews.llvm.org/D102902
The file was modifiedmlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
The file was modifiedmlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
The file was modifiedmlir/test/Conversion/ComplexToStandard/full-conversion.mlir
Commit b9076d119a5b2d380d8868ee5e4dc4fdc5ba04a6 by djtodoro
Recommit: "[Debugify][Original DI] Test dbg var loc preservation""

    [Debugify][Original DI] Test dbg var loc preservation

    This is an improvement of [0]. This adds checking of
    original llvm.dbg.values()/declares() instructions in
    optimizations.

    We have picked a real issue that has been found with
    this (actually, picked one variable location missing
    from [1] and resolved the issue), and the result is
    the fix for that -- D100844.

    Before applying the D100844, using the options from [0]
    (but with this patch applied) on the compilation of GDB 7.11,
    the final HTML report for the debug-info issues can be found
    at [1] (please scroll down, and look for
    "Summary of Variable Location Bugs"). After applying
    the D100844, the numbers has improved a bit -- please take
    a look into [2].

    [0] https://llvm.org/docs/HowToUpdateDebugInfo.html#\
        test-original-debug-info-preservation-in-optimizations
    [1] https://djolertrk.github.io/di-check-before-adce-fix/
    [2] https://djolertrk.github.io/di-check-after-adce-fix/

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

The Unit test was failing because the pass from the test that
modifies the IR, in its runOnFunction() didn't return 'true',
so the expensive-check configuration triggered an assertion.
The file was modifiedllvm/lib/Transforms/Utils/Debugify.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Debugify.h
The file was modifiedllvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html
The file was modifiedllvm/utils/llvm-original-di-preservation.py
The file was modifiedllvm/unittests/Transforms/Utils/DebugifyTest.cpp
The file was modifiedllvm/docs/HowToUpdateDebugInfo.rst
Commit b5b3843f8d9327039bbcc08b61ff768081a2220d by hans
[clang] Fix for "Bug 27113 - MSVC-compat __identifier implementation incomplete"

this patch fixes Bug 27113 by adding support for string literals to the
implementation of the MS extension __identifier.

Differential revision: https://reviews.llvm.org/D100252
The file was modifiedclang/lib/Lex/PPMacroExpansion.cpp
The file was modifiedclang/test/Parser/MicrosoftExtensions.cpp
Commit ebd25fde5e04fa954f3fbad3fa0ee89f511a907a by Raphael Isemann
[clang] Fix Wnested-anon-types in ABIArgInfo

D98794 added the DirectAttr/IndirectAttr struct fields to that union, but
declaring anonymous structs in an anonymous union triggers `-Wnested-anon-types`
warnings. We can't just give them a name as they are in an anonymous union, so
this just declares the type outside.

```
clang/include/clang/CodeGen/CGFunctionInfo.h:97:5: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types]
    struct {
    ^
clang/include/clang/CodeGen/CGFunctionInfo.h:101:5: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types]
    struct {
    ^
```

Reviewed By: chill

Differential Revision: https://reviews.llvm.org/D102903
The file was modifiedclang/include/clang/CodeGen/CGFunctionInfo.h
Commit 7eb85cdb103e60582ec6a8dffa2f2d97da616ee0 by akuegel
[mlir] Add convenience builders for EqualOp and NotEqualOp.

The result type is always I1. This additional builder allows to omit the result type.

Differential Revision: https://reviews.llvm.org/D102905
The file was modifiedmlir/include/mlir/Dialect/Complex/IR/ComplexOps.td
Commit 3febf0b507e6257414d92744fd646840aa38e5d2 by balazs.benics
[analyzer][Z3][NFC] Use GTEST_SKIP instead of hacks

Since @bkramer bumped gtest to 1.10.0 I think it's a good time to clean
up some of my hacks.

Reviewed By: Szelethus

Differential Revision: https://reviews.llvm.org/D102643
The file was modifiedclang/unittests/StaticAnalyzer/FalsePositiveRefutationBRVisitorTest.cpp
Commit a1a429dc1d95112bc1122432d9b632512e1e636e by akuegel
[mlir] NFC - Use builder.getI1Type()
The file was modifiedmlir/include/mlir/Dialect/Complex/IR/ComplexOps.td
Commit 81bc732816107f6aff4fd61980f7b03cc92332b5 by wingo
[IR][Verifier] Relax restriction on alloca address spaces

In the WebAssembly target, we would like to allow alloca in two address
spaces.  The alloca instruction already has an address space argument,
but the verifier asserts that the address space of an alloca is the
default alloca address space from the datalayout.  This patch removes
this restriction.  Targets that would like to impose additional
restrictions should do so via target-specific verification passes.

Differential Revision: https://reviews.llvm.org/D101045
The file was modifiedllvm/docs/LangRef.rst
The file was removedllvm/test/Assembler/datalayout-alloca-addrspace-mismatch-1.ll
The file was removedllvm/test/Assembler/datalayout-alloca-addrspace-mismatch-2.ll
The file was removedllvm/test/Assembler/datalayout-alloca-addrspace-mismatch-0.ll
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was removedllvm/test/CodeGen/AMDGPU/invalid-alloca.ll
The file was modifiedllvm/test/Assembler/drop-debug-info-nonzero-alloca.ll
Commit 35490329cb161029329152a956783ef1873824ea by djtodoro
[NFC][Debugify][Original DI] Use MapVector insted of DenseMap for DI tracking

By using MapVector instead of DenseMap, reporting issues will be in
deterministic order.

Differential Revision: https://reviews.llvm.org/D102841
The file was modifiedllvm/include/llvm/Transforms/Utils/Debugify.h
Commit 5a476987f7d653eb7ce2d8ba0ddf0125f481117e by joe.ellis
[InstSimplify] Properly constrain {insert,extract}_subvector intrinsic fold

The previous rule:

   (insert_vector _, (extract_vector X, 0), 0) -> X

is not quite correct. The correct fold should be:

   (insert_vector Y, (extract_vector X, 0), 0) -> X
   where: Y is X, or Y is undef

This commit updates the pattern.

Reviewed By: peterwaller-arm, paulwalker-arm

Differential Revision: https://reviews.llvm.org/D102699
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/insert-vector.ll
Commit 36ec97f76ac0d8be76fb16ac521f55126766267d by stephen.tozer
3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"

This reapplies c0f3dfb9, which was reverted following the discovery of
crashes on linux kernel and chromium builds - these issues have since
been fixed, allowing this patch to re-land.

This reverts commit 4397b7095d640f9b9426c4d0135e999c5a1de1c5.
The file was modifiedllvm/include/llvm/IR/Operator.h
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was addedllvm/test/DebugInfo/salvage-nonconst-binop.ll
The file was modifiedllvm/lib/IR/IntrinsicInst.cpp
The file was addedllvm/test/DebugInfo/salvage-gep.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/DebugInfo/NVPTX/debug-info.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was modifiedllvm/lib/IR/Operator.cpp
The file was modifiedllvm/test/Transforms/Reassociate/undef_intrinsics_when_deleting_instructions.ll
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
The file was modifiedllvm/test/Transforms/InstCombine/debuginfo-sink.ll
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
Commit b408efe4ffcd7a27dd80bb5824a10e8b221bb6aa by Tony.Tye
[NFC][AMDGPU] Mark C code in AMDGPUUsage.rst

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D102910
The file was modifiedllvm/docs/AMDGPUUsage.rst