SuccessChanges

Summary

  1. [mlir] Fix -Wunused (details)
  2. [AMDGPU] Fix getInstrLatency() always returning 1 (details)
  3. [lldb][NFC] Rewrite python_api/rdar-12481949 test (details)
  4. [libcxx] [test] Add casts to avoid signed/unsigned mismatch warnings on (details)
  5. [AMDGPU] Model distance to instruction in bundle (details)
  6. [llvm-readobj][test] - Fix grammar in comments. (details)
  7. [clang-tidy] Ignore implicit casts in modernize-use-default-member-init (details)
  8. [TableGen] Introduce a `defvar` statement. (details)
  9. [TableGen] Introduce an if/then/else statement. (details)
  10. [Target] Fix uninitialized value in (details)
  11. [ARM][MVE] Masked gathers from base + vector of offsets (details)
  12. [mlir] Add loop.parallel, loop.reduce and loop.reduce.return operations. (details)
  13. [mlir] Ran git-clang-format. (details)
  14. [lldb][NFC] Cleanup ClangASTContext::CompleteTagDeclarationDefinition (details)
  15. [mlir] Create a gpu.module operation for the GPU Dialect. (details)
  16. [RISCV] Fix ILP32D lowering for double+double/double+int return types (details)
  17. [mlir] Fix translation of splat constants to LLVM IR (details)
  18. [ARM][MVE] Disallow VPSEL for tail predication (details)
  19. [SelectionDAG] ComputeKnownBits - merge (details)
  20. [X86][SSE] Add add(shl(and(x,c1),c2),c3) test case with non-uniform (details)
  21. [ARM][Thumb2] Fix ADD/SUB invalid writes to SP (details)
  22. [ARM][LowOverheadLoops] Change predicate inspection (details)
  23. [SelectionDAG] ComputeKnownBits - merge (details)
  24. Fix "MIParser::getIRValue(unsigned int)’ defined but not used" warning. (details)
  25. [ARM][LowOverheadLoops] Allow all MVE instrs. (details)
  26. [lldb/Expression] Improve interpreter error message with a non-running (details)
  27. [ARM,MVE] Use the new Tablegen `defvar` and `if` statements. (details)
  28. [unittests] Fix "comparison of integers of different signs" warnings (details)
  29. Make helper functions static or move them into anonymous namespaces. (details)
  30. [FPEnv] Fix chain handling regression after 04a8696 (details)
  31. [RISCV][NFC] Deduplicate Atomic Intrinsic Definitions (details)
  32. [FPEnv] Add some comments to IRBuilder.h (details)
  33. [lldb][NFC] Make name parameter in AddMethodToCXXRecordType a StringRef (details)
  34. [TableGen] Update editor modes for new keywords. (details)
  35. [InstSimplify] add tests for vector select; NFC (details)
  36. AArch64: fix bitcode upgrade of @llvm.neon.addp. (details)
  37. Expression eval lookup speedup by not returning methods in (details)
  38. Fix "null pointer passed to nonnull argument" clang static analyzer (details)
  39. Fix "pointer is null" static analyzer warnings. NFCI. (details)
  40. Merge isa<> and getAs<> calls to fix "pointer is null" static analyzer (details)
  41. Remove duplicate variable. NFCI. (details)
  42. Fix "pointer is null" static analyzer warnings. NFCI. (details)
  43. Fix "pointer is null" static analyzer warning. NFCI. (details)
  44. [llvm-readobj][llvm-readelf][test] - Add a few more dynamic section (details)
  45. [lldb/DWARF] Move location list sections into DWARFContext (details)
  46. [AIX] ExternalSymbolSDNode lowering (details)
  47. [DBG][LIVEDEBUGVALUES][NFC] Add Targeted LiveDebugValues Behaviour (details)
  48. [OpenCL] Add MSAA sharing extension builtin functions (details)
  49. Revert "Recommit "[GlobalOpt] Pass DTU to removeUnreachableBlocks (details)
  50. [AArch64] Fix save register pairing for Windows AAPCS (details)
  51. Revert "[DBG][LIVEDEBUGVALUES][NFC] Add Targeted LiveDebugValues (details)
  52. [clang-tidy] Match InitListExpr in modernize-use-default-member-init (details)
  53. [Syntax] Assert invariants on tree structure and fix a bug in mutations (details)
  54. [Syntax] Mark synthesized nodes as modifiable (details)
  55. [DBG][LIVEDEBUGVALUES][NFC] Add Targeted LiveDebugValues Behaviour (details)
  56. [scudo][standalone] Fork support (details)
  57. [Syntax] Unset IsOriginal flag on nodes removed from the tree (details)
  58. [ARM][MVE] VTP Block Pass fix (details)
  59. [clang][OpenCL] Fix covered switch warning (details)
  60. Fix "pointer is null" clang static analyzer warnings. NFCI. (details)
  61. Fix "pointer is null" static analyzer warnings. NFCI. (details)
  62. [IR] fix potential crash in Constant::isElementWiseEqual() (details)
  63. [lldb/Utility] Use assert instead of llvm_unreachable for LLDBAssert (details)
  64. [RISCV] Add Clang frontend support for Bitmanip extension (details)
  65. [test] Make data layout of load-bitcast64.ll explicit, use (details)
  66. Removed PointerUnion3 and PointerUnion4 aliases in favor of the variadic (details)
  67. [ELF] --exclude-libs: don't assign VER_NDX_LOCAL to undefined symbols (details)
  68. [InstCombine] Let combineLoadToNewType preserve ABI alignment of the (details)
  69. [AIX][XCOFF] Supporting the ReadOnlyWithRel SectionKnd (details)
  70. SCC: Allow ReplaceNode to safely support insertion (details)
  71. [X86] Directly emit a BROADCAST_LOAD from constant pool in (details)
  72. [ThinLTO] Handle variable with twice promoted name (Rust) (details)
  73. [ELF] Delete the RelExpr member R_HINT. NFC (details)
  74. [ThinLTO/WPD] Remove an overly-aggressive assert (details)
  75. [RISCV] Allow shrink wrapping for RISC-V (details)
  76. Added readability-qualified-auto check (details)
  77. [gn build] Port 36fcbb838c8 (details)
  78. [lldb/test] test_breakpoints_func_full from (details)
  79. [MachineScheduler] Reduce reordering due to mem op clustering (details)
  80. [InstCombine] add test for possible cast-of-select transform; NFC (details)
  81. Fix NetBSD bot after b4a99a061f517e60985667e39519f60186cbb469 (details)
  82. [nfc][libomptarget] Refactor amdgcn target_impl (details)
  83. [nfc][libomptarget] Refactor nvptx/target_impl.cu (details)
  84. [InstCombine] Add test for iterator invalidation bug; NFC (details)
  85. [InstCombine] Fix user iterator invalidation in bitcast of phi transform (details)
  86. [InstCombine] Make combineLoadToNewType a method; NFC (details)
  87. [InstCombine] Fix infinite loop due to bitcast <-> phi transforms (details)
  88. [OPENMP]Improve handling of possibly incorrectly mapped types. (details)
  89. [NewPM] Port MergeFunctions pass (details)
  90. [OpenMP][Tool] Runtime warning for missing TSan-option (details)
  91. [Driver] Ignore -fno-semantic-interposition (details)
  92. [SVE] Add patterns for MUL immediate instruction. (details)
  93. [libcxx] [Windows] Make a more proper implementation of strftime_l for (details)
  94. dotest.py: Add option to pass extra lldb settings to dotest (details)
  95. [analyzer] Fix SARIF column locations (details)
  96. [DebugInfo] Add option to clang to limit debug info that is emitted for (details)
  97. [InstCombine] Fix worklist management when removing guard intrinsic (details)
  98. [clang][test][NFC] Use more widely supported sanitizer for file (details)
  99. [GVN] fix comment/argument name to match actual implementation. NFC (details)
  100. [LegalizeTypes] Remove untested code from ExpandIntOp_UINT_TO_FP (details)
  101. [Driver][test] Fix Driver/hexagon-toolchain-elf.c for (details)
  102. [AArch64][GlobalISel]: Support @llvm.{return,frame}address selection. (details)
  103. Remove trailing `;`. NFC. (details)
  104. [mlir] Use double format when parsing bfloat16 hexadecimal values (details)
  105. [OPENMP]Do not emit special virtual function for NVPTX target. (details)
  106. [DAGCombine] Replace `getIntPtrConstant()` with `getVectorIdxTy()`. (details)
  107. [mlir][Linalg] Update the semantics, verifier and test for Linalg with (details)
  108. -fmodules-codegen should not emit extern templates (details)
  109. fix recent -fmodules-codegen fix test (details)
Commit 547abdd921e45fd65a2fa60f21715facb4af31b2 by sam.mccall
[mlir] Fix -Wunused
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit eca44745871bc46728903aaa262abc6344d4f959 by Stanislav.Mekhanoshin
[AMDGPU] Fix getInstrLatency() always returning 1
We do not have InstrItinerary so generic getInstLatency() was always
defaulting to return 1 cycle. We need to use TargetSchedModel instead to
compute an instruction's latency.
Differential Revision: https://reviews.llvm.org/D72655
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/scheduler-handle-move-bundle.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/max.i16.ll
Commit d8ffd601d523fa0c0a55e25e62af9ffaa618629d by Raphael Isemann
[lldb][NFC] Rewrite python_api/rdar-12481949 test
Summary: This renames the test `rdar-12481949` to `get-value-32bit-int`
as it just tests that we return the correct result get calling
GetValueAsSigned/GetValueAsUnsigned on 32-bit integers.
It also deletes all the strange things going on in this test including
resetting the data formatters (which are to my knowledge not used to
calculate scalar values) and testing Python's long integers (let's just
assume that our Python distribution works correctly). Also modernises
the setup code.
Reviewers: labath, aprantl
Reviewed By: aprantl
Subscribers: JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72593
The file was addedlldb/packages/Python/lldbsuite/test/python_api/get-value-32bit-int/Makefile
The file was removedlldb/packages/Python/lldbsuite/test/python_api/rdar-12481949/main.cpp
The file was removedlldb/packages/Python/lldbsuite/test/python_api/rdar-12481949/Makefile
The file was addedlldb/packages/Python/lldbsuite/test/python_api/get-value-32bit-int/TestGetValue32BitInt.py
The file was addedlldb/packages/Python/lldbsuite/test/python_api/get-value-32bit-int/main.cpp
The file was removedlldb/packages/Python/lldbsuite/test/python_api/rdar-12481949/Test-rdar-12481949.py
Commit 6d8abe424a77f736fbed114eeac574b9bfe6b0c1 by bion
[libcxx] [test] Add casts to avoid signed/unsigned mismatch warnings on
MSVC++
A bug was filed that these warnings should not be emitted as
DevCom-883961. (
https://developercommunity.visualstudio.com/content/problem/883961/c4389-signedunsigned-mismatch-should-not-be-emitte.html
)
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.remove/remove_copy.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp
Commit ad741853c38880dff99cd5b5035b8965c5a73011 by Stanislav.Mekhanoshin
[AMDGPU] Model distance to instruction in bundle
This change allows to model the height of the instruction within a
bundle for latency adjustment purposes.
Differential Revision: https://reviews.llvm.org/D72669
The file was addedllvm/test/CodeGen/AMDGPU/bundle-latency.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
Commit ec6579fc047f9ac18588b833dfde0b69064e013a by grimar
[llvm-readobj][test] - Fix grammar in comments.
This addresses post commit review comments for D71766.
The file was modifiedllvm/test/tools/llvm-readobj/ELF/file-header-abi-version.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/file-header-os-abi.test
Commit 45924eb4671692b3fa9fd52fe39c81ec0647a848 by malcolm.parsons
[clang-tidy] Ignore implicit casts in modernize-use-default-member-init
Summary: Initialising a pointer from nullptr involves an implicit cast.
Ignore it after getting initialiser from InitListExpr.
Fixes: PR44440
Reviewers: aaron.ballman, alexfh, JonasToth
Reviewed By: JonasToth
Subscribers: xazax.hun, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72630
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp
Commit 3388b0f59dcc7813278c753f96b66229f290cc59 by simon.tatham
[TableGen] Introduce a `defvar` statement.
Summary: This allows you to define a global or local variable to an
arbitrary value, and refer to it in subsequent definitions.
The main use I anticipate for this is if you have to compute some
difficult function of the parameters of a multiclass, and then use it
many times. For example:
  multiclass Foo<int i, string s> {
   defvar op = !cast<BaseClass>("whatnot_" # s # "_" # i);
   def myRecord {
     dag a = (op this, (op that, the other), (op x, y, z));
     int b = op.subfield;
   }
   def myOtherRecord<"template params including", op>;
}
There are a couple of ways to do this already, but they're not really
satisfactory. You can replace `defvar x = y` with a loop over a
singleton list, `foreach x = [y] in { ... }` - but that's unintuitive to
someone who hasn't seen that workaround idiom before, and requires an
extra pair of braces that you often didn't really want. Or you can
define a nested pair of multiclasses, with the inner one taking `x` as a
template parameter, and the outer one instantiating it just once with
the desired value of `x` computed from its other parameters - but that
makes it awkward to sequentially compute each value based on the
previous ones. I think `defvar` makes things considerably easier.
You can also use `defvar` at the top level, where it inserts globals
into the same map used by `defset`. That allows you to define global
constants without having to make a dummy record for them to live in:
  defvar MAX_BUFSIZE = 512;
  // previously:
// def Dummy { int MAX_BUFSIZE = 512; }
// and then refer to Dummy.MAX_BUFSIZE everywhere
Reviewers: nhaehnle, hfinkel
Reviewed By: hfinkel
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71407
The file was modifiedllvm/lib/TableGen/TGLexer.cpp
The file was modifiedllvm/lib/TableGen/TGParser.h
The file was modifiedllvm/lib/TableGen/TGLexer.h
The file was modifiedllvm/docs/TableGen/LangRef.rst
The file was addedllvm/test/TableGen/defvar.td
The file was modifiedllvm/lib/TableGen/TGParser.cpp
Commit ddbc0b1e516407a24d986a1998026f1ac5864270 by simon.tatham
[TableGen] Introduce an if/then/else statement.
Summary: This allows you to make some of the defs in a multiclass or
`foreach` conditional on an expression computed from the parameters or
iteration variables.
It was already possible to simulate an if statement using a `foreach`
with a dummy iteration variable and a list constructed using `!if` so
that it had length 0 or 1 depending on the condition, e.g.
  foreach unusedIterationVar = !if(condition, [1], []<int>) in { ... }
But this syntax is nicer to read, and also more convenient because it
allows an else clause.
To avoid upheaval in the implementation, I've implemented `if` as pure
syntactic sugar on the `foreach` implementation: internally, `ParseIf`
actually does construct exactly the kind of foreach shown above (and
another reversed one for the else clause if present).
Reviewers: nhaehnle, hfinkel
Reviewed By: hfinkel
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71474
The file was modifiedllvm/lib/TableGen/TGLexer.h
The file was addedllvm/test/TableGen/ifstmt.td
The file was modifiedllvm/test/TableGen/defvar.td
The file was modifiedllvm/lib/TableGen/TGParser.h
The file was modifiedllvm/docs/TableGen/LangRef.rst
The file was modifiedllvm/lib/TableGen/TGLexer.cpp
The file was modifiedllvm/lib/TableGen/TGParser.cpp
Commit 41b520188820a732e6de4865c08704f412013209 by sam.mccall
[Target] Fix uninitialized value in
10c11e4e2d05cf0e8f8251f50d84ce77eb1e9b8d
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
Commit 72ca86fd34ecc5f7ccbaf923d2d508dad2a6a64c by anna.welker
[ARM][MVE] Masked gathers from base + vector of offsets
Enables the masked gather pass to create a masked gather loading from a
base and vector of offsets. This also enables v8i16 and v16i8 gather
loads.
Differential Revision: https://reviews.llvm.org/D72330
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ptrs.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind32-scaled.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-gather-ind8-unscaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind32-unscaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-opt.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-gather-ind16-unscaled.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-gather-ind16-scaled.ll
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
Commit 018b042593f007456b0695421942ec84ec816a30 by Adrian Prantl
[mlir] Add loop.parallel, loop.reduce and loop.reduce.return operations.
Summary: These operations can be used to specify a loop nest with a body
that can contain reductions. The iteration space can be iterated in any
order.
RFC:
https://groups.google.com/a/tensorflow.org/d/topic/mlir/pwtSgiKFPis/discussion
Differential Revision: https://reviews.llvm.org/D72394
The file was modifiedmlir/include/mlir/Dialect/LoopOps/LoopOps.td
The file was modifiedmlir/lib/Dialect/LoopOps/LoopOps.cpp
The file was modifiedmlir/test/Dialect/Loops/ops.mlir
The file was modifiedmlir/test/Dialect/Loops/invalid.mlir
Commit 5a6eae3dea2342c2a83e4502de43927808f8ca21 by Adrian Prantl
[mlir] Ran git-clang-format.
Summary: I forgot to ran git-clang-format before committing.
The file was modifiedmlir/lib/Dialect/LoopOps/LoopOps.cpp
Commit 9492e9d8cfd356109276da5aa926b297db0e16db by Raphael Isemann
[lldb][NFC] Cleanup ClangASTContext::CompleteTagDeclarationDefinition
Makes this function exit early instead of nesting if statements.
Also removed all the if (tag_type->getDecl()) checks. If we created a
TagType with a nullptr as a Decl then Clang would have already
deferenced that nullptr during TagType creation so there is no point in
gracefully handling a nullptr here.
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
Commit 4624a1e8ac8a3f69cc887403b976f538f587744a by herhut
[mlir] Create a gpu.module operation for the GPU Dialect.
Summary: This is based on the use of code constantly checking for an
attribute on a model and instead represents the distinct operaion with a
different op. Instead, this op can be used to provide better filtering.
Reviewers: herhut, mravishankar, antiagainst, rriddle
Reviewed By: herhut, antiagainst, rriddle
Subscribers: liufengdb, aartbik, jholewinski, mgorny, mehdi_amini,
rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache,
csigg, arpith-jacob, mgester, lucyrfox, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72336
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp
The file was modifiedmlir/lib/Conversion/GPUToCUDA/ConvertKernelFuncToCubin.cpp
The file was modifiedmlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
The file was modifiedmlir/include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h
The file was modifiedmlir/test/Conversion/GPUToSPIRV/load-store.mlir
The file was modifiedmlir/test/Dialect/GPU/ops.mlir
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
The file was modifiedmlir/test/Conversion/GPUToSPIRV/simple.mlir
The file was modifiedmlir/test/Dialect/GPU/outlining.mlir
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was addedmlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.td
The file was modifiedmlir/test/Conversion/GPUToCUDA/lower-launch-func-to-cuda.mlir
The file was modifiedmlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir
The file was modifiedmlir/test/Conversion/GPUToSPIRV/builtins.mlir
The file was modifiedmlir/include/mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h
The file was modifiedmlir/test/Conversion/GPUToSPIRV/loop.mlir
The file was modifiedmlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
The file was modifiedmlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
The file was modifiedmlir/test/Dialect/GPU/invalid.mlir
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
The file was modifiedmlir/test/Conversion/GPUToNVVM/memory-attrbution.mlir
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
Commit 3d6c492d7a9830a1a39b85dfa215743581d52715 by jrtc27
[RISCV] Fix ILP32D lowering for double+double/double+int return types
Summary: Previously, since these aggregates are > 2*XLen, Clang would
think they were being returned indirectly and thus would decrease the
number of available GPRs available by 1. For long argument lists this
could lead to a struct argument incorrectly being passed indirectly.
Reviewers: asb, lenary
Reviewed By: asb, lenary
Subscribers: luismarques, rbar, johnrusso, simoncook, apazos, sabuasal,
niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01,
MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna,
Jim, lenary, s.egerton, pzheng, sameer.abuasal, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69590
The file was modifiedclang/test/CodeGen/riscv32-ilp32d-abi.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit d6ea8ff0d74bfe5cd181ccfe91c2c300c5f7a35d by zinenko
[mlir] Fix translation of splat constants to LLVM IR
Summary: When converting splat constants for nested sequential LLVM IR
types wrapped in MLIR, the constant conversion was erroneously assuming
it was always possible to recursively construct a constant of a
sequential type given only one value. Instead, wait until all sequential
types are unpacked recursively before constructing a scalar constant and
wrapping it into the surrounding sequential type.
Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen,
antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik,
liufengdb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72688
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/test/Target/llvmir.mlir
Commit e73b20c57dc7a8c847ebadeb7e19c08ec84f5bd7 by sam.parker
[ARM][MVE] Disallow VPSEL for tail predication
Due to the current way that we collect predicated instructions, we can't
easily handle vpsel in tail predicated loops. There are a couple of
issues: 1) It will use the VPR as a predicate operand, but doesn't have
to be
  instead a VPT block, which means we can assert while building up
  the VPT block because we don't find another VPST to being a new
  one. 2) VPSEL still requires a VPR operand even after tail
predicating,
  which means we can't remove it unless there is another
  instruction, such as vcmp, that can provide the VPR def.
The first issue should be a relatively simple fix in the logic of the
LowOverheadLoops pass, whereas the second will require us to represent
the 'implicit' tail predication with an explicit value.
Differential Revision: https://reviews.llvm.org/D72629
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir
Commit a43b0065c5c78eba3fb83881fb628f5b8182db64 by llvm-dev
[SelectionDAG] ComputeKnownBits - merge
getValidMinimumShiftAmountConstant() and generic ISD::SRL handling.
As mentioned by @nikic on rGef5debac4302 (although that was just about
SHL), we can merge the guaranteed top zero bits from the shifted value,
and then, if a min shift amount is known, zero out the top bits as well.
SHL tests / handling will be added in a follow up patch.
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-udiv-128.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-udiv-256.ll
Commit fd42a4ac7a69adb92f87c7fa927509f177dcc6ca by llvm-dev
[X86][SSE] Add add(shl(and(x,c1),c2),c3) test case with non-uniform
shift value
As mentioned by @nikic on rGef5debac4302, we should merge the guaranteed
top zero bits from the shifted value and min shift amount code so they
can both set the high bits to zero.
The file was modifiedllvm/test/CodeGen/X86/combine-shl.ll
Commit d94d079a6a5b12156e4b818c8ba46eb143f335b9 by diogo.sampaio
[ARM][Thumb2] Fix ADD/SUB invalid writes to SP
Summary: This patch fixes pr23772  [ARM] r226200 can emit illegal thumb2
instruction: "sub sp, r12, #80". The violation was that SUB and ADD
(reg, immediate) instructions can only write to SP if the source
register is also SP. So the above instructions was unpredictable. To
enforce that the instruction t2(ADD|SUB)ri does not write to SP we now
enforce the destination register to be rGPR (That exclude PC and SP).
Different than the ARM specification, that defines one instruction that
can read from SP, and one that can't, here we inserted one that can't
write to SP, and other that can only write to SP as to reuse most of the
hard-coded size optimizations. When performing this change, it uncovered
that emitting Thumb2 Reg plus Immediate could not emit all variants of
ADD SP, SP #imm instructions before so it was refactored to be able to.
(see test/CodeGen/Thumb2/mve-stacksplot.mir where we use a subw sp, sp,
Imm12 variant ) It also uncovered a disassembly issue of adr.w
instructions, that were only written as SUBW instructions (see
llvm/test/MC/Disassembler/ARM/thumb2.txt).
Reviewers: eli.friedman, dmgreen, carwil, olista01, efriedma, andreadb
Reviewed By: efriedma
Subscribers: gbedwell, john.brawn, efriedma, ostannard, kristof.beyls,
hiraditya, dmgreen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70680
The file was modifiedllvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modifiedllvm/test/CodeGen/ARM/GlobalISel/thumb-select-load-store.mir
The file was addedllvm/test/CodeGen/Thumb2/t2peephole-t2ADDrr-to-t2ADDri.ll
The file was modifiedllvm/test/MC/Disassembler/ARM/thumb-tests.txt
The file was modifiedllvm/test/MC/ARM/negative-immediates.s
The file was modifiedllvm/test/CodeGen/Thumb2/peephole-cmp.mir
The file was modifiedllvm/test/CodeGen/Thumb2/peephole-addsub.mir
The file was modifiedllvm/test/MC/ARM/register-token-source-loc.s
The file was modifiedllvm/lib/Target/ARM/Thumb2InstrInfo.cpp
The file was modifiedllvm/test/MC/ARM/thumb-diagnostics.s
The file was modifiedllvm/test/MC/Disassembler/ARM/invalid-thumbv7.txt
The file was modifiedllvm/test/CodeGen/Thumb2/fp16-stacksplot.mir
The file was modifiedllvm/lib/Target/ARM/ARMAsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/MIR/ARM/thumb2-sub-sp-t3.mir
The file was addedllvm/test/CodeGen/Thumb2/bug-subw.ll
The file was addedllvm/test/tools/llvm-mca/ARM/simple-cortex-m33.s
The file was modifiedllvm/test/CodeGen/ARM/GlobalISel/thumb-select-arithmetic-ops.mir
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
The file was modifiedllvm/test/MC/Disassembler/ARM/thumb2.txt
The file was modifiedllvm/test/MC/Disassembler/ARM/thumb2-v8.txt
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
The file was modifiedllvm/test/MC/ARM/basic-thumb2-instructions.s
The file was modifiedllvm/test/MC/ARM/invalid-addsub.s
The file was modifiedllvm/test/CodeGen/Thumb2/mve-stacksplot.mir
The file was modifiedllvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
Commit bad6032bc15fa8d16b67b86ef2b2fe48724e756e by sam.parker
[ARM][LowOverheadLoops] Change predicate inspection
Use the already provided helper function to get the operand type so that
we can detect whether the vpr is being used as a predicate or not. Also
use existing helpers to get the predicate indices when we converting the
vpt blocks. This enables us to support both types of vpr predicate
operand.
Differential Revision: https://reviews.llvm.org/D72504
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vmaxmin_vpred_r.mir
Commit c05a11108b9a9deb266c3c1758677462df61e05e by llvm-dev
[SelectionDAG] ComputeKnownBits - merge
getValidMinimumShiftAmountConstant() and generic ISD::SHL handling.
As mentioned by @nikic on rGef5debac4302, we can merge the guaranteed
bottom zero bits from the shifted value, and then, if a min shift amount
is known, zero out the bottom bits as well.
The file was modifiedllvm/test/CodeGen/X86/combine-shl.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit 31aed2e0dad25d43039a9b933b1b95fbdeb27704 by llvm-dev
Fix "MIParser::getIRValue(unsigned int)’ defined but not used" warning.
NFCI.
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
Commit e27632c3026328e41b0d7dbf25631041e979a2f9 by sam.parker
[ARM][LowOverheadLoops] Allow all MVE instrs.
We have a whitelist of instructions that we allow when tail predicating,
since these are trivial ones that we've deemed need no special handling.
Now change ARMLowOverheadLoops to allow the non-trivial instructions if
they're contained within a valid VPT block. Since a valid block is one
that is predicated upon the VCTP so we know that these non-trivial
instructions will still behave as expected once the implicit predication
is used instead.
This also fixes a previous test failure.
Differential Revision: https://reviews.llvm.org/D72509
The file was modifiedllvm/unittests/Target/ARM/MachineInstrTest.cpp
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
Commit 877723b7ce813d25fc4a358b7d2cb90468733a72 by medismail.bennani
[lldb/Expression] Improve interpreter error message with a non-running
target
When trying to interpret an expression with a function call, if the
process hasn't been launched, the expression fails to be interpreted and
the user gets the following  error message:
```error: Can't run the expression locally```
This message doesn't explain why the expression failed to be
interpreted, that's why this patch improves the error message that is
displayed when trying to run an expression while no process is running.
rdar://11991708
Differential Revision: https://reviews.llvm.org/D72510
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/expression/dont_allow_jit/TestAllowJIT.py
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
Commit 71d5454b377239213874a0d762860e6a3e60bf54 by simon.tatham
[ARM,MVE] Use the new Tablegen `defvar` and `if` statements.
Summary: This cleans up a lot of ugly `foreach` bodges that I've been
using to work around the lack of those two language features. Now they
both exist, I can make then all into something more legible!
In particular, in the common pattern in `ARMInstrMVE.td` where a
multiclass defines an `Instruction` instance plus one or more `Pat` that
select it, I've used a `defvar` to wrap `!cast<Instruction>(NAME)` so
that the patterns themselves become a little more legible.
Replacing a `foreach` with a `defvar` removes a level of block
structure, so several pieces of code have their indentation changed by
this patch. Best viewed with whitespace ignored.
NFC: the output of `llvm-tblgen -print-records` on the two affected
Tablegen sources is exactly identical before and after this change, so
there should be no effect at all on any of the other generated files.
Reviewers: MarkMurrayARM, miyuki
Reviewed By: MarkMurrayARM
Subscribers: kristof.beyls, hiraditya, dmgreen, cfe-commits,
llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D72690
The file was modifiedclang/include/clang/Basic/arm_mve.td
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
Commit bff33bd5c83b947cccb4d6cf6ebca9dc021f716b by Milos.Stojanovic
[unittests] Fix "comparison of integers of different signs" warnings
A warning is sent because `std::distance()` returns a signed type so
`CmpHelperEQ()` gets instantiated into a function that compares
differently signed arguments.
Differential Revision: https://reviews.llvm.org/D72632
The file was modifiedllvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
The file was modifiedllvm/unittests/Object/MinidumpTest.cpp
Commit df186507e1d07c3ddba091a076ba7a33dbdc5867 by benny.kra
Make helper functions static or move them into anonymous namespaces. 
NFC.
The file was modifiedmlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/lib/Dialect/AffineOps/AffineOps.cpp
The file was modifiedmlir/lib/Pass/PassStatistics.cpp
The file was modifiedmlir/lib/Analysis/AffineAnalysis.cpp
The file was modifiedmlir/lib/Dialect/VectorOps/VectorOps.cpp
The file was modifiedmlir/lib/ExecutionEngine/ExecutionEngine.cpp
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVDialect.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/LoopOps/LoopOps.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp
The file was modifiedmlir/lib/Analysis/Liveness.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedllvm/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modifiedmlir/lib/Dialect/SDBM/SDBMExpr.cpp
The file was modifiedmlir/test/lib/TestDialect/TestPatterns.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp
The file was modifiedmlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
The file was modifiedmlir/lib/Dialect/QuantOps/Transforms/ConvertSimQuant.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedmlir/lib/Analysis/Utils.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp
The file was modifiedmlir/lib/Dialect/VectorOps/VectorTransforms.cpp
The file was modifiedmlir/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedmlir/lib/Analysis/AffineStructures.cpp
Commit 81ee484484a0be59da8f749a9b4cf56bb8d37402 by ulrich.weigand
[FPEnv] Fix chain handling regression after 04a8696
Code in getRoot made the assumption that every node in PendingLoads must
always itself have a dependency on the current DAG root node.
After the changes in 04a8696, it turns out that this assumption no
longer holds true, causing wrong codegen in some cases (e.g. stores
after constrained FP intrinsics might get deleted).
To fix this, we now need to make sure that the TokenFactor created by
getRoot always includes the previous root, if there is no implicit
dependency already present.
The original getControlRoot code already has exactly this check, so this
patch simply reuses that code now for getRoot as well. This fixes the
regression.
NFC if no constrained FP intrinsic is present.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
The file was modifiedllvm/test/CodeGen/SystemZ/fp-strict-alias.ll
Commit dee6e39c7561a8b733cc260738ff7ea3ae78ee0c by selliott
[RISCV][NFC] Deduplicate Atomic Intrinsic Definitions
Summary: This is a slight cleanup, to use multiclasses to avoid the
duplication between the different atomic intrinsic definitions. The
produced intrinsics are unchanged, they're just generated in a more
succinct way.
Reviewers: asb, luismarques, jrtc27
Reviewed By: luismarques, jrtc27
Subscribers: Jim, rbar, johnrusso, simoncook, sabuasal, niosHD,
kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01,
MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl,
benna, s.egerton, pzheng, sameer.abuasal, apazos, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71777
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
Commit 6aca3e8dfa228fb75e410e34db74982a0ab3939f by ulrich.weigand
[FPEnv] Add some comments to IRBuilder.h
As requested via post-commit comment for D71467, this adds comments
documenting CreateFCmp vs. CreateFCmpS to the header file.
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
Commit 3f944a8b8ca895667f04748f62d350f07ee1416b by Raphael Isemann
[lldb][NFC] Make name parameter in AddMethodToCXXRecordType a StringRef
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
Commit e3ed63e83ab6194aaf6711b97bdf09f16dcf2401 by simon.tatham
[TableGen] Update editor modes for new keywords.
Summary: D71407 and D71474 added new keywords to the Tablegen language:
`defvar`, `if`, `then` and `else`. This commit updates the various
editor modes to highlight them appropriately.
Some of the modes also didn't include `defset`, so I've added that too
while I was there.
Reviewers: MaskRay, lebedev.ri, plotfi
Reviewed By: lebedev.ri
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72693
The file was modifiedllvm/utils/emacs/tablegen-mode.el
The file was modifiedllvm/utils/vscode/tablegen/syntaxes/TableGen.tmLanguage
The file was modifiedllvm/utils/kate/llvm-tablegen.xml
The file was modifiedllvm/utils/vim/syntax/tablegen.vim
Commit cfe2fab708de3a1d8e05a829a132f335a189acc9 by spatel
[InstSimplify] add tests for vector select; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit 77cc690bae310f4cba0a34f2da8a37a7c9a10a82 by Tim Northover
AArch64: fix bitcode upgrade of @llvm.neon.addp.
We were upgrading it to faddp, but a version taking two type parameters
instead of one. This then got upgraded a second time to the version with
just one parameter, but occasionally (for reasons I don't understand)
this unusual two-stage process corrupted a use-list, leading to a crash
when the two faddp declarations didn't match.
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was addedllvm/test/Bitcode/aarch64-addp-upgrade.bc
The file was addedllvm/test/Bitcode/aarch64-addp-upgrade.ll
Commit a705cf1acbe94498f7fcca4e89be6d4820271227 by pavel
Expression eval lookup speedup by not returning methods in
ManualDWARFIndex::GetFunctions
Summary: This change is connected with https://reviews.llvm.org/D69843
In large codebases, we sometimes see Module::FindFunctions (when called
from ClangExpressionDeclMap::FindExternalVisibleDecls) returning huge
amounts of functions.
In current fix I trying to return only function_fullnames from
ManualDWARFIndex::GetFunctions when eFunctionNameTypeFull is passed as
argument.
Reviewers: labath, jarin, aprantl
Reviewed By: labath
Subscribers: shafik, clayborg, teemperor, arphaman, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D70846
The file was modifiedlldb/packages/Python/lldbsuite/test/lang/cpp/printf/TestPrintf.py
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/find-basic-function.cpp
Commit 7ec7a6e5bfa745c285d5c651af02b93f2cb923e1 by llvm-dev
Fix "null pointer passed to nonnull argument" clang static analyzer
warnings. NFCI.
Assert that the memcpy arguments are valid.
The file was modifiedclang/lib/AST/NestedNameSpecifier.cpp
Commit 25dc5c7cd159522ec2375544f473c757ee13a03b by llvm-dev
Fix "pointer is null" static analyzer warnings. NFCI.
Use castAs<> instead of getAs<> since the pointer is dereferenced
immediately below and castAs will perform the null assertion for us.
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
Commit cc8a1504283731f05f937464b631f170d748b7b0 by llvm-dev
Merge isa<> and getAs<> calls to fix "pointer is null" static analyzer
warnings. NFCI.
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
Commit 9d905e8ceddda8b103e208ed43a117cb4445e682 by llvm-dev
Remove duplicate variable. NFCI.
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
Commit 591cd40584300a1d5d33bfaefa4698c02ef56887 by llvm-dev
Fix "pointer is null" static analyzer warnings. NFCI.
Use cast<> instead of cast_or_null<> since the pointers are always
dereferenced and cast<> will perform the null assertion for us.
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
Commit 1d6b964ed1f7a77b178e86bef7d569611f2c0983 by llvm-dev
Fix "pointer is null" static analyzer warning. NFCI.
Remove Ctx null test as clang static analyzer assumes that this can fail
- replace it with an assertion as the pointer is always dereferenced
below.
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
Commit e1f524ea43f920767259c47e201405091d7e76fd by grimar
[llvm-readobj][llvm-readelf][test] - Add a few more dynamic section
tests.
This adds a few more tests for dynamic section.
We only had tests for simple unknown values for 64-bits target, in this
patch I've added OS specific and processor specific tags. Also it tests
both 32 and 64-bits targets now.
It will help to fix the formatting issues we have and diagnose a
possible new ones.
Differential revision: https://reviews.llvm.org/D71896
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
The file was modifiedllvm/test/tools/llvm-objdump/elf-dynamic-section.test
Commit 4b5bc38802dcc7d2c6d7f5af1eca1755bd0fd9cb by pavel
[lldb/DWARF] Move location list sections into DWARFContext
These are the last sections not managed by the DWARFContext object. I
also introduce separate SectionType enums for dwo section variants, as
this is necessary for proper handling of single-file split dwarf.
The file was modifiedlldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/debug_loclists-dwo.s
The file was modifiedlldb/include/lldb/lldb-enumerations.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp
The file was modifiedlldb/source/Core/Section.cpp
The file was modifiedlldb/source/Symbol/ObjectFile.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
The file was modifiedlldb/test/Shell/ObjectFile/ELF/section-types.yaml
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
Commit 25a8aec7f37b970849ccf5f2893431e2ca858709 by Xiangling.Liao
[AIX] ExternalSymbolSDNode lowering
For memcpy/memset/memmove etc., replace ExternalSymbolSDNode with a
MCSymbolSDNode, which have a prefix dot before function name as entry
point symbol.
Differential Revision: https://reviews.llvm.org/D70718
The file was addedllvm/test/CodeGen/PowerPC/aix-external-sym-sdnode-lowering.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-user-defined-memcpy.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 35787e3a062a4a21c145137552d20cb1169c74fc by Tom.Weaver
[DBG][LIVEDEBUGVALUES][NFC] Add Targeted LiveDebugValues Behaviour
Tests.
Adds 22 distinct tests that exercise the live-debug-values passes
expected behaviour.
reviewers: aprantl, vsk
Differential revision: https://reviews.llvm.org/D72515
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_moved.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_move.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_outer_moved.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_move.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_loop.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_move.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_early_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_move_to_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break_clobbered.mir
Commit 92451f0904ceab1d81d71a9f17ab366bf57eddc7 by sven.vanhaastregt
[OpenCL] Add MSAA sharing extension builtin functions
Add the MSAA sharing builtin functions from the OpenCL Extension
Specification.
Patch by Pierre Gondois and Sven van Haastregt.
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td
Commit 192cce10f67e4f22be6d9b8c0975f78ad246d1bd by flo
Revert "Recommit "[GlobalOpt] Pass DTU to removeUnreachableBlocks
instead of recomputing.""
This reverts commit a03d7b0f24b65d69721dbbbc871df0629efcf774.
As discussed in D68298, this causes a compile-time regression, in case
the DTs requested are not used elsewhere in GlobalOpt. We should only
get the DTs if they are available here, but this seems not possible with
the legacy pass manager from a module pass.
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
Commit 1cc8fff420a76ae869f73ce2b19e7c1fc73da3ed by Sanne.Wouda
[AArch64] Fix save register pairing for Windows AAPCS
Summary: On Windows, when a function does not have an unwind table (for
example, EH filtering funclets), we don't correctly pair FP and LR to
form the frame record in all circumstances.
Fix this by invalidating a pair when the second register is FP when
compiling for Windows, even when CFI is not needed.
Fixes PR44271 introduced by D65653.
Reviewers: efriedma, sdesmalen, rovka, rengolin, t.p.northover,
thegameg, greened
Reviewed By: rengolin
Subscribers: kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71754
The file was addedllvm/test/CodeGen/AArch64/win64-no-uwtable.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Commit b10f6b7112278ba91d57173466bff7fc85d4bf0d by Tom.Weaver
Revert "[DBG][LIVEDEBUGVALUES][NFC] Add Targeted LiveDebugValues
Behaviour Tests."
This reverts commit 35787e3a062a4a21c145137552d20cb1169c74fc.
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_move.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_outer_moved.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge_clobbered.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break_clobbered.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_clobber.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_clobber.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_clobbered.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_clobber.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_move.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_move.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_loop.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_move_to_clobber.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_early_clobber.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_moved.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_clobbered.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_clobbered.mir
The file was removedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond.mir
Commit 9738c757bd9bc2fdca935f2b4e356f1d5e5f3682 by malcolm.parsons
[clang-tidy] Match InitListExpr in modernize-use-default-member-init
Summary: modernize-use-default-member-init wasn't warning about
redundant initialisers when the initialiser was an InitListExpr.  Add
initListExpr to the matcher.
Fixes: PR44439
Reviewers: aaron.ballman, alexfh, JonasToth
Reviewed By: aaron.ballman
Subscribers: xazax.hun, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72691
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp
Commit 3b929fe7763570fc1d4a4691a53257a4a0b7760e by ibiryukov
[Syntax] Assert invariants on tree structure and fix a bug in mutations
Add checks for some structural invariants when building and mutating the
syntax trees.
Fix a bug failing the invariants after mutations: the parent of nodes
added into the tree was null.
The file was modifiedclang/lib/Tooling/Syntax/Mutations.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
Commit 07a41018e9d27f67f7b4295eb7e00e0345c0aacf by ibiryukov
[Syntax] Mark synthesized nodes as modifiable
This was an oversight in the original patch. Also add corresponding
tests.
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
Commit e7b2d9f4702cb8882aa275bcb8eab37be17601e1 by Tom.Weaver
[DBG][LIVEDEBUGVALUES][NFC] Add Targeted LiveDebugValues Behaviour
Tests.
Adds 22 distinct tests that exercise the live-debug-values passes
expected behaviour.
reviewers: aprantl, vsk
Differential revision: https://reviews.llvm.org/D72515
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_move.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_move.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_break.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_moved.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_match_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond_move.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_diamond_one_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_diamond.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge_clobbered.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_basic_loop.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb_move_to_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_outer_moved.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_early_clobber.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_bb_to_bb.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_two_backedge.mir
The file was addedllvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_within_loop_clobbered.mir
Commit 9ef6faf49670e18eb1ba04105a7c70b450cdaa71 by kostyak
[scudo][standalone] Fork support
Summary: fork() wasn't well (or at all) supported in Scudo. This
materialized in deadlocks in children.
In order to properly support fork, we will lock the allocator pre-fork
and unlock it post-fork in parent and child. This is done via a
`pthread_atfork` call installing the necessary handlers.
A couple of things suck here: this function allocates - so this has to
be done post initialization as our init path is not reentrance, and it
doesn't allow for an extra pointer - so we can't pass the allocator we
are currently working with.
In order to work around this, I added a post-init template parameter
that gets executed once the allocator is initialized for the current
thread. Its job for the C wrappers is to install the atfork handlers.
I reorganized a bit the impacted area and added some tests, courtesy of
cferris@ that were deadlocking prior to this fix.
Subscribers: jfb, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D72470
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_c.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_c.inc
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_cpp.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h
The file was modifiedcompiler-rt/lib/scudo/standalone/stats.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/tsd_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/CMakeLists.txt
The file was modifiedcompiler-rt/lib/scudo/standalone/quarantine.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_exclusive.h
The file was modifiedcompiler-rt/lib/scudo/standalone/bytemap.h
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_shared.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
Commit 013c07f697886649b068cd97127e528b4fe7c03e by ibiryukov
[Syntax] Unset IsOriginal flag on nodes removed from the tree
And add a corresponding test. Only nodes inside the TranslationUnit
subtree can be marked as original, computeReplacements() relies on this.
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
Commit a08c0adee072226179736c4f6caf3dd0b7a7c9af by sjoerd.meijer
[ARM][MVE] VTP Block Pass fix
Fix a missing and broken test: 2 VPT blocks predicated on the same VCMP
instruction that can be folded. The problem was that for each VPT block,
we record the predicate statements with a list, but the same instruction
was added twice. Thus, we were running in an assert trying to remove the
same instruction twice. To avoid this the instructions are now recorded
with a set.
Differential Revision: https://reviews.llvm.org/D72699
The file was addedllvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-1-pred.mir
The file was modifiedllvm/lib/Target/ARM/MVEVPTBlockPass.cpp
Commit e2b8e2113a4929027a237b67f7be86db4ec103d3 by Jinsong Ji
[clang][OpenCL] Fix covered switch warning
-Werror clang build is broken now.
tools/clang/lib/Sema/OpenCLBuiltins.inc:11824:5: error: default label in
switch which covers all enumeration values
[-Werror,-Wcovered-switch-default]
   default:
We don't need default now, since all enumeration values are covered.
Reviewed By: svenvh
Differential Revision: https://reviews.llvm.org/D72707
The file was modifiedclang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
Commit ab9dbc1d124cdf288474073f5233e3fd6ee8e9c3 by llvm-dev
Fix "pointer is null" clang static analyzer warnings. NFCI.
Use cast<>/castAs<> instead of dyn_cast<>/getAs<> since the pointers are
always dereferenced and cast<>/castAs<> will perform the null assertion
for us.
The file was modifiedclang/lib/Sema/SemaOverload.cpp
Commit cfd366ba74c566038c6f417da9c9becc321fd737 by llvm-dev
Fix "pointer is null" static analyzer warnings. NFCI.
Use castAs<> instead of getAs<> since the pointer is dereferenced
immediately in all cases and castAs will perform the null assertion for
us.
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
Commit c8a14c2d4773841daa303736332d0038ead6f36a by spatel
[IR] fix potential crash in Constant::isElementWiseEqual()
There's only one user of this API currently, and it seems impossible
that it would compare values with different types.
But that's not true in general, so we need to make sure the types are
the same.
As denoted by the FIXME comments, we will also crash on FP values.
That's what brought me here, but we can make that a follow-up patch.
The file was modifiedllvm/unittests/IR/ConstantsTest.cpp
The file was modifiedllvm/lib/IR/Constants.cpp
Commit fd19ffc6a502f8e647696d550abb04a6c8c1b182 by Jonas Devlieghere
[lldb/Utility] Use assert instead of llvm_unreachable for LLDBAssert
llvm_unreachable is marked noreturn so the compiler can assume the code
for printing the error message in release builds isn't hit which defeats
the purpose.
The file was modifiedlldb/source/Utility/LLDBAssert.cpp
Commit 57cf6ee9c84434161088c39a6f8dd2aae14eb12d by scott.egerton
[RISCV] Add Clang frontend support for Bitmanip extension
Summary: This adds the __riscv_bitmanip macro and the 'b' target feature
to enable it.
Reviewers: asb, simoncook, lewis-revill, PaoloS, lenary
Reviewed By: lenary
Subscribers: Jim, rbar, johnrusso, sabuasal, niosHD, kito-cheng,
shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01,
MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna,
pzheng, sameer.abuasal, apazos, luismarques, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71553
The file was modifiedclang/lib/Basic/Targets/RISCV.cpp
The file was modifiedclang/test/Preprocessor/riscv-target-features.c
The file was modifiedclang/lib/Basic/Targets/RISCV.h
The file was modifiedclang/lib/Driver/ToolChains/Arch/RISCV.cpp
Commit 0877843ddacca0bea049b65d8a328e5038c72b66 by aqjune
[test] Make data layout of load-bitcast64.ll explicit, use
update_test_checks.py
The file was modifiedllvm/test/Transforms/InstCombine/load-bitcast64.ll
Commit 2948ec5ca98f8593584f2117bc92fe8d75f6f098 by gribozavr
Removed PointerUnion3 and PointerUnion4 aliases in favor of the variadic
template
The file was modifiedllvm/include/llvm/Support/SourceMgr.h
The file was modifiedllvm/unittests/ADT/PointerUnionTest.cpp
The file was modifiedclang/include/clang/AST/TemplateName.h
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/tools/libclang/CXCursor.h
The file was modifiedllvm/include/llvm/ADT/PointerUnion.h
The file was modifiedllvm/lib/Transforms/IPO/LowerTypeTests.cpp
The file was modifiedllvm/tools/llvm-pdbutil/InputFile.h
The file was modifiedclang/unittests/CodeGen/IRMatchers.h
The file was modifiedclang/include/clang/AST/ExprObjC.h
The file was modifiedclang/include/clang/AST/DeclTemplate.h
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/include/clang/AST/Decl.h
Commit 40c5bd4212a51216a489fdaaf59060921d677009 by maskray
[ELF] --exclude-libs: don't assign VER_NDX_LOCAL to undefined symbols
Suggested by Peter Collingbourne.
Non-VER_NDX_GLOBAL versions should not be assigned to defined symbols.
--exclude-libs violates this and can cause a spurious error "cannot
refer to absolute symbol" after D71795.
excludeLibs incorrectly assigns VER_NDX_LOCAL to an undefined weak
symbol => isPreemptible is false => R_PLT_PC is optimized to R_PC => in
isStaticLinkTimeConstant, an error is emitted.
Reviewed By: pcc, grimar
Differential Revision: https://reviews.llvm.org/D72681
The file was addedlld/test/ELF/exclude-libs-undef.s
The file was modifiedlld/ELF/Driver.cpp
Commit 3e32b7e12701de772b1cdf855b42253650a1e997 by aqjune
[InstCombine] Let combineLoadToNewType preserve ABI alignment of the
load (PR44543)
Summary: If aligment on `LoadInst` isn't specified, load is assumed to
be ABI-aligned. And said aligment may be different for different types.
So if we change load type, but don't pay extra attention to the aligment
(i.e. keep it unspecified), we may either overpromise (if the default
aligment of the new type is higher), or underpromise (if the default
aligment of the new type is smaller).
Thus, if no alignment is specified, we need to manually preserve the
implied ABI alignment.
This addresses https://bugs.llvm.org/show_bug.cgi?id=44543 by making
combineLoadToNewType preserve ABI alignment of the load.
Reviewers: spatel, lebedev.ri
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72710
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/test/Transforms/InstCombine/load-bitcast64.ll
Commit eb23cc136b68b24e63dd765b87d1facecd622695 by diggerlin
[AIX][XCOFF] Supporting the ReadOnlyWithRel SectionKnd
SUMMARY: In this patch we put the global variable in a Csect which's
SectionKind is "ReadOnlyWithRel" into Data Section.
Reviewers: hubert.reinterpretcast,jasonliu,Xiangling_L Subscribers:
wuzish, nemanjai, hiraditya
Differential Revision: https://reviews.llvm.org/D72461
The file was addedllvm/test/CodeGen/PowerPC/aix-readonly-with-relocation.ll
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Commit f7e9f4f4c50245d10ca9869a9f8f3d431dfb6948 by warren_ristow
SCC: Allow ReplaceNode to safely support insertion
If scc_iterator::ReplaceNode is inserting a new entry in the map, rather
than replacing an existing entry, the possibility of growing the map
could cause a failure.  This change safely implements the insertion.
Reviewed By: probinson
Differential Revision: https://reviews.llvm.org/D72469
The file was modifiedllvm/include/llvm/ADT/SCCIterator.h
Commit 98c54fb1feba081c509f7e389877550df130a80d by craig.topper
[X86] Directly emit a BROADCAST_LOAD from constant pool in
lowerUINT_TO_FP_vXi32 to avoid double loads seen in D71971
By directly emitting the constants as a constant pool load we seem to
avoid the build_vector/extract_subvector combines that resulted in the
duplicate loads we had before.
Differential Revision: https://reviews.llvm.org/D72307
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-256.ll
The file was modifiedllvm/test/CodeGen/X86/vec_int_to_fp.ll
The file was modifiedllvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 7dc4bbf8ab311606388faacca58b6c3e3e508b77 by tejohnson
[ThinLTO] Handle variable with twice promoted name (Rust)
Summary: Ensure that we can internalize values produced from two rounds
of promotion.
Note that this cannot happen currently via clang, but in other use cases
such as the Rust compiler which does a first round of ThinLTO on library
code, producing bitcode, and a second round on the final binary.
In particular this can happen if a function is exported and promoted,
ending up with a ".llvm.${hash}" suffix, and then goes through a round
of optimization creating an internal switch table expansion variable
that is internal and contains the promoted name of the enclosing
function. This variable will be promoted in the second round of ThinLTO
if @foo is imported again, and therefore ends up with two
".llvm.${hash}" suffixes. Only the final one should be stripped when
consulting the index to locate the summary.
Reviewers: wmi
Subscribers: mehdi_amini, inglorion, hiraditya, JDevlieghere, steven_wu,
dexonsmith, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72711
The file was modifiedllvm/include/llvm/IR/ModuleSummaryIndex.h
The file was addedllvm/test/ThinLTO/X86/thinlto-internalize-doublepromoted.ll
The file was addedllvm/test/ThinLTO/X86/Inputs/thinlto-internalize-doublepromoted.ll
Commit bec1b55c64cf33d5f33c8cb7cc10d02e25811bef by maskray
[ELF] Delete the RelExpr member R_HINT. NFC
R_HINT is ignored like R_NONE. There are no strong reasons to keep
R_HINT. The largest RelExpr member R_RISCV_PC_INDIRECT is 60 now.
Differential Revision: https://reviews.llvm.org/D71822
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/Arch/ARM.cpp
The file was modifiedlld/ELF/Relocations.h
Commit 2cefb93951cca01dcdde6fe5c7354dc8bcd796d6 by tejohnson
[ThinLTO/WPD] Remove an overly-aggressive assert
Summary: An assert added to the index-based WPD was trying to verify
that we only have multiple vtables for a given guid when they are all
non-external linkage. This is too conservative because we may have
multiple external vtable with the same guid when they are in comdat.
Remove the assert, as we don't have comdat information in the index, the
linker should issue an error in this case.
See discussion on D71040 for more information.
Reviewers: evgeny777, aganea
Subscribers: mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72648
The file was addedllvm/test/ThinLTO/X86/Inputs/devirt_external_comdat_same_guid.ll
The file was modifiedllvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
The file was addedllvm/test/ThinLTO/X86/devirt_external_comdat_same_guid.ll
Commit cd800f3b226b25142f233beca846715fc601809b by lewis-revill
[RISCV] Allow shrink wrapping for RISC-V
Enabling shrink wrapping requires ensuring the insertion point of the
epilogue is correct for MBBs without a terminator, in which case the
instruction to adjust the stack pointer is the last instruction in the
block.
Differential Revision: https://reviews.llvm.org/D62190
The file was addedllvm/test/CodeGen/RISCV/shrinkwrap.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVFrameLowering.cpp
Commit 36fcbb838c8f293f46bfed78c6ed8c177f1e3485 by aaron
Added readability-qualified-auto check
Adds a check that detects any auto variables that are deduced to a
pointer or a const pointer then adds in the const and asterisk
according. Will also check auto L value references that could be written
as const. This relates to the coding standard
https://llvm.org/docs/CodingStandards.html#beware-unnecessary-copies-with-auto
The file was modifiedclang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
The file was addedclang-tools-extra/docs/clang-tidy/checks/readability-qualified-auto.rst
The file was modifiedclang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/CMakeLists.txt
The file was addedclang-tools-extra/docs/clang-tidy/checks/llvm-qualified-auto.rst
The file was addedclang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp
The file was addedclang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.h
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/readability-qualified-auto.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/readability-qualified-auto-cxx20.cpp
Commit 527f5a471eac75fd7d6ed48bd1e242ef8ea98dd0 by llvmgnsyncbot
[gn build] Port 36fcbb838c8
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
Commit ab72db7fc85266f094cc6b9452dd01f175c04cab by stilis
[lldb/test] test_breakpoints_func_full from
TestNamespace.NamespaceBreakpointTestCase is now passing on Windows
After https://reviews.llvm.org/D70846, the test is now passing on
Windows
The file was modifiedlldb/packages/Python/lldbsuite/test/lang/cpp/namespace/TestNamespace.py
Commit b777e551f044bbc7245a0b535e46000469479ff6 by jay.foad
[MachineScheduler] Reduce reordering due to mem op clustering
Summary: Mem op clustering adds a weak edge in the DAG between two loads
or stores that should be clustered, but the direction of this edge is
pretty arbitrary (it depends on the sort order of MemOpInfo, which
represents the operands of a load or store). This often means that two
loads or stores will get reordered even if they would naturally have
been scheduled together anyway, which leads to test case churn and goes
against the scheduler's "do no harm" philosophy.
The fix makes sure that the direction of the edge always matches the
original code order of the instructions.
Reviewers: atrick, MatzeB, arsenm, rampitec, t.p.northover
Subscribers: jvesely, wdng, nhaehnle, kristof.beyls, hiraditya,
javed.absar, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72706
The file was modifiedllvm/test/CodeGen/AArch64/expand-select.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/shift-i128.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/byval-frame-setup.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/kernel-argument-dag-lowering.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frame-index-elimination.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/max.i16.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-ldp-cluster.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/kernel-args.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-scheduler.mir
The file was modifiedllvm/test/CodeGen/AArch64/arm64-memset-inline.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert-subvector-unused-scratch.ll
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-stp-cluster.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/bitcast-constant-to-vector.ll
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/call-argument-types.ll
The file was modifiedllvm/test/CodeGen/AArch64/global-merge-group-by-use.ll
Commit 57cb4685140284907d16673b555fd62307b4cd76 by spatel
[InstCombine] add test for possible cast-of-select transform; NFC
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
Commit 88b8cb7215d4333ab990c99f21c7f92262ef02ef by alexandre.ganea
Fix NetBSD bot after b4a99a061f517e60985667e39519f60186cbb469
([Clang][Driver] Re-use the calling process instead of creating a new
process for the cc1 invocation)
The file was modifiedclang/test/Driver/cc1-spawnprocess.c
Commit 2d287bec3c5b63b7df9946163ba02987858b1736 by jonathanchesterfield
[nfc][libomptarget] Refactor amdgcn target_impl
Summary:
[nfc][libomptarget] Refactor amdgcn target_impl
Removes references to internal libraries from the header Standardises on
C++ mangling for all the target_impl functions Update comment block
clang-format Move some functions into a new target_impl.hip source file
This lays the groundwork for implementing the remaining unresolved
symbols in the target_impl.hip source.
Reviewers: jdoerfert, grokos, ABataev, ronlieb
Reviewed By: jdoerfert
Subscribers: jvesely, mgorny, jfb, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D72712
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
The file was addedopenmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.hip
Commit 2a43688a0a074a70e395491fa0c3cdb4556ccea4 by jonathanchesterfield
[nfc][libomptarget] Refactor nvptx/target_impl.cu
Summary:
[nfc][libomptarget] Refactor nxptx/target_impl.cu
Use __kmpc_impl_atomic_add instead of atomicAdd to match the rest of the
file. Alternatively, target_impl.cu could use the cuda functions
directly. Using a mixture in this file was an oversight, happy to
resolve in either direction.
Removed some comments that look outdated.
Call __kmpc_impl_unset_lock directly to avoid a redundant diagnostic and
remove an implict dependency on interface.h.
Reviewers: ABataev, grokos, jdoerfert
Reviewed By: jdoerfert
Subscribers: jfb, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D72719
The file was modifiedopenmp/libomptarget/deviceRTLs/nvptx/src/target_impl.cu
Commit fa632340938cc02e03262e1318cb06b34c32f5fe by nikita.ppv
[InstCombine] Add test for iterator invalidation bug; NFC
The file was addedllvm/test/Transforms/InstCombine/bitcast-phi-uselistorder.ll
Commit 652cd7c1007aa5a13ad9864fadc939c5710c5199 by nikita.ppv
[InstCombine] Fix user iterator invalidation in bitcast of phi transform
This fixes the issue encountered in D71164. Instead of using a
range-based for, manually iterate over the users and advance the
iterator beforehand, so we do not skip any users due to iterator
invalidation.
Differential Revision: https://reviews.llvm.org/D72657
The file was modifiedllvm/test/Transforms/InstCombine/bitcast-phi-uselistorder.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit b4dd928ffbb8232d6909b640d3affcd531681ffb by nikita.ppv
[InstCombine] Make combineLoadToNewType a method; NFC
So it can be reused as part of other combines. In particular for D71164.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
Commit 65c0805be523445d7ad0f12e90f53648e1ae9f84 by nikita.ppv
[InstCombine] Fix infinite loop due to bitcast <-> phi transforms
Fix for https://bugs.llvm.org/show_bug.cgi?id=44245.
The optimizeBitCastFromPhi() and FoldPHIArgOpIntoPHI() end up fighting
against each other, because optimizeBitCastFromPhi() assumes that
bitcasts of loads will get folded. This doesn't happen here, because a
dangling phi node prevents the one-use fold in
https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp#L620-L628
from triggering.
This patch fixes the issue by explicitly performing the load combine as
part of the bitcast of phi transform. Other attempts to force the load
to be combined first were ultimately too unreliable.
Differential Revision: https://reviews.llvm.org/D71164
The file was addedllvm/test/Transforms/InstCombine/pr44245.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit 48bad08aa3b3bf6ad5dabe858fa655a623757395 by a.bataev
[OPENMP]Improve handling of possibly incorrectly mapped types.
Need to analayze the type of the expression for mapping, not the type of
the declaration.
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/target_map_messages.cpp
Commit 410331869defbde0f6e5b7b3f8ee30c10b7f6be3 by nikita.ppv
[NewPM] Port MergeFunctions pass
This ports the MergeFunctions pass to the NewPM. This was rather
straightforward, as no analyses are used.
Additionally MergeFunctions needs to be conditionally enabled in the
PassBuilder, but I left that part out of this patch.
Differential Revision: https://reviews.llvm.org/D72537
The file was modifiedllvm/lib/Transforms/IPO/MergeFunctions.cpp
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Transforms/IPO/IPO.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/include/llvm/Transforms/IPO/MergeFunctions.h
The file was modifiedllvm/test/Transforms/MergeFunc/merge-block-address.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
Commit 2d4571bf3060f8f3d8417a0ec55e21a280158069 by protze
[OpenMP][Tool] Runtime warning for missing TSan-option
TSan spuriously reports for any OpenMP application a race on the
initialization of a runtime internal mutex:
``` Atomic read of size 1 at 0x7b6800005940 by thread T4:
#0 pthread_mutex_lock <null> (a.out+0x43f39e)
#1 __kmp_resume_64 <null> (libomp.so.5+0x84db4)
Previous write of size 1 at 0x7b6800005940 by thread T7:
#0 pthread_mutex_init <null> (a.out+0x424793)
#1 __kmp_suspend_initialize_thread <null> (libomp.so.5+0x8422e)
```
According to @AndreyChurbanov this is a false positive report, as the
control flow of the runtime guarantees the ordering of the mutex
initialization and the lock:
https://software.intel.com/en-us/forums/intel-open-source-openmp-runtime-library/topic/530363
To suppress this report, I suggest the use of
TSAN_OPTIONS='ignore_uninstrumented_modules=1'. With this patch, a
runtime warning is provided in case an OpenMP application is built with
Tsan and executed without this Tsan-option.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D70412
The file was modifiedopenmp/tools/archer/ompt-tsan.cpp
The file was modifiedopenmp/CREDITS.txt
Commit 5d1b3ba687690bbb37f911f66a2c2c5f19d60032 by maskray
[Driver] Ignore -fno-semantic-interposition
Fedora wants to build projects with -fno-semantic-interposition (e.g.
https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup),
which is supported by GCC>=5.
Clang's current behavior is similar to -fno-semantic-interposition and
the end goal is to make it more so
(https://lists.llvm.org/pipermail/llvm-dev/2016-November/107625.html).
Ignore this option.
We should let users know -fsemantic-interposition is not currently
supported, so it should remain a hard error.
Reviewed By: serge-sans-paille
Differential Revision: https://reviews.llvm.org/D72724
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Driver/clang_f_opts.c
Commit 26d96126a0d258afccfeec1fbaa727bfeb820308 by danilo.carvalho.grael
[SVE] Add patterns for MUL immediate instruction.
Summary: Add the missing MUL pattern for integer immediate instructions.
Reviewers: sdesmalen, huntergr, efriedma, c-rhodes, kmclaughlin
Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits, amehsan
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72654
The file was addedllvm/test/CodeGen/AArch64/sve-neg-int-arith-imm-2.ll
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was addedllvm/test/CodeGen/AArch64/sve-neg-int-arith-imm.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-int-arith-imm.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 337e4359645ebd0f35136dbec9b51c48b9071f9c by martin
[libcxx] [Windows] Make a more proper implementation of strftime_l for
mingw with msvcrt.dll
This also makes this function consistent with the rest of the libc++
provided fallbacks.
The locale support in msvcrt.dll is very limited anyway; it can only be
configured processwide, not per thread, and it only seems to support the
locales "C" and "" (the user set locale), so it's hard to make any
meaningful automatic test for it. But manually tested, this change does
make time formatting locale code in libc++ output times in the user
requested format, when using locale "".
Differential Revision: https://reviews.llvm.org/D69554
The file was modifiedlibcxx/include/support/win32/locale_win32.h
The file was modifiedlibcxx/src/support/win32/locale_win32.cpp
Commit b53d44b17a1685e405415cd32c4b6eb89cc4c3a1 by Adrian Prantl
dotest.py: Add option to pass extra lldb settings to dotest
The primary motivation for this is to add another dimension to the Swift
LLDB test matrix, but this seems generally useful.
Differential Revision: https://reviews.llvm.org/D72662
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest_args.py
Commit 5ee616a710bcb52cf9f1f7951644d098d38e7b6a by jranieri
[analyzer] Fix SARIF column locations
Differential revision: https://reviews.llvm.org/D70689
The file was modifiedclang/test/Analysis/diagnostics/sarif-multi-diagnostic-test.c
The file was modifiedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modifiedclang/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif
The file was modifiedclang/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif
Commit 651128f557229e79598e22102edb7fad3bf288c0 by akhuang
[DebugInfo] Add option to clang to limit debug info that is emitted for
classes.
Summary: This patch adds an option to limit debug info by only emitting
complete class type information when its constructor is emitted. This
applies to classes that have nontrivial user defined constructors.
I implemented the option by adding another level to `DebugInfoKind`, and
a flag `-flimit-debug-info-constructor`.
Total object file size on Windows, compiling with RelWithDebInfo:
before: 4,257,448 kb
after:  2,104,963 kb
And on Linux
before: 9,225,140 kb
after:  4,387,464 kb
According to the Windows clang.pdb files, here is a list of types that
are no longer complete with this option enabled:
https://reviews.llvm.org/P8182
Reviewers: rnk, dblaikie
Subscribers: aprantl, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72427
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was addedclang/test/CodeGenCXX/debug-info-limited-ctor.cpp
Commit 04e586151e7987089d760662126e247012431e90 by nikita.ppv
[InstCombine] Fix worklist management when removing guard intrinsic
When multiple guard intrinsics are merged into one, currently the result
of eraseInstFromFunction() is returned -- however, this should only be
done if the current instruction is being removed. In this case we're
removing a different instruction and should instead report that the
current one has been modified by returning it.
For this test case, this reduces the number of instcombine iterations
from 5 to 2 (the minimum possible).
Differential Revision: https://reviews.llvm.org/D72558
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/call-guard.ll
Commit 986202fad41529af8288aca54f2ff62d4c501d71 by Jan Korous
[clang][test][NFC] Use more widely supported sanitizer for file
dependency tests
The tests aren't concerned at all by the actual sanitizer - only by
blacklist being reported as a dependency. We're unfortunately limited by
platform support for any particular sanitizer but we can at least use
one that is widely supported.
Post-commit review: https://reviews.llvm.org/D72729
The file was addedclang/test/Frontend/Inputs/resource_dir_with_sanitizer_blacklist/share/ubsan_blacklist.txt
The file was modifiedclang/test/Frontend/dependency-gen.c
The file was removedclang/test/Frontend/Inputs/resource_dir_with_cfi_blacklist/share/cfi_blacklist.txt
Commit fe37d9ecaabda4f9948f35bb20c1a13687a7eaca by fedor.sergeev
[GVN] fix comment/argument name to match actual implementation. NFC
The file was modifiedllvm/include/llvm/Transforms/Scalar/GVN.h
Commit 9ee90ea55c1656b75e40f595dc351fbf667f5b79 by craig.topper
[LegalizeTypes] Remove untested code from ExpandIntOp_UINT_TO_FP
This code is untested in tree because the
"APFloat::semanticsPrecision(sem) >= SrcVT.getSizeInBits() - 1" check is
false for most combinations for int and fp types except maybe i32 and
f64. For that you would need i32 to be an illegal type, but f64 to be
legal and have custom handling for legalizing the split sint_to_fp. The
precision check itself was added in 2010 to fix a double rounding issue
in the algorithm that would occur if the sint_to_fp was not able to do
the conversion without rounding.
Differential Revision: https://reviews.llvm.org/D72728
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit 1ca51c06729d7f7326fcc2a826e07d1c92158dfd by maskray
[Driver][test] Fix Driver/hexagon-toolchain-elf.c for
-DCLANG_DEFAULT_LINKER=lld builds
Reviewed By: nathanchance, sidneym
Differential Revision: https://reviews.llvm.org/D72668
The file was modifiedclang/test/Driver/hexagon-toolchain-elf.c
Commit 6078f2fedcac5797ac39ee5ef3fd7a35ef1202d5 by Amara Emerson
[AArch64][GlobalISel]: Support @llvm.{return,frame}address selection.
These intrinsics expand to a variable number of instructions so just
like in ISelLowering.cpp we use custom code to deal with them.
Committing Tim's original patch.
Differential Revision: https://reviews.llvm.org/D65656
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddr.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-frameaddr.ll
Commit a3490e3e3d38d502179329f76138d96c5b2bab88 by michael.hliao
Remove trailing `;`. NFC.
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
Commit 1bd14ce39293df61888042916a7e43b9e502a4de by riverriddle
[mlir] Use double format when parsing bfloat16 hexadecimal values
Summary: bfloat16 doesn't have a valid APFloat format, so we have to use
double semantics when storing it. This change makes sure that
hexadecimal values can be round-tripped properly given this fact.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D72667
The file was modifiedmlir/test/IR/parser.mlir
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/lib/Parser/Parser.cpp
Commit a48600c0a653d34f4af760f117755ed1776adf9d by a.bataev
[OPENMP]Do not emit special virtual function for NVPTX target.
There are no special virtual function handlers (like __cxa_pure_virtual)
defined for NVPTX target, so just emit such functions as null pointers
to prevent issues with linking and unresolved references.
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was addedclang/test/OpenMP/nvptx_target_pure_deleted_codegen.cpp
Commit 8d07f8d98c48ee0a9dca450aaf4e1cabc621ff68 by michael.hliao
[DAGCombine] Replace `getIntPtrConstant()` with `getVectorIdxTy()`.
- Prefer `getVectorIdxTy()` as the index operand type for
`EXTRACT_SUBVECTOR` as targets expect different types by overloading
`getVectorIdxTy()`.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was addedllvm/test/CodeGen/AMDGPU/extract-subvector.ll
Commit f52d71736b10e87b1aa1880b777dc9462a0085ce by ntv
[mlir][Linalg] Update the semantics, verifier and test for Linalg with
tensors.
Summary: This diff fixes issues with the semantics of linalg.generic on
tensors that appeared when converting directly from HLO to
linalg.generic. The changes are self-contained within MLIR and can be
captured and tested independently of XLA.
The linalg.generic and indexed_generic are updated to:
To allow progressive lowering from the value world (a.k.a tensor values)
to the buffer world (a.k.a memref values), a linalg.generic op accepts
mixing input and output ranked tensor values with input and output
memrefs.
```
%1 = linalg.generic #trait_attribute %A, %B {other-attributes} :
tensor<?x?xf32>,
memref<?x?xf32, stride_specification>
-> (tensor<?x?xf32>)
```
In this case, the number of outputs (args_out) must match the sum of (1)
the number of output buffer operands and (2) the number of tensor return
values. The semantics is that the linalg.indexed_generic op produces
(i.e. allocates and fills) its return values.
Tensor values must be legalized by a buffer allocation pass before most
transformations can be applied. Such legalization moves tensor return
values into output buffer operands and updates the region argument
accordingly.
Transformations that create control-flow around linalg.indexed_generic
operations are not expected to mix with tensors because SSA values do
not escape naturally. Still, transformations and rewrites that take
advantage of tensor SSA values are expected to be useful and will be
added in the near future.
Subscribers: bmahjour, mehdi_amini, rriddle, jpienaar, burmako,
shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72555
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/Utils/Utils.h
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
Commit 729530f68fe135ad41d470fbed019cc5e31ac8a5 by l.lunak
-fmodules-codegen should not emit extern templates
If a header contains 'extern template', then the template should be
provided somewhere by an explicit instantiation, so it is not necessary
to generate a copy. Worse, this can lead to an unresolved symbol,
because the codegen's object file will not actually contain functions
from such a template because of the GVA_AvailableExternally, but the
object file for the explicit instantiation will not contain them either
because it will be blocked by the information provided by the module.
Differential Revision: https://reviews.llvm.org/D69779
The file was addedclang/test/Modules/codegen-extern-template.h
The file was addedclang/test/Modules/codegen-extern-template.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was addedclang/test/Modules/codegen-extern-template.modulemap
Commit b5b2cf7af47f1ca04635dae7b787c8a81d5af4c9 by l.lunak
fix recent -fmodules-codegen fix test
The file was addedclang/test/Modules/Inputs/codegen-extern-template.modulemap
The file was modifiedclang/test/Modules/codegen-extern-template.cpp
The file was removedclang/test/Modules/codegen-extern-template.modulemap