Commit
a7c574d0c10ff686cf06d50010d759eaa5a4747b
by tobias.gysi[MLIR][LLVM] Move the LLVM inliner interface into a separate file.
A fully fledged LLVM inliner will require a lot of logic. Since `LLVMDialect.cpp` is large enough as it is, preemptively outline the inlining logic into a separate `.cpp` file. This will also allow us to add a `DEBUG_TYPE` for debugging the inliner.
The name `LLVMInlining` was chosen over `LLVMInlinerInterface` to keep the option open for exposing inlining functionality even when not invoked through the `DialectInlinerInterface`.
Depends on D146616
Reviewed By: gysit
Differential Revision: https://reviews.llvm.org/D146628
|
 | mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.cpp |
 | mlir/lib/Dialect/LLVMIR/CMakeLists.txt |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.h |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
Commit
8482b238062ed7263facea9490f67119e00a037a
by a.v.lapshin[ADT] add ConcurrentHashtable class.
ConcurrentHashTable - is a resizeable concurrent hashtable. The range of resizings is limited up to x2^32. The hashtable allows only concurrent insertions.
Concurrent hashtable is necessary for the D96035 patch.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D132455
|
 | llvm/unittests/ADT/ConcurrentHashtableTest.cpp |
 | llvm/unittests/ADT/CMakeLists.txt |
 | llvm/include/llvm/ADT/ConcurrentHashtable.h |
Commit
320969f5058bfffd6517c36771b46ac4a447c7ee
by llvm-dev[X86] LowerVectorAllZero - add 512-bit support with AVX512 vptestnmd+kortestw patterns (REAPPLIED)
Another step toward #53419 - this is also another step towards expanding MatchVectorAllZeroTest to match any pair of vectors and merge EmitAVX512Test into it.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/ptest.ll |
 | llvm/test/CodeGen/X86/vector-reduce-or-cmp.ll |
Commit
8c7c1f11ffaacf762e612c65440fd2cbb58ee426
by benny.kraSilence unused variable warning in NDEBUG builds
I usually would fold this into the assert, but the comment there suggests side effects. NFC.
ModuleMap.cpp:938:9: error: unused variable 'MainFile' [-Werror,-Wunused-variable] auto *MainFile = SourceMgr.getFileEntryForID(SourceMgr.getMainFileID());
|
 | clang/lib/Lex/ModuleMap.cpp |
Commit
fd4aeba307ca30da00a8db21a200cc9afcef63c6
by a.v.lapshinRevert "[ADT] add ConcurrentHashtable class."
This reverts commit 8482b238062ed7263facea9490f67119e00a037a.
|
 | llvm/unittests/ADT/ConcurrentHashtableTest.cpp |
 | llvm/include/llvm/ADT/ConcurrentHashtable.h |
 | llvm/unittests/ADT/CMakeLists.txt |
Commit
4f9929add5369490c9607fc9203761483d2bc916
by qwu[AIX][CodeGen] Storage Locations for Constant Pointers
This patch adds an `llc` option `-mroptr` to specify storage locations for constant pointers on AIX.
When the `-mroptr` option is specified, constant pointers, virtual function tables, and virtual type tables are placed in read-only storage. Otherwise, by default, pointers, virtual function tables, and virtual type tables are placed are placed in read/write storage.
https://reviews.llvm.org/D144190 enables the `-mroptr` option for `clang`.
Reviewed By: hubert.reinterpretcast, stephenpeckham, myhsu, MaskRay, serge-sans-paille
Differential Revision: https://reviews.llvm.org/D144189
|
 | llvm/tools/llc/llc.cpp |
 | llvm/include/llvm/Target/TargetOptions.h |
 | llvm/include/llvm/CodeGen/CommandFlags.h |
 | llvm/lib/CodeGen/CommandFlags.cpp |
 | llvm/test/CodeGen/PowerPC/aix64-xcoff-roptr.ll |
 | llvm/docs/ReleaseNotes.rst |
 | llvm/test/CodeGen/PowerPC/aix-xcoff-roptr.ll |
 | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp |
Commit
5193c4a8b38c3e61c862d5badf1cace7c26324f7
by david.spickett[lldb][AArch64] Fix run-qemu.sh when only MTE is enabled.
SVE and MTE both require a CPU with that feature before you can use the other options, but we only added the "max" cpu when SVE was enabled too.
|
 | lldb/scripts/lldb-test-qemu/run-qemu.sh |
Commit
3ab79124db5e4e1be0b58c4fe43ff01e6fdb3060
by yeluo[OpenMP] Add notifyDataUnmapped back in disassociatePtr
Fix regression introduced by https://reviews.llvm.org/D123446
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D146689
|
 | openmp/libomptarget/src/device.cpp |
Commit
0eabf59528f3c3f64923900cae740d9f26c45ae8
by doru.berceaEnable constexpr class members that are device-mapped to not be optimized out.
This patch fixes an issue whereby a constexpr class member which is mapped to the device is being optimized out thus leading to a runtime error.
Patch: https://reviews.llvm.org/D146552
|
 | openmp/libomptarget/test/offloading/target_constexpr_mapping.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | clang/test/OpenMP/declare_target_constexpr_codegen.cpp |
Commit
c7a3284de3059ecb5940dac19dda897ade0d11b4
by kk.asano.luxy[AggressiveInstCombine] Pre-Commit test for D144445 (NFC)
Differential Revision: https://reviews.llvm.org/D145355
tweak: test
|
 | llvm/test/Transforms/InstSimplify/load.ll |
 | llvm/test/Transforms/AggressiveInstCombine/patterned-load.ll |
 | llvm/test/Transforms/InstSimplify/load-patterned-aggregates.ll |
Commit
434b0badb5d53138490a075dd945df7480649154
by kk.asano.luxy[AggressiveInstCombine] folding load for constant global patterened arrays and structs by alignment Differential Revision: https://reviews.llvm.org/D144445 Reviewed By: nikic
fix: wrong arrow
|
 | llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp |
 | llvm/test/Transforms/AggressiveInstCombine/patterned-load.ll |
Commit
5bcb4c4da99c443fb880d408e5ff4e9b305bbb77
by listmail[MSAN] Support load and stores of scalable vector types
This adds support for scalable vector types - at least far enough to get basic load and store cases working. It turns out that load/store without origin tracking already worked; I apparently got that working with one of the pre patches to use TypeSize utilities and didn't notice. The code changes here are required to enable origin tracking.
For origin tracking, a 4 byte value - the origin - is broadcast into a shadow region whose size exactly matches the type being accessed. This origin is only written if the shadow value is non-zero. The details of how shadow is computed from the original value being stored aren't relevant for this patch.
The code changes involve two related primitives.
First, we need to be able to perform that broadcast into a scalable sized memory region. This requires the use of a loop, and appropriate bound. The fixed size case optimizes with larger stores and alignment; I did not bother with that for the scalable case for now. We can optimize this codepath later if desired.
Second, we need a way to test if the shadow is zero. The mechanism for this in the code is to convert the shadow value into a scalar, and then zero check that. There's an assumption that this scalar is zero exactly when all elements of the shadow value are zero. As a result, we use an OR reduction on the scalable vector. This is analogous to how e.g. an array is handled. I landed a bunch of cleanup changes to remove other direct uses of the scalar conversion to convince myself there were no other undocumented invariants.
Differential Revision: https://reviews.llvm.org/D146157
|
 | llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp |
 | llvm/test/Instrumentation/MemorySanitizer/vector-load-store.ll |
Commit
82c83d7e41053b72fc0dc84de9b8bee71986ffc3
by corentinjabot[Clang] Fix evaluation of parameters of lambda call operator attributes
Fix a regresion introduced by D124351. Attributes of lambda call operator were evaluated in the context of the closure object type rather than its operator, causing an assertion failure.
This was because we temporarily switch to the class lambda to produce the mangling of the lambda, but we stayed in that context too long.
Reviewed By: eandrews, aaron.ballman
Differential Revision: https://reviews.llvm.org/D146535
|
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/test/SemaCXX/lambda-expressions.cpp |
Commit
61944469625d4b3ba4a87f4f8fffefb73e9f8cdc
by archibald.elliott[AArch64] Add Missing Custom Target Operands
I noticed, when examining the generated Asm Matcher table, that some of these custom immediate operands are missing, and so we are not parsing some hint aliases into the correct MCInst.
Where this becomes apparent is when you parse e.g. `hint #7` into an MCInst - without these cases, it becomes the MCInst `(HINT 17)`, which will always be printed as `hint #17`. With these cases, it becomes the MCInst `XPACLRI`, which will be printed as `xpaclri` with pauth, or `hint #17` without, matching how `xpaclri` is parsed.
We only handle some specific hint aliases in this manner, usually where these hints have specific effects that need to be modelled for accurate code-generation. Otherwise, we just use the normal `InstAlias` system to have the aliases parsed into a `(HINT N)` MCInst.
Differential Revision: https://reviews.llvm.org/D146630
|
 | llvm/test/MC/AArch64/armv8.3a-signed-pointer.s |
 | llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp |
Commit
f570bd8f6322fab18df5099786683a813f9e7a08
by kstoimenov[HWASAN] Disable unexpected_format_specifier_test because HWASAN doesn't provide a printf interceptor
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D146647
|
 | compiler-rt/test/sanitizer_common/TestCases/Linux/unexpected_format_specifier_test.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Linux/mprobe.cpp |
Commit
5eb9acf9be3cee01ea95448fa8b1e00e3c01868a
by listmail[HWASAN] Instrument scalable load/store without crashing
We can simply push them down the existing call slowpath with some minor changes to how we compute the size argument.
|
 | llvm/test/Instrumentation/HWAddressSanitizer/vector-load-store.ll |
 | llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp |
Commit
85faee69928b1eeb74a0d74f374a1c74ddf236dd
by jan_sjodin[OpenMP][OMPIRBuilder] Make OffloadEntriesInfoManager a member of OpenMPIRBuilder
This patch adds the OffloadEntriesInfoManager to the OpenMPIRBuilder, and allows the OffloadEntriesInfoManager to access the Configuration in the OpenMPIRBuilder. With the shared Config there is no risk for inconsistencies, and there is no longer the need for clang to have a separate OffloadEntriesInfoManager.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D146549
|
 | clang/lib/CodeGen/CGOpenMPRuntime.h |
 | clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp |
 | llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp |
 | llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h |
Commit
c640a146c4caa3cca559e308e2e7ecc78c45140d
by Felipe de Azevedo Piovezan[lldb] Explicitly set libcxx paths when USE_SYSTEM_STDLIB is provided
For tests marked as "USE_SYSTEM_STDLIB", the expectation is that the system's standard library should be used. However, the implementation of this flag is such that we simply don't pass _any_ libcxxx-related flags to Clang; in turn, Clang will use its defaults.
For a Clang/Libcxx pair compiled together, Clang defaults to: 1. The headers of the sibling libcxx. 2. The libraries of the system.
This mismatch is actually a bug in the driver; once fixed, however, (2) would point to the sibling libcxx as well, which is _not_ what test authors intended with the USE_SYSTEM_STDLIB flag.
As such, this patch explicitly sets a path to the system's libraries. This change is done only in Apple platforms so that we can test this works in this case first.
Differential Revision: https://reviews.llvm.org/D146714
|
 | lldb/packages/Python/lldbsuite/test/make/Makefile.rules |
Commit
2cfd06ba672f4e3097b6c2c576bdb876d37c71d1
by listmail[BoundsChecking] Don't crash on scalable vector sizes
|
 | llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp |
 | llvm/test/Instrumentation/BoundsChecking/simple.ll |
Commit
16b6826bdd6e5cc02844c10bd1f9af388a6ffed8
by npopov[MergeFuncs] Add tests for D144682 (NFC)
I forgot to git add this test when committing the change.
|
 | llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll |
Commit
ec294d2f8f1839e11c13ee32279cd28c1f46f66f
by llvm-dev[X86] LowerVectorAllZero - lower to CMP(MOVMSK(NOT(X)),0) instead of CMP(MOVMSK(X),65535)
In most cases the NOT will still be scalarized, but it allows us to perform the CMP(X,0) combines inside combineCMP()
|
 | llvm/test/CodeGen/X86/vector-reduce-or-cmp.ll |
 | llvm/test/CodeGen/X86/ptest.ll |
 | llvm/test/CodeGen/X86/pr45378.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
dc2f2d2180f1d1a1835dc55478d3bcceea41a4b1
by tejohnson[MemProf] Use stable_sort to avoid non-determinism
Switch from std::sort to std::stable_sort when sorting callsites to avoid non-determinism when the comparisons are equal. This showed up in internal testing of fe27495be2040007c7b20844a9371b06156ab405.
|
 | llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp |
Commit
2bececb8bed1f8fcd8d54dba831ceb117717bfcc
by bakalova[clangd] Add provider info on symbol hover.
Differential Revision: https://reviews.llvm.org/D144976
|
 | clang-tools-extra/clangd/Hover.cpp |
 | clang-tools-extra/clangd/Hover.h |
 | clang-tools-extra/include-cleaner/lib/AnalysisInternal.h |
 | clang-tools-extra/clangd/IncludeCleaner.h |
 | clang-tools-extra/clangd/unittests/HoverTests.cpp |
 | clang-tools-extra/clangd/IncludeCleaner.cpp |
 | clang-tools-extra/clangd/Preamble.cpp |
 | clang-tools-extra/include-cleaner/include/clang-include-cleaner/Analysis.h |
Commit
9c8bdbcbc502fac7d7d8da5c848cec448daf26ae
by jhuber6[libc] Implement memory fences on NVPTX
Memory fences are not handled by the NVPTX backend. We need to replace them with a memory barrier intrinsic function. This doesn't include the ordering, but should perform the necessary functionality, albeit slower.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D146725
|
 | libc/src/__support/CPP/atomic.h |
Commit
5525087e4c7bdedea3935fd08ee99ac3ba53a5b2
by archibald.elliott[NFC][AArch64] Sort Hints in armv8.3a-signed-pointer.s test
|
 | llvm/test/MC/AArch64/armv8.3a-signed-pointer.s |
Commit
e33f8ac9d8b3bd8b376d2306c3988381309b68eb
by jhuber6[libc] Fix inline assembly for nvptx quick_exit
Summary: The `exit` function in NVPTX has no intrinsic, but the assembly requires a semicolon in the ptx, otherwise it will fail.
|
 | libc/src/__support/OSUtil/gpu/quick_exit.cpp |
Commit
2f5fdbfab8c63047bd4ebef154258868065168b3
by npopov[MergeFunc] Don't assume constant metadata operands
We should not call mdconst::extract, unless we know that the metadata in question is ConstantAsMetadata.
For now we consider all other metadata as equal. The noalias test shows that this is not correct, but at least it doesn't crash anymore.
|
 | llvm/lib/Transforms/Utils/FunctionComparator.cpp |
 | llvm/include/llvm/Transforms/Utils/FunctionComparator.h |
 | llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll |
Commit
4c5dee7773dcc5ec1b7485dfba5ce5baa2355b2f
by rkauffmann[flang] Lowering fir.dispatch in the polymorphic op pass Differential revision: https://reviews.llvm.org/D146594
|
 | flang/test/Fir/dispatch.f90 |
 | flang/lib/Semantics/runtime-type-info.cpp |
 | flang/lib/Optimizer/CodeGen/CodeGen.cpp |
 | flang/include/flang/Semantics/runtime-type-info.h |
 | flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp |
 | flang/test/Lower/allocatable-polymorphic.f90 |
Commit
7739be7c6b6d017bf6b4445c5010e59314655995
by jeffrey.byrnes[ArgPromotion] Remove dead code produced by removing dead arguments
ArgPromotion currently produces phantom / dead loads. A good example of this is store-into-inself.ll. First, ArgPromo finds the promotable argument %p in @l. Then it inserts a load of %p in the caller, and passes instead the loaded value / transforms the function body. PromoteMem2Reg is able to optimize out the entire function body, resulting in an unused argument. In a subsequent ArgPromotion pass, it removes the dead argument, resulting in a dead load in the caller. These dead loads may reduce effectiveness of other transformations (e.g. SimplifyCFG, MergedLoadStoreMotion).
This patch removes loads and geps that are made dead in the caller after removal of dead args.
Differential Revision: https://reviews.llvm.org/D146327
|
 | llvm/test/Transforms/PhaseOrdering/dce-after-argument-promotion-loads.ll |
 | llvm/lib/Transforms/IPO/ArgumentPromotion.cpp |
 | llvm/test/Transforms/ArgumentPromotion/propagate-remove-dead-args.ll |
 | llvm/test/Transforms/ArgumentPromotion/store-into-inself.ll |
Commit
de939c6cd80c1e88913f1ef12be11aea501eb89b
by michaelrj[libc] enable printf using system FILE
The printf and fprintf implementations use our internal implementation to improve performance when it's available, but this patch enables using the public FILE API for overlay mode.
Reviewed By: sivachandra, lntue
Differential Revision: https://reviews.llvm.org/D146001
|
 | libc/test/src/stdio/CMakeLists.txt |
 | libc/src/stdio/printf_core/vfprintf_internal.cpp |
 | libc/src/stdio/printf.cpp |
 | libc/src/stdio/printf_core/file_writer.h |
 | libc/src/stdio/printf_core/vfprintf_internal.h |
 | libc/src/stdio/fprintf.cpp |
 | libc/src/stdio/printf_core/CMakeLists.txt |
 | libc/config/linux/x86_64/entrypoints.txt |
 | libc/src/stdio/CMakeLists.txt |
 | libc/test/src/stdio/fprintf_test.cpp |
 | libc/src/stdio/printf_core/file_writer.cpp |
Commit
7d11a592c5adc286bf1845c20b20965d5e999039
by abrachet[libc] Fix some math conversion warnings
Differential Revision: https://reviews.llvm.org/D146738
|
 | libc/src/math/generic/log1pf.cpp |
 | libc/src/math/generic/acoshf.cpp |
 | libc/src/math/generic/tanhf.cpp |
 | libc/src/math/generic/exp10f.cpp |
 | libc/src/__support/FPUtil/NearestIntegerOperations.h |
 | libc/src/math/generic/exp2f.cpp |
 | libc/src/math/generic/asinf.cpp |
 | libc/src/math/generic/sinhf.cpp |
 | libc/src/math/generic/sincosf.cpp |
 | libc/src/math/generic/coshf.cpp |
 | libc/src/math/generic/cosf.cpp |
 | libc/src/math/generic/log10.cpp |
 | libc/src/math/generic/tanf.cpp |
 | libc/src/math/generic/acosf.cpp |
 | libc/src/math/generic/atanhf.cpp |
 | libc/src/math/generic/sinf.cpp |
 | libc/src/__support/FPUtil/ManipulationFunctions.h |
 | libc/src/math/generic/atanf.cpp |
 | libc/src/math/generic/asinhf.cpp |
Commit
5f883cdbfbe216ec184194114676075f3633e08b
by i[docs] Document -fomit-frame-pointer
Close #61322
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D146603
|
 | clang/include/clang/Driver/Options.td |