Commit
f707e1255e2f0a46c7a23271f594a9a4e5ec8f08
by jay.foad[AMDGPU] Select d16 stores even when sramecc is enabled
The sramecc feature changes the behaviour of d16 loads so they do not preserve the unused 16 bits of the result register, but it has no impact on d16 stores, so we should make use of them even when the feature is enabled.
Differential Revision: https://reviews.llvm.org/D104912
|
 | llvm/lib/Target/AMDGPU/BUFInstructions.td |
 | llvm/lib/Target/AMDGPU/DSInstructions.td |
 | llvm/test/CodeGen/AMDGPU/store-hi16.ll |
 | llvm/lib/Target/AMDGPU/FLATInstructions.td |
Commit
454d1df9423c95e54c3a2f5cb58d864096032d09
by roi.jacobson1[Concepts] Fix overload resolution bug with constrained candidates
When doing overload resolution, we have to check that candidates' parameter types are equal before trying to find a better candidate through checking which candidate is more constrained. This revision adds this missing check and makes us diagnose those cases as ambiguous calls when the types are not equal.
Fixes GitHub issue https://github.com/llvm/llvm-project/issues/53640
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D123182
|
 | clang/docs/ReleaseNotes.rst |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/SemaTemplateDeduction.cpp |
 | clang/lib/Sema/SemaOverload.cpp |
 | clang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p6.cpp |
Commit
2ba865903daed7b4dff0d4afb2410614325a19fe
by marius.brehler[mlir][emitc] Add test for invalid type
Reviewed By: jpienaar
Differential Revision: https://reviews.llvm.org/D123503
|
 | mlir/lib/Dialect/EmitC/IR/EmitC.cpp |
 | mlir/test/Dialect/EmitC/invalid_types.mlir |
Commit
f3ee0afc6739bf2990f9d302ff6b28dbb0429e8d
by sven.vanhaastregt[OpenCL] opencl-c.h: Add const to get_image_num_samples
Align with the `-fdeclare-opencl-builtins` option and other get_image_* builtins which have the const attribute.
Differential Revision: https://reviews.llvm.org/D122728
|
 | clang/lib/Headers/opencl-c.h |
Commit
68e73eaee632b29d36e8b24f62e77ef26084885d
by david.spickett[lldb] Handle empty search string in "memory find"
Given that you'd never find empty string, just error.
Also add a test that an invalid expr generates an error.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D123793
|
 | lldb/test/API/functionalities/memory/find/TestMemoryFind.py |
 | lldb/source/Commands/CommandObjectMemory.cpp |
Commit
b7c988811d50f0f068a375292fb5f2b6df384400
by balazs.benics[analyzer][NFC] Introduce the checker package separator character
Reviewed By: martong, ASDenysPetrov
Differential Revision: https://reviews.llvm.org/D122243
|
 | clang/utils/TableGen/ClangSACheckersEmitter.cpp |
Commit
63c4ca9d14bad909f92ef019ec85f7a1c42311f2
by balazs.benics[analyzer] Turn missing tablegen doc entry of a checker into fatal error
It turns out all checkers explicitly mention the `Documentation<>`. It makes sense to demand this, so emit a fatal tablegen error if such happens.
Reviewed By: martong, Szelethus
Differential Revision: https://reviews.llvm.org/D122244
|
 | clang/utils/TableGen/ClangSACheckersEmitter.cpp |
Commit
744e2a3e2232db87cb68b201739956ca205dc946
by balazs.benics[analyzer] ClangSA should tablegen doc urls refering to the main doc page
AFAIK we should prefer https://clang.llvm.org/docs/analyzer/checkers.html to https://clang-analyzer.llvm.org/{available_checks,alpha_checks}.html
This patch will ensure that the doc urls produced by tablegen for the ClangSA, will use the new url. Nothing else will be changed.
Reviewed By: martong, Szelethus, ASDenysPetrov
Differential Revision: https://reviews.llvm.org/D121387
|
 | clang/utils/TableGen/ClangSACheckersEmitter.cpp |
 | clang/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif |
Commit
798418982630b5e3acdfc7ba398993aef2071f32
by balazs.benics[analyzer] Remove HasAlphaDocumentation tablegen enum value
D121387 simplified the doc url generation process, so we no longer need the HasAlphaDocumentation enum entry. This patch removes that.
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D121459
|
 | clang/include/clang/StaticAnalyzer/Checkers/Checkers.td |
 | clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td |
Commit
e01dbabdd18d5e3af5134818dab8c67341cd25d5
by d-pre[AMDGPU][MC] Corrected error message "image data size does not match dmask and tfe"
Differential Revision: https://reviews.llvm.org/D123929
|
 | llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp |
 | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp |
 | llvm/test/MC/AMDGPU/gfx10_err_pos.s |
 | llvm/test/MC/AMDGPU/gfx10_asm_mimg_err.s |
 | llvm/test/MC/AMDGPU/mimg.s |
Commit
8daffd1dfb55c706d8661c65ed05380bcc68ce4b
by malhar.jajooFix SLP score for out of order contiguous loads
SLP uses the distance between pointers to optimize the getShallowScore. However the current code misses the case where we are trying to vectorize for VF=4, and the distance between pointers is 2. In that case the returned score reflects the case of contiguous loads, when it's not actually contiguous.
The attached unit tests have 5 loads, where the program order is not the same as the offset order in the GEPs. So, the choice of which 4 loads to bundle together matters. If we pick the first 4, then we can vectorize with VF=4. If we pick the last 4, then we can only vectorize with VF=2.
This patch makes a more conservative choice, to consider all distances>1 to not be a case of contiguous load, and give those cases a lower score.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D123516
|
 | llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll |
Commit
50af82701c169e3ca2cf31a89fe7927e0ecb9b35
by david.green[AArch64] Cost all perfect shuffles entries as cost 1
A brief introduction to perfect shuffles - AArch64 NEON has a number of shuffle operations - dups, zips, exts, movs etc that can in some way shuffle around the lanes of a vector. Given a shuffle of size 4 with 2 inputs, some shuffle masks can be easily codegen'd to a single instruction. A <0,0,1,1> mask for example is a zip LHS, LHS. This is great, but some masks are not so simple, like a <0,0,1,2>. It turns out we can generate that from zip LHS, <0,2,0,2>, having generated <0,2,0,2> from uzp LHS, LHS, producing the result in 2 instructions.
It is not obvious from a given mask how to get there though. So we have a simple program (PerfectShuffle.cpp in the util folder) that can scan through all combinations of 4-element vectors and generate the perfect combination of results needed for each shuffle mask (for some definition of perfect). This is run offline to generate a table that is queried for generating shuffle instructions. (Because the table could get quite big, it is limited to 4 element vectors).
In the perfect shuffle tables zip, unz and trn shuffles were being cost as 2, which is higher than needed and skews the perfect shuffle tables to create inefficient combinations. This sets them to 1 and regenerates the tables. The codegen will usually be better and the costs should be more precise (but it can get less second-order re-use of values from multiple shuffles, these cases should be fixed up in subsequent patches.
Differential Revision: https://reviews.llvm.org/D123379
|
 | llvm/test/CodeGen/AArch64/neon-wide-splat.ll |
 | llvm/test/CodeGen/AArch64/arm64-dup.ll |
 | llvm/test/CodeGen/AArch64/arm64-rev.ll |
 | llvm/test/CodeGen/AArch64/sinksplat.ll |
 | llvm/lib/Target/AArch64/AArch64PerfectShuffle.h |
 | llvm/test/CodeGen/AArch64/aarch64-wide-shuffle.ll |
 | llvm/test/CodeGen/AArch64/build-vector-extract.ll |
 | llvm/test/CodeGen/AArch64/insert-extend.ll |
 | llvm/test/CodeGen/AArch64/shuffle-tbl34.ll |
 | llvm/utils/PerfectShuffle/PerfectShuffle.cpp |
 | llvm/test/CodeGen/AArch64/shuffles.ll |
Commit
a65f2730d291e83f4fa39d3cb104b36c86f36e73
by flo[VPlan] Expand induction step in VPlan pre-header.
This patch moves SCEV expansion of steps used by VPWidenIntOrFpInductionRecipes to the pre-header using VPExpandSCEVRecipe. This ensures that those steps are expanded while the CFG is in a valid state. Previously, SCEV expansion may happen during vector body code-generation, during which the CFG may be invalid, causing issues with SCEV expansion.
Depends on D122095.
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/D122096
|
 | llvm/test/Transforms/LoopVectorize/vplan-printing.ll |
 | llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll |
 | llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h |
 | llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll |
 | llvm/test/Transforms/LoopVectorize/icmp-uniforms.ll |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Transforms/Vectorize/VPlan.cpp |
 | llvm/lib/Transforms/Vectorize/VPlanTransforms.h |
 | llvm/lib/Transforms/Vectorize/VPlan.h |
 | llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp |
Commit
76410040b9f391185c7df48c14519860e1cf75e5
by roi.jacobson1Revert "[Concepts] Fix overload resolution bug with constrained candidates"
This reverts commit 454d1df9423c95e54c3a2f5cb58d864096032d09.
|
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/SemaOverload.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/lib/Sema/SemaTemplateDeduction.cpp |
 | clang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p6.cpp |
Commit
cc9495f6791aaaacbff55d7eace43550eb27e3c9
by david.green[AArch64] Only mark cost 1 perfect shuffles as legal
The perfect shuffle tables encode a cost of either 0 (a nop-copy) or 1 (a single instruction) with a cost encoding of 0 in the upper 2 bits. All perfect shuffles with any cost are then marked as legal shuffles though (the maximum encoded cost is 3), which can confuse the DAG combiner into thinking the shuffles are cheaper than the should be.
Limiting legal shuffles to single instructions seems to do better in most case, producing less instructions for complex shuffles. There are some cases that now become tbl, which may be better or worse depending on whether the instruction is in a loop and the tbl load can be hoisted out.
Differential Revision: https://reviews.llvm.org/D123377
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/build-vector-extract.ll |
 | llvm/test/CodeGen/AArch64/neon-reverseshuffle.ll |
 | llvm/test/CodeGen/AArch64/neon-widen-shuffle.ll |
 | llvm/test/CodeGen/AArch64/shuffles.ll |
 | llvm/test/CodeGen/AArch64/aarch64-wide-shuffle.ll |
Commit
12f55cac69d8978d1c433756a8b2114bf9ed1e1b
by uday[MLIR][GPU] Add canonicalizer for gpu.memcpy
Fold away gpu.memcpy op when only uses of dest are the memcpy op in question, its allocation and deallocation ops.
Reviewed By: bondhugula
Differential Revision: https://reviews.llvm.org/D121279
|
 | mlir/test/Dialect/GPU/canonicalize.mlir |
 | mlir/lib/Dialect/GPU/IR/GPUDialect.cpp |
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
Commit
944b25aee393ceb31d847fb4d3b98695852eecc9
by jhuber6[OpenMP] Make Xopenmp-target args compile-only to silence warnings
Summary: Previously we needed the `Xopenmp-target=` option during the linking phase so the old offloading driver knew which items to extract and link for the device. Now that the new driver has become the default this is no longer necessary and will cause a warning to be emitted for the unused argument. This should be silenced to avoid noise.
|
 | clang/include/clang/Driver/Options.td |
Commit
0f8b8d79af8bf97a414986cdebfa728ce5018f80
by jhuber6[OpenMP][Docs] Remove old 14.0 release information
Summary: This patch removes the OpenMP sections in the release notes. These will be filled once the release is close and implementations are finalized.
|
 | clang/docs/ReleaseNotes.rst |
Commit
bdf0b757d5938a9f774d17e81be226da3229d3e5
by kbobyrev[clangd] IncludeCleaner: Add filtering mechanism
This introduces filtering out inclusions based on the resolved path. This mechanism will be important for disabling warnings for headers that we can not diagnose correctly yet.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D123488
|
 | clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp |
 | clang-tools-extra/clangd/ConfigFragment.h |
 | clang-tools-extra/clangd/Config.h |
 | clang-tools-extra/clangd/IncludeCleaner.cpp |
 | clang-tools-extra/clangd/ConfigCompile.cpp |
 | clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp |
Commit
883571928c3416bb46e0cb63344915fccd9e6192
by a.bataevRevert "[SLP]Improve reductions analysis and emission, part 1."
This reverts commit 0e1f4d4d3cb08ff84df5adc4f5e41d0a2cebc53d to fix a crash reported in PR54976
|
 | llvm/test/Transforms/SLPVectorizer/X86/blending-shuffle.ll |
 | llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/PR35628_1.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll |
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/blending-shuffle-inseltpoison.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/reduction_loads.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll |
 | llvm/test/Transforms/SLPVectorizer/slp-umax-rdx-matcher-crash.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/reduction_unrolled.ll |
 | llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/PR35628_2.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/revectorized_rdx_crash.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll |
Commit
7adfa31bc65e44ce65ee47ebe27e61695b34805a
by a.bataev[SLP][NFC]Add a test for reducing same values, NFC.
|
 | llvm/test/Transforms/SLPVectorizer/X86/reduction-same-vals.ll |
Commit
73dc996428aeed7e5005b4bc80a112f7d5c45a9b
by david.green[AArch64] Add lane moves to PerfectShuffle tables
This teaches the perfect shuffle tables about lane inserts, that can help reduce the cost of many entries. Many of the shuffle masks are one-away from being correct, and a simple lane move can be a lot simpler than trying to use ext/zip/etc. Because they are not exactly like the other masks handled in the perfect shuffle tables, they require special casing to generate them, with a special InsOp Operator.
The lane to insert into is encoded as the RHSID, and the move from is grabbed from the original mask. This helps reduce the maximum perfect shuffle entry cost to 3, with many more shuffles being generatable in a single instruction.
Differential Revision: https://reviews.llvm.org/D123386
|
 | llvm/lib/Target/AArch64/AArch64PerfectShuffle.h |
 | llvm/test/CodeGen/AArch64/shuffle-tbl34.ll |
 | llvm/test/CodeGen/AArch64/shuffles.ll |
 | llvm/test/CodeGen/AArch64/neon-wide-splat.ll |
 | llvm/test/CodeGen/AArch64/arm64-rev.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/utils/PerfectShuffle/PerfectShuffle.cpp |
 | llvm/test/CodeGen/AArch64/insert-extend.ll |
 | llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll |
 | llvm/test/CodeGen/AArch64/arm64-dup.ll |
Commit
218b5c83940d469424564ba6f1ec488c4970a5e5
by david.spickett[clang][AArch64] Remove BTI after setjmp from release notes
This is now going into 14.0.2 as 571c7d8f6dae1a8797ae3271c0c09fc648b1940b so will not be new in clang-15.
|
 | clang/docs/ReleaseNotes.rst |
Commit
2512a875ccac158bc9b654b09e3347db167e33df
by daltenty[clang] Adding Platform/Architecture Specific Resource Header Installation Targets
The goal of this patch is to improve distribution build's flexibility to include only applicable header files.
Currently, the clang-resource-headers target contains nearly all the files in clang/lib/Headers. Most of these files are platform specific (e.g. immintrin.h is x86 specific). A distribution build will have to either include all the headers for all the platforms, or not include any headers. For example, if a distribution build for powerpc includes the clang-resource-headers target, it will include all the x86 specific headers, even-though the x86 specific headers cannot be used.
This patch breaks up the clang-resource-headers list to a core list and platform specific lists. With the patch, a distribution build can now include the ppc-resource-headers to include the headers applicable to the powerpc platform.
Specifically, one can now have
cmake ... LLVM_DISTRIBUTION_COMPONENTS="clang;ppc-resource-headers" ... ../llvm ninja install-distribution then installs the powerpc headers.
Similarly, one can do
cmake ... LLVM_DISTRIBUTION_COMPONENTS="clang;x86-resource-headers" ... ../llvm to include headers applicable to the x86 platform in a distribution installation.
To implement this behaviour, the patch does two things: * It breaks up the long files header file list to a core list and platform specific lists. * It adds numerous platform specific installation targets.
Differential Revision: https://reviews.llvm.org/D123498
|
 | clang/lib/Headers/CMakeLists.txt |
Commit
42865819b22486963294434fb21b51ab3e6ebfa4
by gbreynoo[llvm-ar][test] Rename two tests and use correct thin command
Two tests used the term "full archive" rather than "regular", these have been updated including the test names. They now also use --thin rather than the deprecated T. This change was made in preparation of D123142.
Differential Revision: https://reviews.llvm.org/D123778
|
 | llvm/test/tools/llvm-ar/regular-to-thin-archive.test |
 | llvm/test/tools/llvm-ar/flatten-thin-archive.test |
 | llvm/test/tools/llvm-ar/full-to-thin-archive.test |
 | llvm/test/tools/llvm-ar/thin-to-full-archive.test |
 | llvm/test/tools/llvm-ar/thin-to-regular-archive.test |
Commit
82f3ed99045de9a2f06981621a485c5a47546270
by balazs.benics[analyzer] Expose Taint.h to plugins
Reviewed By: NoQ, xazax.hun, steakhal
Differential Revision: https://reviews.llvm.org/D123155
|
 | clang/docs/tools/clang-formatted-files.txt |
 | clang/lib/StaticAnalyzer/Checkers/Taint.cpp |
 | clang/lib/StaticAnalyzer/Checkers/Taint.h |
 | clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp |
 | clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp |
 | clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp |
 | clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp |
 | clang/include/clang/StaticAnalyzer/Checkers/Taint.h |
 | clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp |
 | clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp |
Commit
4aa5dc15f0869f8a5fb6fe760c517d2d5d4c710e
by paulsson[SystemZ] Handle SystemZ specific inline assembly address operands.
Handle ZQ, ZR, ZS and ZT inline assembly operand constraints.
Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D110267
|
 | clang/lib/Basic/Targets/SystemZ.cpp |
 | llvm/lib/Target/SystemZ/SystemZISelLowering.h |
 | clang/lib/Basic/Targets/SystemZ.h |
 | llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp |
 | llvm/test/CodeGen/SystemZ/inline-asm-addr.ll |
 | llvm/include/llvm/IR/InlineAsm.h |
 | clang/test/CodeGen/SystemZ/systemz-inline-asm-03.c |
 | llvm/lib/Target/SystemZ/SystemZISelLowering.cpp |
Commit
64c929ec0937ba7f66368a645835dacd7be29a99
by kstoimenov[ASan] Fixed a reporting bug in (load|store)N functions which would print unknown-crash instead of the proper error message when a the data access is unaligned.
Reviewed By: kda, eugenis
Differential Revision: https://reviews.llvm.org/D123643
|
 | compiler-rt/lib/asan/asan_rtl.cpp |
 | compiler-rt/test/asan/TestCases/load_and_store_n.cpp |
Commit
ee6bd28f233f330b34d0a83453eeaf56b0cc87ee
by npopov[PPCGCodeGeneration] Avoid pointer element type access
Pass through the ArrayTy instead.
|
 | polly/lib/CodeGen/PPCGCodeGeneration.cpp |
Commit
4026b718b8d37f1ec8b71e1175541104de8bdacc
by flo[VPlan] Remove unused SCEV forward declaration (NFC).
|
 | llvm/lib/Transforms/Vectorize/VPlanTransforms.h |
Commit
cc03414125d234da80e9b445909568b065c7f2a6
by david.green[PerfectShuffle] Remove unused variables from D123386. NFC
|
 | llvm/utils/PerfectShuffle/PerfectShuffle.cpp |
Commit
880014b59343c8e8e5dc55f6324ce08fd37bd43c
by npopov[PPCGCodeGeneration] Avoid another pointer element type access
Use an API that returns both the address and the element type, and use that for the load type.
|
 | polly/lib/CodeGen/PPCGCodeGeneration.cpp |
Commit
dbe6d85b8b245bd913e6f38425dc5e37cd610bfa
by npopov[PPCGCodeGeneration] Look for function instead of function pointer type
What this code is actually interested in are references to functions. Use of a function pointer type is being used as an imprecise proxy for that.
|
 | polly/lib/CodeGen/PPCGCodeGeneration.cpp |
Commit
084ad1ebeee2af9f7a9b464a346a7ca51d6f83dc
by d.makogon[Test] Add more tests showing duplicate PHIs generated by RS4GC (NFC)
This adds more tests with derived pointers.
|
 | llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-14.ll |
Commit
f2d955a8a420c6866dfc9e882c8aabf33775a3fc
by npopov[OCaml] Fix pass builder test
The LTO API has been removed.
|
 | llvm/test/Bindings/OCaml/passmgr_builder.ml |
Commit
5f7c38549869e15f898482a398fd4fb3ea44c6fe
by spatel[InstCombine] add tests for freeze of partial undef vector constants; NFC
|
 | llvm/test/Transforms/InstCombine/freeze.ll |
 | llvm/test/Transforms/InstCombine/select.ll |
Commit
f9735be7e2bc8ad79072cf009f15f387976cdfdb
by joker.ephApply clang-tidy fixes for performance-unnecessary-value-param in ControlFlowInterfaces.cpp (NFC)
|
 | mlir/lib/Interfaces/ControlFlowInterfaces.cpp |
Commit
2d6335421fb04d0c7470ae2a49f1c94c21c272ed
by joker.ephApply clang-tidy fixes for llvm-qualified-auto in OpenMPToLLVMIRTranslation.cpp (NFC)
|
 | mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp |
Commit
1aa3a54921a1e6bb43ff14c072b9129aa78d6988
by kadircet[clangd] Dont include version string in update tasks
This increases cardinality of span latency metrics. Currently this was being shown to the user via file status updates as `Running Update (x)` after this change we'll only display `Running Update`. This also affects logs in case of a crash, but contents and version number for inputs are printed separately in that case already.
Differential Revision: https://reviews.llvm.org/D124013
|
 | clang-tools-extra/clangd/TUScheduler.cpp |
Commit
83892d76f460402b45729e10b2219563b01d71b4
by joker.ephPrint custom assembly on pass failure by default
The printer is now resilient to invalid IR and will already automatically fallback to the generic form on invalid IR. Using the generic printer on pass failure was a conservative option before the printer was made failsafe.
Reviewed By: lattner, rriddle, jpienaar, bondhugula
Differential Revision: https://reviews.llvm.org/D123915
|
 | mlir/test/Pass/invalid-ir-print-after-failure.mlir |
 | mlir/test/Pass/ir-printing.mlir |
 | mlir/lib/Pass/IRPrinting.cpp |
 | mlir/test/lib/Pass/TestPassManager.cpp |
Commit
f6b2ddbf381dda5f201f48a5211fb0d053640225
by thakis[compiler-rt] Use ld64 flag -lto_library instead of DYLD_LIBRARY_PATH
Makes
bin/llvm-lit \ projects/compiler-rt/test/profile/Profile-arm64/instrprof-darwin-dead-strip.c
pass on my machine.
Without this change, ld64 complains that the bitcode was generated by LLVM 15 while the reader is 13.1 -- the version of Xcode on my machine. Looks like the DYLD_LIBRARY_PATH technique isn't working.
-lto_library was added back in ld64-136, which was in Xcode 4.6, which was released over 10 years ago. So relying on it should be safe by now.
Differential Revision: https://reviews.llvm.org/D124018
|
 | compiler-rt/test/lit.common.cfg.py |
 | compiler-rt/test/profile/lit.cfg.py |
 | compiler-rt/test/safestack/lit.cfg.py |
Commit
06cafd045e7e3730c50edf60eb9a15c3cf700926
by i[Go] Remove PopulateLTOPassManager binding after D123882
|
 | llvm/bindings/go/llvm/transforms_pmbuilder.go |
Commit
3de29ad20955eb8ed68e831795bf55bfe9fbe58b
by andrew.litteken[IRSim] Ignore debug instructions when creating canonical numbering
When constructing canonical relationships between two regions, the first instruction of a basic block from the first region is used to find the corresponding basic block from the second region. However, debug instructions are not included in similarity matching, and therefore do not have a canonical numbering. This patch makes sure to ignore the debug instructions when finding the first instruction in a basic block.
Reviewer: paquette
Differential Revision: https://reviews.llvm.org/D123903
|
 | llvm/lib/Analysis/IRSimilarityIdentifier.cpp |
 | llvm/test/Analysis/IRSimilarityIdentifier/debug-inst-starts-block.ll |
Commit
800f26386cd9054ceed68e481612908f635b9718
by Yaxun.Liu[CUDA][HIP] Fix delete operator for -fopenmp
When new operator is called in OpenMP parallel region, delete operator is resolved and checked. Due to similar issue fixed by https://reviews.llvm.org/D121765, when resolving delete operator, the caller was not determined correctly, which results in error as shown in https://godbolt.org/z/jKhd8qKos.
This patch fixes the issue in a similar way as https://reviews.llvm.org/D121765
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D123976
|
 | clang/test/SemaCUDA/openmp-parallel.cu |
 | clang/lib/Sema/SemaExprCXX.cpp |
Commit
8d4b5e083392df73c3a4c84228865326086e352d
by vporpodas[NFC][SLP] Improved description of getShallowScore() and getScoreAtLevelRec()
Differential Revision: https://reviews.llvm.org/D124027
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
ab99a414ef95cc70d7ff2571735775d185626362
by kstoimenov[ASan] Removed checks if the tested functions were emitted.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D124030
|
 | compiler-rt/test/asan/TestCases/load_and_store_n.cpp |
Commit
a9aa14e0cbb26ada60e28099ba6cafca4e990ba0
by spatel[InstCombine] add tests for shift-of-add with constants; NFC
|
 | llvm/test/Transforms/InstCombine/shift-add.ll |
Commit
8a9c70fc01e6c900f060f3c23d96ee444be33a9a
by spatel[InstCombine] C0 shift (X add nuw C) --> (C0 shift C) shift X
With 'nuw' we can convert the increment of the shift amount into a pre-shift (constant fold) of the shifted constant: https://alive2.llvm.org/ce/z/FkTyR2
Fixes issue #41976
|
 | llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp |
 | llvm/test/Transforms/InstCombine/shift-add.ll |
Commit
0f8c626723d2bbd547e78dcab5ab260dfbc437e1
by paulsson[BuildLibCalls] Introduce getOrInsertLibFunc() for use when building libcalls.
A new set of overloaded functions named getOrInsertLibFunc() are now supposed to be used instead of getOrInsertFunction() when building a libcall from within an LLVM optimizer(). The idea is that this new function also makes sure that any mandatory argument attributes are added to the function prototype (after calling getOrInsertFunction()).
inferLibFuncAttributes() is renamed to inferNonMandatoryLibFuncAttrs() as it only adds attributes that are not necessary for correctness but merely helping with later optimizations.
Generally, the front end is responsible for building a correct function prototype with the needed argument attributes. If the middle end however is the one creating the call, e.g. when replacing one libcall with another, it then must take this responsibility.
This continues the work of properly handling argument extension if required by the target ABI when building a lib call. getOrInsertLibFunc() now does this for all libcalls currently built by any LLVM optimizer. It is expected that when in the future a new optimization builds a new libcall with an integer argument it is to be added to getOrInsertLibFunc() with the proper handling. Note that not all targets have it in their ABI to sign/zero extend integer arguments to the full register width, but this will be done selectively as determined by getExtAttrForI32Param().
Review: Eli Friedman, Nikita Popov, Dávid Bolvanský
Differential Revision: https://reviews.llvm.org/D123198
|
 | llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp |
 | llvm/test/Transforms/InstCombine/SystemZ/libcall-arg-exts.ll |
 | llvm/include/llvm/Transforms/Utils/BuildLibCalls.h |
 | llvm/test/Transforms/InferFunctionAttrs/annotate.ll |
 | llvm/test/Transforms/InstCombine/double-float-shrink-1.ll |
 | llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp |
 | llvm/lib/Transforms/Utils/BuildLibCalls.cpp |
 | llvm/include/llvm/IR/Module.h |
 | llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp |
Commit
25c218be36d73bb3e6ddd3f3b441b508ab5ff66f
by silvasean[MLIR] Add function to create BFloat16 array attribute
This patch adds a new function `mlirDenseElementsAttrBFloat16Get()`, which accepts the shaped type, the number of BFloat16 values, and a pointer to an array of BFloat16 values, each of which is a `uint16_t` value.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D123981
|
 | mlir/include/mlir-c/BuiltinAttributes.h |
 | mlir/test/CAPI/ir.c |
 | mlir/lib/CAPI/IR/BuiltinAttributes.cpp |
Commit
e37726beb22a8e3865e1f6fcdbb5cd4262786903
by dpetrov[analyzer] Implemented RangeSet::Factory::castTo function to perform promotions, truncations and conversions.
Summary: Handle casts for ranges working similarly to APSIntType::apply function but for the whole range set. Support promotions, truncations and conversions. Example: promotion: char [0, 42] -> short [0, 42] -> int [0, 42] -> llong [0, 42] truncation: llong [4295033088, 4295033130] -> int [65792, 65834] -> short [256, 298] -> char [0, 42] conversion: char [-42, 42] -> uint [0, 42]U[4294967254, 4294967295] -> short[-42, 42]
Differential Revision: https://reviews.llvm.org/D103094
|
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h |
 | clang/unittests/StaticAnalyzer/RangeSetTest.cpp |
 | clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h |
Commit
0eb403ad1b0c4d052ed93b58892c6432f78e0e7d
by zinenko[mlir][transform] Introduce transform.sequence op
Sequence is an important transform combination primitive that just indicates transform ops being applied in a row. The simplest version requires fails immediately if any transformation in the sequence fails. Introducing this operation allows one to start placing transform IR within other IR.
Depends On D123135
Reviewed By: Mogball, rriddle
Differential Revision: https://reviews.llvm.org/D123664
|
 | mlir/lib/Dialect/Transform/IR/TransformOps.cpp |
 | mlir/test/Dialect/Transform/ops-invalid.mlir |
 | mlir/test/Dialect/Transform/ops.mlir |
 | mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td |
 | mlir/lib/Dialect/Transform/IR/CMakeLists.txt |
 | mlir/test/Dialect/Transform/test-interpreter.mlir |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp |
 | mlir/include/mlir/Dialect/Transform/IR/TransformOps.h |
 | mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h |
 | mlir/include/mlir/Dialect/Transform/IR/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Transform/IR/TransformOps.td |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectInterpreter.cpp |
 | mlir/lib/Dialect/Transform/IR/TransformDialect.cpp |
Commit
ddc2eb0ada99cab81b6fae5f0cca999643a4b9f7
by Krzysztof.Drewniak[mlir] Adds getUpperBound() to LoopLikeInterface.
getUpperBound is analogous to getLowerBound(), except for the upper bound, and is used in range analysis.
Reviewed By: Mogball
Differential Revision: https://reviews.llvm.org/D124020
|
 | mlir/include/mlir/Dialect/Affine/IR/AffineOps.td |
 | mlir/lib/Dialect/Affine/IR/AffineOps.cpp |
 | mlir/lib/Dialect/SCF/SCF.cpp |
 | mlir/include/mlir/Dialect/SCF/SCFOps.td |
 | mlir/include/mlir/Interfaces/LoopLikeInterface.td |
Commit
c57f03415f9668f942802ff7108410d57c2b10da
by apl[clang][Sema] Add flag to LookupName to force C/ObjC codepath
Motivation: The intent here is for use in Swift. When building a clang module for swift consumption, swift adds an extension block to the module for name lookup purposes. Swift calls this a SwiftLookupTable. One purpose that this serves is to handle conflicting names between ObjC classes and ObjC protocols. They exist in different namespaces in ObjC programs, but in Swift they would exist in the same namespace. Swift handles this by appending a suffix to a protocol name if it shares a name with a class. For example, if you have an ObjC class named "Foo" and a protocol with the same name, the protocol would be renamed to "FooProtocol" when imported into swift.
When constructing the previously mentioned SwiftLookupTable, we use Sema::LookupName to look up name conflicts for the previous problem. By this time, the Parser has long finished its job so the call to LookupName gets nullptr for its Scope (TUScope will be nullptr by this point). The C/ObjC path does not have this problem because it only uses the Scope in specific scenarios. The C++ codepath uses the Scope quite extensively and will fail early on if the Scope it gets is null. In our very specific case of looking up ObjC classes with a specific name, we want to force sema::LookupName to take the C/ObjC codepath even if C++ or ObjC++ is enabled.
|
 | clang/lib/Sema/SemaLookup.cpp |
 | clang/unittests/Sema/CMakeLists.txt |
 | clang/include/clang/Sema/Sema.h |
 | clang/unittests/Sema/SemaLookupTest.cpp |
Commit
b5e962a5101f04890c73d1adae3674901afeb080
by llvmgnsyncbot[gn build] Port c57f03415f96
|
 | llvm/utils/gn/secondary/clang/unittests/Sema/BUILD.gn |
Commit
489894f3631c0a4ed3cad6bf766707d962169247
by atmndp[Libomptarget][remote] Fix compile-time error
This fixes a compile-time error recently introduced within the remote offloading plugin. This patch also removes some extra linker flags that are unnecessary, and adds an explicit abseil linker flag without which we occasionally get problems.
Differential Revision: https://reviews.llvm.org/D119984
|
 | openmp/libomptarget/plugins/remote/server/CMakeLists.txt |
 | openmp/libomptarget/plugins/remote/server/Server.cpp |
 | openmp/libomptarget/plugins/remote/src/CMakeLists.txt |
Commit
eb2131bdbad3f74be2fcf236b4d6921612af47a9
by yitzhakm[clang][dataflow] Do not crash on missing `Value` for struct-typed variable init.
Remove constraint that an initializing expression of struct type must have an associated `Value`. This invariant is not and will not be guaranteed by the framework, because of potentially uninitialized fields.
Differential Revision: https://reviews.llvm.org/D123961
|
 | clang/lib/Analysis/FlowSensitive/Transfer.cpp |
 | clang/unittests/Analysis/FlowSensitive/TransferTest.cpp |