Commit
6f28fb708149e9db8d077e65fcc9f87d566e824a
by floRecommit "[DSE] Track earliest escape, use for loads in isReadClobber."
This reverts the revert commit df56fc6ebbee6c458b0473185277b7860f7e3408.
This version of the patch adjusts the location where the EarliestEscapes cache is cleared when an instruction gets removed. The earliest escaping instruction does not have to be a memory instruction.
It could be a ptrtoint instruction like in the added test @earliest_escape_ptrtoint, which subsequently gets removed. We need to invalidate the EarliestEscape entry referring to the ptrtoint when deleting it.
This fixes the crash mentioned in https://bugs.chromium.org/p/chromium/issues/detail?id=1252762#c6
|
 | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp |
 | llvm/test/Transforms/DeadStoreElimination/captures-before-load.ll |
 | llvm/include/llvm/Analysis/CaptureTracking.h |
 | llvm/lib/Analysis/CaptureTracking.cpp |
Commit
3b0240e6c89d9201430ee83b09fe7c94256e8838
by quinn.pham[PowerPC] Add range check for vec_genpcvm builtins
This patch adds range checking for some Power10 altivec builtins. Range checking is done in SemaChecking.
Reviewed By: #powerpc, lei, Conanap
Differential Revision: https://reviews.llvm.org/D109780
|
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/test/CodeGen/builtins-ppc-p10vector-error.c |
Commit
5988a3b7a09126aff982944ecb36f533c450388e
by zinenko[mlir] Linalg: ensure tile-and-pad always creates padding as requested
Initially, the padding transformation and the related operation were only used to guarantee static shapes of subtensors in tiled operations. The transformation would not insert the padding operation if the shapes were already static, and the overall code generation would actively remove such "noop" pads. However, this transformation can be also used to pack data into smaller tensors and marshall them into faster memory, regardless of the size mismatches. In context of expert-driven transformation, we should assume that, if padding is requested, a potentially padded tensor must be always created. Update the transformation accordingly. To do this, introduce an optional `packing` attribute to the `pad_tensor` op that serves as an indication that the padding is an intentional choice (as opposed to side effect of type normalization) and should be left alone by cleanups.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D110425
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp |
 | mlir/test/Dialect/Linalg/canonicalize.mlir |
 | mlir/test/Dialect/Linalg/tile-and-pad-tensors.mlir |
 | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp |
Commit
082e22f3d72bd63f9b388d5566064cf3736da511
by Stanislav.Mekhanoshin[AMDGPU] Always reserve flat scratch SGPR for architected flat scratch
With architected flat scratch it becomes readonly. We must always reserve SGPR pair for it even if we do not use scratch at all since an attempt to write to SGPRs mapped to FLAT_SCRATCH results in memory violation.
This is not needed since GFX10 with architected flat scratch though since special SGPRs are not carving space from normal SGPRs.
Differential Revision: https://reviews.llvm.org/D110376
|
 | llvm/test/CodeGen/AMDGPU/flat-scratch-reg.ll |
 | llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
Commit
321be24aa6808c5829f3433407e13603901849f4
by clementvalRevert "[flang][fir] Add support to mangle/deconstruct namelist group name"
This reverts commit 3593ae4312f6156c9ca50d46cdb55a8dfad782d0.
|
 | flang/include/flang/Optimizer/Support/InternalNames.h |
 | flang/lib/Lower/Mangler.cpp |
 | flang/lib/Optimizer/Support/InternalNames.cpp |
 | flang/unittests/Optimizer/InternalNamesTest.cpp |
Commit
1e9afab875696ebf1a8abb5637f04735411ee0b7
by hansRe-apply "[JumpThreading] Ignore free instructions"
It seems the crashes we saw wasn't caused by this (see comments on the review).
> This is basically D108837 but for jump threading. Free instructions > should be ignored for the threading decision. JumpThreading already > skips some free instructions (like pointer bitcasts), but does not > skip various free intrinsics -- in fact, it currently gives them a > fairly large cost of 2. > > Differential Revision: https://reviews.llvm.org/D110290
This reverts commit 4604695d7c20e72b551a1a5224f3de877cb41bd3.
|
 | llvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll |
 | llvm/include/llvm/Transforms/Scalar/JumpThreading.h |
 | llvm/lib/Transforms/Scalar/JumpThreading.cpp |
 | llvm/test/Transforms/JumpThreading/free_instructions.ll |
Commit
6e1aaf18af6c6b68d314a23068bd912524212fb6
by wei.huang[PowerPC] Mark splat immediate instructions as rematerializable
This patch marks splat immediate instructions XXSPLTIW and XXSPLTIDP as rematerializable to prevent MachineLICM from moving them out of loops.
Reviewed By: lei, amy
Differential revision: https://reviews.llvm.org/D108823
|
 | llvm/test/CodeGen/PowerPC/constant-pool.ll |
 | llvm/lib/Target/PowerPC/PPCInstrPrefix.td |
 | llvm/test/CodeGen/PowerPC/p10-spill-crun.ll |
 | llvm/test/CodeGen/PowerPC/p10-splatImm.ll |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.cpp |
Commit
8dd42ffc09e30b1bf936f5da1aa104916e50d2fa
by erich.keaneWrite test for CWG1772/CWG1762/CWG1779, mark them 'done', and update cxx_dr_status.html
I noticed that these two DRs are currently working correctly, so I added a pair of lit tests that check the AST (which is most useful for CWG1779, since 'dependent' is really only observable in an ast dump) to make sure __func__ works correctly in dependent cases, and in lambda operator().
Also noticed that CWG1762, mostly an 'example' change, works correctly, so added a test so that it gets marked 'done' as well.
Additionally, I regenerated cxx_dr_status.html, updating it for Clang 13's release, based on the cwg_status.html from August 12, 2021.
Differential Revision: https://reviews.llvm.org/D109956
|
 | clang/www/cxx_dr_status.html |
 | clang/test/CXX/drs/dr17xx.cpp |
 | clang/www/make_cxx_dr_status |
 | clang/test/CXX/drs/dr177x.cpp |
Commit
e4902480f1e2f12f73c2b504e3d717536653dd7b
by aaronFix wrong FixIt about union in cppcoreguidelines-pro-type-member-init
At most one variant member of a union may have a default member initializer. The case of anonymous records with multiple levels of nesting like the following also needs to meet this rule. The original logic is to horizontally obtain all the member variables in a record that need to be initialized and then filter to the variables that need to be fixed. Obviously, it is impossible to correctly initialize the desired variables according to the nesting relationship.
See Example 3 in class.union
union U { U() {} int x; // int x{}; union { int k; // int k{}; <== wrong fix }; union { int z; // int z{}; <== wrong fix int y; }; };
|
 | clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init.cpp |
 | clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp |
Commit
3678df5ae6618eec656ae0ea0dab3be09d73bc9a
by albionapc[PowerPC][NFC] Add test case in preparation for codegen change
This test case tests doubles inserted into vector ints, and help make apparent the optimizations a future patch will make.
|
 | llvm/test/CodeGen/PowerPC/test-vector-insert.ll |
Commit
36eb6c0134afa9d6881e52c002743f4594c859ee
by llvm-dev[SCCP] Regenerate bigint test checks
|
 | llvm/test/Transforms/SCCP/apint-bigint2.ll |
Commit
bdee805b3277e04677490f42e62aa28478331254
by llvm-dev[ConstantFold] ConstantFoldGetElementPtr - use APInt::isNegative() instead of getSExtValue() to support big ints
Fixes fuzz test: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39197
|
 | llvm/lib/IR/ConstantFold.cpp |
 | llvm/test/Transforms/SCCP/apint-bigint2.ll |
Commit
03fb6f04f9fa9a2f8b49a0d34b9363046095dd8d
by Louis Dionne[libc++] Refactor the tests for common_view to reduce duplication
|
 | libcxx/test/std/ranges/range.adaptors/range.common.view/base.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/end.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.view.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/size.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/begin.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.default.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/types.h |
Commit
77d200a546136c2855063613ff4bca1f682fb23a
by erich.keaneAdd test for DR1307, which we have already implemented.
Also regenerated cxx_dr_status.html
|
 | clang/www/cxx_dr_status.html |
 | clang/test/CXX/drs/dr13xx.cpp |
Commit
e8e2edd8ca88f8b0a7dba141349b2aa83284f3af
by erich.keaneFix test from 8dd42f, capitalization in test
|
 | clang/test/CXX/drs/dr17xx.cpp |
Commit
08d7eec06e8cf5c15a96ce11f311f1480291a441
by Stanislav.MekhanoshinRevert "Allow rematerialization of virtual reg uses"
Reverted due to two distcint performance regression reports.
This reverts commit 92c1fd19abb15bc68b1127a26137a69e033cdb39.
|
 | llvm/test/CodeGen/Mips/llvm-ir/lshr.ll |
 | llvm/test/CodeGen/Thumb2/mve-float16regloops.ll |
 | llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll |
 | llvm/test/CodeGen/ARM/illegal-bitfield-loadstore.ll |
 | llvm/test/CodeGen/X86/delete-dead-instrs-with-live-uses.mir |
 | llvm/test/CodeGen/X86/addcarry.ll |
 | llvm/test/CodeGen/X86/inalloca-invoke.ll |
 | llvm/test/CodeGen/ARM/funnel-shift-rot.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitreverse.ll |
 | llvm/test/CodeGen/AMDGPU/remat-sop.mir |
 | llvm/test/CodeGen/X86/dag-update-nodetomatch.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-disabled-in-loloops.ll |
 | llvm/test/CodeGen/RISCV/rv32zbt.ll |
 | llvm/test/CodeGen/Mips/llvm-ir/ashr.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll |
 | llvm/test/CodeGen/RISCV/shifts.ll |
 | llvm/test/CodeGen/RISCV/rv32zbb.ll |
 | llvm/lib/CodeGen/TargetInstrInfo.cpp |
 | llvm/test/CodeGen/ARM/arm-shrink-wrapping-linux.ll |
 | llvm/test/CodeGen/Mips/tls.ll |
 | llvm/test/CodeGen/RISCV/urem-vector-lkk.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll |
 | llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll |
 | llvm/test/CodeGen/Thumb/dyn-stackalloc.ll |
 | llvm/test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll |
 | llvm/test/CodeGen/RISCV/mul.ll |
 | llvm/test/CodeGen/ARM/funnel-shift.ll |
 | llvm/test/CodeGen/Thumb2/mve-float32regloops.ll |
 | llvm/test/CodeGen/ARM/neon-copy.ll |
 | llvm/test/CodeGen/Thumb2/ldr-str-imm12.ll |
 | llvm/test/CodeGen/RISCV/atomic-rmw.ll |
 | llvm/test/CodeGen/Mips/llvm-ir/shl.ll |
 | llvm/test/CodeGen/RISCV/rv32zbp.ll |
 | llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll |
 | llvm/test/CodeGen/Thumb2/mve-postinc-dct.ll |
 | llvm/test/CodeGen/Mips/llvm-ir/sub.ll |
 | llvm/test/CodeGen/RISCV/srem-vector-lkk.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-loops.ll |
 | llvm/test/CodeGen/X86/callbr-asm-blockplacement.ll |
 | llvm/test/CodeGen/RISCV/atomic-signext.ll |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/varying-outer-2d-reduction.ll |
 | llvm/test/CodeGen/X86/licm-regpressure.ll |
 | llvm/test/CodeGen/X86/sdiv_fix.ll |
 | llvm/include/llvm/CodeGen/TargetInstrInfo.h |
Commit
15dfe783406241f9c17c3552b0723441fa68174f
by koraq[NFC][libc++] Update clang-format style.
Changes the style as requested by @ldionne in D103368.
Reviewed By: ldionne, #libc, Quuxplusone
Differential Revision: https://reviews.llvm.org/D109835
|
 | libcxx/.clang-format |
Commit
b54c724be0b490f231af534696b3b7ef072a7ca1
by riddleriver[mlir:OpConversionPattern] Add overloads for taking an Adaptor instead of ArrayRef
This has been a TODO for a long time, and it brings about many advantages (namely nice accessors, and less fragile code). The existing overloads that accept ArrayRef are now treated as deprecated and will be removed in a followup (after a small grace period). Most of the upstream MLIR usages have been fixed by this commit, the rest will be handled in a followup.
Differential Revision: https://reviews.llvm.org/D110293
|
 | mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRV.cpp |
 | mlir/lib/Dialect/Shape/Transforms/StructuralTypeConversions.cpp |
 | mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp |
 | mlir/lib/Transforms/Bufferize.cpp |
 | mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp |
 | mlir/include/mlir/Conversion/LLVMCommon/Pattern.h |
 | mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp |
 | mlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp |
 | mlir/lib/Dialect/Tensor/Transforms/Bufferize.cpp |
 | mlir/lib/Dialect/StandardOps/Transforms/TensorConstantBufferize.cpp |
 | mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp |
 | mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp |
 | mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp |
 | mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp |
 | mlir/lib/Dialect/X86Vector/Transforms/LegalizeForLLVMExport.cpp |
 | mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp |
 | mlir/lib/Dialect/AMX/Transforms/LegalizeForLLVMExport.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp |
 | mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp |
 | mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp |
 | mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp |
 | mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp |
 | mlir/lib/Dialect/StandardOps/Transforms/DecomposeCallGraphTypes.cpp |
 | mlir/include/mlir/Transforms/DialectConversion.h |
 | mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp |
 | mlir/lib/Dialect/StandardOps/Transforms/FuncConversions.cpp |
 | mlir/lib/Conversion/MemRefToSPIRV/MemRefToSPIRV.cpp |
 | mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp |
 | mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp |
 | mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp |
 | mlir/docs/Bufferization.md |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
Commit
ef976337f581dd8a80820a8b14b4bbd70670b7fc
by riddleriver[mlir:OpConversion] Remove the remaing usages of the deprecated matchAndRewrite methods
This commits updates the remaining usages of the ArrayRef<Value> based matchAndRewrite/rewrite methods in favor of the new OpAdaptor overload.
Differential Revision: https://reviews.llvm.org/D110360
|
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
 | mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp |
 | mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp |
 | mlir/lib/Conversion/GPUCommon/GPUOpsLowering.h |
 | mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp |
 | mlir/test/lib/Conversion/StandardToLLVM/TestConvertCallOp.cpp |
 | mlir/lib/Conversion/GPUCommon/IndexIntrinsicsOpLowering.h |
 | mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/include/mlir/Conversion/LLVMCommon/VectorPattern.h |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp |
 | mlir/include/mlir/Conversion/LLVMCommon/Pattern.h |
 | mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp |
 | mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp |
 | mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp |
 | mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp |
 | mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp |
 | mlir/lib/Conversion/GPUToNVVM/WmmaOpsToNvvm.cpp |
 | mlir/lib/Conversion/OpenACCToLLVM/OpenACCToLLVM.cpp |
Commit
e09a1dc47515d27ba5ca572a225208bb0d79fb3f
by anirudh_prasad[SystemZ][z/OS] Add GOFF Support to the DataLayout
- This patch adds in the GOFF mangling support to the LLVM data layout string. A corresponding additional line has been added into the data layout section in the language reference documentation. - Furthermore, this patch also sets the right data layout string for the z/OS target in the SystemZ backend.
Reviewed By: uweigand, Kai, abhina.sreeskantharajan, MaskRay
Differential Revision: https://reviews.llvm.org/D109362
|
 | clang/lib/Basic/Targets/SystemZ.h |
 | llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp |
 | llvm/include/llvm/IR/DataLayout.h |
 | llvm/unittests/IR/ManglerTest.cpp |
 | clang/test/CodeGen/target-data.c |
 | llvm/lib/IR/DataLayout.cpp |
 | llvm/docs/LangRef.rst |
Commit
ff0b62dd8898e58df297f76285a7e613d745db3e
by Louis Dionne[libc++][NFC] Mark LWG3158 as implemented
It has been implemented in 59e26308e60a.
|
 | libcxx/docs/Status/Cxx20Issues.csv |
Commit
ac51ad24a75c02152f8ece943d65de9a1c4e947a
by jay.foad[LiveIntervals] Fix asan debug build failures
Call RemoveMachineInstrFromMaps before erasing instrs. repairIntervalsInRange will do this for you after erasing the instruction, but it's not safe to rely on it because assertions in SlotIndexes::removeMachineInstrFromMaps refer to fields in the erased instruction.
This fixes asan buildbot failures caused by D110328.
|
 | llvm/lib/CodeGen/TwoAddressInstructionPass.cpp |
Commit
8ec7d9b8f875368a5f92596332cd05059df6bbd2
by dblaikieDebugInfo: Move the '=' version of -gsimple-template-names to the frontend
Based on feedback from Paul Robinson on 38c09ea that the 'mangled' mode is only useful as an LLVM-developer-internal tool in combination with llvm-dwarfdump --verify, so demote that to a frontend-only (not driver) option. The driver support is simply -g{no-,}simple-template-names to switch on simple template names, without the option to use the mangled template name scheme there.
|
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/include/clang/Driver/Options.td |
 | clang/test/Driver/debug-options.c |
Commit
a64e46880c23494ab0d87d72a3ea6618fc04bd91
by Louis Dionne[libc++][NFC] Update status of old issue LWG2560 -- we implement it properly
|
 | libcxx/docs/Status/Cxx17Issues.csv |
Commit
a5211bf365dd56b644516e70a9ee31db06b5c70e
by david.green[ARM] Addition jump table plus while loop block placement pass test.
Also regenerated the file, whilst here.
|
 | llvm/test/CodeGen/Thumb2/mve-wls-block-placement.mir |