Commit
590fd54ca1e7d82a3c5f519fe08decaafd9bcde8
by npopov[InstCombine] Add tests for inbounds handling in loop invariant GEP fold (NFC)
|
 | llvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll |
Commit
2d7bab666f5a71a70da0ed7925fda5ce634d21e5
by npopov[InstCombine] Always create new GEPs when swapping GEPs
As the long explanatory comment attests, performing the modification in place is pretty tricky. Drop this unnecessary complexity and always create new instructions.
This should be NFC-ish, but can probably cause difference due to worklist order.
|
 | llvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll |
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
Commit
314abe3922c1dc5050b3eefc09ff794ba4dd807c
by arnamoy.bhattacharyya[flang][OpenMP] Check for occurrence of multiple list items in nontemporal clause for simd directive
This patch implements the following semantic check:
A list-item cannot appear in more than one nontemporal clause.
Reviewed By: kiranchandramohan, shraiysh
Differential Revision: https://reviews.llvm.org/D110270
|
 | flang/test/Semantics/omp-simd-nontemporal.f90 |
 | flang/lib/Semantics/check-omp-structure.cpp |
 | flang/lib/Semantics/check-omp-structure.h |
Commit
d2e3cb737417a2e5ffad34f666fa8510e88e8bc2
by jdenny.ornl[OpenMP][Clang] Fix atomic compare for signed vs. unsigned
Without this patch, arguments to the `llvm::OpenMPIRBuilder::AtomicOpValue` initializer are reversed.
Reviewed By: ABataev, tianshilei1992
Differential Revision: https://reviews.llvm.org/D126619
|
 | openmp/runtime/test/atomic/omp-atomic-compare-signedness.c |
 | clang/test/OpenMP/atomic_compare_codegen.cpp |
 | clang/lib/CodeGen/CGStmtOpenMP.cpp |
 | openmp/libomptarget/test/offloading/atomic-compare-signedness.c |
Commit
a770f534e6f647d1f6a25544117e7b3d8a0c3486
by npopov[InstCombine] When swapping GEPs, only keep inbounds if both are
If only one of the GEPs is inbounds, then after swapping, there is no guarantee that one of them will be inbounds as well (see e.g. https://alive2.llvm.org/ce/z/agaCnp).
This is only a partial fix, because even if both are inbounds, the result is not necessarily inbounds (if the offsets have different signs).
|
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
 | llvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll |
 | llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll |
Commit
b2719349d2a640187b66baeb91115a00e706f4c6
by hansChange build_llvm_package.bat to build_llvm_release.bat
We don't build snapshot packages anymore, so repurpose this for doing release builds instead.
|
 | llvm/utils/release/build_llvm_release.bat |
 | llvm/utils/release/build_llvm_package.bat |
Commit
cc6c15920358a93185eced1d9dcec201815debf0
by zinenko[mlir] add VectorizeOp to structured transform ops
Vectorization is a key transformation to achieve high performance on most architectures. In the transform dialect, vectorization is implemented as a parameterizable transform op. It currently applies to a scope of payload IR delimited by some isolated-from-above op, mainly because several enabling transformations (such as affine simplification) are needed to perform vectorization and these transformation would apply to ops other than the "main" computational payload op. A separate "navigation" transform op that obtains the isolated-from-above ancestor of an op is introduced in the core transform dialect. Even though it is currently only useful for vectorization, isolated-from-above ops are a common anchor for transformations (usually implemented as passes) that is likely to be reused in the future.
Depends On D126374
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D126542
|
 | mlir/include/mlir/Dialect/Transform/IR/TransformOps.td |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/lib/Dialect/Transform/IR/TransformOps.cpp |
 | mlir/test/Dialect/Linalg/transform-op-vectorize.mlir |
 | mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td |
 | mlir/lib/Dialect/Linalg/TransformOps/CMakeLists.txt |
 | mlir/test/Dialect/Transform/test-interpreter.mlir |
 | mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp |
Commit
3f71765a71ca97433723b43c4f64931cace11ca1
by zinenko[mlir] provide Python bindings for the Transform dialect
Python bindings for extensions of the Transform dialect are defined in separate Python source files that can be imported on-demand, i.e., that are not imported with the "main" transform dialect. This requires a minor addition to the ODS-based bindings generator. This approach is consistent with the current model for downstream projects that are expected to bundle MLIR Python bindings: such projects can include their custom extensions into the bundle similarly to how they include their dialects.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D126208
|
 | mlir/cmake/modules/AddMLIRPython.cmake |
 | mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp |
 | utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel |
 | mlir/python/CMakeLists.txt |
 | mlir/python/mlir/dialects/transform/structured.py |
 | mlir/python/mlir/dialects/_transform_ops_ext.py |
 | mlir/python/mlir/dialects/LinalgStructuredTransformOps.td |
 | mlir/python/mlir/dialects/TransformOps.td |
 | mlir/python/mlir/dialects/_structured_transform_ops_ext.py |
 | mlir/python/mlir/dialects/transform/__init__.py |
 | mlir/test/python/dialects/transform_structured_ext.py |
 | mlir/test/python/dialects/transform.py |
Commit
4278b7e16a5b13d529c92d682ac76b53f93a4961
by pierre.gousseau[sanitizers] Fixes strndup API behaviour when intercepted by sanitizers
Sanitizers ignore flag allocator_may_return_null=1 in strndup() calls. When OOM is emulated, this causes to the unexpected crash.
Committed by pgousseau on behalf of "Kostyantyn Melnik, kmnls.kmnls@gmail.com"
Reviewed by: pgousseau
Differential Revision: https://reviews.llvm.org/D126452
|
 | compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc |
 | compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp |
Commit
f8239eec8decd3459d4f638b98c4f582add31263
by Louis Dionne[libc++] Reduce the verbosity when running the libc++ Lit configuration
We print the same information as before, however we do it with less verbosity unless `--debug` is used.
|
 | libcxx/utils/libcxx/test/newconfig.py |
Commit
e576280380d3f5221cfcc14e9fabeacc8506a43c
by python3kgae[HLSL] Enable vector types for hlsl.
Vector types in hlsl is using clang ext_vector_type. Declaration of vector types is in builtin header hlsl.h. hlsl.h will be included by default for hlsl shader.
Reviewed By: Anastasia
Differential Revision: https://reviews.llvm.org/D125052
|
 | clang/include/clang/Driver/Options.td |
 | clang/lib/Basic/LangOptions.cpp |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/lib/Headers/hlsl/hlsl_basic_types.h |
 | clang/lib/Headers/hlsl.h |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/lib/Headers/CMakeLists.txt |
 | clang/lib/Frontend/InitPreprocessor.cpp |
 | clang/test/CodeGenHLSL/basic_types.hlsl |
 | clang/test/Driver/hlsl_no_stdinc.hlsl |
Commit
85322e82be5014fb0abddb3a36df928d16760fba
by dantrushin[TwoAddressInstructionPass] Special processing of STATEPOINT instruction.
STATEPOINT is a special pseudo instruction which represent Moving GC semantic to LLVM. Every tied def/use VReg pair in STATEPOINT represent same physical register which can 'magically' change during call wrapped by statepoint. (By construction, tied use operand is not live across STATEPOINT).
This means that when converting into two-address form, there is not need to insert COPY instruction before stateppoint, what TwoAddressInstruction pass does for 'regular' instructions.
Reviewed By: MatzeB
Differential Revision: https://reviews.llvm.org/D124631
|
 | llvm/test/CodeGen/X86/statepoint-invoke-ra.mir |
 | llvm/test/CodeGen/X86/statepoint-vreg-twoaddr.mir |
 | llvm/test/CodeGen/X86/statepoint-vreg-unlimited-tied-opnds.ll |
 | llvm/lib/CodeGen/TwoAddressInstructionPass.cpp |
Commit
1e01b1ec72031fcaceb4e77e1c5c8e34f1e862e8
by llvmgnsyncbot[gn build] Port e576280380d3
|
 | llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn |
Commit
aff271930e8ac2ca520ba92cf6d736f94edfaaf6
by joker.ephFix warning for unused variable in the non-assert build (NFC)
|
 | llvm/lib/Analysis/ValueTracking.cpp |
Commit
f3defc23488eb29c69d2a33c0c5b652c874fb0f3
by vsapsai[ODRHash][NFC] Add missing 'select' case for `ODRMismatchDecl`.
No test changes because `err_module_odr_violation_mismatch_decl_unknown` is a catch-all when custom diagnostic is missing. And missing custom diagnostic we should fix by implementing it, not by improving the general case. But if we pass enum value not covered by 'select', clang can crash, so protect against that.
Differential Revision: https://reviews.llvm.org/D126566
|
 | clang/include/clang/Basic/DiagnosticSerializationKinds.td |
Commit
b7d2b160c3ba85c42427d5db96e0af01a0a9d1b5
by flo[VPlan] Add test for printing VPlan for outer loop vectorization.
Test coverage for D123005.
|
 | llvm/test/Transforms/LoopVectorize/vplan-printing-outer-loop.ll |
Commit
c4eb8035ed6647e58d4c5161f393e9220f7402cf
by thakisRevert "[HLSL] Enable vector types for hlsl."
This reverts commit e576280380d3f5221cfcc14e9fabeacc8506a43c. Breaks tests on mac/arm, see comment on https://reviews.llvm.org/D125052
Also revert follow-up "[gn build] Port e576280380d3" This reverts commit 1e01b1ec72031fcaceb4e77e1c5c8e34f1e862e8.
|
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/lib/Frontend/InitPreprocessor.cpp |
 | clang/test/CodeGenHLSL/basic_types.hlsl |
 | llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn |
 | clang/test/Driver/hlsl_no_stdinc.hlsl |
 | clang/include/clang/Driver/Options.td |
 | clang/lib/Headers/hlsl/hlsl_basic_types.h |
 | clang/lib/Headers/hlsl.h |
 | clang/lib/Headers/CMakeLists.txt |
 | clang/lib/Basic/LangOptions.cpp |
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
80b3dcc045f8ea6e5e532d8891bbf1305bce89e8
by nuno.lopes[Support] Make report_fatal_error respect its GenCrashDiag argument so it doesn't generate a backtrace
There are a few places where we use report_fatal_error when the input is broken. Currently, this function always crashes LLVM with an abort signal, which then triggers the backtrace printing code. I think this is excessive, as wrong input shouldn't give a link to LLVM's github issue URL and tell users to file a bug report. We shouldn't print a stack trace either.
This patch changes report_fatal_error so it uses exit() rather than abort() when its argument GenCrashDiag=false.
Reviewed by: nikic, MaskRay, RKSimon
Differential Revision: https://reviews.llvm.org/D126550
|
 | llvm/test/CodeGen/Mips/micromips64-unsupported.ll |
 | llvm/test/Transforms/LoopUnroll/peel-loop-and-unroll.ll |
 | llvm/test/CodeGen/Mips/mips32r6/compatibility.ll |
 | llvm/test/CodeGen/Mips/mips64r6/compatibility.ll |
 | llvm/test/Transforms/BlockExtractor/invalid-line.ll |
 | llvm/test/CodeGen/Mips/cpus.ll |
 | llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll |
 | llvm/test/Transforms/BlockExtractor/invalid-function.ll |
 | llvm/test/CodeGen/Mips/fpxx.ll |
 | llvm/lib/Target/Mips/MipsSubtarget.cpp |
 | llvm/lib/Transforms/IPO/BlockExtractor.cpp |
 | llvm/test/CodeGen/SystemZ/codemodel.ll |
 | llvm/test/CodeGen/Mips/msa/3r-a.ll |
 | llvm/test/CodeGen/ARM/codemodel.ll |
 | llvm/test/CodeGen/Lanai/codemodel.ll |
 | llvm/test/Transforms/GCOVProfiling/version.ll |
 | llvm/test/Transforms/BlockExtractor/invalid-block.ll |
 | llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp |
 | llvm/test/CodeGen/BPF/xadd.ll |
 | llvm/test/MC/Mips/micromips64-unsupported.s |
 | llvm/test/MC/Mips/micromips64r6-unsupported.s |
 | llvm/lib/Support/ErrorHandling.cpp |
 | llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp |
 | llvm/test/CodeGen/Mips/fp64a.ll |
 | llvm/test/CodeGen/SPARC/codemodel.ll |
 | llvm/test/CodeGen/PowerPC/codemodel.ll |
 | llvm/test/Other/optimization-remarks-inline.ll |
 | llvm/test/CodeGen/X86/codemodel.ll |
Commit
8c55de9ee7f63a26e6edf7bcf4279f64602b3bf1
by nuno.lopesfix tests after my commit 80b3dcc045f8ea6e5e532d8891bbf1305bce89e8 doesn't like exit code 126 I'm afraid
|
 | llvm/lib/Support/ErrorHandling.cpp |
Commit
118d9ebd521317d6f593fd2b9cea66043336846b
by joker.ephApply clang-tidy fixes for llvm-else-after-return in OpenMPToLLVM.cpp (NFC)
|
 | mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp |
Commit
940e290860894d274c986c88bea2dcc17f1e93c3
by joker.ephApply clang-tidy fixes for performance-unnecessary-value-param in OneShotModuleBufferize.cpp (NFC)
|
 | mlir/include/mlir/Dialect/Bufferization/Transforms/OneShotModuleBufferize.h |
 | mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp |