FailedChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [Alignment][NFC] Simplify IRTranslator::getMemOpAlignment (details)
  2. [Alignment][NFC] GlobalIsel Utils inferAlignFromPtrInfo (details)
  3. [Mips] Make MipsBranchExpansion aware of BBIT family of branch (details)
  4. Remove unused variable (details)
  5. Fix missing override (details)
  6. [Syntax] Remove delayed folding from tree building. (details)
  7. [Alignment][NFC] Transition to inferAlignFromPtrInfo (details)
  8. [NFC] Remove unuseful infrastructure (details)
  9. [RISCV] ELF attribute section for RISC-V. (details)
  10. [SCCP] Use constant ranges for casts. (details)
  11. [gn build] Port 581ba35291a (details)
  12. [AMDGPU] New llvm.amdgcn.ballot intrinsic (details)
  13. [Alignment][NFC] Transitionning more getMachineMemOperand call sites (details)
  14. [Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization (details)
  15. [ARM] Fix qdadd operand order (details)
  16. Correct the duplicate pragma marks in CommandObjectTarget.cpp (details)
  17. [Dexter] Add support for Windows to regression test suite. (details)
  18. [InstCombine] Transform extelt-trunc -> bitcast-extelt (details)
  19. [X86] Move canLowerByDroppingEvenElements earlier to be with matchShuffleWithPACK. NFCI. (details)
  20. [X86] Combine concat(palignr,palignr) -> palignr(concat,concat) (details)
  21. [Alignment][NFC] Transitionning more getMachineMemOperand call sites (details)
  22. [SCEV] Use backedge SCEV of PHI only if its input is loop invariant (details)
  23. [docs] Document coding standard for error and warning messages (details)
  24. [lld][ELF][test] Improve deplib.s (details)
  25. [ELF][test] Add test for --gc-sections + many sections (details)
  26. [ValueLattice] Distinguish between constant ranges with/without undef. (details)
  27. [LLD][ELF] Allow empty (.init|.preinit|.fini)_array to be RELRO (details)
  28. [VPlan] Move test strs to variables, silence spurious C4129 (NFC). (details)
  29. [clang-tidy] Fix crash in readability-redundant-string-cstr (details)
  30. [LoopTerminology] LCSSA form (details)
  31. [libc++] Do not rely on the environment to run filesystem tests (details)
  32. [clangd] Support new semanticTokens request from LSP 3.16. (details)
  33. [InstCombine] remove stray auto-generated test comment; NFC (details)
  34. [libc++] Set filesystem test flags in a lit.local.cfg (details)
  35. [libc++] Provide a method for adding compiler flags in lit.local.cfg files (details)
  36. [libc++] Quote the filesystem static env root in the source files instead of the command line (details)
  37. [X86][SSE] lowerShuffleWithPACK - extend to use chained PACKs for larger truncations (details)
  38. [libc++] Remove incorrect assertion in the filesystem tests (details)
  39. [ADT] Implement the Waymarking as an independent utility (details)
  40. [gn build] Port 154d517bc7d (details)
  41. Fix enumeral mismatch warning. NFCI. (details)
  42. Revert rGefe59d6717dcdf7777acb9b7a734e1a520bdf22a "[X86][SSE] lowerShuffleWithPACK - extend to use chained PACKs for larger truncations" (details)
  43. [obj2yaml] - Teach tool to dump program headers. (details)
  44. [SystemZ] Improve foldMemoryOperandImpl(). (details)
  45. [SystemZ] Add isCommutable flag on VFA and VFM. (details)
  46. [lldb/DWARF] Fix evaluator crash when accessing empty stack. (details)
  47. [libc++] Execute tests using an external shell (details)
  48. [MLIR][Vector] Add support for TupleGetOp folding through InsertSlicesOp and ExtractSlicesOp. (details)
  49. Revert "[lldb/DWARF] Fix evaluator crash when accessing empty stack." (details)
  50. [lldb/DWARF] Fix evaluator crash when accessing empty stack. (details)
  51. [lld][COFF][ELF][WebAssembly] Replace --[no-]threads /threads[:no] with --threads={1,2,...} /threads:{1,2,...} (details)
  52. [AssumeBundles] Preserve Information from Load/Store (details)
  53. [AssumeBundles] Preserve information in EarlyCSE (details)
  54. [libc++abi] Remove the old testit script (details)
  55. [Alignment][NFC] Deprecate MachineMemOperand::getMachineMemOperand version that takes an untyped alignement. (details)
  56. [SCCP] Limit use of range info for binops to integers for now. (details)
  57. [mlir][Linalg] Allow tiling of batch dimension for convolution ops with padding. (details)
  58. New symbolizer option to print files relative to the compilation directory. (details)
  59. Fix buildgo.sh script to fix linux build failure due to changes in ad1466f8cbc5. (details)
  60. [CodeComplete] Member completion for concept-constrained types. (details)
  61. Add manually overriding of the darwin SDK version (details)
  62. [X86][SSE] Simplify PTEST/TESTP tests for D76984 (details)
  63. [X86][SSE] Add additional PTEST/TESTP inversion tests (details)
  64. Make FunctionDecl::isDefined non-virtual, NFC (details)
  65. [llvm-symbolizer] Delete unneeded option name comments. NFC (details)
  66. [NFC] Do not run CGProfilePass when not using integrated assembler (details)
  67. [MLIR] Add simple runner utilities for timing (details)
  68. [lldb/API] Add missing reproducer instrumentation to GetHostPlatform. (details)
  69. Fix 7093b92a136b0696cf9cfc3f9822973ed886be5b (details)
  70. [InstCombine] Deduce attributes for aligned_alloc in InstCombine (details)
  71. [SystemZ] Allow %r0 in address context for AsmParser (details)
  72. Revert "[lldb/Reproducers] Always collect the whole dSYM in the reproducer" (details)
  73. [libc++] Make sure substitutions are expanded inside FILE_DEPENDENCIES (details)
  74. [MLIR][NFC] Move test/Transforms/lower-affine.mlir -> test/Conversion (details)
  75. Add an opque payload field to lldb::Type (NFC). (details)
  76. [libc++] Move a bunch of tests from .sh.cpp to .pass.cpp (details)
  77. [clang-format] Correct line breaks in C# generic type constraints (details)
  78. [intel-pt] Fix existing support in LLDB (details)
  79. [InlineFunction] Handle return attributes on call within inlined body (details)
  80. [AMDGPU] Define 16 bit VGPR subregs (details)
  81. [CodeGenPrepare] Delete intrinsic call to llvm.assume to enable more tailcall (details)
  82. [lld] Initial commit for new Mach-O backend (details)
  83. Replace std::string::find == 0 with StringRef::startswith (details)
  84. [AArch64][SVE] Add support for fcmp. (details)
  85. Add a new -fglobal-isel option and make -fexperimental-isel an alias for it. (details)
  86. [gn build] Port 03f43b3aca36 (details)
  87. [mlir][spirv] Change op doc description autogen separator (details)
Commit af3c52d5580fbb47cc88adeec7a928516e4b6cea by gchatelet
[Alignment][NFC] Simplify IRTranslator::getMemOpAlignment

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77078
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
Commit d2d6c9f59197bd82ec5bc9c003840f244a70a347 by gchatelet
[Alignment][NFC] GlobalIsel Utils inferAlignFromPtrInfo

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: rovka, hiraditya, volkan, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77079
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Utils.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
Commit bcbd60aeb5fe20136fe79270ac1b8f3936883d78 by djordje.todorovic
[Mips] Make MipsBranchExpansion aware of BBIT family of branch

Octeon branches (bbit0/bbit032/bbit1/bbit132) have an immediate operand,
so it is legal to have such replacement within
MipsBranchExpansion::replaceBranch().

According to the specification, a branch (e.g. bbit0 ) looks like:

bbit0  rs p offset  // p is an immediate operand
  if !rs<p> then branch

Without this patch, an assertion triggers in the method,
and the problem has been found in the real example.

Differential Revision: https://reviews.llvm.org/D76842
The file was addedllvm/test/CodeGen/Mips/longbranch/long-branch-octeon.ll
The file was modifiedllvm/lib/Target/Mips/MipsSEInstrInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsBranchExpansion.cpp
The file was modifiedllvm/lib/Target/Mips/MipsSEInstrInfo.h
The file was modifiedllvm/lib/Target/Mips/MipsInstrInfo.h
Commit 80ef5c56406bf11685c7dcb0038f7ad7a624a742 by gchatelet
Remove unused variable
The file was modifiedllvm/lib/Target/AVR/AVRFrameLowering.cpp
Commit 159343cd1965c69233597b36ab27adce8bd34a14 by gchatelet
Fix missing override
The file was modifiedllvm/include/llvm/ProfileData/SampleProfReader.h
Commit cdce2fe561eb6e63d77d1d589e521a8e2afb1eef by gribozavr
[Syntax] Remove delayed folding from tree building.

Summary:
This patch removes delayed folding and replaces it with forward peeking.

Delayed folding was previously used as a solution to the problem that
declaration doesn't have a representation in the AST. For example following
code:

```
int a,b;
```

is expressed in the AST as:

```
TranslationUnitDecl
|-...
|-VarDecl `int a`
`-VarDecl `int b`
```

And in the syntax tree we need:

```
*: TranslationUnit
`-SimpleDeclaration
  |-int
  |-SimpleDeclarator
  | `-a
  |-,
  |-SimpleDeclarator
  | `-b
  |-;
```

So in words, we need to create SimpleDeclaration to be a parent of
SimpleDeclarator nodes. Previously we used delayed folding to make sure SimpleDeclarations will be
eventually created. And in case multiple declarators requested declaration
creation, declaration range was extended to cover all declarators.

This design started to be hard to reason about, so we decided to replace it with
forward peeking. The last declarator node in the chain is responsible for creating
SimpleDeclaration for the whole chain. Range of the declaration corresponds to
the source range of the declarator node. Declarator decides whether its the last
one by peeking to the next AST node (see `isResponsibleForCreatingDeclaration`).

This patch does following:
* Removed delayed folding logic
* Tweaks Token.dumpForTests
* Moves getQualifiedNameStart inside BuildTreeVisitor
* Extracts BuildTreeVisitor.ProcessDeclaratorAndDeclaration
* Renames Builder.getDeclRange to Builder.getDeclarationRange and uses the
  method in all places.
* Adds a bunch of tests

Reviewers: gribozavr2

Reviewed By: gribozavr2

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D76922
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/Tokens.cpp
Commit 0de874adfbb25f3782543d8e1a2d7e2b0643b6a5 by gchatelet
[Alignment][NFC] Transition to inferAlignFromPtrInfo

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: arsenm, jvesely, nhaehnle, hiraditya, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77120
The file was modifiedllvm/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Utils.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86CallLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
Commit 86b40760278e73710564135be8cd9c2c9e7ff080 by shengchen.kan
[NFC] Remove unuseful infrastructure
The file was modifiedllvm/include/llvm/MC/MCObjectStreamer.h
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
Commit 581ba35291a658cd01e2cb39f6d415cac89a7656 by kai.wang
[RISCV] ELF attribute section for RISC-V.

Leverage ARM ELF build attribute section to create ELF attribute section
for RISC-V. Extract the common part of parsing logic for this section
into ELFAttributeParser.[cpp|h] and ELFAttributes.[cpp|h].

Differential Revision: https://reviews.llvm.org/D74023
The file was addedllvm/lib/Support/ELFAttributes.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was addedllvm/test/MC/RISCV/invalid-attribute.s
The file was addedllvm/unittests/Support/RISCVAttributeParserTest.cpp
The file was addedllvm/include/llvm/Support/ELFAttributeParser.h
The file was addedllvm/test/MC/RISCV/attribute.s
The file was modifiedllvm/unittests/Support/CMakeLists.txt
The file was modifiedllvm/lib/Support/ARMBuildAttrs.cpp
The file was addedllvm/test/MC/RISCV/attribute-with-insts.s
The file was modifiedllvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h
The file was addedllvm/test/tools/llvm-objdump/RISCV/lit.local.cfg
The file was modifiedllvm/include/llvm/Support/ARMAttributeParser.h
The file was addedllvm/test/CodeGen/RISCV/attributes.ll
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h
The file was modifiedllvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/include/llvm/Support/ARMBuildAttributes.h
The file was modifiedllvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was addedllvm/lib/Support/RISCVAttributes.cpp
The file was modifiedlld/ELF/InputFiles.cpp
The file was modifiedllvm/lib/Support/ARMAttributeParser.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
The file was modifiedllvm/lib/Object/ELF.cpp
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp
The file was addedllvm/lib/Support/RISCVAttributeParser.cpp
The file was addedllvm/test/tools/llvm-objdump/RISCV/unknown-arch-attr.test
The file was addedllvm/unittests/Support/ELFAttributeParserTest.cpp
The file was modifiedllvm/include/llvm/Object/ELFObjectFile.h
The file was modifiedllvm/unittests/Support/ARMAttributeParser.cpp
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
The file was addedllvm/include/llvm/Support/ELFAttributes.h
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
The file was addedllvm/test/MC/RISCV/attribute-arch.s
The file was modifiedlldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
The file was addedllvm/lib/Support/ELFAttributeParser.cpp
The file was addedllvm/include/llvm/Support/RISCVAttributeParser.h
The file was addedllvm/include/llvm/Support/RISCVAttributes.h
Commit 0c9c58ada0afa3e536834a71ac43fa80ae1f0af7 by flo
[SCCP] Use constant ranges for casts.

For casts with constant range operands, we can use
ConstantRange::castOp.

Reviewers: davide, efriedma, mssimpso

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D71938
The file was addedllvm/test/Transforms/SCCP/ip-ranges-casts.ll
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
Commit 0b6f40da4582c74bf6b000f676d3376177761e4d by llvmgnsyncbot
[gn build] Port 581ba35291a
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
Commit 5d3a69feca127618d99c262d3805bd5a9a6ca09b by sebastian.neubauer
[AMDGPU] New llvm.amdgcn.ballot intrinsic

Add a new llvm.amdgcn.ballot intrinsic modeled on the ballot function
in GLSL and other shader languages. It returns a bitfield containing the
result of its boolean argument in all active lanes, and zero in all
inactive lanes.

This is intended to replace the existing llvm.amdgcn.icmp and
llvm.amdgcn.fcmp intrinsics after a suitable transition period.

Use the new intrinsic in the atomic optimizer pass.

Differential Revision: https://reviews.llvm.org/D65088
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_struct_buffer.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_raw_buffer.ll
The file was modifiedllvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
The file was modifiedllvm/test/Analysis/DivergenceAnalysis/AMDGPU/always_uniform.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i32.ll
Commit c9d5c1959767d17809157a59c99d5132128bab2a by gchatelet
[Alignment][NFC] Transitionning more getMachineMemOperand call sites

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: arsenm, dylanmckay, sdardis, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, jrtc27, atanasyan, Jim, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77121
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modifiedllvm/lib/Target/MSP430/MSP430InstrInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsCallLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsFastISel.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsInstrInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/Mips/MipsInstructionSelector.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCFastISel.cpp
The file was modifiedllvm/test/TableGen/address-space-patfrags.td
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/AVR/AVRInstrInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/utils/TableGen/CodeGenDAGPatterns.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit 47107dc3bda1f8c27c70c84f30aa0cdd41786e0d by dantrushin
[Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization

Summary:
In method SelectionDAGBuilder::LowerStatepoint, array SI.GCTransitionArgs
is initialized from wrong part of ImmutableStatepoint class.
We copy gc args instead of transitions args.

Reviewers: reames, skatkov

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77075
The file was modifiedllvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
Commit 2c5f43f9ddbb731c56fd84185bb20be7d8db3a50 by david.green
[ARM] Fix qdadd operand order

qdadd is defined as sat(Rm + sat(2*Rn)). We had the Rm and Rn switched
the wrong way around.

Differential Revision: https://reviews.llvm.org/D77049
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/test/CodeGen/ARM/acle-intrinsics-v5.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
The file was modifiedllvm/test/CodeGen/ARM/qdadd.ll
Commit d30e9ad34519cb0ec17d411bc103af7bb76da77e by Raphael Isemann
Correct the duplicate pragma marks in CommandObjectTarget.cpp

Summary: Resolve the two duplicated pragma marks in lldb/source/Commands/CommandObjectTarget.cpp

Reviewers: teemperor

Reviewed By: teemperor

Subscribers: teemperor, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D77096
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp
Commit b6d2212f5276bcf0e5ef6b5dc0c985b72664ae34 by Tom.Weaver
[Dexter] Add support for Windows to regression test suite.

This patch addresses the issue of the regression suite not running on windows
hardware. It changes the following things:

* add new dexter regression suite command to lit.cfg.py that makes use of the
  clang-cl_vs2015 and dbgend builder and debuggers.

* sprinkle the new regressionsuite command through the feature and tool tests
  that require them.

* mark certain problem tests on windows

* [revert fix] fixed darwin regression test failures by adding unsupported line
  for system-darwin to command tests.

There's a couple of tests that fail (or pass) in unexpected ways on Windows.

Problem tests are both the penalty and perfect expect_watch_type.cpp tests.
Type information reporting parity is not possible a this time in dexter due to
the nature of how different debuggers report type information back to their users.

reviewers: Orlando

Differential Revision: https://reviews.llvm.org/D76609
The file was modifieddebuginfo-tests/dexter/feature_tests/subtools/view.cpp
The file was modifieddebuginfo-tests/lit.cfg.py
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_watch_type.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_step_kinds.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_watch_value.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/direction.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/recursive.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/small_loop.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_program_state.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_watch_type.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/func_external.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_program_state.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_order.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_watch_value.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/func.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/perfect/unreachable.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/unreachable.cpp
The file was modifieddebuginfo-tests/dexter/feature_tests/commands/penalty/expect_step_order.cpp
Commit 464b9aeafe29104a1a8391f43f91835eeca473b3 by daan
[InstCombine] Transform extelt-trunc -> bitcast-extelt

Canonicalize the case when a scalar extracted from a vector is
truncated.  Transform such cases to bitcast-then-extractelement.
This will enable erasing the truncate operation.

This commit fixes PR45314.

reviewers: spatel

Differential revision: https://reviews.llvm.org/D76983
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/trunc-extractelement.ll
The file was modifiedllvm/test/Transforms/InstCombine/ExtractCast.ll
Commit 7a4a98a9c4f39d9c395f5ce587dbbcb5450a9655 by llvm-dev
[X86] Move canLowerByDroppingEvenElements earlier to be with matchShuffleWithPACK. NFCI.

Make sure its defined earlier so more shuffle lowering methods can use it.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 98357dee1c6b9eb4233ade012299f50f8657924d by llvm-dev
[X86] Combine concat(palignr,palignr) -> palignr(concat,concat)

combineX86ShufflesRecursively should handle this someday
The file was modifiedllvm/test/CodeGen/X86/x86-interleaved-access.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit b9810988b23c96d1628371868336cb27e2daacca by gchatelet
[Alignment][NFC] Transitionning more getMachineMemOperand call sites

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77127
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/Target/ARM/Thumb1InstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMFastISel.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64FastISel.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/Thumb2InstrInfo.cpp
The file was modifiedllvm/lib/Target/ARC/ARCInstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
Commit 06c58f11a99a35da5799de8771cafdc47db69a8a by dantrushin
[SCEV] Use backedge SCEV of PHI only if its input is loop invariant

For the PHI node

      %1 = phi [%A, %entry], [%X, %latch]

it is incorrect to use SCEV of backedge val %X as an exit value
of PHI unless %X is loop invariant.
This is because exit value of %1 is value of %X at one-before-last
iteration of the loop.

Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D73181
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was addedllvm/test/Analysis/ScalarEvolution/pr44605.ll
Commit 6aacdd6083d841cd4afb47ba184236844021ac46 by james.henderson
[docs] Document coding standard for error and warning messages

In particular, these messages should start with a lower-case letter and
should have no trailing period at the end of the last sentence.

See http://lists.llvm.org/pipermail/llvm-dev/2020-March/140178.html for
context.

Reviewed by: aaron.ballman, hubert.reinterpretcast, rnk, dblaikie

Differential Revision: https://reviews.llvm.org/D76833
The file was modifiedllvm/docs/CodingStandards.rst
Commit 0aa9c5429b83df1a5881f066475e2246a02491a5 by james.henderson
[lld][ELF][test] Improve deplib.s

The test had a few style issues, and I noticed a hole in the coverage
(namely that the search order wasn't tested). Adding cases for the hole
in turn meant other cases weren't important.

The .so test case isn't important, since the code is shared code, so
I've removed it. Additionally, I've modified the usage of the "bar"
directive to show that an unneeded library must still be present, or the
link will fail, even though it isn't linked in.

Reviewed by: MaskRay, grimar

Differential Revision: https://reviews.llvm.org/D76851
The file was removedlld/test/ELF/Inputs/deplibs-lib_bar.s
The file was modifiedlld/test/ELF/deplibs.s
The file was removedlld/test/ELF/Inputs/deplibs-lib_foo.s
The file was modifiedlld/test/ELF/deplibs-colon-prefix.s
Commit b4d0384a6cd7c0715f39527b8db2bc0e54add893 by james.henderson
[ELF][test] Add test for --gc-sections + many sections

This test covers the case where --gc-sections is used when there are
many sections. In particular, it ensures that there is no adverse
interaction with common and absolute symbols.

Reviewed by: MaskRay, grimar

Differential Revision: https://reviews.llvm.org/D76003
The file was modifiedlld/test/ELF/many-alloc-sections.s
Commit b37543750c766e8edc7e719ecae22b14a1ceed7f by flo
[ValueLattice] Distinguish between constant ranges with/without undef.

This patch updates ValueLattice to distinguish between ranges that are
guaranteed to not include undef and ranges that may include undef.

A constant range guaranteed to not contain undef can be used to simplify
instructions to arbitrary values. A constant range that may contain
undef can only be used to simplify to a constant. If the value can be
undef, it might take a value outside the range. For example, consider
the snipped below

define i32 @f(i32 %a, i1 %c) {
  br i1 %c, label %true, label %false
true:
  %a.255 = and i32 %a, 255
  br label %exit
false:
  br label %exit
exit:
  %p = phi i32 [ %a.255, %true ], [ undef, %false ]
  %f.1 = icmp eq i32 %p, 300
  call void @use(i1 %f.1)
  %res = and i32 %p, 255
  ret i32 %res
}

In the exit block, %p would be a constant range [0, 256) including undef as
%p could be undef. We can use the range information to replace %f.1 with
false because we remove the compare, effectively forcing the use of the
constant to be != 300. We cannot replace %res with %p however, because
if %a would be undef %cond may be true but the  second use might not be
< 256.

Currently LazyValueInfo uses the new behavior just when simplifying AND
instructions and does not distinguish between constant ranges with and
without undef otherwise. I think we should address the remaining issues
in LVI incrementally.

Reviewers: efriedma, reames, aqjune, jdoerfert, sstefan1

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D76931
The file was modifiedllvm/test/Transforms/SCCP/range-and-ip.ll
The file was modifiedllvm/include/llvm/Analysis/LazyValueInfo.h
The file was modifiedllvm/test/Transforms/SCCP/range-and.ll
The file was modifiedllvm/include/llvm/Analysis/ValueLattice.h
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/merge-range-and-undef.ll
The file was modifiedllvm/lib/Analysis/ValueLattice.cpp
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was addedllvm/test/Transforms/SCCP/phi-cycle.ll
Commit 2539b4ae4765b14cd7774e801ba12f0a200ef734 by peter.smith
[LLD][ELF] Allow empty (.init|.preinit|.fini)_array to be RELRO

The default GNU linker script uses the following idiom for the array
sections. I'll use .init_array here, but this also applies to
.preinit_array and .fini_array sections.

  .init_array    :
  {
    PROVIDE_HIDDEN (__init_array_start = .);
    KEEP (*(.init_array))
    PROVIDE_HIDDEN (__init_array_end = .);
  }

The C-library will take references to the _start and _end symbols to
process the array. This will make LLD keep the OutputSection even if there
are no .init_array sections. As the current check for RELRO uses the
section type for .init_array the above example with no .init_array
InputSections fails the checks as there are no .init_array sections to give
the OutputSection a type of SHT_INIT_ARRAY. This often leads to a
non-contiguous RELRO error message.

The simple fix is to a textual section match as well as a section type
match.

Differential Revision: https://reviews.llvm.org/D76915
The file was addedlld/test/ELF/relro-init-fini-script.s
The file was modifiedlld/ELF/Writer.cpp
Commit 6120cb42f7977290fac7a8ae1a7c06fc79beb5dc by flo
[VPlan] Move test strs to variables, silence spurious C4129 (NFC).

This is a speculative fix to silence the spurious C4129 warning that
some version of MSVC generate for the raw string literals in the changed
files.

Before disabling the warning (D76428), try a potential fix suggested in
the review.
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Commit 3807079d705fe04c5c3bde8f848ec922b5771f15 by n.james93
[clang-tidy] Fix crash in readability-redundant-string-cstr

Summary: Addresses [[ https://bugs.llvm.org/show_bug.cgi?id=45286 | clang-tidy-11: Crash in DynTypedMatcher::matches during readability-redundant-string-cstr check ]]

Reviewers: aaron.ballman, alexfh, gribozavr2

Reviewed By: gribozavr2

Subscribers: xazax.hun, cfe-commits

Tags: #clang, #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D76761
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/readability-redundant-string-cstr.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp
Commit 229cda968cb22e2c56fbed8e9ddd4c2495f09757 by sdi1600105
[LoopTerminology] LCSSA form

Reviewed by: Michael Kruse (Meinersbur)

Differential Revision: https://reviews.llvm.org/D75233
The file was modifiedllvm/docs/LoopTerminology.rst
The file was modifiedllvm/docs/Passes.rst
Commit 05bc588abbc38ad1f8f67994ec3bb606f0aaa983 by Louis Dionne
[libc++] Do not rely on the environment to run filesystem tests

Previously, filesystem tests would require LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT
to be present in the environment and to match the value provided when
compiling, as a macro. This has the problem that it only allows for the
filesystem tests to be run on the same machine they are created.

Instead, we create a temporary directory for each test. Technically,
this is tricky to do because we're relying on some of the code that
we're testing to do this. However, there's no other portable way of
creating temporary direcories in C++, so this is difficult to avoid.

Differential Revision: https://reviews.llvm.org/D76731
The file was modifiedlibcxx/test/support/filesystem_dynamic_test_helper.py
The file was modifiedlibcxx/test/CMakeLists.txt
The file was modifiedlibcxx/utils/libcxx/test/config.py
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
Commit 71177ac16801ceced4b7dcdd21b05345416f31df by sam.mccall
[clangd] Support new semanticTokens request from LSP 3.16.

Summary:
This is a simpler request/response protocol.

Reference: https://github.com/microsoft/vscode-languageserver-node/blob/master/protocol/src/protocol.semanticTokens.proposed.ts

No attempt to support incremental formatting (yet).

Reviewers: hokein

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D76663
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.h
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.h
The file was modifiedclang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
The file was modifiedclang-tools-extra/clangd/test/initialize-params.test
The file was addedclang-tools-extra/clangd/test/semantic-tokens.test
The file was modifiedclang-tools-extra/clangd/Protocol.cpp
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp
The file was modifiedclang-tools-extra/clangd/Protocol.h
The file was modifiedclang-tools-extra/clangd/ClangdServer.h
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp
Commit fa61b5059a361e52012b2945f408b93674d6318d by spatel
[InstCombine] remove stray auto-generated test comment; NFC

The script now includes extra info about command-line options used
when generating its advertisement heading, but we don't want that
here. This is a special-case because we have enhanced the check
lines (as noted in the 2nd comment line).
The file was modifiedllvm/test/Transforms/InstCombine/select_meta.ll
Commit d3a729ab247af45d4929df2a6090db7571b7116f by Louis Dionne
[libc++] Set filesystem test flags in a lit.local.cfg

This reduces the complexity of our already complex global lit configuration,
and also avoids cluttering the compilation commands for all tests with
things that are only relevant to the filesystem tests.

Differential Revision: https://reviews.llvm.org/D76785
The file was modifiedlibcxx/test/std/input.output/filesystems/lit.local.cfg
The file was modifiedlibcxx/utils/libcxx/test/config.py
Commit fb47ffc618eaf0e716eafa7e719fc67bf41cef3b by Louis Dionne
[libc++] Provide a method for adding compiler flags in lit.local.cfg files

That way, local lit configuration files don't have to worry about
deep-copying the compiler instance of the test format, which is
arguably an implementation detail.

We pass the config to this method even though it is not used by the
current test format because this allows replacing the current test
format by other test formats that would require the config to add
new compile flags.
The file was modifiedlibcxx/test/std/experimental/filesystem/lit.local.cfg
The file was modifiedlibcxx/test/std/input.output/filesystems/lit.local.cfg
The file was modifiedlibcxx/utils/libcxx/test/format.py
The file was modifiedlibcxx/test/std/experimental/language.support/support.coroutines/lit.local.cfg
Commit b632fe5a363488a377b22e1708c8b57d986d3fd8 by Louis Dionne
[libc++] Quote the filesystem static env root in the source files instead of the command line

Otherwise, trying to reproduce a failing filesystem test by copy-pasting
the command-line used and running that in the shell won't work, because
the shell will eat quoting around the define and we'll end up with a
non-stringized path in the .cpp file.
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
The file was modifiedlibcxx/test/std/input.output/filesystems/lit.local.cfg
The file was modifiedlibcxx/test/support/test_macros.h
Commit efe59d6717dcdf7777acb9b7a734e1a520bdf22a by llvm-dev
[X86][SSE] lowerShuffleWithPACK - extend to use chained PACKs for larger truncations

If canLowerByDroppingEvenElements indicates that the shuffle is a N:1 compaction pattern and the inputs are suitably sign/zero extended then we can use a chain of PACKSS/PACKUS to compact.

This helps avoid PSHUFB (and its mask load) for short shuffle chains, shuffle combining will still replace with a PSHUFB if we have enough shuffles as getFauxShuffleMask can recognise PACKSS/PACKUS chains.
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-usat.ll
The file was modifiedllvm/test/CodeGen/X86/avx-fp2int.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_usat.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_ssat.ll
The file was modifiedllvm/test/CodeGen/X86/vec_cast2.ll
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
The file was modifiedllvm/test/CodeGen/X86/bitcast-and-setcc-512.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vec-strict-fptoint-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-packus.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-fptoint-128.ll
Commit a9c22739e675ad26093a8e584ab6bbc24f6a7bb3 by Louis Dionne
[libc++] Remove incorrect assertion in the filesystem tests

Based on the current discussion in https://llvm.org/PR45307, it seems
that it's legitimate for `temp_directory_path()` to return a path with
a trailing slash. Since `p.parent_path()` will never contain a trailing
slash, comparing it to the result of `temp_directory_path()` will fail
depending on whether `temp_directory_path()` returns a trailing slash
or not.
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
Commit 154d517bc7d600dbf9a0d6e2554467249370316b by ehudkatz
[ADT] Implement the Waymarking as an independent utility

This is the Waymarking algorithm implemented as an independent utility.
The utility is operating on a range of sequential elements.
First we "tag" the elements, by calling `fillWaymarks`.
Then we can "follow" the tags from every element inside the tagged
range, and reach the "head" (the first element), by calling
`followWaymarks`.

Differential Revision: https://reviews.llvm.org/D74415
The file was addedllvm/include/llvm/ADT/Waymarking.h
The file was modifiedllvm/unittests/ADT/CMakeLists.txt
The file was addedllvm/unittests/ADT/WaymarkingTest.cpp
Commit e267dfceebdc2f20060f23b1cb2a5297417f555d by llvmgnsyncbot
[gn build] Port 154d517bc7d
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
Commit 38619fa7da381b1390f9dc416fe2ed02612483ee by llvm-dev
Fix enumeral mismatch warning. NFCI.

Don't mix llvm::ISD and llvm::X86ISD.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 7e0e5fa499c79f34f694de3db69bbe4980ebe2b8 by llvm-dev
Revert rGefe59d6717dcdf7777acb9b7a734e1a520bdf22a "[X86][SSE] lowerShuffleWithPACK - extend to use chained PACKs for larger truncations"

This might be causing an issue on the fuchsia-x86_64-linux buildbot - reverting to see what happens.
The file was modifiedllvm/test/CodeGen/X86/bitcast-and-setcc-512.ll
The file was modifiedllvm/test/CodeGen/X86/vec_cast2.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modifiedllvm/test/CodeGen/X86/avx-fp2int.ll
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-packus.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_usat.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-fptoint-128.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_ssat.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-fptoint-256.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-usat.ll
Commit b3f13bc165754ba26b93524367521d39deb21073 by grimar
[obj2yaml] - Teach tool to dump program headers.

Currently obj2yaml does not dump program headers,
this patch teaches it to do that.

Differential revision: https://reviews.llvm.org/D75342
The file was modifiedllvm/test/Object/obj2yaml.test
The file was addedllvm/test/tools/obj2yaml/program-headers.yaml
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
Commit f481d4889378b97eafc338bfa422891d09ca1b38 by paulsson
[SystemZ] Improve foldMemoryOperandImpl().

Fold MS(G)RKC -> MS(G)C.

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D76771
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.td
The file was addedllvm/test/CodeGen/SystemZ/foldmemop-msc.mir
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrFormats.td
Commit 665bebb46f54c3fb08247d10bbd8d21609c0fcde by paulsson
[SystemZ] Add isCommutable flag on VFA and VFM.

NFC

Review: Ulrich Weigand
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrVector.td
Commit e26eece1e2e7d7e6fbadb1207afef9b6353b5330 by medismail.bennani
[lldb/DWARF] Fix evaluator crash when accessing empty stack.

This patch fixes a crash that happens on the DWARF expression evaluator
when trying to access the top of the stack while it's empty.

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/unittests/Expression/DWARFExpressionTest.cpp
The file was modifiedlldb/source/Expression/DWARFExpression.cpp
Commit 34756a1c709d1ef0292413cddaeeef8a21ed2124 by Louis Dionne
[libc++] Execute tests using an external shell

This makes it closer to how one would run the tests by hand, and it is
also closer to how the SSHExecutor runs the tests remotely. It also
allows using shell builtins in .sh.cpp tests when using %{exec}.
The file was modifiedlibcxx/utils/run.py
Commit 31a346cc35c829e207fbf24d8f8f1ee22ca9f140 by andydavis
[MLIR][Vector] Add support for TupleGetOp folding through InsertSlicesOp and ExtractSlicesOp.

Summary:
Add support for TupleGetOp folding through InsertSlicesOp and ExtractSlicesOp.
Vector-to-vector transformations for unrolling and lowering to hardware vectors
can generate chains of structured vector operations (InsertSlicesOp,
ExtractSlicesOp and ShapeCastOp) between the producer of a hardware vector
value and its consumer. Because InsertSlicesOp, ExtractSlicesOp and ShapeCastOp
are structured, we can track the location (tuple index and vector offsets) of
the consumer vector value through the chain of structured operations to the
producer, enabling a much more powerful producer-consumer fowarding of values
through structured ops and tuple, which in turn enables a more powerful
TupleGetOp folding transformation.

Reviewers: nicolasvasilache, aartbik

Reviewed By: aartbik

Subscribers: grosul1, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76889
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorUtils.h
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorUtils.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-transforms.mlir
Commit e4a778052e98c6d67f601342a7ca3b3c52ce7fbd by medismail.bennani
Revert "[lldb/DWARF] Fix evaluator crash when accessing empty stack."

This reverts commit e26eece1e2e7d7e6fbadb1207afef9b6353b5330.
The file was modifiedlldb/source/Expression/DWARFExpression.cpp
The file was modifiedlldb/unittests/Expression/DWARFExpressionTest.cpp
Commit f3a7d790df3357d52c10ec5ef48606944bcf5c6c by medismail.bennani
[lldb/DWARF] Fix evaluator crash when accessing empty stack.

This patch fixes a crash that happens on the DWARF expression evaluator
when trying to access the top of the stack while it's empty.

rdar://60512489

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/unittests/Expression/DWARFExpressionTest.cpp
The file was modifiedlldb/source/Expression/DWARFExpression.cpp
Commit eb4663d8c6add351d758748383f1a9fc231e5e64 by maskray
[lld][COFF][ELF][WebAssembly] Replace --[no-]threads /threads[:no] with --threads={1,2,...} /threads:{1,2,...}

--no-threads is a name copied from gold.
gold has --no-thread, --thread-count and several other --thread-count-*.

There are needs to customize the number of threads (running several lld
processes concurrently or customizing the number of LTO threads).
Having a single --threads=N is a straightforward replacement of gold's
--no-threads + --thread-count.

--no-threads is used rarely. So just delete --no-threads instead of
keeping it for compatibility for a while.

If --threads= is specified (ELF,wasm; COFF /threads: is similar),
--thinlto-jobs= defaults to --threads=,
otherwise all available hardware threads are used.

There is currently no way to override a --threads={1,2,...}. It is still
a debate whether we should use --threads=all.

Reviewed By: rnk, aganea

Differential Revision: https://reviews.llvm.org/D76885
The file was removedlld/Common/Threads.cpp
The file was modifiedllvm/utils/gn/secondary/lld/Common/BUILD.gn
The file was modifiedllvm/lib/Support/Parallel.cpp
The file was modifiedlld/Common/Filesystem.cpp
The file was modifiedllvm/include/llvm/Support/Parallel.h
The file was modifiedlld/ELF/Options.td
The file was modifiedlld/test/ELF/build-id.s
The file was modifiedlld/wasm/Options.td
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/test/ELF/lto/thinlto.ll
The file was modifiedlld/test/COFF/pdb-globals.test
The file was modifiedlld/test/wasm/lto/thinlto.ll
The file was modifiedlld/docs/ld.lld.1
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/Common/CMakeLists.txt
The file was addedlld/test/ELF/threads.s
The file was modifiedlld/wasm/Driver.cpp
The file was modifiedlld/ELF/ICF.cpp
The file was addedlld/test/wasm/threads.s
The file was modifiedlld/include/lld/Common/Threads.h
The file was modifiedlld/COFF/Options.td
Commit 7093b92a136b0696cf9cfc3f9822973ed886be5b by tyker
[AssumeBundles] Preserve Information from Load/Store

Summary: This patch preserve dereferenceable, nonnull and alignment from loads and stores.

Reviewers: jdoerfert

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76759
The file was modifiedllvm/lib/IR/KnowledgeRetention.cpp
The file was modifiedllvm/test/IR/assume-builder.ll
Commit 4aeb7e1ef4cc3df2f93cb18d315af0e9ebd8f2c7 by tyker
[AssumeBundles] Preserve information in EarlyCSE

Summary: this patch preserve information from various places in EarlyCSE into assume bundles.

Reviewers: jdoerfert

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76769
The file was modifiedllvm/include/llvm/IR/KnowledgeRetention.h
The file was modifiedllvm/test/Transforms/EarlyCSE/invariant-loads.ll
The file was modifiedllvm/lib/IR/KnowledgeRetention.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/guards.ll
The file was modifiedllvm/test/Transforms/EarlyCSE/invariant.start.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
Commit c3ca11771e184f11bf4f48804f056ac699ad7c40 by Louis Dionne
[libc++abi] Remove the old testit script

It's not used anymore, we use Lit as a test runner now (and have been
for a long time).
The file was removedlibcxxabi/test/testit
Commit 998118c3d3bd6a394c1da35f7570cce1a3145ea3 by gchatelet
[Alignment][NFC] Deprecate MachineMemOperand::getMachineMemOperand version that takes an untyped alignement.

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: hiraditya, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77138
The file was modifiedllvm/lib/Target/ARM/ARMInstructionSelector.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit b0cd7b2799ebcac0e456abf60cea2ca421a83945 by flo
[SCCP] Limit use of range info for binops to integers for now.

This fixes a crash when building the test suite.
The file was modifiedllvm/test/Transforms/SCCP/ip-ranges-casts.ll
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
Commit da7b6fe942fc9bbf535321477d614051d05aee4b by ravishankarm
[mlir][Linalg] Allow tiling of batch dimension for convolution ops with padding.

Existing tiling implementation of Linalg would still work for tiling
the batch dimensions of the convolution op.

Differential Revision: https://reviews.llvm.org/D76637
The file was addedmlir/test/Dialect/Linalg/tile_conv_padding.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
Commit 21d9d0855be17220e869ef5bbec2d839fe841840 by saugustine
New symbolizer option to print files relative to the compilation directory.

Summary: New "--relative" option to allow printing files relative to the compilation directory.

Reviewers: jhenderson

Subscribers: MaskRay, rupprecht, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76733
The file was addedllvm/test/tools/llvm-symbolizer/relativenames.s
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst
Commit 41c135d6d2882ee6592a1c51a0221ef6def79ee4 by douglas.yung
Fix buildgo.sh script to fix linux build failure due to changes in ad1466f8cbc5.

The above change used a binary literal that is not supported in c++11 mode when
using gcc. It was formalized into the c++14 standard and works when using that
mode to compile, so change the script to use c++14 instead.

Reviewed by: dvyukov

Differential Revision: https://reviews.llvm.org/D77111
The file was modifiedcompiler-rt/lib/tsan/go/buildgo.sh
Commit a76e68c9704fb5b3faf25bb8d51e405b5310ff08 by sam.mccall
[CodeComplete] Member completion for concept-constrained types.

Summary:
The basic idea is to walk through the concept definition, looking for
t.foo() where t has the constrained type.

In this patch:
- nested types are recognized and offered after ::
- variable/function members are recognized and offered after the correct
   dot/arrow/colon trigger
- member functions are recognized (anything directly called). parameter
   types are presumed to be the argument types. parameters are unnamed.
- result types are available when a requirement has a type constraint.
   These are printed as constraints, except same_as<T> which prints as T.

Not in this patch:
- support for merging/overloading when two locations describe the same member.
   The last one wins, for any given name. This is probably important...
- support for nested template members (T::x<int>)
- support for completing members of (instantiations of) template template parameters

Reviewers: nridge, saar.raz

Subscribers: mgrang, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D73649
The file was addedclang/test/CodeCompletion/concepts.cpp
The file was modifiedclang/lib/Sema/CodeCompleteConsumer.cpp
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/lib/Sema/SemaCodeComplete.cpp
Commit cba15d1b5c5416402ca47ceec2acbbc62f760228 by v.churavy
Add manually overriding of the darwin SDK version

Summary:
When doing cross-compilation from Linux to MacOS we don't have
access to have access to `xcodebuild` and therefore need a way
to set the SDK version from the outside.

Fixes https://reviews.llvm.org/D68292#1853594 for me.

Reviewers: delcypher, yln

Reviewed By: delcypher

Subscribers: #julialang, mgorny, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D77026
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
Commit 8b925440d11b64108935f4fceb30d372caa68211 by llvm-dev
[X86][SSE] Simplify PTEST/TESTP tests for D76984

We don't need to use an allones for the second operand - test the general case.
The file was modifiedllvm/test/CodeGen/X86/combine-ptest.ll
The file was modifiedllvm/test/CodeGen/X86/combine-testps.ll
The file was modifiedllvm/test/CodeGen/X86/combine-testpd.ll
Commit 30436a1ce7f3d2de8aaaa5f559060682a54fd16e by llvm-dev
[X86][SSE] Add additional PTEST/TESTP inversion tests
The file was modifiedllvm/test/CodeGen/X86/combine-testpd.ll
The file was modifiedllvm/test/CodeGen/X86/combine-ptest.ll
The file was modifiedllvm/test/CodeGen/X86/combine-testps.ll
Commit 753a3245f7231ffd86b8af02e57da6ceb2ec5669 by rnk
Make FunctionDecl::isDefined non-virtual, NFC

This convenience wrapper was made virtual when it was introduced. I see
no overrides and no reason for it to be virtual, so make it non-virtual.
The file was modifiedclang/include/clang/AST/Decl.h
Commit 4799a1745b300710c800e4bfa55c6bb630edd58c by maskray
[llvm-symbolizer] Delete unneeded option name comments. NFC

Follow-up of D76733. The code documents itself.
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Commit 94d912296de21e965198ba1ddd1ca6714b3e4722 by zhizhouy
[NFC] Do not run CGProfilePass when not using integrated assembler

Summary:
CGProfilePass is run by default in certain new pass manager optimization pipeline. Assemblers other than llvm as (such as gnu as) cannot recognize the .cgprofile entries generated and emitted from this pass, causing build time error.

This patch adds new options in clang CodeGenOpts and PassBuilder options so that we can turn cgprofile off when not using integrated assembler.

Reviewers: Bigcheese, xur, george.burgess.iv, chandlerc, manojgupta

Reviewed By: manojgupta

Subscribers: manojgupta, void, hiraditya, dexonsmith, llvm-commits, tcwang, llozano

Tags: #llvm, #clang

Differential Revision: https://reviews.llvm.org/D62627
The file was addedllvm/test/Other/new-pm-cgprofile.ll
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/include/llvm/Passes/PassBuilder.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit 7fca0e9797dccf44a1ae43328b94182d2f6188d9 by uday
[MLIR] Add simple runner utilities for timing

Add utilities print_flops, rtclock for timing / benchmarking. Add
mlir_runner_utils_dir test conf variable.

Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>

Differential Revision: https://reviews.llvm.org/D76912
The file was modifiedmlir/lib/ExecutionEngine/RunnerUtils.cpp
The file was modifiedmlir/test/lit.site.cfg.py.in
The file was modifiedmlir/test/CMakeLists.txt
The file was addedmlir/test/mlir-cpu-runner/sgemm_naive_codegen.mlir
The file was modifiedmlir/test/lit.cfg.py
Commit 5c2bf577dcd34b0f4a20360d411e410d739b752f by Jonas Devlieghere
[lldb/API] Add missing reproducer instrumentation to GetHostPlatform.

SBPlatform::GetHostPlatform was missing the reproducer instrumentation
macros. Fixed by running lldb-instr on SBPlatform.cpp:

$ ./bin/lldb-instr ../llvm-project/lldb/source/API/SBPlatform.cpp
The file was modifiedlldb/source/API/SBPlatform.cpp
Commit cb0fa3234daf973c146b25ba8f9a95a40ee189e9 by tyker
Fix 7093b92a136b0696cf9cfc3f9822973ed886be5b
accidently pushed the wrong version of the patch.
The file was modifiedllvm/include/llvm/IR/KnowledgeRetention.h
The file was modifiedllvm/lib/IR/KnowledgeRetention.cpp
Commit dc817b2dea9f28e22470d1d74956f404fcec4e01 by uday
[InstCombine] Deduce attributes for aligned_alloc in InstCombine

Make InstCombine aware of the aligned_alloc library function.

Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>

Depends on D76970.

Differential Revision: https://reviews.llvm.org/D76971
The file was modifiedllvm/test/Transforms/InstCombine/deref-alloc-fns.ll
The file was modifiedllvm/test/Transforms/InstCombine/malloc-free-delete.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit c726c920e04046da29e403d55aa9c0e466b13959 by ulrich.weigand
[SystemZ] Allow %r0 in address context for AsmParser

Registers used in any address (as well as in a few other contexts)
have special semantics when a "zero" register is used, which is
why the back-end defines extra register classes ADDR32, ADDR64 etc
to be used to prevent the register allocator from using %r0 there.

However, when writing assembler code "by hand", you sometimes need
to trigger that special semantics.  However, currently the AsmParser
will reject %r0 in those places.  In some cases it may be possible
to write that instruction differently - but in others it is currently
not possible at all.

This check in AsmParser simply seems overly strict, so this patch
just removes the check completely.  This brings the behaviour of
AsmParser in line with the GNU assembler as well.

Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=45092
The file was modifiedllvm/test/MC/SystemZ/tokens.s
The file was modifiedllvm/test/MC/SystemZ/insn-bad-zEC12.s
The file was modifiedllvm/test/MC/SystemZ/regs-bad.s
The file was modifiedllvm/test/MC/SystemZ/insn-good.s
The file was modifiedllvm/test/MC/SystemZ/insn-bad.s
The file was modifiedllvm/test/MC/SystemZ/insn-bad-z14.s
The file was modifiedllvm/test/MC/SystemZ/insn-bad-z13.s
The file was modifiedllvm/test/MC/SystemZ/insn-bad-z196.s
The file was modifiedllvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
Commit 75cfd382201978615cca1c91c2d9f14f8b7af56d by ditaliano
Revert "[lldb/Reproducers] Always collect the whole dSYM in the reproducer"

This reverts commit 38ddb49e5242920e44a982cff7bbe2e86bd23a69 as it
breaks the macOS bots.
The file was modifiedlldb/source/Utility/Reproducer.cpp
The file was modifiedlldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
The file was modifiedlldb/include/lldb/Utility/Reproducer.h
The file was removedlldb/test/Shell/Reproducer/TestDSYM.test
Commit 89fe36d08a9ad01f7f5a4a704a6f7382e26b32f9 by Louis Dionne
[libc++] Make sure substitutions are expanded inside FILE_DEPENDENCIES
The file was modifiedlibcxx/test/libcxx/selftest/test.file_dependencies.sh.cpp
The file was modifiedlibcxx/utils/libcxx/test/format.py
Commit 5f9bf3f656146d1987b471f3c1aaf2f13e8c385a by uday
[MLIR][NFC] Move test/Transforms/lower-affine.mlir -> test/Conversion

Move lower-affine.mlir from test/Transforms to
test/Conversion/AffineToStandard/. Other related NFC.

Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>

Differential Revision: https://reviews.llvm.org/D77008
The file was modifiedmlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
The file was modifiedmlir/docs/Passes.md
The file was removedmlir/test/Transforms/lower-affine.mlir
The file was addedmlir/test/Conversion/AffineToStandard/lower-affine.mlir
Commit 7b06cb4523083206ad79776c80a564cd26bd8326 by Adrian Prantl
Add an opque payload field to lldb::Type (NFC).

Differential Revision: https://reviews.llvm.org/D75562
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
The file was modifiedlldb/include/lldb/Symbol/Type.h
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
The file was modifiedlldb/source/Symbol/Type.cpp
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
Commit 38aebe5c04ab4cb3695dc1bcc60b9a7b55215aff by Louis Dionne
[libc++] Move a bunch of tests from .sh.cpp to .pass.cpp

Using the ADDITIONAL_COMPILE_FLAGS annotation, it is possible to move
these tests from .sh.cpp to .pass.cpp, making them suitable for running
on remote hosts more easily.
The file was removedlibcxx/test/libcxx/input.output/filesystems/convert_file_time.sh.cpp
The file was addedlibcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.pass.cpp
The file was removedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.sh.cpp
The file was addedlibcxx/test/libcxx/experimental/language.support/support.coroutines/version.pass.cpp
The file was removedlibcxx/test/libcxx/experimental/language.support/support.coroutines/version.sh.cpp
The file was removedlibcxx/test/libcxx/containers/sequences/vector/exception_safety_exceptions_disabled.sh.cpp
The file was removedlibcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.sh.cpp
The file was addedlibcxx/test/libcxx/input.output/filesystems/convert_file_time.pass.cpp
The file was removedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp
The file was addedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.pass.cpp
The file was removedlibcxx/test/libcxx/experimental/language.support/support.coroutines/dialect_support.sh.cpp
The file was addedlibcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.pass.cpp
The file was addedlibcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.pass.cpp
The file was removedlibcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.sh.cpp
The file was addedlibcxx/test/libcxx/containers/sequences/vector/exception_safety_exceptions_disabled.pass.cpp
The file was addedlibcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp
Commit d1b412ae389e4e30706c326ddec192ffb2e272cf by jbcoe
[clang-format] Correct line breaks in C# generic type constraints

Reviewers: krasimir

Reviewed By: krasimir

Subscribers: cfe-commits

Tags: #clang-format, #clang

Differential Revision: https://reviews.llvm.org/D77064
The file was modifiedclang/lib/Format/UnwrappedLineParser.cpp
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTestCSharp.cpp
The file was modifiedclang/lib/Format/ContinuationIndenter.cpp
Commit 128c0d037d32c929c58d63fd7f324038430f73ba by walter erquinigo
[intel-pt] Fix existing support in LLDB

Summary:
//reviews.llvm.org/D33035 added in 2017 basic support for intel-pt. I
plan to improve it and use it to support reverse debugging.

I fixed a couple of issues and now this plugin works again:
1. pythonlib needed to be linked against it for the SB framework.
Linking was failing because of this
2. the decoding functionality was broken because it lacked handling for
instruction events. It seems old versions of libipt, the actual decoding
library, didn't require these, but modern version require it (you can
read more here
https://github.com/intel/libipt/blob/master/doc/howto_libipt.md). These
events signal overflows of the internal PT buffer in the CPU,
enable/disable events of tracing, async cpu events, interrupts, etc.

I ended up refactoring a little bit the code to reduce code duplication.

In another diff I'll implement some basic tests.

This is a simple execution of the library:

(lldb) target create "/data/users/wallace/rr-project/a.out"
Current executable set to '/data/users/wallace/rr-project/a.out' (x86_64).
(lldb) plugin load liblldbIntelFeatures.so
(lldb) b main
Breakpoint 1: where = a.out`main + 8 at test.cpp:10, address = 0x00000000004007fa
(lldb) b test.cpp:14
Breakpoint 2: where = a.out`main + 50 at test.cpp:14, address = 0x0000000000400824
(lldb) r
Process 902754 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x00000000004007fa a.out`main at test.cpp:10
   7    }
   8
   9    int main() {
-> 10     int z = 0;
   11     for(int i = 0; i < 10000; i++)
   12       z += fun(z);
   13

Process 902754 launched: '/data/users/wallace/rr-project/a.out' (x86_64)
(lldb) processor-trace start all
(lldb) c
Process 902754 resuming
Process 902754 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 2.1
    frame #0: 0x0000000000400824 a.out`main at test.cpp:14
   11     for(int i = 0; i < 10000; i++)
   12       z += fun(z);
   13
-> 14     cout << z<< endl;
   15     return 0;
   16   }

(lldb) processor-trace show-instr-log
thread #1: tid=902754
    0x7ffff72299b9 <+9>: addq   $0x8, %rsp
    0x7ffff72299bd <+13>: retq
    0x4007ed <+16>: addl   $0x1, %eax
    0x4007f0 <+19>: leave
    0x4007f1 <+20>: retq
    0x400814 <+34>: addl   %eax, -0x4(%rbp)
    0x400817 <+37>: addl   $0x1, -0x8(%rbp)
    0x40081b <+41>: cmpl   $0x270f, -0x8(%rbp)       ; imm = 0x270F
    0x400822 <+48>: jle    0x40080a                  ; <+24> at test.cpp:12
    0x400822 <+48>: jle    0x40080a                  ; <+24> at test.cpp:12
```

Subscribers: mgorny, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D76872
The file was modifiedlldb/tools/intel-features/CMakeLists.txt
The file was modifiedlldb/tools/intel-features/intel-pt/Decoder.h
The file was modifiedlldb/tools/intel-features/intel-pt/Decoder.cpp
Commit 28518d9ae39ff5c6044e230d58b6ae28b0252cae by anna
[InlineFunction] Handle return attributes on call within inlined body

Consider a callee function that has a call (C) within it which feeds
into the return.  When we inline that callee into a callsite that has
return attributes, we can backward propagate those attributes to the
call (C) within that inlined callee body.

This is safe to do so only if we can guarantee transfer of execution to
successor in the window of instructions between return value (i.e. the
call C) and the return instruction.

See added test cases.

Reviewed-By: reames, jdoerfert

Differential Revision: https://reviews.llvm.org/D76140
The file was modifiedclang/test/CodeGen/movbe-builtins.c
The file was modifiedclang/test/CodeGen/builtins-systemz-zvector.c
The file was modifiedclang/test/CodeGen/builtins-systemz-zvector2.c
The file was addedllvm/test/Transforms/Inline/ret_attr_update.ll
The file was modifiedclang/test/CodeGen/rot-intrinsics.c
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
Commit 08682dcc8631bcbfd68834a7dc352499a0a06af0 by Stanislav.Mekhanoshin
[AMDGPU] Define 16 bit VGPR subregs

We have loads preserving low and high 16 bits of their
destinations. However, we always use a whole 32 bit register
for these. The same happens with 16 bit stores, we have to
use full 32 bit register so if high bits are clobbered the
register needs to be copied. One example of such code is
added to the load-hi16.ll.

The proper solution to the problem is to define 16 bit subregs
and use them in the operations which do not read another half
of a VGPR or preserve it if the VGPR is written.

This patch simply defines subregisters and register classes.
At the moment there should be no difference in code generation.
A lot more work is needed to actually use these new register
classes. Therefore, there are no new tests at this time.

Register weight calculation has changed with new subregs so
appropriate changes were made to keep all calculations just
as they are now, especially calculations of register pressure.

Differential Revision: https://reviews.llvm.org/D74873
The file was modifiedllvm/test/CodeGen/AMDGPU/postra-machine-sink.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/postra-bundle-memops.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/ipra-regmask.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/at-least-one-def-value-assert.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/load-hi16.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-insert-vector-elt.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.td
Commit 6d20937c29a1a1d67fc5e8caf8538b4aa5614505 by carrot
[CodeGenPrepare] Delete intrinsic call to llvm.assume to enable more tailcall

The attached test case is simplified from tcmalloc. Both function calls should be optimized as tailcall. But llvm can only optimize the first call. The second call can't be optimized because function dupRetToEnableTailCallOpts failed to duplicate ret into block case2.

There 2 problems blocked the duplication:

  1 Intrinsic call llvm.assume is not handled by dupRetToEnableTailCallOpts.
  2 The control flow is more complex than expected, dupRetToEnableTailCallOpts can only duplicate ret into its predecessor, but here we have an intermediate block between call and ret.

The solutions:

  1 Since CodeGenPrepare is already at the end of LLVM IR phase, we can simply delete the intrinsic call to llvm.assume.
  2 A general solution to the complex control flow is hard, but for this case, after exit2 is duplicated into case1, exit2 is the only successor of exit1 and exit1 is the only predecessor of exit2, so they can be combined through eliminateFallThrough. But this function is called too late, there is no more dupRetToEnableTailCallOpts after it. We can add an earlier call to eliminateFallThrough to solve it.

Differential Revision: https://reviews.llvm.org/D76539
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/optimizeSelect-DT.ll
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was addedllvm/test/Transforms/CodeGenPrepare/X86/tailcall-assume-xbb.ll
Commit 03f43b3aca363e16c45d8733400fd0083b1af4d8 by smeenai
[lld] Initial commit for new Mach-O backend

Summary:
This is the first commit for the new Mach-O backend, designed to roughly
follow the architecture of the existing ELF and COFF backends, and
building off work that @ruiu and @pcc did in a branch a while back. Note
that this is a very stripped-down commit with the bare minimum of
functionality for ease of review. We'll be following up with more diffs
soon.

Currently, we're able to generate a simple "Hello World!" executable
that runs on OS X Catalina (and possibly on earlier OS X versions; I
haven't tested them). (This executable can be obtained by compiling
`test/MachO/relocations.s`.) We're mocking out a few load commands to
achieve this -- for example, we can't load dynamic libraries, but
Catalina requires binaries to be linked against `dyld`, so we hardcode
the emission of a `LC_LOAD_DYLIB` command. Other mocked out load
commands include LC_SYMTAB and LC_DYSYMTAB.

Differential Revision: https://reviews.llvm.org/D75382
The file was addedlld/MachO/Arch/X86_64.cpp
The file was modifiedlld/CMakeLists.txt
The file was addedlld/MachO/Writer.cpp
The file was addedlld/test/MachO/alignment-too-large.yaml
The file was addedlld/MachO/InputFiles.cpp
The file was addedlld/MachO/InputSection.cpp
The file was addedlld/MachO/OutputSegment.cpp
The file was addedlld/test/MachO/arch.s
The file was addedlld/test/MachO/segments.s
The file was addedlld/MachO/OutputSegment.h
The file was addedlld/test/MachO/text-segment.s
The file was addedlld/MachO/Driver.h
The file was addedlld/MachO/Options.td
The file was addedlld/MachO/Writer.h
The file was addedlld/test/MachO/no-such-file.s
The file was addedlld/MachO/Driver.cpp
The file was addedlld/test/MachO/invalid-executable.s
The file was addedlld/test/MachO/duplicate-symbol.s
The file was addedlld/MachO/Config.h
The file was modifiedlld/include/lld/Common/Driver.h
The file was addedlld/MachO/SymbolTable.cpp
The file was addedlld/test/MachO/entry-symbol.s
The file was addedlld/MachO/Target.h
The file was addedlld/test/MachO/relocations.s
The file was addedlld/test/MachO/silent-ignore.test
The file was modifiedlld/tools/lld/lld.cpp
The file was addedlld/MachO/InputSection.h
The file was addedlld/MachO/SymbolTable.h
The file was addedlld/MachO/Target.cpp
The file was addedlld/test/MachO/load-commands.s
The file was addedlld/MachO/InputFiles.h
The file was addedlld/MachO/Symbols.cpp
The file was addedlld/test/MachO/section-headers.s
The file was addedlld/MachO/Symbols.h
The file was addedlld/MachO/CMakeLists.txt
The file was modifiedlld/tools/lld/CMakeLists.txt
Commit e8f13f4f62f52067cadb55f3c746ccf9d26ee2ce by benny.kra
Replace std::string::find == 0 with StringRef::startswith

This is both more readable and faster. Found by clang-tidy's
abseil-string-find-startswith.
The file was modifiedlldb/source/Symbol/Variable.cpp
The file was modifiedlldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/source/Core/Module.cpp
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/AArch64.cpp
The file was modifiedclang/unittests/Analysis/CloneDetectionTest.cpp
Commit dacf8d3562b6c3a46f61b325f8ed20b6dac69cde by efriedma
[AArch64][SVE] Add support for fcmp.

This also requires support for boolean "not", so I added boolean logic
while I was there.

Differential Revision: https://reviews.llvm.org/D76901
The file was modifiedllvm/test/CodeGen/AArch64/sve-int-log.ll
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was addedllvm/test/CodeGen/AArch64/sve-fcmp.ll
Commit 7f1ea924c695f3293ff48f662cd1ec5f44bc1ab6 by Amara Emerson
Add a new -fglobal-isel option and make -fexperimental-isel an alias for it.

Since GlobalISel is maturing and is already on at -O0 for AArch64, it's not
completely "experimental". Create a more appropriate driver flag and make
the older option an alias for it.

Differential Revision: https://reviews.llvm.org/D77103
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/test/Driver/global-isel.c
The file was modifiedclang/include/clang/Driver/Options.td
Commit 45b6364e8d74f6038e94b760f017e03740acf725 by maskray
[gn build] Port 03f43b3aca36
The file was modifiedllvm/utils/gn/secondary/lld/tools/lld/BUILD.gn
The file was addedllvm/utils/gn/secondary/lld/MachO/BUILD.gn
Commit d26435c1703f1d7f13e8bf78ee390cb7e2490586 by antiagainst
[mlir][spirv] Change op doc description autogen separator

This commit changes the separator line for dividing auto-generated
docs from spec and manually added appendix from "### Custom assembly
form" to "<!-- End of AutoGen section -->". This is in preparation
to use the declarative assembly form in MLIR core. We will replace
more and more manually written assembly forms to be autogenerated.

Differential Revision: https://reviews.llvm.org/D77158
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVOps.td
The file was modifiedmlir/utils/spirv/gen_spirv_dialect.py
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVAtomicOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVArithmeticOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVGroupOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVControlFlowOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVCastOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVNonUniformOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVCompositeOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVGLSLOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVBitOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVLogicalOps.td