Commit
3c7fd8df3b843b007edac9afe8a3369797724f0f
by Lang Hames[docs] Update release notes with all LLVM-C API changes
Patch by Mats Larsen. Thanks Mats!
Reviewed By: lhames
Differential Revision: https://reviews.llvm.org/D106764
|
 | llvm/docs/ReleaseNotes.rst |
Commit
491ac2802805f65c0960ae6685f9599048517a97
by rosie.sumpter[LoopFlatten] Use SCEV and Loop APIs to identify increment and trip count
Replace pattern-matching with existing SCEV and Loop APIs as a more robust way of identifying the loop increment and trip count. Also rename 'Limit' as 'TripCount' to be consistent with terminology.
Differential Revision: https://reviews.llvm.org/D106580
|
 | llvm/lib/Transforms/Scalar/LoopFlatten.cpp |
 | llvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll |
Commit
54c91c0c74ba997d3c0ce86eca2a96bec4699f0e
by david.green[ARM] Implement isLoad/StoreFromStackSlot for MVE stack stores accesses
This implements the isLoadFromStackSlot and isStoreToStackSlot for MVE MVE_VSTRWU32 and MVE_VLDRWU32 functions. They behave the same as many other loads/stores, expecting a FI in Op1 and zero offset in Op2. At the same time this alters VLDR_P0_off and VSTR_P0_off to use the same code too, as they too should be returning VPR in Op0, take a FI in Op1 and zero offset in Op2.
Differential Revision: https://reviews.llvm.org/D106797
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/test/CodeGen/Thumb2/mve-gather-increment.ll |
Commit
80e0266577b0536bb6cae0d5be0aa3b572b50ef7
by fraser[RISCV] Add tests showing missed vector saturating add/sub combines
These will be optimized by upcoming patches. The tests are primarily not being optimized due to the lack of support for saturating vector arithmetic in the RISC-V backend.
On top of that, however, a large percentage of the scalable-vector tests are also lacking support in the DAGCombiner: either in `ISD::matchBinaryPredicate` or due to checks specifically for `BUILD_VECTOR` and not `SPLAT_VECTOR`.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106649
|
 | llvm/test/CodeGen/RISCV/rvv/combine-sats.ll |
Commit
2e27c4e1f187446c84220f75e492f16807d21b12
by cullen.rhodes[AArch64][SME] Add zero instruction
This patch adds the zero instruction for zeroing a list of 64-bit element ZA tiles. The instruction takes a list of up to eight tiles ZA0.D-ZA7.D, which must be in order, e.g.
zero {za0.d,za1.d,za2.d,za3.d,za4.d,za5.d,za6.d,za7.d} zero {za1.d,za3.d,za5.d,za7.d}
The assembler also accepts 32-bit, 16-bit and 8-bit element tiles which are mapped to corresponding 64-bit element tiles in accordance with the architecturally defined mapping between different element size tiles, e.g.
* Zeroing ZA0.B, or the entire array name ZA, is equivalent to zeroing all eight 64-bit element tiles ZA0.D to ZA7.D. * Zeroing ZA0.S is equivalent to zeroing ZA0.D and ZA4.D.
The preferred disassembly of this instruction uses the shortest list of tile names that represent the encoded immediate mask, e.g.
* An immediate which encodes 64-bit element tiles ZA0.D, ZA1.D, ZA4.D and ZA5.D is disassembled as {ZA0.S, ZA1.S}. * An immediate which encodes 64-bit element tiles ZA0.D, ZA2.D, ZA4.D and ZA6.D is disassembled as {ZA0.H}. * An all-ones immediate is disassembled as {ZA}. * An all-zeros immediate is disassembled as an empty list {}.
This patch adds the MatrixTileList asm operand and related parsing to support this.
Depends on D105570.
The reference can be found here: https://developer.arm.com/documentation/ddi0602/2021-06
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D105575
|
 | llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td |
 | llvm/test/MC/AArch64/SME/zero.s |
 | llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp |
 | llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp |
 | llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp |
 | llvm/lib/Target/AArch64/AArch64RegisterInfo.td |
 | llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp |
 | llvm/test/MC/AArch64/SME/zero-diagnostics.s |
 | llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h |
 | llvm/lib/Target/AArch64/SMEInstrFormats.td |
Commit
11ee699b3c812ebe56ce5d3b14ab7ef16c1e8495
by Jan Svoboda[clang][tooling] Accept Clang invocations with multiple jobs
When `-fno-integrated-as` is passed to the Clang driver (or set by default by a specific toolchain), it will construct an assembler job in addition to the cc1 job. Similarly, the `-fembed-bitcode` driver flag will create additional cc1 job that reads LLVM IR file.
The Clang tooling library only cares about the job that reads a source file. Instead of relying on the fact that the client injected `-fsyntax-only` to the driver invocation to get a single `-cc1` invocation that reads the source file, this patch filters out such jobs from `Compilation` automatically and ignores the rest.
This fixes a test failure in `ClangScanDeps/headerwithname.cpp` and `ClangScanDeps/headerwithnamefollowedbyinclude.cpp` on AIX reported here: https://reviews.llvm.org/D103461#2841918 and `clang-scan-deps` failures with `-fembed-bitcode`.
Depends on D106788.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D105695
|
 | clang/lib/Tooling/Tooling.cpp |
 | clang/test/Tooling/clang-check-offload.cpp |
 | clang/include/clang/Tooling/Tooling.h |
 | clang/unittests/Tooling/ToolingTest.cpp |
Commit
5bcbb5ec5f07e4ab0ec8f8941bb4a98cab44d169
by Jan Svoboda[clang][tooling] Link clangDriver to ToolingTests
This fixes a build failure introduced in 11ee699b3c812ebe56ce5d3b14ab7ef16c1e8495.
|
 | clang/unittests/Tooling/CMakeLists.txt |
Commit
e00d67dc48be26cc9fc4958c3b2d5149eb5ec230
by david.green[NFC] Reflow some debug messages.
|
 | llvm/lib/CodeGen/HardwareLoops.cpp |
 | llvm/lib/CodeGen/DetectDeadLanes.cpp |
Commit
172487fe4c67dfe97d40f4dfd0992569746ae651
by fraser[RISCV] Add support for vector saturating add/sub operations
This patch adds support for lowering the saturating vector add/sub intrinsics to RVV instructions, for both fixed-length and scalable-vector forms alike.
Note that some of the DAG combines are still not triggering for the scalable-vector tests. These require a bit more work in the DAGCombiner itself.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106651
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu.ll |
 | llvm/test/CodeGen/RISCV/rvv/vsadd-sdnode.ll |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub.ll |
 | llvm/test/CodeGen/RISCV/rvv/vssub-sdnode.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd.ll |
 | llvm/test/CodeGen/RISCV/rvv/vssubu-sdnode.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu.ll |
 | llvm/test/CodeGen/RISCV/rvv/combine-sats.ll |
 | llvm/test/CodeGen/RISCV/rvv/vsaddu-sdnode.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.h |
 | llvm/test/CodeGen/RISCV/rvv/saddo-sdnode.ll |
Commit
a648f34342740e3fe2ddf040d61909d53b09e323
by hans[clang-cl] Expose -fmodules and related flags in the driver (PR43391)
I don't know how well this works with clang-cl, but people want to try it out, and I think we want to make it work, so exposing the flags seems reasonable.
Differential revision: https://reviews.llvm.org/D106791
|
 | clang/include/clang/Driver/Options.td |
 | clang/test/Driver/cl-options.c |
Commit
35e76a939cabbaa40aeeb572c3cf4039c3077fdf
by dvyukovRevert "sanitizer_common: split LibIgnore into fast/slow paths"
This reverts commit 1e1f7520279c93a59fa6511028ff40412065985e.
It breaks ignore_noninstrumented_modules=1. Somehow we did not have any portable tests for this mode before (only Darwin tests). Add a portable test as well.
Moreover, I think I was too fast uninlining all LibIgnore checks. For Java, Darwin and OpenMP LibIgnore is always enabled, so it makes sense to leave it as it was before.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106855
|
 | compiler-rt/test/tsan/ignore_lib0.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_libignore.h |
Commit
0f98e6e87558b34cb00e2a043d471cb71466783a
by Jan Svoboda[clang][tooling] Link LLVMOption to ToolingTests
This fixes a build failure introduced in 11ee699b3c812ebe56ce5d3b14ab7ef16c1e8495.
|
 | clang/unittests/Tooling/CMakeLists.txt |
Commit
7b33b849bd337fa68accf6a61e36cb4f0a947af1
by fraser[SelectionDAG] Support scalable splats in U(ADD|SUB)SAT combines
This patch builds on top of D106575 in which scalable-vector splats were supported in `ISD::matchBinaryPredicate`. It teaches the DAGCombiner how to perform a variety of the pre-existing saturating add/sub combines on scalable-vector types.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106652
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/RISCV/rvv/combine-sats.ll |
Commit
8c63c24dcaf5a5d090e40ce231c5174c15bd187e
by benny.kra[mlir] Fix typo s/applyPermuationMap/applyPermutationMap/
|
 | mlir/include/mlir/IR/AffineMap.h |
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
Commit
dc4ca0dbbcef5eb957efbd2e08a197b4aae3d909
by jay.foad[GlobalISel] Constant fold G_SITOFP and G_UITOFP in CSEMIRBuilder
Differential Revision: https://reviews.llvm.org/D104528
|
 | llvm/include/llvm/CodeGen/GlobalISel/Utils.h |
 | llvm/lib/CodeGen/GlobalISel/Utils.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sbfe.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll |
 | llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll |
Commit
a5b2ec9c26db124dd7e7b576fff70ba94dc07842
by diana.picus[flang] Fix thinko in CPU_TIME test
We used to test that end > start, but it can well be >= (otherwise the loop doesn't make sense).
|
 | flang/unittests/RuntimeGTest/Time.cpp |
Commit
dc721064b43a40ed57454caebd533f89df16da7e
by diana.picus[flang] Fix minor style issues. NFC
|
 | flang/runtime/time-intrinsic.cpp |
 | flang/unittests/RuntimeGTest/Time.cpp |
Commit
d7dd12aee399a19e890143604b6993f02232ca24
by sander.desmalen[LV] Disable Scalable VFs when tail folding is enabled b/c of low tripcount.
The loop vectorizer may decide to use tail folding when the trip-count is low. When that happens, scalable VFs are no longer a candidate, since tail folding/predication is not yet supported for scalable vectors.
This can be re-enabled in a future patch.
Reviewed By: kmclaughlin
Differential Revision: https://reviews.llvm.org/D106657
|
 | llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
7d27230de3336b8c79bfdc90f59858f6dad28fa5
by david.spickett[lldb][AArch64] Add memory tag writing to lldb-server
This is implemented using the QMemTags packet, as specified by GDB in: https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html#General-Query-Packets
(recall that qMemTags was previously added to read tags)
On receipt of a valid packet lldb-server will: * align the given address and length to granules (most of the time lldb will have already done this but the specification doesn't guarantee it) * Repeat the supplied tags as many times as needed to cover the range. (if tags > range we just use as many as needed) * Call ptrace POKEMTETAGS to write the tags.
The ptrace step will loop just like the tag read does, until all tags are written or we get an error. Meaning that if ptrace succeeds it could be a partial write. So we call it again and if we then get an error, return an error to lldb.
We are not going to attempt to restore tags after a partial write followed by an error. This matches the behaviour of the existing memory writes.
The lldb-server tests have been extended to include read and write in the same test file. With some updated function names since "qMemTags" vs "QMemTags" isn't very clear when they're next to each other.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D105180
|
 | lldb/test/API/tools/lldb-server/memory-tagging/TestGdbRemoteMemoryTagging.py |
 | lldb/include/lldb/Host/common/NativeProcessProtocol.h |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h |
 | lldb/source/Utility/StringExtractorGDBRemote.cpp |
 | lldb/source/Plugins/Process/Linux/NativeProcessLinux.h |
 | lldb/source/Host/common/NativeProcessProtocol.cpp |
 | lldb/include/lldb/Utility/StringExtractorGDBRemote.h |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp |
 | lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp |
Commit
16ec706cc4b65dce5d6fb7ccf452ef3517a5fc76
by llvm-dev[X86] Add PR37025 test coverage
|
 | llvm/test/CodeGen/X86/pr37025.ll |
Commit
71b7608df169da51d14684f373255629a84acae9
by fraser[LangRef][NFC] Fix variable name in llvm.maxnum docs
|
 | llvm/docs/LangRef.rst |
Commit
47632352c85e020f5d70257ff1dd2ff190f0253c
by czhengsz[PowerPC] add more testcases for ld_splat; nfc
|
 | llvm/test/CodeGen/PowerPC/load-and-splat.ll |
Commit
452095fe2f58528c174ca780265f227439e3e07e
by thakis[clang/darwin] Pass libclang_rt.profile last on linker command
This reverts the functional change of https://reviews.llvm.org/D35385 because it sounds like this is no longer necessary (https://bugs.llvm.org/show_bug.cgi?id=51135#c11) and makes clang's behavior more uniform across platforms.
Differential Revision: https://reviews.llvm.org/D106733
|
 | clang/lib/Driver/ToolChains/Darwin.cpp |
 | clang/lib/Driver/ToolChains/Darwin.h |
 | clang/test/Driver/darwin-ld.c |
Commit
23eced9ead21c4282cc68c1e93016ad4433a12d6
by Vignesh.BalasubrmanianConvert the error to warning for enabling OMPD in non-Linux platform
OMPD is enabled by default on Linux machines and disabled on others. However, if explicitly enabled it throws an error and exit while configuring.
It is mentioned in Bug: https://bugs.llvm.org/show_bug.cgi?id=51121
This patch, instead of throwing error, disables OMPD support with a warning message, so configuration can continue.
Reviewed By: @protze.joachim Differential Revision: https://reviews.llvm.org/D106682
|
 | openmp/runtime/CMakeLists.txt |
Commit
43e45f0ec920b45d6073c0aff47597c44948f52c
by Raphael Isemann[lldb] Wait in TestGuiBasicDebug for the interface to open before quitting the welcome screen
Speculative fix for the failing lldb-aarch64-ubuntu bot.
|
 | lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py |
Commit
76f3ffb2b285998f02639db8fd42fb0de8a540d0
by chris.jackson[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR
This patch extends salvaging of debuginfo in the Loop Strength Reduction (LSR) pass by translating Scalar Evaluations (SCEV) into DIExpressions. The method is as follows: - Cache dbg.value intrinsics that are salvageable. - Obtain a loop Induction Variable (IV) from ScalarExpressionExpander or the loop header. - Translate the IV SCEV into an expression that recovers the current loop iteration count. Combine this with the dbg.value's location op SCEV to create a DIExpression that salvages the value.
Review by: jmorse
Differential Revision: https://reviews.llvm.org/D105207
|
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
Commit
ec1fb9533305e9bd69294ede7e5e7d9befbb2225
by sam.mccall[clangd] Use function pointer instead of function_ref to avoid GCC 5 bug
With GCC <6 constructing a function_ref from a free function reference leads to it referencing a temporary function pointer. If the lifetime of that temporary is insufficient it can crash.
Fixes https://github.com/clangd/clangd/issues/800
|
 | clang-tools-extra/clangd/GlobalCompilationDatabase.cpp |
Commit
cad2affb789201f0d7ccb4b5542f652b37c51c3a
by andrzej.warzynski[flang][driver] Make `flang` ignore `-Mfree/-Mfixed`
`-Mfixed` is not supported by the new driver and hence `flang`, the bash wrapper script, forwards it to the host compiler. The forwarded options are used by the host compiler when compiling the unparsed files. As the unparsed source files are always in the free form, forwarding `-Mfixed` is problematic.
With this patch, `-Mfixed` (and `-Mfree` for consistency) will be ignored altogether. The user will only see a warning. This is not a particularly sound approach, but `flang` is only a temporary solution for us and this workaround is a fair compromise.
Differential Revision: https://reviews.llvm.org/D106428
|
 | flang/tools/f18/flang.in |
Commit
e2559e5dc62445a92a9a5344db79f78f735e1e61
by sam.mccall[clangd] Add platform triple (host & target) to version info
Useful in logs to understand issues around some platforms we don't have much experience with (e.g. m1, mingw)
Differential Revision: https://reviews.llvm.org/D105681
|
 | clang-tools-extra/clangd/Features.cpp |
 | clang-tools-extra/clangd/Features.h |
 | clang-tools-extra/clangd/index/remote/Client.cpp |
 | clang-tools-extra/clangd/ClangdLSPServer.cpp |
 | clang-tools-extra/clangd/tool/ClangdMain.cpp |
Commit
1930c4410d6b48645b7b7c58cf4403a2a0e3836d
by chris.jackson[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR
This reverts commit 76f3ffb2b285998f02639db8fd42fb0de8a540d0 because of a failure on sanitixer-X86-64-linux-autoconf.
|
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
Commit
7dc9d7373186827a92d6ca08ad7192208dfea389
by jeremy.morse[DebugInfo][InstrRef] Handle llvm.frameaddress intrinsics gracefully
When working out which instruction defines a value, the instruction-referencing variable location code has a few special cases for physical registers: * Arguments are never defined by instructions, * Constant physical registers always read the same value, are never def'd
This patch adds a third case for the llvm.frameaddress intrinsics: you can read the framepointer in any block if you so choose, and use it as a variable location, as shown in the added test.
This rather violates one of the assumptions behind instruction referencing, that LLVM-ir shouldn't be able to read from an arbitrary register at some arbitrary point in the program. The solution for now is to just emit a DBG_PHI that reads the register value: this works, but if we wanted to do something clever with DBG_PHIs in the future then this would probably get in the way. As it stands, this patch avoids a crash.
Differential Revision: https://reviews.llvm.org/D106659
|
 | llvm/lib/CodeGen/MachineFunction.cpp |
 | llvm/test/DebugInfo/X86/instr-ref-framereg-read.ll |
Commit
ce90b60bd09da41c52006374a4715425122572ab
by kadircet[clang][Driver] Expose driver mode detection logic
Also use it in other places that performed it on their own.
Differential Revision: https://reviews.llvm.org/D106789
|
 | clang/include/clang/Driver/Driver.h |
 | clang/lib/Driver/Driver.cpp |
 | clang/tools/driver/driver.cpp |
 | clang/lib/Tooling/InterpolatingCompilationDatabase.cpp |
Commit
ab714ba056c14bce00ab67cc10e34678f9d77b5a
by kadircetRevert "Revert "[clangd] Canonicalize compile flags before applying edits""
Set driver mode before parsing arglist.
Depends on D106789.
Differential Revision: https://reviews.llvm.org/D106794
|
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/test/did-change-configuration-params.test |
 | clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp |
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
Commit
259e365deaa3a6920b30f49e3d03d3508f1d4900
by kadircetRevert "Revert "[clangd] Adjust compile flags to contain only the requested file as input""
This reverts commit 04e21fbc44c145d5599ef8db9aaf66b159107f33.
|
 | clang-tools-extra/clangd/GlobalCompilationDatabase.cpp |
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/unittests/TestTU.cpp |
 | clang-tools-extra/clangd/test/did-change-configuration-params.test |
 | clang-tools-extra/clangd/CompileCommands.h |
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
Commit
796b84d26f4d461fb50e7b4e84e15a10eaca88fc
by chris.jackson[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR
This reapplies commit 76f3ffb2b285998f02639db8fd42fb0de8a540d0 that was reverted due to buildbot failures.
- Update lit tests with REQUIRES condition. - Abandon salvage attempt if SCEVUnknown::getValue() returns nullptr.
Differential Revision: https://reviews.llvm.org/D105207
|
 | llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll |
 | llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll |
 | llvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll |
Commit
68ffed12b7e29c498e5b6d563a218f8710c46e61
by anna[IVDescriptors] Fix bug in checkOrderedReduction
The Exit instruction passed in for checking if it's an ordered reduction need not be an FPAdd operation. We need to bail out at that point instead of assuming it is an FPAdd (and hence has two operands). See added testcase. It crashes without the patch because the Exit instruction is a phi with exactly one operand. This latent bug was exposed by 95346ba which added support for multi-exit loops for vectorization.
Reviewed-By: kmclaughlin Differential Revision: https://reviews.llvm.org/D106843
|
 | llvm/test/Transforms/LoopVectorize/fp-reduction-crash.ll |
 | llvm/lib/Analysis/IVDescriptors.cpp |
Commit
d9e3449aa82541d289f4843617e23e93800bc278
by tpoppHandle unused variable when assertions are disabled
|
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
Commit
496a3815f43d20853a4fad77c7d70414385c3b06
by Louis Dionne[libc++] NFC: Try to trigger Docker image rebuild on CI nodes
|
 | libcxx/utils/ci/Dockerfile |
Commit
da58ca51f0cf4b415bbfc299ac7cef0666243c6c
by v.g.vassilev[clang-repl] Build and install clang-repl by default.
We have the basic infrastructure in place. We can recover from simple errors (recovering from errors in template instantiations is not yet supported). It looks like we are in a reasonably functional state for llvm13.
Differential revision: https://reviews.llvm.org/D106813
|
 | clang/tools/clang-repl/CMakeLists.txt |
Commit
ec9da5172491413f098af7cd5b5bc5d1c8b9f07d
by jeremy.morse[DebugInfo][InstrRef] Correctly update DBG_PHIs during instr scheduling
Avoid several crashes when DBG_INSTR_REF and DBG_PHI instructions are fed to the instruction scheduler. DBG_INSTR_REFs should be treated like DBG_LABELs, and just ignored for the purpose of scheduling [0].
DBG_PHIs however behave much more like DBG_VALUEs: they refer to register operands, and if some register defs get shuffled around during instruction scheduling, there's a risk that the debug instr will refer to the wrong value. There's already a facility for updating DBG_VALUEs to reflect this; add DBG_PHI to the list of instructions that it will update.
[0] Suboptimal, but it's what instr scheduling does right now.
Differential Revision: https://reviews.llvm.org/D106663
|
 | llvm/test/CodeGen/X86/post-ra-sched-with-debug.mir |
 | llvm/include/llvm/CodeGen/AntiDepBreaker.h |
 | llvm/lib/CodeGen/ScheduleDAGInstrs.cpp |
Commit
5ea091a8174bcce78839156bd044831cb5211d06
by david.spickett[lldb][AArch64] Add memory tag writing to lldb
This adds memory tag writing to Process and the GDB remote code. Supporting work for the "memory tag write" command. (to follow)
Process WriteMemoryTags is similair to ReadMemoryTags. It will pack the tags then call DoWriteMemoryTags. That function will send the QMemTags packet to the gdb-remote.
The QMemTags packet follows the GDB specification in: https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html#General-Query-Packets
Note that lldb-server will be treating partial writes as complete failures. So lldb doesn't need to handle the partial write case in any special way.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D105181
|
 | lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h |
 | lldb/include/lldb/Target/Process.h |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h |
 | lldb/source/Target/Process.cpp |
Commit
775caa58fcf9005494acdd132a07c8d7edb534b2
by marek.kurdej+llvm.org[libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr.
* https://wg21.link/P2166
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D106801
|
 | libcxx/test/libcxx/debug/db_string_view.pass.cpp |
 | libcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp |
 | libcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp |
 | libcxx/include/string |
 | libcxx/docs/Status/Cxx2bPapers.csv |
 | libcxx/include/string_view |
Commit
d7bbb1230a94cb239aa4a8cb896c45571444675d
by tpoppRevert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI."
This reverts commit 1cfecf4fc4278afb0005923f6dff595cd372da5c.
This commit broke LLVM code generated through XLA by removing a conditional on Ld->getExtensionType() == ISD::NON_EXTLOAD
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
70fa9479b2e803c1bab745d89f3c7883fa72b591
by tpoppRevert "Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI.""
This reverts commit d7bbb1230a94cb239aa4a8cb896c45571444675d.
There were follow up uses of a deleted method and I didn't run the tests. Undo the revert, so I can do it properly.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
d225de60c933d8feffde917c49a5bbb72530ae28
by tpoppRevert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI."
This reverts commit 1cfecf4fc4278afb0005923f6dff595cd372da5c.
This commit broke LLVM code generated through XLA by removing a conditional on Ld->getExtensionType() == ISD::NON_EXTLOAD
This is not a perfect revert. The new function is left as other uses of it exist now.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
8ee5759fd50d147328f9e2a7ca9d6894721d0770
by annaStrip undef implying attributes when moving calls
When hoisting/moving calls to locations, we strip unknown metadata. Such calls are usually marked `speculatable`, i.e. they are guaranteed to not cause undefined behaviour when run anywhere. So, we should strip attributes that can cause immediate undefined behaviour if those attributes are not valid in the context where the call is moved to.
This patch introduces such an API and uses it in relevant passes. See updated tests.
Fix for PR50744.
Reviewed By: nikic, jdoerfert, lebedev.ri
Differential Revision: https://reviews.llvm.org/D104641
|
 | llvm/include/llvm/IR/Instruction.h |
 | llvm/lib/Transforms/Utils/Local.cpp |
 | llvm/test/Transforms/SimplifyCFG/speculate-call.ll |
 | llvm/lib/IR/Instruction.cpp |
 | llvm/test/Transforms/LICM/call-hoisting.ll |
 | llvm/lib/Transforms/Scalar/LICM.cpp |
 | llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
Commit
a8cfa4b9bda3014a88e089cadcc6d366317aec5b
by anirudh_prasad[SystemZ][z/OS] Initial code to generate assembly files on z/OS
- This patch consists of the bare basic code needed in order to generate some assembly for the z/OS target. - Only the .text and the .bss sections are added for now. - The relevant MCSectionGOFF/Symbol interfaces have been added. This enables us to print out the GOFF machine code sections. - This patch enables us to add simple lit tests wherever possible, and contribute to the testing coverage for the z/OS target - Further improvements and additions will be made in future patches.
Reviewed By: tmatheson
Differential Revision: https://reviews.llvm.org/D106380
|
 | llvm/include/llvm/MC/MCObjectFileInfo.h |
 | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp |
 | llvm/lib/MC/MCObjectFileInfo.cpp |
 | llvm/lib/MC/MCParser/AsmParser.cpp |
 | llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp |
 | llvm/include/llvm/MC/MCContext.h |
 | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp |
 | llvm/include/llvm/MC/MCSymbol.h |
 | llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h |
 | llvm/test/CodeGen/SystemZ/zos-simple-test.ll |
 | llvm/lib/MC/MCContext.cpp |
 | llvm/include/llvm/MC/MCSymbolGOFF.h |
 | llvm/include/llvm/MC/MCSection.h |
 | llvm/include/llvm/MC/MCSectionGOFF.h |
Commit
973de7185606a21fd5e9d5e8c014fbf898c0e72f
by hansRevert "[clang][pp] adds '#pragma include_instead'"
> `#pragma clang include_instead(<header>)` is a pragma that can be used > by system headers (and only system headers) to indicate to a tool that > the file containing said pragma is an implementation-detail header and > should not be directly included by user code. > > The library alternative is very messy code that can be seen in the first > diff of D106124, and we'd rather avoid that with something more > universal. > > This patch takes the first step by warning a user when they include a > detail header in their code, and suggests alternative headers that the > user should include instead. Future work will involve adding a fixit to > automate the process, as well as cleaning up modules diagnostics to not > suggest said detail headers. Other tools, such as clangd can also take > advantage of this pragma to add the correct user headers. > > Differential Revision: https://reviews.llvm.org/D106394
This caused compiler crashes in Chromium builds involving PCH and an include directive with macro expansion, when Token::getLiteralData() returned null. See the code review for details.
This reverts commit e8a64e5491260714c79dab65d1aa73245931d314.
|
 | clang/include/clang/Lex/HeaderSearch.h |
 | clang/test/Preprocessor/include_instead_file_not_found.cpp |
 | clang/include/clang/Lex/PreprocessorLexer.h |
 | clang/test/Preprocessor/Inputs/include_instead/private-x.h |
 | clang/test/Preprocessor/Inputs/include_instead/bad-syntax.h |
 | clang/test/Preprocessor/Inputs/include_instead/public-after.h |
 | clang/test/Preprocessor/Inputs/include_instead/public-before.h |
 | clang/test/Preprocessor/include_instead.cpp |
 | clang/include/clang/Lex/Preprocessor.h |
 | clang/test/Preprocessor/Inputs/include_instead/file-not-found.h |
 | clang/lib/Lex/Pragma.cpp |
 | clang/lib/Lex/PPDirectives.cpp |
 | clang/test/Preprocessor/Inputs/include_instead/public-empty.h |
 | clang/test/Preprocessor/Inputs/include_instead/private1.h |
 | clang/test/Preprocessor/Inputs/include_instead/private2.h |
 | clang/test/Preprocessor/Inputs/include_instead/private3.h |
 | clang/include/clang/Basic/DiagnosticLexKinds.td |
 | clang/test/Preprocessor/Inputs/include_instead/non-system-header.h |
 | clang/lib/Lex/Lexer.cpp |
 | clang/lib/Lex/PPLexerChange.cpp |
Commit
e5f47eedeb02595247e433ad756607e6c1397ae3
by anastasia.stulova[OpenCL] NULL redefined as nullptr in C++ mode.
Redefines NULL as nullptr instead of ((void*)0) in C++ for OpenCL.
Such internal representation of NULL provides compatibility with C++11 and later language standards.
Patch by Topotuna (Justas Janickas)!
Differential Revision: https://reviews.llvm.org/D105987
|
 | clang/lib/Headers/opencl-c-base.h |
 | clang/test/SemaOpenCL/null_literal.cl |
Commit
ec3da1a43f1f0fe706e7ea511ab66a3e1dd0a2f2
by pataccaUpdate isl to isl-0.24-69-g54aac5ac
This is needed for having the functions isl_{set,map}_n_basic_{set,map} exported to the C++ interface. Some tests have been modified to reflect the isl changes.
|
 | polly/lib/External/isl/interface/template_cpp.cc |
 | polly/lib/External/isl/include/isl/map.h |
 | polly/lib/External/isl/isl_coalesce.c |
 | polly/lib/External/isl/include/isl/set.h |
 | polly/lib/External/isl/isl_stream.c |
 | polly/lib/External/isl/test_inputs/schedule/niewang.sc |
 | polly/lib/External/isl/include/isl/typed_cpp.h |
 | polly/lib/External/isl/GIT_HEAD_ID |
 | polly/test/JSONExporter/ImportAccesses/ImportAccesses-Bad-relation.ll |
 | polly/lib/External/isl/Makefile.am |
 | polly/lib/External/isl/include/isl/aff.h |
 | polly/test/JSONExporter/ImportContext/ImportContext-Unvalid-Context.ll |
 | polly/lib/External/isl/include/isl/cpp-checked.h |
 | polly/lib/External/isl/isl_ctx_private.h |
 | polly/lib/External/isl/include/isl/cpp.h |
 | polly/lib/External/isl/isl_input.c |
 | polly/lib/External/isl/isl_scheduler.c |
 | polly/test/JSONExporter/ImportSchedule/ImportSchedule-Schedule-not-valid.ll |
 | polly/lib/External/isl/Makefile.in |
 | polly/lib/External/isl/check_reparse_test_templ.c |
 | polly/lib/External/isl/interface/isl.py |
 | polly/lib/External/isl/check_parse_fail_test_templ.c |
 | polly/lib/External/isl/isl_test.c |
Commit
33786576fd3a7f79a6627a51386b173940bab0e9
by tlively[WebAssembly] Codegen for extmul SIMD instructions
Replace the clang builtins and LLVM intrinsics for the SIMD extmul instructions with normal codegen patterns.
Differential Revision: https://reviews.llvm.org/D106724
|
 | clang/lib/Headers/wasm_simd128.h |
 | llvm/include/llvm/IR/IntrinsicsWebAssembly.td |
 | llvm/test/CodeGen/WebAssembly/simd-arith.ll |
 | llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll |
 | clang/include/clang/Basic/BuiltinsWebAssembly.def |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/test/Headers/wasm.c |
 | clang/test/CodeGen/builtins-wasm.c |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
Commit
b32d3d9e81cdd9275d19cd2a396c461edc9e7189
by arsenm2AMDGPU: Treat IMPLICIT_DEF like a constant lanemask source
This is partially a workaround. SILowerI1Copies does not understand unstructured loops. This would result in inserting instructions to merge a mask register in the same block where it was defined in an unstructured loop.
|
 | llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp |
 | llvm/test/CodeGen/AMDGPU/lower-i1-copies-implicit-def-unstructured-loop.mir |
Commit
c2415d67a5644eae870328497d46d97b28d5a974
by ajcbik[mlir][sparse] fixed bug in verification
The order of testing in two sparse tensor ops was incorrect, which could cause an invalid cast (crashing the compiler instead of reporting the error). This revision fixes that bug.
Reviewed By: gussmith23
Differential Revision: https://reviews.llvm.org/D106841
|
 | mlir/test/Dialect/SparseTensor/invalid.mlir |
 | mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp |
Commit
310c9496d80961188e8d8f8ad306cdf44bd7541f
by stellaraccidentRe-engineer MLIR python build support.
* Implements all of the discussed features: - Links against common CAPI libraries that are self contained. - Stops using the 'python/' directory at the root for everything, opening the namespace up for multiple projects to embed the MLIR python API. - Separates declaration of sources (py and C++) needed to build the extension from building, allowing external projects to build custom assemblies from core parts of the API. - Makes the core python API relocatable (i.e. it could be embedded as something like 'npcomp.ir', 'npcomp.dialects', etc). Still a bit more to do to make it truly isolated but the main structural reset is done. - When building statically, installed python packages are completely self contained, suitable for direct setup and upload to PyPi, et al. - Lets external projects assemble their own CAPI common runtime library that all extensions use. No more possibilities for TypeID issues. - Begins modularizing the API so that external projects that just include a piece pay only for what they use. * I also rolled in a re-organization of the native libraries that matches how I was packaging these out of tree and is a better layering (i.e. all libraries go into a nested _mlir_libs package). There is some further cleanup that I resisted since it would have required source changes that I'd rather do in a followup once everything stabilizes. * Note that I made a somewhat odd choice in choosing to recompile all extensions for each project they are included into (as opposed to compiling once and just linking). While not leveraged yet, this will let us set definitions controlling the namespacing of the extensions so that they can be made to not conflict across projects (with preprocessor definitions). * This will be a relatively substantial breaking change for downstreams. I will handle the npcomp migration and will coordinate with the circt folks before landing. We should stage this and make sure it isn't causing problems before landing. * Fixed a couple of absolute imports that were causing issues.
Differential Revision: https://reviews.llvm.org/D106520
|
 | mlir/python/mlir/dialects/_builtin_ops_ext.py |
 | mlir/test/lit.cfg.py |
 | mlir/test/CMakeLists.txt |
 | mlir/python/mlir/_mlir_libs/__init__.py |
 | mlir/python/mlir/dialects/PythonTest.td |
 | mlir/cmake/modules/AddMLIRPython.cmake |
 | mlir/test/python/ir/operation.py |
 | mlir/lib/Bindings/Python/Transforms/CMakeLists.txt |
 | mlir/python/mlir/dialects/CMakeLists.txt |
 | mlir/lib/Bindings/Python/Conversions/CMakeLists.txt |
 | mlir/lib/Bindings/CMakeLists.txt |
 | mlir/cmake/modules/AddMLIR.cmake |
 | mlir/docs/Bindings/Python.md |
 | mlir/test/python/CMakeLists.txt |
 | mlir/python/mlir/dialects/_linalg_ops_ext.py |
 | mlir/python/CMakeLists.txt |
 | mlir/python/mlir/_cext_loader.py |
 | mlir/python/mlir/dialects/linalg/opdsl/lang/emitter.py |
 | mlir/lib/Bindings/Python/CMakeLists.txt |
 | mlir/lib/CMakeLists.txt |
Commit
9b1bcaea4e0e32636e13e767ecee4de398ce7bd2
by arsenm2AMDGPU: Update tests for lower i1 change
I forgot to squash the test updates for b32d3d9e81cdd9275d19cd2a396c461edc9e7189
|
 | llvm/test/CodeGen/AMDGPU/loop_break.ll |
 | llvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll |
Commit
d94426d22a25559f25fd86276d7e9aefbd9d05ab
by ezhulenev[mlir] Math: add algebraic simplification patterns to math transforms
Reviewed By: bkramer
Differential Revision: https://reviews.llvm.org/D106822
|
 | mlir/test/lib/Dialect/Math/TestAlgebraicSimplification.cpp |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/test/Dialect/Math/algebraic-simplification.mlir |
 | mlir/lib/Dialect/Math/Transforms/AlgebraicSimplification.cpp |
 | mlir/test/lib/Dialect/Math/CMakeLists.txt |
 | mlir/lib/Dialect/Math/Transforms/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Math/Transforms/Passes.h |
Commit
c78b9542e36f6092390a766e98660e60adf1d521
by annaUpdate reduction test. Remove standalone test file
Based on post commit review comments at 68ffed12b.
|
 | llvm/test/Transforms/LoopVectorize/fp-reduction-crash.ll |
 | llvm/test/Transforms/LoopVectorize/reduction-order.ll |
Commit
a5dd6c6cf9356f7e7c4611a0d5c198ae7cd34106
by david.sherwood[LoopVectorize] Don't interleave scalar ordered reductions for inner loops
Consider the following loop:
void foo(float *dst, float *src, int N) { for (int i = 0; i < N; i++) { dst[i] = 0.0; for (int j = 0; j < N; j++) { dst[i] += src[(i * N) + j]; } } }
When we are not building with -Ofast we may attempt to vectorise the inner loop using ordered reductions instead. In addition we also try to select an appropriate interleave count for the inner loop. However, when choosing a VF=1 the inner loop will be scalar and there is existing code in selectInterleaveCount that limits the interleave count to 2 for reductions due to concerns about increasing the critical path. For ordered reductions this problem is even worse due to the additional data dependency, and so I've added code to simply disable interleaving for scalar ordered reductions for now.
Test added here:
Transforms/LoopVectorize/AArch64/strict-fadd-vf1.ll
Differential Revision: https://reviews.llvm.org/D106646
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd-vf1.ll |
Commit
b373b5990d5991a920c421b21a352e4ccf4c4993
by andrew.kaylorEnabling the copy-constant-to-alloca optimization in more instances
Patch by Mohammad Fawaz
This patch allows lifetime calls to be ignored (and later erased) if we know that the copy-constant-to-alloca optimization is going to happen. The case that is missed is when the global variable is in a different address space than the alloca (as shown in the example added to the lit test.)
This used to work before https://github.com/llvm/llvm-project/commit/6da31fa4a61d68af21dfa1e144e726ed6d77903e
Differential Revision: https://reviews.llvm.org/D106573
|
 | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp |
 | llvm/test/Transforms/InstCombine/memcpy-from-global.ll |
Commit
098984a80c630404df0c7c12bd987722e3dc83a2
by david.green[AArch64] Update and expand min-max cost model test. NFC
This expands the cost model test for min/max to many more types, including floating point minnum/maxnum and minimum/maximum, and FP16 with and without fullfp16. The old llc run lines are removed, as those are better tested by CodeGen tests.
|
 | llvm/test/Analysis/CostModel/AArch64/min-max.ll |
Commit
48ad446a0fb2c9b98cb7047e4daf8a84c29cef8f
by melanie.blower[clang][fpenv][patch] Change clang option -ffp-model=precise to select ffp-contract=on
Change the ffp-model=precise to enables -ffp-contract=on (previously -ffp-model=precise enabled -ffp-contract=fast). This is a follow-up to Andy Kaylor's comments in the llvm-dev discussion "Floating Point semantic modes". From the same email thread, I put Andy's distillation of floating point options and floating point modes into UsersManual.rst Also fixes bugs.llvm.org/show_bug.cgi?id=50222
I had to revert this a few times because of failures on the x86-64 buildbot but I think we finally have that fixed by LNT/79f2b03c51.
Reviewed By: rjmccall, andrew.kaylor
Differential Revision: https://reviews.llvm.org/D74436
|
 | clang/test/CodeGen/ffp-contract-option.c |
 | clang/test/Driver/fp-model.c |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/CodeGen/ppc-emmintrin.c |
 | clang/test/CodeGen/ppc-xmmintrin.c |
 | clang/docs/UsersManual.rst |
Commit
3852b8c70fbf5ad55e87ab5ccb0bd2f0a5c65977
by craig.topper[RISCV] Select vector shl by 1 to a vector add.
A vector add may be faster than a vector shift.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D106689
|
 | llvm/test/CodeGen/RISCV/rvv/vshl-sdnode-rv64.ll |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll |
 | llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll |
 | llvm/test/CodeGen/RISCV/rvv/vshl-sdnode-rv32.ll |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td |
 | llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll |
 | llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitreverse.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll |
Commit
45478619e3eb5860e48a9258a7ac1cfb09fcbb5f
by Louis Dionne[libc++] CI: Run -std=c++03 on Clang ToT
Differential Revision: https://reviews.llvm.org/D106104
|
 | libcxx/utils/ci/run-buildbot |
 | libcxx/utils/ci/Dockerfile |
Commit
21c24ae9029a1fcd1c76b61b1c48b81b5c66c606
by Louis Dionne[runtimes] Always build libc++, libc++abi and libunwind with -fPIC
Building the libraries with -fPIC ensures that we can link an executable against the static libraries with -fPIE. Furthermore, there is apparently basically no downside to building the libraries with position independent code, since modern toolchains are sufficiently clever.
This commit enforces that we always build the runtime libraries with -fPIC. This is another take on D104327, which instead makes the decision of whether to build with -fPIC or not to the build script that drives the runtimes' build.
Fixes http://llvm.org/PR43604.
Differential Revision: https://reviews.llvm.org/D104328
|
 | libcxxabi/src/CMakeLists.txt |
 | libunwind/src/CMakeLists.txt |
 | libcxx/src/CMakeLists.txt |
Commit
8e8701abca3d4f05bd00762cd13df6a96635c3ef
by thakis[lld/mac] When loading reexports, look for basename in -F / -L first
Matches ld64 (cf Options::findIndirectDylib()), and fixes PR51218.
Differential Revision: https://reviews.llvm.org/D106842
|
 | lld/MachO/InputFiles.cpp |
 | lld/test/MachO/sub-library.s |
Commit
02077da7e7a8ff76c0576bb33adb462c337013f5
by dancgrAdd jump-threading optimization for deterministic finite automata
The current JumpThreading pass does not jump thread loops since it can result in irreducible control flow that harms other optimizations. This prevents switch statements inside a loop from being optimized to use unconditional branches.
This code pattern occurs in the core_state_transition function of Coremark. The state machine can be implemented manually with goto statements resulting in a large runtime improvement, and this transform makes the switch implementation match the goto version in performance.
This patch specifically targets switch statements inside a loop that have the opportunity to be threaded. Once it identifies an opportunity, it creates new paths that branch directly to the correct code block. For example, the left CFG could be transformed to the right CFG:
``` sw.bb sw.bb / | \ / | \ case1 case2 case3 case1 case2 case3 \ | / / | \ latch.bb latch.2 latch.3 latch.1 br sw.bb / | \ sw.bb.2 sw.bb.3 sw.bb.1 br case2 br case3 br case1 ```
Co-author: Justin Kreiner @jkreiner Co-author: Ehsan Amiri @amehsan
Reviewed By: SjoerdMeijer
Differential Revision: https://reviews.llvm.org/D99205
|
 | llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp |
 | llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-analysis.ll |
 | llvm/test/Transforms/DFAJumpThreading/dfa-constant-propagation.ll |
 | llvm/test/Transforms/DFAJumpThreading/max-path-length.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll |
 | llvm/include/llvm/LinkAllPasses.h |
 | llvm/include/llvm/InitializePasses.h |
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
 | llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h |
 | llvm/include/llvm/Transforms/Scalar.h |
 | llvm/lib/Transforms/Scalar/CMakeLists.txt |
 | llvm/lib/Transforms/Scalar/Scalar.cpp |
 | llvm/test/Transforms/DFAJumpThreading/negative.ll |
Commit
bf7eb48454872cce85da42e0c006fa214e38fc0a
by anemet[Matrix] RAUW should only replace an instruction in ShapeMap if supportsShapeInfo
As an instruction is replaced in optimizeTransposes RAUW will replace it in the ShapeMap (ShapeMap is ValueMap so that uses are updated). In finalizeLowering however we skip updating uses if they are in the ShapeMap since they will be lowered separately at which point we pick up the lowered operands.
In the testcase what happened was that since we replaced the doubled-transpose with the shuffle, it ended up in the ShapeMap. As we lowered the columnwise-load the use in the shuffle was not updated. Then as we removed the original columnwise-load we changed that to an undef. I.e. we ended up with:
``` %shuf = shufflevector <8 x double> undef, <8 x double> poison, <6 x i32> ^^^^^ <i32 0, i32 1, i32 2, i32 4, i32 5, i32 6> ```
Besides the fix itself, I have fortified this last bit. As we change uses to undef when removing instruction we track the undefed instruction to make sure we eventually remove those too. This would have caught the issue at compile time.
Differential Revision: https://reviews.llvm.org/D106714
|
 | llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp |
 | llvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts.ll |
Commit
d87d3615f75502b3adf93d05d4a217f6ab947fdd
by anemet[Matrix] Fix shape for factored transpose
The shape of the input is C x R.
Differential Revision: https://reviews.llvm.org/D106722
|
 | llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp |
 | llvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts.ll |
Commit
e26356a00ecba749b471ee7096b47d199b622c85
by thakis[lld/mac] Fix application-extension.s failure after 8e8701abca3d4
The test accidentally tested something else that makes lld fail with a different (correct-looking) error that wasn't the one the test tries to test for. (The test case before this change makes ld64 hang in an infinite loop.)
|
 | lld/test/MachO/application-extension.s |
Commit
df95697db32ba0ff9e78b59f536b7a11e8f73b07
by llvmgnsyncbot[gn build] Port 02077da7e7a8
|
 | llvm/utils/gn/secondary/llvm/lib/Transforms/Scalar/BUILD.gn |
Commit
00411ebeeb718da63d1ec0e0ffc8e5012e474fe9
by jianzhouzh[dfsan][NFC] Update API interfaces
Reviewed By: gbalats
Differential Revision: https://reviews.llvm.org/D106895
|
 | clang/docs/DataFlowSanitizerDesign.rst |
Commit
1ee6559ef698301eeb220126937b563858999d92
by Vitaly Buka[ASAN] NFC: Remove redundant variable
`StackAlignment` has only one use: `StackAlignment = std::max(StackAlignment, AI.getAlignment());` So it is redundant.
Reviewed By: vitalybuka, MTC
Differential Revision: https://reviews.llvm.org/D106741
|
 | llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp |
Commit
a11d9a1f480ff83f98c550a6139637ff69c9c07c
by Amara Emerson[AArch64][GlobalISel] Fix constraining LDXPX intrinsic selection.
Causes a fallback because of lack of regclasses on vregs, unless its without asserts, where we end up crashing later in codegen.
|
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
Commit
fac6c5cf9b65fba6e028d9d2fdbec5c3114db542
by Amara EmersonAdd test update for a11d9a1f480f which disables fallbacks.
|
 | llvm/test/CodeGen/AArch64/arm64-ldxr-stxr.ll |
Commit
05815c9f638c2a62e1ce9b28b26d74c7bea81f2e
by benny.kraRemove unused include that's also a layering violation. NFC.
|
 | llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp |
Commit
3dc39f282996c5785915f115fd37fb981f8d479a
by muiez[SystemZ][z/OS][libcxx]: Disable align_val_t test cases on z/OS
align_val_t is not supported on z/OS, it causes failure on z/OS. similar to https://reviews.llvm.org/rGd0fe294729a2ac45625ed45a5619c8405a14db49 , we will need to disable those test cases on z/OS platform.
Differential Revision: https://reviews.llvm.org/D106810
|
 | libcxx/test/std/language.support/support.dynamic/align_val_t.pass.cpp |
 | libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.verify.cpp |
 | libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.verify.cpp |
 | libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.verify.cpp |
 | libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.verify.cpp |
Commit
dd57915b1ef6568e335053131e600eb4c26d1f1e
by thakis[lld/mac] Fix sub-library.s on Windows after 8e8701abca3d4f0
The endswith() check for the framework name fails when joining with the native path separator. Always use the posix separator as fix.
|
 | lld/MachO/InputFiles.cpp |
Commit
a2d4b064644bdf146d0649c6a70e595567f1213f
by fanbo.meng[z/OS] Make MinGlobalAlign consistent with SystemZ
Remove overriding MinGlobalAlign to 0 for z/OS target to be consistent with SystemZ.
Reviewed By: abhina.sreeskantharajan
Differential Revision: https://reviews.llvm.org/D106890
|
 | clang/lib/Basic/Targets/OSTargets.h |
Commit
835ef6f93d5789d3d7d905462e7574a38b30577d
by fmayer[hwasan] Fix stack safety test for old PM.
With the old PM, the stub for __hwasan_generate_tag is still generated in the IR, but never called.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106858
|
 | clang/test/CodeGen/hwasan-stack-safety-analysis.c |
Commit
74c65906bcb77bf79cd7a102456e6e46d001290a
by arsenm2AMDGPU/GlobalISel: Add a few tests for unaligned truncating stores
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-store.mir |
Commit
82ab1ae54e91619c8e56d8184ae5fcf1d1fa23e3
by arsenm2AMDGPU/GlobalISel: Fix wrong addrspace in test MMOs
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir |
Commit
d7d2e4545e6b04ea29ffd05ebef2f7c26590b925
by arsenm2AMDGPU/GlobalISel: Fix selecting G_SEXTLOAD/G_ZEXTLOAD pre-gfx9
The patterns for the m0 glue patterns were failing to import.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-sextload-local.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-zextload-local.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUGISel.td |
Commit
571673ce390a2f4973946c06801dfb2037115750
by psteinfeld[flang] Disallow BOZ literal constants as output list items
According to C7109, "A boz-literal-constant shall appear only as a data-stmt-constant in a DATA statement, or where explicitly allowed in 16.9 as an actual argument of an intrinsic procedure." This change enforces that constraint for output list items.
I also added a general interface to determine if an expression is a BOZ literal constant and changed all of the places I could find where it could be used.
I also added a test.
This change stemmed from the following issue -- https://gitlab-master.nvidia.com/fortran/f18-stage/issues/108
Differential Revision: https://reviews.llvm.org/D106893
|
 | flang/lib/Semantics/expression.cpp |
 | flang/lib/Evaluate/intrinsics.cpp |
 | flang/lib/Semantics/data-to-inits.cpp |
 | flang/include/flang/Evaluate/tools.h |
 | flang/test/Semantics/boz-literal-constants.f90 |
 | flang/lib/Semantics/check-call.cpp |
 | flang/lib/Semantics/check-io.cpp |
Commit
e07f9342be7132f433963880d95e471ae2246d64
by Jinsong Ji[libclang] Check LLVM_HAVE_LINK_VERSION_SCRIPT
There are some platform that might not have version script support, don't try to use version script on those.
Reviewed By: MaskRay, hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D106914
|
 | clang/tools/libclang/CMakeLists.txt |
Commit
d1c7a57fe8e051aa7886a7d4052627f6bc4a4ae6
by jpienaar[mlir][bzl] Fix typo
|
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
Commit
71909de37495c82e31ae3a59f366f48e8fb66e54
by koraq[libc++] Disable incomplete library features.
Adds a new CMake option to disable the usage of incomplete headers. These incomplete headers are not guaranteed to be ABI stable. This option is intended to be used by vendors so they can avoid their users from code that's not ready for production usage.
The option is enabled by default.
Differential Revision: https://reviews.llvm.org/D106763
|
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/properties.compile.pass.cpp |
 | libcxx/test/std/ranges/range.range/borrowed_range.subsumption.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/end.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/ctor/begin_end.pass.cpp |
 | libcxx/test/std/containers/unord/unord.set/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/dangling.cache.pass.cpp |
 | libcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.range/sentinel_t.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/has_value.pass.cpp |
 | libcxx/src/CMakeLists.txt |
 | libcxx/test/libcxx/min_max_macros.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/ctor.view.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.view/view_base.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/constraints.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.utility.helpers/different_from.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/access/primitives.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.all/all_t.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.dangling/borrowed_subrange.compile.pass.cpp |
 | libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/utilities/format/format.error/format.error.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/assign.copy.pass.cpp |
 | libcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/size.pass.cpp |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/assign.move.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/ctor/range_size.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/arithmetic.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.access.end/end.pass.cpp |
 | libcxx/include/format |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/ctor.copy.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/begin.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/sentinel.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/iterators.common/assign.pass.cpp |
 | libcxx/test/std/containers/associative/set/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/ctor.pass.cpp |
 | libcxx/utils/generate_header_tests.py |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/deref.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.sized/subsumption.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/ctor/pair_like_conv.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/base.pass.cpp |
 | libcxx/utils/generate_feature_test_macro_components.py |
 | libcxx/test/std/ranges/range.adaptors/range.drop/begin.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.range/iterator_t.compile.pass.cpp |
 | libcxx/test/libcxx/utilities/format/version.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/access/advance.pass.cpp |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/assign.copy.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/check_arg_id.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/plus_minus.pass.cpp |
 | libcxx/CMakeLists.txt |
 | libcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp |
 | libcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/contiguous_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/forward_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctad.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/no_unique_address.pass.cpp |
 | libcxx/test/libcxx/no_assert_include.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/begin.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.range/helper_aliases.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/base.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.dangling/borrowed_iterator.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/next_arg_id.pass.cpp |
 | libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/ctor/begin_end_size.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/advance_to.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.access.begin/incomplete.compile.verify.cpp |
 | libcxx/test/std/containers/sequences/forwardlist/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/ctor.default.pass.cpp |
 | libcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/subscript.pass.cpp |
 | libcxx/cmake/caches/Apple.cmake |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/base.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/bidirectional_range.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.utility.helpers/simple_view.compile.pass.cpp |
 | libcxx/test/std/input.output/filesystems/class.directory_iterator/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/ctor.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/borrowing.compile.pass.cpp |
 | libcxx/docs/BuildingLibcxx.rst |
 | libcxx/include/ranges |
 | libcxx/test/std/ranges/range.req/range.range/enable_borrowed_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/version.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/language.support/support.limits/support.limits.general/format.version.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/end.pass.cpp |
 | libcxx/utils/libcxx/test/features.py |
 | libcxx/test/libcxx/double_include.sh.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/output_range.compile.pass.cpp |
 | libcxx/include/__config_site.in |
 | libcxx/utils/generate_header_inclusion_tests.py |
 | libcxx/test/std/ranges/range.req/range.range/range_size_t.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.sized/sized_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/enable_borrowed_range.compile.pass.cpp |
 | libcxx/test/libcxx/inclusions/ranges.inclusions.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/general.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/end.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/ctor.move.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/types.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/random_access_range.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/assign.move.pass.cpp |
 | libcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp |
 | libcxx/test/std/containers/unord/unord.multiset/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/types.compile.pass.cpp |
 | libcxx/test/std/containers/unord/unord.multimap/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/ctor.in_place.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.access.end/incomplete.compile.verify.cpp |
 | libcxx/test/std/ranges/range.access/range.access.begin/begin.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.dangling/dangling.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.empty/empty_view.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/ctor.default.pass.cpp |
 | libcxx/test/std/containers/unord/unord.map/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.default.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/size.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/general.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/size.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.view/view.compile.pass.cpp |
 | libcxx/test/std/ranges/range.range/borrowed_range.compile.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/begin.pass.cpp |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/has_value.pass.cpp |
 | libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.view/view.subsumption.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/requirements.compile.pass.cpp |
 | libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/end.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.view.pass.cpp |
 | libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/ctor.default.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/data.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/access/get.pass.cpp |
 | libcxx/test/libcxx/ranges/range.utility.helpers/has_arrow.compile.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/empty.pass.cpp |
 | libcxx/test/libcxx/ranges/range.nonprop.cache/deref.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/general.pass.cpp |
 | libcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.utility/range.subrange/ctor/range.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/iterator/compare.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.range/range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/ssize.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/size.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.ref.view.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/base.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/viewable_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.access.cend/incomplete.compile.verify.cpp |
Commit
0018c7123be3e090ba546fb730ed316fa2567655
by jinghamFix "break delete --disabled" with no arguments.
The code that figured out which breakpoints to delete was supposed to set the result status if it found breakpoints, and then the code that actually deleted them checked that the result's status was set.
The code for "break delete --disabled" failed to set the status if no "protected" breakpoints were provided. This was a confusing way to implement this, so I reworked it with early returns so it was less error prone, and added a test case for the no arguments case.
Differential Revision: https://reviews.llvm.org/D106623
|
 | lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py |
 | lldb/source/Commands/CommandObjectBreakpoint.cpp |
Commit
910353c1048e5efac64b639a65b4d968aba3aa81
by jinghamWhen calculating the "currently selected thread" in Process::HandleStateChangedEvent, we check whether a thread stopped for eStopReasonSignal is stopped for a signal that's currently set to "no-stop". If it is, then we don't set that thread as the currently selected thread.
But that only happens in the part of the algorithm that's handling the case where the previously selected thread has no stop reason. Since we want to keep on a thread as long as it is doing something interesting, we always prefer the current thread. That's almost right, but we forgot to check whether the previously selected thread stopped with an eStopReasonSignal for a "no-stop" signal. If it did, then we shouldn't select it.
This patch adds that check. I can't figure out a good way to test this. This is the sort of thing that Ismail's scripted process plugin will make easy once it is a real boy. But figuring out how to do this in a real process is not trivial.
Differential Revision: https://reviews.llvm.org/D106712
|
 | lldb/source/Target/Process.cpp |
Commit
69529286ce2dcd90563bca97537ce570c6d115b4
by jinghamAdd a test for top-level expressions using "expr --top-level".
This was broken for a while even though the Python version continued to work. This adds a test so it doesn't regress.
|
 | lldb/test/API/commands/expression/top-level/TestTopLevelExprs.py |
Commit
8baa87d91811a3da0dc69550b84a773d98902c8b
by hedingarcia[libc] Enable MPFR library for math functions test
Included more math functions to Windows's entrypoints and made a cmake option (-DLLVM_LIBC_MPFR_INSTALL_PATH) where the user can specify the install path where the MPFR library was built so it can be linked. The try_compile was moved to LLVMLibCCheckMPFR.cmake, so the variable that is set after this process can retain its value in other files of the same parent file. A direct reason for this is for LIBC_TESTS_CAN_USE_MPFR to be true when the user specifies MPFR's path and retain its value even after leaving the file.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D106894
|
 | libc/CMakeLists.txt |
 | libc/config/windows/entrypoints.txt |
 | libc/cmake/modules/LLVMLibCCheckMPFR.cmake |
 | libc/utils/MPFRWrapper/CMakeLists.txt |
 | libc/config/windows/README.md |
Commit
ddd84821172152592f76c2d5bf3debed436fc05e
by riddleriver[PDL] Remove RewriteEndOp and mark RewriteOp as NoTerminator
RewriteEndOp was a fake terminator operation that is no longer needed now that blocks are not required to have terminators.
Differential Revision: https://reviews.llvm.org/D106911
|
 | mlir/test/Dialect/PDL/invalid.mlir |
 | mlir/include/mlir/Dialect/PDL/IR/PDLOps.td |
Commit
e90a0d6381911fba87ae55fc1e6f877a3f3890d9
by riddleriver[mlir] Add a FailureOr copy constructor from a FailureOr of a convertible type.
|
 | mlir/include/mlir/Support/LogicalResult.h |
Commit
0b8d30b16e01b1ce9915aa7626ba6bacf1becc3b
by spatel[x86] add more tests for cmov and lea; NFC
|
 | llvm/test/CodeGen/X86/add-cmov.ll |
Commit
156ba620b3805f6b0b106b3751ec68a4722e35ff
by spatel[x86] update stale code comment; NFC
The transform was generalized with: 1ce05ad619a5
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
778932c673c28ce5fb75e551f1aa6bb5a542c563
by nemanja.i.ibm[PowerPC] Turn deprecated altivec prefetch instrs to nops on AIX
The dst/dstt/dstst/dststt instructions are nop's on all PowerPC cores that AIX supports. The AIX assembler also does not accept these mnemonics. Turn them into nop's on AIX (similar to dstall).
|
 | llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp |
 | llvm/test/CodeGen/PowerPC/2007-09-04-AltivecDST.ll |
Commit
dd8b93a9e76bc5e3c8fc521fcb06c779371211d3
by sivachandra[libc] Fix x86_64 fenv implementation for windows
All fenv functions are also enabled for windows. Since two tests, enabled_exceptions_test and feholdexcept_test are still failing on windows, they have been disabled.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D106808
|
 | libc/test/src/fenv/CMakeLists.txt |
 | libc/utils/FPUtil/x86_64/FEnvImpl.h |
 | libc/config/windows/entrypoints.txt |
Commit
c49df15c278857adecd12db6bb1cdc96885f7079
by jianzhouzh[dfsan][NFC] Describe how origin trace tracking works
Reviewed By: gbalats
Differential Revision: https://reviews.llvm.org/D106903
|
 | clang/docs/DataFlowSanitizerDesign.rst |
Commit
0276db14167b9348904322084e7fc1a04cc72452
by tianshilei1992[OpenMP] Creating the `omp_target_num_teams` and `omp_target_thread_limit` attributes to outlined functions
The device runtime contains several calls to __kmpc_get_hardware_num_threads_in_block and __kmpc_get_hardware_num_blocks. If the thread_limit and the num_teams are constant, these calls can be folded to the constant value.
In commit D106033 we have the optimization phase. This commit adds the attributes to the outlined function for the grid size. the two attributes are `omp_target_num_teams` and `omp_target_thread_limit`. These values are added as long as they are constant.
Two functions are created `getNumThreadsExprForTargetDirective` and `getNumTeamsExprForTargetDirective`. The original functions `emitNumTeamsForTargetDirective` and `emitNumThreadsForTargetDirective` identify the expresion and emit the code. However, for the Device version of the outlined function, we cannot emit anything. Therefore, this is a first attempt to separate emision of code from deduction of the values.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106298
|
 | clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp |
 | clang/test/OpenMP/nvptx_multi_target_parallel_codegen.cpp |
 | clang/test/OpenMP/teams_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_debug_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_codegen.cpp |
 | clang/test/OpenMP/target_num_teams_num_threads_attributes.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp |
 | clang/test/OpenMP/target_parallel_num_threads_codegen.cpp |
 | clang/test/OpenMP/target_parallel_codegen.cpp |
 | clang/test/OpenMP/declare_target_codegen_globalization.cpp |
 | clang/test/OpenMP/target_map_codegen_03.cpp |
 | clang/test/OpenMP/target_parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/nvptx_target_codegen.cpp |
 | clang/test/OpenMP/target_parallel_debug_codegen.cpp |
 | clang/test/OpenMP/target_teams_num_teams_codegen.cpp |
 | clang/test/OpenMP/target_teams_thread_limit_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp |
 | clang/test/OpenMP/nvptx_lambda_capturing.cpp |
 | clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/target_parallel_if_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.h |
 | clang/test/OpenMP/nvptx_target_parallel_codegen.cpp |
Commit
0a74fbb7b1d3e04ac03389f1fc455ac593c2e5ee
by apl[lldb][NFC] Fix incorrect log and comment
Likely copy & paste issue that was overlooked years ago
|
 | lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp |
Commit
0784e62c3c4a4aaabdf29f6fa0b5f8f7598a90d4
by sivachandra[libc] Fix strtok_r crash when src and *saveptr are both nullptr
While working and testing my refactoring of multiple string functions in libc, I came across a bug that needs to be addressed in a patch on its own: src is checked for nullptr and assigned to *saveptr if it is nullptr. However, saveptr is initially nullptr when it comes to reentry. This could cause a problem if both saveptr and src are null; we need to do the check first and return nullptr if both are nullptr.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D106885
|
 | libc/test/src/string/strtok_r_test.cpp |
 | libc/src/string/string_utils.h |
Commit
3c76e992911afdf0cb2394e3fba3f13c17c15b26
by protze[OpenMP] Fix deadlock for detachable task with child tasks
This patch fixes https://bugs.llvm.org/show_bug.cgi?id=49066.
For detachable tasks, the assumption breaks that the proxy task cannot have remaining child tasks when the proxy completes. In stead of increment/decrement the incomplete task count, a high-order bit is flipped to mark and wait for the incomplete proxy task.
Differential Revision: https://reviews.llvm.org/D101082
|
 | openmp/runtime/test/tasking/detach_nested_task.c |
 | openmp/runtime/src/kmp_tasking.cpp |
Commit
eb76ca573d755fd445596e63ef1f0d30937097f6
by mtrofin[NFC][MLGO] Debug messages for what inline advisor is selected
We already have an indication (error) if the desired inline advisor cannot be enabled, but we don't have a positive indication. Added LLVM_DEBUG messages for the latter.
|
 | llvm/lib/Analysis/InlineAdvisor.cpp |
Commit
e32e1dae61f20569fc16951b15ab9f63b9acfe08
by protze[OpenMP][Tests] Fix test compatibility
gcc and clang disagree in how the event handle needs to be handled. According to OpenMP LC, gcc is right. Will open clang bug report
|
 | openmp/runtime/test/tasking/detach_nested_task.c |
Commit
935dea2cb2f3266bdb7bd7ae669dd8220820052b
by mtrofin[MLGO] fix silly LLVM_DEBUG misuse
|
 | llvm/lib/Analysis/InlineAdvisor.cpp |
Commit
edbdf8e5b5aad9f1d7f12dd4025d6811a6fff0b2
by Jinsong Ji[AIX] Update fetch_and_add type
It turns out that the AIX kernel is defining int instead of unsigned int for fetch_and_add.
Legacy XL also defines this to be signed.
https://www.ibm.com/docs/en/aix/7.2?topic=f-fetch-add-kernel-services
So update the type for compat.
Reviewed By: hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D106920
|
 | clang/test/CodeGen/builtins-ppc-xlcompat-fetch.c |
 | clang/include/clang/Basic/BuiltinsPPC.def |
 | clang/test/CodeGen/builtins-ppc-xlcompat-fetch-error.c |
Commit
e3ee76245ead4eebad2aec0e24c2582ffa9c7378
by huberjn[Libomptarget] Revert new variable sharing to use the old method
The new method of sharing variables introduces a `__kmpc_alloc_shared` call that cannot be removed in the middle end because of its non-constant argument and unconnected free. This patch reverts this to the old method that used a static amount of shared memory for sharing variables.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106905
|
 | openmp/libomptarget/DeviceRTL/src/State.cpp |
 | openmp/libomptarget/DeviceRTL/include/Interface.h |
 | openmp/libomptarget/DeviceRTL/src/Parallelism.cpp |
Commit
38880394030ea5c126884d3571dc742487b6df13
by thakis[gn build] manually port 71909de37495
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
b9cf1769de54152c05614e6bf00c89f2a67f6d8d
by amilendra.kodithuwakku[lld][ELF] remove empty SyntheticSections from inputSections
Change removeUnusedSyntheticSections() to actually remove empty SyntheticSections in inputSections.
In addition to doing what removeUnusedSyntheticSections() was meant to do, this will also make the shuffle-sections tests, which shuffles inputSections, less sensitive to empty Synthetic Sections that will not appear in the final image.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D106427
Change-Id: I589eaf596472161a4395fb658aea0fad73318088
|
 | lld/test/ELF/shuffle-sections-init-fini.s |
 | lld/ELF/Writer.cpp |
 | lld/test/ELF/shuffle-sections.s |
Commit
3d272eea08b1e018a0dfbd6dbd602272382aa99a
by jyknightFix test/Transforms/LoopVectorize/AArch64/strict-fadd-vf1.ll.
It was writing to the source directory (which may not be writeable), rather than using %t.
Fixes: a5dd6c6cf935 ("[LoopVectorize] Don't interleave scalar ordered reductions for inner loops")
|
 | llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd-vf1.ll |
Commit
86832c9440fbf1a8d707dc7ce25bdce197735fa1
by leonardchan[compiler-rt][hwasan][Fuchsia] Do not emit FindDynamicShadowStart for Fuchsia
This function is unused because fuchsia does not support a dynamic shadow.
Differential Revision: https://reviews.llvm.org/D105735
|
 | compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp |
Commit
b187e0389d13d72056c7c15e10bcb7f429a9aa87
by zoecarver[libcxx][nfc] Delete `cpp20_input_iterator`'s default constructor.
This will make it conform only to the minimum requirements for an `input_iterator`.
|
 | libcxx/test/support/test_iterators.h |
Commit
8a48e6dda9f7fb9c7ae7207dcb9570d2c11255ad
by zoecarver[libcxx][ranges] Add `counted_iterator`.
Differential Revision: https://reviews.llvm.org/D106205
|
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/base.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/iter_swap.pass.cpp |
 | libcxx/docs/Status/RangesPaper.csv |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/iterator_traits.compile.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/increment.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/member_types.compile.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/compare.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/decrement.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/minus.default_sentinel.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/minus.size.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/deref.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.conv.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/three_way_compare.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/subscript.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/assign.pass.cpp |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/count.pass.cpp |
 | libcxx/include/module.modulemap |
 | libcxx/include/__iterator/counted_iterator.h |
 | libcxx/include/iterator |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/minus.eq.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.default.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.iter.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/iter_move.pass.cpp |
 | libcxx/test/libcxx/diagnostics/detail.headers/iterator/counted_iterator.module.verify.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/plus.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/arrow.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/counted.iterator/minus.iter.pass.cpp |
Commit
cbb709e25124dc38ee593882051fc88c987fe591
by johannes[Attributor] Disable simplification AAs if a callback is present
AAValueSimplify, AAValueConstantRange, and AAPotentialValues all look at the IR by default. If queried for a IR position which has a simplification callback we should either look at the callback return, or give up. We do the latter for now.
|
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
Commit
ed7ec860f03caf6b702f27a74c3682d061f60e1d
by johannes[OpenMP] Improve alignment handling in the new device runtime
|
 | openmp/libomptarget/DeviceRTL/src/State.cpp |
 | openmp/libomptarget/DeviceRTL/include/Utils.h |
Commit
fd520e75f173f380de530f101005e16256a6de42
by johannes[Attributor] Verify `checkForAllUses` return value properly
Also do not emit more than one remark after Heap2Stack failed.
|
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
Commit
aa27430a625b2fd059707a87f8ba2df8f480ff11
by johannesRevert "[Attributor] Disable simplification AAs if a callback is present"
This reverts commit cbb709e25124dc38ee593882051fc88c987fe591 as it breaks the tests, which was not supposed to happen. Investigating now.
|
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
Commit
7809e04e3c5fd0912f35fb5ec951378a6a2f0e83
by llvmgnsyncbot[gn build] Port 8a48e6dda9f7
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
b00c8ab1b915d7f32ad7a60255f33f210e12a3c6
by iRevert "[ELF] --gc-sections: allow GC on reserved sections in a group"
clang may place dynamic initializations for explicitly specialized class template static data members in comdat. Such in-comdat SHT_INIT_ARRAY was an abuse but we have to work around it for a while.
|
 | lld/ELF/MarkLive.cpp |
 | lld/test/ELF/gc-sections-group.s |
Commit
64d5b6e3737c02742b3568e797d84d831f7e8734
by kparzysz[Hexagon] Fix resetting dead registers in DBG_VALUE_LISTs
This fixes https://llvm.org/PR51229.
|
 | llvm/test/CodeGen/Hexagon/hwloop-dbg-register.mir |
 | llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp |
Commit
ec1a49170129ddb62f268ff0b3f12b3d09987a7e
by gclaytonCreate synthetic symbol names on demand to improve memory consumption and startup times.
This is a resubmission of https://reviews.llvm.org/D105160 after fixing testing issues.
This fix was created after profiling the target creation of a large C/C++/ObjC application that contained almost 4,000,000 redacted symbol names. The symbol table parsing code was creating names for each of these synthetic symbols and adding them to the name indexes. The code was also adding the object file basename to the end of the symbol name which doesn't allow symbols from different shared libraries to share the names in the constant string pool.
Prior to this fix this was creating 180MB of "___lldb_unnamed_symbol" symbol names and was taking a long time to generate each name, add them to the string pool and then add each of these names to the name index.
This patch fixes the issue by:
not adding a name to synthetic symbols at creation time, and allows name to be dynamically generated when accessed doesn't add synthetic symbol names to the name indexes, but catches this special case as name lookup time. Users won't typically set breakpoints or lookup these synthetic names, but support was added to do the lookup in case it does happen removes the object file baseanme from the generated names to allow the names to be shared in the constant string pool Prior to this fix the startup times for a large application was: 12.5 seconds (cold file caches) 8.5 seconds (warm file caches)
After this fix: 9.7 seconds (cold file caches) 5.7 seconds (warm file caches)
The names of the symbols are auto generated by appending the symbol's UserID to the end of the "___lldb_unnamed_symbol" string and is only done when the name is requested from a synthetic symbol if it has no name.
Differential Revision: https://reviews.llvm.org/D106837
|
 | lldb/include/lldb/Symbol/Symbol.h |
 | lldb/test/Shell/SymbolFile/Breakpad/symtab.test |
 | lldb/source/Symbol/Symbol.cpp |
 | lldb/source/Symbol/Symtab.cpp |
 | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp |
 | lldb/test/Shell/ObjectFile/ELF/eh_frame-symbols.yaml |
 | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp |
 | lldb/include/lldb/Symbol/Symtab.h |
 | lldb/source/Symbol/ObjectFile.cpp |
 | lldb/include/lldb/Symbol/ObjectFile.h |
Commit
6b4ce5fd52e03dc2a5dcf0930353c021a48605bb
by riddleriver[PDL] Fix the builders for OperationOp and PatternOp
|
 | mlir/lib/Dialect/PDL/IR/PDL.cpp |
 | mlir/include/mlir/Dialect/PDL/IR/PDLOps.td |
Commit
2f7511c82239a11b902dba7ac170668183fdca74
by riddleriver[PDL] Mark PatternOp as SingleBlock
This provides access to the SingleBlock accessor methods, e.g. getBody().
|
 | mlir/include/mlir/Dialect/PDL/IR/PDLOps.td |
Commit
6ff73efea94621e74642e4d7a15cc86a5fb6d411
by xiang1.zhang[X86] Fix lowering to illegal type in LowerINSERT_VECTOR_ELT
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/insertelement-var-index.ll |
Commit
2e4755ff6058b5032b77ccca04aa6dab7db081a5
by Louis Dionne[libc++] Fix a few warnings in system headers with GCC
This isn't fixing all of them, but at least it's making some progress.
Differential Revision: https://reviews.llvm.org/D106283
|
 | libcxx/include/charconv |
 | libcxx/include/__ranges/transform_view.h |
 | libcxx/include/__hash_table |
 | libcxx/include/memory |
 | libcxx/include/regex |
 | libcxx/include/cmath |
 | libcxx/include/barrier |
 | libcxx/include/__config |
 | libcxx/include/compare |
 | libcxx/include/random |
 | libcxx/include/semaphore |
Commit
aaacd8c40622f11f9f98c1a33373f97437e228d6
by joker.ephAdd llvm::equal convenient wrapper for ranges around std::equal
Differential Revision: https://reviews.llvm.org/D106913
|
 | mlir/include/mlir/IR/OpBase.td |
 | llvm/include/llvm/ADT/STLExtras.h |
Commit
2ca3937131d92d7111964ee9ab8b9ab1d35e8a08
by xiang1.zhangRevert "[X86] Fix lowering to illegal type in LowerINSERT_VECTOR_ELT"
This reverts commit 6ff73efea94621e74642e4d7a15cc86a5fb6d411.
|
 | llvm/test/CodeGen/X86/insertelement-var-index.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
3dca83961c9a35b6f640d9f7fdc244ec07bffe71
by johannesReapply "[Attributor] Disable simplification AAs if a callback is present""
This reapplies commit cbb709e25124dc38ee593882051fc88c987fe591 and includes the use of the lookup method instead of operator[] to avoid accidentally setting (empty) simplification callbacks.
This reverts commit aa27430a625b2fd059707a87f8ba2df8f480ff11.
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
Commit
3223d41017f1667d47a828fc98b86008bdecddb0
by xiang1.zhang[X86] Fix lowering to illegal type in LowerINSERT_VECTOR_ELT
Differential Revision: https://reviews.llvm.org/D106780
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/insertelement-var-index.ll |
Commit
784f258c0970ec978dc761e390b32cc2ef84d29d
by aqjunePrecommit test files for D105344 (NFC)
|
 | llvm/test/CodeGen/X86/setcc-freeze.ll |
Commit
4f71f59bf3d9914188a11d0c41bedbb339d36ff5
by aqjune[DAGCombiner] Fold SETCC(FREEZE(x),const) to FREEZE(SETCC(x,const)) if SETCC is used by BRCOND
This patch adds a peephole optimization `SETCC(FREEZE(x),const)` => `FREEZE(SETCC(x,const))` if the SETCC is only used by BRCOND.
Combined with `BRCOND(FREEZE(X)) => BRCOND(X)`, this leads to a nice improvement in the generated assembly when x is a masked loaded value.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D105344
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/include/llvm/CodeGen/SelectionDAGNodes.h |
 | llvm/test/CodeGen/X86/setcc-freeze.ll |
Commit
ce2a5fa72be3fd1d606505f98d3831706c28cfa8
by George Burgess IVllvm/utils: guarantee revert_checker's revert ordering
At the moment, the revert ordering from this tool is unspecified (though it happens to be in `git log` order, so newest reverts come first).
From the standpoint of tooling and users, this seems to be the opposite of what we want by default: tools and users will generally try to apply these reverts as cherry-picks. If two reverts in the list are close enough to each other, if the reverts get applied out of order, we'll get a merge conflict.
Rather than having `reverse`s for all tools (and mental reverses for manual users), just guarantee an oldest-first output ordering for this function.
Differential Revision: https://reviews.llvm.org/D106838
|
 | llvm/utils/revert_checker_test.py |
 | llvm/utils/revert_checker.py |
Commit
4819b751bd875f458eb0060f7c586aa9ac41965c
by mizvekov[clang] NFC: change uses of `Expr->getValueKind` into `is?Value`
Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D100733
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/CodeGen/CGExprScalar.cpp |
 | clang/lib/Sema/SemaCoroutine.cpp |
 | clang/include/clang/AST/ExprCXX.h |
 | clang/lib/CodeGen/CGDecl.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/lib/AST/ExprClassification.cpp |
 | clang/lib/Sema/SemaInit.cpp |
 | clang/lib/AST/Expr.cpp |
Commit
5ab6aedda9d959a44453b7163b59f645012dbb83
by tianshilei1992[OpenMP] Folding threadLimit and numThreads when single value in kernels
The device runtime contains several calls to `__kmpc_get_hardware_num_threads_in_block` and `__kmpc_get_hardware_num_blocks`. If the thread_limit and the num_teams are constant, these calls can be folded to the constant value.
In this patch we use the already introduced `AAFoldRuntimeCall` and the `NumTeams` and `NumThreads` kernel attributes (to be introduced in a different patch) to fold these functions. The code checks all the kernels, and if their attributes match, the functions are folded.
In the future we will explore specializing for multiple values of NumThreads and NumTeams.
Depends on D106390
Reviewed By: jdoerfert, JonChesterfield
Differential Revision: https://reviews.llvm.org/D106033
|
 | llvm/include/llvm/Frontend/OpenMP/OMPKinds.def |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold.ll |
 | openmp/libomptarget/deviceRTLs/target_interface.h |
Commit
d2f85d0910ce94cf55793d9cda09beaaa03e881e
by tianshilei1992[OpenMP][Libomptarget] Adding `print_device_info` to RTL and `omptarget`
This patch introduces a function in the device's plugin to print the device information. This patch relates to another patch that introduces a CLI tool to obtain the device information from the omplibrary directly. It is inspired by PGI's pgaccelinfo.
The modifications are as follows: 1. Introduce the optional `void __tgt_rtl_print_device_info(RTLdevID)` function into the RTL. 2. Introduce the `bool __tgt_print_device_info(devID)` function into `omptarget` interface. Returns false if the RTL is not implemented 3. Added `bool printDeviceInfo(RTLDevID)` to the `DeviceTy` 4. Implement the `__tgt_rtl_print_device_info` for CUDA. Added additional CUDA Runtime calls.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106751
|
 | openmp/libomptarget/src/device.cpp |
 | openmp/libomptarget/src/device.h |
 | openmp/libomptarget/src/rtl.h |
 | openmp/libomptarget/src/interface.cpp |
 | openmp/libomptarget/include/omptarget.h |
 | openmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.h |
 | openmp/libomptarget/plugins/cuda/src/rtl.cpp |
 | openmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.cpp |
 | openmp/libomptarget/src/rtl.cpp |
 | openmp/libomptarget/src/exports |
 | openmp/libomptarget/include/omptargetplugin.h |
 | openmp/libomptarget/plugins/exports |
Commit
323b9bf862552c126865319d84afbad16a9f4941
by i[lld] Replace LLVM_ATTRIBUTE_NORETURN with [[noreturn]]
[[noreturn]] can be used since 2016 when the minimum compiler requirement was bumped to GCC 4.8/MSVC 2015.
|
 | lld/include/lld/Common/ErrorHandler.h |
 | lld/tools/lld/lld.cpp |
Commit
f2026f5d6e4fc593ba1d5f0fb5a3393688b8e6dc
by i[mlir] Replace LLVM_ATTRIBUTE_NORETURN with C++11 [[noreturn]]
[[noreturn]] can be used since 2016 when the minimum compiler requirement was bumped to GCC 4.8/MSVC 2015.
|
 | mlir/lib/Interfaces/DataLayoutInterfaces.cpp |
Commit
3c4547692368239fca21ec294a5a406ea5a44889
by jinghamFix a thinko in the parsing of substitutions in CommandObjectRegexCommand.
The old code incorrectly calculated the start position for the search for the third (and subsequent) instance of a particular substitution pattern (e.g. %1).
I also added a few test cases for this parsing covering this failure.
|
 | lldb/test/API/commands/command/regex/echo_command.py |
 | lldb/source/Commands/CommandObjectRegexCommand.cpp |
 | lldb/test/API/commands/command/regex/TestRegexCommand.py |
Commit
fe7ca1a9fca0ccea7495224e0e837de705e69699
by clementval[mlir][openacc] Initial translation for DataOp to LLVM IR
Add basic translation of acc.data to LLVM IR with runtime calls.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D104301
|
 | mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp |
 | mlir/test/Target/LLVMIR/openacc-llvm.mlir |
 | llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp |
 | llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h |
 | llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp |
Commit
313c5239959b8f9e5cc182b982c914978f437ae1
by tianshilei1992[OpenMP][Tool] Introducing the `llvm-omp-device-info` tool
This patch introduces the `llvm-omp-device-info` tool, which uses the omptarget library and interface to query the device info from all the available devices as seen by OpenMP. This is inspired by PGI's `pgaccelinfo`
Since omptarget usually requires a description structure with executable kernels, I split the initialization of the RTLs and Devices to be able to initialize all possible devices and query each of them.
This revision relies on the patch that introduces the print device info.
A limitation is that the order in which the devices are initialized, and the corresponding device ID is not necesarily the one seen by OpenMP.
The changes are as follows: 1. Separate the RTL initialization that was performed in `RegisterLib` to its own `initRTLonce` function 2. Create an `initAllRTLs` method that initializes all available RTLs at runtime 3. Created the `llvm-deviceinfo.cpp` tool that uses `omptarget` to query each device and prints its information.
Example Output: ``` Device (0): print_device_info not implemented
Device (1): print_device_info not implemented
Device (2): print_device_info not implemented
Device (3): print_device_info not implemented
Device (4): CUDA Driver Version: 11000 CUDA Device Number: 0 Device Name: Quadro P1000 Global Memory Size: 4236312576 bytes Number of Multiprocessors: 5 Concurrent Copy and Execution: Yes Total Constant Memory: 65536 bytes Max Shared Memory per Block: 49152 bytes Registers per Block: 65536 Warp Size: 32 Threads Maximum Threads per Block: 1024 Maximum Block Dimensions: 1024, 1024, 64 Maximum Grid Dimensions: 2147483647 x 65535 x 65535 Maximum Memory Pitch: 2147483647 bytes Texture Alignment: 512 bytes Clock Rate: 1480500 kHz Execution Timeout: Yes Integrated Device: No Can Map Host Memory: Yes Compute Mode: DEFAULT Concurrent Kernels: Yes ECC Enabled: No Memory Clock Rate: 2505000 kHz Memory Bus Width: 128 bits L2 Cache Size: 1048576 bytes Max Threads Per SMP: 2048 Async Engines: Yes (2) Unified Addressing: Yes Managed Memory: Yes Concurrent Managed Memory: Yes Preemption Supported: Yes Cooperative Launch: Yes Multi-Device Boars: No Compute Capabilities: 61 ```
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D106752
|
 | openmp/libomptarget/CMakeLists.txt |
 | openmp/libomptarget/include/omptarget.h |
 | openmp/libomptarget/src/rtl.h |
 | openmp/libomptarget/tools/deviceinfo/CMakeLists.txt |
 | openmp/libomptarget/tools/CMakeLists.txt |
 | openmp/libomptarget/src/interface.cpp |
 | openmp/libomptarget/src/rtl.cpp |
 | openmp/libomptarget/src/exports |
 | openmp/libomptarget/tools/deviceinfo/llvm-omp-device-info.cpp |
 | openmp/libomptarget/plugins/cuda/src/rtl.cpp |
Commit
88e66fa60ae5bad764455b5a0337aa47233f657d
by johannes[OpenMP] Fixing missing variables when CUDA SDK not in system
This patch fixes the error reported in D106751. When there is no CUDA SDK installed in the system, the build fails due to missing `CU_DEVICE_ATTRIBUTE` variables.
Using @zsrkmyn sugested fix
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106933
|
 | openmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.h |