aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-05-02[mlir-lsp] Parse outgoing request callback JSON (#90693)Brian Gesiak2-24/+74
Rather than force callbacks for outgoing requests to parse the result JSON themselves (of type `llvm::Expected<llvm::json::Value>`), allow users to specify the result type, which `MessageHandler::outgoingRequest` will parse for them. This eliminates boilerplate for users sending outgoing requests.
2024-05-02[mlir] remove test-tranfsorm-dialect-interpreter (#89931)Oleksandr "Alex" Zinenko12-1132/+0
This pass has been deprecated for more than two months, alternative is available via `-transform-interpreter` and `-transform-preload-library`. https://discourse.llvm.org/t/psa-deprecating-test-transform-dialect-interpreter/76904
2024-05-02Reapply "[clang][Interp][NFC] Save source location of evaluating expression"Timm Bäder3-2/+10
This reverts commit ebcb04ae8825b15fd6aa249a8da0617b877b4705.
2024-05-02[flang][runtime] Address PRODUCT numeric discrepancy, folding vs runtime ↵Peter Klausler3-13/+13
(#90125) Ensure that the runtime implementations of floating-point reductions use intermediate results of the same precision as the operands, so that results match those from constant folding. (SUM reduction uses Kahan summation in both cases.)
2024-05-02[gn] port f0fbccb15384Nico Weber1-1/+0
2024-05-02Revert "[clang][Interp] Fix locals created in ExprWithCleanups"Timm Bäder3-67/+44
This reverts commit 1c7673b91d4d3bab4e296f5c67751d3879fb21a2. Unfortunately, this one is broken because de04e6cd90b891215f1dfc83ec886d037a7c2ed0 has been reverted.
2024-05-02Revert "[clang][Interp][NFC] Save source location of evaluating expression"Timm Bäder3-9/+1
This reverts commit de04e6cd90b891215f1dfc83ec886d037a7c2ed0. This breaks the Misc/constexpr-source-ranges test: https://lab.llvm.org/buildbot/#/builders/139/builds/64685
2024-05-02[clang][Interp] Fix locals created in ExprWithCleanupsTimm Bäder3-44/+67
Save the declaration we're creating a scope for (if applicable), so we can attach a local temporary variable to the right scope.
2024-05-02[clang][Interp][NFC] Save source location of evaluating expressionTimm Bäder3-1/+9
We don't have a source location to point to when the evaluation of a destructor of a temporary created via an expression fails.
2024-05-02[clang][Interp][NFC] Refactor if conditionTimm Bäder1-3/+1
Move the declaration into the condition.
2024-05-02[clang][Interp] Handle RecoveryExprsTimm Bäder2-9/+6
Instead of checking containsErrors() for every expression, just handle RecoveryExprs directly.
2024-05-02DAG: Implement softening for fp atomic load (#90839)Matt Arsenault2-0/+22
2024-05-02[X86] Regenerate memcpy-scoped-aa.llSimon Pilgrim1-24/+70
2024-05-02[clang][Interp] Fix zero-initializing records with non-trivial ctorsTimm Bäder2-6/+16
We need to do the zero-init and then subsequently call the constructor.
2024-05-02[clangd] Remove potential prefix from enum value names (#83412)Christian Kandeler3-22/+108
... when converting unscoped to scoped enums. With traditional enums, a popular technique to guard against potential name clashes is to use the enum name as a pseudo-namespace, like this: enum MyEnum { MyEnumValue1, MyEnumValue2 }; With scoped enums, this makes no sense, making it extremely unlikely that the user wants to keep such a prefix when modernizing. Therefore, our tweak now removes it.
2024-05-02[Flang][OpenMP] Give better errors during parsing failures (#90480)Kiran Chandramohan3-23/+36
Similar to OpenACC handling. Fixes #90452
2024-05-02[AMDGPU] Fix incorrect stepping in gdb for amdgcn.end.cf intrinsic. (#83010)Valery Pykhtin2-7/+11
After #73958 gdb.rocm/lane-execution.exp test started to fail due to incorrect debug location. This is kind of a revert patch.
2024-05-02Revert "[clang][dataflow] Don't propagate result objects in unevaluated ↵Weaver2-63/+0
contexts (#90438)" This reverts commit 597a3150e932a9423c65b5ea4b53dd431aff5865. Caused test failure on the following buildbot: https://lab.llvm.org/buildbot/#/builders/216/builds/38446
2024-05-02[libc++][NFC] Explicitly delete assignment operator in tuple (#90604)Nikolas Klauser1-8/+8
2024-05-02[flang] Add a test for fir.real debug conversion. (#90726)Abid Qadeer1-0/+25
This is an accompanying test for the fix done in #90683. It checks that fir.real conversion works ok. The failing fortran source in the #90683 generates fir.real type in the target-rewrite pass which caused the original issue.
2024-05-02DAG: Implement softening for fp atomic store (#90840)Matt Arsenault2-0/+19
This will prevent SystemZ test regressions in a future change, tested by #90826
2024-05-02[LoopUnroll] Add CSE to remove redundant loads after unrolling. (#83860)Florian Hahn8-52/+257
This patch adds loadCSE support to simplifyLoopAfterUnroll. It is based on EarlyCSE's implementation using ScopeHashTable and is using SCEV for accessed pointers to check to find redundant loads after unrolling. This applies to the late unroll pass only, for full unrolling those redundant loads will be cleaned up by the regular pipeline. The current approach constructs MSSA on-demand per-loop, but there is still small but notable compile-time impact: stage1-O3 +0.04% stage1-ReleaseThinLTO +0.06% stage1-ReleaseLTO-g +0.05% stage1-O0-g +0.02% stage2-O3 +0.09% stage2-O0-g +0.04% stage2-clang +0.02% https://llvm-compile-time-tracker.com/compare.php?from=c089fa5a729e217d0c0d4647656386dac1a1b135&to=ec7c0f27cb5c12b600d9adfc8543d131765ec7be&stat=instructions:u This benefits some workloads with runtime-unrolling disabled, where users use pragmas to force unrolling, as well as with runtime unrolling enabled. On SPEC/MultiSource, this removes a number of loads after unrolling on AArch64 with runtime unrolling enabled. ``` External/S...te/526.blender_r/526.blender_r 96 MultiSourc...rks/mediabench/gsm/toast/toast 39 SingleSource/Benchmarks/Misc/ffbench 4 External/SPEC/CINT2006/403.gcc/403.gcc 18 MultiSourc.../Applications/JM/ldecod/ldecod 4 MultiSourc.../mediabench/jpeg/jpeg-6a/cjpeg 6 MultiSourc...OE-ProxyApps-C/miniGMG/miniGMG 9 MultiSourc...e/Applications/ClamAV/clamscan 4 MultiSourc.../MallocBench/espresso/espresso 3 MultiSourc...dence-flt/LinearDependence-flt 2 MultiSourc...ch/office-ispell/office-ispell 4 MultiSourc...ch/consumer-jpeg/consumer-jpeg 6 MultiSourc...ench/security-sha/security-sha 11 MultiSourc...chmarks/McCat/04-bisect/bisect 3 SingleSour...tTests/2020-01-06-coverage-009 12 MultiSourc...ench/telecomm-gsm/telecomm-gsm 39 MultiSourc...lds-flt/CrossingThresholds-flt 24 MultiSourc...dence-dbl/LinearDependence-dbl 2 External/S...C/CINT2006/445.gobmk/445.gobmk 6 MultiSourc...enchmarks/mafft/pairlocalalign 53 External/S...31.deepsjeng_r/531.deepsjeng_r 3 External/S...rate/510.parest_r/510.parest_r 58 External/S...NT2006/464.h264ref/464.h264ref 29 External/S...NT2017rate/502.gcc_r/502.gcc_r 45 External/S...C/CINT2006/456.hmmer/456.hmmer 6 External/S...te/538.imagick_r/538.imagick_r 18 External/S.../CFP2006/447.dealII/447.dealII 4 MultiSourc...OE-ProxyApps-C++/miniFE/miniFE 12 External/S...2017rate/525.x264_r/525.x264_r 36 MultiSourc...Benchmarks/7zip/7zip-benchmark 33 MultiSourc...hmarks/ASC_Sequoia/AMGmk/AMGmk 2 MultiSourc...chmarks/VersaBench/8b10b/8b10b 1 MultiSourc.../Applications/JM/lencod/lencod 116 MultiSourc...lds-dbl/CrossingThresholds-dbl 24 MultiSource/Benchmarks/McCat/05-eks/eks 15 ``` PR: https://github.com/llvm/llvm-project/pull/83860
2024-05-02[clang][CodeGen] Put constant initializer globals into constant addrspace ↵Sven van Haastregt2-5/+11
(#90048) Place constant initializer globals into the constant address space. Clang generates such globals for e.g. larger array member initializers of classes and then emits copy operations from the global to the object(s). The globals are never written so they ought to be in the constant address space.
2024-05-02[Clang][CodeGen] Optimised LLVM IR for atomic increments/decrements on ↵Krishna Narayanan3-309/+382
floats (#89362) Fixes #53079
2024-05-02[DAG] SelectionDAG.computeKnownBits - add NSW/NUW flags support to ISD::SHL ↵zxc125234-53/+142
handling (#89877) fix #89414
2024-05-02[lldb] Fix build on FreeBSDDavid Spickett1-1/+1
Missing llvm:: namespace for StringRef.
2024-05-01[ORC] Allow removal of ObjectLinkingLayer Plugins.Lang Hames2-1/+90
This adds a removePlugin operation to ObjectLinkingLayer. The removal of a plugin will be visible in all links started after the removal (ongoing links started before the removal will still use the removed plugin). Coding my way home: 17.56037S, 149.61118W
2024-05-02[lldb][test][FreeBSD] Remove corefile test xfails (#84022)David Spickett1-6/+2
Fixes #48759 As stated on the issue this was fixed by a change in FreeBSD 13, and I've confirmed that it passes on 14 as well.
2024-05-02[lldb][test][FreeBSD] Narrow vectorcall xfail to x86 platforms (#84024)David Spickett1-0/+3
This relates to #56084. vectorcall only works on x86 https://clang.llvm.org/docs/AttributeReference.html#vectorcall so elsewhere it fails to compile. Which is expected on AArch64 for example so is treated as a pass.
2024-05-02[lldb][Docs] Remove .txt copy of tutorial (#90585)David Spickett1-488/+0
This was last modified in 4fd3347d6e4b0c873c789528e1c9a1b55990d1b6 in 2021 and was made obsolete by the RST version that edb874b2310dc6eeaa27330ca1b1c013da7bdd65 added in 2019. There are some differences but at this point, I'd bet the RST is the correct one.
2024-05-02[lldb][Docs] Use proper LLDB/GDB project branding in tutorial (#90712)David Spickett1-58/+58
Except when referring to the program binaries.
2024-05-02[clang][Docs] Add release note for {target}-none-{environment} triple ↵David Spickett1-0/+19
normalization changes (#90734) That were implemented by https://github.com/llvm/llvm-project/pull/89638.
2024-05-02[clang] fix(85447): clang 18.1.0 crashes in ↵Oleksandr T3-0/+14
clang::ASTContext::getTypeInfoImpl (#89850) Fixes #85447 --- This PR resolves a crash in `ActOnUninitializedDecl` due to an oversight in updating the `isInvalidDecl` state before invocation. The crash occurs due to a missing invocation of `setInvalidDecl()` for an invalid `Anon` declaration. To address this issue, the `setInvalidDecl()` method is now properly invoked to mark the `Anon` declaration as invalid before running `ActOnUninitializedDecl()`.
2024-05-02[lldb][bazel] Fix BUILD after dcbf0fcd0d5572f7001ebdd3bda6062593ec172b. (#90825)Christian Sigg1-20/+14
2024-05-02SystemZ: Fix test failing the verifierMatt Arsenault1-5/+5
2024-05-02SystemZ: Fix accidentally commented out run line in testMatt Arsenault1-4/+9
2024-05-02[clang][dataflow] Don't propagate result objects in unevaluated contexts ↵martinboehme2-0/+63
(#90438) Trying to do so can cause crashes -- see newly added test and the comments in the fix. We're starting to see a repeating pattern here: We're getting crashes because `ResultObjectVisitor` and `getReferencedDecls()` don't agree on which parts of the AST to visit and, hence, which fields should be modeled. I think we should ensure consistency between these two parts of the code by using a `RecursiveASTVisitor` in `getReferencedDecls()`[^1]; the `Traverse...()` functions that control which parts of the AST we visit would go in a common base class that would be used for both `ResultObjectVisitor` and `getReferencedDecls()`. I'd like to focus this PR, however, on a targeted fix for the current crash and postpone the refactoring to a later PR (which will be easier to revert if there are unintended side-effects). [^1]: As an added bonus, this would make the code better structured and more efficient than the current sequence of `if (dyn_cast<T>(...))` statements).
2024-05-02[RISCV] Expand PseudoTAIL with t2 instead of t1 for Zicfilp. (#89014)Yeting Kuo2-0/+31
PseudoTail should be a software guarded branch in Ziciflp, since its branch target is known in link time. JALR/C.JR/C.JALR with rs1 as t2 is termed a software guarded branch. Such branches do not need to land on a lpad instruction. ABI Change PR: https://github.com/riscv-non-isa/riscv-asm-manual/pull/93
2024-05-02[clang] Enable C++17 relaxed template template argument matching by default ↵Matheus Izvekov19-63/+317
(#89807) This patch will finally allow us to mark C++17 support in clang as complete. In order to implement this as a DR and avoid breaking reasonable code that worked before P0522, this patch implements a provisional resolution for CWG2398: When deducing template template parameters against each other, and the argument side names a template specialization, instead of just deducing A, we deduce a synthesized template template parameter based on A, but with it's parameters using the template specialization's arguments as defaults. The driver flag is deprecated with a warning. Fixes https://github.com/llvm/llvm-project/issues/36505
2024-05-01[BOLT] Register Linux kernel dynamic branch offsets (#90677)Maksim Panchenko2-6/+26
To match profile data to code we need to know branch instruction offsets within a function. For this reason, we mark branches with the "Offset" annotation while disassembling the code. However, _dynamic_ branches in the Linux kernel could be NOPs in disassembled code, and we ignore them while adding annotations. We need to explicitly add the "Offset" annotation while creating dynamic branches. Note that without this change, `getInstructionAtOffset()` would still return a branch instruction if the offset matched the last instruction in a basic block (and the profile data was matched correctly). However, the function failed for cases when the searched instruction was followed by an unconditional jump. "Offset" annotation solves this case.
2024-05-01[BOLT] Add split function support for the Linux kernel (#90541)Maksim Panchenko2-9/+48
While rewriting the Linux kernel, we try to fit optimized functions into their original boundaries. When a function becomes larger, we skip it during the rewrite and end up with less than optimal code layout. To overcome that issue, add support for --split-function option so that hot part of the function could be fit into the original space. The cold part should go to reserved space in the binary.
2024-05-01[alpha.webkit.UncountedCallArgsChecker] Ignore methods of WTF String ↵Ryosuke Niwa3-6/+134
classes. (#90704)
2024-05-02[clang-tidy] Relax readability-const-return-type (#90560)Piotr Zegar3-20/+25
From now readability-const-return-type won't provide warnings for returning const types, where const is not on top level. In such case const there is a performance issue, but not a readability. Closes #73270
2024-05-02[clang-tidy] Ignore casts from void to void in bugprone-casting-through-void ↵Piotr Zegar3-3/+14
(#90566) Improved bugprone-casting-through-void check by ignoring casts where source is already a void pointer, making middle void pointer casts bug-free. Closes #87069
2024-05-02[NFC][clang-tidy] update check list document (#90813)Congcong Cai1-1/+1
2024-05-02[RISCV] Avoid using x7/t2 for indirect branches which need landing pad. (#68292)Yeting Kuo5-3/+86
When Zicfilp enabled, this avoids selecting indirect jumps to PseudoBRIND/PseudoCALLIndirect/PseudoTAILIndirect, since they may uses X7 as rs1 and be identified as a software guarded jump. There is an another PR #66762 to use software guarded jump for jumptable branch.
2024-05-02[NFC] Reduce copies created of ConstantRange when getting ↵Andreas Jonson5-11/+12
ConstantRangeAttributes (#90335) Think that it can be good to reduce the number of copies created when working with ConstantRangeAttributes.
2024-05-01[BOLT][NFC] Add BOLTReserved to BinaryContext (#90766)Maksim Panchenko2-17/+25
Use BOLTReserved to track binary space preallocated for BOLT.
2024-05-02[InterleavedLoadCombine] Bail out on non-byte-sized vector element type (#90705)Nikita Popov2-0/+22
Vectors are always tightly packed, and elements of non-byte-sized usually do not have a well-defined (byte) offset. Fixes https://github.com/llvm/llvm-project/issues/90695.
2024-05-02Triple::normalize: Use none as OS for XX-none-ABI (#89638)YunQiang Su11-52/+58
When parsing a 3-component triple, after we determine Arch and Env, if the middle component is "none", treat it as OS instead of Vendor. See: https://discourse.llvm.org/t/rfc-baremetal-target-triple-normalization/78524 Fixes: #89582.