Commit
b45e04685894a9d8467a291e2d9e8298330a5ab7
by llvm-dev[X86] Add non-uniform vector tests for 'one bit diff' comparison fold
|
 | llvm/test/CodeGen/X86/setcc-logic.ll |
Commit
73c3dff1b3e42c278f4c675418b0cb5e8784174b
by zinenko[mlir] Use-after-free checker for the Transform dialect
The Transform dialect uses the side effect modeling mechanism to record the effects of the transform ops on the mapping between Transform IR values and Payload IR ops. Introduce a checker pass that warns if a Transform IR value is used after it has been freed (consumed). This pass is mostly intended as a debugging aid in addition to the verification/assertion mechanisms in the transform interpreter. It reports all potential use-after-free situations. The implementation makes a series of simplifying assumptions to be simple and conservative. A more advanced implementation would rely on the data flow-like analysis associated with a side-effect resource rather than a value, which is currently not supported by the analysis infrastructure.
Reviewed By: springerm
Differential Revision: https://reviews.llvm.org/D126381
|
 | mlir/lib/Dialect/Transform/Transforms/CheckUses.cpp |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp |
 | mlir/include/mlir/InitAllPasses.h |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/include/mlir/Dialect/Transform/IR/TransformOps.h |
 | mlir/include/mlir/Dialect/Transform/Transforms/Passes.td |
 | mlir/include/mlir/Dialect/Transform/Transforms/Passes.h |
 | mlir/include/mlir/Dialect/Transform/Transforms/CMakeLists.txt |
 | mlir/lib/Dialect/Transform/CMakeLists.txt |
 | mlir/test/Dialect/Transform/check-use-after-free.mlir |
 | mlir/include/mlir/Dialect/Transform/IR/TransformOps.td |
 | mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td |
 | mlir/include/mlir/Dialect/Transform/CMakeLists.txt |
 | mlir/lib/Dialect/Transform/Transforms/CMakeLists.txt |
 | mlir/lib/Dialect/Transform/IR/TransformOps.cpp |
Commit
ad1d60c3befd606d6864b367f939238e50fb0f7e
by ivan.kosarev[FileCheck] Catch missspelled directives.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D125604
|
 | llvm/test/DebugInfo/NVPTX/debug-info.ll |
 | llvm/test/tools/llvm-objdump/MachO/disassemble-all.test |
 | flang/test/Fir/convert-to-llvm.fir |
 | mlir/test/Dialect/Affine/loop-coalescing.mlir |
 | clang/test/CodeGenCXX/eh-aggregate-copy-destroy.cpp |
 | clang/test/OpenMP/parallel_master_taskloop_private_codegen.cpp |
 | llvm/test/Transforms/PGOProfile/PR41279.ll |
 | mlir/test/Dialect/Linalg/fuse-with-reshape-by-collapsing.mlir |
 | llvm/test/MC/AsmParser/directive_file-g.s |
 | flang/test/Lower/Intrinsics/not.f90 |
 | llvm/test/CodeGen/BPF/CORE/offset-reloc-middle-chain.ll |
 | mlir/test/Dialect/SPIRV/IR/memory-ops.mlir |
 | llvm/test/Transforms/PGOProfile/memop_size_from_strlen.ll |
 | mlir/test/Dialect/Linalg/tile-and-fuse-no-fuse.mlir |
 | llvm/test/Transforms/Inline/inline-strictfp.ll |
 | clang/test/OpenMP/taskloop_simd_private_codegen.cpp |
 | llvm/test/tools/llvm-dwp/X86/tu_units_v5.s |
 | clang/test/CodeGenObjC/non-runtime-protocol.m |
 | llvm/test/tools/llvm-dwp/X86/type_dedup_v5.test |
 | llvm/test/CodeGen/AMDGPU/mode-register.mir |
 | llvm/test/Transforms/MergeFunc/alias.ll |
 | llvm/test/Transforms/PGOProfile/memop_clone.ll |
 | llvm/test/CodeGen/AVR/atomics/fence.ll |
 | mlir/test/mlir-tblgen/op-decl-and-defs.td |
 | clang/test/OpenMP/task_private_codegen.cpp |
 | clang/test/CodeGenCXX/attr-mustprogress.cpp |
 | clang/test/CodeGenCXX/inheriting-constructor.cpp |
 | llvm/test/MC/WebAssembly/unnamed-data.ll |
 | llvm/test/CodeGen/AMDGPU/hoist-cond.ll |
 | polly/test/ScopDetect/dot-scops-npm.ll |
 | llvm/test/Transforms/LoopVectorize/X86/gather-vs-interleave.ll |
 | llvm/test/tools/llvm-readobj/COFF/unwind-arm64-windows.test |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll |
 | llvm/test/CodeGen/ARM/cmpxchg-O0-be.ll |
 | llvm/include/llvm/FileCheck/FileCheck.h |
 | llvm/test/FileCheck/missspelled-directive.txt |
 | clang/test/OpenMP/parallel_master_taskloop_simd_private_codegen.cpp |
 | clang/test/OpenMP/taskgroup_task_reduction_codegen.cpp |
 | llvm/test/MC/AMDGPU/data.s |
 | llvm/test/CodeGen/AMDGPU/smrd.ll |
 | clang/test/OpenMP/master_taskloop_simd_private_codegen.cpp |
 | llvm/test/CodeGen/AMDGPU/divergence-driven-bfe-isel.ll |
 | mlir/test/Dialect/MemRef/canonicalize.mlir |
 | clang/test/OpenMP/taskloop_private_codegen.cpp |
 | llvm/test/Analysis/RegionInfo/infinite_loop_4.ll |
 | llvm/test/MC/PowerPC/ppc64-reloc-directive-pcrel.s |
 | llvm/test/CodeGen/WebAssembly/libcalls.ll |
 | llvm/lib/FileCheck/FileCheck.cpp |
 | mlir/test/IR/dynamic.mlir |
 | llvm/test/Analysis/MemorySSA/phi-translation.ll |
 | mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir |
 | clang/test/OpenMP/master_taskloop_private_codegen.cpp |
Commit
d79275238f9fb11fac31d42a846fe80fca2306d9
by czhengsz[MachineSink] replace MachineLoop with MachineCycle
reapply 62a9b36fcf728b104ea87e6eb84c0be69b779df7 and fix module build failue: 1: remove MachineCycleInfoWrapperPass in MachinePassRegistry.def MachineCycleInfoWrapperPass is a anylysis pass, should not be there. 2: move the definition for MachineCycleInfoPrinterPass to cpp file.
Otherwise, there are module conflicit for MachineCycleInfoWrapperPass in MachinePassRegistry.def and MachineCycleAnalysis.h after 62a9b36fcf728b104ea87e6eb84c0be69b779df7.
MachineCycle can handle irreducible loop. Natural loop analysis (MachineLoop) can not return correct loop depth if the loop is irreducible loop. And MachineSink is sensitive to the loop depth, see MachineSinking::isProfitableToSinkTo().
This patch tries to use MachineCycle so that we can handle irreducible loop better.
Reviewed By: sameerds, MatzeB
Differential Revision: https://reviews.llvm.org/D123995
|
 | llvm/include/llvm/CodeGen/MachinePassRegistry.def |
 | llvm/include/llvm/ADT/GenericCycleImpl.h |
 | llvm/test/CodeGen/PowerPC/O3-pipeline.ll |
 | llvm/test/CodeGen/X86/pr38795.ll |
 | llvm/include/llvm/CodeGen/MachineCycleAnalysis.h |
 | llvm/test/CodeGen/X86/opt-pipeline.ll |
 | llvm/test/CodeGen/RISCV/O3-pipeline.ll |
 | llvm/test/CodeGen/ARM/O3-pipeline.ll |
 | llvm/test/CodeGen/X86/switch-phi-const.ll |
 | llvm/include/llvm/CodeGen/MachineSSAContext.h |
 | llvm/test/CodeGen/X86/x86-shrink-wrapping.ll |
 | llvm/test/CodeGen/AArch64/loop-sink-limit.mir |
 | llvm/test/CodeGen/AMDGPU/llc-pipeline.ll |
 | llvm/lib/CodeGen/MachineSink.cpp |
 | llvm/test/CodeGen/AArch64/O3-pipeline.ll |
 | llvm/include/llvm/ADT/GenericCycleInfo.h |
 | llvm/lib/CodeGen/MachineCycleAnalysis.cpp |
Commit
8894c05b0d351f998b1836542ba791247394bd12
by ivan.kosarev[FileCheck] GetCheckTypeAbbreviation() to handle the misspelled case.
Also fix directives not covered by D125604.
|
 | polly/test/GPGPU/non-read-only-scalars.ll |
 | llvm/utils/FileCheck/FileCheck.cpp |
 | mlir/test/python/ir/integer_set.py |
Commit
7b617eef8018d4cd001b36ad28f014e21270fde5
by llvm-dev[DAG] Cleanup "and/or of cmp with single bit diff" fold to use ISD::matchBinaryPredicate
Prep work as I'm investigating some cases where TLI::convertSetCCLogicToBitwiseLogic should accept vectors.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
85750de685f543443ec38c407392d9d7cdc19451
by aaronUse the canonical type when matching a generic selection association
This ensures that a deduced type like __auto_type matches the correct association instead of matching all associations.
This addresses a regression from e4a42c5b64d044ae28d9483b0ebd12038d5b5917
Fixes #55702
|
 | clang/test/Sema/auto-type.c |
 | clang/lib/Sema/SemaExpr.cpp |
Commit
b0ccf38b0187e91fa36e5b7c2a2eecd9b5c00f01
by ivan.kosarev[AMDGPU][GFX9] Support base+soffset+offset SMEM loads.
Resolves part of https://github.com/llvm/llvm-project/issues/38652
Reviewed By: dp
Differential Revision: https://reviews.llvm.org/D125700
|
 | llvm/test/MC/Disassembler/AMDGPU/gfx8_dasm_all.txt |
 | llvm/lib/Target/AMDGPU/SMInstructions.td |
 | llvm/test/MC/AMDGPU/smem.s |
 | llvm/test/MC/Disassembler/AMDGPU/gfx9_dasm_all.txt |
 | llvm/test/MC/AMDGPU/gfx9_asm_smem.s |
Commit
ca3d962548b9699d69157d102e071607d27ba126
by gabor.marton[analyzer] Return from reAssume if State is posteriorly overconstrained
Depends on D124758. That patch introduced serious regression in the run-time in some special cases. This fixes that.
Differential Revision: https://reviews.llvm.org/D126406
|
 | clang/test/Analysis/runtime-regression.c |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h |
 | clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp |
Commit
b5b2aec1ff51197343dede9741ea377f8314d41b
by gabor.marton[analyzer] Add UnarySymExpr
This patch adds a new descendant to the SymExpr hierarchy. This way, now we can assign constraints to symbolic unary expressions. Only the unary minus and bitwise negation are handled.
Differential Revision: https://reviews.llvm.org/D125318
|
 | clang/lib/StaticAnalyzer/Core/SValBuilder.cpp |
 | clang/lib/StaticAnalyzer/Core/SymbolManager.cpp |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h |
 | clang/test/Analysis/explain-svals.cpp |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def |
 | clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h |
 | clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp |
 | clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp |
 | clang/test/Analysis/expr-inspection.cpp |
 | clang/test/Analysis/unary-sym-expr.c |
Commit
88abc50398eb26d536518270b91939ce18687305
by gabor.marton[analyzer][solver] Handle UnarySymExpr in RangeConstraintSolver
Fixes https://github.com/llvm/llvm-project/issues/55241
Differential Revision: https://reviews.llvm.org/D125395
|
 | clang/test/Analysis/unary-sym-expr-no-crash.c |
 | clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp |
 | clang/test/Analysis/unary-sym-expr.c |
 | clang/test/Analysis/constraint_manager_negate.c |
 | clang/test/Analysis/constraint_manager_negate_difference.c |
Commit
cd5783d3e82b98bfa140853fee95170852fd3c74
by gabor.marton[analyzer][solver] Handle UnarySymExpr in SMTConv
Dependent patch adds UnarySymExpr, now I'd like to handle that for SMT conversions like refutation.
Differential Revision: https://reviews.llvm.org/D125547
|
 | clang/test/Analysis/unary-sym-expr-z3-refutation.c |
 | clang/test/Analysis/z3-crosscheck.c |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h |
Commit
681c50c62e9338afdf58ebfd663f8e3ff43439fb
by aaronImprove the strict prototype diagnostic behavior
Post-commit feedback on https://reviews.llvm.org/D122895 pointed out that the diagnostic wording for some code was using "declaration" in a confusing way, such as:
int foo(); // warning: a function declaration without a prototype is deprecated in all versions of C and is not supported in C2x
int foo(int arg) { // warning: a function declaration without a prototype is deprecated in all versions of C and is not supported in C2x return 5; }
And that we had other minor issues with the diagnostics being somewhat confusing.
This patch addresses the confusion by reworking the implementation to be a bit more simple and a bit less chatty. Specifically, it changes the warning and note diagnostics to be able to specify "declaration" or "definition" as appropriate, and it changes the function merging logic so that the function without a prototype is always what gets warned on, and the function with a prototype is sometimes what gets noted. Additionally, when diagnosing a K&R C definition that is preceded by a function without a prototype, we don't note the prior declaration, we warn on it because it will also be changing behavior in C2x.
Differential Revision: https://reviews.llvm.org/D125814
|
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/Sema/knr-def-call.c |
 | clang/test/Sema/knr-variadic-def.c |
 | clang/test/CodeGen/2009-06-01-addrofknr.c |
 | clang/test/Sema/arg-duplicate.c |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/test/C/drs/dr0xx.c |
 | clang/test/Sema/warn-deprecated-non-prototype.c |
 | clang/test/Sema/warn-strict-prototypes.c |
 | clang/test/Parser/declarators.c |
Commit
605651135b4c37e423825a9201b06a16ff6160a1
by aaronFix failing test case with strict prototype changes
Amends 681c50c62e9338afdf58ebfd663f8e3ff43439fb and hopefully fixes:
https://lab.llvm.org/buildbot/#/builders/109/builds/39347 https://lab.llvm.org/buildbot/#/builders/188/builds/14634 and others
|
 | clang/test/SemaObjC/nonnull.m |
Commit
d4d28f2ace764a0420a33462628b43a1c71fc3dc
by marek.kurdej+llvm.org[clang-format] Fix QualifierAlignment with global namespace qualified types.
Fixes https://github.com/llvm/llvm-project/issues/55610.
Reviewed By: MyDeveloperDay
Differential Revision: https://reviews.llvm.org/D126096
|
 | clang/lib/Format/QualifierAlignmentFixer.cpp |
 | clang/unittests/Format/QualifierFixerTest.cpp |
Commit
f366acdbf694f93e0d3fbaeec5a7756ea2032df2
by llvm-dev[DAG] Generalize (sra (trunc (sra x, c1)), c2) -> (trunc (sra x, c1 + c2)) constant folding
Remove local (uniform) constant folding and rely on getNode() to perform it
Minor cleanup step toward adding non-uniform shift amount support
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
851bfc07c86e7f84ee38d918cb4b6b49a47434f1
by Louis Dionne[libc++abi] Use from-scratch testing configs for libc++abi by default
Like we have been doing for libc++ for a while now, start using from-scratch testing configurations for libc++abi.
As a fly-by fix, remove the LIBCXXABI_NO_TIMER macro, which was defined but never used.
Differential Revision: https://reviews.llvm.org/D125242
|
 | libcxxabi/test/configs/llvm-libc++abi-shared-clangcl.cfg.in |
 | libcxxabi/test/test_fallback_malloc.pass.cpp |
 | libcxxabi/CMakeLists.txt |
 | libcxxabi/test/configs/llvm-libc++abi-mingw.cfg.in |
 | libcxxabi/test/configs/llvm-libc++abi-shared-gcc.cfg.in |
 | libcxxabi/test/forced_unwind3.pass.cpp |
 | libcxxabi/test/configs/apple-libc++abi-backdeployment.cfg.in |
 | libcxxabi/test/test_exception_storage.pass.cpp |
 | libcxxabi/test/configs/llvm-libc++abi-shared.cfg.in |
 | libcxxabi/test/guard_test_basic.pass.cpp |
 | libcxxabi/test/libcxxabi/test/config.py |
 | libcxxabi/test/configs/ibm-libc++abi-shared.cfg.in |
 | libcxxabi/test/configs/llvm-libc++abi-static-clangcl.cfg.in |
 | libcxxabi/test/configs/apple-libc++abi-shared.cfg.in |
 | libcxxabi/test/configs/llvm-libc++abi-static.cfg.in |
 | libcxxabi/test/cxa_thread_atexit_test.pass.cpp |
 | libcxxabi/test/configs/llvm-libc++abi-merged.cfg.in |
 | libcxxabi/test/guard_threaded_test.pass.cpp |
 | libcxxabi/test/configs/cmake-bridge.cfg.in |
 | libcxxabi/test/test_guard.pass.cpp |
 | libcxxabi/test/thread_local_destruction_order.pass.cpp |
Commit
ea6171c108c47c1ee486388adfa106e13e280e33
by spatel[InstCombine] add tests for icmp with udiv operand; NFC
This covers a generalization of one of the transforms suggested in #55695.
|
 | llvm/test/Transforms/InstCombine/icmp-div-constant.ll |
Commit
3952c905ef08580de1ddc5d776177497407a6093
by spatel[InstCombine] fold icmp equality with udiv and large constant
With large compare constant: (X u/ Y) == C --> (X == C) && (Y == 1) (X u/ Y) != C --> (X != C) || (Y != 1)
https://alive2.llvm.org/ce/z/EhKwh6
There are various potential missing icmp (div) transforms shown here: https://github.com/llvm/llvm-project/issues/55695
This is a generalization for part of the udiv + equality. I didn't check in detail, but some of those may only make sense as codegen transforms.
This results in one extra instruction in IR, but it is better for analysis, and looks much better in codegen on all targets that I tried.
Differential Revision: https://reviews.llvm.org/D126410
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
 | llvm/test/Transforms/InstCombine/icmp-div-constant.ll |
Commit
1bae02b77335eb1a01d9a0bb36c2b2a29dfdd5d9
by jhuber6[Cuda] Use fallback method to mangle externalized decls if no CUID given
CUDA requires that static variables be visible to the host when offloading. However, The standard semantics of a stiatc variable dictate that it should not be visible outside of the current file. In order to access it from the host we need to perform "externalization" on the static variable on the device. This requires generating a semi-unique name that can be affixed to the variable as to not cause linker errors.
This is currently done using the CUID functionality, an MD5 hash value set up by the clang driver. This allows us to achieve is mostly unique ID that is unique even between multiple compilations of the same file. However, this is not always availible. Instead, this patch uses the unique ID from the file to generate a unique symbol name. This will create a unique name that is consistent between the host and device side compilations without requiring the CUID to be entered by the driver. The one downside to this is that we are no longer stable under multiple compilations of the same file. However, this is a very niche use-case and is not supported by Nvidia's CUDA compiler so it likely to be good enough.
Reviewed By: tra
Differential Revision: https://reviews.llvm.org/D125904
|
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/lib/CodeGen/CodeGenModule.h |
 | clang/test/CodeGenCUDA/device-fun-linkage.cu |
 | clang/test/CodeGenCUDA/static-device-var-rdc.cu |
 | clang/lib/CodeGen/CGCUDANV.cpp |
Commit
4c549a0b593e787ac2431ecbcf50b5a5de795f0c
by j.emil.kieri[flang][NFC] Make semantics test dosemantics03.f90 warning-correct
This is a preparation for D125804, which makes test_errors.py test warnings the same way it already tests errors, i.e., assert that the emitted and expected errors are identical. The following changes are made to the test:
- Add the WARNING directive where warnings are expected. - Remove -Werror in the RUN line. It does not serve much purpose here: with -Werror flang makes compilation fail in the presence of warnings, but warnings are still printed as warnings and not as errors. And I anyway find it better to test the warnings as warnings instead of promoting them and test both warnings and errors as errors. - Update the header comment describing the test case, mostly in response to the removal of -Werror. - Remove the reference to 'issue 458', referring to https://github.com/flang-compiler/f18/issues/458, from the header. I think the relevant reference here is to C1120 of the standard, and references to bug trackers from other projects (from before upstreaming) can be confusing.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D126176
|
 | flang/test/Semantics/dosemantics03.f90 |