SuccessChanges

Summary

  1. [Alignment][NFC] Migrate MachineFrameInfo::CreateStackObject to Align (details)
  2. Correctly track GCOVProfiling IR update (details)
  3. [ARM][LowOverheadLoops] Handle reductions (details)
  4. [AMDGPU] Spill more than wavesize CSR SGPRs (details)
  5. [ThinLTO] Always parse module level inline asm with At&t dialect (PR46503) (details)
  6. [clangd] Config: compile Fragment -> CompiledFragment -> Config (details)
  7. [analyzer][CrossTU] Lower CTUImportThreshold default value (details)
  8. [gn build] Port f12cd99c440 (details)
  9. [SVE] Relax merge requirement for IR based divides. (details)
  10. [AMDGPU] Correct AMDGPUUsage.rst DW_AT_LLVM_lane_pc example (details)
  11. [NFC][ARM] Add test. (details)
  12. [lldb] Scalar re-fix UB in float->int conversions (details)
  13. [Alignment][NFC] Migrate MachineFrameInfo::CreateSpillStackObject to Align (details)
  14. [DebugInfo] Do not emit entry values for composite locations (details)
  15. [llvm-readobj] - Simplify and refine hash table tests (details)
  16. [llvm-readobj] - Don't crash when checking the number of dynamic symbols. (details)
  17. [clangd] Fix name conflict again, unbreak GCC. NFC (details)
  18. [AArch64][SVE] Add reg+imm addressing mode for unpredicated loads (details)
  19. AMDGPU/GlobalISel: Select init_exec intrinsic (details)
  20. [StackSafety,NFC] Remove unneded constexpr (details)
  21. [StackSafety,NFC] Remove expensive assert (details)
  22. [Driver][ARM] parse version of arm/thumb architecture correctly (details)
  23. [lldb/api] Improve error reporting in SBBreakpoint::AddName (NFCI) (details)
  24. Revert "[lldb/api] Improve error reporting in SBBreakpoint::AddName (NFCI)" (details)
  25. [lldb/api] Improve error reporting in SBBreakpoint::AddName (NFCI) (details)
  26. [clangd] Set gRPC deadlines to all remote index requests (details)
  27. [Analyzer] Quick fix for broken tests on Windows (details)
  28. [RISCV][NFC] Add Test for (select (or B1, B2), X, Y) (details)
  29. [RISCV] Implement Hooks to avoid chaining SELECT (details)
  30. AttrBuilder::merge/remove - use const& for iterator values in for-range loops. (details)
  31. Fix Wdocumentation warnings due to outdated parameter list. NFC. (details)
  32. Fix Wdocumentation warnings by only tagging a param id once per doxygen comment block. NFC. (details)
  33. [X86][SSE] Add test showing incorrect sign-extension by targetShrinkDemandedConstant (details)
  34. [llvm-size] Output REL, RELA and STRTAB sections when allocatable (details)
  35. [X86][SSE] Fix targetShrinkDemandedConstant constant vector sign extensions (details)
  36. Pass stripNonLineTableDebugInfo remapDebugLoc lambda DebugLoc arg by const reference not value. (details)
  37. [PowerPC] Fix for PC Relative call protocol (details)
  38. Pass DIEnumerator APInt args by const reference not value. (details)
  39. [llvm-readobj] - Simplify the symbols.test (details)
  40. [clang-tidy] fix cppcoreguidelines-init-variables with catch variables (details)
  41. Revert "[StackSafety,NFC] Remove unneded constexpr" (details)
  42. [lldb] Add basic -flimit-debug-info support to expression evaluator (details)
  43. [mlir][Linalg] Add an option to use Alloca instead of malloc/free pairs. (details)
  44. [lldb] Fix NSDate test after Scalar change (details)
  45. [CodeGen] Fix up warnings in visitEXTRACT_SUBVECTOR (details)
  46. Implement AVX ABI Warning/error (details)
  47. [cmake][Windows] Add libpath to CMAKE_MODULE_LINKER_FLAGS too (details)
  48. [Alignment][NFC] Migrate TargetTransformInfo::CreateVariableSizedObject to Align (details)
  49. [Alignment][NFC] Transition and simplify calls to DL::getABITypeAlignment (details)
  50. [Alignment] TargetLowering::hasPairedLoad must use Align for RequiredAlignment (details)
  51. Limit x86 test to require target to fix buildbot (from 2831a317b) (details)
  52. [RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2 (details)
  53. [clangd] Fix race in FileIndex that sometimes temporarily lost updates. (details)
  54. [VE] Support symbol with offset value (details)
  55. [lldb] Attempt to fix TestLimitDebugInfo on windows (details)
  56. Revert "[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2" (details)
  57. [lldb] Replace StringConvert with llvm::to_integer when parsing integer values in CommandObjects (details)
  58. [RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2 (details)
  59. [RISCV] Add mcountinhibit CSR (details)
  60. Pass DebugLoc::appendInlinedAt DebugLoc arg by const reference not value. (details)
  61. Make dyn_cast results explicitly auto* instead of just auto. (details)
  62. [DWARFYAML][debug_abbrev] Emit 0 byte for terminating abbreviations. (details)
  63. [Outliner] Set nounwind for outlined functions (details)
  64. [InstCombine] Don't let an alignment assume prevent new/delete removals. (details)
  65. [Alignment][NFC] Use Align for BPFAbstractMemberAccess::RecordAlignment (details)
  66. [ms] [llvm-ml] Use default RIP-relative addressing for x64 MASM. (details)
  67. [CVP] Use different number in test (NFC) (details)
  68. [NFC] Clean up uses of MachineModuleInfoWrapperPass (details)
  69. Change the INLINEASM_BR MachineInstr to be a non-terminating instruction. (details)
  70. [BPF] Fix a BTF gen bug related to a pointer struct member (details)
  71. [Coroutines] Fix code coverage for coroutine (details)
  72. [AArch64] Remove unnecessary CostKindCheck (NFC). (details)
  73. sanitizer_common_interceptors: Fix lint errors (details)
  74. Revert "Improve the detection of iOS/tvOS/watchOS simulator binaries in" (details)
  75. [CodeGen] Fix warnings in DAGCombiner::visitSCALAR_TO_VECTOR (details)
  76. [X86] Enable multibyte NOPs in 64-bit mode for padding/alignment. (details)
  77. AMDGPU: Clear subreg when folding immediate copies (details)
  78. AMDGPU: Fix handling of target flags when commuting instruction (details)
  79. AMDGPU: Support commuting register and global operand (details)
  80. AMDGPU: Convert AGPR copy test to generated checks (details)
  81. [CodeGen] Add public function to emit C++ destructor call. (details)
  82. Revert "Revert "Improve the detection of iOS/tvOS/watchOS simulator binaries in"" (details)
  83. debugserver: Return a nullptr in GetPlatformString() (details)
  84. [Coroutines] Fix test breakage in D82928 (details)
  85. [Sanitizers] Disable sysmsg interceptors on Android (details)
  86. [LVI][CVP] Handle (x | y) < C style conditions (details)
  87. [LegalizeTypes] Properly handle the case when UpdateNodeOperands in PromoteIntOp_MLOAD triggers CSE instead of updating the node in place. (details)
  88. [IR] Add classof methods to ConstantExpr subclasses. (details)
  89. [X86] Speculatively apply the same fix from 361853c96f46848d2ad0739dfa7613e62e7fb530 to PromoteIntOp_MGATHER. (details)
  90. [clang-tidy] Allows the prevailing include header guard in Flang to be recognized rather than flagged as a violation in phabricator. (details)
  91. [flang][openmp] Use common Directive and Clause enum from llvm/Frontend (details)
  92. [flang] Add the Runtime.h to prepare for more code being upstreamed. (details)
  93. [AMDGPU] Update DWARF proposal (details)
  94. [ELF] Don't resolve a relocation in .debug_line referencing an ICF folded symbol to the tombstone value (details)
  95. [libTooling] Fix `maybeExtendRange` to support `CharRange`s. (details)
  96. [CallGraph] Add support for callback call sites (details)
  97. [flang] Implement cross-set EQUIVALENCE impossibility checking (details)
  98. [compiler-rt][Android] Use correct builtins library name for tests (details)
  99. [InstSimplify] Move assume icmp test (NFC) (details)
  100. [lldb/API] Add missing LLDB_RECORD_RESULT (details)
  101. [RISCV][NFC] Pre-commit tests for D82660 (details)
  102. Revert "[X86] Enable multibyte NOPs in 64-bit mode for padding/alignment." (details)
Commit 28de229bc63489b9346558f4f3a57b024b53962a by gchatelet
[Alignment][NFC] Migrate MachineFrameInfo::CreateStackObject to Align

This 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

Differential Revision: https://reviews.llvm.org/D82894
The file was modifiedllvm/lib/Target/PowerPC/PPCFastISel.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineFrameInfo.h
The file was modifiedllvm/lib/Target/Mips/MipsSEFrameLowering.cpp
The file was modifiedllvm/lib/Target/Mips/MipsMachineFunction.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARC/ARCFrameLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVFrameLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
The file was modifiedllvm/lib/Target/Sparc/SparcISelLowering.cpp
The file was modifiedllvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit ffee8040534495fa739808e6c66a7fc73eca27bb by sguelton
Correctly track GCOVProfiling IR update

Differential Revision: https://reviews.llvm.org/D82742
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit 3ee580d0176f69a9f724469660f1d1805e0b6a06 by sam.parker
[ARM][LowOverheadLoops] Handle reductions

While validating live-out values, record instructions that look like
a reduction. This will comprise of a vector op (for now only vadd),
a vorr (vmov) which store the previous value of vadd and then a vpsel
in the exit block which is predicated upon a vctp. This vctp will
combine the last two iterations using the vmov and vadd into a vector
which can then be consumed by a vaddv.

Once we have determined that it's safe to perform tail-predication,
we need to change this sequence of instructions so that the
predication doesn't produce incorrect code. This involves changing
the register allocation of the vadd so it updates itself and the
predication on the final iteration will not update the falsely
predicated lanes. This mimics what the vmov, vctp and vpsel do and
so we then don't need any of those instructions.

Differential Revision: https://reviews.llvm.org/D75533
The file was modifiedllvm/include/llvm/CodeGen/ReachingDefAnalysis.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions.ll
The file was modifiedllvm/lib/CodeGen/ReachingDefAnalysis.cpp
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll
Commit 91823163955859abbdcad5901d765aeae860939e by Saiyedul.Islam
[AMDGPU] Spill more than wavesize CSR SGPRs

In case of more than wavesize CSR SGPR spills, lanes of reserved VGPR were getting
overwritten due to wrap around.

Reserve a VGPR (when NumVGPRSpillLanes = 0, WaveSize, 2*WaveSize, ..) and when one
of the two conditions is true:
1. One reserved VGPR being tracked by VGPRReservedForSGPRSpill is not yet reserved.
2. All spill lanes of reserved VGPR(s) are full and another spill lane is required.

Reviewed By: arsenm, kerbowa

Differential Revision: https://reviews.llvm.org/D82463
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/spill_more_than_wavesize_csr_sgprs.ll
Commit a8e582c8307ba1d33c05d272b5c1b755fa809b51 by hans
[ThinLTO] Always parse module level inline asm with At&t dialect (PR46503)

clang-cl passes -x86-asm-syntax=intel to the cc1 invocation so that
assembly listings produced by the /FA flag are printed in Intel dialect.
That flag however should not affect the *parsing* of inline assembly in
the program. (See r322652)

When compiling normally, AsmPrinter::emitInlineAsm is used for
assembling and defaults to At&t dialect. However, when compiling for
ThinLTO, the code which parses module level inline asm to find symbols
for the symbol table was failing to set the dialect. This patch fixes
that. (See the bug for more details.)

Differential revision: https://reviews.llvm.org/D82862
The file was addedclang/test/CodeGen/thinlto-inline-asm.c
The file was modifiedllvm/lib/Object/ModuleSymbolTable.cpp
Commit f12cd99c440a83d53a8717a9c8cdc4df41f39f3d by sam.mccall
[clangd] Config: compile Fragment -> CompiledFragment -> Config

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82612
The file was addedclang-tools-extra/clangd/ConfigCompile.cpp
The file was addedclang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
The file was modifiedclang-tools-extra/clangd/ConfigFragment.h
The file was addedclang-tools-extra/clangd/ConfigProvider.h
The file was modifiedclang-tools-extra/clangd/ConfigYAML.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CMakeLists.txt
The file was addedclang-tools-extra/clangd/unittests/ConfigTesting.h
The file was modifiedclang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
The file was modifiedclang-tools-extra/clangd/CMakeLists.txt
Commit 52f65323660051a5d039d475edfd4a3018682dcb by endre.fulop
[analyzer][CrossTU] Lower CTUImportThreshold default value

Summary:
The default value of 100 makes the analysis slow. Projects of considerable
size can take more time to finish than it is practical. The new default
setting of 8 is based on the analysis of LLVM itself. With the old default
value of 100 the analysis time was over a magnitude slower. Thresholding the
load of ASTUnits is to be extended in the future with a more fine-tuneable
solution that accomodates to the specifics of the project analyzed.

Reviewers: martong, balazske, Szelethus

Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, steakhal, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82561
The file was modifiedclang/test/Analysis/analyzer-config.c
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
Commit 9d347f6efa3018faf2fa159e25830817f4d2f41d by llvmgnsyncbot
[gn build] Port f12cd99c440
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
Commit a1aed80a35f3f775cdb1d68c4388723691abc0dd by paul.walker
[SVE] Relax merge requirement for IR based divides.

We currently lower SDIV to SDIV_MERGE_OP1. This forces the value
for inactive lanes in a way that can hamper register allocation,
however, the lowering has no requirement for inactive lanes.

Instead this patch replaces SDIV_MERGE_OP1 with SDIV_PRED thus
freeing the register allocator. Once done the only user of
SDIV_MERGE_OP1 is intrinsic lowering so I've removed the node
and perform ISel on the intrinsic directly. This also allows
us to implement MOVPRFX based zeroing in the same manner as SUB.

This patch also renames UDIV_MERGE_OP1 and [F]ADD_MERGE_OP1 for
the same reason but in the ADD cases the ISel code is already
as required.

Differential Revision: https://reviews.llvm.org/D82783
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 76b2d9cbebd227d42e2099a0eb89c800b945997a by Tony.Tye
[AMDGPU] Correct AMDGPUUsage.rst DW_AT_LLVM_lane_pc example

- Correct typo of DW_OP_xaddr to DW_OP_addrx in AMDGPUUsage.rst for
  DW_AT_LLVM_lane_pc example.

Change-Id: I1b0ee2b24362a0240388e4c2f044c1d4883509b9
The file was modifiedllvm/docs/AMDGPUUsage.rst
Commit f0ecfb789bb2d3de57876927e03a5c26da8419c8 by sam.parker
[NFC][ARM] Add test.
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/varying-outer-2d-reduction.ll
Commit 8270a903baf55122289499ba00a979e9c04dcd44 by pavel
[lldb] Scalar re-fix UB in float->int conversions

The refactor in 48ca15592f1 reintroduced UB when converting out-of-bounds
floating point numbers to integers -- the behavior for ULongLong() was
originally fixed in r341685, but did not survive my refactor because I
based my template code on one of the methods which did not have this
fix.

This time, I apply the fix to all float->int conversions, instead of
just the "double->unsigned long long" case. I also use a slightly
simpler version of the code, with fewer round-trips
(APFloat->APSInt->native_int vs
APFloat->native_float->APInt->native_int).

I also add some unit tests for the conversions.
The file was modifiedlldb/unittests/Utility/ScalarTest.cpp
The file was modifiedlldb/source/Utility/Scalar.cpp
Commit 7f37d8830635bf119a5f630dd3958c8f45780805 by gchatelet
[Alignment][NFC] Migrate MachineFrameInfo::CreateSpillStackObject to Align

iThis 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

Differential Revision: https://reviews.llvm.org/D82934
The file was modifiedllvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineFrameInfo.h
Commit 85460c4ea273784dd45da558ad9a6f13a79b2d91 by david.stenberg
[DebugInfo] Do not emit entry values for composite locations

Summary:
This is a fix for PR45009.

When working on D67492 I made DwarfExpression emit a single
DW_OP_entry_value operation covering the whole composite location
description that is produced if a register does not have a valid DWARF
number, and is instead composed of multiple register pieces. Looking
closer at the standard, this appears to not be valid DWARF. A
DW_OP_entry_value operation's block can only be a DWARF expression or a
register location description, so it appears to not be valid for it to
hold a composite location description like that.

See DWARFv5 sec. 2.5.1.7:

"The DW_OP_entry_value operation pushes the value that the described
location held upon entering the current subprogram. It has two
operands: an unsigned LEB128 length, followed by a block containing a
DWARF expression or a register location description (see Section
2.6.1.1.3 on page 39)."

Here is a dwarf-discuss mail thread regarding this:

http://lists.dwarfstd.org/pipermail/dwarf-discuss-dwarfstd.org/2020-March/004610.html

There was not a strong consensus reached there, but people seem to lean
towards that operations specified under 2.6 (e.g. DW_OP_piece) may not
be part of a DWARF expression, and thus the DW_OP_entry_value operation
can't contain those.

Perhaps we instead want to emit a entry value operation per each
DW_OP_reg* operation, e.g.:

  - DW_OP_entry_value(DW_OP_regx sub_reg0),
    DW_OP_stack_value,
    DW_OP_piece 8,
  - DW_OP_entry_value(DW_OP_regx sub_reg1),
    DW_OP_stack_value,
    DW_OP_piece 8,
  [...]

The question then becomes how the call site should look; should a
composite location description be emitted there, and we then leave it up
to the debugger to match those two composite location descriptions?
Another alternative could be to emit a call site parameter entry for
each sub-register, but firstly I'm unsure if that is even valid DWARF,
and secondly it seems like that would complicate the collection of call
site values quite a bit. As far as I can tell GCC does not emit any
entry values / call sites in these cases, so we do not have something to
compare with, but the former seems like the more reasonable approach.

Currently when trying to emit a call site entry for a parameter composed
of multiple DWARF registers a (DwarfRegs.size() == 1) assert is
triggered in addMachineRegExpression(). Until the call site
representation is figured out, and until there is use for these entry
values in practice, this commit simply stops the invalid DWARF from
being emitted.

Reviewers: djtodoro, vsk, aprantl

Reviewed By: djtodoro, vsk

Subscribers: jyknight, hiraditya, fedor.sergeev, jrtc27, llvm-commits

Tags: #debug-info, #llvm

Differential Revision: https://reviews.llvm.org/D75270
The file was modifiedllvm/test/DebugInfo/Sparc/entry-value-complex-reg-expr.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
Commit 917bdfaca6df575f617b0f3aa989183ab187e8ac by grimar
[llvm-readobj] - Simplify and refine hash table tests

Now we are able to have default values for macros in YAML descriptions.
I've applied it for hash table tests and also fixed few copy-paste issues
in their comments.

Differential revision: https://reviews.llvm.org/D82870
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-histogram.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-symbols.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/gnuhash.test
Commit 61f967dccabab67f9996a4fb1c6ec4fa4f23f005 by grimar
[llvm-readobj] - Don't crash when checking the number of dynamic symbols.

When we deriving the number of symbols from the DT_HASH table, we can crash when
calculate the number of symbols in the symbol table when SHT_DYNSYM
has sh_entsize == 0.

The patch fixes the issue.

Differential revision: https://reviews.llvm.org/D82877
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test
Commit 7dcc3858e72666dc12240c8a4bd278775cd807ea by sam.mccall
[clangd] Fix name conflict again, unbreak GCC. NFC
The file was modifiedclang-tools-extra/clangd/unittests/ConfigTesting.h
Commit 4c6683eafc17b201fc5de17f96230be46d8ff521 by kerry.mclaughlin
[AArch64][SVE] Add reg+imm addressing mode for unpredicated loads

Reviewers: efriedma, sdesmalen, david-arm

Reviewed By: efriedma

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82893
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was addedllvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
Commit 4b9ae1b7e5e052126e1be4c817ff53203d33d9d1 by petar.avramovic
AMDGPU/GlobalISel: Select init_exec intrinsic

Change imm with timm in pattern for SI_INIT_EXEC_LO and
remove regbank mappings for non register operands.

Differential Revision: https://reviews.llvm.org/D82885
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.init.exec.ll
Commit 38470baa542bde038340b7d10a0ed2c25fac1bfa by Vitaly Buka
[StackSafety,NFC] Remove unneded constexpr

Differential Revision: https://reviews.llvm.org/D80908
The file was modifiedllvm/lib/IR/ModuleSummaryIndex.cpp
Commit 8180a399652a3896239b2b4e8730f8141a78a72e by Vitaly Buka
[StackSafety,NFC] Remove expensive assert

Differential Revision: https://reviews.llvm.org/D80908
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit 070acb1d1e51ffd289a46b8f93e993635d0053b7 by daniel.kiss
[Driver][ARM] parse version of arm/thumb architecture correctly

Summary:
If you execute the following commandline multiple times, the behavior was not always the same:
  clang++ --target=thumbv7em-none-windows-eabi-coff -march=armv7-m -mcpu=cortex-m7 -o temp.obj -c -x c++ empty.cpp

Most of the time the compilation succeeded, but sometimes clang reported this error:
  clang++: error: the target architecture 'thumbv7em' is not supported by the target 'thumbv7em-none-windows-eabi'

The cause of the inconsistent behavior was the uninitialized variable Version.

With these commandline arguments, the variable Version was not set by getAsInteger(),
because it cannot parse a number from the substring "7em" (of "thumbv7em").
To get a consistent behaviour, it's enough to initialize the variable Version to zero.
Zero is smaller than 7, so the comparison will be true.
Then the command always fails with the error message seen above.

By using consumeInteger() instead of getAsInteger() we get 7 from the substring "7em"
and the command does not fail.

Reviewers: compnerd, danielkiss

Reviewed By: danielkiss

Subscribers: danielkiss, kristof.beyls, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75453
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was addedclang/test/Driver/windows-thumbv7em.cpp
Commit 56bb1d1755ae38b4e7a67f775978b18a601f215f by medismail.bennani
[lldb/api] Improve error reporting in SBBreakpoint::AddName (NFCI)

This patch improves the error reporting for SBBreakpoint::AddName by
adding a new method `SBBreakpoint::AddNameWithErrorHandling` that returns
a SBError instead of a boolean.

This way, if the breakpoint naming failed in the backend, the client
(i.e. Xcode), will be able to report the reason of that failure to the
user.

rdar://64765461

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/bindings/interface/SBBreakpoint.i
The file was modifiedlldb/include/lldb/API/SBBreakpoint.h
Commit a61f62a7b605a9077672b4f49021d84ed0cf12d9 by medismail.bennani
Revert "[lldb/api] Improve error reporting in SBBreakpoint::AddName (NFCI)"

This reverts commit 56bb1d1755ae38b4e7a67f775978b18a601f215f.
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/bindings/interface/SBBreakpoint.i
The file was modifiedlldb/include/lldb/API/SBBreakpoint.h
Commit f70cad26121543c0a29b9a2c400b02c659210d71 by medismail.bennani
[lldb/api] Improve error reporting in SBBreakpoint::AddName (NFCI)

This patch improves the error reporting for SBBreakpoint::AddName by
adding a new method `SBBreakpoint::AddNameWithErrorHandling` that returns
a SBError instead of a boolean.

This way, if the breakpoint naming failed in the backend, the client
(i.e. Xcode), will be able to report the reason of that failure to the
user.

rdar://64765461

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_names/TestBreakpointNames.py
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/bindings/interface/SBBreakpoint.i
The file was modifiedlldb/include/lldb/API/SBBreakpoint.h
Commit 22a3e4055f4382e8ebbf67705501e6969c6b398b by kbobyrev
[clangd] Set gRPC deadlines to all remote index requests

Summary: "TL;DR: Always set a deadline.", https://grpc.io/blog/deadlines/

Reviewers: sammccall

Reviewed By: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82844
The file was modifiedclang-tools-extra/clangd/index/remote/Client.cpp
Commit c79745ed48f3e22e9c5fdfa070bceecf7590896c by adam.balogh
[Analyzer] Quick fix for broken tests on Windows
The file was modifiedclang/test/Analysis/iterator-modeling.cpp
Commit c44266dc4816ec3df084232055ec02060eec0616 by selliott
[RISCV][NFC] Add Test for (select (or B1, B2), X, Y)

Summary:
As shown, LLVM is keen to avoid logic and introduce selects (in DAGCombiner, and
other places). This leads to control flow on RISC-V which we should attempt to
avoid.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D79267
The file was addedllvm/test/CodeGen/RISCV/select-or.ll
The file was addedllvm/test/CodeGen/RISCV/select-and.ll
Commit 7dc892661edde4eb90229dd5a14f45a1ceb08653 by selliott
[RISCV] Implement Hooks to avoid chaining SELECT

Summary:
This implements two hooks that attempt to avoid control flow for RISC-V. RISC-V
will lower SELECTs into control flow, which is not a great idea.

The hook `hasMultipleConditionRegisters()` turns off the following
DAGCombiner folds:
    select(C0|C1, x, y) <=> select(C0, x, select(C1, x, y))
    select(C0&C1, x, y) <=> select(C0, select(C1, x, y), y)

The second hook `setJumpIsExpensive` controls a flag that has a similar purpose
and is used in CodeGenPrepare and the SelectionDAGBuilder.

Both of these have the effect of ensuring more logic is done before fewer jumps.

Note: with the `B` extension, we may be able to lower select into a conditional
move instruction, so at some point these hooks will need to be guarded based on
enabled extensions.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D79268
The file was modifiedllvm/test/CodeGen/RISCV/select-and.ll
The file was modifiedllvm/test/CodeGen/RISCV/zext-with-load-is-free.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/select-or.ll
The file was modifiedllvm/test/CodeGen/RISCV/double-previous-failure.ll
Commit 0144f501a63e62771c7e2552334a36c36f3a3686 by llvm-dev
AttrBuilder::merge/remove - use const& for iterator values in for-range loops.

Noticed by clang-tidy performance-for-range-copy warning.
The file was modifiedllvm/lib/IR/Attributes.cpp
Commit 36aaffbf56913ebe1e3987d7d0ac76573be65cbc by llvm-dev
Fix Wdocumentation warnings due to outdated parameter list. NFC.
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
Commit cfb5b144cf4686755d9e244bd425221ad88e2a63 by llvm-dev
Fix Wdocumentation warnings by only tagging a param id once per doxygen comment block. NFC.
The file was modifiedllvm/lib/Transforms/Utils/FlattenCFG.cpp
Commit 93707fe30927b19b533f04426a6614f952f49dd1 by llvm-dev
[X86][SSE] Add test showing incorrect sign-extension by targetShrinkDemandedConstant
The file was addedllvm/test/CodeGen/X86/shrink-const.ll
Commit 41ca82cbe815904173d094cb3a7789a705a73695 by gbreynoo
[llvm-size] Output REL, RELA and STRTAB sections when allocatable

gnu size has a number of special cases regarding REL, RELA and STRTAB
sections being considered in size output. To avoid unnecessary
complexity this commit makes llvm size outputs these sections in cases
they have the SHF_ALLOC flag.

Differential Revision: https://reviews.llvm.org/D82479
The file was addedllvm/test/tools/llvm-size/output-alloc.test
The file was modifiedllvm/tools/llvm-size/llvm-size.cpp
Commit b485586482af213cf04a1e97712283db1707435b by llvm-dev
[X86][SSE] Fix targetShrinkDemandedConstant constant vector sign extensions

D82257/rG3521ecf1f8a3 was incorrectly sign-extending a constant vector from the lsb, this is fine if all the constant elements are 'allsignbits' in the active bits, but if only some of the elements are, then we are corrupting the constant values for those elements.

This fix ensures we sign extend from the msb of the active/demanded bits instead.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/shrink-const.ll
Commit 2c7af6dffc0645dad561378550701e1e29b5d7e4 by llvm-dev
Pass stripNonLineTableDebugInfo remapDebugLoc lambda DebugLoc arg by const reference not value.

Noticed by clang-tidy performance-unnecessary-value-param warning.
The file was modifiedllvm/lib/IR/DebugInfo.cpp
Commit b294e00fb079600f337f479eb29fc27058228302 by kamau.bridgeman
[PowerPC] Fix for PC Relative call protocol

The situation where the caller uses a TOC and the callee does not
but is marked as clobbers the TOC (st_other=1) was not being compiled
correctly if both functions where in the same object file.

The call site where we had `callee` was missing a nop after the call.
This is because it was assumed that since the two functions where in
the same DSO they would be sharing a TOC. This is not the case if the
callee uses PC Relative because in that case it may clobber the TOC.
This patch makes sure that we add the cnop correctly so that the
linker has a place to restore the TOC.

Reviewers: sfertile, NeHuang, saghir

Differential Revision: https://reviews.llvm.org/D81126
The file was addedllvm/test/CodeGen/PowerPC/pcrel-local-caller-toc.ll
The file was modifiedllvm/test/CodeGen/PowerPC/ifunc.ll
The file was addedllvm/test/CodeGen/PowerPC/func-alias.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 65647ed1e5e8a74ef28f19279d329bb49741dcaa by llvm-dev
Pass DIEnumerator APInt args by const reference not value.

Noticed by clang-tidy performance-unnecessary-value-param warning.
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
Commit 37dd8b6ce5f3ad6c5b9f6b5498606f8b7723e8ab by grimar
[llvm-readobj] - Simplify the symbols.test

We are able to use YAML macros to avoid having
4 independent YAML descriptions.

Differential revision: https://reviews.llvm.org/D82942
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbols.test
Commit 669494e9c06c78b51260598bba9d84ba7634a53e by n.james93
[clang-tidy] fix cppcoreguidelines-init-variables with catch variables

Ignore catch statement var decls.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D82924
The file was modifiedclang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-init-variables.cpp
Commit e35a5876e4c7f67211dd600a3006bede2ccab25c by a.bataev
Revert "[StackSafety,NFC] Remove unneded constexpr"

This reverts commit 38470baa542bde038340b7d10a0ed2c25fac1bfa because it
breaks builds with lld and gold linkers.
The file was modifiedllvm/lib/IR/ModuleSummaryIndex.cpp
Commit a03dc8c9fa8e9c5cf44448fac1a9ad0fdad7df41 by pavel
[lldb] Add basic -flimit-debug-info support to expression evaluator

Summary:
This patch adds support for evaluation of expressions referring to types
which were compiled in -flimit-debug-info (a.k.a -fno-standalone-debug)
in clang. In this mode it's possible that the debug information needed
to fully describe a c++ type is not present in a single shared library
-- for example debug info for a base class or a member of a type can
only be found in another shared library.  This situation is not
currently handled well within lldb as we are limited to searching within
a single shared library (lldb_private::Module) when searching for the
definition of these types.

The way that this patch gets around this limitation is by doing the
search at a later stage -- during the construction of the expression ast
context. This works by having the parser (currently SymbolFileDWARF, but
a similar approach is probably needed for PDBs too) mark a type as
"forcefully completed". What this means is that the parser has marked
the type as "complete" in the module ast context (as this is necessary
to e.g. derive classes from it), but its definition is not really there.
This is done via a new field on the ClangASTMetadata struct.

Later, when we are importing such a type into the expression ast, we
check this flag. If the flag is set, we try to find a better definition
for the type in other shared libraries. We do this by initiating a
new lookup for the "forcefully completed" classes, which then imports the
type from a module with a full definition.

This patch only implements this handling for base classes, but other
cases (members, array element types, etc.). The changes for that should
be fairly simple and mostly revolve around marking these types as
"forcefully completed" at an approriate time -- the importing logic is
generic already.

Another aspect, which is also not handled by this patch is viewing these
types via the "frame variable" command. This does not use the AST
importer and so it will need to handle these types on its own -- that
will be the subject of another patch.

Differential Revision: https://reviews.llvm.org/D81561
The file was addedlldb/test/API/functionalities/limit-debug-info/foo.cpp
The file was addedlldb/test/API/functionalities/limit-debug-info/main.cpp
The file was addedlldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py
The file was addedlldb/test/API/functionalities/limit-debug-info/Makefile
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTMetadata.h
The file was addedlldb/test/API/functionalities/limit-debug-info/two.cpp
The file was addedlldb/test/API/functionalities/limit-debug-info/one.cpp
The file was addedlldb/test/API/functionalities/limit-debug-info/onetwo.h
Commit 7d9518c8000bcd742b364a390bc79560f736dc96 by ntv
[mlir][Linalg] Add an option to use Alloca instead of malloc/free pairs.

Summary: A relevant test is also added.

Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, Kayjukh, jurahul, msifontes

Tags: #mlir

Differential Revision: https://reviews.llvm.org/D82959
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/test/Dialect/Linalg/promote.mlir
Commit f3b5bf3eb7029238cead637be2e285b443b2e141 by Raphael Isemann
[lldb] Fix NSDate test after Scalar change

The formatter was requesting an unsigned integer from the ValueObject,
but CFAbsoluteTime is a signed double, so in the NSDate test the formatter
actually just printed the 'error value' date which is the Cocoa epoch. This
started failing after the recent Scalar changes.

This patch just changes the logic to use a signed value which fits to the data
we try to read and avoids this issue.
The file was modifiedlldb/source/Plugins/Language/ObjC/CF.cpp
Commit 97a7a9abb25d86fd831b403a1d13de6d62e7a8b5 by david.sherwood
[CodeGen] Fix up warnings in visitEXTRACT_SUBVECTOR

It's perfectly valid to do certain DAG combines where we extract
subvectors from a concat vector when we have scalable vector types.
However, we can do this in a way that avoids generating compiler
warnings by replacing calls to getVectorNumElements() with
getVectorMinNumElements(). Due to the way subvector extracts are
designed to work with scalable vector types this is ok.

This eliminates some warnings from existing tests in this file:

  llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll

Differential Revision: https://reviews.llvm.org/D82655
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 2831a317b689c7f005a29f008a8e4c24485c0711 by erich.keane
Implement AVX ABI Warning/error

The x86-64 "avx" feature changes how >128 bit vector types are passed,
instead of being passed in separate 128 bit registers, they can be
passed in 256 bit registers.

"avx512f" does the same thing, except it switches from 256 bit registers
to 512 bit registers.

The result of both of these is an ABI incompatibility between functions
compiled with and without these features.

This patch implements a warning/error pair upon an attempt to call a
function that would run afoul of this. First, if a function is called
that would have its ABI changed, we issue a warning.

Second, if said call is made in a situation where the caller and callee
are known to have different calling conventions (such as the case of
'target'), we instead issue an error.

Differential Revision: https://reviews.llvm.org/D82562
The file was modifiedclang/include/clang/Basic/DiagnosticFrontendKinds.td
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/test/CodeGen/target-builtin-error-3.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedclang/lib/CodeGen/TargetInfo.h
The file was addedclang/test/CodeGen/target-avx-abi-diag.c
The file was modifiedclang/test/CodeGen/target-builtin-noerror.c
Commit 63eddb679ad0bbb49cc9a3ff7f9f063c5ba16833 by rojamd
[cmake][Windows] Add libpath to CMAKE_MODULE_LINKER_FLAGS too

Followup to b8000c0ce845, the library path needs to go in
CMAKE_MODULE_LINKER_FLAGS too, for the sake of a few files
like LLVMHello.dll.

Reviewed By: hans

Differential Revision: https://reviews.llvm.org/D82888
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 27bbc8ede127fb1ea8b6a853a5d2fe70f206408b by gchatelet
[Alignment][NFC] Migrate TargetTransformInfo::CreateVariableSizedObject to Align

This 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

Differential Revision: https://reviews.llvm.org/D82939
The file was modifiedllvm/include/llvm/CodeGen/MachineFrameInfo.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
Commit d3085c25012aceef3755abf9921a0368c64f40c6 by gchatelet
[Alignment][NFC] Transition and simplify calls to DL::getABITypeAlignment

This 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

Differential Revision: https://reviews.llvm.org/D82956
The file was modifiedllvm/lib/IR/DataLayout.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
The file was modifiedllvm/lib/Transforms/IPO/LowerTypeTests.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
The file was modifiedllvm/lib/Target/Target.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/CodeGen/LowerEmuTLS.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
The file was modifiedllvm/lib/Target/ARM/ARMFastISel.cpp
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
Commit ef36f5143d83897cc6f59ff918769d29ad5a0612 by gchatelet
[Alignment] TargetLowering::hasPairedLoad must use Align for RequiredAlignment

As per documentation of `hasPairLoad`:
"`RequiredAlignment` gives the minimal alignment constraints that must be met to be able to select this paired load."
In this sense, `0` is strictly equivalent to `1`. We make this obvious by using `Align` instead of unsigned.
There is only one implementor of this interface.

Differential Revision: https://reviews.llvm.org/D82958
The file was modifiedllvm/lib/Analysis/Lint.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 19c35526d98699db6917cf2a6f0dd3fe7da68926 by erich.keane
Limit x86 test to require target to fix buildbot (from 2831a317b)

The modification of the features apparently requires the backend to be
instantiated, so make sure this is required to fix the ARM build bots.
The file was modifiedclang/test/CodeGen/target-avx-abi-diag.c
Commit 05a20a9e9aba301a828bcbd72b0ed724755752d1 by luismarques
[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2

The pass to split atomic and non-atomic RISC-V pseudo-instructions was itself
split into two passes in D79635 / commit rG2cb0644f90b7, with the splitting of
non-atomic instructions being moved to the PreSched2 phase. A comment was
added to D79635 detailing a case where this caused problems, so this commit
moves the non-atomic split pass back to the PreEmitPass2 phase. This allows
the bulk of the changes from D79635 to remain committed, while addressing the
the reported problem (the pass split is now almost NFC). Once the root problem
is fixed we can move the (non-atomic) instruction splitting pass back to
earlier in the pipeline.
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetMachine.cpp
Commit c5263a4e84cc7fb7135a7e9e0cf000af264b72c5 by sam.mccall
[clangd] Fix race in FileIndex that sometimes temporarily lost updates.

Summary:
FileIndex was built out of threadsafe components, so update() didn't have data
races, but wasn't actually correct.

Reviewers: kadircet

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82891
The file was modifiedclang-tools-extra/clangd/index/Symbol.h
The file was modifiedclang-tools-extra/clangd/index/FileIndex.h
The file was modifiedclang-tools-extra/clangd/unittests/FileIndexTests.cpp
The file was modifiedclang-tools-extra/clangd/index/FileIndex.cpp
Commit 195205589208934b8c3b64dd84ccb355729b5b67 by marukawa
[VE] Support symbol with offset value

Summary: Support symbol with offset value as a VEMCExpr.

Reviewers: simoll, k-ishizaka

Reviewed By: simoll

Subscribers: hiraditya, llvm-commits

Tags: #llvm, #ve

Differential Revision: https://reviews.llvm.org/D82734
The file was modifiedllvm/lib/Target/VE/VEMCInstLower.cpp
The file was addedllvm/test/CodeGen/VE/load_off.ll
Commit 1276855f2b4485ec312b379c1b8eaf5510d9b157 by pavel
[lldb] Attempt to fix TestLimitDebugInfo on windows

The test fails due to link errors. I believe this change should fix
that.
The file was modifiedlldb/test/API/functionalities/limit-debug-info/Makefile
The file was modifiedlldb/test/API/functionalities/limit-debug-info/onetwo.h
Commit a61fa1a4b9d247e34ea5541422f7040a37baf6e7 by luismarques
Revert "[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2"

This reverts commit 05a20a9e9aba301a828bcbd72b0ed724755752d1.
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetMachine.cpp
Commit 9010cef2af0affdef774a721f6adb52a40041da5 by Raphael Isemann
[lldb] Replace StringConvert with llvm::to_integer when parsing integer values in CommandObjects

Summary:

This replaces the current use of LLDB's own `StringConvert` with LLVM's
`to_integer` which has a less error-prone API and doesn't use special 'error
values' to designate parsing problems.

Where needed I also added missing error handling code that prints a parsing
error instead of continuing with the error value returned from `StringConvert`
(which either gave a cryptic error message or just took the error value
performed an incorrect action with it. For example, `frame recognizer delete -1`
just deleted the frame recognizer at index 0).

Reviewers: #lldb, labath

Reviewed By: labath

Subscribers: labath, abidh, JDevlieghere

Differential Revision: https://reviews.llvm.org/D82297
The file was addedlldb/test/API/commands/target/modules/search-paths/insert/main.cpp
The file was modifiedlldb/source/Commands/CommandObjectFrame.cpp
The file was addedlldb/test/API/commands/process/signal/TestProcessSignal.py
The file was addedlldb/test/API/commands/platform/file/read/TestPlatformFileRead.py
The file was addedlldb/test/API/commands/target/stop-hook/delete/TestTargetStopHookDelete.py
The file was addedlldb/test/API/commands/thread/select/Makefile
The file was addedlldb/test/API/commands/target/select/TestTargetSelect.py
The file was modifiedlldb/source/Commands/CommandObjectPlatform.cpp
The file was addedlldb/test/API/commands/thread/select/main.cpp
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp
The file was addedlldb/test/API/commands/process/signal/main.cpp
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
The file was addedlldb/test/API/commands/process/signal/Makefile
The file was addedlldb/test/API/commands/target/stop-hook/disable/TestTargetStopHookDisable.py
The file was addedlldb/test/API/commands/thread/select/TestThreadSelect.py
The file was addedlldb/test/API/commands/platform/file/close/TestPlatformFileClose.py
The file was addedlldb/test/API/commands/target/modules/search-paths/insert/Makefile
The file was addedlldb/test/API/commands/target/modules/search-paths/insert/TestTargetModulesSearchpathsInsert.py
The file was addedlldb/test/API/commands/target/stop-hook/enable/TestTargetStopHookEnable.py
The file was modifiedlldb/source/Commands/CommandObjectThread.cpp
The file was modifiedlldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
Commit b2aa546b0747418b0784b291b9104a4e3bf1e0c9 by luismarques
[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2

The pass to split atomic and non-atomic RISC-V pseudo-instructions was itself
split into two passes in D79635 / commit rG2cb0644f90b7, with the splitting of
non-atomic instructions being moved to the PreSched2 phase. A comment was
added to D79635 detailing a case where this caused problems, so this commit
moves the non-atomic split pass back to the PreEmitPass2 phase. This allows
the bulk of the changes from D79635 to remain committed, while addressing the
the reported problem (the pass split is now almost NFC). Once the root problem
is fixed we can move the (non-atomic) instruction splitting pass back to
earlier in the pipeline.
The file was modifiedllvm/test/CodeGen/RISCV/codemodel-lowering.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetMachine.cpp
Commit d36f2c6a6c4bb3c1cd213f3ed08a7a090fee54d2 by pzheng
[RISCV] Add mcountinhibit CSR

Summary:
The mcountinhibit CSR is defined in the ratified 1.11 version of the privileged
spec.

Reviewers: apazos, asb, lenary, luismarques

Reviewed By: asb

Subscribers: hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, sameer.abuasal, evandro, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82913
The file was modifiedllvm/lib/Target/RISCV/RISCVSystemOperands.td
The file was modifiedllvm/test/MC/RISCV/machine-csr-names.s
Commit 0ae989a1fede0e512e2bfd57b328aad6c1920329 by llvm-dev
Pass DebugLoc::appendInlinedAt DebugLoc arg by const reference not value.

Noticed by clang-tidy performance-unnecessary-value-param warning.
The file was modifiedllvm/include/llvm/IR/DebugLoc.h
The file was modifiedllvm/lib/IR/DebugLoc.cpp
Commit c83ec0a633583e5b12e0aeb70627eb35f7cd4847 by llvm-dev
Make dyn_cast results explicitly auto* instead of just auto.

Noticed by clang-tidy llvm-qualified-auto warning.
The file was modifiedllvm/lib/IR/Instructions.cpp
Commit 38907b696c0e31d2269ec4b8966bf603c36b579c by Xing
[DWARFYAML][debug_abbrev] Emit 0 byte for terminating abbreviations.

The abbreviations for a given compilation unit end with an entry
consisting of a 0 byte for the abbreviation code.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D82933
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-abbrev.yaml
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
Commit ca4c1ad854ab9baf510e489d81625cace991beb1 by david.green
[Outliner] Set nounwind for outlined functions

This prevents the outlined functions from pulling in a lot of unnecessary code
in our downstream libraries/linker. Which stops outlining making codesize
worse in c++ code with no-exceptions.

Differential Revision: https://reviews.llvm.org/D57254
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-same-key-b.ll
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-throw2.ll
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-throw.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner.ll
The file was modifiedllvm/lib/CodeGen/MachineOutliner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-v8-3.ll
Commit 6bd1db08e7ccd61996d3867d22ff8eb1979f8621 by yamauchi
[InstCombine] Don't let an alignment assume prevent new/delete removals.

Remove allocations with alignment assume.

Differential Revision: https://reviews.llvm.org/D81854
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll
The file was modifiedllvm/test/Transforms/InstCombine/malloc-free-delete.ll
Commit 0f9d623b63e87b4ba30c30fd884ecc333eb32b4a by gchatelet
[Alignment][NFC] Use Align for BPFAbstractMemberAccess::RecordAlignment

This 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

Differential Revision: https://reviews.llvm.org/D82962
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
Commit 353a169cb814334e47bc2e98f03931e62023665a by epastor
[ms] [llvm-ml] Use default RIP-relative addressing for x64 MASM.

Summary:
When parsing 64-bit MASM, treat memory operands with unspecified base register as RIP-based.

Documented in several places, including https://software.intel.com/en-us/articles/introduction-to-x64-assembly: "Unfortunately, MASM does not allow this form of opcode, but other assemblers like FASM and YASM do. Instead, MASM embeds RIP-relative addressing implicitly."

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D73227
The file was modifiedllvm/include/llvm/MC/MCParser/MCAsmParser.h
The file was addedllvm/test/tools/llvm-ml/rip-relative-addressing.test
The file was modifiedllvm/lib/Target/X86/AsmParser/X86Operand.h
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
Commit 0f6afd946d25a2e83288339934f8fa384e38eea3 by nikita.ppv
[CVP] Use different number in test (NFC)

To make it clear that this is not intended to be specific to
mask / bit tests.
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
Commit 78c69a00a4cff786e0ef13c895d0db309d6b3f42 by Yuanfang Chen
[NFC] Clean up uses of MachineModuleInfoWrapperPass
The file was modifiedllvm/lib/CodeGen/GCRootLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86IndirectThunks.cpp
The file was modifiedllvm/lib/CodeGen/BBSectionsPrepare.cpp
The file was modifiedllvm/lib/CodeGen/BranchFolding.h
The file was modifiedllvm/lib/Target/AArch64/AArch64SLSHardening.cpp
The file was modifiedllvm/lib/Target/X86/X86InsertPrefetch.cpp
The file was modifiedllvm/lib/CodeGen/IfConversion.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp
The file was modifiedllvm/lib/CodeGen/MachineBlockPlacement.cpp
The file was modifiedllvm/lib/CodeGen/UnreachableBlockElim.cpp
Commit 4b0aa5724feaa89a9538dcab97e018110b0e4bc3 by jyknight
Change the INLINEASM_BR MachineInstr to be a non-terminating instruction.

Before this instruction supported output values, it fit fairly
naturally as a terminator. However, being a terminator while also
supporting outputs causes some trouble, as the physreg->vreg COPY
operations cannot be in the same block.

Modeling it as a non-terminator allows it to be handled the same way
as invoke is handled already.

Most of the changes here were created by auditing all the existing
users of MachineBasicBlock::isEHPad() and
MachineBasicBlock::hasEHPadSuccessor(), and adding calls to
isInlineAsmBrIndirectTarget or mayHaveInlineAsmBr, as appropriate.

Reviewed By: nickdesaulniers, void

Differential Revision: https://reviews.llvm.org/D79794
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-branch-folding.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/lib/CodeGen/PHIEliminationUtils.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-outputs.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
The file was modifiedllvm/lib/Target/Hexagon/BitTracker.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was addedllvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonConstPropagation.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp
The file was modifiedllvm/test/Verifier/callbr.ll
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm.ll
The file was modifiedllvm/include/llvm/Target/Target.td
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-label-addr.ll
The file was modifiedllvm/lib/CodeGen/SplitKit.cpp
The file was modifiedllvm/test/CodeGen/ARM/ifcvt-diamond-unanalyzable-common.mir
The file was modifiedllvm/lib/CodeGen/MachineSink.cpp
The file was modifiedllvm/test/CodeGen/ARM/ifcvt-size.mir
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/ShrinkWrap.cpp
The file was modifiedllvm/test/CodeGen/AArch64/callbr-asm-label.ll
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was modifiedllvm/lib/CodeGen/TailDuplicator.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-blockplacement.ll
The file was modifiedllvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll
The file was modifiedllvm/lib/CodeGen/SplitKit.h
The file was addedllvm/test/CodeGen/X86/shrinkwrap-callbr.ll
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp
Commit 3eacfdc72f1aa3ac53eb300116f194d560053ec7 by yhs
[BPF] Fix a BTF gen bug related to a pointer struct member

Currently, BTF generation stops at pointer struct members
if the pointee type is a struct. This is to avoid bloating
generated BTF size. The following is the process to
correctly record types for these pointee struct types.
  - During type traversal stage, when a struct member, which
    is a pointer to another struct, is encountered,
    the pointee struct type, keyed with its name, is
    remembered in a Fixup map.
  - Later, when all type traversal is done, the Fixup map
    is scanned, based on struct name matching, to either
    resolve as pointing to a real already generated type
    or as a forward declaration.

Andrii discovered a bug if the struct member pointee struct
is anonymous. In this case, a struct with empty name is
recorded in Fixup map, and later it happens another anonymous
struct with empty name is defined in BTF. So wrong type
resolution happens.

To fix the problem, if the struct member pointee struct
is anonymous, pointee struct type will be generated in
stead of being put in Fixup map.

Differential Revision: https://reviews.llvm.org/D82976
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp
The file was addedllvm/test/CodeGen/BPF/BTF/struct-anon-2.ll
Commit 565e37c7702d181804c12d36b6010c513c9b3417 by xun
[Coroutines] Fix code coverage for coroutine

Summary:
Previously, source-based coverage analysis does not work properly for coroutine.
This patch adds processing of coroutine body and co_return in the coverage analysis, so that we can handle them properly.
For coroutine body, we should only look at the actual function body and ignore the compiler-generated things; for co_return, we need to terminate the region similar to return statement.
Added a test, and confirms that it now works properly. (without this patch, the statement after the if statement will be treated wrongly)

Reviewers: lewissbaker, modocache, junparser

Reviewed By: modocache

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82928
The file was modifiedclang/lib/CodeGen/CoverageMappingGen.cpp
The file was addedclang/test/CoverageMapping/coroutine.cpp
Commit c30da98d478e547428a723354b4fd1e45a7f7003 by flo
[AArch64] Remove unnecessary CostKindCheck (NFC).

Simplification suggested post-commit.
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
Commit cc4d523bb600cbf129242dee3167e3acf1d37a6a by guiand
sanitizer_common_interceptors: Fix lint errors
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
Commit 98c3a38a1967ece4e70891aa188c51e29ca0f8d3 by Jonas Devlieghere
Revert "Improve the detection of iOS/tvOS/watchOS simulator binaries in"

This reverts commit 0da0437b2afbd8ebef6b11f114cca33b118e7639 to unbreak
the following tests:

lldb-api.tools/lldb-server.TestAppleSimulatorOSType.py
lldb-api.tools/lldb-server.TestGdbRemoteAttach.py
lldb-api.tools/lldb-server.TestGdbRemoteProcessInfo.py
lldb-api.tools/lldb-server.TestGdbRemoteRegisterState.py
lldb-api.tools/lldb-server.TestGdbRemoteThreadsInStopReply.py
lldb-api.tools/lldb-server.TestLldbGdbServer.py
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.h
The file was modifiedlldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
The file was modifiedlldb/test/API/macosx/simulator/TestSimulatorPlatform.py
Commit f11305780f08969488add6c84439fc91d18692dc by david.sherwood
[CodeGen] Fix warnings in DAGCombiner::visitSCALAR_TO_VECTOR

In visitSCALAR_TO_VECTOR we try to optimise cases such as:

  scalar_to_vector (extract_vector_elt %x)

into vector shuffles of %x. However, it led to numerous warnings
when %x is a scalable vector type, so for now I've changed the
code to only perform the combination on fixed length vectors.
Although we probably could change the code to work with scalable
vectors in certain cases, without a proper profit analysis it
doesn't seem worth it at the moment.

This change fixes up one of the warnings in:

  llvm/test/CodeGen/AArch64/sve-merging-stores.ll

I've also added a simplified version of the same test to:

  llvm/test/CodeGen/AArch64/sve-fp.ll

which already has checks for no warnings.

Differential Revision: https://reviews.llvm.org/D82872
The file was modifiedllvm/test/CodeGen/AArch64/sve-fp.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 3367e9dac56024147bbd916c40bfe6a4ee61079b by craig.topper
[X86] Enable multibyte NOPs in 64-bit mode for padding/alignment.

The default CPU used by llvm-mc doesn't have the NOPL feature, but
if we know we're compiling in 64-bit mode we should be able to
use nopl.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
The file was modifiedllvm/test/MC/X86/align-branch-pad-max-prefix.s
The file was modifiedllvm/test/MC/X86/align-branch-bundle.s
Commit 16ea23ff78fafde15bf8b13a0ff503a0dda80ce3 by Matthew.Arsenault
AMDGPU: Clear subreg when folding immediate copies

This was getting reinterpreted as operand target flags, and appearing
as as <unknown target flag>, resulting in unparseable MIR.
The file was modifiedllvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Commit a21544ad11fe443f4c38161630d3f2fc90d098bf by Matthew.Arsenault
AMDGPU: Fix handling of target flags when commuting instruction

If the original register operand had a subregister, it wasn't getting
cleared. This resulted in reinterpreted the subreg index as
unrecognized target flags, which produced unparseable MIR.
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/machine-cse-commute-target-flags.mir
Commit 14fe4607f15ecfc3e9423ddb35d025d1f1b67be5 by Matthew.Arsenault
AMDGPU: Support commuting register and global operand
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-relocs.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/machine-cse-commute-target-flags.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
Commit ba3bafe46a474dca34155043c8cc0ea603db2214 by Matthew.Arsenault
AMDGPU: Convert AGPR copy test to generated checks
The file was modifiedllvm/test/CodeGen/AMDGPU/accvgpr-copy.mir
Commit e7c5da57a5f3fdb6649ff92cb8ba0ce3c4978668 by zoecarver
[CodeGen] Add public function to emit C++ destructor call.

Adds `CodeGen::getCXXDestructorImplicitParam`, to retrieve a C++ destructor's implicit parameter (after the "this" pointer) based on the ABI in the given CodeGenModule.

This will allow other frontends (Swift, for example) to easily emit calls to object destructors with correct ABI semantics and calling convetions.

This is needed for Swift C++ interop. Here's the corresponding Swift change: https://github.com/apple/swift/pull/32291

Differential Revision: https://reviews.llvm.org/D82392
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/lib/CodeGen/ABIInfo.h
The file was modifiedclang/lib/CodeGen/CGCXXABI.h
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/include/clang/CodeGen/CodeGenABITypes.h
The file was modifiedclang/lib/CodeGen/CodeGenABITypes.cpp
Commit 116b1033738f9a409e502e270dbf1c9e04f5b1ad by Adrian Prantl
Revert "Revert "Improve the detection of iOS/tvOS/watchOS simulator binaries in""

This reverts commit 98c3a38a1967ece4e70891aa188c51e29ca0f8d3.
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.h
The file was modifiedlldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
The file was modifiedlldb/test/API/macosx/simulator/TestSimulatorPlatform.py
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
Commit 278874f07f7315e0f7fda3202597e7ab2e94ed1a by Adrian Prantl
debugserver: Return a nullptr in GetPlatformString()

This un-breaks the testsuite after https://reviews.llvm.org/D82616
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
Commit ddcf063dd52ff1f30ac27d6f9abce6a45685a2b2 by xun
[Coroutines] Fix test breakage in D82928

Summary: The test file in D82928 generated temp files within the test directory, causing test failures. Fix it.

Reviewers: modocache, fhahn

Reviewed By: modocache

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82986
The file was modifiedclang/test/CoverageMapping/coroutine.cpp
Commit 05d79295df136efd6fd875ead2ba6a0cb50b7997 by guiand
[Sanitizers] Disable sysmsg interceptors on Android
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/Linux/sysmsg.c
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
Commit 91836fd7f3c128b4c608bd4b389a64ff4ac1db8a by nikita.ppv
[LVI][CVP] Handle (x | y) < C style conditions

InstCombine may convert conditions like (x < C) && (y < C) into
(x | y) < C (for some C). This patch teaches LVI to recognize that
in this case, it can infer either x < C or y < C along the edge.

This fixes the issue reported at
https://github.com/rust-lang/rust/issues/73827.

Differential Revision: https://reviews.llvm.org/D82715
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
Commit 361853c96f46848d2ad0739dfa7613e62e7fb530 by craig.topper
[LegalizeTypes] Properly handle the case when UpdateNodeOperands in PromoteIntOp_MLOAD triggers CSE instead of updating the node in place.

The caller can't handle the node having multiple results like a
masked load does. So we need to detect the case and do our own
result replacement.

Fixes PR46532.
The file was addedllvm/test/CodeGen/X86/pr46532.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit 779e4d82dea2d0ecb094252dcc679f8f7d256ca0 by efriedma
[IR] Add classof methods to ConstantExpr subclasses.

I didn't notice these were missing when I wrote 1544019.
The file was modifiedllvm/lib/IR/ConstantsContext.h
Commit 51e92b223bf13c3b529220b80ef8bc972e46e564 by craig.topper
[X86] Speculatively apply the same fix from 361853c96f46848d2ad0739dfa7613e62e7fb530 to PromoteIntOp_MGATHER.

The UpdateNodeOperands here is also subject to CSE.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit e1581540876f51af1aa1389bdb21388ae88c1b90 by eschweitz
[clang-tidy] Allows the prevailing include header guard in Flang to be recognized rather than flagged as a violation in phabricator.

Differential revision: https://reviews.llvm.org/D82807
The file was modifiedclang-tools-extra/clang-tidy/llvm/HeaderGuardCheck.cpp
Commit 7f1e7767952233d1b6af1feef1371d127de5fa50 by clementval
[flang][openmp] Use common Directive and Clause enum from llvm/Frontend

Summary:
This patch is removing the custom enumeration for OpenMP Directives and Clauses and replace them
with the newly tablegen generated one from llvm/Frontend. This is a first patch and some will follow to share the same
infrastructure where possible. The next patch should use the clauses allowance defined in the tablegen file.

Reviewers: jdoerfert, DavidTruby, sscalpone, kiranchandramohan, ichoyjx

Reviewed By: DavidTruby, ichoyjx

Subscribers: ichoyjx, mgorny, yaxunl, guansong, jfb, sstefan1, aaron.ballman, llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D82906
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/include/flang/Common/enum-set.h
The file was modifiedflang/lib/Parser/CMakeLists.txt
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
The file was modifiedflang/tools/f18-parse-demo/CMakeLists.txt
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/lib/Semantics/CMakeLists.txt
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was modifiedflang/lib/Evaluate/CMakeLists.txt
Commit 5a580bbb818737dcbfcfc2089532c38b670ef204 by eschweitz
[flang] Add the Runtime.h to prepare for more code being upstreamed.

This is the header file for lowering Fortran statements that depend on
the Fortran runtime support library. The implementation of the lowering
of these constructs will follow in a subsequent diff.

Differential revision: https://reviews.llvm.org/D82991
The file was addedflang/include/flang/Lower/Runtime.h
Commit 31fdcf64d24d537fbc227dbb475ef388cdf92dbc by Tony.Tye
[AMDGPU] Update DWARF proposal

- Add reference to implicit conversion description.
The file was modifiedllvm/docs/AMDGPUDwarfProposalForHeterogeneousDebugging.rst
Commit e6ad78fe050392e6807593793f59e65b0e6dc433 by maskray
[ELF] Don't resolve a relocation in .debug_line referencing an ICF folded symbol to the tombstone value

After D81784, we resolve a relocation in .debug_* referencing an ICF folded
section symbol to a tombstone value.

Doing this for .debug_line has a problem (https://reviews.llvm.org/D81784#2116925 ):
.debug_line may describe folded lines as having addresses UINT64_MAX or
some wraparound small addresses.

```
int foo(int x) {
  return x; // line 2
}

int bar(int x) {
  return x; // line 6
}
```

```
Address            Line   Column File   ISA Discriminator Flags
------------------ ------ ------ ------ --- ------------- -------------
0x00000000002016c0      1      0      1   0             0  is_stmt
0x00000000002016c7      2      9      1   0             0  is_stmt
prologue_end
0x00000000002016ca      2      2      1   0             0
0x00000000002016cc      2      2      1   0             0  end_sequence
// UINT64_MAX and wraparound small addresses
0xffffffffffffffff      5      0      1   0             0  is_stmt
0x0000000000000006      6      9      1   0             0  is_stmt
prologue_end
0x0000000000000009      6      2      1   0             0
0x000000000000000b      6      2      1   0             0  end_sequence
0x00000000002016d0      9      0      1   0             0  is_stmt
0x00000000002016df     10      6      1   0             0  is_stmt prologue_end
0x00000000002016e6     11     11      1   0             0  is_stmt
...
```

These entries can confuse debuggers:

gdb before 2020-07-01 (binutils-gdb a8caed5d7faa639a1e6769eba551d15d8ddd9510 "Recognize -1 as a tombstone value in .debug_line")
(can't continue due to a breakpoint in an invalid region of memory):
```
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x6
```
lldb (breakpoint has no effect):
```
(lldb) b 6
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
```

This patch special cases .debug_line to not use the tombstone value,
restoring the previous behavior: .debug_line will have entries with the
same addresses (ICF) but different line numbers. A breakpoint on line 2
or 6 will trigger on both functions.

Reviewed By: dblaikie, jhenderson

Differential Revision: https://reviews.llvm.org/D82828
The file was modifiedlld/test/ELF/debug-dead-reloc-icf.s
The file was modifiedlld/ELF/InputSection.cpp
Commit ecfa0b24189abf4bb172a8860048af05fa17daee by yitzhakm
[libTooling] Fix `maybeExtendRange` to support `CharRange`s.

Currently, `maybeExtendRange` takes a `CharSourceRange`, but only works
correctly for the `TokenRange` case. This change adds proper support for the
`CharRange` case.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D82901
The file was modifiedclang/lib/Tooling/Transformer/SourceCode.cpp
The file was modifiedclang/unittests/Tooling/SourceCodeTest.cpp
Commit cb8faaacb52c1c0f0b97379ac0e07a612c04c5ff by serguei.n.dmitriev
[CallGraph] Add support for callback call sites

Summary:
This patch changes call graph analysis to recognize callback call sites
and add an artificial 'reference' call record from the broker function
caller to the callback function in the call graph. A presence of such
reference enforces bottom-up traversal order for callback functions in
CG SCC pass manager because callback function logically becomes a callee
of the broker function caller.

Reviewers: jdoerfert, hfinkel, sstefan1, baziotis

Reviewed By: jdoerfert

Subscribers: hiraditya, kuter, sstefan1, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82572
The file was modifiedllvm/lib/Analysis/CallGraphSCCPass.cpp
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was modifiedllvm/test/Analysis/CallGraph/non-leaf-intrinsics.ll
The file was modifiedllvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp
The file was addedllvm/test/Analysis/CallGraph/callback-calls.ll
The file was modifiedllvm/lib/Analysis/CallGraph.cpp
The file was modifiedllvm/lib/Transforms/Utils/CallGraphUpdater.cpp
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/include/llvm/IR/AbstractCallSite.h
The file was modifiedllvm/include/llvm/Analysis/CallGraph.h
Commit 31e6cd28a5a8afeea4a7f89d54ccf87eaba9f76c by pklausler
[flang] Implement cross-set EQUIVALENCE impossibility checking

Implement cross-set EQUIVALENCE impossibility checking; fixes
an infinite loop on an erroneous test.  Also fix substring
reference offset calculations in EQUIVALENCE discovered to
be incorrect during testing.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D82993
The file was modifiedflang/lib/Semantics/compute-offsets.cpp
The file was modifiedflang/lib/Semantics/resolve-names-utils.cpp
The file was modifiedflang/test/Semantics/equivalence01.f90
The file was modifiedflang/include/flang/Semantics/scope.h
Commit 3fb48b70884aedc6344c17bfa1ac1c01bdc454a3 by rprichard
[compiler-rt][Android] Use correct builtins library name for tests

The builtins library name is special on Android:

* There is an "-android" suffix.

* For the compiler-rt i386 architecture, Android targets i686 (in the
   triple and in the builtins library filename)

With this change, check-builtins works with Android.

Reviewed By: compnerd

Differential Revision: https://reviews.llvm.org/D82149
The file was modifiedcompiler-rt/test/lit.common.configured.in
Commit a59dc55c2a11c1b125d1a356a90b0b2bf72b16fb by nikita.ppv
[InstSimplify] Move assume icmp test (NFC)

Move this test from InstCombine into InstSimplify.
The file was removedllvm/test/Transforms/InstCombine/assume_icmp.ll
The file was addedllvm/test/Transforms/InstSimplify/assume_icmp.ll
Commit d9d992bb8809820c50820b3e703d33d5fcb51385 by Jonas Devlieghere
[lldb/API] Add missing LLDB_RECORD_RESULT
The file was modifiedlldb/source/API/SBBreakpoint.cpp
Commit 003a086ffc0d1affbb8300b36225fb8150a2d40a by selliott
[RISCV][NFC] Pre-commit tests for D82660
The file was modifiedllvm/test/CodeGen/RISCV/mul.ll
Commit c420762172baedada71e49447f0010c292533660 by craig.topper
Revert "[X86] Enable multibyte NOPs in 64-bit mode for padding/alignment."

Looks like lld tests need updates too

This reverts commit 3367e9dac56024147bbd916c40bfe6a4ee61079b.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
The file was modifiedllvm/test/MC/X86/align-branch-pad-max-prefix.s
The file was modifiedllvm/test/MC/X86/align-branch-bundle.s