Commit
6f300105d21e1f3bf7f0f92c2564c29f0cab8fb9
by tkeith[flang] Fix bug with IMPORT of USE of USE
When a module contained an import of a use-association of a use-association, we weren't recognizing that the symbols was needed. The fix is the follow all of the use-associations using `GetUltimate()`.
Differential Revision: https://reviews.llvm.org/D79737
|
 | flang/test/Semantics/modfile36.f90 |
 | flang/lib/Semantics/mod-file.cpp |
Commit
c86fd3333dd4d29b302c93eb1dd7b5a149109904
by johannes[Attributor] Force update of "newly live" abstract attributes
During an update of AAIsDead, new instructions become live. If we query information from them, the result is often just the initial state, e.g., for call site `noreturn` and `nounwind`. We will now trigger an update for cached attributes during the AAIsDead update, though other AAs might later use the same API.
|
 | llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll |
 | llvm/test/Transforms/Attributor/readattrs.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll |
 | llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll |
 | llvm/test/Transforms/Attributor/dereferenceable-2.ll |
 | llvm/test/Transforms/Attributor/noreturn_sync.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/naked-return.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/reserve-tbaa.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/musttail-call.ll |
 | llvm/test/Transforms/Attributor/alwaysinline.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/test/Transforms/Attributor/internal-noalias.ll |
Commit
c115a78f0d2ac59b6f53634fd057f45211e04a96
by johannes[Attributor] Make AAIsDead dependences optional to prevent top state
We should never give up on AAIsDead as it guards other AAs from unreachable code (in which SSA properties are meaningless). We did however use required dependences on some queries in AAIsDead which caused us to invalidate AAIsDead if the queried AA got invalidated. We now use optional dependences instead. The bug that exposed this is added to the liveness.ll test and other test changes show the impact.
Bug report by @sdmitriev.
|
 | llvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll |
 | llvm/test/Transforms/Attributor/dereferenceable-1.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll |
 | llvm/test/Transforms/Attributor/norecurse.ll |
 | llvm/test/Transforms/Attributor/internal-noalias.ll |
 | llvm/test/Transforms/Attributor/readattrs.ll |
 | llvm/test/Transforms/Attributor/misc.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll |
 | llvm/test/Transforms/Attributor/align.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll |
 | llvm/test/Transforms/Attributor/nonnull.ll |
 | llvm/test/Transforms/Attributor/nocapture-2.ll |
 | llvm/test/Transforms/Attributor/nofree.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll |
 | llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll |
 | llvm/test/Transforms/Attributor/returned.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll |
 | llvm/test/Transforms/Attributor/range.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll |
 | llvm/test/Transforms/Attributor/liveness.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll |
 | llvm/test/Transforms/Attributor/noalias.ll |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll |
Commit
8d94d3c3b44c3a27a69b153cef9be4b8e481150e
by johannes[Attributor][FIX] Disallow function signature rewrite for casted calls
We will now ensure ensure the return type of called function is the type of all call sites we are going to rewrite. This avoids a problem partially fixed by D79680. The part that was not covered is a use of this "weird" casted call site (see `@func3` in `misc_crash.ll`).
misc_crash.ll checks are auto-generated now.
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/test/Transforms/Attributor/misc_crash.ll |
Commit
5f05c2f59a7fc666605a74e8616af17da8efa132
by spatel[CGP] remove duplicate function for finding a splat shuffle; NFC
|
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
Commit
379e68a763097bed55556c6dc7453e4b732e3d68
by zbrid[clang][SLH] Add __has_feature(speculative_load_hardening)
SLH doesn't support asm goto and is unlikely to ever support it. Users of asm goto need a way to choose whether to use asm goto or fallback to an SLH compatible code path when SLH is enabled. This feature flag will give users this ability.
Tested via unit test
Reviewed By: mattdr
Differential Revision: https://reviews.llvm.org/D79733
|
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/include/clang/Basic/Features.def |
 | clang/include/clang/Basic/LangOptions.def |
 | clang/lib/Driver/ToolChains/Clang.cpp |
Commit
cd7cb1f4ce3ffc8be1146eeba28ae7dc50089459
by echristoUpdate lldb for rG10658691951f to avoid Werror messages around new unhandled matrix types.
|
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
Commit
d12d05a73142af287a698e5df62d7b7b1eefdf3e
by ntv[mlir][Linalg] Introduce a helper function for staged pattern application
Summary: This revision introduces a helper function to allow applying rewrite patterns, interleaved with more global transformations, in a staged fashion: 1. the first stage consists of an OwningRewritePatternList. The RewritePattern in this list are applied once and in order. 2. the second stage consists of a single OwningRewritePattern that is applied greedily until convergence. 3. the third stage consists of applying a lambda, generally used for non-local transformation effects.
This allows creating custom fused transformations where patterns can be ordered and applied at a finer granularity than a sequence of traditional compiler passes.
A test that exercises these behaviors is added.
Differential Revision: https://reviews.llvm.org/D79518
|
 | mlir/test/Dialect/Linalg/transform-patterns-matmul-to-vector.mlir |
 | mlir/test/lib/Transforms/TestLinalgTransforms.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp |
 | mlir/include/mlir/IR/PatternMatch.h |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h |
Commit
609ef948387ba40e3693c2bd693d82ca34dcdc02
by martin[CMake] Fix building with -DBUILD_SHARED_LIBS=ON on mingw
Set the right target name in clang/examples/Attribute.
Add a missing dependency in the TableGen GlobalISel sublibrary.
Skip building the Bye pass plugin example on windows; plugins that should have undefined symbols that are found in the host process aren't supported on windows - this matches what was done for a unit test in bc8e44218810c0db6328b9809c959ceb7d43e3f5.
|
 | llvm/examples/Bye/CMakeLists.txt |
 | clang/examples/Attribute/CMakeLists.txt |
 | llvm/utils/TableGen/GlobalISel/CMakeLists.txt |
Commit
08b8b724ee3ac7ae7f516e036616620aa33968f1
by craig.topper[X86] Add inline assembly load hardening mitigation for Load Value Injection (LVI)
Added code to X86AsmParser::emitInstruction() to add an LFENCE after each instruction that may load, and emit a warning if it encounters an instruction that may be vulnerable, but cannot be automatically mitigated.
Differential Revision: https://reviews.llvm.org/D76158
|
 | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp |
 | llvm/test/CodeGen/X86/lvi-hardening-inline-asm.ll |
Commit
efd758ac5aeab85e8c3180f96f527fc7ffe4d2e0
by llvm-devRISCVAttributeParser.h - remove unnecessary ScopedPrinter.h include. NFC.
All uses of ScopedPrinter are in terms of ELFAttributeParser which are handled by ELFAttributeParser.h
|
 | llvm/include/llvm/Support/RISCVAttributeParser.h |
Commit
334a4159eca05b0d77972a142fa957311c3247b1
by reidtatge[mlir][Vector] NFC - Rename vector.strided_slice into vector.extract_strided_slice
Differential Revision: https://reviews.llvm.org/D79734
|
 | mlir/test/Dialect/Vector/invalid.mlir |
 | mlir/test/Dialect/Vector/ops.mlir |
 | mlir/test/Dialect/Vector/vector-contract-transforms.mlir |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/test/Dialect/Vector/canonicalize.mlir |
 | mlir/test/Dialect/Vector/vector-slices-transforms.mlir |
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
 | mlir/lib/Dialect/Vector/VectorOps.cpp |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir |
Commit
80d133b24f77d1b9d351251315606441c971ef9b
by ntv[mlir] Revisit std.subview handling of static information.
Summary: The main objective of this revision is to change the way static information is represented, propagated and canonicalized in the SubViewOp.
In the current implementation the issue is that canonicalization may strictly lose information because static offsets are combined in irrecoverable ways into the result type, in order to fit the strided memref representation.
The core semantics of the op do not change but the parser and printer do: the op always requires `rank` offsets, sizes and strides. These quantities can now be either SSA values or static integer attributes.
The result type is automatically deduced from the static information and more powerful canonicalizations (as powerful as the representation with sentinel `?` values allows). Previously static information was inferred on a best-effort basis from looking at the source and destination type.
Relevant tests are rewritten to use the idiomatic `offset: x, strides : [...]`-form. Bugs are corrected along the way that were not trivially visible in flattened strided memref form.
It is an open question, and a longer discussion, whether a better result type representation would be a nicer alternative. For now, the subview op carries the required semantic.
Reviewers: ftynse, mravishankar, antiagainst, rriddle!, andydavis1, timshen, asaadaldien, stellaraccident
Reviewed By: mravishankar
Subscribers: aartbik, bondhugula, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, bader, grosul1, frgossen, Kayjukh, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79662
|
 | mlir/test/Dialect/Linalg/promote.mlir |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
 | mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/test/Conversion/StandardToSPIRV/legalization.mlir |
 | mlir/test/IR/core-ops.mlir |
 | mlir/test/IR/invalid-ops.mlir |
 | mlir/test/Conversion/StandardToSPIRV/subview-to-spirv.mlir |
 | mlir/test/Conversion/StandardToLLVM/invalid.mlir |
 | mlir/test/Dialect/Affine/ops.mlir |
Commit
310d32cb80a611e6384a921e85607fea05841f26
by Stanislav.Mekhanoshin[AMDGPU] Fix promote alloca which is already vector
Just do not touch loads and stores which are already vector. Previously pass was just unable to see these loads and stores because these were hidden bitcasts.
Differential Revision: https://reviews.llvm.org/D79738
|
 | llvm/test/CodeGen/AMDGPU/vector-alloca-bitcast.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp |
Commit
8d7796cf9427a0c361a5831e4371ff030b98dfac
by echristoFix a few clang-tidy warnings about auto * and const auto.
|
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
Commit
44f7b4024982e75dd7826a93558242d3c9f1aed8
by wanyu9511Add vendor macro to "lld"
Summary: Add the vendor macro to "lld" for extended version output support, such that it's able to print additional version info. This is consistent with the Clang and LLVM version printer, and the additional version message can be provided via PACKAGE_VENDOR.
Reviewers: hubert.reinterpretcast, kbarton, cebowleratibm, rzurob, ruiu
Reviewed By: hubert.reinterpretcast
Subscribers: emaste, mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79026
|
 | lld/CMakeLists.txt |
 | lld/Common/Version.cpp |
Commit
756d6959d7ac95969cc0127765bdcbee3804547c
by hanchung[mlir][StandardToSPIRV] Add support for lowering index_cast to SPIR-V.
Differential Revision: https://reviews.llvm.org/D79644
|
 | mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir |
 | mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp |
Commit
67b950be6d48eb4f8d9d4c450f590b64e769df5d
by eugenis[hwasan] Fix allocator alignment.
Summary: Fix hwasan allocator not respecting the requested alignment when it is higher than a page, but still within primary (i.e. [2048, 65536]).
Reviewers: pcc, hctim, cryptoad
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D79656
|
 | compiler-rt/lib/sanitizer_common/sanitizer_common.h |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cpp |
 | compiler-rt/test/hwasan/TestCases/malloc-align.c |
Commit
020022e12e03fb7e6b0405bc18a87921a11cde7e
by echristoFix auto -> auto * clang tidy.
|
 | lld/MachO/SyntheticSections.cpp |
Commit
fab08bf4899e40d02d8bf394a63499ac679ac61c
by Jonas Devlieghere[YAMLTraits] Add trait for char
Add a YAML trait for char.
Differential revision: https://reviews.llvm.org/D79745
|
 | llvm/unittests/Support/YAMLIOTest.cpp |
 | llvm/include/llvm/Support/YAMLTraits.h |
 | llvm/lib/Support/YAMLTraits.cpp |
Commit
89d3031b3ce13cc453d04cf02036a5e7d6b72524
by thakisllvm-lit.in: Use a raw string for LLVM_SOURCE_DIR
In case the path from cmake build dir contains a backslash escape on Windows (which uses \ as path separator).
While here, consistently use one form of quotes in this file.
No intended behavior change.
|
 | llvm/utils/llvm-lit/llvm-lit.in |
Commit
11e1cf51fb77c3a611b95c3f829ccdfb270b273d
by thakis[gn build] Make config_map computation in llvm-lit more table-driven.
No behavior change.
|
 | llvm/utils/gn/secondary/llvm/utils/llvm-lit/BUILD.gn |
Commit
288c9e81781e5468cf6db5c4f6e579f39cfe72ba
by ditaliano[GlobalISel] Remove debug locations when emitting G_FCONSTANT.
<rdar://problem/62991543>
|
 | llvm/test/CodeGen/AArch64/GlobalISel/fconstant-dbg-loc.ll |
 | llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp |
Commit
18324bb3d9175d000c6b83e3383a8feecfafdfed
by thakis[gn build] Make paths in generated llvm-lit relative.
This ports d4638cba and e613f0ee to the GN build. Since paths in the generated lit.site.cfg.py files still contain absolute paths in the GN build, this isn't very useful yet.
No intended behavior change.
|
 | llvm/utils/gn/secondary/llvm/utils/llvm-lit/BUILD.gn |
Commit
d0e7fd6b624b1943f3780a69883690017d2efad2
by jdenny.ornlRevert "[FileCheck] Support comment directives"
This reverts commit 9a9a5f9893c8db05cebc8818eb8485bff61f7c74 to try to fix a bot:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/23489
|
 | llvm/utils/FileCheck/FileCheck.cpp |
 | llvm/test/FileCheck/comment/after-words.txt |
 | llvm/test/FileCheck/validate-check-prefix.txt |
 | llvm/test/FileCheck/first-character-match.txt |
 | clang/test/CodeGen/default-address-space.c |
 | llvm/test/FileCheck/comment/unused-check-prefixes.txt |
 | llvm/docs/CommandGuide/FileCheck.rst |
 | llvm/lib/Support/FileCheck.cpp |
 | llvm/test/Assembler/drop-debug-info-nonzero-alloca.ll |
 | llvm/test/FileCheck/comment/suppresses-checks.txt |
 | clang/test/CodeGenOpenCL/addr-space-struct-arg.cl |
 | llvm/include/llvm/Support/FileCheck.h |
 | llvm/test/FileCheck/comment/within-checks.txt |
 | llvm/test/FileCheck/comment/blank-comments.txt |
 | llvm/test/FileCheck/comment/unused-comment-prefixes.txt |
 | llvm/test/FileCheck/comment/bad-comment-prefix.txt |
 | clang/test/Driver/hip-device-libs.hip |
 | llvm/test/FileCheck/comment/suffixes.txt |
Commit
e1ed4d9eb506a38772bfa659dcc09052eaff2e5d
by jdenny.ornlRevert "[FileCheck] Make invalid prefix diagnostics more precise"
This reverts commit a78e13745d4ee4a42e41ebbe698159f651515fc5 to try to fix a bot:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/23489
|
 | llvm/test/FileCheck/validate-check-prefix.txt |
 | llvm/utils/FileCheck/FileCheck.cpp |
 | llvm/lib/Support/FileCheck.cpp |
Commit
09253b608a52645e618810e2d5e5a3f3471980b2
by Austin.Kerbow[AMDGPU] Allow spilling FP to memory
If there are no available lanes in a reserved VGPR, no free SGPR, and no unused CSR VGPR when trying to save the FP it needs to be spilled to memory as a last resort. This can be done in the prolog/epilog if we manually add the spill and manage exec.
Differential Revision: https://reviews.llvm.org/D79610
|
 | llvm/lib/Target/AMDGPU/SIFrameLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll |
Commit
5633813bf376ef12056cc8ce34c03c445d0dbce5
by jpienaar[MLIR] Fix several misc issues in in Toy tutorial
Summary: - Fix comments in several places - Eliminate extra ' in AST dump and adjust tests accordingly
Differential Revision: https://reviews.llvm.org/D78399
|
 | mlir/docs/Tutorials/Toy/Ch-1.md |
 | mlir/examples/toy/Ch5/mlir/Dialect.cpp |
 | mlir/test/Examples/Toy/Ch3/ast.toy |
 | mlir/examples/toy/Ch3/include/toy/Ops.td |
 | mlir/examples/toy/Ch6/parser/AST.cpp |
 | mlir/test/Examples/Toy/Ch4/ast.toy |
 | mlir/examples/toy/Ch2/parser/AST.cpp |
 | mlir/test/Examples/Toy/Ch1/ast.toy |
 | mlir/examples/toy/Ch7/parser/AST.cpp |
 | mlir/docs/Tutorials/Toy/Ch-5.md |
 | mlir/examples/toy/Ch2/mlir/Dialect.cpp |
 | mlir/examples/toy/Ch3/parser/AST.cpp |
 | mlir/examples/toy/Ch4/mlir/Dialect.cpp |
 | mlir/examples/toy/Ch6/include/toy/Ops.td |
 | mlir/examples/toy/Ch7/mlir/Dialect.cpp |
 | mlir/docs/Tutorials/Toy/Ch-3.md |
 | mlir/examples/toy/Ch4/include/toy/Ops.td |
 | mlir/test/Examples/Toy/Ch5/ast.toy |
 | mlir/include/mlir/ExecutionEngine/OptUtils.h |
 | mlir/test/Examples/Toy/Ch7/ast.toy |
 | mlir/examples/toy/Ch4/parser/AST.cpp |
 | mlir/examples/toy/Ch6/mlir/Dialect.cpp |
 | mlir/test/Examples/Toy/Ch7/struct-ast.toy |
 | mlir/examples/toy/Ch5/parser/AST.cpp |
 | mlir/examples/toy/Ch5/include/toy/Ops.td |
 | mlir/examples/toy/Ch2/include/toy/Ops.td |
 | mlir/docs/Tutorials/Toy/Ch-2.md |
 | mlir/examples/toy/Ch3/mlir/Dialect.cpp |
 | mlir/examples/toy/Ch7/include/toy/Ops.td |
 | mlir/examples/toy/Ch1/parser/AST.cpp |
 | mlir/test/Examples/Toy/Ch2/ast.toy |
 | mlir/test/Examples/Toy/Ch6/ast.toy |
Commit
a8874c76e8ae9ca67f6806f4c27ac8ba94232a21
by efriedma[AArch64][SVE] Add patterns for VSELECT of immediates.
This covers forms involving "CPY (immediate, zeroing)".
This doesn't handle the case where the operands are reversed, and the condition is freely invertible. Not sure how to handle that. Maybe a DAGCombine.
Differential Revision: https://reviews.llvm.org/D79598
|
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
 | llvm/test/CodeGen/AArch64/sve-vselect-imm.ll |
Commit
117e5609e98b43f925c678b72f816ad3a1c3eee7
by Saiyedul.Islam[AMDGPU] Reserving VGPR for future SGPR Spill
Summary: One VGPR register is allocated to handle a future spill of SGPR if "--amdgpu-reserve-vgpr-for-sgpr-spill" option is used
Reviewers: arsenm, rampitec, msearles, cdevadas
Reviewed By: arsenm
Subscribers: madhur13490, qcolombet, kerbowa, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits
Tags: #amdgpu, #llvm
Differential Revision: https://reviews.llvm.org/D70379
|
 | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h |
 | llvm/test/CodeGen/AMDGPU/reserve-vgpr-for-sgpr-spill.ll |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.h |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
Commit
c9c930ae67c38b93451aa979de723723aec0067d
by efriedma[SelectionDAG] Don't promote the alignment of allocas beyond the stack alignment.
allocas in LLVM IR have a specified alignment. When that alignment is specified, the alloca has at least that alignment at runtime.
If the specified type of the alloca has a higher preferred alignment, SelectionDAG currently ignores that specified alignment, and increases the alignment. It does this even if it would trigger stack realignment. I don't think this makes sense, so this patch changes that.
I was looking into this for SVE in particular: for SVE, overaligning vscale'ed types is extra expensive because it requires realigning the stack multiple times, or using dynamic allocation. (This currently isn't implemented.)
I updated the expected assembly for a couple tests; in particular, for arg-copy-elide.ll, the optimization in question does not increase the alignment the way SelectionDAG normally would. For the rest, I just increased the specified alignment on the allocas to match what SelectionDAG was inferring.
Differential Revision: https://reviews.llvm.org/D79532
|
 | llvm/test/CodeGen/X86/load-local-v3i129.ll |
 | llvm/test/CodeGen/X86/avx512-intel-ocl.ll |
 | llvm/test/CodeGen/X86/arg-copy-elide.ll |
 | llvm/test/CodeGen/Thumb2/mve-basic.ll |
 | llvm/test/CodeGen/X86/movtopush.ll |
 | llvm/test/CodeGen/AArch64/sve-alloca-stackid.ll |
 | llvm/test/CodeGen/ARM/alloc-no-stack-realign.ll |
 | llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll |
 | llvm/test/CodeGen/X86/avx2-vbroadcast.ll |
 | llvm/test/CodeGen/AMDGPU/private-element-size.ll |
Commit
0205fabe5dfbc77a4a42b9961bcbbd6eccace93e
by kazu[Inlining] Make shouldBeDeferred static (NFC)
Summary: This patch makes shouldBeDeferred static because it is called only from shouldInline in the same .cpp file.
Reviewers: davidxl, mtrofin
Reviewed By: mtrofin
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79750
|
 | llvm/include/llvm/Analysis/InlineAdvisor.h |
 | llvm/lib/Analysis/InlineAdvisor.cpp |
Commit
91259bf9c68ef72cbc0ce9230665808d10dec416
by thakis[gn build] Use relative paths in generated lit.site.cfg.py files for llvm and clang.
This ports a16ba6fea2e554f to the GN build.
No intended behavior change.
|
 | llvm/utils/gn/secondary/llvm/utils/llvm-lit/lit_path_function.gni |
 | llvm/utils/gn/secondary/llvm/utils/llvm-lit/BUILD.gn |
 | llvm/utils/gn/secondary/clang/test/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/test/BUILD.gn |
Commit
1429e4c3992d2a5f90de5879773b6cf5a050cb5e
by Austin.Kerbow[AMDGPU][GlobalISel] Revise handling of wide loads in RegBankSelect
When splitting loads in RegBankSelect G_EXTRACT_VECTOR_ELT were being added which could not be selected. Since invoking the legalizer will generate instructions that split and combine wide loads, we can remove the redundant repair instructions which are added by RegBankSelect.
Differential Revision: https://reviews.llvm.org/D75547
|
 | llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-load.mir |
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp |
Commit
2aa0217add1adbcabbc16e3ec44937e4277e117b
by jdenny.ornl[FileCheck] Make invalid prefix diagnostics more precise
This will prove especially helpful after D79276, which introduces comment prefixes. Specifically, identifying whether there's a uniqueness violation will be helpful as prefixes will be required to be unique across both check prefixes and comment prefixes.
Also, remove a related comment about `cl::list` that no longer seems relevant now that FileCheck is also a library.
Reviewed By: jhenderson, thopre
Differential Revision: https://reviews.llvm.org/D79375
|
 | llvm/utils/FileCheck/FileCheck.cpp |
 | llvm/lib/Support/FileCheck.cpp |
 | llvm/test/FileCheck/validate-check-prefix.txt |
Commit
e8c13c182a562f45287d6b8da612264d09027087
by zoecarver[libcxx] shared_ptr changes from library fundamentals (P0414R2).
Implements P0414R2: * Adds support for array types in std::shared_ptr. * Adds reinterpret_pointer_cast for shared_ptr.
Differential Revision: https://reviews.llvm.org/D62259
|
 | libcxx/include/memory |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/dynamic_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/reinterpret_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/default.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_pointer.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/types.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bracket.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_arrow.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bool.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.assign/shared_ptr_Y.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/static_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bracket.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_copy_move.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/const_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.protected.fail.cpp |
 | libcxx/www/cxx1z_status.html |
Commit
eb81de2de4003e3045fdf743e093f77e37aee9bf
by echristoTemporarily Revert "[lld-macho] Re-add dylink-lazy test" as it appears to be still failing.
This reverts commit 723c46e645dbe23942c926d2cb800ce020df6b8b.
|
 | lld/test/MachO/dylink-lazy.s |
Commit
59a299cbb303b23fb26992bcae0b32294b1d45f2
by echristoFix a release+noasserts werror for unused variable.
|
 | llvm/lib/Target/AMDGPU/SIFrameLowering.cpp |
Commit
2b8b783b1ab4a2388d5d80136221729871f65a32
by Jason MolendaQuote error string from qLaunchSuccess
If the error message from qLaunchSucess included a gdb RSP metacharacter, it could crash lldb. Apply the binary escaping to the string before sending it to lldb; lldb promiscuously applies the binary escaping protocol on packets it receives.
Also fix a small bug in cstring_to_asciihex_string where a high bit character (eg utf-8 chars) would not be quoted correctly due to signed char fun.
Differential Revision: https://reviews.llvm.org/D79614
rdar://problem/62873581
|
 | lldb/tools/debugserver/source/RNBRemote.cpp |
Commit
40f56c8cf189249465997dad8bce413b71ccbef0
by ajcbik[mlir] [VectorOps] Replace zero-scalar + splat into direct zero vector constant
Summary: The scalar zero + splat yields more intermediate code than the direct dense zero constant, and ultimately is lowered to exactly the same LLVM IR operations, so no point wasting the intermediate code.
Reviewers: nicolasvasilache, andydavis1, reidtatge
Reviewed By: nicolasvasilache
Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79758
|
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
Commit
2e9f1153c5d467ea1067e3744345a4e1ea2e9bc3
by pengfei.wang[x86/SLH][NFC] Add a test to produce a failed generation.
|
 | llvm/test/CodeGen/X86/speculative-load-hardening-no-spill.ll |
Commit
013f06703e132c31cf3e8bdb2ae7c6b89b8f8fc2
by maskray[gcov] Emit GCOV_TAG_OBJECT_SUMMARY/GCOV_TAG_PROGRAM_SUMMARY correctly and fix llvm-cov's decoding of runcount
gcov 9 (r264462) started to use GCOV_TAG_OBJECT_SUMMARY. Before, GCOV_TAG_PROGRAM_SUMMARY was used. libclang_rt.profile should emit just one tag according to the version.
Another bug introduced by rL194499 is that the wrong runcount field was selected.
Fix the two bugs so that gcov can correctly decode "Runs:" from libclang_rt.profile produced .gcda files, and llvm-cov gcov can correctly decode "Runs:" from libgcov produced .gcda files.
|
 | llvm/test/tools/llvm-cov/Inputs/test_no_options.cpp.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_objdir.cpp.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-c_-u.h.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_paths.h.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-u.cpp.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-c_-u.cpp.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_-a.cpp.gcov |
 | compiler-rt/lib/profile/GCDAProfiling.c |
 | llvm/test/tools/llvm-cov/Inputs/test_paths.cpp.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_no_options.h.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_-a_-b.cpp.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_objdir.h.gcov |
 | llvm/test/tools/llvm-cov/gcov-4.7.c |
 | llvm/test/tools/llvm-cov/gcov-9.c |
 | llvm/test/tools/llvm-cov/Inputs/test_missing.h.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-u.h.gcov |
 | llvm/test/tools/llvm-cov/Inputs/test_missing.cpp.gcov |
 | llvm/lib/ProfileData/GCOV.cpp |
 | llvm/test/tools/llvm-cov/Inputs/test_-a.h.gcov |
 | llvm/test/tools/llvm-cov/gcov-8.c |
 | llvm/test/tools/llvm-cov/Inputs/test_-a_-b.h.gcov |
Commit
93aee9ca8698111b2df2fda2a1a5a2f3ce4fc014
by SourabhSingh.Tomar[DWARF5]: Added support for dumping strx forms in llvm-dwarfdump
This patch adds support for dumping DW_MACRO_define_strx, DW_MACRO_undef_strx in llvm-dwarfdump. These forms are currently supported only in debug_macro section.
Reviewed By: ikudrin, dblaikie
Differential Revision: https://reviews.llvm.org/D78736
|
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h |
 | llvm/test/DebugInfo/X86/debug-macinfo-strp.s |
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/test/DebugInfo/X86/debug-macro-empty-macro-offset.s |
 | llvm/test/DebugInfo/X86/debug-macinfo-strx.s |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp |
 | llvm/test/DebugInfo/X86/debug-macro-empty-str-offset.s |
 | llvm/test/DebugInfo/X86/debug-macro-multi-cu-strx.s |
Commit
1f707cc9908173951fe7ed0a2d8e90dc8923651d
by martinPartially revert "[CMake] Fix building with -DBUILD_SHARED_LIBS=ON on mingw"
This reverts parts of commit 609ef948387ba40e3693c2bd693d82ca34dcdc02, as it caused build failures on windows if LLVM_BUILD_EXAMPLES was enabled, due to Bye being added as a dependency of the lit tests.
|
 | llvm/examples/Bye/CMakeLists.txt |
Commit
4c684b91d562d96ab5a34bb989693e92ba9ec9eb
by maskrayRevert part of D49132 "[gcov] Fix gcov profiling on big-endian machines"
D49132 is partially correct. For 64-bit values, the lower 32-bit part comes before the higher 32-bit part (in a little-endian manner).
For 32-bit values, libgcov reads/writes 32-bit values in native endianness.
|
 | compiler-rt/lib/profile/GCDAProfiling.c |
Commit
f98709a982b358a2df3ee6103c8b9a81cbc81d26
by maskray[gcov] Fix big-endian problems
In a big-endian .gcda file, the first four bytes are "gcda" instead of "adcg". All 32-bit values are in big-endian.
With this change, libclang_rt.profile can hopefully produce gcov compatible output.
|
 | compiler-rt/lib/profile/GCDAProfiling.c |
Commit
5eb55483ebd183985e6f397491ac822304e3a893
by zoecarverRevert "[libcxx] shared_ptr changes from library fundamentals (P0414R2)."
This reverts commit e8c13c182a562f45287d6b8da612264d09027087.
|
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/reinterpret_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bracket.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/types.pass.cpp |
 | libcxx/include/memory |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bool.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.assign/shared_ptr_Y.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/default.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bracket.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_pointer.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.protected.fail.cpp |
 | libcxx/www/cxx1z_status.html |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_copy_move.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/static_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/dynamic_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/const_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_arrow.fail.cpp |
Commit
e8d2ff22f09fea835ffc778e41a2acae4f4a5632
by qiucofan[PowerPC] Add fma/fsqrt/fmax strict-fp intrinsics
This patch adds strict-fp intrinsics support for fma, fsqrt, fmaxnum and fminnum on PowerPC.
Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D72749
|
 | llvm/test/CodeGen/PowerPC/fp-strict-minmax.ll |
 | llvm/test/CodeGen/PowerPC/fp-strict.ll |
 | llvm/test/CodeGen/PowerPC/fp-strict-f128.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.td |
 | llvm/lib/Target/PowerPC/PPCInstrVSX.td |
Commit
d775841d7d6ee3e8bbf3a420590be9bb19433eaa
by tclin914[RISCV] Make CanLowerReturn protected for downstream maintenance
Summary: For the downstream RISCV maintenance, it would be easier to override and reuse CanLowerReturn for customizing.
Reviewers: asb, lenary, luismarques
Reviewed By: lenary
Subscribers: hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, s.egerton, pzheng, sameer.abuasal, apazos, evandro, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78545
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.h |
Commit
84a9c725742d26df04808a3c7349dbd98684c6cb
by echristoTemporarily Revert "[mlir][shape] Tidy up shape.shape_of" as it's breaking a few tests.
This reverts commit b6045448869a63dc7da3a4c87c124e85101220d7.
Followed up offline with a testcase.
|
 | mlir/test/Dialect/Shape/ops.mlir |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
Commit
5a7276b3548589590b81975d5c3e487dd91ac097
by zeratul976[clangd] Have suppression comments take precedence over warning-as-error
Summary: This matches the clang-tidy behaviour.
Fixes https://github.com/clangd/clangd/issues/375
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79691
|
 | clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp |
 | clang-tools-extra/clangd/ParsedAST.cpp |
Commit
054ed1fd0b8dfbd996299f11dfe2311f428297da
by omair.javaid[LLDB] Disable TestBasicEntryValues.py for arm
TestBasicEntryValues.py fails on arm 32 bit. Currently running on silent master here: http://lab.llvm.org:8014/builders/lldb-arm-ubuntu/
|
 | lldb/test/API/functionalities/param_entry_vals/basic_entry_values/TestBasicEntryValues.py |
Commit
42c7a6d52ba052a195825e81668d88487b3f26cc
by david.sherwood[CodeGen] Fix incorrect uses of getVectorNumElements()
I have fixed up some places in SelectionDAG::getNode() where we used to assert that the number of vector elements for two types are the same. I have changed such cases to assert that the element counts are the same instead. I've added new tests that exercise the code paths for all the truncations. All the extend operations are covered by this existing test:
CodeGen/AArch64/sve-sext-zext.ll
For the ISD::SETCC case I fixed this code path is exercised by these existing tests:
CodeGen/AArch64/sve-fcmp.ll CodeGen/AArch64/sve-intrinsics-int-compares-with-imm.ll
Differential Revision: https://reviews.llvm.org/D79399
|
 | llvm/test/CodeGen/AArch64/sve-trunc.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
57feff93a82c7a7cf538b8a3e05e02ada2fbcae3
by paulsson[SystemZ] Improve foldMemoryOperandImpl: vec->FP conversions
Use FP-mem instructions when folding reloads into single lane (W..) vector instructions.
Only do this when all other operands of the instruction have already been allocated to an FP (F0-F15) register.
Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D76705
|
 | llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp |
 | llvm/test/CodeGen/SystemZ/foldmemop-vec-unary.mir |
 | llvm/lib/Target/SystemZ/SystemZInstrFP.td |
 | llvm/test/CodeGen/SystemZ/int-cmp-56.mir |
 | llvm/test/CodeGen/SystemZ/foldmemop-vec-binops.mir |
 | llvm/test/CodeGen/SystemZ/foldmemop-vec-fusedfp.mir |
 | llvm/test/CodeGen/SystemZ/foldmemop-vec-cmp.mir |
 | llvm/lib/Target/SystemZ/SystemZInstrFormats.td |
 | llvm/test/CodeGen/SystemZ/foldmemop-vec-cc.mir |
 | llvm/lib/Target/SystemZ/SystemZInstrVector.td |
Commit
41ca6058132f554033db0bbdd12032e20237fe0d
by djordje.todorovicRevert "[NFC][DwarfDebug] Avoid default capturing when using lambdas"
Reverting this because we found it isn't that useful. Please see https://reviews.llvm.org/D79616.
This reverts commit rG45e5a32a8bd3.
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
Commit
8b7b84e99d5212fe286d0aa4e2f5d345bcd8b405
by djordje.todorovicRevert "[NFC][DwarfDebug] Prefer explicit to auto type deduction"
This wasn't proposed by the LLVM Style Guide. Please see https://reviews.llvm.org/D79624.
This reverts commit rG2552dc5317e0.
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
Commit
a42e53cccf8da59efe634dbc8242e496aa7a2a37
by echristoFix typos encountered while working on pass pipeline for O1.
|
 | llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp |
 | llvm/test/CodeGen/X86/2010-01-11-ExtraPHIArg.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
Commit
494c7ecef9262b0ee5811b70d49862c0e5186bf6
by sam.parker[NFC][AArch64] Update tests
Add cost model tests for extending loads.
|
 | llvm/test/Analysis/CostModel/AArch64/cast.ll |
Commit
40ef4274600316ed12a26a73265cf34432e1fbf7
by hokein.wuget rid of the NDEBUG usage in RecoveryExpr, NFC.
use the llvm::all_of, per dblaikie's suggestion.
|
 | clang/lib/AST/Expr.cpp |
Commit
6b9e43c67e0b109881db2524ec5207c4a888e7f7
by simon.moll[Openmp][VE] Libomptarget plugin for NEC SX-Aurora
This patch adds a libomptarget plugin for the NEC SX-Aurora TSUBASA Vector Engine (VE target). The code is largely based on the existing generic-elf plugin and uses the NEC VEO and VEOSINFO libraries for offloading.
Differential Revision: https://reviews.llvm.org/D76843
|
 | openmp/libomptarget/plugins/ve/src/rtl.cpp |
 | openmp/libomptarget/plugins/common/elf_common.c |
 | openmp/libomptarget/src/rtl.cpp |
 | openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake |
 | openmp/libomptarget/plugins/CMakeLists.txt |
 | openmp/libomptarget/plugins/ve/CMakeLists.txt |
Commit
1952c86d6146b107770c28e9444d1b35d5dfe58d
by sam.parker[AArch64][CostModel] getCastInstrCost
Pass the instruction to the base implementation.
Differential Revision: https://reviews.llvm.org/D79562
|
 | llvm/test/Analysis/CostModel/AArch64/cast.ll |
 | llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp |
Commit
b4a8091a116a8cee00d635809f3c2e585c6221c4
by sam.parker[ARM][CostModel] Improve getCastInstrCost
- Specifically check for sext/zext users which have 'long' form NEON instructions. - Add more entries to the table for sext/zexts so that we can report more accurately the number of vmovls required for NEON. - Pass the instruction to the pass implementation.
Differential Revision: https://reviews.llvm.org/D79561
|
 | llvm/test/Analysis/CostModel/ARM/mul-cast-vect.ll |
 | llvm/test/Transforms/LoopVectorize/ARM/mul-cast-vect.ll |
 | llvm/test/Analysis/CostModel/ARM/shl-cast-vect.ll |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/ARM/add-cast-vect.ll |
 | llvm/test/Analysis/CostModel/ARM/cast.ll |
 | llvm/test/Analysis/CostModel/ARM/sub-cast-vect.ll |
Commit
9682d0d5dcc50d4583709bcb2e63f1ad630fe9a0
by petre-ionut.tudor[ARM] Refactor lower to S[LR]I optimization
Summary: The optimization has been refactored to fix certain bugs and limitations. The condition for lowering to S[LR]I has been changed to reflect the manual pseudocode description of SLI and SRI operation. The optimization can now handle more cases of operand type and order.
Subscribers: kristof.beyls, hiraditya, danielkiss, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79233
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/arm64-sli-sri-opt.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td |
Commit
d6936be2ef8ce5d5d85b8a6cdd1477cd79688c3a
by sander.desmalen[SveEmitter] Add builtins for svdup and svindex
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D79357
|
 | clang/include/clang/Basic/arm_sve.td |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/lib/CodeGen/CodeGenFunction.h |
 | clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup.c |
Commit
e114bdf072d98756de289bfc0f3aefc4e34304ee
by sam.parker[NFC][AArch64] More cast cost tests
Add truncating stores and casts with users.
|
 | llvm/test/Analysis/CostModel/AArch64/cast.ll |
Commit
9d6064ec49ec189d2ff032927e41bb90ac471ae1
by tclin914Revert "[RISCV] Make CanLowerReturn protected for downstream maintenance"
This reverts commit d775841d7d6ee3e8bbf3a420590be9bb19433eaa.
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.h |
Commit
077d2d6802efefe6680cbae78f90e90ef7f04134
by sander.desmalen[CodeGen][SVE] Add patterns for whole vector predicate select
Added patterns to implement `select i1 %p, <vty> %a, <vty> %b`
Reviewed By: efriedma
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79356
|
 | llvm/test/CodeGen/AArch64/select-sve.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
9e32bf550d13ffbc75671c0968b466e0e5c9dea2
by dave[libcxx testing] Remove ALLOW_RETRIES from sleep_for.pass.cpp
Operating systems are best effort by default, so we cannot assume that sleep-like APIs return as soon as we'd like.
Even if a sleep-like API returns when we want it to, the potential for preemption means that attempts to measure time are subject to delays.
|
 | libcxx/test/libcxx/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp |
Commit
bf2183374a6740a033db1f824b0c6a6e0d2e7ee4
by pierre.vanhoutryve[Target][ARM] Replace re-uses of old VPR values with VPNOTs
Differential Revision: https://reviews.llvm.org/D76847
|
 | llvm/lib/Target/ARM/MVEVPTOptimisationsPass.cpp |
 | llvm/test/CodeGen/Thumb2/mve-pred-not.ll |
 | llvm/test/CodeGen/Thumb2/mve-vpt-blocks.ll |
 | llvm/test/CodeGen/Thumb2/mve-vpt-optimisations.mir |
Commit
24bf8063d677f261f26d8771180cc08d51007a2e
by pierre.vanhoutryve[Target][ARM] Replace outdated getARMVPTBlockMask function
getARMVPTBlockMask was an outdated function that only handled basic block masks: T, TT, TTT and TTTT. This worked fine before the MVE VPT Block Insertion Pass improvements as it was the only kind of masks that it could generate, but now it can generate more complex masks that uses E predicates, so it's dangerous to use that function to calculate VPT/VPST block masks.
I replaced it with 2 different functions: - expandPredBlockMask, in ARMBaseInfo. This adds an "E" or "T" at the end of an existing PredBlockMask. - recomputeVPTBlockMask, in Thumb2InstrInfo. This takes an iterator to a VPT/VPST instruction and recomputes its block mask by looking at the predicated instructions that follows it. This should be used to recompute a block mask after removing/adding a predicated instruction to the block.
The expandPredBlockMask function is pretty much imported from the MVE VPT Blocks pass.
I had to change the ARMLowOverheadLoops and MVEVPTBlocks passes as well so they could use these new functions.
Differential Revision: https://reviews.llvm.org/D78201
|
 | llvm/lib/Target/ARM/Thumb2InstrInfo.cpp |
 | llvm/lib/Target/ARM/Utils/ARMBaseInfo.cpp |
 | llvm/lib/Target/ARM/MVEVPTBlockPass.cpp |
 | llvm/lib/Target/ARM/Utils/ARMBaseInfo.h |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp |
 | llvm/lib/Target/ARM/Thumb2InstrInfo.h |
Commit
e143253fa8bb382a33eb743b28341015d5d0d031
by llvm-devDebugCounter.h - remove unused includes. NFC.
Added explicit StringRef.h include as we need the full definition for several inline functions in DebugCounter.h.
|
 | llvm/include/llvm/Support/DebugCounter.h |
Commit
24ac6a2d7dd0551f9681239075834d37732831d2
by llvm-devFuzzerCLI.h - reduce StringRef.h include to forward declaration. NFC.
|
 | llvm/include/llvm/FuzzMutate/FuzzerCLI.h |
 | llvm/lib/FuzzMutate/FuzzerCLI.cpp |
Commit
45aa1b88534c74246773aab6dd33c3568bb25d24
by llvm-dev[X86][AVX] Use X86ISD::VPERM2X128 for blend-with-zero if optimizing for size
Last part of PR22984 - avoid the zero-register dependency if optimizing for size
|
 | llvm/test/CodeGen/X86/avx-vperm2x128.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
f1f8cffce49fe56817e25f648b29e1a8cfcfac8a
by sam.parker[NFC][AArch64] More casts tests...
Don't use truncs are users because sometimes they're free too.
|
 | llvm/test/Analysis/CostModel/AArch64/cast.ll |
Commit
e03394c6a6ff5832aa43259d4b8345f40ca6a22c
by Yaxun.Liu[CUDA][HIP] Workaround for resolving host device function against wrong-sided function
recommit c77a4078e01033aa2206c31a579d217c8a07569b with fix
https://reviews.llvm.org/D77954 caused regressions due to diagnostics in implicit host device functions.
For now, it seems the most feasible workaround is to treat implicit host device function and explicit host device function differently. Basically in device compilation for implicit host device functions, keep the old behavior, i.e. give host device candidates and wrong-sided candidates equal preference. For explicit host device functions, favor host device candidates against wrong-sided candidates.
The rationale is that explicit host device functions are blessed by the user to be valid host device functions, that is, they should not cause diagnostics in both host and device compilation. If diagnostics occur, user is able to fix them. However, there is no guarantee that implicit host device function can be compiled in device compilation, therefore we need to preserve its overloading resolution in device compilation.
Differential Revision: https://reviews.llvm.org/D79526
|
 | clang/lib/Sema/SemaCUDA.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/SemaCUDA/function-overload.cu |
 | clang/lib/Sema/SemaOverload.cpp |
Commit
0387df7f02f9a0a0239b5a90f840e98b823bc6c1
by llvm-dev[X86] combineX86ShuffleChain - use narrowShuffleMaskElts scale == 1 builtin handling. NFC.
narrowShuffleMaskElts already has the fast-path for scale == 1, no need to reimplement it here.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
7f2db993500923a51c0b0aed650a3e0d4241205b
by melanie.blower[PATCH] #pragma float_control should be permitted in namespace scope.
Summary: Erroneous error diagnostic observed in VS2017 <numeric> header Also correction to propagate usesFPIntrin from template func to instantiation.
Reviewers: rjmccall, erichkeane (no feedback received)
Differential Revision: https://reviews.llvm.org/D79631
|
 | clang/test/Parser/fp-floatcontrol-syntax.cpp |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/Sema/SemaAttr.cpp |
 | clang/test/CodeGen/fp-floatcontrol-pragma.cpp |
Commit
691e82699591d8f336cd6be52436eeff2417fab9
by sam.mccallRevert "[mlir] Revisit std.subview handling of static information."
This reverts commit 80d133b24f77d1b9d351251315606441c971ef9b.
Per Stephan Herhut: The canonicalizer pattern that was added creates forms of the subview op that cannot be lowered.
This is shown by failing Tensorflow XLA tests such as: tensorflow/compiler/xla/service/mlir_gpu/tests:abs.hlo.test Will provide more details offline, they rely on logs from private CI.
|
 | mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir |
 | mlir/test/Conversion/StandardToSPIRV/legalization.mlir |
 | mlir/test/Conversion/StandardToLLVM/invalid.mlir |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
 | mlir/test/Conversion/StandardToSPIRV/subview-to-spirv.mlir |
 | mlir/test/Dialect/Affine/ops.mlir |
 | mlir/test/Dialect/Linalg/promote.mlir |
 | mlir/test/IR/core-ops.mlir |
 | mlir/test/IR/invalid-ops.mlir |
Commit
5d7f5ca0e385ebc05231997a66cdd5f18b9d2f72
by kristof.beylsAdd Linux SVE Ptrace macros.
Differential Revision: https://reviews.llvm.org/D79623
|
 | lldb/source/Plugins/Process/Linux/LinuxPTraceDefines_arm64sve.h |
Commit
f242950fdf7ca5b84d3cadc9a57588af3621e1e8
by benny.kraFold single-use variables into assert
This avoids unused variable warnings in Release builds.
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/lib/Target/ARM/Thumb2InstrInfo.cpp |
Commit
6da5672962c24e2d8752b049eb0921b81256da0a
by rnk[LLD] Rename iDTable -> idTable, NFC
The variable renaming change did not handle this variable well.
|
 | lld/COFF/TypeMerger.h |
 | lld/COFF/PDB.cpp |
Commit
123bee602a260150ff55c74287f583a67ee78f36
by Matthew.ArsenaultAMDGPU: Search for new ROCm bitcode library structure
The current install situation is a mess, but I'm working on fixing it. Search for the target layout instead of one of the N options that exist today.
|
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_isa_version_1012.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/ocml.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_finite_only_on.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_wavefrontsize64_on.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_unsafe_math_off.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/ocml.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_unsafe_math_off.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/hip.amdgcn.bc |
 | clang/test/Driver/rocm-device-libs.cl |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_unsafe_math_on.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_isa_version_803.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_wavefrontsize64_off.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_daz_opt_off.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_finite_only_off.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_isa_version_900.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/opencl.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_daz_opt_on.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_daz_opt_off.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_daz_opt_on.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/ockl.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_correctly_rounded_sqrt_on.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_isa_version_1011.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/opencl.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_isa_version_1010.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_unsafe_math_on.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_finite_only_on.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_isa_version_1011.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_isa_version_900.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/ockl.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/hip.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_correctly_rounded_sqrt_off.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_isa_version_1010.amdgcn.bc |
 | clang/lib/Driver/ToolChains/AMDGPU.cpp |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_wavefrontsize64_off.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_isa_version_1012.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_wavefrontsize64_on.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/lib/oclc_finite_only_off.amdgcn.bc |
 | clang/test/Driver/Inputs/rocm-device-libs/amdgcn/bitcode/oclc_isa_version_803.bc |
Commit
14e184571139ba4c7347ea547074c6d9ec9c7b14
by Matthew.ArsenaultHIP: Merge builtin library handling
Merge with the new --rocm-path handling used for OpenCL. This looks for a usable set of device libraries upfront, rather than giving a generic "no such file or directory error". If any of the required bitcode libraries are missing, this will now produce a "cannot find ROCm installation." error. This differs from the existing hip specific flags by pointing to a rocm root install instead of a single directory with bitcode files.
This tries to maintain compatibility with the existing the --hip-device-lib and --hip-device-lib-path flags, as well as the HIP_DEVICE_LIB_PATH environment variable, or at least the range of uses with testcases. The existing range of uses and behavior doesn't entirely make sense to me, so some of the untested edge cases change behavior. Currently the two path forms seem to have the double purpose of a search path for an arbitrary --hip-device-lib, and for finding the stock set of libraries. Since the stock set of libraries This also changes the behavior when multiple paths are specified, and only takes the last one (and the environment variable only handles a single path).
If --hip-device-lib is used, it now only treats --hip-device-lib-path as the search path for it, and does not attempt to find the rocm installation. If not, --hip-device-lib-path and the environment variable are used as the directory to search instead of the rocm root based path.
This should also automatically fix handling of the options to use wave64.
|
 | clang/test/Driver/rocm-device-libs.cl |
 | clang/test/Driver/hip-device-libs.hip |
 | clang/lib/Driver/ToolChains/AMDGPU.h |
 | clang/lib/Driver/ToolChains/HIP.cpp |
 | clang/lib/Driver/ToolChains/AMDGPU.cpp |
Commit
58f1417ebc1a9714258586a5b873b2d4608ce6a9
by carl.ritson[AMDGPU] Order pos exports before param exports
Summary: Modify export clustering DAG mutation to move position exports before other exports types.
Reviewers: foad, arsenm, rampitec, nhaehnle
Reviewed By: foad
Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79670
|
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.ll |
 | llvm/test/CodeGen/AMDGPU/wait.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUExportClustering.cpp |
Commit
774acdfb8c46de9b4f8a92d80bbbd96e4d467682
by hokein.wu[clangd] Add metrics for selection tree and recovery expressions.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79701
|
 | clang-tools-extra/clangd/Selection.cpp |
 | clang-tools-extra/clangd/unittests/SelectionTests.cpp |
Commit
e9536795a350c6eef9c70d6a302e8b5875252b2e
by jyknightAdd comment for SelectionDAGBuilder::SL field.
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h |
Commit
c8c39185f351e79730843ca6d4c1ad26e4f9f444
by jezng[lld-macho] Re-add dylink-lazy test
This reverts commit eb81de2de4003e3045fdf743e093f77e37aee9bf; the test commands just needed to be run under llvm-lit.
|
 | lld/test/MachO/dylink-lazy.s |
Commit
87b6fd3e02c696b917a75750dea8e33ce00246ec
by jezng[lld-macho] Add support for creating and reading reexported dylibs
This unblocks the linking of real programs, since many core system functions are only available as sub-libraries of libSystem.
Differential Revision: https://reviews.llvm.org/D79228
|
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/InputFiles.h |
 | lld/MachO/SyntheticSections.cpp |
 | lld/MachO/Driver.cpp |
 | lld/MachO/Writer.cpp |
 | lld/MachO/Config.h |
 | lld/test/MachO/sub-library.s |
 | lld/MachO/Options.td |
Commit
5c707fd97c4f2a536eab1aac50581b5461bc21dc
by llvm-project[docs] Corrected inaccuracies in Common Problems section.
Changed the language in LLVM_USE_LINKER to more strongly recommend LLD and to specify that the GNU gold linker is only useful if LLD is unavailable in binary form and it is the first build of LLVM. Added that LLD will help when used on ELF-based platforms.
Corrected information in CMAKE_BUILD_TYPE regarding the Release build type and enabling assertions.
Added option LLVM_ENABLE_ASSERTIONS and mentioned enabling this option with a Release build as an alternative to using a Debug build.
Specified that the LLVM_OPTIMIZED_TABLEGEN option is only for Debug builds, that the LLVM_USE_SPLIT_DWARF option is only available on ELF host platforms, and that setting CLANG_ENABLE_STATIC_ANALYZER to OFF only slightly improves build time.
These changes address comments made in D75425.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D77346
|
 | llvm/docs/GettingStarted.rst |
Commit
ffcaed32ef1cf5226cc376b6c911183db690402f
by flo[Matrix] Check non-dependent elt type before creating DepSizedMatrix.
We should check non-dependent element types before creating a DependentSizedMatrixType. Otherwise we do not generate an error message for dependent-sized matrix types with invalid non-dependent element types, if the template is never instantiated. See the make5 struct in the tests.
It also moves the SEMA template tests to clang/test/SemaTemplate/matrix-type.cpp and introduces a few more test cases.
|
 | clang/test/SemaCXX/matrix-type.cpp |
 | clang/test/SemaTemplate/matrix-type.cpp |
 | clang/lib/Sema/SemaType.cpp |
Commit
bd80a8bb87617a25a1fda0338db3b26637b273a0
by jay.foad[GlobalISel][IRTranslator] New helper function translateCopy. NFC.
Reviewers: arsenm, volkan, t.p.northover, aditya_nandakumar
Subscribers: wdng, rovka, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78377
|
 | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp |
 | llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h |
Commit
989be65b11fa2fbc2cde7e188657636ea9a2da1d
by jay.foad[GlobalISel][IRTranslator] Fix <1 x Ty> handling in ConstantExprs
Summary: ConstantExprs involving operations on <1 x Ty> could translate into MIR that failed to verify with: *** Bad machine code: Reading virtual register without a def ***
The problem was that translate(const Constant &C, Register Reg) had recursive calls that passed the same Reg in for the translation of a subexpression, but without updating VMap for the subexpression first as translate(const Constant &C, Register Reg) expects.
Fix this by using the same translateCopy helper function that we use for translating Instructions. In some cases this causes extra G_COPY MIR instructions to be generated.
Fixes https://bugs.llvm.org/show_bug.cgi?id=45576
Reviewers: arsenm, volkan, t.p.northover, aditya_nandakumar
Subscribers: jvesely, wdng, nhaehnle, rovka, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78378
|
 | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-constantexpr.ll |
Commit
5c10c6e0128a69442b55d324f010f94dbe7eebc9
by whitneyt[PassBuilder] Moved ProfileSummaryAnalysis in buildInlinerPipeline.
Summary: As commented in the code, ProfileSummaryAnalysis is required for inliner pass to query, so this patch moved RequireAnalysisPass<ProfileSummaryAnalysis> in the recently created buildInlinerPipeline. Reviewer: mtrofin, davidxl, tejohnson, dblaikie, jdoerfert, sstefan1 Reviewed By: mtrofin, davidxl, jdoerfert Subscribers: hiraditya, steven_wu, dexonsmith, wuzish, llvm-commits, jsji Tag: LLVM Differential Revision: https://reviews.llvm.org/D79696
|
 | llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll |
 | llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll |
 | llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll |
 | llvm/test/Other/new-pm-thinlto-defaults.ll |
 | llvm/test/Other/new-pm-defaults.ll |
Commit
b56b1e67e38e5f18318b411587a952bc7c586ac4
by maskray[gcov] Default coverage version to '408*' and delete CC1 option -coverage-exit-block-before-body
gcov 4.8 (r189778) moved the exit block from the last to the second. The .gcda format is compatible with 4.7 but
* decoding libgcov 4.7 produced .gcda with gcov [4.7,8) can mistake the exit block, emit bogus `%s:'%s' has arcs from exit block\n` warnings, and print wrong `" returned %s` for branch statistics (-b). * decoding libgcov 4.8 produced .gcda with gcov 4.7 has similar issues.
Also, rename "return block" to "exit block" because the latter is the appropriate term.
|
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp |
 | clang/include/clang/Basic/CodeGenOptions.def |
 | clang/include/clang/Driver/CC1Options.td |
 | llvm/test/Transforms/GCOVProfiling/exit-block.ll |
 | clang/lib/CodeGen/BackendUtil.cpp |
 | llvm/test/Transforms/GCOVProfiling/return-block.ll |
 | llvm/include/llvm/Transforms/Instrumentation.h |
 | clang/lib/Basic/CodeGenOptions.cpp |
 | llvm/include/llvm/ProfileData/GCOV.h |
 | llvm/test/Transforms/GCOVProfiling/version.ll |
Commit
25a95f49b07ff5796f4dfc3d4c05e4c09c6bef4d
by maskray[gcov][test] Fix clang test
|
 | clang/test/CodeGen/code-coverage.c |
Commit
3d49d1cfa768c046394b316d838907f2018390b8
by tlively[WebAssembly] Implement pseudo-min/max SIMD instructions
Summary: As proposed in https://github.com/WebAssembly/simd/pull/122. Since these instructions are not yet merged to the SIMD spec proposal, this patch makes them entirely opt-in by surfacing them only through LLVM intrinsics and clang builtins. If these instructions are made official, these intrinsics and builtins should be replaced with simple instruction patterns.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D79742
|
 | clang/include/clang/Basic/BuiltinsWebAssembly.def |
 | clang/test/CodeGen/builtins-wasm.c |
 | llvm/test/MC/WebAssembly/simd-encodings.s |
 | llvm/include/llvm/IR/IntrinsicsWebAssembly.td |
 | clang/lib/Headers/wasm_simd128.h |
 | llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
Commit
93bd696347aa6348af8d2b042910d5e9226cfbd8
by spatel[VectorCombine] add test to check for iterative improvements; NFC
|
 | llvm/test/Transforms/VectorCombine/X86/insert-binop.ll |
Commit
8c72b0271b841c75e2f005b796fbdbbbbd143ad4
by craig.topper[CodeGen] Use Align in MachineConstantPool.
|
 | llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp |
 | llvm/lib/Target/PowerPC/PPCFastISel.cpp |
 | llvm/include/llvm/CodeGen/MachineConstantPool.h |
 | llvm/lib/Target/ARM/ThumbRegisterInfo.cpp |
 | llvm/lib/Target/X86/X86FastISel.cpp |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp |
 | llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp |
 | llvm/lib/Target/ARM/ARMConstantPoolValue.cpp |
 | llvm/lib/Target/ARM/ARMFastISel.cpp |
 | llvm/lib/CodeGen/MIRParser/MIRParser.cpp |
 | llvm/lib/Target/X86/X86InstructionSelector.cpp |
 | llvm/lib/Target/AArch64/AArch64FastISel.cpp |
 | llvm/lib/Target/ARM/ARMInstructionSelector.cpp |
 | llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp |
 | llvm/lib/CodeGen/MIRPrinter.cpp |
 | llvm/lib/Target/X86/X86InstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMConstantPoolValue.h |
 | llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h |
 | llvm/lib/Target/Mips/MipsConstantIslandPass.cpp |
 | llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp |
 | llvm/lib/Target/ARM/ARMConstantIslandPass.cpp |
 | llvm/lib/Target/ARM/ARMFrameLowering.cpp |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/lib/CodeGen/MachineFunction.cpp |
 | llvm/lib/Target/XCore/XCoreInstrInfo.cpp |
Commit
9f0b736126cb55f194f51c966b0db90aa4cbcd02
by Austin.Kerbow[AMDGPU] Add AGPRs to getRegClassForSizeOnBank
Differential Revision: https://reviews.llvm.org/D79761
|
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp |
Commit
fc373522b044e0b150561204958f0d603fb4caba
by dimitry[arm] Add big-endian version of pcrel fixups for adr instructions
Summary: In 2e24219d3cbf, a number of ARM pcrel fixups were resolved at assembly time, to solve PR44929. This only covered little-endian ARM however, so add similar fixups for big-endian ARM. Also extend the test case to cover big-endian ARM.
Reviewers: hans, psmith, MaskRay
Reviewed By: psmith, MaskRay
Subscribers: kristof.beyls, hiraditya, danielkiss, emaste, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79774
|
 | llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp |
 | llvm/test/MC/ARM/pcrel-global.s |
Commit
01636c1eeace5371fef8508c7318df9d7a25b489
by craig.topper[X86] Remove the v16i8->v16i16 path for MULHS with AVX2.
We have a couple main strategies for legalizing MULH.
-If the vXi16 type is legal, extend to do the full i16 multiply and then shift and truncate the results. -Use unpcks to split each 128 bit lane into high and low halves.a
For signed we have an extra case to split a v32i8 to v16i8 and then use the extending to v16i16 strategy.
This patch proposes to use the unpck strategy instead. Which is what we already do for unsigned.
This seems to be 1 instruction shorter when the RHS is constant like the idiv case. It's 1 instruction longer for the smulo case. But we're trading cross lane shuffles for inlane shuffles and a shift.
Differential Revision: https://reviews.llvm.org/D79652
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll |
 | llvm/test/CodeGen/X86/vec_smulo.ll |
 | llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll |
Commit
e5f602d82ca05d113c725fdfff405dcb7c5470f5
by aqjune[ValueTracking] Let propagatesPoison support binops/unaryops/cast/etc.
Summary: This patch makes propagatesPoison be more accurate by returning true on more bin ops/unary ops/casts/etc.
The changed test in ScalarEvolution/nsw.ll was introduced by https://github.com/llvm/llvm-project/commit/a19edc4d15b0dae0210b90615775edd76f021008 . IIUC, the goal of the tests is to show that iv.inc's SCEV expression still has no-overflow flags even if the loop isn't in the wanted form. It becomes more accurate with this patch, so think this is okay.
Reviewers: spatel, lebedev.ri, jdoerfert, reames, nikic, sanjoy
Reviewed By: spatel, nikic
Subscribers: regehr, nlopes, efriedma, fhahn, javed.absar, llvm-commits, hiraditya
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78615
|
 | llvm/test/Analysis/ScalarEvolution/nsw.ll |
 | llvm/unittests/Analysis/ValueTrackingTest.cpp |
 | llvm/lib/Analysis/ValueTracking.cpp |
 | llvm/include/llvm/Analysis/ValueTracking.h |
 | llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp |
Commit
9202df35b2f47f7491f50a30356ccd8144c48ba8
by Jan Korous[FileCollector][NFC] Add comments
Differential Revision: https://reviews.llvm.org/D78961
|
 | llvm/include/llvm/Support/FileCollector.h |
Commit
bad61548b2074cf3bf7be2cb4c0d75646e001a73
by Jonas Devlieghere[Reproducers] Serialize process arguments in ProcessInfo
While debugging why TestProcessList.py failed during passive replay, I remembered that we don't serialize the arguments for ProcessInfo. This is necessary to make the test pass and to make platform process list -v behave the same during capture and replay.
Differential revision: https://reviews.llvm.org/D79646
|
 | lldb/source/Utility/Args.cpp |
 | lldb/include/lldb/Utility/Args.h |
 | lldb/test/Shell/Reproducer/TestProcessList.test |
 | lldb/unittests/Utility/ArgsTest.cpp |
 | lldb/source/Utility/ProcessInfo.cpp |
Commit
cd83333fc8fa3d2924087485bc3d1998665b4987
by kamau.bridgeman[PowerPC] Fold redundant load immediates of zero and delete if possible
This patch folds redundant load immediates into a zero for instructions which recognise this as the value zero and not the register. If the load immediate is no longer in use it is then deleted.
This is already done in earlier passes but the ppc-mi-peephole allows for a more general implementation.
Differential Revision: https://reviews.llvm.org/D69168
|
 | llvm/test/CodeGen/PowerPC/fold-remove-li.ll |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.h |
 | llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir |
 | llvm/lib/Target/PowerPC/PPCMIPeephole.cpp |
 | llvm/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.cpp |
Commit
ce195fb22b542c20745e3ed46d1516e8b4e3a76f
by zoecarver[libcxx] Re-commit: shared_ptr changes from library fundamentals (P0414R2).
Implements P0414R2: * Adds support for array types in std::shared_ptr. * Adds reinterpret_pointer_cast for shared_ptr.
Re-committing now that the leaking tests are fixed.
Differential Revision: https://reviews.llvm.org/D62259
|
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_pointer.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/types.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bool.pass.cpp |
 | libcxx/www/cxx1z_status.html |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/default.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bracket.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_arrow.fail.cpp |
 | libcxx/include/memory |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.protected.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.assign/shared_ptr_Y.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/const_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/dynamic_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bracket.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_copy_move.fail.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/reinterpret_pointer_cast.pass.cpp |
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/static_pointer_cast.pass.cpp |
Commit
aa99da5ace4587440973c97a4cd5f486e7bb3c33
by dblaikieAvoid binding pointers to "auto&" (by dereferencing the pointer that's non-null anyway)
Based on @djtodoro's 2552dc5317e0
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
Commit
d9166ad272847e246799afbb5e0c71874f83aa12
by Fred Riss[lldb/Driver] Support terminal resizing
Summary: The comment in the Editine.h header made it sound like editline was just unable to handle terminal resizing. We were not ever telling editline that the terminal had changed size, which might explain why it wasn't working.
This patch threads a `TerminalSizeChanged()` callback through the IOHandler and invokes it from the SIGWINCH handler in the driver. Our `Editline` class already had a `TerminalSizeChanged()` method which was invoked only when editline was configured.
This patch also changes `Editline` to not apply the changes right away in `TerminalSizeChanged()`, but instead defer that to the next character read. During my testing, it happened once that the signal was received while our `ConnectionFileDescriptor::Read` was allocating memory. As `el_resize` seems to allocate memory too, this crashed.
Reviewers: labath, teemperor
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D79654
|
 | lldb/source/Core/Debugger.cpp |
 | lldb/test/API/iohandler/resize/TestIOHandlerResize.py |
 | lldb/source/Host/common/Editline.cpp |
 | lldb/source/Core/IOHandler.cpp |
 | lldb/include/lldb/Core/IOHandler.h |
 | lldb/include/lldb/Host/Editline.h |
Commit
661b234cbcfb0195fb998b86815e89895b38b88a
by stephen.neuendorffer[MLIR] Rename SideEffects.td -> SideEffectInterfaces.td
This normalize the name of the tablegen file with the name of the generated files (SideEffectInterfaces.h.inc) and the other Interface tablegen files, which all end in Interface(s).td
Differential Revision: https://reviews.llvm.org/D79517
|
 | mlir/include/mlir/Dialect/SPIRV/SPIRVLogicalOps.td |
 | mlir/test/mlir-tblgen/op-side-effects.td |
 | mlir/examples/toy/Ch2/include/toy/Ops.td |
 | mlir/examples/toy/Ch4/include/toy/Ops.td |
 | mlir/examples/toy/Ch7/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVOps.td |
 | mlir/test/lib/Dialect/Test/TestOps.td |
 | mlir/include/mlir/Dialect/Affine/IR/AffineOps.td |
 | mlir/include/mlir/Dialect/AVX512/AVX512.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVGLSLOps.td |
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/test/mlir-tblgen/op-decl.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVCastOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
 | mlir/examples/toy/Ch3/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVControlFlowOps.td |
 | mlir/include/mlir/Dialect/SCF/SCFOps.td |
 | mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td |
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVArithmeticOps.td |
 | flang/include/flang/Optimizer/Dialect/FIROps.td |
 | mlir/examples/toy/Ch5/include/toy/Ops.td |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
 | mlir/include/mlir/Dialect/Quant/QuantOps.td |
 | mlir/include/mlir/Interfaces/SideEffectInterfaces.td |
 | mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td |
 | mlir/examples/toy/Ch6/include/toy/Ops.td |
 | mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp |
 | mlir/include/mlir/Interfaces/CMakeLists.txt |
 | mlir/examples/standalone/include/Standalone/StandaloneOps.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVCompositeOps.td |
 | mlir/include/mlir/Interfaces/SideEffects.td |
 | mlir/include/mlir/Dialect/SPIRV/SPIRVBitOps.td |
Commit
11c8c2a551c53db5ecf8c1f253b1a49d5e98324f
by Artem Dergachev[analyzer] SATestBuild.py: Fix support for #NOPREFIX.
Regressed in ec2d93c.
|
 | clang/utils/analyzer/SATestBuild.py |
Commit
7a17f3ccd109998d4e7019f5239dda61d7c6f829
by stephen.neuendorffer[MLIR] Fix dependencies for Analysis libraries
cmake does not truly support dependencies on automatically generated files which are not in the same directory as the targets which depend on them. It works with ninja, but doesn't work with make
This patch adds an explicit dependence so that all dialects are built before the analysis libraries.
Differential Revision: https://reviews.llvm.org/D79805
|
 | mlir/lib/Analysis/CMakeLists.txt |
Commit
6c29073efb0c22045868bc3622f8fc27f43fca41
by richardPR45589: Properly decompose overloaded `&&` and `||` operators in constraint expressions.
We create overloaded `&&` and `||` operators to hold the possible unqualified lookup results (if any) when the operands are dependent. We could avoid building these in some cases (we will never use the stored lookup results, and it would be better to not store them or perform the lookups), but in the general case we will probably still need to handle overloaded operators even with that optimization.
|
 | clang/lib/Sema/SemaConcept.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/SemaTemplate/constraints.cpp |
 | clang/include/clang/Sema/Sema.h |
Commit
32f5ee830b0f0e2426552d33174170554d8d336e
by serguei.n.dmitriev[Attributor] Fixup block addresses after rewriting function signature
Reviewers: jdoerfert, sstefan1, uenoku
Reviewed By: jdoerfert
Subscribers: hiraditya, uenoku, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79801
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/test/Transforms/Attributor/misc_crash.ll |
Commit
363393c4b35997c67e6b282bd2be9022a7bfed25
by Louis Dionne[libc++abi] Adjust XFAIL on macOS for bug that was fixed in recent OSes
|
 | libcxxabi/test/thread_local_destruction_order.pass.cpp |
Commit
66055230bf6673b76e7330fef76d752a1ea8638e
by maskray[TargetLoweringObjectFileImpl] Produce .text.hot. instead of .text.hot for -fno-unique-section-names
GNU ld's internal linker script uses (https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=add44f8d5c5c05e08b11e033127a744d61c26aee)
.text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) }
Because `*(.text.exit .text.exit.*)` is ordered before `*(.text .text.*)`, in a -ffunction-sections build, the C library function `exit` will be placed before other functions. gold's `-z keep-text-section-prefix` has the same problem.
In lld, `-z keep-text-section-prefix` recognizes `.text.{exit,hot,startup,unlikely,unknown}.*`, but not `.text.{exit,hot,startup,unlikely,unknown}`, to avoid the strange placement problem.
In -fno-function-sections or -fno-unique-section-names mode, a function whose `function_section_prefix` is set to `.exit"` will go to the output section `.text` instead of `.text.exit` when linked by lld. To address the problem, append a dot to become `.text.exit.`
Reviewed By: grimar
Differential Revision: https://reviews.llvm.org/D79600
|
 | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp |
 | llvm/test/Transforms/CodeGenPrepare/X86/section.ll |
Commit
aa1eb5152d9a5bd588c8479a376fa65cbeabbc9f
by a.v.lapshin[X86][ISelLowering] refactor Varargs handling in X86ISelLowering.cpp
Summary: This patch refactors handling of VarArgs in X86TargetLowering::LowerFormalArguments. That refactoring was requested while reviewing D69372. Code related to varargs handling is removed from X86TargetLowering::LowerFormalArguments and is divided into smaller routines.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D74794
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
59ba19c56e1cf6d01e6acce1bf405a57f19c340c
by Jonas Devlieghere[VirtualFileSystem] Add unit test that showcases YAMLVFSWriter bug
This scenario generates a broken YAML mapping as illustrated below.
{ 'type': 'directory', 'name': "c", 'contents': [ { 'type': 'file', 'name': "d", 'external-contents': "//root/a/c/d" } { 'type': 'file', 'name': "e", 'external-contents': "//root/a/c/e" } { 'type': 'file', 'name': "f", 'external-contents': "//root/a/c/f" } ] },
|
 | llvm/unittests/Support/VirtualFileSystemTest.cpp |
Commit
58bc507b6fe6c6276a7c858a7d1de83ca02e999e
by Jonas Devlieghere[VirtualFileSystem] Add unit test that showcases another YAMLVFSWriter bug
This scenario generates another broken YAML mapping as illustrated below.
{ 'type': 'directory', 'name': "c", 'contents': [ , { 'type': 'directory', 'name': "d", 'contents': [ , { 'type': 'directory', 'name': "e", 'contents': [ { 'type': 'file', 'name': "f", 'external-contents': "//root/a/c/d/e/f" } { 'type': 'file', 'name': "g", 'external-contents': "//root/a/c/d/e/g" } ] } ] } ] },
|
 | llvm/unittests/Support/VirtualFileSystemTest.cpp |
Commit
56926ae0faa67ac4c3b75609bfeea2eb324c0851
by wmi[SampleFDO] Rename llvm-profdata flag -partial-profile to -gen-partial-profile.
The internal flag -partial-profile in llvm conflicts with the flag with the same name in llvm-profdata. The conflict happens in builds with LLVM_LINK_LLVM_DYLIB enabled. In this case the tools are linked with libLLVM and we end up with two definitions for the same cl::opt.
The patch renames llvm-profdata flag -partial-profile to -gen-partial-profile.
|
 | llvm/test/tools/llvm-profdata/show-prof-info.test |
 | llvm/tools/llvm-profdata/llvm-profdata.cpp |
Commit
293c6d382128a0e52a144cec901932d71e072760
by a.v.lapshinFix buildbots after aa1eb5152d9a5bd588c8479a376fa65cbeabbc9f.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
0138cc012506d5195ba2a3cf8a98ceb84c5aeffa
by jrh29PowerPC: Treat llvm.fma.f* intrinsic as using CTR with SPE
Summary: The SPE doesn't have a 'fma' instruction, so the intrinsic becomes a libcall. It really should become an expansion to two instructions, but for some reason the compiler doesn't think that's as optimal as a branch. Since this lowering is done after CTR is allocated for loops, tell the optimizer that CTR may be used in this case. This prevents a "Invalid PPC CTR loop!" assertion in the case that a fma() function call is used in a C/C++ file, and clang converts it into an intrinsic.
Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D78668
|
 | llvm/test/CodeGen/PowerPC/spe.ll |
 | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp |
Commit
1c44430e738ba83eefe6d56a245ee30649d8988d
by a.v.lapshinFix buildbots #2 after aa1eb5152d9a5bd588c8479a376fa65cbeabbc9f.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
99d60a1d0b35d6b8eda827351de6dd73f7a3dffe
by ditaliano[GlobalISel] Assign the correct location when combining G_SEXT.
<rdar://problem/62991635>
|
 | llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h |
 | llvm/test/CodeGen/AArch64/GlobalISel/combine-sext-debugloc.mir |
Commit
473bdaf2e81aef06514586e82e5e697ceabb7aa6
by zinenko[mlir] Move Conversion/StandardToStandard to Dialect/StandardOps/Transforms/FuncConversions
Conversion/ folders were originally intended to store patterns for DialectA->DialectB conversions that depend on both dialects and do not conceptually belong to either of the dialects. As such, DialectA->DialectA conversion does not make sense under Conversion/ and should rather live with the dialect it operates on.
Differential Revision: https://reviews.llvm.org/D79569
|
 | mlir/lib/Conversion/StandardToStandard/CMakeLists.txt |
 | mlir/lib/Dialect/StandardOps/Transforms/FuncConversions.cpp |
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/test/lib/Dialect/Test/CMakeLists.txt |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
 | mlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt |
 | mlir/test/lib/Transforms/CMakeLists.txt |
 | mlir/lib/Conversion/StandardToStandard/StandardToStandard.cpp |
 | mlir/include/mlir/Dialect/StandardOps/Transforms/FuncConversions.h |
 | mlir/include/mlir/Conversion/StandardToStandard/StandardToStandard.h |
Commit
a9e856265146cd32364e358e2224d8d581a4c226
by ditaliano[GIsel] Update a comment and make it more precise.
This only covers ANYEXT/ZEXT. SEXT is covered in another test I just checked in.
|
 | llvm/test/CodeGen/AArch64/GlobalISel/combine-ext-debugloc.mir |
Commit
f490ca76b0ee69dd091a5535dbb948f123a96e2e
by spatel[x86][CGP] enable target hook to sink funnel shift intrinsic's splatted shift amount
SDAG suffers when it can't see that a funnel operand is a splat value (due to single-basic-block visibility), so invert the normal loop hoisting rules to move a splat op closer to its use.
This would be part 1 of an enhancement similar to D63233.
This is needed to re-fix PR37426: https://bugs.llvm.org/show_bug.cgi?id=37426 ...because we got better at canonicalizing IR to funnel shift intrinsics.
The existing CGP code for shift opcodes is likely overstepping what it was intended to do, so that will be fixed in a follow-up.
Differential Revision: https://reviews.llvm.org/D79718
|
 | llvm/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll |
 | llvm/include/llvm/CodeGen/TargetLowering.h |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/vector-fshl-128.ll |
 | llvm/lib/Target/X86/X86ISelLowering.h |
Commit
759465ee34c0c0118fbd21cad87de17bb3be13e0
by Jan Korous[YAMLVFSWriter] Fix for delimiters
Differential Revision: https://reviews.llvm.org/D79809
|
 | llvm/lib/Support/VirtualFileSystem.cpp |
 | llvm/unittests/Support/VirtualFileSystemTest.cpp |
Commit
452e2fc409df4acd790fcb53872db5a1b8c0130a
by silvaseanRevert of Revert of [mlir][shape] Tidy up shape.shape_of
Summary:
- Mark it NoSideEffect - Add custom parser/printer
This reverts the temporary revert in https://reviews.llvm.org/rG84a9c725742d26df04808a3c7349dbd98684c6cb That was a false alarm. A downstream test actually needed to be updated.
|
 | mlir/test/Dialect/Shape/ops.mlir |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
Commit
ab22f71dd75895fbde1cd1a515b2164227d5dfd2
by Jonas Devlieghere[lldb/Reproducers] Also record directories FileSystem::Collect.
Now that the FileCollector knows how to deal with directories we no longer have to ignore them in the FileSystem class.
|
 | lldb/source/Host/common/FileSystem.cpp |
Commit
71ed66d97fd624313bef693fa9da54fa66bdcd09
by Stanislav.Mekhanoshin[AMDGPU] Make v4i64/v4f64/v8i64/v8f64 legal
We can produce such vectors in the Promote Alloca pass, but we are unable to use movrel to operate it and lower via scratch. Making it legal makes SI_INDIRECT patterns work.
There is more work to do in subsequent changes:
1. We initialize m0 twice to access each dword. It shall be possible to only do it once and increment base register number instead. 2. We also need v16i64/v16f64 but these first need to be added to tablegen.
Differential Revision: https://reviews.llvm.org/D79808
|
 | llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll |
 | llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll |
 | llvm/test/CodeGen/AMDGPU/idot2.ll |
 | llvm/test/CodeGen/AMDGPU/select.f16.ll |
 | llvm/test/CodeGen/AMDGPU/copy-illegal-type.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.minnum.f16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.maxnum.f16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ubfe.ll |
 | llvm/test/CodeGen/AMDGPU/shift-i128.ll |
 | llvm/lib/Target/AMDGPU/SIInstructions.td |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.td |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/shift-i64-opts.ll |
 | llvm/test/CodeGen/AMDGPU/vector-alloca-bitcast.ll |
 | llvm/test/CodeGen/AMDGPU/insert_vector_elt.ll |
 | llvm/test/CodeGen/AMDGPU/saddo.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.round.f64.ll |
 | llvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll |
 | llvm/test/CodeGen/AMDGPU/v_madak_f16.ll |
Commit
2c861e8a121e35da331818cbc95ab4ecc97f43b4
by Casey[libc++][test] Properly mark libc++-only XFAILs
These tests PASS on libstdc++ and MSVC.
|
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp |
 | libcxx/test/std/strings/c.strings/cuchar.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp |
 | libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp |
Commit
e17a47b2d353737e25b24c8dfcc3e8984878b02e
by sivachandra[libc][Obvious] Fix deps of few threads targets.
A missing dep has been added, and a few redundent deps have been removed.
|
 | libc/test/src/threads/CMakeLists.txt |
 | libc/src/threads/linux/CMakeLists.txt |
Commit
759bae956abf7fb46c28f5e23a4feee593c883ae
by thakis[lld-macho] Ignore -platform_version and -syslibroot flags.
clang passes these flags; this makes it easier to try `clang -v` output with `ld -flavor darwinnew`.
Differential Revision: https://reviews.llvm.org/D79797
|
 | lld/test/MachO/platform-version.test |
 | lld/MachO/Options.td |
 | lld/test/MachO/silent-ignore.test |
 | lld/MachO/Driver.cpp |
Commit
cb22ab7403557941fd672a8fc3a16b1ef75a7842
by rnkAdd nomerge function attribute to supress tail merge optimization in simplifyCFG
We want to add a way to avoid merging identical calls so as to keep the separate debug-information for those calls. There is also an asan usecase where having this attribute would be beneficial to avoid alternative work-arounds.
Here is the link to the feature request: https://bugs.llvm.org/show_bug.cgi?id=42783.
`nomerge` is different from `noline`. `noinline` prevents function from inlining at callsites, but `nomerge` prevents multiple identical calls from being merged into one.
This patch adds `nomerge` to disable the optimization in IR level. A followup patch will be needed to let backend understands `nomerge` and avoid tail merge at backend.
Reviewed By: asbirlea, rnk
Differential Revision: https://reviews.llvm.org/D78659
|
 | llvm/lib/IR/Attributes.cpp |
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | llvm/include/llvm/IR/Attributes.td |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
 | llvm/docs/LangRef.rst |
 | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | llvm/test/Transforms/SimplifyCFG/nomerge.ll |
 | llvm/include/llvm/IR/InstrTypes.h |
 | llvm/lib/AsmParser/LLParser.cpp |
 | llvm/lib/AsmParser/LLToken.h |
 | llvm/lib/AsmParser/LLLexer.cpp |
 | llvm/include/llvm/Bitcode/LLVMBitCodes.h |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
Commit
63c0e72b2f828db778135d3bdc4e0df03341a3a9
by ntv[mlir] Revisit std.subview handling of static information.
The main objective of this revision is to change the way static information is represented, propagated and canonicalized in the SubViewOp.
In the current implementation the issue is that canonicalization may strictly lose information because static offsets are combined in irrecoverable ways into the result type, in order to fit the strided memref representation.
The core semantics of the op do not change but the parser and printer do: the op always requires `rank` offsets, sizes and strides. These quantities can now be either SSA values or static integer attributes.
The result type is automatically deduced from the static information and more powerful canonicalizations (as powerful as the representation with sentinel `?` values allows). Previously static information was inferred on a best-effort basis from looking at the source and destination type.
Relevant tests are rewritten to use the idiomatic `offset: x, strides : [...]`-form. Bugs are corrected along the way that were not trivially visible in flattened strided memref form.
Lowering to LLVM is updated, simplified and now supports all cases. A mixed static-dynamic mode test that wouldn't previously lower is added.
It is an open question, and a longer discussion, whether a better result type representation would be a nicer alternative. For now, the subview op carries the required semantic.
Differential Revision: https://reviews.llvm.org/D79662
|
 | mlir/test/IR/invalid-ops.mlir |
 | mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir |
 | mlir/test/Dialect/Linalg/promote.mlir |
 | mlir/test/Dialect/Affine/ops.mlir |
 | mlir/test/Conversion/StandardToLLVM/invalid.mlir |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/test/Conversion/StandardToSPIRV/legalization.mlir |
 | mlir/test/Conversion/StandardToSPIRV/subview-to-spirv.mlir |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
 | mlir/test/IR/core-ops.mlir |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
Commit
0796b170fb3bf38e6cc4e59746120b37c9a9cd9f
by omair.javaidFix error in TestNumThreads.py when frame.GetFunctionName returns none
Summary: This patch fixes an error happening in TestNumThreads.py when it encounters frame.GetFunctionName none for address only locations in stripped libc.
This error was showing up on arm-linux docker container running lldb buildbot.
Reviewers: labath
Reviewed By: labath
Subscribers: kristof.beyls, lldb-commits
Differential Revision: https://reviews.llvm.org/D79777
|
 | lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py |
Commit
d3eb51f0626cc86af904bfbdb061fecbd90ffdc5
by aqjune[ValueTracking] Fix crash in isGuaranteedNotToBeUndefOrPoison when V is in an unreachable block
Summary: This fixes PR45885 by fixing isGuaranteedNotToBeUndefOrPoison so it does not look into dominating branch conditions of V when V is an instruction in an unreachable block.
Reviewers: spatel, nikic, lebedev.ri
Reviewed By: nikic
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79790
|
 | llvm/test/Transforms/DivRemPairs/PowerPC/pr45885.ll |
 | llvm/lib/Analysis/ValueTracking.cpp |
Commit
8aa2266fd8dd237c84daf12c2eec0df244558f49
by zoecarver[libcxx] Constrain function assignment operator (2574).
This patch fixes LWG issue 2574.
Differential Review: https://reviews.llvm.org/D62928
|
 | libcxx/include/functional |
 | libcxx/www/cxx1z_status.html |
 | libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp |
Commit
af48351cc8fc63148e8cfd10a936b2d5d0c2f078
by johannes[Attributor][FIX] Stabilize the state of AAReturnedValues each update
For AAReturnedValues we treated new and existing information differently in the updateImpl. Only the latter was properly analyzed and categorized. The former was thought to be analyzed in the subsequent update. Since the Attributor does not support "self-updates" we need to make sure the state is "stable" after each updateImpl invocation. That is, if the surrounding information does not change, the state is valid. Now we make sure all return values have been handled and properly categorized each iteration. We might not update again if we have not requested a non-fix attribute so we cannot "wait" for the next update to analyze a new return value.
Bug reported by @sdmitriev.
|
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/test/Transforms/Attributor/returned.ll |
Commit
302c492cc5d97cf10837e71e4ee5872c01bc3682
by omair.javaid[LLDB] Fix minidebuginfo-set-and-hit-breakpoint.test for arm 32-bit
This patch fixes minidebuginfo-set-and-hit-breakpoint.test for arm-linux targets. 32-bit elf executables use .rel.dyn and 64-bit uses .rela.dyn for relocation entries for dynamic symbols.
|
 | lldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test |
Commit
fb2c4d50f1426356d0aa3a9eaa1dab50b25c9082
by ajcbik[mlir] [VectorOps] Implement vector.constant_mask lowering to LLVM IR
Summary: Makes this operation runnable on CPU by generating MLIR instructions that are eventually folded into an LLVM IR constant for the mask.
Reviewers: nicolasvasilache, ftynse, reidtatge, bkramer, andydavis1
Reviewed By: nicolasvasilache, ftynse, andydavis1
Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79815
|
 | mlir/test/Target/vector-to-llvm-ir.mlir |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/test/Dialect/Vector/vector-contract-transforms.mlir |
 | mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir |
Commit
6805a77eb66e2e4c9f308bc49c77297f790a5e7b
by omair.javaid[LLDB] Mark some xfails for arm-linux
This patch marks following tests as xfail for arm-linux target.
lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py lldb/test/API/python_api/thread/TestThreadAPI.py lldb/test/Shell/Recognizer/assert.test
Bugs have been filed for all of them for the corresponding failing component.
|
 | lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py |
 | lldb/test/Shell/Recognizer/assert.test |
 | lldb/test/API/python_api/thread/TestThreadAPI.py |
Commit
67087a7b76599ea783c1d930f0c2047deaa8fbae
by omair.javaid[LLDB] Fix typo in xfail decorator assert.test
Fix a typo in earlier xfailed assert.test replace // with #.
|
 | lldb/test/Shell/Recognizer/assert.test |
Commit
272bc25bc1401d5dc1407ad22a3172ee6914d007
by t-kawashima[LoopReroll] Fix rerolling loop with use outside the loop
Fixes PR41696
The loop-reroll pass generates an invalid IR (or its assertion fails in debug build) if values of the base instruction and other root instructions (terms used in the loop-reroll pass) are used outside the loop block. See IRs written in PR41696 as examples.
The current implementation of the loop-reroll pass can reroll only loops that don't have values that are used outside the loop, except reduced values (the last values of reduction chains). This is described in the comment of the `LoopReroll::reroll` function. https://github.com/llvm/llvm-project/blob/llvmorg-10.0.0/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp#L1600
This is checked in the `LoopReroll::DAGRootTracker::validate` function. https://github.com/llvm/llvm-project/blob/llvmorg-10.0.0/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp#L1393
However, the base instruction and other root instructions skip this check in the validation loop. https://github.com/llvm/llvm-project/blob/llvmorg-10.0.0/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp#L1229
Moving the check in front of the skip is the logically simplest fix. However, inserting the check in an earlier stage is better in terms of compilation time of unrerollable loops. This fix inserts the check for the base instruction into the function to validate possible base/root instructions. Check for other root instructions is unnecessary because they don't match any base instructions if they have uses outside the loop.
Differential Revision: https://reviews.llvm.org/D79549
|
 | llvm/lib/Transforms/Scalar/LoopRerollPass.cpp |
 | llvm/test/Transforms/LoopReroll/external_use.ll |
Commit
7d4167430c411ba1441260be9243d3401695ea7a
by t-kawashima[gcov] Fix simultaneous .gcda creation/lock
Fixes PR45673
The commit 9180c14fe4d (D76206) resolved only a part of the problem of concurrent .gcda file creation. It ensured that only one process creates the file but did not ensure that the process locks the file first. If not, the process which created the file may clobber the contents written by a process which locked the file first. This is the cause of PR45673.
This commit prevents the clobbering by revising the assumption that a process which creates the file locks the file first. Regardless of file creation, a process which locked the file first uses fwrite (new_file==1) and other processes use mmap (new_file==0).
I also tried to keep the creation/first-lock process same by using mkstemp/link/unlink but the code gets long. This commit is more simple.
Note: You may be confused with other changes which try to resolve concurrent file access. My understanding is (may not be correct):
D76206: Resolve race of .gcda file creation (but not lock) This one: Resolve race of .gcda file creation and lock D54599: Same as D76206 but abandoned? D70910: Resolve race of multi-threaded counter flushing D74953: Resolve counter sharing between parent/children processes D78477: Revision of D74953
Differential Revision: https://reviews.llvm.org/D79556
|
 | compiler-rt/test/profile/Posix/instrprof-gcov-parallel.test |
 | compiler-rt/lib/profile/GCDAProfiling.c |
Commit
085234bedc3803699e58a8c9e6bbace3388efee2
by stephen.neuendorffer[cmake] Update creation of object library dependencies for LINK_LIBS PUBLIC
We need to avoid declaring dependencies on strings which are valid LINK_LIBS and not valid targets. Previously, we used if(TARGET) to check this condition. However, if(TARGET) checks whether a target has been created (in the cmake subdirectory traversal order) and not whether it *will* be created. This results in annoying directory ordering problems.
This patch changes the check to more explicitly eliminate problematic libraries (namely -lpthread) using a REGEX.
Differential Revision: https://reviews.llvm.org/D79837
|
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
782a4dd1a478e41857744b483b104b5e66857fbf
by shkzhang[PowerPC] Use add instead of addReg in ppc-early-ret pass
Summary: The ppc-early-ret pass use the addReg() to add operand to the new instruction, it can't reserve the flag of old operand. This has caused machine verfications failed. This patch use add() to instead of addReg().
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D77997
|
 | llvm/test/CodeGen/PowerPC/early-ret-verify.mir |
 | llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp |
 | llvm/test/CodeGen/PowerPC/early-ret.mir |
Commit
d2a9569850166083638a8fb88f7dae1c1b62a926
by ravishankarm[mlir][Linalg] Allow reshapes to collapse to a zero-rank tensor.
This is only valid if the source tensors (result tensor) is static shaped with all unit-extents when the reshape is collapsing (expanding) dimensions.
Differential Revision: https://reviews.llvm.org/D79764
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/test/Dialect/Linalg/llvm.mlir |
 | mlir/test/Dialect/Linalg/roundtrip.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
Commit
5440d0a12d7f6f7f7689a7a733de7cc622605270
by ravishankarm[mlir][Linalg] Add folders and canonicalizers for linalg.reshape/linalg.tensor_reshape operations.
Differential Revision: https://reviews.llvm.org/D79765
|
 | mlir/test/Dialect/Linalg/llvm.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/test/Dialect/Linalg/canonicalize.mlir |
Commit
e9753822b5ad5e43e79f5970b5e86ceb329f8497
by qiucofan[PowerPC] Respect SDNodeFlags in lowering SELECT_CC
Legalizer should respect both command-line options or SDNode-level fast-math flags.
Also, this patch propagates other flags during custom simplifying.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D79074
|
 | llvm/test/CodeGen/PowerPC/scalar-equal.ll |
 | llvm/test/CodeGen/PowerPC/scalar_cmp.ll |
 | llvm/test/CodeGen/PowerPC/scalar-min-max.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
Commit
49e6c191004aff1a4c4cbac87bcb96c9ff694534
by ravishankarm[mlir][StandardToLLVM] Add SinOp to LLVM dialect and lowering of std.sin to this op.
Differential Revision: https://reviews.llvm.org/D79505
|
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir |
 | mlir/test/Dialect/LLVMIR/roundtrip.mlir |
Commit
6bbad7285c4b8a38fc9a3a0bd68eb3096f9d27bc
by sam.parker[CostModel] Modify BasicTTI getCastInstrCost
Fix the assumption that all bitcasts of the same type sizes are free. We now only assume that bitcasts between ints and ptrs of the same size are free. This allows TTImpl to just call the concrete implementation of getCastInstrCost.
Differential Revision: https://reviews.llvm.org/D78918
|
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/test/Analysis/CostModel/AArch64/cast.ll |
 | llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll |
 | llvm/test/Analysis/CostModel/ARM/cast.ll |
Commit
8ffe8891cd57694dbed148cfcae8aaede70a0f30
by qiucofan[PowerPC] Exploit VSX neg, abs and nabs for f32
xsnegdp, xsabsdp and xsnabsdp can be used to operate on f32 operand.
This patch adds the missing patterns since we prefer VSX instructions when available.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D75344
|
 | llvm/test/CodeGen/PowerPC/fmf-propagation.ll |
 | llvm/lib/Target/PowerPC/PPCInstrVSX.td |
 | llvm/test/CodeGen/PowerPC/fma.ll |
 | llvm/test/CodeGen/PowerPC/float-logic-ops.ll |
 | llvm/test/CodeGen/PowerPC/fsub-fneg.ll |
Commit
ad60ff70eb56a7d198e613152f9974d5d4baabd4
by shengchen.kan[NFC] Code cleanup in TargetInfo.cpp
Fix the signed/unsigned mismatch issue
|
 | clang/lib/CodeGen/TargetInfo.cpp |
Commit
eef95f2746c3347b8dad19091ffb82a88d73acd3
by yrouban[BrachProbablityInfo] Set edge probabilities at once. NFC.
Hide the method that allows setting probability for particular edge and introduce a public method that sets probabilities for all outgoing edges at once. Setting individual edge probability is error prone. More over it is difficult to check that the total probability is 1.0 because there is no easy way to know when the user finished setting all the probabilities.
Reviewers: yamauchi, ebrevnov Tags: #llvm Differential Revision: https://reviews.llvm.org/D79396
|
 | llvm/lib/Transforms/Scalar/JumpThreading.cpp |
 | llvm/lib/Analysis/BranchProbabilityInfo.cpp |
 | llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp |
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
 | llvm/include/llvm/Analysis/BranchProbabilityInfo.h |
Commit
e59744fd9b4298c0527163748510a482a942eb54
by SourabhSingh.Tomar[DebugInfo] Fortran module DebugInfo support in LLVM
This patch extends DIModule Debug metadata in LLVM to support Fortran modules. DIModule is extended to contain File and Line fields, these fields will be used by Flang FE to create debug information necessary for representing Fortran modules at IR level.
Furthermore DW_TAG_module is also extended to contain these fields. If these fields are missing, debuggers like GDB won't be able to show Fortran modules information correctly.
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D79484
|
 | llvm/lib/IR/LLVMContextImpl.h |
 | llvm/test/Bitcode/DIModule-clang-module.ll.bc |
 | llvm/test/Bitcode/DIModule-fortran-module.ll |
 | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | llvm/lib/IR/DIBuilder.cpp |
 | llvm/test/Assembler/dimodule.ll |
 | llvm/test/Bitcode/DIModule-fortran-module.ll.bc |
 | llvm/lib/IR/AsmWriter.cpp |
 | llvm/include/llvm/IR/DebugInfoMetadata.h |
 | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp |
 | llvm/test/DebugInfo/X86/Fortran-DIModule.ll |
 | llvm/unittests/IR/MetadataTest.cpp |
 | llvm/include/llvm/IR/DIBuilder.h |
 | llvm/lib/Bitcode/Reader/MetadataLoader.cpp |
 | llvm/lib/AsmParser/LLParser.cpp |
 | llvm/lib/IR/DebugInfoMetadata.cpp |
 | llvm/test/Bitcode/DIModule-clang-module.ll |
Commit
678bd84c4dfe6764b88698d442bb2afb2f5c811b
by SourabhSingh.Tomar[DebugInfo] Fixes windows bot failure due to a test failure
This fixes failures on windows bot specifically:
http://lab.llvm.org:8011/builders/lld-x86_64-win/builds/445 and http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/ builds/32314
* TEST 'LLVM :: DebugInfo/X86/Fortran-DIModule.ll' FAILED * Script: -- : 'RUN: at line 2'; c:\ps4-buildslave2\lld-x86_64-win\build\bin\llc.exe -mtriple=x86_64-pc-windows-gnu c:\ps4-buildslave2\lld-x86_64-win\llvm-project\llvm\test\DebugInfo\X86\Fortran-DIModule.ll -filetype=obj -o - | c:\ps4-buildslave2\lld-x86_64-win\build\bin\llvm-dwarfdump.exe - | c:\ps4-buildslave2\lld-x86_64-win\build\bin\filecheck.exe c:\ps4-buildslave2\lld-x86_64-win\llvm-project\llvm\test\DebugInfo\X86\Fortran-DIModule.ll -- Exit Code: 1 error: command failed with exit status: 1
|
 | llvm/test/DebugInfo/X86/Fortran-DIModule.ll |
Commit
524457edbc3da4ff3c9f6b7cbca3cd66caa4d16e
by simon[mips] Fix typo in FileCheck directives - replace \0xa0 char by space. NFC
The problem is found by the D79276 on the following builder: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/23489
|
 | llvm/test/MC/Mips/mips-jump-pc-region.s |
 | llvm/test/MC/Mips/micromips-jump-pc-region.s |
Commit
cac6a26f38131371450b6fb55e75ba7299228afe
by victor.campos[TableGen] Fix register class handling in TableGen's DAG ISel Matcher Generator
Summary: In TableGen's instruction selection table generator, references to register classes were handled by generating a matcher table entry in the form of "EmitStringInteger, MVT::i32, 'RegisterClassID'". This ID is in fact the enum integer value corresponding to the register class.
However, both the table generator and the table consumer (SelectionDAGISel) assume that this ID is less than or equal to 127, i.e. at most 7 bits. Values greater than this threshold cause completely wrong behaviours in the instruction selection process.
This patch adds a check to determine if the enum integer value is greater than the limit of 127. In finding so, the generator emits an "EmitInteger" instead, which properly supports values with arbitrary sizes.
Commit f8d044bbcfdc9e1ddc02247ffb86fe39e1f277f0 fixed the very same bug for register subindices. The present patch now extends this cover to register classes.
Reviewers: rampitec
Reviewed By: rampitec
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79705
|
 | llvm/test/TableGen/dag-isel-regclass-emit-enum.td |
 | llvm/utils/TableGen/DAGISelMatcherGen.cpp |
Commit
2866c6cad475f668bd0bffabb0513dc96ff157be
by qiucofan[NFC] [PowerPC] Narrow fast-math flags in tests
A lot of tests under PowerPC are using fast flag, while fast is just alias of 7 fast-math flags. This change makes test points clearer.
mc-instrlat.ll and sms-iterator.ll keeps unchanged since they are not testing fast-math behavior. (one for machine combiner crash, one for machine pipeliner bug)
Reviewed By: steven.zhang, spatel
Differential Revision: https://reviews.llvm.org/D78989
|
 | llvm/test/CodeGen/PowerPC/fma-precision.ll |
 | llvm/test/CodeGen/PowerPC/scalar-equal.ll |
 | llvm/test/CodeGen/PowerPC/vec-min-max.ll |
 | llvm/test/CodeGen/PowerPC/fma-mutate.ll |
 | llvm/test/CodeGen/PowerPC/qpx-recipest.ll |
 | llvm/test/CodeGen/PowerPC/scalar_cmp.ll |
 | llvm/test/CodeGen/PowerPC/vsx-recip-est.ll |
 | llvm/test/CodeGen/PowerPC/vsx-fma-mutate-trivial-copy.ll |
 | llvm/test/CodeGen/PowerPC/load-two-flts.ll |
 | llvm/test/CodeGen/PowerPC/repeated-fp-divisors.ll |
 | llvm/test/CodeGen/PowerPC/pow.75.ll |
 | llvm/test/CodeGen/PowerPC/combine-fneg.ll |
 | llvm/test/CodeGen/PowerPC/fdiv.ll |
 | llvm/test/CodeGen/PowerPC/ppc64-P9-setb.ll |
 | llvm/test/CodeGen/PowerPC/scalar-min-max.ll |
 | llvm/test/CodeGen/PowerPC/fma-assoc.ll |
 | llvm/test/CodeGen/PowerPC/fma-negate.ll |
 | llvm/test/CodeGen/PowerPC/fmf-propagation.ll |
 | llvm/test/CodeGen/PowerPC/recipest.ll |
 | llvm/test/CodeGen/PowerPC/fma-combine.ll |
Commit
e25a2601aaa95c861af3228982ecbb2b1c19d27a
by marek[libc++] [LWG3321] Mark "year_month_day_last::day() specification does not cover !ok() values" issue as "Nothing to do", but add assertion.
Summary: This LWG issue states that the result of `year_month_day_last::day()` is implementation defined if `ok()` is `false`. However, from user perspective, calling `day()` in this situation will lead to a (possibly difficult to find) crash. Hence, I have added an assertion to warn user at least when assertions are enabled. I am however not aware of the libc++ stand on the desired behaviour.
Reviewers: ldionne, mclow.lists, EricWF, #libc
Reviewed By: ldionne, #libc
Subscribers: christof, dexonsmith, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D70346
|
 | libcxx/include/chrono |
 | libcxx/www/cxx2a_status.html |
Commit
855f0ce79bf3bdf34a390d1f5fd842a6aa79d5ef
by vsavchenko[analyzer] Fix crash for non-pointers annotated as nonnull
Summary: Nonnull attribute can be applied to non-pointers. This caused assertion failures in NonNullParamChecker when we tried to *assume* such parameters to be non-zero.
rdar://problem/63150074
Differential Revision: https://reviews.llvm.org/D79843
|
 | clang/test/Analysis/UserNullabilityAnnotations.m |
 | clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp |
Commit
f8972662bc3b39377374a5e7d8abe7b4a74ac573
by martin[examples] Skip building the Bye pass plugin on windows
Windows doesn't properly support pass plugins (as a shared library can't have undefined references, which pass plugins assume, being loaded into a host process that contains provides them), thus disable building it and the corresponding test.
This matches what was done for the passes unit test in bc8e44218810c0db6328b9809c959ceb7d43e3f5.
Differential Revision: https://reviews.llvm.org/D79771
|
 | llvm/test/CMakeLists.txt |
 | llvm/test/Feature/load_extension.ll |
 | llvm/examples/Bye/CMakeLists.txt |
Commit
1febe289827602ab4da2d28799c04ee9eb2bc175
by dave[libcxx testing] Remove ALLOW_RETRIES from wait_for futures test
This test tried to verify that "wait()" returned quickly but "quick" is impossible to define given a busy and/or slow system.
Instead, I've refactored the test to verify that `wait()` actually waits which the old test did not verify.
|
 | libcxx/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp |
Commit
e16111ce2fce7fd86c10d3f1dfe3e3b62b76d73b
by pavel[lldb] Also recognize DWARF UTF base types using their size
Summary: The D programming language has 'char', 'wchar', and 'dchar' as base types, which are defined as UTF-8, UTF-16, and UTF-32, respectively.
It also has type constructors (e.g. 'const' and 'immutable'), that leads to D compilers emitting DW_TAG_base_type with DW_ATE_UTF and name 'char', 'immutable(wchar)', 'const(char)', etc...
Before this patch, DW_ATE_UTF would only recognize types that followed the C/C++ naming, and emit an error message for the rest, e.g.: ``` error: need to add support for DW_TAG_base_type 'immutable(char)' encoded with DW_ATE = 0x10, bit_size = 8 ```
The code was changed to check the byte size first, then fall back to the old name-based check.
Reviewers: clayborg, labath
Reviewed By: labath
Subscribers: labath, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D79559
|
 | lldb/test/Shell/SymbolFile/DWARF/DW_TAG_basic_type_DW_ATE_UTF_nonC.ll |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
Commit
8cbd3f431a919e3398683bb5b72fdd781798bcc8
by Artem Dergachev[analyzer] SATestBuild.py: Be defensive against corrupt plist files.
|
 | clang/utils/analyzer/SATestBuild.py |
Commit
ab61fe41505c0dab8c05b3b6792454fc097b2999
by marekRevert "[libc++] [LWG3321] Mark "year_month_day_last::day() specification does not cover !ok() values" issue as "Nothing to do", but add assertion."
This reverts commit e25a2601aaa95c861af3228982ecbb2b1c19d27a. It was failing due to _LIBCPP_ASSERT throwing in a method marked noexcept.
|
 | libcxx/include/chrono |
 | libcxx/www/cxx2a_status.html |
Commit
18a5428e60272482e7a3855fbfd40427e8066be6
by dmitry.preobrazhensky[AMDGPU][MC][GFX9+] Enabled clamp for v_add_i32 and v_sub_i32
See bug 45830: https://bugs.llvm.org/show_bug.cgi?id=45830
Reviewers: arsenm, rampitec
Differential Revision: https://reviews.llvm.org/D79585
|
 | llvm/test/MC/AMDGPU/gfx10_asm_all.s |
 | llvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt |
 | llvm/test/MC/Disassembler/AMDGPU/vop3_gfx9.txt |
 | llvm/lib/Target/AMDGPU/VOP3Instructions.td |
 | llvm/test/MC/AMDGPU/vop3-gfx9.s |
Commit
e072b20bdea5629d0bc7a7c2216bdc7762dcb564
by pavel[lldb] Merge PlatformXXX::ResolveExecutable
The near-identical implementations of this function for posix-y platforms were merged in r293910. PlatformWindows was left out of this merge because at the time we did not have a suitable base class to sink the code into. That is no longer true, so this commit finishes the job by moving the code into RemoteAwarePlatform::ResolveExecutable.
|
 | lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h |
 | lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp |
 | lldb/include/lldb/Target/RemoteAwarePlatform.h |
 | lldb/source/Target/RemoteAwarePlatform.cpp |
 | lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp |
 | lldb/source/Plugins/Platform/Windows/PlatformWindows.h |
Commit
881c3bb6a7323fe01f95d4e95755c78cd805056f
by marcel.koester[mlir] Adapted standard Alloc and Alloca ops to use new side-effect resources.
The current standard Alloca node is not annotated with the MemEffect<Alloc> trait. This CL updates the Alloc and Alloca memory-effect annotations using the latest Resource objects. Alloca nodes will use a newly defined AutomaticAllocationScopeResource to distinguish between Alloc and Alloca memory effects.
Differential Revision: https://reviews.llvm.org/D79620
|
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/include/mlir/Interfaces/SideEffectInterfaces.td |
 | mlir/include/mlir/Interfaces/SideEffects.h |
Commit
f61f6ffe1126869b05a6f0b8fdee7b24c02d24f3
by n54[compiler-rt] [builtin] Switch the return type of __atomic_compare_exchange_##n to bool
Summary: Synchronize the function definition with the LLVM documentation.
https://llvm.org/docs/Atomics.html#libcalls-atomic
GCC also returns bool for the same atomic builtin.
Reviewers: theraven
Reviewed By: theraven
Subscribers: theraven, dberris, jfb, #sanitizers
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D79845
|
 | compiler-rt/lib/builtins/atomic.c |
Commit
897d8ee5cd693e17f95a7e84194bca4c089a520b
by ehudkatz[StructurizeCFG] Fix region nodes ordering
This is a reimplementation of the `orderNodes` function, as the old implementation didn't take into account all cases.
Fix PR41509
Differential Revision: https://reviews.llvm.org/D79037
|
 | llvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll |
 | llvm/lib/Transforms/Scalar/StructurizeCFG.cpp |
Commit
9529597cf4562c64034943dacc29a4ff4fe93d86
by sjoerd.meijerRecommit #2: "[LV] Induction Variable does not remain scalar under tail-folding."
This was reverted because of a miscompilation. At closer inspection, the problem was actually visible in a changed llvm regression test too. This one-line follow up fix/recommit will splat the IV, which is what we are trying to avoid if unnecessary in general, if tail-folding is requested even if all users are scalar instructions after vectorisation. Because with tail-folding, the splat IV will be used by the predicate of the masked loads/stores instructions. The previous version omitted this, which caused the miscompilation. The original commit message was:
If tail-folding of the scalar remainder loop is applied, the primary induction variable is splat to a vector and used by the masked load/store vector instructions, thus the IV does not remain scalar. Because we now mark that the IV does not remain scalar for these cases, we don't emit the vector IV if it is not used. Thus, the vectoriser produces less dead code.
Thanks to Ayal Zaks for the direction how to fix this.
|
 | llvm/test/Transforms/LoopVectorize/vector-intrinsic-call-cost.ll |
 | llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll |
 | llvm/test/Transforms/LoopVectorize/X86/small-size.ll |
 | llvm/test/Transforms/LoopVectorize/pr35773.ll |
 | llvm/test/Transforms/LoopVectorize/X86/pr36524.ll |
 | llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll |
 | llvm/test/Transforms/LoopVectorize/ARM/sphinx.ll |
 | llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-bswap.ll |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll |
 | llvm/test/Transforms/LoopVectorize/if-pred-stores.ll |
 | llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll |
 | llvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll |
 | llvm/test/Transforms/LoopVectorize/X86/optsize.ll |
 | llvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll |
 | llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll |
 | llvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll |
 | llvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll |
 | llvm/test/Transforms/LoopVectorize/Hexagon/invalidate-cm-after-invalidating-interleavegroups.ll |
 | llvm/test/Transforms/LoopVectorize/runtime-check-needed-but-empty.ll |
 | llvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll |
 | llvm/test/Transforms/LoopVectorize/SystemZ/predicated-first-order-recurrence.ll |
 | llvm/test/Transforms/LoopVectorize/if-reduction.ll |
 | llvm/test/Transforms/LoopVectorize/fcmp-vectorize.ll |
 | llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll |
 | llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll |
 | llvm/test/Transforms/LoopVectorize/pr44488-predication.ll |
 | llvm/test/Transforms/LoopVectorize/X86/pr35432.ll |
 | llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll |
Commit
410644fbf767d5853f170cb2d664a5fef37cb20a
by simon.wallis2Clang crash targeting ARM or Thumb when assembling a prel31 relocation variant
Summary: In the assembler or inline assembler, attempting to use an invalid fixup type gives a crash with a segmentation fault.
__attribute__((naked)) void foo(void) { __asm__("mov r9, :lower16:bar(prel31)"); }
This should give a proper error message when building for ARM or Thumb. This brings it in line with AARCH64.
This fixes all 8 instances of llvm_unreachable("Unsupported Modifier"); in ARM/MCTargetDesc/ARMELFObjectWriter.cpp. A test is provided for each instance.
Reviewers: llvm-commits, MarkMurrayARM
Reviewed By: MarkMurrayARM
Subscribers: kristof.beyls, hiraditya, danielkiss
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79782
Change-Id: I6971ba37f129cc453568fe71514ccb2ac9d16831
|
 | llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp |
 | llvm/test/MC/ARM/error-location.s |
Commit
1b140a87a5815513da69fa894e9533f500ea1c12
by ehsan.nadjaran_toosi[MLIR] Nested regions test for Buffer Assginment
Due to the extension of Liveness, Buffer Assignment can now work on nested regions. This PR provides a test case to show that existing functionally of BA works properly.
Differential Revision: https://reviews.llvm.org/D79332
|
 | mlir/test/Transforms/buffer-placement.mlir |
Commit
2668775f66656f719f7d8164066ec5ca64d707f2
by pierre.vanhoutryve[LSR][ARM] Add new TTI hook to mark some LSR chains as profitable
This patch adds a new TTI hook to allow targets to tell LSR that a chain including some instruction is already profitable and should not be optimized. This patch also adds an implementation of this TTI hook for ARM so LSR doesn't optimize chains that include the VCTP intrinsic.
Differential Revision: https://reviews.llvm.org/D79418
|
 | llvm/test/Transforms/LoopStrengthReduce/ARM/vctp-chains.ll |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/lib/Analysis/TargetTransformInfo.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h |
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.h |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/lsr-profitable-chain.ll |
Commit
6d2599e4f776d0cd88438cb82a00c4fc25cc3f67
by Louis Dionne[libcxx][span] Implement P1976R2
This resolves the NB comment about the construction of a fixed-size span from a dynamic range.
Differential Revision: https://reviews.llvm.org/D74577
|
 | libcxx/test/std/containers/views/span.cons/span.fail.cpp |
 | libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp |
 | libcxx/docs/FeatureTestMacroTable.rst |
 | libcxx/utils/generate_feature_test_macro_components.py |
 | libcxx/test/std/containers/views/span.cons/ptr_ptr.fail.cpp |
 | libcxx/include/version |
 | libcxx/test/std/containers/views/span.cons/container.fail.cpp |
 | libcxx/test/std/containers/views/span.cons/ptr_len.fail.cpp |
 | libcxx/test/std/containers/views/span.cons/container.pass.cpp |
 | libcxx/test/std/containers/views/span.cons/assign.pass.cpp |
 | libcxx/test/std/language.support/support.limits/support.limits.general/span.version.pass.cpp |
 | libcxx/include/span |
Commit
2fe6672498d60074fd34e2770659d5526e53e093
by Raphael Isemann[lldb][NFC] Don't specify a default argument when creating a TextDiagnosticPrinter
|
 | lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp |
Commit
87c56594dd98bc4fe6932713325f410a1b68e962
by david.green[ARM] Sink splats to fma intrinsics
Similar to fmul/fadd, we can sink a splat into a loop containing a fma in order to use more register instruction variants. For that there are also adjustments to the sinking code to handle more than 2 arguments.
Differential Revision: https://reviews.llvm.org/D78386
|
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/test/CodeGen/Thumb2/mve-fma-loops.ll |
 | llvm/test/CodeGen/Thumb2/mve-vldst4.ll |
Commit
195de442daba5ae1754528eb2869ca50c3af2669
by carl.ritson[AMDGPU] Strengthen export cluster ordering
Summary: When removing barrier edges on exports then dependencies need to be propagated.
Reviewers: foad
Reviewed By: foad
Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79855
|
 | llvm/lib/Target/AMDGPU/AMDGPUExportClustering.cpp |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.ll |
Commit
e0b99a5de4cbf00bfa46d06caf1ebf64a6456537
by ntv[mlir] Add SubViewOp::getOrCreateRanges and fix folding pattern
The existing implementation of SubViewOp::getRanges relies on all offsets/sizes/strides to be dynamic values and does not work in combination with canonicalization. This revision adds a SubViewOp::getOrCreateRanges to create the missing constants in the canonicalized case.
This allows reactivating the fused pass with staged pattern applications.
However another issue surfaces that the SubViewOp verifier is now too strict to allow folding. The existing folding pattern is turned into a canonicalization pattern which rewrites memref_cast + subview into subview + memref_cast.
The transform-patterns-matmul-to-vector can then be reactivated.
Differential Revision: https://reviews.llvm.org/D79759
|
 | mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/test/Dialect/Linalg/transform-patterns-matmul-to-vector.mlir |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
Commit
a5d80818fa702876ced0e62bffcd24d3d9bf43b9
by ntv[mlir] [VectorOps] Add missing EDSC intrinsics.
Differential Revision: https://reviews.llvm.org/D79858
|
 | mlir/include/mlir/Dialect/Vector/EDSC/Intrinsics.h |
Commit
fa15255d8af53126bbcb017f2fb6f9961e8574df
by david.green[ARM] Convert floating point splats to integer
Under MVE a vdup will always take a gpr register, not a floating point value. During DAG combine we convert the types to a bitcast to an integer in an attempt to fold the bitcast into other instructions. This is OK, but only works inside the same basic block. To do the same trick across a basic block boundary we need to convert the type in codegenprepare, before the splat is sunk into the loop.
This adds a convertSplatType function to codegenprepare to do that, putting bitcasts around the splat to force the type to an integer. There is then some adjustment to the code in shouldSinkOperands to handle the extra bitcasts.
Differential Revision: https://reviews.llvm.org/D78728
|
 | llvm/test/CodeGen/Thumb2/mve-pred-threshold.ll |
 | llvm/test/CodeGen/Thumb2/mve-postinc-lsr.ll |
 | llvm/lib/Target/ARM/ARMISelLowering.h |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/test/CodeGen/Thumb2/mve-float32regloops.ll |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vaddq.ll |
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vmulq.ll |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/ternary.ll |
 | llvm/test/CodeGen/Thumb2/mve-vldst4.ll |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vsubq.ll |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/dup.ll |
 | llvm/include/llvm/CodeGen/TargetLowering.h |
 | llvm/test/CodeGen/Thumb2/mve-float16regloops.ll |
 | llvm/test/CodeGen/Thumb2/mve-fma-loops.ll |
Commit
a520c89a4768f1e2ad7012eb70ff05357fc5e985
by russell.gallop[DebugInfo] Fix test Fortran-DIModule.ll after 678bd84c4
Was failing here: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/32320
|
 | llvm/test/DebugInfo/X86/Fortran-DIModule.ll |
Commit
4b53495c4ba2ba410f6383f9c57593e838ec0d57
by rdwamplerPerform ActOnConversionDeclarator after looking for any virtual functions it overrides
Summary: This allows for suppressing warnings about the conversion function never being called if it overrides a virtual function in a base class.
Differential Revision: https://reviews.llvm.org/D78444
|
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/test/SemaCXX/conversion-function.cpp |
 | clang/lib/Sema/SemaDeclCXX.cpp |
Commit
53cc90f789996d1e1edc6a9233a85ce8d658aadd
by klimekMake FormatToken::Type private.
This enables us to intercept changes to the token type via setType(), which is a precondition for being able to use multi-pass formatting for macro arguments.
Differential Revision: https://reviews.llvm.org/D67405
|
 | clang/lib/Format/FormatToken.h |
 | clang/lib/Format/FormatToken.cpp |
 | clang/lib/Format/Format.cpp |
 | clang/lib/Format/UnwrappedLineParser.cpp |
 | clang/lib/Format/TokenAnnotator.cpp |
 | clang/lib/Format/FormatTokenLexer.cpp |
Commit
5f7a5e3bdba3663c8ec9704e28f75f6b2850f9f8
by Raphael Isemann[lldb][NFC] Early-exit in SetupDeclVendor
Also removed the unnecessary element-by-element copy of the std::vector hand_imported_modules to modules_for_macros.
|
 | lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp |
Commit
1370757dd019c4e1b7bf623622e2bfc94680509f
by rnkRevert "[BrachProbablityInfo] Set edge probabilities at once. NFC."
This reverts commit eef95f2746c3347b8dad19091ffb82a88d73acd3.
The new assertion about branch propability sums does not hold.
|
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
 | llvm/lib/Analysis/BranchProbabilityInfo.cpp |
 | llvm/include/llvm/Analysis/BranchProbabilityInfo.h |
 | llvm/lib/Transforms/Scalar/JumpThreading.cpp |
 | llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp |
Commit
a1fd188223d9c9b404dccd3511fe8b63ef022a13
by jdenny.ornl[FileCheck] Support comment directives
Sometimes you want to disable a FileCheck directive without removing it entirely, or you want to write comments that mention a directive by name. The `COM:` directive makes it easy to do this. For example, you might have:
``` ; X32: pinsrd_1: ; X32: pinsrd $1, 4(%esp), %xmm0
; COM: FIXME: X64 isn't working correctly yet for this part of codegen, but ; COM: X64 will have something similar to X32: ; COM: ; COM: X64: pinsrd_1: ; COM: X64: pinsrd $1, %edi, %xmm0 ```
Without this patch, you need to use some combination of rewording and directive syntax mangling to prevent FileCheck from recognizing the commented occurrences of `X32:` and `X64:` above as directives. Moreover, FileCheck diagnostics have been proposed that might complain about the occurrences of `X64` that don't have the trailing `:` because they look like directive typos:
<http://lists.llvm.org/pipermail/llvm-dev/2020-April/140610.html>
I think dodging all these problems can prove tedious for test authors, and directive syntax mangling already makes the purpose of existing test code unclear. `COM:` can avoid all these problems.
This patch also updates the small set of existing tests that define `COM` as a check prefix:
- clang/test/CodeGen/default-address-space.c - clang/test/CodeGenOpenCL/addr-space-struct-arg.cl - clang/test/Driver/hip-device-libs.hip - llvm/test/Assembler/drop-debug-info-nonzero-alloca.ll
I think lit should support `COM:` as well. Perhaps `clang -verify` should too.
Reviewed By: jhenderson, thopre
Differential Revision: https://reviews.llvm.org/D79276
|
 | llvm/test/FileCheck/comment/after-words.txt |
 | llvm/test/FileCheck/validate-check-prefix.txt |
 | llvm/test/FileCheck/comment/unused-check-prefixes.txt |
 | llvm/test/FileCheck/comment/unused-comment-prefixes.txt |
 | llvm/test/FileCheck/comment/suppresses-checks.txt |
 | llvm/test/FileCheck/comment/within-checks.txt |
 | llvm/test/FileCheck/comment/bad-comment-prefix.txt |
 | llvm/test/FileCheck/comment/suffixes.txt |
 | llvm/utils/FileCheck/FileCheck.cpp |
 | llvm/docs/CommandGuide/FileCheck.rst |
 | llvm/test/FileCheck/comment/blank-comments.txt |
 | clang/test/CodeGen/default-address-space.c |
 | llvm/test/Assembler/drop-debug-info-nonzero-alloca.ll |
 | llvm/include/llvm/Support/FileCheck.h |
 | llvm/test/FileCheck/first-character-match.txt |
 | llvm/lib/Support/FileCheck.cpp |
 | clang/test/Driver/hip-device-libs.hip |
 | clang/test/CodeGenOpenCL/addr-space-struct-arg.cl |
Commit
cf2fb139321ca06b5200a88847fabec93ee92d80
by Yaxun.LiuAdd -print-targets to print the registered targets
Differential Revision: https://reviews.llvm.org/D79565
|
 | clang/lib/Driver/Driver.cpp |
 | clang/docs/ReleaseNotes.rst |
 | clang/include/clang/Driver/Options.td |
Commit
6671a81bc71cc2635c5a10d6f688fea46ca4e5d6
by Jonas Devlieghere[lldb/Reproducers] Add test-specific API to set the test CWD
The reproducers' working directory is set to the current working directory when they are initialized. While this is not optimal, as the cwd can change during a debug session, it has been sufficient so far.
The current approach doesn't work for the API test suite however because dotest temporarily changes the directory to where the test's Python file lives.
This patch adds an API to tell the reproducers what to set the CWD to. This is a NO-OP in every mode but capture.
Differential revision: https://reviews.llvm.org/D79825
|
 | lldb/packages/Python/lldbsuite/test/lldbtest.py |
 | lldb/include/lldb/API/SBReproducer.h |
 | lldb/source/API/SBReproducer.cpp |
 | lldb/bindings/interface/SBReproducer.i |
 | lldb/include/lldb/Utility/Reproducer.h |
Commit
a8bf2deae4f1e96857c8869f9931f5adb469e929
by benny.kra[CodeGenPrepare] Remove a superflouos variable. NFC.
Fixes a -Wunused-variable warning in Release builds.
|
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
Commit
641ae73f2eba1a4c52d8ddeefad44f26cc7530f3
by akhuang[NativeSession] Implement NativeSession::findSymbolByAddress.
Summary: This implements searching for function symbols and public symbols by address.
More specifically, -Implements NativeSession::findSymbolByAddress for function symbols and public symbols. I think data symbols are also searched for, but isn't implemented in this patch. -Adds classes for NativeFunctionSymbol and NativePublicSymbol -Adds a '-use-native-pdb-reader' option to llvm-symbolizer, for testing purposes.
Reviewers: rnk, amccarth, labath
Subscribers: mgorny, hiraditya, MaskRay, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79269
|
 | llvm/test/tools/llvm-symbolizer/pdb/pdb-native.test |
 | llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h |
 | llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h |
 | llvm/lib/DebugInfo/PDB/Native/NativeFunctionSymbol.cpp |
 | llvm/include/llvm/DebugInfo/PDB/IPDBSession.h |
 | llvm/unittests/DebugInfo/PDB/PDBApiTest.cpp |
 | llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h |
 | llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h |
 | llvm/lib/DebugInfo/PDB/Native/NativePublicSymbol.cpp |
 | llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp |
 | llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp |
 | llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp |
 | llvm/lib/DebugInfo/Symbolize/Symbolize.cpp |
 | llvm/utils/gn/secondary/llvm/lib/DebugInfo/PDB/BUILD.gn |
 | llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h |
 | llvm/lib/DebugInfo/PDB/CMakeLists.txt |
 | llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp |
 | llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h |
 | llvm/unittests/DebugInfo/PDB/NativeSessionTest.cpp |
Commit
b7afa92e75ddea744c9bafbb2119b63ea564e122
by sivachandra[libc] Call mtx_init in mtx_test.
A typo which was caught has also been fixed.
Reviewers: abrachet
Differential Revision: https://reviews.llvm.org/D79826
|
 | libc/src/threads/mtx_init.h |
 | libc/test/src/threads/mtx_test.cpp |
Commit
902777ded5c0e049d21f9c2bea195b57dcf3d34f
by ravishankarm[mlir][Linalg] Fix missing template keyword.
Differential Revision: https://reviews.llvm.org/D79884
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
Commit
60f443bb3b3df8ee1cb391544ad80417c9bb8293
by zinenko[mlir] Change dialect namespace loop->scf
All ops of the SCF dialect now use the `scf.` prefix instead of `loop.`. This is a part of dialect renaming.
Differential Revision: https://reviews.llvm.org/D79844
|
 | mlir/test/Conversion/GPUToSPIRV/if.mlir |
 | mlir/test/mlir-opt/commandline.mlir |
 | mlir/include/mlir/Dialect/Linalg/EDSC/Builders.h |
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp |
 | mlir/test/Dialect/Affine/dma-generate.mlir |
 | mlir/test/Conversion/VectorToLoops/vector-to-loops.mlir |
 | mlir/test/Dialect/GPU/promotion.mlir |
 | mlir/test/Dialect/Linalg/llvm.mlir |
 | mlir/include/mlir/Dialect/SCF/CMakeLists.txt |
 | mlir/test/Conversion/LoopsToGPU/imperfect_2D.mlir |
 | mlir/test/Dialect/Linalg/fusion.mlir |
 | mlir/test/Transforms/loop-coalescing.mlir |
 | mlir/test/lib/Transforms/TestLoopMapping.cpp |
 | mlir/include/mlir/Conversion/LoopToStandard/ConvertLoopToStandard.h |
 | mlir/test/Dialect/SCF/parallel-loop-tiling.mlir |
 | mlir/test/Dialect/Linalg/tile_conv_padding.mlir |
 | mlir/test/Transforms/sccp-structured.mlir |
 | mlir/test/Conversion/LoopsToGPU/perfect_1D_setlaunch.mlir |
 | mlir/test/Dialect/Linalg/transform-patterns.mlir |
 | mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPU.h |
 | mlir/lib/Dialect/SCF/Transforms/ParallelLoopTiling.cpp |
 | mlir/test/Dialect/Linalg/promote.mlir |
 | mlir/test/Dialect/Affine/SuperVectorize/vectorize_1d.mlir |
 | mlir/test/Transforms/parametric-tiling.mlir |
 | mlir/include/mlir/Dialect/Linalg/Passes.h |
 | mlir/test/Transforms/single-parallel-loop-collapsing.mlir |
 | mlir/include/mlir/Dialect/GPU/ParallelLoopMapperAttr.td |
 | mlir/test/Conversion/LoopsToGPU/imperfect_4D.mlir |
 | mlir/test/Transforms/canonicalize-block-merge.mlir |
 | mlir/lib/Conversion/VectorToLoops/ConvertVectorToLoops.cpp |
 | mlir/test/Analysis/test-liveness.mlir |
 | mlir/test/Dialect/Linalg/tile_indexed_generic.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/test/Transforms/parallel-loop-collapsing.mlir |
 | mlir/test/Conversion/LoopsToGPU/imperfect_3D.mlir |
 | mlir/lib/Dialect/SCF/Transforms/ParallelLoopSpecialization.cpp |
 | mlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h |
 | mlir/test/Transforms/loop-fusion.mlir |
 | mlir/test/Dialect/GPU/mapping.mlir |
 | mlir/test/EDSC/builder-api-test.cpp |
 | mlir/test/Dialect/SCF/parallel-loop-specialization.mlir |
 | mlir/include/mlir/Dialect/SCF/SCF.h |
 | mlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir |
 | mlir/test/Dialect/SCF/parallel-loop-fusion.mlir |
 | mlir/test/Dialect/SCF/invalid.mlir |
 | mlir/test/Transforms/loop-fusion-slice-computation.mlir |
 | mlir/include/mlir/Dialect/SCF/Transforms.h |
 | mlir/test/Dialect/Linalg/tile_parallel.mlir |
 | mlir/include/mlir/Dialect/SCF/SCFOps.td |
 | mlir/lib/Dialect/Linalg/Transforms/Loops.cpp |
 | mlir/test/Conversion/LoopsToGPU/parallel_loop.mlir |
 | mlir/test/Conversion/LoopsToGPU/linalg_to_gpu.mlir |
 | mlir/test/Conversion/GPUToSPIRV/loop.mlir |
 | mlir/include/mlir/Transforms/LoopUtils.h |
 | mlir/test/Dialect/SCF/ops.mlir |
 | mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp |
 | mlir/test/Conversion/LoopsToGPU/step_one.mlir |
 | mlir/test/Dialect/Affine/unroll.mlir |
 | mlir/docs/EDSC.md |
 | mlir/test/Analysis/test-dominance.mlir |
 | mlir/test/Transforms/loop-invariant-code-motion.mlir |
 | mlir/test/Conversion/LoopsToGPU/imperfect_linalg.mlir |
 | mlir/test/Transforms/canonicalize.mlir |
 | mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/test/Dialect/Affine/slicing-utils.mlir |
 | mlir/lib/Dialect/SCF/SCF.cpp |
 | mlir/test/Dialect/SCF/loop-unroll.mlir |
 | mlir/test/Conversion/convert-to-cfg.mlir |
 | mlir/test/Dialect/Linalg/fusion-2-level.mlir |
 | mlir/test/Dialect/Linalg/loops.mlir |
 | mlir/lib/Conversion/LoopToStandard/LoopToStandard.cpp |
 | mlir/test/Dialect/Linalg/tile_conv.mlir |
 | mlir/test/Dialect/Linalg/fusion_indexed_generic.mlir |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h |
 | mlir/test/Dialect/Linalg/tile.mlir |
 | mlir/include/mlir/Dialect/SCF/EDSC/Builders.h |
 | mlir/test/Transforms/parametric-mapping.mlir |
 | mlir/test/Dialect/Linalg/parallel_loops.mlir |
 | mlir/test/Transforms/memref-dependence-check.mlir |
Commit
4d4ea9ac59cd541b1d5e38ab87a70a38d3bc09bb
by johannesOpenMPOpt Remarks Support
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D79359
|
 | llvm/test/Transforms/OpenMP/parallel_deletion_remarks.ll |
 | llvm/test/Transforms/OpenMP/deduplication_remarks.ll |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
064e9907ba069392427887405481d5e7abc1f662
by sbc[lld][WebAssembly] Fix for --relocatable and signature mismatches
This is a followup to https://reviews.llvm.org/D78779.
When signatures mismatch we create set of variant symbols. Some of the fields in these symbols were not be initialized correct. Specifically we were seeing isUsedInRegularObj not being set correctly, leading to the symbol not getting included in the symbol table and a crash writing relections in --reloctable mode.
There is larger refactor due here, but this is a minimal change the fixes the bug at hand.
Differential Revision: https://reviews.llvm.org/D79756
|
 | lld/test/wasm/signature-mismatch-relocatable.s |
 | lld/test/wasm/Inputs/sig_mismatch.s |
 | lld/wasm/SymbolTable.cpp |
Commit
0ab3ba230e928e8e1261e36c805de87b5d44e20d
by annaNFC: Avoid redundant checks for vector-function-abi-variant attribute
Updated the comments on the code as well to reflect what the preconditions on VFABI::getVectorVariantNames are.
|
 | llvm/include/llvm/Analysis/VectorUtils.h |
Commit
b2eb439317576ce718193763c12bff9fccdfc166
by mydeveloperday[clang-format] Fix AlignConsecutive on PP blocks
Summary: Currently the 'AlignConsecutive*' options incorrectly align across elif and else statements, even if they are very far away and across unrelated preprocessor macros.
This failed since on preprocessor run 2+, there is not enough context about the #ifdefs to actually differentiate one block from another, causing them to align across different blocks or even large sections of the file.
Eg, with AlignConsecutiveAssignments:
``` \#if FOO // Run 1 \#else // Run 1 int a = 1; // Run 2, wrong \#endif // Run 1
\#if FOO // Run 1 \#else // Run 1 int bar = 1; // Run 2 \#endif // Run 1 ```
is read as
``` int a = 1; // Run 2, wrong int bar = 1; // Run 2 ```
The approach taken to fix this was to add a new flag to Token that forces breaking alignment across groups of lines (MustBreakAlignBefore) in a similar manner to the existing flag that forces a line break (MustBreakBefore). This flag is set for the first Token after a preprocessor statement or diff conflict marker.
Fixes #25167,#31281
Patch By: JakeMerdichAMD
Reviewed By: MyDeveloperDay
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79388
|
 | clang/lib/Format/UnwrappedLineParser.cpp |
 | clang/lib/Format/FormatToken.h |
 | clang/lib/Format/WhitespaceManager.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/unittests/Format/FormatTestComments.cpp |
Commit
c82243d0675bad130d22a9301d3dc1e7cfb05c2f
by mydeveloperday[clang-format] : Fix additional pointer alignment for overloaded operators
Summary: Follow on from {D78879} to handle the more obscure to prevent spaces between operators
``` operator void *&(); operator void *&&(); operator void &*(); operator void &&*(); ```
Reviewers: sylvestre.ledru, sammccall, krasimir, Abpostelnicu
Reviewed By: sammccall, Abpostelnicu
Subscribers: cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79201
|
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/TokenAnnotator.cpp |
Commit
ce3bbeb9159b30d6880fa5f71c0910007d0a6792
by stephen.neuendorffer[MLIR] refactor cmake specification of tablegen'd interfaces.
Introduce add_mlir_interface to avoid lots of boilerplate
Differential Revision: https://reviews.llvm.org/D79841
|
 | mlir/cmake/modules/AddMLIR.cmake |
 | mlir/lib/Interfaces/CMakeLists.txt |
 | mlir/include/mlir/Interfaces/CMakeLists.txt |
Commit
d02fce2d149eaad90fd5bcc0579de868fa86526d
by stephen.neuendorffer[MLIR] Discourage people from copying the toy examples
The CMake structure of the toy example is non-standard. encourage people to copy the standalone example instead.
Differential Revision: https://reviews.llvm.org/D79889
|
 | mlir/examples/toy/Ch6/CMakeLists.txt |
 | mlir/examples/toy/Ch7/include/toy/CMakeLists.txt |
 | mlir/examples/toy/Ch3/CMakeLists.txt |
 | mlir/examples/toy/Ch1/CMakeLists.txt |
 | mlir/examples/toy/Ch5/CMakeLists.txt |
 | mlir/examples/toy/Ch4/include/toy/CMakeLists.txt |
 | mlir/examples/toy/Ch7/CMakeLists.txt |
 | mlir/examples/toy/Ch2/CMakeLists.txt |
 | mlir/examples/toy/Ch4/CMakeLists.txt |
 | mlir/examples/toy/Ch5/include/toy/CMakeLists.txt |
 | mlir/examples/toy/Ch6/include/toy/CMakeLists.txt |
Commit
a4441fcd12a6c097cca1f8cff6515b9ea9ae3cee
by antiagainst[mlir][vulkan-runner] Avoid dependency on LLVM libraries
The Vulkan runtime wrapper will be compiled to a shared library that are loaded by the JIT runner. Depending on LLVM libraries means that LLVM symbols will be compiled into the shared library. That can cause problems if we are using it with other shared libraries depending on LLVM, notably Mesa, the open-source graphics driver framework. The Vulkan API wrappers invoked by the JIT runner links to the system libvulkan.so. If it's Mesa providing the implementation, Mesa will normally try to load the system libLLVM.so for its shader compilation. That causes issues because the JIT runner already loaded the Vulkan runtime wrapper which has LLVM sybmols compiled in. So system linker will instruct Mesa to use those symbols instead.
Differential Revision: https://reviews.llvm.org/D79860
|
 | mlir/tools/mlir-vulkan-runner/VulkanRuntime.cpp |
 | mlir/tools/mlir-vulkan-runner/vulkan-runtime-wrappers.cpp |
 | mlir/tools/mlir-vulkan-runner/CMakeLists.txt |
 | mlir/tools/mlir-vulkan-runner/VulkanRuntime.h |
Commit
33d96bf7b9b2add1c45bf1c60195dc7ca961393e
by llvm-dev[InstCombine] Add vector tests for the or(shl(zext(x),32)|zext(y)) concat combines
|
 | llvm/test/Transforms/InstCombine/or-concat.ll |
Commit
7a8edcb2124b60941ef6ea4bb4b38a9eb0d70137
by sylvain.audi[Clang] Restore replace_path_prefix instead of startswith
In D49466, sys::path::replace_path_prefix was used instead startswith for -f[macro/debug/file]-prefix-map options. However those were reverted later (commit rG3bb24bf25767ef5bbcef958b484e7a06d8689204) due to broken Windows tests.
This patch restores those replace_path_prefix calls. It also modifies the prefix matching to be case-insensitive under Windows.
Differential Revision : https://reviews.llvm.org/D76869
|
 | llvm/lib/Support/Path.cpp |
 | clang/test/Preprocessor/file_test.c |
 | clang/test/Preprocessor/file_test_windows.c |
 | llvm/include/llvm/Support/Path.h |
 | clang/test/Preprocessor/file_test.h |
 | llvm/unittests/Support/Path.cpp |
 | clang/lib/Lex/PPMacroExpansion.cpp |
 | llvm/lib/MC/MCContext.cpp |
 | clang/test/Preprocessor/Inputs/include-file-test/file_test.h |
 | llvm/lib/DWARFLinker/DWARFLinker.cpp |
 | clang/lib/CodeGen/CGDebugInfo.cpp |
Commit
de92dc2850c17259090ccf644b2f2375ab8e1664
by craig.topper[Statepoint] Mark FixupStatepointCallerSaved as preserving the CFG
I'm hoping this will restore some compile time lost by D75936 and D75937.
Differential Revision: https://reviews.llvm.org/D79813
|
 | llvm/test/CodeGen/X86/O3-pipeline.ll |
 | llvm/test/CodeGen/ARM/O3-pipeline.ll |
 | llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp |
Commit
2a12acda4c9fad4d69dce7a43e99690df357648c
by dkszelethus[analyzer][StreamChecker] Don't make StreamTestChecker depend on StreamChecker for the time being
The comment in Checkers.td explains whats going on. As StreamChecker grows, expect a need to have smaller checkers out of it, but let that be a worry for later.
Differential Revision: https://reviews.llvm.org/D78120
|
 | clang/test/Analysis/stream-error.c |
 | clang/include/clang/StaticAnalyzer/Checkers/Checkers.td |
Commit
fcfb3170a776f89dde4de8ee105c99e10660f455
by efriedma[SROA] Clean up some uses of MaybeAlign in SROA.
Use Align instead of using MaybeAlign; all the operations in question have known alignment.
For getSliceAlign() in particular, in the cases where we used to return None, it would be converted back to an Align by IRBuilder, so there's no functional change there.
Split off from D77454.
Differential Revision: https://reviews.llvm.org/D79205
|
 | llvm/lib/Transforms/Scalar/SROA.cpp |
Commit
15426b2161a4680051f13dcf0824eeab602b25fa
by erik.pilkington[demangler] Fix demangling of enumerators with negative values
rdar://27527445
|
 | libcxxabi/src/demangle/ItaniumDemangle.h |
 | llvm/include/llvm/Demangle/ItaniumDemangle.h |
 | libcxxabi/test/test_demangle.pass.cpp |
Commit
72416b136ec67e3036add616875438dc93bec149
by psteinfeldFixed a problem removing temp files
Summary: Before making this change, whenever I ran "check-flang", I'd get an error message like:
llvm-lit: /mnt/c/GitHub/f18/c751/flang/build/bin/../../../llvm/utils/lit/lit/main.py:252: warning: Failed to delete temp directory '/tmp/lit_tmp_gOKUIh'
With this change, there's no such message in the output, and the temp directory is successfully removed.
Note that my working environment is on Windows 10 running Windows Subsystem for Linux using the Ubuntu app. I'm running Python version 2.7.1.
Earlier versions of Python do not contain `shutil`. It may be that this module was available on Windows systems later than other platforms. Upgrading my version of Python made the problem go away
I don't believe that timing was a problem since inserting a long delay didn't fix things.
So I added some text to the error message recommending that the user upgrade their version of Python if they run into this problem.
Reviewers: yln, DavidTruby
Subscribers: delcypher, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79861
|
 | llvm/utils/lit/lit/main.py |
Commit
5435c5def24e68b4cd54efa9e989cd78dbb9b8cc
by douglas.yungAdd shim for fork() on PS4 as it is not supported there.
Reviewers: probinson
Subscribers: #sanitizers llvm-commits
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D79839
|
 | compiler-rt/lib/profile/InstrProfilingUtil.h |
Commit
47985451edeb1a6de560dfcae031093bc5eb0f9f
by craig.topper[X86] Make the if statement structure for inline assembly constraints 'l', 'r', 'q', 'Q', and 'R' the same.
These did similar things but had slight differences. For example 'Q' didn't allow f64, but the others did.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
38e0ab2f3a3dc03acba37efe311c7c0a66665b79
by craig.topper[X86] Don't allow f80 to be used with the 'q', 'r', 'l', 'Q' or 'q' inline assembly constraints.
It was previously trying to use the 64-bit class, but 80 isn't evenly divisible by 64 so it will trigger a crash.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/asm-reject-reg-type-mismatch.ll |
Commit
704b539f65b74bbe961ba95caffdc8f98a5e374d
by Matthew.ArsenaultAMDGPU: Use Register
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.h |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
Commit
db04ff4b6bc3fbf5618556c52f8dd57a00790648
by asbirlea[SimpleLoopUnswitch] Add non-empty unreachable block check to exit cases removed.
Summary: Update check to include the check for unreachable.
Basic blocks ending in unreachable are special cased, as these blocks may be already unswitched. Before this patch this check is only done for the default destination. The condition for the exit cases and the default case must be the same, because we should never leave edges from the switch instruction to a basic block that we are unswitching. In PR45355 we still have a remaining edge (that we're attempting to remove from the DT) because its the default edge to an unreachable-terminated block where we unswitch a case edge to that block.
Resolves PR45355.
Reviewers: chandlerc
Subscribers: hiraditya, uabelho, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78279
|
 | llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch.ll |
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
Commit
bd541b217f4d750391677144ccaa586874236f38
by asbirlea[NewPassManager] Add assertions when getting statefull cached analysis.
Summary: Analyses that are statefull should not be retrieved through a proxy from an outer IR unit, as these analyses are only invalidated at the end of the inner IR unit manager. This patch disallows getting the outer manager and provides an API to get a cached analysis through the proxy. If the analysis is not stateless, the call to getCachedResult will assert.
Reviewers: chandlerc
Subscribers: mehdi_amini, eraman, hiraditya, zzheng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72893
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/include/llvm/Analysis/CGSCCPassManager.h |
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/lib/Transforms/Utils/CallGraphUpdater.cpp |
 | llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp |
 | llvm/include/llvm/Analysis/AliasAnalysis.h |
 | llvm/unittests/Analysis/CGSCCPassManagerTest.cpp |
 | llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp |
 | llvm/include/llvm/Transforms/Utils/CallGraphUpdater.h |
 | llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp |
 | llvm/lib/Transforms/Scalar/ConstantHoisting.cpp |
 | llvm/lib/Transforms/Coroutines/CoroSplit.cpp |
 | llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp |
 | llvm/lib/Analysis/CGSCCPassManager.cpp |
 | llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp |
 | llvm/include/llvm/IR/PassManager.h |
 | llvm/unittests/IR/PassManagerTest.cpp |
 | clang/test/CodeGen/thinlto-distributed-newpm.ll |
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
Commit
ed428c429e97592c260ad74a6198c210ce381a61
by efriedma[SelectionDAG] Require constant index for INSERT/EXTRACT_SUBVECTOR.
It sounds like an interesting idea in theory, but nothing is actually taking advantage of it, and specifying/implementing the edge cases is painful. So just forbid it.
Differential Revision: https://reviews.llvm.org/D79814
|
 | llvm/include/llvm/CodeGen/ISDOpcodes.h |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
e7bdfba4f00d65f0e5d3ff5adb772f424ba7f02d
by Louis Dionne[libc++] Explicitly list Lit features from the config_site header
When grepping for unused features in the test suite, we will now find those features and where they are defined, as opposed to thinking they are dead features.
|
 | libcxx/utils/libcxx/test/features.py |
Commit
028bfdd8913616f7a3e57e8ef5c2a9990e528ff0
by craig.topper[X86] Only allow f32, f64, or f80 to be used with 'f' inline assembly constraint.
Avoids crash when using i128. Gives better error than 'scalar-to-vector conversion failed' for other types.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/asm-reject-reg-type-mismatch.ll |
Commit
d6695e18763a05b30cb336c18157175277da8f4b
by mtrofin[llvm] Add interface to drive inlining decision using ML model
Summary:
This change introduces InliningAdvisor (and related APIs), the interface that abstracts decision making away from the inlining pass. We will use this interface to delegate decision making to a trained ML model, subsequently (see referenced RFC).
RFC: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140763.html
Reviewers: davidxl, eraman, dblaikie
Subscribers: mgorny, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79042
|
 | llvm/include/llvm/Passes/PassBuilder.h |
 | llvm/test/Transforms/Inline/optimization-remarks-passed-yaml.ll |
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll |
 | llvm/test/Transforms/Inline/inline_stats.ll |
 | llvm/test/Transforms/Inline/inlining-advisor-default.ll |
 | llvm/lib/Analysis/InlineAdvisor.cpp |
 | llvm/test/Other/new-pm-defaults.ll |
 | llvm/test/Other/scc-pass-printer.ll |
 | llvm/test/Transforms/Inline/optimization-remarks-hotness-threshold.ll |
 | llvm/test/Transforms/Inline/module-inlining.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Transforms/Inline/optimization-remarks.ll |
 | llvm/include/llvm/Analysis/InlineAdvisor.h |
 | llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll |
 | llvm/test/Other/scc-deleted-printer.ll |
 | llvm/test/Transforms/Inline/internal-scc-members.ll |
 | llvm/test/Transforms/Inline/optimization-remarks-yaml.ll |
 | llvm/test/Other/new-pm-thinlto-defaults.ll |
 | llvm/test/Transforms/Inline/optimization-remarks-with-hotness.ll |
 | llvm/lib/Passes/PassRegistry.def |
 | llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll |
 | llvm/test/Other/new-pm-lto-defaults.ll |
 | llvm/include/llvm/Transforms/IPO/Inliner.h |
 | llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll |
 | llvm/test/Transforms/Inline/monster_scc.ll |
Commit
ee33ee68fe5d9990d5812ea4347e5741337b0881
by mtrofin[docs] Add link to zorg github project
Reviewers: gkistanova
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79891
|
 | llvm/docs/HowToAddABuilder.rst |
Commit
f829ba60dadb71340318d525708e33b08ad61f8b
by ctetreauEnsure that CMake tries to find Python3 before processing
Summary: It is possible that CMake tries to process debuginfo-tests before any attempt to find Python3. Ensure that CMake attempts to find it before complaining that it doesn't exist.
Reviewers: zturner, rnk, jmorse, chandlerc
Reviewed By: rnk
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79795
|
 | debuginfo-tests/CMakeLists.txt |
Commit
25f6464b320274df9b7cabd5cf33152b56c0c9f6
by craig.topper[X86] Fix one of the PMADDWD tests to not have dead code.
There are two reductions in this test. It looks like I intended to combine them by packing one of them into the upper 32 bits of the result. But the OR instruction was missing.
|
 | llvm/test/CodeGen/X86/madd.ll |
Commit
c86f9664391133f8f610443e079fa1b89d2e4e29
by mtrofin[llvm][NFC] Remove unused fields in InlineAdvisor
|
 | llvm/include/llvm/Analysis/InlineAdvisor.h |
Commit
71ddc03a59bf8af02fb670d6c3221c83ad5be3a3
by stephen.neuendorffer[cmake] Update creation of object library dependencies for LINK_LIBS PUBLIC (v2)
REGEX matching doesn't work here because the problematic library can sometimes be "-lpthread" and sometimes "pthread". Let's do the simplest thing possible and just string compare.
Differential Revision: https://reviews.llvm.org/D79908
|
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
3d9511a311a038d83022a31f2a846e76e21d70be
by craig.topper[X86] Add test case for a regression from D76649. NFC
When combineLoopMAdd was moved to IR we got stricter about ensuring the truncate was free. This prevents us from matching this sum of squares of byte differences pattern show here.
We used to get this case when it was in SelectionDAG.
|
 | llvm/test/CodeGen/X86/madd.ll |
Commit
a549c0d00486bf01cb485e343d778fe4a3649a43
by amccarthFix template class debug info for Visual Studio visualizers
An earlier change eliminated spaces between the close brackets of nested template lists. Unfortunately that prevents the Windows debuggers from matching some types to their corresponding visualizers (e.g., std::map).
This selects the SeparateTemplateClosers flag when generating CodeView. Note that we were already making formatting adjustments under similar circumstances for similar reasons.
This wasn't caught by existing tests because they were using only -std=c++98.
Differential Revision: https://reviews.llvm.org/D79274
|
 | clang/test/CodeGenCXX/debug-info-codeview-display-name.cpp |
 | clang/lib/CodeGen/CGDebugInfo.cpp |
Commit
40927427406da6aa021ab80acf5f9944d762fbfd
by rnk[PDB] Switch from LLVM_PACKED to LLVM_PACKED_START/END
Reportedly using the pragma instead of the __attribute__ silences warnings with some GCC versions.
|
 | llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp |
Commit
d6e3e55c40a973e233b168c19b1f1718212b41a4
by echristoRemove unused Debugging variable.
|
 | llvm/include/llvm/Transforms/IPO/Inliner.h |
 | llvm/lib/Transforms/IPO/Inliner.cpp |
Commit
e57807769b5c21dd06ee293ed7ebaa13f8914ba2
by johannes[Attributor] Use AAValueConstantRange to infer dereferencability.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D76208
|
 | llvm/test/Transforms/Attributor/willreturn.ll |
 | llvm/include/llvm/IR/Value.h |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/lib/IR/Value.cpp |
 | llvm/test/Transforms/Attributor/dereferenceable-1.ll |
 | llvm/include/llvm/IR/Operator.h |
 | llvm/lib/IR/Operator.cpp |
Commit
0aa97ad5c8a6153de1479e50fcbe03a6a425e193
by silvasean[mlir] Change generate-test-checks.py to `%[[V:.*]]` style
Summary: This style seems to be the preferred style lately as it plays better with op syntaxes that include `[` and `]`.
Input: ``` module { func @f(%arg0 : i32) -> i32 { %0 = addi %arg0, %arg0 : i32 %1 = muli %arg0, %0 : i32 return %1 : i32 } } ```
New output:
``` // NOTE: Assertions have been autogenerated by utils/generate-test-checks.py // CHECK: module {
// CHECK-LABEL: func @f( // CHECK-SAME: %[[VAL_0:.*]] : i32) -> i32 { // CHECK: %[[VAL_1:.*]] = addi %[[VAL_0]], %[[VAL_0]] : i32 // CHECK: %[[VAL_2:.*]] = muli %[[VAL_0]], %[[VAL_1]] : i32 // CHECK: return %[[VAL_2]] : i32 // CHECK: } // CHECK: } ```
Old output: ``` // NOTE: Assertions have been autogenerated by utils/generate-test-checks.py // CHECK: module {
// CHECK-LABEL: func @f( // CHECK-SAME: [[VAL_0:%.*]] : i32) -> i32 { // CHECK: [[VAL_1:%.*]] = addi [[VAL_0]], [[VAL_0]] : i32 // CHECK: [[VAL_2:%.*]] = muli [[VAL_0]], [[VAL_1]] : i32 // CHECK: return [[VAL_2]] : i32 // CHECK: } // CHECK: } ```
Differential Revision: https://reviews.llvm.org/D79836
|
 | mlir/utils/generate-test-checks.py |
Commit
591b029f40f7f23b298d2f4718d7552f4f7f7fac
by Stanislav.Mekhanoshin[AMDGPU] Optimized indirect multi-VGPR addressing
SelectMOVRELOffset prevents peeling of a constant from an index if final base could be negative. isBaseWithConstantOffset() succeeds if a value is an "add" or "or" operator. In case of "or" it shall be an add-like "or" which never changes a sign of the sum given a non-negative offset. I.e. we can safely allow peeling if operator is an "or".
Differential Revision: https://reviews.llvm.org/D79898
|
 | llvm/test/CodeGen/AMDGPU/insert_vector_elt.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp |
 | llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll |
 | llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll |
 | llvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll |
Commit
1b7bf1bd75dcc4a362a83e4abc1200aaa75a38be
by Yaxun.Liu[HIP] Do not emit debug info for stub function
The stub function is generated by compiler and its instructions have nothing to do with the kernel source code.
Currently clang generates debug info for the stub function, which causes confusion for the HIP debugger. For example, when users set break point on a line of a kernel, the debugger should break on that line when the kernel is executed and reaches that line, but instead the debugger breaks in the stub function.
This patch disables debug info for stub function for HIP.
Differential Revision: https://reviews.llvm.org/D79866
|
 | clang/test/CodeGenCUDA/kernel-dbg-info.cu |
 | clang/lib/Sema/SemaDeclAttr.cpp |
Commit
a52f10b5a382c040e7ad1ce933cda6c07a4b3a8d
by efriedma[AArch64][SVE] Add patterns for VSELECT of immediate merged with a variable.
This covers forms involving "CPY (immediate, merging)".
Differential Revision: https://reviews.llvm.org/D79803
|
 | llvm/test/CodeGen/AArch64/sve-vselect-imm.ll |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
Commit
bfa200ebcf3706fde0dde335a3c1fa3fe1b3ba3f
by echristoRemove an unused variable.
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
824a8593328cb076e509f9a03e80ac681e52605e
by flo[AArch64] Don't promote constants with float ConstantExpr.
Currently the AsmPrinter cannot emit some floating point constant expressions in global initializers. Avoid generating them.
Reviewers: dmgreen, t.p.northover, arsenm, efriedma, Gerolf
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D79865
|
 | llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp |
 | llvm/test/CodeGen/AArch64/arm64-promote-const-complex-initializers.ll |
Commit
3254a001fc23e87c4ba3c544beb860cacddaee12
by ctetreau[SVE] Remove usages of VectorType::getNumElements() from AMDGPU
Reviewers: efriedma, arsenm, david-arm, fpetrogalli
Reviewed By: efriedma
Subscribers: dmgreen, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, tschuett, hiraditya, rkruppe, psnobl, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79807
|
 | llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
Commit
6025fc2243c6b7c00f07bdadcea6658e1b63518a
by gclaytonAdd .debug_ranges support to the DWARF YAML.
Summary: This allows DIEs with DW_AT_ranges to be encoded and decoded _and_ actually have their address ranges be included instead of having DW_AT_ranges with a section offset value for a section that doesn't exist.
Reviewers: labath, aprantl, JDevlieghere, dblaikie, probinson
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78782
|
 | llvm/lib/ObjectYAML/MachOEmitter.cpp |
 | llvm/include/llvm/ObjectYAML/DWARFEmitter.h |
 | llvm/lib/ObjectYAML/DWARFYAML.cpp |
 | llvm/tools/obj2yaml/dwarf2yaml.cpp |
 | llvm/include/llvm/ObjectYAML/DWARFYAML.h |
 | llvm/test/tools/obj2yaml/macho-DWARF-debug-ranges.yaml |
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
Commit
6045a804b94b423812b97c38c1d18136698de44d
by johannes[Attributor] Check lines accidentally not committed with D76208
|
 | llvm/test/Transforms/Attributor/dereferenceable-1.ll |
Commit
425333c23be91e24966c84f7763cfe0820702ea5
by johannes[Attributor] Improve the alignment of the loads
This patch introduces an improvement in the Alignment of the loads generated in createReplacementValues() by querying AAAlign attribute for the best Alignment for the base.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D76550
|
 | llvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll |
 | llvm/test/Transforms/Attributor/misc_crash.ll |
 | llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll |
 | llvm/test/Transforms/Attributor/internal-noalias.ll |
Commit
9ed9860d8774b364412ce50bf5d59a8eaee1adb7
by stephen.neuendorffer[cmake] Check for empty LLVM_PTHREAD_LIB
Windows builds broke because LLVM_THREAD_LIB is not set.
|
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
382d3a85e2a9269569e7fb8caa487d7ef57900c6
by joelkevinjones[AARch64] Add Marvell ThunderX3T110 support
This is the first checkin to support Marvell ThunderX3T110.
Initial definition of the micro-ops of the instructions in ThunderX3T110 is included.
Differential Revision: https://reviews.llvm.org/D78129
|
 | llvm/lib/Target/AArch64/AArch64SchedThunderX3T110.td |
 | llvm/lib/Target/AArch64/AArch64Subtarget.cpp |
 | llvm/test/CodeGen/AArch64/remat.ll |
 | llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td |
 | llvm/lib/Target/AArch64/AArch64SchedA57.td |
 | llvm/include/llvm/Support/AArch64TargetParser.def |
 | llvm/lib/Target/AArch64/AArch64.td |
 | llvm/lib/Target/AArch64/AArch64SchedThunderX.td |
 | llvm/lib/Target/AArch64/AArch64SchedExynosM4.td |
 | llvm/lib/Target/AArch64/AArch64SchedA53.td |
 | llvm/lib/Target/AArch64/AArch64SchedExynosM5.td |
 | llvm/lib/Target/AArch64/AArch64SchedExynosM3.td |
 | llvm/unittests/Support/TargetParserTest.cpp |
 | llvm/lib/Target/AArch64/AArch64SchedFalkor.td |
 | llvm/lib/Target/AArch64/AArch64SchedCyclone.td |
 | llvm/lib/Target/AArch64/AArch64Subtarget.h |
 | llvm/lib/Target/AArch64/AArch64SchedKryo.td |
 | llvm/test/CodeGen/AArch64/machine-combiner-madd.ll |
 | clang/test/Driver/aarch64-cpus.c |
 | llvm/test/CodeGen/AArch64/preferred-function-alignment.ll |
 | llvm/test/CodeGen/AArch64/aarch64-combine-fmul-fsub.mir |
 | llvm/test/CodeGen/AArch64/cpus.ll |
Commit
2a77d1d0ed1fd5756da4b0695ab1208f2fbea988
by ctetreau[SVE] Remove usages of VectorType::getNumElements() from Hexagon
Reviewers: efriedma, kmclaughlin, sdesmalen, kparzysz
Reviewed By: kparzysz
Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79819
|
 | llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp |
Commit
4f4b5b98a2a08461babd1e851a55acd37dd33c96
by stephen.neuendorffer[cmake] Need PUBLIC dependencies for object targets even if LLVM_PTHREAD_LIB is unset
Fix logic in previous patch.
|
 | llvm/cmake/modules/AddLLVM.cmake |
|
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
fa8c2ae76f7e4f498d29e2716233bd29025e8827
by craig.topper[X86] Return true from trySADReplacement in the partial reduction pass when a change is made.
Otherwise we don't signal to the pass manager that we changed IR.
|
 | llvm/lib/Target/X86/X86PartialReduction.cpp |
Commit
fd842d3626625d8075b0ecbd4d24de70d7ac2456
by huihuiz[CodeGen][NFC] Fix test/CodeGen/pr45476.cpp to specify target triple.
Summary: Use explicit target triple to match more accurately the output for libcall or native atomic.
Similar to D74847, without explicit target triple, this test will fail for ARM.
This patch update test pr45476.cpp to check for both native atomic and libcall.
Reviewers: efriedma, ekatz, rjmccall, rsmith, luismarques
Reviewed By: efriedma
Subscribers: kristof.beyls, jfb, cfe-commits, llvm-commits
Tags: #llvm, #clang
Differential Revision: https://reviews.llvm.org/D79914
|
 | clang/test/CodeGen/pr45476.cpp |
Commit
a255870f0397b0b2805c2211f2bccc92ab7701a1
by mcberg2017Propagate MIFlags in table gen
Summary: Add flag propagation to tablegen via OutMIs from originating MI in InstructionSelector::executeMatchTable.
Reviewers: dsanders, volkan
Reviewed By: dsanders
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74988
|
 | llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h |
 | llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt.mir |
Commit
79af7314fbde836854315ef7213076653076f20c
by douglas.yungFix PS4 build of compiler-rt runtime.
In a previous change I added a shim for fork(), but when compiled from InstrProfiling.c, the required header file was not included, so pid_t was undefined. This change adds that include.
|
 | compiler-rt/lib/profile/InstrProfilingUtil.h |
Commit
1c1fb350c59a9c79078959b2fa15e6d658934a56
by erik.pilkington[demangler] Support for 'this' expressions
llvm.org/PR45896
|
 | libcxxabi/test/test_demangle.pass.cpp |
 | libcxxabi/src/demangle/ItaniumDemangle.h |
 | llvm/include/llvm/Demangle/ItaniumDemangle.h |
Commit
50a81ea2bce3aec01ae6fae1505e57ec7aa36ac7
by AkiraDon't apply lvalue-to-rvalue conversion in DefaultLValueConversion to the expression that is passed to it if it has a function type or array type
lvalue-to-rvalue conversion should only be applied to non-function, non-array types, but clang was applying the conversion to discarded value expressions of array types.
rdar://problem/61203170
Differential Revision: https://reviews.llvm.org/D78134
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/CXX/expr/p10-0x.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/SemaStmt.cpp |
 | clang/test/SemaCXX/warn-unused-value-cxx11.cpp |
Commit
6e73f12a641bb8fd965d28937ea3a6d1dcecc8c0
by gclaytonFix buildbots errors after comitting D78782.
Rename "Ranges" variables to "DebugRanges" to avoid warnings/errors on machines that have extra settings enabled.
https://reviews.llvm.org/D78782
|
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
 | llvm/lib/ObjectYAML/DWARFYAML.cpp |
 | llvm/include/llvm/ObjectYAML/DWARFYAML.h |
 | llvm/tools/obj2yaml/dwarf2yaml.cpp |
Commit
20db891cef97df752ff8d2a249c155e5605ba06d
by sgueltonFix typo in error message
|
 | lldb/source/Commands/CommandObjectGUI.cpp |
Commit
d3530e95f1d4c97cf24e77c6db2d32ee5344d4ee
by stephen.neuendorffer[MLIR][cmake] don't glob for sources.
Generally speaking, this is bad practice. It also causes the build to break if there are editor temporary files.
Differential Revision: https://reviews.llvm.org/D79906
|
 | mlir/lib/IR/CMakeLists.txt |
 | mlir/lib/Pass/CMakeLists.txt |
 | mlir/lib/Dialect/SCF/CMakeLists.txt |
Commit
104e38cf761e3de3fb7838863001dbf007e5328b
by csiggOnly run pretty-printer tests for builds with debug-info.
Reviewers: dblaikie
Reviewed By: dblaikie
Subscribers: tbosch, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79897
|
 | debuginfo-tests/lit.cfg.py |
 | debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.gdb |
Commit
91063cf85a4038537731f582a27936187fb0759c
by konstantin.schwarz[GlobalISel][InlineAsm] Add support for basic input operand constraints
Reviewers: arsenm, dsanders, aemerson, volkan, t.p.northover, paquette
Reviewed By: arsenm
Subscribers: gargaroff, wdng, rovka, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78319
|
 | llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h |
 | llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll |
Commit
9ffaba86e5b33b9f7e919bc5da8a36390bb816ee
by herhut[mlir] Fix the example for std.rank
Summary: The assembly format for std.rank expects the operand type and not the result type after the colon.
Differential Revision: https://reviews.llvm.org/D79857
|
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
Commit
dbc9e1c39aed43e6faa6b29caeed7bc5b43569f1
by hokein.wu[clangd] Only emit default error/fatal diagnostices from included files.
Summary: This would avoid adding too much noise when there is a "-Wall" in the compile command.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79923
|
 | clang-tools-extra/clangd/Diagnostics.cpp |
 | clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp |
Commit
2974b3c566d68f1d7c907f891137cf0292dd35aa
by Xing[llvm-dwarfdump] Make commandline arguments consistent.
Currently, llvm-dwarfdump's help message has two issues.
1. Most long options are printed in `--long-option`, except for some section dumping options, e.g., `-apple-names`, `-debug-addr`.
2. Most options are printed with consistent indention, except for some section dumping options.
This patch helps resolve these two issues.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D79618
|
 | llvm/test/tools/llvm-dwarfdump/cmdline.test |
 | llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp |
Commit
f665e80c023ec52557f55d7eeaf34471e4c6fa0d
by pavel[lldb] Don't dissasemble large functions by default
Summary: If we have a binary without symbol information (and without LC_FUNCTION_STARTS, if on a mac), then we have to resort to using heuristics to determine the function boundaries. However, these don't always work, and so we can easily end up thinking we have functions which are several megabytes in size. Attempting to (accidentally) disassemble these can take a very long time spam the terminal with thousands of lines of disassembly.
This patch works around that problem by adding a sanity check to the disassemble command. If we are about to disassemble a function which is larger than a certain threshold, we will refuse to disassemble such a function unless the user explicitly specifies the number of instructions to disassemble, uses start/stop addresses for disassembly, or passes the (new) --force argument.
The threshold is currently fairly aggressive (4000 bytes ~~ 1000 instructions). If needed, we can increase it, or even make it configurable.
Differential Revision: https://reviews.llvm.org/D79789
|
 | lldb/test/Shell/Commands/command-disassemble-process.yaml |
 | lldb/source/Commands/CommandObjectDisassemble.h |
 | lldb/source/Commands/CommandObjectDisassemble.cpp |
 | lldb/test/Shell/Commands/command-disassemble.s |
 | lldb/test/Shell/Commands/Inputs/command-disassemble.lldbinit |
 | lldb/source/Commands/Options.td |
Commit
3a16829748a1ed208a37c719d3a3bcca50dcbd0f
by pavel[lldb] Switch Section-dumping code to raw_ostream
Also, add a basic test for dumping sections.
|
 | lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp |
 | lldb/include/lldb/Core/Section.h |
 | lldb/source/Core/Section.cpp |
 | lldb/source/Commands/CommandObjectTarget.cpp |
 | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp |
 | lldb/source/Target/SectionLoadList.cpp |
 | lldb/source/API/SBSection.cpp |
 | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp |
 | lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp |
 | lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp |
 | lldb/test/Shell/Commands/command-target-modules-dump-sections.yaml |
 | lldb/source/Core/Address.cpp |
Commit
7f0e6c31c25530352aa6e4cd9e2bdc4381368eba
by martin[LLD] [COFF] Add options for disabling auto import and runtime pseudo relocs
Allow disabling either the full auto import feature, or just forbidding the cases that require runtime fixups.
As long as all auto imported variables are referenced from separate .refptr$<name> sections, we can alias them on top of the IAT entries and don't actually need any runtime fixups via pseudo relocations. LLVM generates references to variables in .refptr stubs, if it isn't known that the variable for sure is defined in the same object module. Runtime pseudo relocs are needed if the addresses of auto imported variables are used in constant initializers though.
Fixing up runtime pseudo relocations requires the use of VirtualProtect (which is disallowed in WinStore/UWP apps) or VirtualProtectFromApp. To allow any risk of ambiguity, allow rejecting cases that would require this at the linker stage.
This adds support for the --disable-runtime-pseudo-reloc and --disable-auto-import options in the MinGW driver (matching GNU ld.bfd) with corresponding lld private options in the COFF driver.
Differential Revision: https://reviews.llvm.org/D78923
|
 | lld/test/COFF/autoimport-x86.s |
 | lld/MinGW/Options.td |
 | lld/test/MinGW/driver.test |
 | lld/COFF/Options.td |
 | lld/COFF/Driver.cpp |
 | lld/COFF/SymbolTable.cpp |
 | lld/test/COFF/autoimport-refptr.s |
 | lld/COFF/Config.h |
 | lld/MinGW/Driver.cpp |
 | lld/COFF/Writer.cpp |
Commit
deea174ee508c84652785e55f54c81fd1fba492c
by pavel[lldb/gdb-remote] Change default value of use-libraries-svr4 to true
This setting was added last year, defaulting to false. There have been no bug reports about the svr4 code path since then, and the using this packet is definitely faster than walking the module list from lldb.
Set the default value of the setting to true, as that is a better default. Users can still change it back if encountering problems, or we can revert the change as well, in case of bigger issues.
I also add a note to the setting description that it is only effective if lldb is built with xml support.
|
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td |
Commit
1858953395d2e2d13f6e2e5642b45849c3c388aa
by dave[libcxx testing] Remove ALLOW_RETRIES from two futures tests
These two tests do not use the "thread sleeps X milliseconds" pattern that other libcxx tests use, so all we can do in order to remove ALLOW_RETRIES workaround is remove the assumption that measuring the "quick" return of `wait()` is possible (it is not). Let the test harness verify overall that `wait()` does not hang.
As a bonus, have the spin-waiting threads `yield()`, which is what well behaved code should do.
|
 | libcxx/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp |
 | libcxx/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp |
Commit
b0969be4dfbbb81acb34c7d4c38ef158d2c27d00
by martin[LLD] [COFF] Try to fix test errors from 7f0e6c31c255303 on windows
Just skip trying to match for the path separator explicitly (instead of making it match either a forward or backwards slash), simplifying the test a little.
|
 | lld/test/COFF/autoimport-x86.s |
Commit
4d25f4453d60dee522e905c844dde0f4b6ed9475
by john.brawn[libc++] Adjust how we guard the inclusion of unistd.h
unistd.h isn't guaranteed to exist when the target isn't Windows, in particular if the target is bare-metal (i.e. no operating system). Handle this by using __has_include instead, though in filesystem/operations.cpp we already unconditionally include it so just remove the extra include.
Differential Revision: https://reviews.llvm.org/D79784
|
 | libcxx/src/thread.cpp |
 | libcxx/src/chrono.cpp |
 | libcxx/src/filesystem/operations.cpp |
Commit
2045189043d4e2748ed82915dd7bdf3e96728738
by hokein.wu[clangd] Setting recovery-ast flag in buildCompilerInvocation, NFC.
This saves some duplicated code (in buildPreamble and buildAST).
|
 | clang-tools-extra/clangd/ParsedAST.cpp |
 | clang-tools-extra/clangd/Compiler.cpp |
 | clang-tools-extra/clangd/Preamble.cpp |
Commit
638efe3929cd3f62590462434d6397c150ad78ed
by pavel[lldb] Use llvm::MC for register numbers in AArch64 ABIs
Summary: This is equivalent to previous patches (e.g. 07355c1c0) for the x86 ABIs.
One name fixup is needed -- lldb refers to the floating/vector registers by their vector name (vN). Llvm does not use this name, so we map it to qN, representing the register as a single 128 bit value (this choice is fairly arbitrary -- any other name would also work fine as they all have the same DWARF number).
Reviewers: JDevlieghere, jasonmolenda, omjavaid
Reviewed By: omjavaid
Subscribers: clayborg, danielkiss, aprantl, kristof.beyls, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D75607
|
 | lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp |
 | lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h |
 | lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h |
 | lldb/source/Plugins/ABI/AArch64/ABIAArch64.h |
 | lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp |
 | lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp |
Commit
dac6e9ca2190b7ece67ab7b62ea113d3ade5067a
by pavel[lldb] Fix a "missing return" warning in XcodeSDK
|
 | lldb/source/Utility/XcodeSDK.cpp |
Commit
735ab46cb4148c92d636c912832a32509252b579
by sam.mccall[clangd] Don't create as much garbage while building Dex index.
Summary: The Token objects are relatively expensive and we were spending a lot of CPU creating them for each trigram emitted. Instead, use a tiny trigram structure until we're ready to finalize the index.
This improves the new BuildDex benchmark by 20%. This code is hot and on the critical path in clangd: it runs after a new preamble is built.
Reviewers: kbobyrev
Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79918
|
 | clang-tools-extra/clangd/index/dex/Dex.cpp |
 | clang-tools-extra/clangd/index/dex/Trigram.cpp |
 | clang-tools-extra/clangd/unittests/DexTests.cpp |
 | clang-tools-extra/clangd/test/Inputs/requests.json |
 | clang-tools-extra/clangd/index/dex/Trigram.h |
 | clang-tools-extra/clangd/benchmarks/IndexBenchmark.cpp |
Commit
17ba631d1317f294460036cc430d0000d158ad3d
by sam.mccall[clangd] Remove extra qualification
|
 | clang-tools-extra/clangd/index/dex/Trigram.h |
Commit
4c8285c750bc957f2064e591720241d0047c69f5
by flo[VPlan] Move emission of \\l\"+\n to dumpBasicBlock (NFC).
The patch standardizes printing of VPRecipes a bit, by hoisting out the common emission of \\l\"+\n. It simplifies the code and is also a first step towards untangling printing from DOT format output, with the goal of making the DOT output optional and to provide a more concise debug output if DOT output is disabled.
Reviewers: gilr, Ayal, rengolin
Reviewed By: gilr
Differential Revision: https://reviews.llvm.org/D78883
|
 | llvm/lib/Transforms/Vectorize/VPlan.cpp |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
0e5706d018762f4ab4d895ba268bb6444ae04884
by hokein.wu[clangd] Correct the elog message, NFC.
|
 | clang-tools-extra/clangd/CodeComplete.cpp |
Commit
80715b71249e7a63f990ac676483278f34a7b7e9
by llvm-devSelectionDAG.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.
Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
c73a491d10b8f0258c02385fe14ad0626e8c8efd
by Louis Dionne[libcxx][span] Remove tuple interface
This implements P2116 by removing the tuple interface from std::span.
Differential Revision: https://reviews.llvm.org/D75640
|
 | libcxx/test/std/containers/views/span.tuple/get.pass.cpp |
 | libcxx/include/span |
 | libcxx/test/std/containers/views/span.tuple/tuple_element.fail.cpp |
 | libcxx/www/cxx2a_status.html |
 | libcxx/test/std/containers/views/span.tuple/tuple_size.pass.cpp |
 | libcxx/test/std/containers/views/span.tuple/get.fail.cpp |
 | libcxx/test/std/containers/views/span.tuple/tuple_element.pass.cpp |
 | libcxx/test/std/containers/views/span.tuple/tuple_size.fail.cpp |
Commit
cb1eeb42c03c31d4dadd00dbaec693e6d7516099
by 1.int32[Analyzer][VLASizeChecker] Check VLA size in typedef and sizeof.
Summary: The check of VLA size was done previously for variable declarations (of VLA type) only. Now it is done for typedef (and type-alias) and sizeof expressions with VLA too.
Reviewers: Szelethus, martong
Reviewed By: Szelethus, martong
Subscribers: rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79072
|
 | clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp |
 | clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp |
 | clang/test/Analysis/vla.c |
Commit
c5ff4031c6d1dd20e9b9a4929f537a1e50bcf76c
by Louis Dionne[libcxx][span] Remove const_iterator from std::span
This implements the resolution to LWG-3320.
Differential Revision: https://reviews.llvm.org/D75642
|
 | libcxx/test/std/containers/views/span.iterators/begin.pass.cpp |
 | libcxx/test/std/containers/views/span.iterators/rend.pass.cpp |
 | libcxx/test/std/containers/views/span.iterators/end.pass.cpp |
 | libcxx/include/span |
 | libcxx/test/std/containers/views/span.iterators/rbegin.pass.cpp |
 | libcxx/test/std/containers/views/types.pass.cpp |
 | libcxx/www/cxx2a_status.html |
Commit
26e742fd848b27ff925eab23e4d2a5675b418721
by spatel[x86][CGP] improve sinking of splatted vector shift amount operand
Expands on the enablement of the shouldSinkOperands() TLI hook in: D79718
The last codegen/IR test diff shows what I suspected could happen - we were sinking all splat shift operands into a loop. But that's not what we want in general; we only want to sink the *shift amount* operand if it is a splat.
Differential Revision: https://reviews.llvm.org/D79827
|
 | llvm/test/Transforms/CodeGenPrepare/X86/vec-shift.ll |
 | llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll |
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
c98872e3a3c0fc4390e0892866d7e844df929179
by vsavchenko[analyzer] Modernize analyzer's Python scripts
Summary: Fix read/write in binary format, which crashes Python 3. Additionally, clean up redundant (as for Python 3) code and fix a handful of flake8 warnings.
Differential Revision: https://reviews.llvm.org/D79932
|
 | clang/utils/analyzer/SATestUpdateDiffs.py |
 | clang/utils/analyzer/CmpRuns.py |
 | clang/utils/analyzer/exploded-graph-rewriter.py |
 | clang/utils/analyzer/SumTimerInfo.py |
 | clang/utils/analyzer/SATestAdd.py |
 | clang/utils/analyzer/SATestBuild.py |
 | clang/utils/analyzer/SATestUtils.py |
Commit
7b8e3065606cb555e7528e3b59d5e164ecf008fa
by melanie.blower[clang] Fix bug in #pragma float_control(push/pop)
Summary: #pragma float_control(pop) was failing to restore the expected floating point settings because the settings were not correctly preserved at #pragma float_control(push).
|
 | clang/test/CodeGen/fp-floatcontrol-pragma.cpp |
 | clang/lib/Sema/SemaAttr.cpp |
Commit
d061685a8304eb0b6adacd24f8dd2c2ef6dfee39
by gabor.marton[analyzer] Make NonNullParamChecker as dependency for StdCLibraryFunctionsChecker
Summary: If a given parameter in a FunctionDecl has a nonull attribute then the NonNull constraint in StdCLibraryFunctionsChecker has the same effect as NonNullParamChecker. I think it is better to emit diagnostics from the simpler checker. By making NonNullParamChecker as a dependency, in these cases it will be the first to emit a diagnostic and to stop the analysis on that path.
Reviewers: Szelethus, NoQ, baloghadamsoftware, balazske, steakhal
Subscribers: whisperity, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, ASDenysPetrov, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79420
|
 | clang/include/clang/StaticAnalyzer/Checkers/Checkers.td |
 | clang/test/Analysis/analyzer-enabled-checkers.c |
Commit
79941086fba3df115e5e7b54a5f826096c933102
by Louis Dionne[libc++][span] SFINAE span default constructor on Extent == 0
The default constructor of a static span requires _Extent == 0 so SFINAE it out rather than using a static_assert
Differential Revision: https://reviews.llvm.org/D71994
|
 | libcxx/include/span |
 | libcxx/test/std/containers/views/span.cons/default.fail.cpp |
 | libcxx/test/std/containers/views/span.cons/default.pass.cpp |
Commit
ff4492c89feb54e6ddfd6edaea59c98776963208
by gabor.marton[analyzer] StdLibraryFunctionsChecker: Add option to display loaded summaries
Reviewers: NoQ, Szelethus, baloghadamsoftware, balazske
Subscribers: whisperity, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D78118
|
 | clang/include/clang/StaticAnalyzer/Checkers/Checkers.td |
 | clang/test/Analysis/analyzer-config.c |
 | clang/test/Analysis/std-c-library-functions.c |
 | clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp |
Commit
5fc05c376a3cc0fb9a532e41d12e51f3d9916692
by gabor.martonFix Z3 function calls regarding arithmetic operations
Summary: The order of Z3_mk_fpa_mul, Z3_mk_fpa_div, Z3_mk_fpa_add and Z3_mk_fpa_sub functions' arguments is: context, rounding_mode, ast1, ast2. See for example: https://github.com/Z3Prover/z3/blob/a14c2a30516003cd1a60f8b7deca029033d11c78/src/api/api_fpa.cpp#L433
At function calls from LLVM the argument order was different: rounding_mode was passed as last argument.
Unfortunately these Z3_ast and other function parameter types are technically like void* which are reinterpret_cast-ed to a specific class type. So there was no type error, but the assertions fail in runtime if something goes wrong. Such a crash happened during Z3 refutation while using StaticAnalyzer.
Reviewers: Szelethus, xazax.hun, baloghadamsoftware, steakhal, martong, mikhail.ramalho
Reviewed By: martong
Subscribers: hiraditya, rnkovacs, mikhail.ramalho, martong, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79883
Patch by Tibor Brunner!
|
 | llvm/lib/Support/Z3Solver.cpp |
Commit
5f3f45dc5338266f4e73bdbea2ce20fdb7142ded
by kparzysz[Hexagon] Check isInstr() before getInstr() with SUnit
SUnit represent a MachineInstr in post-regalloc scheduling but SDNode in pre-regalloc scheduling. when pass -enable-hexagon-sdnode-sched to Hexagon backend with -O1 and above, this may cause an assertion failed.
Fixes PR45194.
Differential Revision: https://reviews.llvm.org/D76134
|
 | llvm/lib/Target/Hexagon/HexagonSubtarget.cpp |
Commit
7c3768495e8c1599dc30986f7bd47d5e91f303f2
by gabor.marton[analyzer] Improve PlacementNewChecker
Summary: 1. Added insufficient storage check for arrays 2. Added align support check
Based on https://reviews.llvm.org/D76229
Reviewers: aaron.ballman, lebedev.ri, NoQ, martong
Reviewed By: martong
Subscribers: xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, ASDenysPetrov, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D76996
Patch by Karasev Nikita!
|
 | clang/test/Analysis/placement-new.cpp |
 | clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp |
Commit
2b2a961309e65fb175fcf8d56507323fa6872425
by Matthew.Arsenaultlld: Let find_package(LLD) work
Install a cmake config file. Copied exactly from how clang exports.
I also wasn't sure whether the canonical capitalization is "lld" or "LLD". The project() is still calling this lld, but most places seemed to capitalize it.
|
 | lld/cmake/modules/AddLLD.cmake |
 | lld/CMakeLists.txt |
 | lld/cmake/modules/CMakeLists.txt |
 | lld/cmake/modules/LLDConfig.cmake.in |
Commit
eb50b643fe00171823e055f7801e6610ee7bdef7
by pavel[lldb/PDB] Make "native" pdb tests host-independent
These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl).
|
 | lldb/test/Shell/SymbolFile/NativePDB/global-classes.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/function-types-classes.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/tag-types.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/ast-functions.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/function-types-builtins.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/globals-fundamental.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/break-by-line.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/globals-bss.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/source-list.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/nested-types.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/ast-methods.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/bitfields.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/ast-types.cpp |
 | lldb/test/Shell/SymbolFile/NativePDB/break-by-function.cpp |
Commit
bb308b020522420413c7d3f2989a88f2fc423c56
by anna[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer
Summary: This is a more general fix to 59029b9eef23 (D75704). This patch does the following: 1. updates isKnownBaseValue to account for base pointer and derived pointer having differing types. 2. This inturn allows us to populate the lattice (States) for such derived pointers. 3. It also updates all states where the base and derived pointers have differing types (vector versus scalar) and conservatively marks these states as conflictcs. Note that in 59029b9eef23, we were just fixing existing lattice values and that too, only for uses of extractelement.
Reviewers: reames, skatkov, dantrushin
Reviewed By: skatkov
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D76305
|
 | llvm/test/Transforms/RewriteStatepointsForGC/scalar-base-vector.ll |
 | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp |
Commit
f20c62741e7b8c35f1d840488352f8e035af0abb
by annaRevert "[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer"
This reverts commit bb308b020522420413c7d3f2989a88f2fc423c56. Failing a testcase.
|
 | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp |
 | llvm/test/Transforms/RewriteStatepointsForGC/scalar-base-vector.ll |
Commit
5f1f4a5d0157c11e0a88d9a273f49c8f866b01ef
by erich.keaneProhibit capture of _ExtInt in inline assembly.
The backends don't seem to properly handle the _ExtInt type in inline assembly with crashes occurring in many. While the ones I tested seem to work for powers of 2 < 64 (and some any multiple of 64 greater than that), it seemed like a better idea to just use of this type in inline assembly prohibited.
|
 | clang/include/clang/Basic/DiagnosticCommonKinds.td |
 | clang/lib/Sema/SemaStmtAsm.cpp |
 | clang/test/SemaCXX/ext-int.cpp |
Commit
ce4ebc14a8963e58f08a6ab6c5ce4096469d570d
by sd.fertile[PowerPC] Remove support for SplitCSR.
SplitCSR was only suppored for functions with CXX_FAST_TLS calling convention. Clang only emits that calling convention for Darwin which is no longer supported by the PowerPC backend. Another IR producer could use the calling convention, but considering the calling convention is meant to be an optimization and the codegen for SplitCSR can be attrocious on Power (see the modifed lit test) it is best to remove it and codegen CXX_FAST_TLS same as the C calling convention.
Differential Revision: https://reviews.llvm.org/D79018
|
 | llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/test/CodeGen/PowerPC/cxx_tlscc64.ll |
 | llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h |
 | llvm/lib/Target/PowerPC/PPCFastISel.cpp |
 | llvm/lib/Target/PowerPC/PPCISelLowering.h |
 | llvm/lib/Target/PowerPC/PPCRegisterInfo.h |
 | llvm/lib/Target/PowerPC/PPCCallingConv.td |
Commit
ab9f11168f55add345f29592ec0946ac2e5ae697
by Louis Dionne[libcxx][span] Implement solution to LWG-3255
This implements the relaxed requirements on the std::array constructors of span, where the type only needs to be convertible to the element type of the span.
Note that the previous tests were not sufficient, as the const array<T, n> constructor was only tested for compile time and the array<T, N> only during runtime.
Restructure the tests so that we can test conversions as well as both constructors.
Differential Revision: https://reviews.llvm.org/D75706
|
 | libcxx/include/span |
 | libcxx/test/std/containers/views/span.cons/stdarray.pass.cpp |
 | libcxx/www/cxx2a_status.html |
Commit
631048e8117864c09672e33eb7b6fcc4efe5f749
by pavelMoving executable module symbols parsing to target creation method.
Summary: In our project we are using remote client-server LLDB configuration. We want to parse as much debugging symbols as we can before debugger starts attachment to the remote process. To do that we are passing the path of the local executable module to CreateTarget method at the client. But, it seems that this method are not parsing the executable module symbols. To fix this I added PreloadSymbols call for executable module to target creation method.
This patch also fixes a problem where the DynamicLoader would reset a module when launching the target. We fix it by making sure Platform::ResolveExecutable returns the module object obtained from the remote platform.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D78654
|
 | lldb/unittests/Target/CMakeLists.txt |
 | lldb/unittests/Target/RemoteAwarePlatformTest.cpp |
 | lldb/source/Target/RemoteAwarePlatform.cpp |
 | lldb/source/Target/TargetList.cpp |
Commit
c6c265527dd16bea1069b53760f56577c840036c
by ehudkatzRevert "[StructurizeCFG] Fix region nodes ordering"
This reverts commit 897d8ee5cd693e17f95a7e84194bca4c089a520b, due to causing an infinite loop when encountering a loop with a sub-region with an inner loop.
|
 | llvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll |
 | llvm/lib/Transforms/Scalar/StructurizeCFG.cpp |
Commit
29560a89ddcaf3af9b8a73d98d968a0911d21e27
by benny.kra[Support] Make UniqueStringSaver wrap a StringSet
This is slightly more efficient while providing exactly the same semantics.
|
 | llvm/include/llvm/Support/StringSaver.h |
 | llvm/lib/Support/StringSaver.cpp |
Commit
eb282be9f8e96053dc7dda687cd0608997810ccf
by anna[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer""
This is relanding of rGbb308b020522420413c7d3f2989a88f2fc423c56 after speculatively fixing buildbot lit test failure which was seen on two bots (I cannot reproduce the lit test failure locally either).
[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer
Summary: This is a more general fix to 59029b9eef23 (D75704). This patch does the following:
updates isKnownBaseValue to account for base pointer and derived pointer having differing types.
This inturn allows us to populate the lattice (States) for such derived pointers.
It also updates all states where the base and derived pointers have differing types (vector versus scalar) and conservatively marks these states as conflictcs. Note that in 59029b9eef23, we were just fixing existing lattice values and that too, only for uses of extractelement.
Reviewers: reames, skatkov, dantrushin
Reviewed By: skatkov
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D76305
|
 | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp |
 | llvm/test/Transforms/RewriteStatepointsForGC/scalar-base-vector.ll |
Commit
0c5db3e4aa197bab6e4d9f8c02ca0edf4fa9dce3
by erich.keaneFix test from 5f1f4a5
My test needs a requires target clause to support inline assembly. This patch splits out the asm tests into a separate test so we don't skip the rest of the conditions.
|
 | clang/test/SemaCXX/ext-int.cpp |
 | clang/test/SemaCXX/ext-int-asm.cpp |
Commit
17941437a2ed8abefef719345391da94e6df8ebb
by jay.foad[TargetLowering] Improve expansion of FSHL/FSHR
Use an extra shift-by-1 instead of a compare and select to handle the shift-by-zero case. This sometimes saves one instruction (if the compare couldn't be combined with a previous instruction). It also works better on targets that don't have good select instructions.
Note that currently this change doesn't affect most targets because expandFunnelShift is not used because funnel shift intrinsics are lowered early in SelectionDAGBuilder. But there is work afoot to change that; see D77152.
Differential Revision: https://reviews.llvm.org/D77301
|
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/test/CodeGen/X86/fshr.ll |
 | llvm/test/CodeGen/X86/fshl.ll |
Commit
bc2e572f51dac4aed8ef86b2f09427109f0cabb8
by momchil.velikovRe-commit: [ARM] CMSE code generation
This patch implements the final bits of CMSE code generation:
* emit special linker symbols
* restrict parameter passing to no use memory
* emit BXNS and BLXNS instructions for returns from non-secure entry functions, and non-secure function calls, respectively
* emit code to save/restore secure floating-point state around calls to non-secure functions
* emit code to save/restore non-secure floating-pointy state upon entry to non-secure entry function, and return to non-secure state
* emit code to clobber registers not used for arguments and returns
* when switching to no-secure state
Patch by Momchil Velikov, Bradley Smith, Javed Absar, David Green, possibly others.
Differential Revision: https://reviews.llvm.org/D76518
|
 | llvm/lib/Target/ARM/ARMFrameLowering.h |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/test/CodeGen/ARM/cmse-expand-bxns-ret.mir |
 | llvm/test/CodeGen/ARM/cmse-clear-float-hard.ll |
 | llvm/test/CodeGen/ARM/cmse-clear.ll |
 | llvm/lib/Target/ARM/ARMFrameLowering.cpp |
 | llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp |
 | llvm/lib/Target/ARM/ARMAsmPrinter.cpp |
 | llvm/lib/Target/ARM/ARMMachineFunctionInfo.h |
 | llvm/test/CodeGen/ARM/cmse-clear-float-bigend.mir |
 | llvm/test/CodeGen/ARM/cmse-clrm-it-block.ll |
 | llvm/test/CodeGen/ARM/cmse-clear-float-hard2.ll |
 | llvm/lib/Target/ARM/ARMInstrInfo.td |
 | llvm/lib/Target/ARM/ARMInstrThumb.td |
 | llvm/lib/Target/ARM/ARMRegisterInfo.td |
 | llvm/lib/Target/ARM/ARMFastISel.cpp |
 | llvm/test/CodeGen/ARM/cmse.ll |
 | llvm/lib/Target/ARM/Thumb1FrameLowering.cpp |
 | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp |
 | llvm/test/CodeGen/ARM/cmse-clear-float-mve.ll |
 | llvm/test/CodeGen/ARM/cmse-clear-float.ll |
 | llvm/lib/Target/ARM/ARMISelLowering.h |
Commit
235fb7dc24b1cf7034dfc76bb853ffb4ac5dec5d
by Matthew.ArsenaultAMDGPU/OpenCL: Accept -nostdlib in place of -nogpulib
-nogpulib makes sense when there is a host (where -nostdlib would apply) and offload target. Accept nostdlib when there is no offload target as an alias.
|
 | clang/test/Driver/rocm-detect.hip |
 | clang/test/Driver/rocm-not-found.cl |
 | clang/lib/Driver/ToolChains/AMDGPU.cpp |
Commit
54a335a2f60b0f7bb85d01780bb6bbf653b1f399
by rnk[COFF] Move type merging to TpiSource::mergeDebugT virtual method
This paves the way to doing more things in parallel, and allows us to order type sources in dependency order. PDBs and PCH objects have to be loaded before object files which use them.
This is a rebase of the unapplied remaining changes in https://reviews.llvm.org/D59226. I found it very challenging to rebase this across the LLD variable name style change. I recall there was a tool for that, but I didn't take the time to use it.
Reviewers: aganea, akhuang
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79672
|
 | lld/COFF/InputFiles.h |
 | lld/COFF/PDB.cpp |
 | lld/COFF/TypeMerger.h |
 | lld/COFF/Driver.h |
 | lld/COFF/InputFiles.cpp |
 | lld/COFF/Driver.cpp |
 | lld/COFF/DebugTypes.cpp |
 | lld/test/COFF/precomp-link.test |
 | lld/COFF/DebugTypes.h |
Commit
d2a26ad0dc2bd8e17f08cdef5af186de5657eaff
by peterhwasan: Collect ring buffer statistics and include in dev note.
These statistics are intended to help us tune the scudo MTE implementation.
Differential Revision: https://reviews.llvm.org/D79913
|
 | compiler-rt/lib/hwasan/hwasan_report.cpp |
Commit
10b49315faa6338eaf52bb782e7c53644ad17dab
by Alex Lorenz[test] NFC, add missing declarations and include to test files to avoid 'implicit-function-declaration' diagnostics in the tests
|
 | clang-tools-extra/test/clang-tidy/checkers/darwin-avoid-spinlock.m |
 | compiler-rt/test/profile/instrprof-value-prof.c |
 | compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-multiple.c |
 | compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-multiple.c.gcov |
Commit
acb6f1ae096e8262fb30a267e9f40dea62432b26
by llvm-devTargetLowering.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.
Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.
|
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
Commit
2b0b9b1148c205dfd73c70d195f51ef9895e2307
by craig.topper[X86] Fix a regression caused by moving combineLoopMAddPattern to IR
When I moved combineLoopMAddPattern to an IR pass. I didn't match the behavior of canReduceVMulWidth that was used in the SelectionDAG version. canReduceVMulWidth just calls computeSignBits and assumes a truncate is always profitable. The version I put in IR just looks for constants and zext/sext. Though I neglected to check the number of bits in input of the zext/sext.
This patch adds a check for the number of input bits to the sext/zext. And it adds a special case for add/sub with zext/sext inputs which can be handled by combineTruncatedArithmetic. Match the original SelectionDAG behavior appears to be a regression in some cases if the truncate isn't removed and becomes pack and permq. So enabling only this specific case is the conservative approach.
Differential Revision: https://reviews.llvm.org/D79909
|
 | llvm/lib/Target/X86/X86PartialReduction.cpp |
 | llvm/test/CodeGen/X86/madd.ll |
Commit
f5a79713b612376baae54cb47c8ec87b14f4b9b3
by rnk[LLD] Fix precomp-link.test
I had a stale directory at %t, so the test passed locally, but not remotely. Skip the %t directory altogether.
|
 | lld/test/COFF/precomp-link.test |
Commit
5ecb51414637402b0f89a96924ac7b015d23bcfa
by maskray[Driver] Pass -plugin-opt=O2 for -Os -Oz and -plugin-opt=O1 for -Og
Fixes PR42445 (compiler driver options -Os -Oz translate to -plugin-opt=Os (Oz) which are not recognized by LLVMgold.so or LLD).
The optimization level mapping matches CompilerInvocation.cpp:getOptimizationLevel() and SpeedLevel of PassBuilder::OptimizationLevel::O*.
-plugin-opt=O* affects the way we construct regular LTO/ThinLTO pass manager pipeline.
Reviewed By: pcc
Differential Revision: https://reviews.llvm.org/D79919
|
 | clang/lib/Driver/ToolChains/CommonArgs.cpp |
 | clang/test/Driver/lto.c |
Commit
e29cae1e5340dc4c1c16c6c16af297bb69c3cef6
by Jonas Devlieghere[lldb/Test] Skip TestExpressionInSyscall with reproducers
Skip this test because it relies on a timeout.
|
 | lldb/test/API/commands/expression/expr-in-syscall/TestExpressionInSyscall.py |
Commit
e7c91e3124b66cb1454a45dfd75c0a350852d6a6
by Jonas Devlieghere[lldb/Test] Skip remaining 'side_effect' tests with reproducers.
The side_effect Python package bypasses the reproducer instrumentation and therefore these tests are not expected to replay from a reproducer.
|
 | lldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py |
 | lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py |
Commit
426afd79da70ec8c7f82164d007fe7045e5fe05e
by joker.eph[mlir] Adopt changes in mlir-opt to standalone example
MLIRContext was moved with commit 6bce7d8
Differential Revision: https://reviews.llvm.org/D79946
|
 | mlir/examples/standalone/standalone-opt/standalone-opt.cpp |
Commit
42a556050346ffaa0fe3c0cc4dab24ad65a115a4
by jay.foad[AMDGPU] New SIInsertHardClauses pass
Enable clausing of memory loads on gfx10 by adding a new pass to insert the s_clause instructions that mark the start of each hard clause.
Differential Revision: https://reviews.llvm.org/D79792
|
 | llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.if.break.i32.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll |
 | llvm/test/CodeGen/AMDGPU/idot4s.ll |
 | llvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll |
 | llvm/test/CodeGen/AMDGPU/hard-clauses.mir |
 | llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.ll |
 | llvm/test/CodeGen/AMDGPU/idot8s.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.scale.ll |
 | llvm/test/CodeGen/AMDGPU/idot4u.ll |
 | llvm/test/CodeGen/AMDGPU/idot8u.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i32.ll |
 | llvm/lib/Target/AMDGPU/AMDGPU.h |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mov.dpp.ll |
 | llvm/test/CodeGen/AMDGPU/smrd.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h |
 | llvm/lib/Target/AMDGPU/CMakeLists.txt |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll |
 | llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll |
 | llvm/test/CodeGen/AMDGPU/idot2.ll |
Commit
2fdeee9c8282df6e1fc0af02a503b4d2c908e49e
by craig.topper[X86] Add support for forming vXi16 PMULH instructions from shifts.
We already form PMULH when the shift is truncated. But we can also do it from just a shift by extending the result.
Unfortunately, I get regressions if I try to replace the truncate combine with this as we turn the truncate into a more complicated sequence first. Then we are unable to combine that sequence with the extend produced at the end of this combine.
Differential Revision: https://reviews.llvm.org/D79682
|
 | llvm/test/CodeGen/X86/pmulh.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
7b73e5e08d74f2a2369160a1a0434f9c387cf716
by llvmgnsyncbot[gn build] Port 42a55605034
|
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn |
Commit
3774bcf9f84520a8c35bf765d9a528040d68a14b
by rnk[COFF] Fix var names cVStrTab->cvStrTab sXDataChunks->sxDataChunks
NFC
|
 | lld/COFF/InputFiles.cpp |
 | lld/COFF/InputFiles.h |
 | lld/COFF/PDB.cpp |
Commit
77346daaa54e81233dcf8ff7158a5cde4b2c35ee
by benny.kra[StringSet] Simplify code a bit. NFC.
|
 | llvm/include/llvm/ADT/StringSet.h |
Commit
8f2cc889b0517c4ad748de1a96f13489e89968a5
by zoecarver[libcxx] [NFC] Add more reinterpret_pointer_cast tests.
* Add test for inheritance. * Test value is preserved through cast.
|
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/reinterpret_pointer_cast.pass.cpp |
Commit
6a3469f58d0c230e86043f6975f048968334dfa4
by vsapsai[ObjC] Add compatibility mode for type checking of qualified id block parameters.
Commit 73152a2ec20766ac45673a129bf1f5fc97ca9bbe fixed type checking for blocks with qualified id parameters. But there are existing APIs in Apple SDKs relying on the old type checking behavior. Specifically, these are APIs using NSItemProviderCompletionHandler in Foundation/NSItemProvider.h. To keep existing code working and to allow developers to use affected APIs introduce a compatibility mode that enables the previous and the fixed type checking. This mode is enabled only on Darwin platforms.
Reviewed By: jyknight, ahatanak
Differential Revision: https://reviews.llvm.org/D79511
|
 | clang/include/clang/Basic/LangOptions.def |
 | clang/include/clang/Driver/CC1Options.td |
 | clang/lib/Driver/ToolChains/Darwin.cpp |
 | clang/lib/AST/ASTContext.cpp |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/test/SemaObjC/block-type-safety.m |
 | clang/test/Driver/darwin-objc-options.m |
Commit
44ecaabc0729fb75fcfec1d46a6bef6bc7c9e1e1
by efriedma[BitcodeReader] datalayout must be specified before it is queried.
This isn't really a new invariant; it effectively already existed due to existing DataLayout queries. But this makes it explicit.
This is technically not backward-compatible with the existing bitcode reader, but it's backward-compatible with the output of the bitcode writer, which is what matters in practice.
No testcase because I don't know a good way to write one: there are no existing tools that can generate a bitcode file that would trigger the error.
Split off from D78403.
Differential Revision: https://reviews.llvm.org/D79900
|
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
Commit
920ff806d4e9fd74f8c546a82e71d930e9b61003
by ctetreau[SVE] Remove usages of VectorType::getNumElements() from SystemZ
Reviewers: efriedma, david-arm, c-rhodes, jnspaulsson
Reviewed By: david-arm
Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79824
|
 | llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp |
Commit
2b920ae78c1d3fd36aeb7e77ca8de18a36b92344
by jezng[lld] Add archive file support to Mach-O backend
With this change, basic archive files can be linked together. Input section discovery has been refactored into a function since archive files lazily resolve their symbols / the object files containing those symbols.
Reviewed By: int3, smeenai
Differential Revision: https://reviews.llvm.org/D78342
|
 | lld/MachO/Symbols.cpp |
 | lld/MachO/SymbolTable.cpp |
 | lld/test/MachO/invalid/archive-no-index.s |
 | lld/test/MachO/symbol-order.s |
 | lld/MachO/Driver.cpp |
 | lld/MachO/InputFiles.h |
 | lld/test/MachO/archive.s |
 | lld/MachO/Symbols.h |
 | lld/MachO/SymbolTable.h |
 | lld/MachO/InputFiles.cpp |
 | lld/test/MachO/invalid/bad-archive.s |
Commit
4532a50899b1748a64320abce7a69ac10b801a34
by efriedmaInfer alignment of unmarked loads in IR/bitcode parsing.
For IR generated by a compiler, this is really simple: you just take the datalayout from the beginning of the file, and apply it to all the IR later in the file. For optimization testcases that don't care about the datalayout, this is also really simple: we just use the default datalayout.
The complexity here comes from the fact that some LLVM tools allow overriding the datalayout: some tools have an explicit flag for this, some tools will infer a datalayout based on the code generation target. Supporting this properly required plumbing through a bunch of new machinery: we want to allow overriding the datalayout after the datalayout is parsed from the file, but before we use any information from it. Therefore, IR/bitcode parsing now has a callback to allow tools to compute the datalayout at the appropriate time.
Not sure if I covered all the LLVM tools that want to use the callback. (clang? lli? Misc IR manipulation tools like llvm-link?). But this is at least enough for all the LLVM regression tests, and IR without a datalayout is not something frontends should generate.
This change had some sort of weird effects for certain CodeGen regression tests: if the datalayout is overridden with a datalayout with a different program or stack address space, we now parse IR based on the overridden datalayout, instead of the one written in the file (or the default one, if none is specified). This broke a few AVR tests, and one AMDGPU test.
Outside the CodeGen tests I mentioned, the test changes are all just fixing CHECK lines and moving around datalayout lines in weird places.
Differential Revision: https://reviews.llvm.org/D78403
|
 | llvm/lib/AsmParser/Parser.cpp |
 | llvm/test/Transforms/NewGVN/metadata-nonnull.ll |
 | polly/test/ForwardOpTree/forward_load_fromloop.ll |
 | llvm/lib/AsmParser/LLParser.cpp |
 | llvm/lib/IRReader/IRReader.cpp |
 | llvm/test/Bitcode/memInstructions.3.2.ll |
 | polly/test/ForwardOpTree/forward_load_memset_before.ll |
 | mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp |
 | llvm/test/CodeGen/AVR/call.ll |
 | llvm/test/Transforms/RewriteStatepointsForGC/deref-pointers.ll |
 | llvm/test/Transforms/EarlyCSE/invariant.start.ll |
 | llvm/tools/llc/llc.cpp |
 | polly/test/ScopInfo/granularity_scalar-indep_ordered-2.ll |
 | llvm/test/Transforms/GVN/PRE/volatile.ll |
 | llvm/test/Transforms/JumpThreading/combine-metadata.ll |
 | llvm/lib/AsmParser/LLParser.h |
 | llvm/test/Transforms/SROA/basictest.ll |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
 | llvm/test/Transforms/SeparateConstOffsetFromGEP/test-add-sub-separation.ll |
 | llvm/test/Transforms/IRCE/ranges_of_different_types.ll |
 | llvm/test/Transforms/JumpThreading/thread-loads.ll |
 | polly/test/ScopInfo/granularity_scalar-indep.ll |
 | polly/test/ForwardOpTree/forward_load_indirect.ll |
 | llvm/include/llvm/CodeGen/MIRParser/MIRParser.h |
 | llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll |
 | llvm/test/Transforms/EarlyCSE/guards.ll |
 | llvm/test/Verifier/unsized-types-store.ll |
 | llvm/test/Analysis/MustExecute/loop-header.ll |
 | llvm/test/Analysis/ValueTracking/deref-bitcast-of-gep.ll |
 | llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll |
 | llvm/test/Verifier/unsized-types-load.ll |
 | polly/test/ForwardOpTree/forward_into_region_redundant_use.ll |
 | llvm/test/Analysis/MemorySSA/invariant-groups.ll |
 | llvm/test/Transforms/IRCE/unsigned_comparisons_ugt.ll |
 | llvm/test/Transforms/NewGVN/noalias.ll |
 | llvm/test/Transforms/GVN/invariant.group.ll |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll |
 | llvm/test/Transforms/MergeFunc/ranges-multiple.ll |
 | polly/test/ScopInfo/granularity_scalar-indep_epilogue.ll |
 | llvm/test/Transforms/GVN/range.ll |
 | llvm/lib/CodeGen/MIRParser/MIRParser.cpp |
 | llvm/test/CodeGen/AArch64/falkor-hwpf.ll |
 | llvm/test/Transforms/DCE/basic-preservation.ll |
 | llvm/test/Analysis/TypeBasedAliasAnalysis/sink.ll |
 | llvm/test/Transforms/LICM/guards.ll |
 | llvm/test/CodeGen/AVR/rust-avr-bug-37.ll |
 | polly/test/ForwardOpTree/forward_hoisted.ll |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll |
 | llvm/test/Transforms/CorrelatedValuePropagation/non-null.ll |
 | llvm/test/CodeGen/AMDGPU/invalid-alloca.ll |
 | llvm/test/Feature/md_on_instruction.ll |
 | polly/test/ForwardOpTree/forward_load_double_write.ll |
 | polly/test/ScopInfo/granularity_scalar-indep_epilogue_last.ll |
 | llvm/test/Transforms/SCCP/conditions-ranges.ll |
 | llvm/tools/opt/opt.cpp |
 | polly/test/ForwardOpTree/forward_load_tripleuse.ll |
 | llvm/test/Analysis/MemoryDependenceAnalysis/InvariantLoad.ll |
 | llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll |
 | llvm/test/Transforms/NewGVN/pr33367.ll |
 | llvm/test/Transforms/NewGVN/range.ll |
 | llvm/test/Transforms/Reassociate/keep-debug-loc.ll |
 | polly/test/ScopInfo/granularity_scalar-indep_noepilogue.ll |
 | llvm/test/Verifier/unsized-types-alloca.ll |
 | llvm/test/Transforms/GVN/PRE/invariant-load.ll |
 | llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll |
 | llvm/test/Transforms/GVN/PRE/phi-translate.ll |
 | llvm/test/Transforms/IRCE/unsigned_comparisons_ult.ll |
 | llvm/test/Transforms/InterleavedAccess/ARM/interleaved-accesses.ll |
 | llvm/test/Transforms/NewGVN/pr33204.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/schedule_budget.ll |
 | llvm/test/Transforms/MergeFunc/ranges.ll |
 | llvm/test/Transforms/MemCpyOpt/load-store-to-memcpy.ll |
 | polly/test/ForwardOpTree/forward_load.ll |
 | llvm/include/llvm/IRReader/IRReader.h |
 | llvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll |
 | polly/test/ScopInfo/granularity_scalar-indep_ordered.ll |
 | llvm/test/Transforms/EarlyCSE/invariant-loads.ll |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll |
 | llvm/include/llvm/Bitcode/BitcodeReader.h |
 | llvm/test/Analysis/BasicAA/featuretest.ll |
 | llvm/test/Transforms/CorrelatedValuePropagation/range.ll |
 | llvm/test/Transforms/Util/assume-builder.ll |
 | polly/test/ForwardOpTree/forward_load_unrelatedunusual.ll |
 | llvm/test/CodeGen/AVR/rust-avr-bug-95.ll |
 | llvm/test/Transforms/LoopIdiom/X86/unordered-atomic-memcpy.ll |
 | llvm/test/Verifier/unsized-types.ll |
 | polly/test/ForwardOpTree/forward_load_differentarray.ll |
 | llvm/test/Transforms/GVN/PRE/load-metadata.ll |
 | llvm/test/LTO/X86/strip-debug-info.ll |
 | llvm/test/Transforms/IRCE/range_intersect_miscompile.ll |
 | llvm/test/Transforms/LICM/hoist-deref-load.ll |
 | llvm/test/Transforms/GVN/noalias.ll |
 | llvm/test/Transforms/CodeGenPrepare/X86/invariant.group.ll |
 | llvm/test/Transforms/LoopUnroll/unroll-header-exiting-with-phis.ll |
 | llvm/tools/llvm-as/llvm-as.cpp |
 | llvm/test/CodeGen/ARM/ParallelDSP/squaring.ll |
 | llvm/include/llvm/AsmParser/Parser.h |
 | llvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll |
 | llvm/test/Analysis/ScalarEvolution/no-wrap-add-exprs.ll |
 | polly/test/ForwardOpTree/forward_phi_load.ll |
 | llvm/test/Transforms/DeadStoreElimination/simple.ll |
 | llvm/test/Transforms/IRCE/pre_post_loops.ll |
Commit
2d6f4fec07292f1d2f77cbbf5188de3838a70b78
by Jonas Devlieghere[lldb/Test] Skip test using files to synchronize.
Files written by the inferior are not captured by the reproducers and the inferior doesn't actually run during replay.
|
 | lldb/test/API/commands/settings/TestSettings.py |
 | lldb/test/API/commands/settings/quoting/TestQuoting.py |
Commit
5144e48c1497e154961f22a7ac1de36c0d3e3f5d
by Jonas Devlieghere [lldb] Update stop info override callback comment.
In D31172 GetStopInfoOverrideCallback was moved and renamed.
Differential revision: https://reviews.llvm.org/D79953
|
 | lldb/source/Target/Thread.cpp |
Commit
2b7fe0863ac3c076797404f90b49cee696af0564
by aardappel[WebAssembly] Added Debug Fixup pass
This pass changes debug_value instructions referring to stackified registers into TI_OPERAND_STACK with correct stack depth.
|
 | llvm/lib/Target/WebAssembly/WebAssemblyDebugFixup.cpp |
 | llvm/test/CodeGen/WebAssembly/stackified-debug.ll |
 | llvm/lib/Target/WebAssembly/WebAssembly.h |
 | llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp |
 | llvm/lib/Target/WebAssembly/CMakeLists.txt |
 | llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp |
Commit
accc6b55450510577f9cfa0b434c97e45ab5d6c6
by efriedmaLoadInst should store Align, not MaybeAlign.
The fact that loads and stores can have the alignment missing is a constant source of confusion: code that usually works can break down in rare cases. So fix the LoadInst API so the alignment is never missing.
To reduce the number of changes required to make this work, IRBuilder and certain LoadInst constructors will grab the module's datalayout and compute the alignment automatically. This is the same alignment instcombine would eventually apply anyway; we're just doing it earlier. There's a minor risk that the way we're retrieving the datalayout could break out-of-tree code, but I don't think that's likely.
This is the last in a series of patches, so most of the necessary changes have already been merged.
Differential Revision: https://reviews.llvm.org/D77454
|
 | llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp |
 | llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp |
 | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp |
 | llvm/lib/IR/Core.cpp |
 | llvm/lib/IR/Instructions.cpp |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/include/llvm/IR/Instructions.h |
 | llvm/lib/Transforms/Scalar/GVNHoist.cpp |
 | llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp |
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
Commit
bc5565f9ea7aa7d3815a3554a0c937c7b48c7dcd
by diego.caballero[mlir][Affine] Introduce affine.vector_load and affine.vector_store
This patch adds `affine.vector_load` and `affine.vector_store` ops to the Affine dialect and lowers them to `vector.transfer_read` and `vector.transfer_write`, respectively, in the Vector dialect.
Reviewed By: bondhugula, nicolasvasilache
Differential Revision: https://reviews.llvm.org/D79658
|
 | mlir/include/mlir/Conversion/AffineToStandard/AffineToStandard.h |
 | mlir/test/Dialect/Affine/load-store.mlir |
 | mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp |
 | mlir/test/Dialect/Affine/invalid.mlir |
 | mlir/test/Conversion/AffineToStandard/lower-affine-to-vector.mlir |
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
 | mlir/include/mlir/Dialect/Affine/IR/AffineOps.td |
 | mlir/lib/Dialect/Vector/VectorOps.cpp |
 | mlir/lib/Dialect/Affine/IR/AffineOps.cpp |
Commit
3a11ca7bed03219ce166bd78304bdfdb439aff65
by benny.kra[MLIR] Add symbol map to mlir ExecutionEngine
Add additional symbol mapping to be able to provide custom symbols to jitted code at runtime.
Differential Revision: https://reviews.llvm.org/D79812
|
 | mlir/lib/ExecutionEngine/ExecutionEngine.cpp |
 | mlir/include/mlir/ExecutionEngine/ExecutionEngine.h |
Commit
67bb16049af1faa699a2614f10a64eccd0378944
by wmi[llvm-profdata] Update CommandGuide
Add a bunch of SampleFDO related flags added recently into llvm-profdata to its command guide.
Differential Revision: https://reviews.llvm.org/D79911
|
 | llvm/docs/CommandGuide/llvm-profdata.rst |
Commit
428d0b6f77986efd944df01bb4ae7888c6262c2f
by efriedmaFix clang test failures from D77454
|
 | clang/lib/CodeGen/CGCleanup.cpp |
Commit
11d612ac99a621c762c2cc8f7bacbb8ae32d7fe9
by Alex Lorenz[clang][Preprocessor] Replace the slow translateFile call by a new, faster isMainFile check
The commit 3c28a2dc6bdc331e5a0d8097a5fa59d06682b9d0 introduced the check that checks if we're trying to re-enter a main file when building a preamble. Unfortunately this slowed down the preamble compilation by 80-90% in some test cases, as translateFile is really slow. This change checks to see if the FileEntry is the main file without calling translateFile, but by using the new isMainFile check instead. This speeds up preamble building by 1.5-2x for certain test cases that we have.
rdar://59361291
Differential Revision: https://reviews.llvm.org/D79834
|
 | clang/lib/Basic/SourceManager.cpp |
 | clang/unittests/Basic/SourceManagerTest.cpp |
 | clang/lib/Lex/PPDirectives.cpp |
 | clang/include/clang/Basic/SourceManager.h |
Commit
1cbd1b8f692df7742efb9114510688045d901f96
by shafikRevert "[lldb] Don't dissasemble large functions by default"
This reverts commit f665e80c023ec52557f55d7eeaf34471e4c6fa0d.
Reverting because it breaks TestFoundationDisassembly.py
|
 | lldb/source/Commands/Options.td |
 | lldb/test/Shell/Commands/command-disassemble-process.yaml |
 | lldb/test/Shell/Commands/command-disassemble.s |
 | lldb/source/Commands/CommandObjectDisassemble.cpp |
 | lldb/test/Shell/Commands/Inputs/command-disassemble.lldbinit |
 | lldb/source/Commands/CommandObjectDisassemble.h |
Commit
b5d2bd74d75ddcb9ce702aca61e8aa54cc0104ec
by llvmgnsyncbot[gn build] Port 2b7fe0863ac
|
 | llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/BUILD.gn |
Commit
184b38345746a8f2b8ff5608fdd115991fa2c0fe
by Stanislav.MekhanoshinAdd v16f64 value type
We need to use it to handle <16 x double> indirect indexes in the AMDGPU BE.
The only visible change from adding it is in ARM cost model. To me it looks reasonable. With doubling a vector size it quadruples the cost up to the size 8 and then it did only double it. Now it also quadruples, which seems a logical progression to me.
Actual AMDGPU code is to follow, this is a common part, plus load/store legalization in the AMDGPU BE not to break what works now.
Differential Revision: https://reviews.llvm.org/D79952
|
 | llvm/include/llvm/IR/Intrinsics.td |
 | llvm/lib/CodeGen/ValueTypes.cpp |
 | llvm/include/llvm/CodeGen/ValueTypes.td |
 | llvm/test/Analysis/CostModel/ARM/cast.ll |
 | llvm/include/llvm/Support/MachineValueType.h |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
 | llvm/utils/TableGen/CodeGenTarget.cpp |
Commit
b085e51d818a39c7e2ea659ebbefd1943689c642
by cameron.mcinally[AArch64][SVE] Add some integer DestructiveBinaryComm* patterns
Add DestructiveBinaryComm* patterns for ADD, SUB, and SUBR.
Differential Revision: https://reviews.llvm.org/D76711
|
 | llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.ll |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
Commit
887dfeec53ad5e564e9990c433e5b53f2e651dbf
by konstantin.schwarz[GlobalISel][InlineAsm] Add early return for memory inputs that need to be indirectified
Summary: D78319 introduced basic support for inline asm input operands in GlobalISel. However, that patch did not handle the case where a memory input operand still needs to be indirectified. Later code asserts that the memory operand is already indirect.
This patch adds an early return false to trigger the SelectionDAG fallback for now.
Reviewers: arsenm, paquette
Reviewed By: arsenm
Subscribers: wdng, rovka, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79955
|
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll |
 | llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp |
Commit
9d4cf5bd421fb6467ff5f00e26a37527246dd4d6
by Stanislav.Mekhanoshin[AMDGPU] Make v16f64/v16i64 legal
This allows indirect VGPR addressing to work.
Differential Revision: https://reviews.llvm.org/D79960
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.td |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
 | llvm/lib/Target/AMDGPU/SIInstructions.td |
 | llvm/test/CodeGen/AMDGPU/spill-vgpr-to-agpr.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll |
 | llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll |
 | llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll |
Commit
0363ae97abb841114e841a963c95eb6a2202716d
by a.bataev[OPENMP50]Codegen for uses_allocators clause.
Summary: Predefined allocators should not be mapped at all (they are just enumeric constants). FOr user-defined allocators need to map the traits only as firstprivates, the allocator itself is private. At the beginning of the target region the user-defined allocatores must be created and then destroyed at the end of the target region: ``` omp_allocator_handle_t my_allocator = __kmpc_init_allocator(<gtid>, /*default memhandle*/ 0, <number_of_traits>, &<traits>); ... call void @__kmpc_destroy_allocator(<gtid>, my_allocator); ```
Reviewers: jdoerfert, aaron.ballman
Subscribers: jholewinski, yaxunl, guansong, cfe-commits, caomhin
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79257
|
 | clang/test/OpenMP/target_teams_distribute_parallel_for_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_teams_uses_allocators_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.h |
 | clang/lib/Sema/SemaOpenMP.cpp |
 | clang/test/OpenMP/target_simd_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_simd_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_simd_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_simd_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_parallel_for_uses_allocators_codegen.cpp |
 | clang/test/OpenMP/target_parallel_uses_allocators_codegen.cpp |
Commit
05eedf1f5b449ae42f5493576164b0f9a001646c
by Jan Korous[clang][VerifyDiagnosticConsumer] Support filename wildcards
Differential Revision: https://reviews.llvm.org/D72100
|
 | clang/test/Frontend/verify-any-file.c |
 | clang/lib/Frontend/VerifyDiagnosticConsumer.cpp |
 | clang/include/clang/Frontend/VerifyDiagnosticConsumer.h |
 | clang/test/Frontend/verify-any-file.h |
Commit
e9802aa4221ba3857041c2328639ce2aac0ace67
by leonardchanRevert "Run Coverage pass before other *San passes under new pass manager"
This reverts commit 7d5bb94d78386e4653535c35d3e8258bf4502340.
Reverting since this leads to a linker error we're seeing on Fuchsia. The underlying issue seems to be that inlining is run after sanitizers and causes different comdat groups instrumented by Sancov to reference non-key symbols defined in other comdat groups.
Will re-land this patch after a fix for that is landed.
|
 | clang/lib/CodeGen/BackendUtil.cpp |
Commit
7d16a22eb0c19ac8ea6115a7d04021b835307d0b
by Stanislav.Mekhanoshin[AMDGPU] Peephole adjacent equivalent S_SET_GPR_IDX_ON
Differential Revision: https://reviews.llvm.org/D79907
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll |
 | llvm/test/CodeGen/AMDGPU/set-gpr-idx-peephole.mir |
 | llvm/lib/Target/AMDGPU/SIPreEmitPeephole.cpp |
Commit
f26823c9dccf3bb02663f0d7e29291e8e33fe038
by Vedant Kumar[test/dsymutil] Suppress LeakSanitizer on ARM dsymutil tests
Just like on X86, we're getting reports of bogus leaks from CoreFoundation in:
[_CFXPreferences(SourceAdditions) withSourceForIdentifier:user:byHost:container:cloud:perform:]
rdar://63238710
|
 | llvm/test/tools/dsymutil/ARM/lit.local.cfg |
Commit
9fde516032d71c325f156cb4b878cf6b12280de8
by Jonas Devlieghere[lldb/Test] Replace assertTrue with more specific checks (NFC)
Use assertEqual(a, b) instead of assertTrue(a == b) etc.
|
 | lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py |
Commit
8a2e2a6a2bd0ed9310a8739c256456567e2adb23
by mtrofin[llvm] Fix refactoring bug introduced in D79042
Incorrectly copied over the GetAssumptionCache snippet.
This patch also renames a variable for clarity.
|
 | llvm/lib/Analysis/InlineAdvisor.cpp |
Commit
61f73f893c1d57e1719df46f65496148701dec2e
by Vedant Kumarllvm/test: Check in suppressions file left out of f26823c9d
|
 | llvm/test/tools/dsymutil/ARM/suppressions.txt |
Commit
e0c155427408814ceff22d16352331006eb81b6b
by thakisRevert "[GlobalISel][InlineAsm] Add early return for memory inputs that need to be indirectified"
This reverts commit 887dfeec53ad5e564e9990c433e5b53f2e651dbf. It broke irtranslator-inline-asm.ll on many bots, e.g. http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/38606/steps/test-check-all/logs/FAIL%3A%20LLVM%3A%3Airtranslator-inline-asm.ll
|
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll |
 | llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp |
Commit
592303a53e6bc0737c3999e91aab9ea2147f73ab
by leonardchan[Fuchsia] Do not enable the Z3 solver for a fuchsia toolchain
gLinux started shipping incompatible versions of Z3, which can lead to a missing `z3.h` header when building the Z3 solver locally. This patch disables the Z3 solver when building a clang toolchain for Fuchsia.
Differential Revision: https://reviews.llvm.org/D79974
|
 | clang/cmake/caches/Fuchsia-stage2.cmake |
Commit
da52aa2c3340d91025c0188175012c476967dc74
by ditaliano[LICM] When promoting loads to the preheader, drop the location.
It's really almost going to be misleading, see the example in https://bugs.llvm.org/show_bug.cgi?id=45820
Maybe at some point we can do something fancier, but at least this will fix a bug where we step on dead code while debugging.
|
 | llvm/test/Transforms/LICM/hoisting-preheader-debugloc.ll |
 | llvm/lib/Transforms/Scalar/LICM.cpp |
Commit
5df55bc7a46fd5319402ac856753bc5ba5e7fb8a
by jdenny.ornl[FileCheck] Fix isalpha/isalnum calls
D79276 caused the following builder to fail:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/23489
Specifically, FileCheck dumped stack in the following tests:
LLVM :: MC/Mips/micromips-jump-pc-region.s LLVM :: MC/Mips/mips-jump-pc-region.s
Those tests contained characters encoded as 160 but that render (at least for me in vim) like a single space (32). Those characters appeared between the `#` and `RUN:` on several lines, and D79276 caused FileCheck to process those lines differently: `RUN:` is a comment directive. As a result, D79276 caused FileCheck to start calling is `isalnum` on those characters.
The problem is that FileCheck calls `isalnum` on type `char` without casting to `unsigned char` first, so it sign-extends 160 beyond what `unsigned char` or `EOF` can represent. C says that has undefined behavior. This problem is general to FileCheck's prefix parsing and so exists independently of D79276.
524457edbc3d fixed the above tests. This patch changes FileCheck to use LLVM's replacements for `ctype.h` functions, and it adds tests for cases that are representative with or without D79276.
Reviewed By: jhenderson, thopre, efriedma
Differential Revision: https://reviews.llvm.org/D79810
|
 | llvm/lib/Support/FileCheck.cpp |
 | llvm/test/FileCheck/bad-char.txt |
Commit
bf02bcffcfd7dc965e930c6a3035895823d2d78b
by Jonas Devlieghere[lldb/Test] Modify more tests for API replay
Skip tests or parts thereof that aren't expected to work when run from a reproducer. Also improve the doc comments in configuration.py to prevent mistakes in the future.
|
 | lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py |
 | lldb/test/API/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py |
 | lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py |
 | lldb/packages/Python/lldbsuite/test/configuration.py |
 | lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py |
Commit
85725a67c745cb833174a7eae2aa53e74753bcb1
by clementval[Flang][OpenMP] Avoid abort when collapse clause value is negative
Summary: If the value in the collapse close is negative f18 abort without the correct error message. This PR change the size_t in name resolution to a int64_t and check appropriately for negative or zero before the privatization of induction variable. The correct error is then catch by the OpenMP structure check.
This diff is migrated from the GitHub pull request https://github.com/flang-compiler/f18/pull/1098
Reviewers: ichoyjx, jdoerfert, sscalpone, DavidTruby
Reviewed By: ichoyjx, sscalpone, DavidTruby
Subscribers: sscalpone, klausler, yaxunl, guansong, llvm-commits
Tags: #llvm, #flang
Differential Revision: https://reviews.llvm.org/D77821
|
 | flang/test/Semantics/omp-clause-validity01.f90 |
 | flang/lib/Semantics/resolve-names.cpp |
Commit
dad2e92eaf531500af5ab9ee3350e3e186944185
by echristoTemporarily Revert "[Support] Make UniqueStringSaver wrap a StringSet" as it's causing asan failures in clangd. Followed up offline with repro instructions.
This reverts commit 29560a89ddcaf3af9b8a73d98d968a0911d21e27.
|
 | llvm/include/llvm/Support/StringSaver.h |
 | llvm/lib/Support/StringSaver.cpp |
Commit
aedb6615a8d08d7dfeba17bf22ff4c6fd104cadc
by shkzhang[MachineVerifier] Use the for_range loop to instead llvm::any_of
Summary: In the patch D78849, it uses llvm::any_of to instead of for loop to simplify the function addRequired(). It's obvious that above code is not a NFC conversion. Because any_of will return if any addRequired(Reg) is true immediately, but we want every element to call addRequired(Reg).
This patch uses for_range loop to fix above any_of bug.
Reviewed By: MaskRay, nickdesaulniers
Differential Revision: https://reviews.llvm.org/D79872
|
 | llvm/lib/CodeGen/MachineVerifier.cpp |
Commit
940d949435e88dcbf154fbd310d148295781ea04
by hubert.reinterpretcastSpeculative fix for build breakage from D78403
D78403 appears responsible for breaking bots: http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/12261/steps/build%20stage%201/logs/stdio
|
 | llvm/tools/llc/CMakeLists.txt |
 | llvm/tools/opt/CMakeLists.txt |
Commit
f1b972041adf565c08d1abca41068d2adcf62702
by ntv[mlir][Linalg] Start a LinalgToStandard pass and move conversion to library calls.
This revision starts decoupling the include the kitchen sink behavior of Linalg to LLVM lowering by inserting a -convert-linalg-to-std pass.
The lowering of linalg ops to function calls was previously lowering to memref descriptors by having both linalg -> std and std -> LLVM patterns in the same rewrite.
When separating this step, a new issue occurred: the layout is automatically type-erased by this process. This revision therefore introduces memref casts to perform these type erasures explicitly. To connect everything end-to-end, the LLVM lowering of MemRefCastOp is relaxed because it is artificially more restricted than the op semantics. The op semantics already guarantee that source and target MemRefTypes are cast-compatible. An invalid lowering test now becomes valid and is removed.
Differential Revision: https://reviews.llvm.org/D79468
|
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/include/mlir/IR/StandardTypes.h |
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/test/Dialect/Linalg/standard.mlir |
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
 | mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/lib/Conversion/LinalgToStandard/CMakeLists.txt |
 | mlir/test/mlir-cpu-runner/linalg_integration_test.mlir |
 | mlir/include/mlir/InitAllPasses.h |
 | mlir/test/Dialect/Linalg/llvm.mlir |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/include/mlir/Conversion/LinalgToStandard/LinalgToStandard.h |
 | mlir/lib/IR/StandardTypes.cpp |
 | mlir/test/Conversion/StandardToLLVM/invalid.mlir |
Commit
0b3e478b10e233460073d24df527253ab5edac2a
by ravishankarm[mlir][GPUToSPIRV] Use default ABI only when none of the arguments have abi attributes.
To ensure there is no conflict, use the default ABI only when none of the arguments have the spv.interface_var_abi attribute. This also implies that if one of the arguments has a spv.interface_var_abi attribute, all of them should have it as well.
Differential Revision: https://reviews.llvm.org/D77232
|
 | mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp |
 | mlir/test/Conversion/GPUToSPIRV/simple.mlir |
Commit
767db5be67cab5aa04d81227725765cad9620611
by mtrofin[llvm][NFC] Cleanup uses of std::function in Inlining-related APIs
Summary: Replacing uses of std::function pointers or refs, or Optional, to function_ref, since the usage pattern allows that. If the function is optional, using a default parameter value (nullptr). This led to a few parameter reshufles, to push all optionals to the end of the parameter list.
Reviewers: davidxl, dblaikie
Subscribers: arsenm, jvesely, nhaehnle, eraman, hiraditya, haicheng, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79917
|
 | llvm/lib/Transforms/IPO/AlwaysInliner.cpp |
 | llvm/include/llvm/Analysis/InlineCost.h |
 | llvm/lib/Transforms/IPO/PartialInlining.cpp |
 | llvm/lib/Transforms/Utils/InlineFunction.cpp |
 | llvm/lib/Transforms/IPO/InlineSimple.cpp |
 | llvm/include/llvm/Transforms/Utils/Cloning.h |
 | llvm/lib/Analysis/InlineAdvisor.cpp |
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | llvm/lib/Analysis/InlineCost.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUInline.cpp |
Commit
454de99a6fec705e76ed7743bf538f7a77296f59
by mtrofinRevert "[llvm][NFC] Cleanup uses of std::function in Inlining-related APIs"
This reverts commit 767db5be67cab5aa04d81227725765cad9620611.
|
 | llvm/include/llvm/Transforms/Utils/Cloning.h |
 | llvm/lib/Analysis/InlineCost.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUInline.cpp |
 | llvm/lib/Analysis/InlineAdvisor.cpp |
 | llvm/lib/Transforms/IPO/InlineSimple.cpp |
 | llvm/lib/Transforms/IPO/AlwaysInliner.cpp |
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | llvm/lib/Transforms/Utils/InlineFunction.cpp |
 | llvm/lib/Transforms/IPO/PartialInlining.cpp |
 | llvm/include/llvm/Analysis/InlineCost.h |
Commit
ab699d78a26f147b56537326ecadc072f8f5a03b
by SourabhSingh.Tomar[DebugInfo] llvm rejects DWARF operator DW_OP_push_object_address
llvm rejects DWARF operator DW_OP_push_object_address.This DWARF operator is needed for Flang to support allocatable array.
Summary: Currently llvm rejects DWARF operator DW_OP_push_object_address. below error is produced when llvm finds this operator.
[..] invalid expression !DIExpression(151) warning: ignoring invalid debug info in pushobj.ll [..]
There are some parts missing in support of this operator, need to be completed.
Testing -added a unit testcase -check-debuginfo -check-llvm
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D79306
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp |
 | llvm/test/DebugInfo/dwarfdump-pushobjectaddress.ll |
 | llvm/lib/IR/DebugInfoMetadata.cpp |
 | llvm/docs/LangRef.rst |
Commit
a2545c3499a03cc1fdbd5f638f88572b23adf570
by SourabhSingh.Tomar[NFCI] Removed '%' from llc in test case in ab699d78a26f147b
|
 | llvm/test/DebugInfo/dwarfdump-pushobjectaddress.ll |
Commit
4042ada1c1fe4a9cd546600602281686bb2270cd
by SourabhSingh.Tomar[DebugInfo] support for DW_AT_data_location in llvm
This patch adds support for DWARF attribute DW_AT_data_location.
Summary: Dynamic arrays in fortran are described by array descriptor and data allocation address. Former is mapped to DW_AT_location and later is mapped to DW_AT_data_location.
Testing: unit test cases added (hand-written) check llvm check debug-info
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D79592
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp |
 | llvm/test/DebugInfo/dwarfdump-dataLocationExp.ll |
 | llvm/docs/LangRef.rst |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/unittests/IR/MetadataTest.cpp |
 | llvm/lib/AsmParser/LLParser.cpp |
 | llvm/include/llvm/IR/DebugInfoMetadata.h |
 | llvm/lib/IR/AsmWriter.cpp |
 | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | llvm/test/Verifier/array_dataLocation.ll |
 | llvm/lib/IR/LLVMContextImpl.h |
 | llvm/lib/Bitcode/Reader/MetadataLoader.cpp |
 | llvm/lib/IR/DebugInfoMetadata.cpp |
 | llvm/test/Bitcode/dataLocation.ll |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp |
 | llvm/unittests/IR/DebugTypeODRUniquingTest.cpp |
 | llvm/test/DebugInfo/dwarfdump-dataLocationVar.ll |
Commit
8ce4a8f6dfbe5ed34ebdc5baf904e5102514d81c
by david.sherwood[CodeGen] Refactor CreateStackTemporary
I've created a new variant of CreateStackTemporary that takes TypeSize and Align arguments, and made the older instances of CreateStackTemporary call this new function. This refactoring is in preparation for more patches in this area related to scalable vectors and improving the alignment calculations.
Differential Revision: https://reviews.llvm.org/D79933
|
 | llvm/include/llvm/CodeGen/SelectionDAG.h |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
f83d66c249bffe576460c7d233d295818775a651
by SourabhSingh.TomarFixed bot failure after 4042ada1c1fe4a9cd5
Added '-' in `mtriple` in test case There was a bot failure due to this: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/6790
|
 | llvm/test/DebugInfo/dwarfdump-dataLocationExp.ll |
Commit
0e4827aa4e4ae25813f66d3b872db67d93813009
by yvan.roux[ARM][MachineOutliner] Add Machine Outliner support for ARM.
Enables Machine Outlining for ARM and Thumb2 modes. This is the first patch of the series which adds all the basic logic for the support, and only handles tail-calls and thunks.
The outliner can be turned on by using clang -moutline option or -mllvm -enable-machine-outliner one (like AArch64).
Differential Revision: https://reviews.llvm.org/D76066
|
 | llvm/test/CodeGen/ARM/machine-outliner-unoutlinable.mir |
 | llvm/test/CodeGen/ARM/machine-outliner-unsafe-registers.mir |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMTargetMachine.cpp |
 | llvm/test/CodeGen/ARM/machine-outliner-thunk.ll |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.h |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | llvm/test/CodeGen/ARM/machine-outliner-tail.ll |
Commit
7c89297cf7eecd52327915de587df8183793afac
by Raphael IsemannCorrect the argument list of command `breakpoint read`
Summary: Command `breakpoint read` should not accept breakpoint ids as arguments, and in fact, it is not implemented to deal with breakpoint id arguments either. So this patch is to correct the argument list of this command so that the help text won't misguide users.
Reviewers: teemperor, JDevlieghere, jingham
Reviewed By: teemperor, JDevlieghere
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D79722
|
 | lldb/source/Commands/CommandObjectBreakpoint.cpp |
Commit
d6b937056d49450a3ea8a304be2fd677ccf71ac1
by SourabhSingh.TomarFixed bot failure after ab699d78a26f147b
Added `target triple` to the test case, it was failing on aarch64 bot: http://lab.llvm.org:8011/builders/flang-aarch64-ubuntu/builds/97
|
 | llvm/test/DebugInfo/dwarfdump-pushobjectaddress.ll |
Commit
67d0e2160c4dcad4182ca05df16264d779e0be59
by djordje.todorovic[NFC][test] Add missing ':' after 'CHECK'
Without the ':' the check command doesn't do anything. This typo was introduced along with the commit for the D77789.
|
 | llvm/test/tools/llvm-dwarfdump/X86/statistics.ll |
Commit
80173566f4855cb98d4d73003d6829111bf96260
by qiucofan[PowerPC] Add an intrinsic for Popcntb
Summary: This patch adds the intrinsic llvm.ppc.popcntb for the HW instruction POPCNTB
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D79703
|
 | llvm/lib/Target/PowerPC/PPCInstr64Bit.td |
 | llvm/include/llvm/IR/IntrinsicsPowerPC.td |
 | llvm/test/CodeGen/PowerPC/popcnt.ll |
Commit
85bb9b71b7d42c4e6fff95b715b2eefbd8e4355e
by russell.gallop[ELF] Update release notes and man page for LLD time-trace
Differential Revision: https://reviews.llvm.org/D79780
|
 | lld/docs/ReleaseNotes.rst |
 | lld/docs/ld.lld.1 |
Commit
525b8e6dcbbd6e40fd9d91e4ed349a93381c1ccc
by david.sherwood[SVE] Fix wrong usage of getNumElements() in matchIntrinsicType
I have changed the ScalableVecArgument case in matchIntrinsicType to create a new FixedVectorType. This means that the next case we hit (Vector) will not assert when calling getNumElements(), since we know that it's always a FixedVectorType. This is a temporary measure for now, and it will be fixed properly in another patch that refactors this code.
The changes are covered by this existing test:
CodeGen/AArch64/sve-intrinsics-fp-converts.ll
In addition, I have added a new test to ensure that we correctly reject SVE intrinsics when called with fixed length vector types.
Differential Revision: https://reviews.llvm.org/D79416
|
 | llvm/lib/IR/Function.cpp |
 | llvm/test/CodeGen/AArch64/sve-bad-intrinsics.ll |
Commit
f58e78f9920531f85d98e8041f6967eeb1bd0d3a
by mschellenbergercosta[libcxx][span] trivial whitespace fix to test commit rights
Reviewers: #libc!, miscco
Reviewed By: miscco
Subscribers: broadwaylamb, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D79986
|
 | libcxx/test/std/containers/views/span.cons/container.fail.cpp |
Commit
854f5f332af4640d9425e9a94442629e4f5a3f98
by Akira[Sema] Teach -Wcast-align to compute an accurate alignment using the alignment information on VarDecls in more cases
This commit improves upon https://reviews.llvm.org/D21099. The code that computes the source alignment now understands array subscript expressions, binary operators, derived-to-base casts, and several more expressions.
rdar://problem/59242343
Differential Revision: https://reviews.llvm.org/D78767
|
 | clang/test/SemaCXX/warn-cast-align.cpp |
 | clang/lib/Sema/SemaChecking.cpp |
Commit
d48ef7cab55878fbb598e7a968b6073f9c7aa9ed
by Raphael Isemann[lldb] Print full Clang diagnostics when the ClangModulesDeclVendor fails to compile a module
Summary: When the ClangModulesDeclVendor currently fails it just prints very basic and often incomplete diagnostics without any source locations: ``` (lldb) p @import Foundation error: while importing modules: 'foo/bar.h' file not found could not build module 'Darwin' [...] ``` or even just ``` (lldb) p @import Foundation error: while importing modules: could not build module 'Darwin' [...] ```
These diagnostics help neither the user nor us with figuring out what is the reason for the failure.
This patch wires up a full TextDiagnosticPrinter in the ClangModulesDeclVendor and makes sure we always return the error stream to the user when we fail to compile our modules.
Fixes rdar://63216849
Reviewers: aprantl, jdoerfert
Reviewed By: aprantl
Subscribers: JDevlieghere
Differential Revision: https://reviews.llvm.org/D79947
|
 | lldb/test/API/lang/objc/modules-compile-error/module.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp |
 | lldb/test/API/lang/objc/modules-compile-error/main.m |
 | lldb/test/API/lang/objc/modules-compile-error/Makefile |
 | lldb/test/API/lang/objc/modules-compile-error/module.modulemap |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp |
 | lldb/test/API/lang/objc/modules-compile-error/TestModulesCompileError.py |
Commit
170ac4be3392201d5f5e124e8a1b7d78de3f82c8
by djordje.todorovic[CSInfo][ISEL] Call site info generation support for Mips
Debug entry values functionality provides debug information about call sites and function parameters values at the call entry spot. Condition for generating this type of information is compiling with -g option and optimization level higher than zero(-O0).
In ISEL phase, while lowering call instructions, collect info about registers that forward arguments into following function frame. We store such info into MachineFunction of the caller function. This is used very late, when dumping DWARF info about call site parameters.
The call site info is visible at MIR level, as callSites attribute of MachineFunction. Also, when using unmodified parameter value inside callee it could be described as DW_OP_entry_value expression. To deal with callSites attribute, we should pass -emit-call-site-info option to llc.
This patch enables functionality in clang frontend and adds call site info generation support for MIPS targets (mips, mipsel, mips64, mips64el).
Patch by Nikola Tesic
Differential Revision: https://reviews.llvm.org/D78105
|
 | llvm/test/CodeGen/Mips/call-site-info-output.ll |
 | llvm/test/DebugInfo/Mips/dw_op_entry_value_64bit.ll |
 | llvm/test/DebugInfo/Mips/dw_op_entry_value_32bit.ll |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | llvm/test/CodeGen/Mips/dbg-call-site-info-reg-d-split.ll |
 | llvm/lib/Target/Mips/MipsTargetMachine.cpp |
 | llvm/lib/Target/Mips/MipsISelLowering.cpp |
Commit
7fc5f28068d3c9563cbf5b4e5b92b5cfc8958698
by zinenko[mlir] LinalgToStandard: add build dependency on MLIRPass
This is supposed to resolve the build problem with shared libraries.
|
 | mlir/lib/Conversion/LinalgToStandard/CMakeLists.txt |
Commit
7ccae2cece72153d2c8210ef916bf0052da216ad
by grimar[yaml2obj] - Introduce the "Offset" property for sections.
Currently there is no good way to set a physical offset for a section:
* We have the `ShOffset` that allows to override the `sh_offset`, but it does not affect the real data written. * We can use a `Filler` to create an artificial gap, but it is more like a hack rather than a proper solution for this problem.
This patch adds the `Offset` property which allows setting physical offsets for sections.
It also generalizes the code, so that we set sh_offset field in one place
Differential revision: https://reviews.llvm.org/D78927
|
 | llvm/test/tools/yaml2obj/ELF/section-offset.yaml |
 | llvm/include/llvm/ObjectYAML/ELFYAML.h |
 | llvm/test/tools/yaml2obj/ELF/custom-null-section.yaml |
 | llvm/lib/ObjectYAML/ELFEmitter.cpp |
 | llvm/lib/ObjectYAML/ELFYAML.cpp |
Commit
56970ec6a0bed5ba4312872eed13137ca43f67fb
by grimar[llvm-readobj] - --gnu-hash-table: do not crash when the GNU hash table goes past the EOF.
We might have a scenario where a the `GbuHashTable` variable correctly points to a place inside the file (we validate this fact early in `parseDynamicTable`), but nbuckets/maskwords fields are broken in the way the code tries to read the data past the EOF. This patch fixes the issue.
Differential revision: https://reviews.llvm.org/D79853
|
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/ELF/gnuhash.test |
 | llvm/tools/llvm-readobj/ObjDumper.h |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
Commit
4ead2cf76c4a1df260e7dff0fa767074bae6e2b8
by zinenko[mlir] Rename conversions involving ex-Loop dialect to mention SCF
The following Conversions are affected: LoopToStandard -> SCFToStandard, LoopsToGPU -> SCFToGPU, VectorToLoops -> VectorToSCF. Full file paths are affected. Additionally, drop the 'Convert' prefix from filenames living under lib/Conversion where applicable.
API names and CLI options for pass testing are also renamed when applicable. In particular, LoopsToGPU contains several passes that apply to different kinds of loops (`for` or `parallel`), for which the original names are preserved.
Differential Revision: https://reviews.llvm.org/D79940
|
 | mlir/lib/Conversion/LoopToStandard/LoopToStandard.cpp |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/test/Conversion/VectorToLoops/vector-to-loops.mlir |
 | mlir/include/mlir/Conversion/SCFToGPU/SCFToGPU.h |
 | mlir/test/Conversion/LoopsToGPU/step_positive.mlir |
 | mlir/include/mlir/Conversion/SCFToGPU/SCFToGPUPass.h |
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
 | mlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir |
 | mlir/include/mlir/Conversion/SCFToStandard/SCFToStandard.h |
 | mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp |
 | mlir/lib/Conversion/VectorToLoops/ConvertVectorToLoops.cpp |
 | mlir/lib/Conversion/SCFToStandard/SCFToStandard.cpp |
 | mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp |
 | flang/tools/tco/CMakeLists.txt |
 | mlir/test/lib/Transforms/TestVectorToSCFConversion.cpp |
 | mlir/test/Conversion/convert-to-cfg.mlir |
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/lib/Conversion/LoopToStandard/CMakeLists.txt |
 | mlir/lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp |
 | mlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h |
 | mlir/include/mlir/Dialect/Vector/VectorTransforms.h |
 | mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp |
 | mlir/include/mlir/Conversion/VectorToLoops/ConvertVectorToLoops.h |
 | mlir/test/Conversion/LoopsToGPU/step_one.mlir |
 | mlir/lib/Conversion/VectorToLoops/CMakeLists.txt |
 | mlir/test/lib/Transforms/CMakeLists.txt |
 | mlir/include/mlir/Conversion/VectorToSCF/VectorToSCF.h |
 | mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp |
 | mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp |
 | mlir/test/mlir-cpu-runner/sgemm_naive_codegen.mlir |
 | mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPU.h |
 | mlir/lib/Conversion/VectorToSCF/CMakeLists.txt |
 | mlir/test/Conversion/LoopsToGPU/no_blocks_no_threads.mlir |
 | mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp |
 | mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h |
 | mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt |
 | mlir/include/mlir/InitAllPasses.h |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/lib/Conversion/SCFToGPU/CMakeLists.txt |
 | mlir/lib/Conversion/SCFToGPU/SCFToGPUPass.cpp |
 | mlir/include/mlir/Conversion/LoopToStandard/ConvertLoopToStandard.h |
 | mlir/lib/Conversion/SCFToStandard/CMakeLists.txt |
 | mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt |
 | mlir/test/Conversion/LoopsToGPU/linalg_to_gpu.mlir |
 | mlir/test/lib/Transforms/TestGpuParallelLoopMapping.cpp |
 | mlir/test/lib/Transforms/TestVectorToLoopsConversion.cpp |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
Commit
4549d830184294607d075c993836b5c858e6ad95
by sven.vanhaastregt[GlobalISel] Update GIComplexOperandMatcher comment; NFC
Update a comment to account for 2deea1878ea ("[globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility.", 2017-04-22).
|
 | llvm/include/llvm/Target/GlobalISel/Target.td |
Commit
969c63a2ecfb536062ff2174645abe31e4036067
by grimar[LLD][ELF] - Fix section-alignment.test after yaml2obj change.
yaml2obj changed in rG7ccae2cece72. Previous version of the yaml produced a different error and a 500mb binary.
|
 | lld/test/ELF/invalid/section-alignment.test |
Commit
8b845ac5edc19524817911d703dd314aac2ca97d
by labathRecommit "[lldb] Don't dissasemble large functions by default"
This recommits f665e80c023 which was reverted in 1cbd1b8f692d for breaking TestFoundationDisassembly.py. The fix is to use --force in the test to avoid bailing out on large functions.
I have also doubled the large function limit to 8000 bytes (~~ 2000 insns), as the foundation library contains a lot of large-ish functions. The intent of this feature is to prevent accidental disassembling of enormous (multi-megabyte) "functions", not to get in people's way.
The original commit message follows:
If we have a binary without symbol information (and without LC_FUNCTION_STARTS, if on a mac), then we have to resort to using heuristics to determine the function boundaries. However, these don't always work, and so we can easily end up thinking we have functions which are several megabytes in size. Attempting to (accidentally) disassemble these can take a very long time spam the terminal with thousands of lines of disassembly.
This patch works around that problem by adding a sanity check to the disassemble command. If we are about to disassemble a function which is larger than a certain threshold, we will refuse to disassemble such a function unless the user explicitly specifies the number of instructions to disassemble, uses start/stop addresses for disassembly, or passes the (new) --force argument.
The threshold is currently fairly aggressive (4000 bytes ~~ 1000 instructions). If needed, we can increase it, or even make it configurable.
Differential Revision: https://reviews.llvm.org/D79789
|
 | lldb/source/Commands/CommandObjectDisassemble.h |
 | lldb/test/Shell/Commands/command-disassemble.s |
 | lldb/source/Commands/CommandObjectDisassemble.cpp |
 | lldb/test/API/lang/objc/foundation/TestFoundationDisassembly.py |
 | lldb/source/Commands/Options.td |
 | lldb/test/Shell/Commands/command-disassemble-process.yaml |
 | lldb/test/Shell/Commands/Inputs/command-disassemble.lldbinit |
Commit
710d9d66f8e2f8ac148ef9a3d226c6a8e22f15c5
by grimar[DebugInfo] - DWARFDebugFrame: do not call abort() on errors.
Imagine we have a broken .eh_frame. Below is a possible sample output of llvm-readelf:
``` ... entry 2 { initial_location: 0x10f5 address: 0x2080 } } } .eh_frame section at offset 0x2028 address 0x2028: LLVM ERROR: Parsing entry instructions at 0 failed PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace. Stack dump: 0. Program arguments: /home/umb/LLVM/LLVM/llvm-project/build/bin/llvm-readelf -a 1 #0 0x000055f4a2ff5a1a llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/home/umb/LLVM/LLVM/llvm-project/build/bin/llvm-readelf+0x2b9a1a) ... #15 0x00007fdae5dc209b __libc_start_main /build/glibc-B9XfQf/glibc-2.28/csu/../csu/libc-start.c:342:3 #16 0x000055f4a2db746a _start (/home/umb/LLVM/LLVM/llvm-project/build/bin/llvm-readelf+0x7b46a) Aborted ```
I.e. it calls abort(), suggests to submit a bug report and exits with the code 134. This patch changes the logic to propagate errors to callers. This fixes the behavior for llvm-dwarfdump, llvm-readobj and other possible tools.
Differential revision: https://reviews.llvm.org/D79165
|
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
 | llvm/test/DebugInfo/X86/eh-frame-cie-id.s |
 | llvm/test/tools/llvm-readobj/ELF/unwind.test |
 | llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h |
Commit
36b9b1e6171d438105839aac6f333a1c98fda74c
by pavel[lldb] Fixup command-disassemble-process.yaml test
Increase the function size to account for the changed threshold in 8b845ac5edc1.
|
 | lldb/test/Shell/Commands/command-disassemble-process.yaml |
Commit
1024e82469b465803e57360c01c5943c679257e0
by llvm-devX86ISelLowering.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.
Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
aef778d4d38e45fd413e7e95919fbb72cde42488
by n.james93[clang-tidy] Fix assertion in RenamerClangTidyChecks
|
 | clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp |
Commit
1a3b801db5afe98718b31ba9a760e06557daccb1
by Artem Dergachev[analyzer] SATestBuild.py: Fix handling invalid plists after 2to3 conversion.
The updated plistlib throws a different exception class.
|
 | clang/utils/analyzer/SATestBuild.py |
Commit
5425cdc3adf9998aeaf587d93417bd2f4f1373c9
by konstantin.schwarz[GlobalISel][InlineAsm] Add early return for memory inputs that need to be indirectified
Summary: D78319 introduced basic support for inline asm input operands in GlobalISel. However, that patch did not handle the case where a memory input operand still needs to be indirectified. Later code asserts that the memory operand is already indirect.
This patch adds an early return false to trigger the SelectionDAG fallback for now.
Reviewers: arsenm, paquette
Reviewed By: arsenm
Subscribers: thakis, wdng, rovka, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79955
|
 | llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll |
Commit
9d4b4f344d8ea917e082cf58d66b71c0171e1650
by llvm-devDAGCombiner.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.
Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
a26883e5aa14f9f0c6de312fb55ec1a13fdc762a
by tpopp[MLIR] Add shape.witness type and ops
Summary: These represent shape based preconditions on execution of code.
Differential Revision: https://reviews.llvm.org/D79717
|
 | mlir/test/Dialect/Shape/ops.mlir |
 | mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td |
 | mlir/include/mlir/Dialect/Shape/IR/Shape.h |
 | mlir/lib/Dialect/Shape/IR/Shape.cpp |
Commit
182adf120ccffe937d95d5b447f6506f82f615ec
by marek[libc++] [span] [P1976] Update status page. NFC
It was implemented by commit 6d2599e4f776d0cd88438cb82a00c4fc25cc3f67 "[libcxx][span] Implement P1976R2".
|
 | libcxx/www/cxx2a_status.html |
Commit
0ef62fc25d3f2017551c24f4c65d001e003e88ab
by sam.parker[NFC][ARM] Intrinsic CostModel Tests
Add throughput tests for saturating, overflowing and reduction operations.
|
 | llvm/test/Analysis/CostModel/ARM/reduce-umax.ll |
 | llvm/test/Analysis/CostModel/ARM/reduce-umin.ll |
 | llvm/test/Analysis/CostModel/ARM/reduce-smin.ll |
 | llvm/test/Analysis/CostModel/ARM/reduce-add.ll |
 | llvm/test/Analysis/CostModel/ARM/arith-overflow.ll |
 | llvm/test/Analysis/CostModel/ARM/reduce-smax.ll |
 | llvm/test/Analysis/CostModel/ARM/arith-ssat.ll |
 | llvm/test/Analysis/CostModel/ARM/arith-usat.ll |
Commit
8fa743ab82027da443bac050e86b70bcdb78cbee
by jbcoe[clang-format] C# property formatting can be controlled by config options
Summary: Allow brace wrapping in C# property accessors to be controlled by configuration options.
Add new tests and revert old test results for Microsoft style to their previous state (as intended).
`FormatStyle.BraceWrapping.AfterFunction = true;` will change automatic property formatting from
``` Type MyType { get; set } ```
to
``` Type MyType { get; set } ```
Reviewers: krasimir, MyDeveloperDay
Reviewed By: krasimir, MyDeveloperDay
Subscribers: cfe-commits
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D79000
|
 | clang/lib/Format/UnwrappedLineParser.cpp |
 | clang/unittests/Format/FormatTestCSharp.cpp |
Commit
7063a83a7cca45a9b12a7e447c90abe681f6ebaf
by aaronAdd MSVC natvis visualisation of llvm::Type
llvm::Type has some difficult to decode member variables with different meanings depending on the TypeID. Specifically SubclassData and ContainedTys. This natvis visualisation decodes and visualises those members.
|
 | llvm/utils/LLVMVisualizers/llvm.natvis |
Commit
8c24f33158d81d5f4b0c5d27c2f07396f0f1484b
by ties.stuij[IR][BFloat] Add BFloat IR type
Summary: The BFloat IR type is introduced to provide support for, initially, the BFloat16 datatype introduced with the Armv8.6 architecture (optional from Armv8.2 onwards). It has an 8-bit exponent and a 7-bit mantissa and behaves like an IEEE 754 floating point IR type.
This is part of a patch series upstreaming Armv8.6 features. Subsequent patches will upstream intrinsics support and C-lang support for BFloat.
Reviewers: SjoerdMeijer, rjmccall, rsmith, liutianle, RKSimon, craig.topper, jfb, LukeGeeson, sdesmalen, deadalnix, ctetreau
Subscribers: hiraditya, llvm-commits, danielkiss, arphaman, kristof.beyls, dexonsmith
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78190
|
 | llvm/include/llvm/IR/IRBuilder.h |
 | llvm/lib/IR/DataLayout.cpp |
 | llvm/include/llvm-c/Core.h |
 | llvm/lib/IR/LLVMContextImpl.cpp |
 | llvm/lib/AsmParser/LLLexer.cpp |
 | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp |
 | llvm/lib/IR/AsmWriter.cpp |
 | llvm/test/Assembler/bfloat.ll |
 | llvm/include/llvm/Bitcode/LLVMBitCodes.h |
 | llvm/lib/IR/Constants.cpp |
 | llvm/lib/IR/Function.cpp |
 | llvm/include/llvm/IR/DataLayout.h |
 | clang/lib/Sema/SemaOpenMP.cpp |
 | llvm/tools/llvm-c-test/echo.cpp |
 | llvm/include/llvm/ADT/APFloat.h |
 | llvm/include/llvm/IR/Constants.h |
 | llvm/docs/BitCodeFormat.rst |
 | llvm/lib/CodeGen/MIRParser/MILexer.cpp |
 | llvm/lib/IR/Core.cpp |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
 | llvm/docs/LangRef.rst |
 | llvm/lib/Support/APFloat.cpp |
 | llvm/include/llvm/IR/Type.h |
 | llvm/lib/IR/LLVMContextImpl.h |
 | llvm/lib/IR/Type.cpp |
 | llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/lib/AsmParser/LLParser.cpp |
Commit
fb1c55b57dda134866803bdf3cdda2cc57a7dc5c
by david.sherwood[CodeGen] Fix FoldConstantVectorArithmetic for scalable vectors
For now I have changed FoldConstantVectorArithmetic to return early if we encounter a scalable vector, since the subsequent code assumes you can perform lane-wise constant folds. However, in future work we should be able to extend this to look at splats of a constant value and fold those if possible. I have also added the same code to FoldConstantArithmetic, since that deals with vectors too.
The warnings I fixed in this patch were being generated by this existing test:
CodeGen/AArch64/sve-int-arith.ll
Differential Revision: https://reviews.llvm.org/D79421
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
151ed6aa38a3ec6c01973b35f684586b6e1c0f7e
by dvyukov[TSAN] Add option to allow instrumenting reads of reads-before-writes
Add -tsan-instrument-read-before-write which allows instrumenting reads of reads-before-writes.
This is required for KCSAN [1], where under certain configurations plain writes behave differently (e.g. aligned writes up to word size may be treated as atomic). In order to avoid missing potential data races due to plain RMW operations ("x++" etc.), we will require instrumenting reads of reads-before-writes.
[1] https://github.com/google/ktsan/wiki/KCSAN
Author: melver (Marco Elver) Reviewed-in: https://reviews.llvm.org/D79983
|
 | llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp |
 | llvm/test/Instrumentation/ThreadSanitizer/read_before_write.ll |
Commit
f06e6564a1554338ca00a4b9c3acdcffa212c743
by james.henderson[llvm-readobj] Implement --dependent-libraries for GNU output
Previously, the option was only implemented for LLVM output. This fixes https://bugs.llvm.org/show_bug.cgi?id=45695.
At the current time, GNU readelf does not support this option. Consequently, this patch simply attempts to roughly follow the output style for similar options like --syms/--notes etc, combined with --string-dump output.
Reviewed by: MaskRay, grimar
Differential Revision: https://reviews.llvm.org/D79939
|
 | llvm/test/tools/llvm-readobj/ELF/dependent-libraries.test |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
Commit
96c4460a0be6f5f66a02eac7fe796e49768001a4
by yvan.roux[ARM][MachineOutliner] Fix memory leak.
Fix sanitizer bots after 0e4827aa4e4ae25813f66d3b872db67d93813009
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
Commit
436c5750cf36697afb17468908cbb7303b229e1f
by james.hendersonFix Linux build broken by f06e6564
|
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
Commit
76c5f277f25e334404aa44ea0aafd674a627ab74
by alexandre.ganeaRe-land [Debug][CodeView] Emit fully qualified names for globals
Before this patch, S_[L|G][THREAD32|DATA32] records were emitted with a simple name, not the fully qualified name (namespace + class scope).
Differential Revision: https://reviews.llvm.org/D79447
|
 | lldb/test/Shell/SymbolFile/PDB/variables.test |
 | llvm/test/DebugInfo/COFF/global-constants.ll |
 | llvm/test/DebugInfo/COFF/global_visibility.ll |
 | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp |
 | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h |
 | llvm/test/DebugInfo/COFF/globals.ll |
 | llvm/test/DebugInfo/COFF/types-array-unsized.ll |
Commit
4db94094b469b4715d08ef37f1799bf3ea7ca8ea
by francois.ferrandclang-format: support aligned nested conditionals formatting
Summary: When multiple ternary operators are chained, e.g. like an if/else-if/ else-if/.../else sequence, clang-format will keep aligning the colon with the question mark, which increases the indent for each conditionals:
int a = condition1 ? result1 : condition2 ? result2 : condition3 ? result3 : result4;
This patch detects the situation (e.g. conditionals used in false branch of another conditional), to avoid indenting in that case:
int a = condition1 ? result1 : condition2 ? result2 : condition3 ? result3 : result4;
When BreakBeforeTernaryOperators is false, this will format like this:
int a = condition1 ? result1 : condition2 ? result2 : conditino3 ? result3 : result4;
This formatting style is referenced here: https://www.fluentcpp.com/2018/02/27/replace-else-if-ternary-operator/ and here: https://marcmutz.wordpress.com/2010/10/14/top-5-reasons-you-should-love-your-ternary-operator/
Reviewers: krasimir, djasper, klimek, MyDeveloperDay
Reviewed By: MyDeveloperDay
Subscribers: hokein, dyung, MyDeveloperDay, acoomans, cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D50078
|
 | clang/lib/Format/ContinuationIndenter.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/ContinuationIndenter.h |
 | clang/lib/Format/WhitespaceManager.h |
 | clang/lib/Format/WhitespaceManager.cpp |
Commit
0ee04e6e0d0e1c808dc6c70ff7b92b35f960b627
by francois.ferrand[clang-format] Fix AlignOperands when BreakBeforeBinaryOperators is set
Summary: Even when BreakBeforeBinaryOperators is set, AlignOperands kept aligning the beginning of the line, even when it could align the actual operands (e.g. after an assignment).
With this patch, the operands are actually aligned, and the operator gets aligned with the equal sign:
int aaaaa = bbbbbb + cccccc;
This not happen in tests, to avoid 'breaking' the indentation:
if (aaaaa && bbbbb) return;
Reviewers: krasimir, djasper, klimek, MyDeveloperDay
Reviewed By: MyDeveloperDay
Subscribers: MyDeveloperDay, acoomans, cfe-commits, klimek
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D32478
|
 | clang/lib/Format/ContinuationIndenter.cpp |
 | clang/unittests/Format/FormatTestJS.cpp |
 | clang/include/clang/Format/Format.h |
 | clang/lib/Format/ContinuationIndenter.h |
 | clang/docs/ClangFormatStyleOptions.rst |
 | clang/lib/Format/Format.cpp |
 | clang/unittests/Format/FormatTest.cpp |
Commit
10c10f2419676175ef3dbafe8ace869aaf6dc6bb
by jay.foad[AMDGPU] Fix assertion failure in SIInsertHardClauses
This new pass failed an assertion whenever there were s_nops after the end of clause.
Differential Revision: https://reviews.llvm.org/D80007
|
 | llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp |
 | llvm/test/CodeGen/AMDGPU/hard-clauses.mir |
Commit
6b01b465388b204d543da3cf49efd6080db094a9
by yhs[BPF] preserve debuginfo types for builtin __builtin__btf_type_id()
The builtin function u32 btf_type_id = __builtin_btf_type_id(param, 0) can help preserve type info for the following use case: extern void foo(..., void *data, int size); int test(...) { struct t { int a; int b; int c; } d; d.a = ...; d.b = ...; d.c = ...; foo(..., &d, sizeof(d)); }
The function "foo" in the above only see raw data and does not know what type of the data is. In certain cases, e.g., logging, the additional type information will help pretty print.
This patch handles the builtin in BPF backend. It includes an IR pass to translate the IR intrinsic to a load of a global variable which carries the metadata, and an MI pass to remove the intermediate load of the global variable. Finally, in AsmPrinter pass, proper instruction are generated.
In the above example, the second argument for __builtin_btf_type_id() is 0, which means a relocation for local adjustment, i.e., w.r.t. bpf program BTF change, will be generated. The value 1 for the second argument means a relocation for remote adjustment, e.g., against vmlinux.
Differential Revision: https://reviews.llvm.org/D74572
|
 | llvm/lib/Target/BPF/BPFTargetMachine.cpp |
 | llvm/test/CodeGen/BPF/BTF/builtin-btf-type-id.ll |
 | llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp |
 | llvm/lib/Target/BPF/BTFDebug.h |
 | llvm/lib/Target/BPF/BTFDebug.cpp |
 | llvm/lib/Target/BPF/CMakeLists.txt |
 | llvm/lib/Target/BPF/BPFCORE.h |
 | llvm/lib/Target/BPF/BPFPreserveDIType.cpp |
 | llvm/lib/Target/BPF/BPF.h |
Commit
6894d95040b656008a5ea8682570ac3a11585c05
by llvmgnsyncbot[gn build] Port 6b01b465388
|
 | llvm/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn |
Commit
3648dde3ddd3cc0ba862017d494b7ede6054631c
by yvan.roux[ARM][MachineOutliner] Fix memory leak #2.
Use smart pointer instead of new/delete.
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
Commit
7cc3769adb15f7347e28df65b16d6e6464fd3c70
by anna[VectorUtils] Expose vector-function-abi-variant mangling as a utility.
Summary: This change exposes the vector name mangling with LLVM ISA (used as part of vector-function-abi-variant) as a utility. This can then be used by front-ends that add this attribute. Note that all parameters passed in to the function will be mangled with the "v" token to identify that they are of of vector type. So, it is the responsibility of the caller to confirm that all parameters in the vectorized variant is of vector type.
Added unit test to show vector name mangling.
Reviewed-By: fpetrogalli, simoll
Differential Revision: https://reviews.llvm.org/D79867
|
 | llvm/include/llvm/Analysis/VectorUtils.h |
 | llvm/unittests/Analysis/VectorFunctionABITest.cpp |
 | llvm/lib/Transforms/Utils/InjectTLIMappings.cpp |
 | llvm/lib/Analysis/VectorUtils.cpp |
Commit
04c89c7fcab4bb3fcdb1e75daa10fd0d8206e320
by Louis Dionne[libc++] Centralize where we set the libc++ and libc++abi paths in config.py
It's just confusing to have them all over the place.
|
 | libcxx/utils/libcxx/test/config.py |
Commit
07837b8f499bcb1cfd9e67ad5759c68b8a470d3c
by maskray[ELF] Use namespace qualifiers (lld:: or elf::) instead of `namespace lld { namespace elf {`
Similar to D74882. This reverts much code from commit bd8cfe65f5fee4ad573adc2172359c9552e8cdc0 (D68323) and fixes some problems before D68323.
Sorry for the churn but D68323 was a mistake. Namespace qualifiers avoid bugs where the definition does not match the declaration from the header. See https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions (D74515)
Differential Revision: https://reviews.llvm.org/D79982
|
 | lld/ELF/Arch/Hexagon.cpp |
 | lld/ELF/Writer.cpp |
 | lld/ELF/LinkerScript.cpp |
 | lld/ELF/EhFrame.cpp |
 | lld/ELF/MapFile.cpp |
 | lld/ELF/SymbolTable.cpp |
 | lld/ELF/Arch/ARM.cpp |
 | lld/ELF/Driver.cpp |
 | lld/ELF/Arch/Mips.cpp |
 | lld/ELF/AArch64ErrataFix.cpp |
 | lld/ELF/ICF.cpp |
 | lld/ELF/Arch/SPARCV9.cpp |
 | lld/ELF/Arch/X86.cpp |
 | lld/ELF/Symbols.cpp |
 | lld/ELF/MarkLive.cpp |
 | lld/ELF/OutputSections.cpp |
 | lld/ELF/Arch/PPC.cpp |
 | lld/ELF/SyntheticSections.cpp |
 | lld/ELF/LTO.cpp |
 | lld/ELF/Arch/AMDGPU.cpp |
 | lld/ELF/Arch/X86_64.cpp |
 | lld/ELF/Arch/AVR.cpp |
 | lld/ELF/CallGraphSort.cpp |
 | lld/ELF/ARMErrataFix.cpp |
 | lld/ELF/InputFiles.cpp |
 | lld/ELF/Target.cpp |
 | lld/ELF/Arch/AArch64.cpp |
 | lld/ELF/Arch/MSP430.cpp |
 | lld/ELF/InputSection.cpp |
 | lld/ELF/Thunks.cpp |
 | lld/ELF/DriverUtils.cpp |
 | lld/ELF/Arch/MipsArchTree.cpp |
 | lld/ELF/Relocations.cpp |
 | lld/ELF/ScriptLexer.cpp |
 | lld/ELF/DWARF.cpp |
 | lld/ELF/Arch/PPC64.cpp |
 | lld/ELF/Arch/RISCV.cpp |
 | lld/ELF/ScriptParser.cpp |
 | lld/ELF/InputFiles.h |
Commit
4ec340c3e99c7fa4789387452864ad3cf36ab579
by anna.welker[ARM][MVE] Add support for incrementing scatters
Adds support to build pre-incrementing scatters. If the increment (i.e., add instruction) that is merged into the scatter is the loop increment, an incrementing write-back scatter can be built, which then assumes the role of the loop increment.
Differential Revision: https://reviews.llvm.org/D79859
|
 | llvm/test/CodeGen/Thumb2/mve-scatter-increment.ll |
 | llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll |
 | llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp |
Commit
bb7191aa81b858e9c979556eca55a7bc0db2d87b
by Louis Dionne[libc++] Segregate back-deployment dylibs into their own subdirectory
Otherwise, specifying (for example) the libc++.dylib from macos10.13 but the libc++abi.dylib from macos10.12 would end up adding library paths for both the 10.12 and 10.13 dylibs, which would each contain a copy of both libc++abi.dylib and libc++.dylib. By using a separate directory for libc++.dylib and libc++abi.dylib, those do not conflict anymore.
The back-deployment roots were updated to match this change.
|
 | libcxx/utils/ci/macos-backdeployment.sh |
Commit
1a68b5f048c63f94b71e8aacb5507445c446c9d2
by Louis Dionne[libc++] Fix broken Lit features based on __config_site macros
Because of Python's funny scoping rules with lambdas, we were always using the value of `macro` as set in the last iteration of the loop. This problem was introduced by e7bdfba4f00d.
|
 | libcxx/utils/libcxx/test/features.py |
Commit
4580b0f5b65c18b3029ca0936762dcec727274c4
by llvm-dev[X86] getFauxShuffle - remove (unused) ISD::TRUNCATE shuffle decoding.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
9825d3daa80c19872326d8e137ada39a1727cfe8
by llvm-dev[X86] Use getConstantOperandVal helper in a few places. NFC.
Avoid raw cast<ConstantSDNode> calls.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
072cde03aaa13a2c57acf62d79876bf79aa1919f
by yhs[Clang][BPF] implement __builtin_btf_type_id() builtin function
Such a builtin function is mostly useful to preserve btf type id for non-global data. For example, extern void foo(..., void *data, int size); int test(...) { struct t { int a; int b; int c; } d; d.a = ...; d.b = ...; d.c = ...; foo(..., &d, sizeof(d)); }
The function "foo" in the above only see raw data and does not know what type of the data is. In certain cases, e.g., logging, the additional type information will help pretty print.
This patch implemented a BPF specific builtin u32 btf_type_id = __builtin_btf_type_id(param, flag) which will return a btf type id for the "param". flag == 0 will indicate a BTF local relocation, which means btf type_id only adjusted when bpf program BTF changes. flag == 1 will indicate a BTF remote relocation, which means btf type_id is adjusted against linux kernel or future other entities.
Differential Revision: https://reviews.llvm.org/D74668
|
 | clang/test/CodeGen/builtin-bpf-btf-type-id.c |
 | clang/test/Sema/builtin-bpf-btf-type-id.c |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/include/clang/Basic/BuiltinsBPF.def |
 | clang/lib/Sema/SemaChecking.cpp |
 | llvm/include/llvm/IR/IntrinsicsBPF.td |
 |