Commit
2f2b5b7d282bbc97cad76f920e9f3bfcf45d00ea
by gysit[mlir][linalg] Cleanup LinalgOp usage in sparse compiler (NFC).
Replace the uses of deprecated Structured Op Interface methods in Sparsification.cpp. This patch is based on https://reviews.llvm.org/D103394.
Differential Revision: https://reviews.llvm.org/D103436
|
 | mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp |
Commit
2445838f74ef200fbf1134fb29f8c7c8f73ead52
by Vitaly BukaRevert "[NFC][msan] Fix warning on sanitizer-ppc64le-linux bot"
This fix breaks the test.
This reverts commit 6a2807bc81771d3fed397378507ecab40f8bff27.
|
 | compiler-rt/lib/msan/tests/msan_test.cpp |
Commit
60c0256ef1875e62e91b7c1126f001a586225466
by Vitaly Buka[NFC][msan] Fix assigned-unused warning
|
 | compiler-rt/lib/msan/tests/msan_test.cpp |
Commit
0b34acdab718f5302232452fb0c9ca98180794c3
by daniil.fukalov[NFC] Fix 'Load' name masking.
Reviewed By: mkazantsev
Differential Revision: https://reviews.llvm.org/D103456
|
 | llvm/lib/Transforms/Scalar/GVN.cpp |
Commit
5f25145306e7f05a468b4520e31e05aaae66b2a0
by diana.picus[flang] Add tests for REPEAT. NFC
These should already pass with the current implementation.
Differential Revision: https://reviews.llvm.org/D103402
|
 | flang/unittests/RuntimeGTest/CharacterTest.cpp |
Commit
3b0a33d0ade8a6bacfb5a843f3263806cd12da0a
by fraser[RISCV] Expand unaligned fixed-length vector memory accesses
RVV vectors must be aligned to their element types, so anything less is unaligned.
For regular loads and stores, our custom-lowering of fixed-length vectors meant that we opted out of LegalizeDAG's built-in unaligned expansion. This patch adds that logic in to our custom lower function.
For masked intrinsics, we declare that anything unaligned is not legal, leaving the ScalarizeMaskedMemIntrin pass to do the expansion for us.
Note that neither of these methods can handle the expansion of scalable-vector memory ops, so those cases are left alone by this patch. Scalable loads and stores already go through expansion by default but hit an assertion, and scalable masked intrinsics will silently generate incorrect code. It may be prudent to return an error in both of these cases.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D102493
|
 | llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll |
 | llvm/test/Analysis/CostModel/RISCV/fixed-vector-scatter.ll |
 | llvm/test/Analysis/CostModel/RISCV/fixed-vector-gather.ll |
Commit
a67a234ec7aaf9b21dd70e56b128ab8d79092a78
by tomasz.miasko[Demangle][Rust] Parse binders
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D102729
|
 | llvm/test/Demangle/rust.test |
 | llvm/include/llvm/Demangle/RustDemangle.h |
 | llvm/lib/Demangle/RustDemangle.cpp |
Commit
942be7cb4d98eb1fa0ffdc5d122e8c931cbc4cd6
by akuegel[mlir] Add DivOp lowering from Complex dialect to Standard/Math dialect.
Differential Revision: https://reviews.llvm.org/D103507
|
 | mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir |
 | mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp |
Commit
9c54ee437898314f956cfc048d9038ca775ea692
by bjorn.a.pettersson[SimplifyLibCalls] Take size of int into consideration when emitting ldexp/ldexpf
When rewriting powf(2.0, itofp(x)) -> ldexpf(1.0, x) exp2(sitofp(x)) -> ldexp(1.0, sext(x)) exp2(uitofp(x)) -> ldexp(1.0, zext(x))
the wrong type was used for the second argument in the ldexp/ldexpf libc call, for target architectures with 16 bit "int" type. The transform incorrectly used a bitcasted function pointer with a 32-bit argument when emitting the ldexp/ldexpf call for such targets.
The fault is solved by using the correct function prototype in the call, by asking TargetLibraryInfo about the size of "int". TargetLibraryInfo by default derives the size of the int type by assuming that it is 16 bits for 16-bit architectures, and 32 bits otherwise. If this isn't true for a target it should be possible to override that default in the TargetLibraryInfo initializer.
Differential Revision: https://reviews.llvm.org/D99438
|
 | llvm/test/Transforms/InstCombine/exp2-1.ll |
 | llvm/lib/Analysis/TargetLibraryInfo.cpp |
 | llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp |
 | llvm/test/Transforms/InstCombine/pow_fp_int.ll |
 | llvm/test/Transforms/InstCombine/simplify-libcalls.ll |
 | llvm/include/llvm/Analysis/TargetLibraryInfo.h |
Commit
d1273d39d377dffeab684ca58176302dbad6c629
by bjorn.a.pettersson[LegalizeTypes] Avoid promotion of exponent in FPOWI
The FPOWI DAG node is normally lowered to a libcall to one of the RTLIB::POWI* runtime functions and the exponent should normally have a type matching sizeof(int) when making the call. Thus, type promotion of the exponent could lead to an FPOWI with a type for the second operand that would be incorrect when doing the libcall (a situation which would be hard to detect post-legalization if we allow such FPOWI nodes).
This patch is changing DAGTypeLegalizer::PromoteIntOp_FPOWI to do the rewrite into a libcall directly instead of promoting the operand. This way we can check that the exponent is smaller than sizeof(int) and we can let TargetLowering handle promotion as part of making the libcall. It could be noticed here that makeLibCall has some knowledge about targets such as 64-bit RISCV, for which the libcall argument should be extended to a type larger than sizeof(int).
Differential Revision: https://reviews.llvm.org/D102950
|
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
Commit
536e02a23c6555403a844810a42d2f32b7e59d63
by bjorn.a.pettersson[CodeGen] Refactor libcall lookups for RTLIB::POWI_*
Use RuntimeLibcalls to get a common way to pick correct RTLIB::POWI_* libcall for a given value type.
This includes a small refactoring of ExpandFPLibCall and ExpandArgFPLibCall in SelectionDAGLegalize to share a bit of code, plus adding an ExpandFPLibCall version that can be called directly when expanding FPOWI/STRICT_FPOWI to ensure that we actually use the same RTLIB::Libcall when expanding the libcall as we used when checking the legality of such a call by doing a getLibcallName check.
Differential Revision: https://reviews.llvm.org/D103050
|
 | llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
 | llvm/include/llvm/CodeGen/RuntimeLibcalls.h |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
 | llvm/lib/CodeGen/TargetLoweringBase.cpp |
Commit
fe208a4ef449d6e917dc5695ba793f4428980de3
by bjorn.a.pettersson[InstCombine][msp430] Pre-commit test case for @llvm.powi and 16-bit ints
This is a pre-commit of a test case D99439 which is a patch that updates @llvm.powi to handle different int sizes for the exponent.
Problem is that @llvm.powi is used as an IR construct that maps to RT libcalls to __powi* functions, and those lib functions depend on sizeof(int) to use correct type for the exponent.
The test cases show that we use i32 for the powi expenent, which later would result in wrong type being used in libcalls (miscompile).
But there are also a couple of the negative test cases that show that we rewrite into using powi when having a uitofp conversion from i16, which would be wrong when doing the libcall as an "unsigned int" isn't guaranteed to fit inside the "int" argument in the called libcall function.
Differential Revision: https://reviews.llvm.org/D102919
|
 | llvm/test/Transforms/InstCombine/pow_fp_int16.ll |
Commit
f3a27511c9f820f12a16445a7c130cb34693608d
by jingu.kang[SimpleLoopUnswitch] Port partially invariant unswitch from LoopUnswitch to SimpleLoopUnswitch
This re-enables commit 107d19eb017ff6734986af077eb2e9f6600114a9 with bug fixes.
Differential Revision: https://reviews.llvm.org/D99354
|
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-update-memoryssa.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/endless-unswitch.ll |
 | llvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-mssa-threshold.ll |
Commit
39b3c00ec33f50837d9fe52b0b56c7d11eff377f
by thakisAdd a toplevel .mailmap file
See "Proposal: Adding a toplevel .mailmap file" on llvm-dev: https://lists.llvm.org/pipermail/llvm-dev/2021-May/150741.html
Differential Revision: https://reviews.llvm.org/D103360
|
 | .mailmap |
Commit
e008d0123c5cbc224e0ef2392482a94c96783694
by thakis[mailmap] Use my chromium address as my canonical email address
|
 | .mailmap |
Commit
2368170a8d943a32f4024db1b830c8301df67b7f
by Pushpinder.Singh[AMDGPU][Libomptarget][NFC] Remove atmi_place_t
atmi_place_t has been replaced with int DeviceId.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D103508
|
 | openmp/libomptarget/plugins/amdgpu/impl/atmi_runtime.h |
 | openmp/libomptarget/plugins/amdgpu/impl/machine.h |
 | openmp/libomptarget/plugins/amdgpu/impl/atmi.h |
 | openmp/libomptarget/plugins/amdgpu/impl/system.cpp |
 | openmp/libomptarget/plugins/amdgpu/impl/rt.h |
 | openmp/libomptarget/plugins/amdgpu/src/rtl.cpp |
Commit
78ce89bb1e8049e81aea3e374feab4f5900d257c
by thakis[lld/mac] Implement -reexport_framework, -reexport_library, -reexport-l
These are slightly easier-to-use versions of -sub_library and -sub_umbrella.
Differential Revision: https://reviews.llvm.org/D103497
|
 | lld/test/MachO/sub-library.s |
 | lld/MachO/Options.td |
 | lld/MachO/Driver.cpp |
Commit
b25546a4b40675b596dcfdbfd491b10fa12d88e6
by Pushpinder.Singh[AMDGPU][Libomptarget][NFC] Remove bunch of dead structs
Dropped structs are atmi_machine_t, atmi_device_t and atmi_memory_t
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D103509
|
 | openmp/libomptarget/plugins/amdgpu/impl/system.cpp |
 | openmp/libomptarget/plugins/amdgpu/impl/atmi.h |
Commit
e971099a9b9b83680d9fa85b7b3b4a1e5f37a845
by irina.dobrescu[AArch64] Optimise bitreverse lowering in ISel
Differential Revision: https://reviews.llvm.org/D103105
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/bitreverse.ll |
 | llvm/test/CodeGen/AArch64/neon_rbit.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
Commit
1cea1189c200fcee00be4262bf6915998531989e
by fraser[RISCV][NFC] Add '+mattr=+experimental-v' to RVV test
|
 | llvm/test/CodeGen/RISCV/rvv/zvlsseg-copy.mir |
Commit
f84b908f89af76002112acbf915ab0677b99c01c
by gysit[mlir][linalg] Cleanup LinalgOp usage in fusion on tensors (NFC).
Replace the uses of deprecated Structured Op Interface methods in FusionOnTensors.cpp. This patch is based on https://reviews.llvm.org/D103394.
Differential Revision: https://reviews.llvm.org/D103471
|
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp |
Commit
e1a150846d373f547e6b81c737333da27c4d29d7
by gysit[mlir][linalg] Update result position calculation in the Structured Op Interface (NFC).
Remove two unused methods and replace the implementation of getResultsPositionInLoopsToShapeMap. The patch is based on https://reviews.llvm.org/D103394.
Differential Revision: https://reviews.llvm.org/D103397
|
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td |
Commit
ba99359796bae116d2bd6b2ac828f3e1e664031f
by david.spickett[compiler-rt][asan] Enable unwind-tables for Arm Linux
Since https://reviews.llvm.org/D102046 some tests have been falling back to fast unwinding on our Thumb bot.
This fails because fast unwinding does not work on Thumb. By adding the extra information we ensure this does not happen during testing, but the built library can still fast unwind as a last resort.
Since there are some situations it can work in, like if eveything is built with clang. During testing we've got gcc built system libs and clang built tests.
The same change was made for sanitizer-common in https://reviews.llvm.org/D96337.
Reviewed By: zatrazz
Differential Revision: https://reviews.llvm.org/D103463
|
 | compiler-rt/test/asan/CMakeLists.txt |
Commit
0195e594feccaffc483a3780e6d65daeb72922a4
by daniil.fukalov[TTI] NFC: Change getIntImmCodeSizeCost to return InstructionCost.
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D102915
|
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h |
 | llvm/lib/Analysis/TargetTransformInfo.cpp |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.h |
Commit
3472d3fd9d4a5e55f9435dcb27a100d3efb2d484
by sander.desmalen[LV] NFC: Replace custom getMemInstValueType by llvm::getLoadStoreType.
llvm::getLoadStoreType was added recently and has the same implementation as 'getMemInstValueType' in LoopVectorize.cpp. Since there is no value in having two implementations, this patch removes the custom LV implementation in favor of the generic one defined in Instructions.h.
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
034503e9d2d66ab75679ab5d2ee0848f4de3cac7
by sander.desmalen[LV] NFC: Remove redundant isLegalMasked(Gather|Scatter) functions.
This NFC change follows from conversation in D102437, where it was discussed to remove these functions as a separate patch.
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
81f7607f7c7dadc9da2345455fa8e6f5eb9788f1
by sd.fertile[PowerPC][AIX} FIx AIX bootstrap build.
A recent patch: https://reviews.llvm.org/rGe0921655b1ff8d4ba7c14be59252fe05b705920e changed clangs AIX bitfield handling to use 4-byte bitfield containers, matching XLs behavior. This change triggers static assert failures when bootstrapping. Change the macro we check to enable bitfield packing on AIX to `__clang__` which is defined by both xlclang and clang.
Differential Revision: https://reviews.llvm.org/D103474
|
 | llvm/include/llvm/CodeGen/SelectionDAGNodes.h |
 | llvm/include/llvm/IR/BasicBlock.h |
Commit
8c363efecc5686055c19ef44941322a2c26b07cf
by david.spickett[compiler-rt][lsan] Increase libdl_deadlock test timeout
We have been seeing this test fail intermittently on our 2 stage AArch64 bot.
As far back as https://lab.llvm.org/buildbot/#/builders/53/builds/2694
Likely due to a lack of resources at certain times on the shared machine. Up the time limit to give us some more room.
(this limit only applies to the watchdog thread, so if the test passes then it won't take 20s)
|
 | compiler-rt/test/lsan/TestCases/Linux/libdl_deadlock.cpp |
Commit
d41cb6bb2607fa5c7a9df2b3dab361353657d225
by sander.desmalen[LV] Build and cost VPlans for scalable VFs.
This patch uses the calculated maximum scalable VFs to build VPlans, cost them and select a suitable scalable VF.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D98722
|
 | llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization.ll |
 | llvm/test/Transforms/LoopVectorize/AArch64/masked-op-cost.ll |
Commit
ff6fe93f21967bdfb8dd0e818c2207c209aa2eee
by irina.dobrescu[AArch64][NFC] Fix failing cost-model test
|
 | llvm/test/Analysis/CostModel/AArch64/bitreverse.ll |
Commit
cbde2487367a54355329c5fb942914627e01e598
by jotremAdd getDemandedBits for uses.
Add getDemandedBits method for uses so we can query demanded bits for each use. This can help getting better use information. For example, for the code below define i32 @test_use(i32 %a) { %1 = and i32 %a, -256 %2 = or i32 %1, 1 %3 = trunc i32 %2 to i8 (didn't optimize this to 1 for illustration purpose) ... some use of %3 ret %2 } if we look at the demanded bit of %2 (which is all 32 bits because of the return), we would conclude that %a is used regardless of how its return is used. However, if we look at each use separately, we will see that the demanded bit of %2 in trunc only uses the lower 8 bits of %a which is redefined, therefore %a's usage depends on how the function return is used.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D97074
|
 | llvm/test/Analysis/DemandedBits/basic.ll |
 | llvm/include/llvm/Analysis/DemandedBits.h |
 | llvm/lib/Analysis/DemandedBits.cpp |
Commit
61c65d8e4a29610bd1ab498eba8f892ffc0af023
by Yaxun.LiuFix comments in test cuda-kernel-call.cu
|
 | clang/test/Parser/cuda-kernel-call.cu |
Commit
2f951ca98b7a12fed7ac4ebf790a0fbabc02d80b
by davg[clangd] Add support for the `defaultLibrary` semantic token modifier
This allows us to differentiate symbols from the system (e.g. system includes or sysroot) differently than symbols defined in the user's project, which can be used by editors to display them differently.
This is currently based on `FileCharacteristic`, but we can consider alternatives such as `Sysroot` and file paths in the future.
Differential Revision: https://reviews.llvm.org/D101554
|
 | clang-tools-extra/clangd/SemanticHighlighting.h |
 | clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp |
 | clang-tools-extra/clangd/test/semantic-tokens.test |
 | clang-tools-extra/clangd/SemanticHighlighting.cpp |
 | clang-tools-extra/clangd/test/initialize-params.test |
Commit
369c64839946d89cf5697550b6feeea031b2f270
by Louis Dionne[clang] Implement the using_if_exists attribute
This attribute applies to a using declaration, and permits importing a declaration without knowing if that declaration exists. This is useful for libc++ C wrapper headers that re-export declarations in std::, in cases where the base C library doesn't provide all declarations.
This attribute was proposed in http://lists.llvm.org/pipermail/cfe-dev/2020-June/066038.html.
rdar://69313357
Differential Revision: https://reviews.llvm.org/D90188
|
 | clang/test/SemaCXX/attr-deprecated.cpp |
 | clang/lib/Serialization/ASTWriterDecl.cpp |
 | clang/include/clang/Basic/Attr.td |
 | clang/lib/Sema/TreeTransform.h |
 | clang/lib/AST/DeclCXX.cpp |
 | clang/test/Parser/using-if-exists-attr.cpp |
 | clang/test/SemaCXX/using-if-exists.cpp |
 | clang/include/clang/AST/RecursiveASTVisitor.h |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/CodeGen/CGDecl.cpp |
 | clang/tools/libclang/CIndex.cpp |
 | clang/include/clang/Serialization/ASTBitCodes.h |
 | clang/lib/AST/DeclBase.cpp |
 | clang/include/clang/AST/DeclCXX.h |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/lib/Serialization/ASTCommon.cpp |
 | clang/lib/Serialization/ASTReaderDecl.cpp |
 | clang/include/clang/Basic/DeclNodes.td |
 | clang/include/clang/Sema/Sema.h |
 | clang/include/clang/Basic/AttrDocs.td |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/Sema/SemaDeclAttr.cpp |
Commit
f1a0c5d67ca9600d3a08d1d81ad1da9b75a60138
by aschwaighofer[coro async] Add the swiftasync attribute to the resume partial function
Transfer the swiftasync attribute to the resume partial function according to suspend.async specification. It's first argument denotes which argument is the async context.
rdar://71499498
Differential Revision: https://reviews.llvm.org/D103285
|
 | llvm/test/Transforms/Coroutines/coro-async.ll |
 | llvm/lib/Transforms/Coroutines/CoroSplit.cpp |
Commit
476e4d65d482d75f789db092316327191f18dbcd
by thakis[lld/mac] Address review feedback and improve a comment
I forgot to move the message() call around as requested in D103428 before committing that change. Move it now.
Also, improve the ordinal uniq'ing comment. I hadn't realized that the distinct-but-identical files happen with --reproduce and not in general.
No behavior change.
Differential Revision: https://reviews.llvm.org/D103522
|
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/DriverUtils.cpp |
 | lld/MachO/Writer.cpp |
Commit
4316b0e59cfa4b65ce59f055ba271519679f9750
by stephen.tozer[LoopStrengthReduce] Ensure that debug intrinsics do not affect LSR's output
During Loop Strength Reduce, if the terminating condition for the loop is not immediately adjacent to the terminating branch and it has more than one use, a clone of the condition will be created just before the terminating branch and will be used as the branch condition. Currently, whether the instructions are "immediately adjacent" is determined by checking whether the next instruction after the condition is the terminating branch; this is incorrect however, as the presence of a debug intrinsic between the two will result in a change to the output. This is fixed by using getNextNonDebugInstruction() instead.
Differential Revision: https://reviews.llvm.org/D103033
|
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp |
 | llvm/test/Transforms/LoopStrengthReduce/X86/lsr-cond-dbg.ll |
Commit
e14fd7d8797b7a6c5ceb8a8dc832161a1c90c08e
by thakis[lld/mac] Don't strip explicit dylib also mentioned in LC_LINKER_OPTION
Noticed by Jez in D103499.
Differential Revision: https://reviews.llvm.org/D103521
|
 | lld/test/MachO/dead-strip-dylibs.s |
 | lld/MachO/Driver.cpp |
Commit
66a1ecd2cf905d6119477516601126f44be297a8
by thakis[lld/mac] Implement -needed_framework, -needed_library, -needed-l
These allow overriding dead_strip_dylibs.
Differential Revision: https://reviews.llvm.org/D103499
|
 | lld/MachO/InputFiles.h |
 | lld/MachO/Driver.cpp |
 | lld/test/MachO/dead-strip-dylibs.s |
 | lld/MachO/Options.td |
 | lld/MachO/Writer.cpp |
Commit
a5645513dba702216672bc31333e9c173b3a56c5
by thakis[lld/mac] Implement -dead_strip
Also adds support for live_support sections, no_dead_strip sections, .no_dead_strip symbols.
Chromium Framework 345MB unstripped -> 250MB stripped (vs 290MB unstripped -> 236M stripped with ld64).
Doing dead stripping is a bit faster than not, because so much less data needs to be processed:
% ministat lld_* x lld_nostrip.txt + lld_strip.txt N Min Max Median Avg Stddev x 10 3.929414 4.07692 4.0269079 4.0089678 0.044214794 + 10 3.8129408 3.9025559 3.8670411 3.8642573 0.024779651 Difference at 95.0% confidence -0.144711 +/- 0.0336749 -3.60967% +/- 0.839989% (Student's t, pooled s = 0.0358398)
This interacts with many parts of the linker. I tried to add test coverage for all added `isLive()` checks, so that some test will fail if any of them is removed. I checked that the test expectations for the most part match ld64's behavior (except for live-support-iterations.s, see the comment in the test). Interacts with: - debug info - export tries - import opcodes - flags like -exported_symbol(s_list) - -U / dynamic_lookup - mod_init_funcs, mod_term_funcs - weak symbol handling - unwind info - stubs - map files - -sectcreate - undefined, dylib, common, defined (both absolute and normal) symbols
It's possible it interacts with more features I didn't think of, of course.
I also did some manual testing: - check-llvm check-clang check-lld work with lld with this patch as host linker and -dead_strip enabled - Chromium still starts - Chromium's base_unittests still pass, including unwind tests
Implemenation-wise, this is InputSection-based, so it'll work for object files with .subsections_via_symbols (which includes all object files generated by clang). I first based this on the COFF implementation, but later realized that things are more similar to ELF. I think it'd be good to refactor MarkLive.cpp to look more like the ELF part at some point, but I'd like to get a working state checked in first.
Mechanical parts: - Rename canOmitFromOutput to wasCoalesced (no behavior change) since it really is for weak coalesced symbols - Add noDeadStrip to Defined, corresponding to N_NO_DEAD_STRIP (`.no_dead_strip` in asm)
Fixes PR49276.
Differential Revision: https://reviews.llvm.org/D103324
|
 | lld/MachO/InputSection.h |
 | lld/MachO/UnwindInfoSection.cpp |
 | lld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libc++abi.tbd |
 | lld/test/MachO/mh-header-link.s |
 | llvm/utils/gn/secondary/lld/MachO/BUILD.gn |
 | lld/MachO/CMakeLists.txt |
 | lld/MachO/SymbolTable.cpp |
 | lld/MachO/Writer.cpp |
 | lld/MachO/Config.h |
 | lld/MachO/SyntheticSections.h |
 | lld/test/MachO/sectcreate.s |
 | lld/test/MachO/dead-strip.s |
 | lld/MachO/ConcatOutputSection.cpp |
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/Options.td |
 | lld/MachO/Symbols.h |
 | lld/MachO/SyntheticSections.cpp |
 | lld/MachO/MapFile.cpp |
 | lld/MachO/SymbolTable.h |
 | lld/MachO/MarkLive.cpp |
 | lld/MachO/MarkLive.h |
 | lld/MachO/Driver.cpp |
 | lld/MachO/Symbols.cpp |
 | lld/MachO/UnwindInfoSection.h |
Commit
7ba4e96ede0fdc73a9d12e42e51f81589213f7a2
by hansang.bae[OpenMP] Use new task type/flag for taskwait depend events.
Differential Revision: https://reviews.llvm.org/D103464
|
 | openmp/runtime/src/kmp_taskdeps.cpp |
 | openmp/runtime/test/ompt/callback.h |
 | openmp/runtime/test/ompt/tasks/task_if0-depend.c |
Commit
5ecfdb51230c55f987bff86c52c7e57adb0eae4f
by thakis[lld/mac] try to fix tests after a5645513dba
My linux system doesn't like the `grep` for some reason, but FileCheck seems to work.
|
 | lld/test/MachO/dead-strip.s |
Commit
06e047227d71b2c1c477e280172abed0f1eed2c8
by Abhina.Sreeskantharajan[libcxx][NFC] Tidy up calculation of __nbuf in num_put::do_put, and add comments
In 07ef8e679621 and 3ed9f6ebdeeb, `__nbuf` started to diverge from the amount of space that was actually needed for the buffer. For 32-bit longs for example, we allocate a buffer that is one larger than needed. Moreover, it is no longer clear exactly where the extra +1 or +2 comes from - they're just numbers pulled from thin air. This PR cleans up how `__nbuf` is calculated, and adds comments to further clarify where each part comes from.
Specifically, it corrects the underestimation of the max size buffer needed that the above two commits had to compensate for. The root cause looks to be the use of signed type parameters to numeric_limits<>::digits. Since digits only counts non-sign bits, the calculation was acting as though (for a signed 64-bit type) the longest value we would print was 2^63 in octal. However, printing in octal treats values as unsigned, so it is actually 2^64. Thus, using unsigned types and changing the final +2 to a +1 is probably a better option.
Reviewed By: #libc, ldionne, Mordante
Differential Revision: https://reviews.llvm.org/D103339
|
 | libcxx/include/locale |
Commit
f7655f3df394d90a340dc09465fbb752bef4bae6
by jonathan.l.peyton[OpenMP] Fix improper printf format specifier
|
 | openmp/runtime/src/ompt-general.cpp |
Commit
fcfaed4ae6d718ebfe18eef7f5ddbef2a23ef413
by Adrian PrantlRemove redundant comparisons (NFC)
|
 | llvm/lib/IR/DebugInfo.cpp |
Commit
e598ab1c06dd663535f69a1a52116df1ca9024f4
by joker.ephAdd missing CMake dependency for mlir/lib/Reducer (NFC)
The `OptReductionPass.cpp` file depends on the TableGen generated `mlir/Reducer/Passes.h.inc` file.
|
 | mlir/lib/Reducer/CMakeLists.txt |
Commit
90f207a781518e6210d3c99ab35d7dfc8f84a292
by joker.ephFix CMake error: TableGen targets must be in the DEPENDS list instead of LINK_LIBS
|
 | mlir/lib/Reducer/CMakeLists.txt |
Commit
8349ac9aa944525e2da5ebd4c7a09b9a98aab0eb
by spatel[x86] add test for sext-of-setcc; NFC
D103462
|
 | llvm/test/CodeGen/X86/sext-vsetcc.ll |
Commit
ede3982792dfc6c00a4f185f88ce0e799e2545af
by spatel[SDAG] allow more cast folding for vector sext-of-setcc
This is a follow-up to D103280 that eases the use restrictions, so we can handle the motivating case from: https://llvm.org/PR50055
The loop code is adapted from similar use checks in ExtendUsesToFormExtLoad() and SliceUpLoad(). I did not see an easier way to filter out non-chain uses of load values.
Differential Revision: https://reviews.llvm.org/D103462
|
 | llvm/test/CodeGen/X86/sext-vsetcc.ll |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
0ec761c3fc2a4bf8319c6eb38e46f9a201b79141
by Raphael Isemann[lldb] Preserve type sugar when using SBValue::Dereference on C++ references
When checking for type properties we usually want to strip all kind of type sugar from the type. For example, sugar like Clang's ElaboratedType or typedefs rarely influence the fundamental behaviour of a type such as its byte size.
However we always need to preserve type sugar for everything else as it does matter for users that their variable of type `size_t` instead of `unsigned long` for example.
This patch fixes one such bug when trying to use the SBValue API to dereference a type.
Reviewed By: werat, shafik
Differential Revision: https://reviews.llvm.org/D103532
|
 | lldb/test/API/lang/cpp/dereferencing_references/TestCPPDereferencingReferences.py |
 | lldb/test/API/lang/cpp/dereferencing_references/Makefile |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
 | lldb/test/API/lang/cpp/dereferencing_references/main.cpp |
Commit
b532455ac7038bfb59b858a1bbcb6d2941f5dbcc
by joker.eph[MLIR] Fix Standalone dialect test to work in out-of-tree builds
When LLVM and MLIR are built as subprojects (via add_subdirectory), the CMake configuration that indicates where the MLIR libraries are is not necessarily in the same cmake/ directory as LLVM's configuration. This patch removes that assumption about where MLIRConfig.cmake is located.
(As an additional none, the %llvm_lib_dir substitution was never defined, and so find_package(MLIR) in the build was succeeding for other reasons.)
Reviewed By: stephenneuendorffer
Differential Revision: https://reviews.llvm.org/D103276
|
 | mlir/test/lit.site.cfg.py.in |
 | mlir/test/Examples/standalone/lit.local.cfg |
 | mlir/test/Examples/standalone/test.toy |
 | mlir/test/CMakeLists.txt |
Commit
d0e159334f9d1285ec35cf71465358c47141618c
by yitzhakmAdd matchers for gtest's ASSERT_THAT, EXPECT_THAT, ON_CALL and EXPECT_CALL
This patch adds support for matching gtest's ASSERT_THAT, EXPECT_THAT, ON_CALL and EXPECT_CALL macros.
Reviewed By: ymandel, hokein
Differential Revision: https://reviews.llvm.org/D103195
|
 | clang/unittests/ASTMatchers/GtestMatchersTest.cpp |
 | clang/lib/ASTMatchers/GtestMatchers.cpp |
 | clang/include/clang/ASTMatchers/GtestMatchers.h |
Commit
8c948b18e9d899a36e819a282ce60f196ab73376
by joker.ephFix -Wsign-compare warning (NFC)
|
 | mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp |
Commit
b0572abf72fd4aafbb56bc41350e41bdfd96cdde
by gclaytonImprove performance when parsing symbol tables in mach-o files.
Some larger projects were loading quite slowly with the current LLDB on macOS and macOS simulator builds. I did some instrument traces and found 3 main culprits: - a LLDB timer that was put into a function that was called too often - a std::set that was keeping track of the address of symbols that were already added - a unnamed function generator in ObjectFile that was going slow due to allocations
In order to see this in action I ran the latest LLDB on a large application with many frameworks using the following method:
(lldb) script import time; start_time = time.perf_counter() (lldb) file Large.app (lldb) script print(time.perf_counter() - start_time)
I first range "sudo purge" to clear the system file caches to simulate a cold startup of the debugger, followed by two iterations with warm file caches.
Prior to this fix I was seeing the following timings:
17.68 (cold) 14.56 (warm 1) 14.52 (warm 2)
After this fix I was seeing:
11.32 (cold) 8.43 (warm 1) 8.49 (warm 2)
Differential Revision: https://reviews.llvm.org/D103504
|
 | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp |
 | lldb/source/Core/Module.cpp |
 | lldb/source/Symbol/ObjectFile.cpp |
Commit
6745ffe4fa1c35778f88cffd671b7a7a936fb4d9
by xur[SampleFDO] New hierarchical discriminator for FS SampleFDO (ProfileData part)
This patch was split from https://reviews.llvm.org/D102246 [SampleFDO] New hierarchical discriminator for Flow Sensitive SampleFDO This is mainly for ProfileData part of change. It will load FS Profile when such profile is detected. For an extbinary format profile, create_llvm_prof tool will add a flag to profile summary section. For other format profiles, the users need to use an internal option (-profile-isfs) to tell the compiler that the profile uses FS discriminators.
This patch also simplified the bit API used by FS discriminators.
Differential Revision: https://reviews.llvm.org/D103041
|
 | llvm/include/llvm/CodeGen/MIRFSDiscriminator.h |
 | llvm/include/llvm/IR/DebugInfoMetadata.h |
 | llvm/lib/CodeGen/MIRFSDiscriminator.cpp |
 | llvm/include/llvm/ProfileData/SampleProfReader.h |
 | llvm/include/llvm/CodeGen/Passes.h |
 | llvm/lib/Target/X86/X86InsertPrefetch.cpp |
 | llvm/unittests/ProfileData/SampleProfTest.cpp |
 | llvm/lib/ProfileData/SampleProfWriter.cpp |
 | llvm/lib/CodeGen/TargetPassConfig.cpp |
 | llvm/test/Transforms/SampleProfile/fsafdo_test.ll |
 | llvm/include/llvm/ProfileData/SampleProf.h |
 | llvm/lib/ProfileData/SampleProfReader.cpp |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | llvm/test/Transforms/SampleProfile/Inputs/fsafdo.prof |
 | llvm/include/llvm/Support/Discriminator.h |
 | llvm/lib/ProfileData/SampleProf.cpp |
 | llvm/test/Transforms/SampleProfile/Inputs/fsafdo.extbinary.afdo |
Commit
644f722b369d9d7e0bef3694d11c48d7d333d36a
by jpienaar[mlir-lsp] Report range of potential identifier starting at location of diagnostic
Currently the diagnostics reports the file:line:col, but some LSP frontends require a non-empty range. Report either the range of an identifier that starts at location, or a range of 1. Expose the id location to range helper and reuse here.
Differential Revision: https://reviews.llvm.org/D103482
|
 | mlir/include/mlir/Parser/AsmParserState.h |
 | mlir/test/mlir-lsp-server/diagnostics.test |
 | mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp |
 | mlir/lib/Parser/AsmParserState.cpp |
Commit
cfe32dd03f1645d1fc28ae194f30c135a408fc41
by spatel[x86] add signed compare variant test for PR50055; NFC
|
 | llvm/test/CodeGen/X86/sext-vsetcc.ll |
Commit
1ed2e9b9a02f9cde9108233c045edde0d5893f34
by stefanp[NFC] Remove variable that was set but not used.
The buildbot ppc64le-lld-multistage-test has been failing because the variable Tag in Waymaking.h is set but not used. This patch removes that varaible.
|
 | llvm/include/llvm/ADT/Waymarking.h |
Commit
70804f2a2f7b87227a873cd6d8852ad295068e79
by browneeeFix dfsan handling of musttail calls.
Without this change, a callsite like: [[clang::musttail]] return func_call(x); will cause an error like: fatal error: error in backend: failed to perform tail call elimination on a call site marked musttail due to DFSan inserting instrumentation between the musttail call and the return.
Reviewed By: stephan.yichao.zhao
Differential Revision: https://reviews.llvm.org/D103542
|
 | llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp |
 | llvm/test/Instrumentation/DataFlowSanitizer/musttailcall.ll |
Commit
595b1683b79be089c3f72e7b3dcee4d1a9f6327b
by dblaikie[llvm-dwp] Skip type unit debug info sections
This patch makes llvm-dwp skip debug info sections that may not be encoding a compile unit. In DWARF5, debug info sections are also used for type units. As in preparation to support type units, make llvm-dwp aware of other uses of debug info sections but skip them for now.
The patch first records all .debug_info sections, then goes through them one by one and records the cu debug info section for writing the index unit, and copies that section to the final dwp output info section. If it's not a compile unit, skip.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D102312
|
 | llvm/test/tools/llvm-dwp/X86/no_cu_found.s |
 | llvm/test/tools/llvm-dwp/X86/invalid_tu_header_length.s |
 | llvm/test/tools/llvm-dwp/X86/invalid_cu_header_length.s |
 | llvm/test/tools/llvm-dwp/X86/multiple_debug_info_sections_in_dwp.s |
 | llvm/test/tools/llvm-dwp/X86/wrong-unit-type-info-v4.s |
 | llvm/test/tools/llvm-dwp/X86/cu_and_tu_info_section_v5.s |
 | llvm/tools/llvm-dwp/llvm-dwp.cpp |
 | llvm/test/tools/llvm-dwp/X86/wrong-unit-type-info-v5.s |
Commit
0718ac706d4df719a0f019d1c0c3050c96ac2b8b
by spatel[SDAG] allow cast folding for vector sext-of-setcc with signed compare
This extends 434c8e013a2c and ede3982792df to handle signed predicates by sign-extending the setcc operands.
This is not shown directly in https://llvm.org/PR50055 , but the pattern is visible by changing the unsigned convert to signed in the source code.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/X86/sext-vsetcc.ll |
Commit
0289a2692e0e1b6b846f0627262d15daa58160ac
by riddleriver[mlir] Add support for filtering patterns based on debug names and labels
This revision allows for attaching "debug labels" to patterns, and provides to FrozenRewritePatternSet for filtering patterns based on these labels (in addition to the debug name of the pattern). This will greatly simplify the ability to write tests targeted towards specific patterns (in cases where many patterns may interact), will also simplify debugging pattern application by observing how application changes when enabling/disabling specific patterns.
To enable better reuse of pattern rewrite options between passes, this revision also adds a new PassUtil.td file to the Rewrite/ library that will allow for passes to easily hook into a common interface for pattern debugging. Two options are used to seed this utility, `disable-patterns` and `enable-patterns`, which are used to enable the filtering behavior indicated above.
Differential Revision: https://reviews.llvm.org/D102441
|
 | mlir/include/mlir/IR/PatternMatch.h |
 | mlir/lib/Transforms/Canonicalizer.cpp |
 | mlir/test/Transforms/test-canonicalize-filter.mlir |
 | mlir/include/mlir/Transforms/Passes.td |
 | mlir/test/Pass/pipeline-options-parsing.mlir |
 | mlir/include/mlir/Rewrite/FrozenRewritePatternSet.h |
 | mlir/include/mlir/Rewrite/PassUtil.td |
 | mlir/lib/Rewrite/FrozenRewritePatternSet.cpp |
 | mlir/include/mlir/Pass/PassOptions.h |
 | mlir/docs/PatternRewriter.md |
 | mlir/test/lib/Dialect/Test/TestDialect.cpp |
Commit
3f70b4e0336001ca379490d1481024ddb87a3501
by jpienaar[mlir-lsp] Avoid empty range diagnostic
|
 | mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp |
Commit
8beaca8c1493f576431c3687329860e918616cd9
by erich.keaneRemove unused function from a previous iteration of unique-stable-name
|
 | clang/lib/Sema/TreeTransform.h |
Commit
fa51c5af5d5de25a7824a939e90734ae5ca5448d
by riddleriver[mlir] Resolve TODO and use the pass argument instead of the TypeID for registration
This simplifies various pieces of code that interact with the pass registry, e.g. this removes the need to register passes to get accurate pass pipelines descriptions when generating crash reproducers.
Differential Revision: https://reviews.llvm.org/D101880
|
 | mlir/include/mlir/Pass/PassRegistry.h |
 | mlir/test/lib/Pass/TestPassManager.cpp |
 | mlir/include/mlir/Pass/Pass.h |
 | mlir/lib/Pass/PassRegistry.cpp |
Commit
6e2d3049d25bcd96af7b0af8d572f3a7ccefecde
by dblaikie[llvm-dwp] Adding support for v5 index writing
This patch adds general support for DWARFv5 index writing. In particular, this means only allowing inputs with one version, either DWARFv5 or DWARFv4.
This patch adds the .debug_macro section as an example, but the DWARFv5 type support and loc and rangelists are still missing (and upcoming).
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D102315
|
 | llvm/test/tools/llvm-dwp/X86/incompatible_cu_index_versions.s |
 | llvm/test/tools/llvm-dwp/X86/unsupported_tu_index_version.s |
 | llvm/test/tools/llvm-dwp/X86/debug_macro_v5.s |
 | llvm/test/tools/llvm-dwp/X86/info-v5.s |
 | llvm/tools/llvm-dwp/llvm-dwp.cpp |
 | llvm/test/tools/llvm-dwp/X86/unsupported_cu_index_version.s |
Commit
316da543af14fb4b40ef0377fe770f430745f5ea
by dblaikie[llvm-dwp] Add support for DWARFv5 type units ...
This patch adds support for DWARFv5 type units: parsing from the .debug_info section, and writing index to the type unit index. Previously, the type units were part of the .debug_types section which is no longer used in DWARFv5.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D101818
|
 | llvm/test/tools/llvm-dwp/X86/incompatible_tu_index_version.s |
 | llvm/test/tools/llvm-dwp/X86/missing_tu_index.test |
 | llvm/tools/llvm-dwp/llvm-dwp.cpp |
 | llvm/test/tools/llvm-dwp/Inputs/type_dedup_v5/b.s |
 | llvm/test/tools/llvm-dwp/X86/cu_and_tu_info_section_v5.s |
 | llvm/test/tools/llvm-dwp/Inputs/type_dedup_v5/a.s |
 | llvm/test/tools/llvm-dwp/X86/tu_units_v5.s |
 | llvm/test/tools/llvm-dwp/X86/unsupported_tu_index_version.s |
 | llvm/test/tools/llvm-dwp/X86/type_dedup_v5.test |
Commit
de51c48ed3e0934855b107d4524f49c5edfcb3cc
by dblaikie[llvm-dwp] Add support for rnglists and loclists
This patch updates llvm-dwp to include rnglists and loclists when parsing debug sections.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D101894
|
 | llvm/tools/llvm-dwp/llvm-dwp.cpp |
 | llvm/test/tools/llvm-dwp/X86/rnglists.s |
 | llvm/test/tools/llvm-dwp/X86/loclists.s |
Commit
c89dff5855bb32d47751cce087537c2b12a90f1b
by riddleriver[mlir][NFC] Split the non-templated bits out of IROperand into a base class
This removes the need to define the derived Operand class before the derived Value class. The major benefit of this refactoring is that we no longer need the OpaqueValue class, as OpOperand can now be defined after Value. As part of this refactoring the BlockOperand and OpOperand classes are moved out of UseDefLists.h and to more suitable locations in BlockSupport and Value. After this change, UseDefLists.h is almost entirely composed of generic use def utilities.
Differential Revision: https://reviews.llvm.org/D103353
|
 | mlir/include/mlir/IR/UseDefLists.h |
 | mlir/include/mlir/IR/BlockSupport.h |
 | mlir/include/mlir/IR/Value.h |
 | mlir/lib/IR/Value.cpp |
Commit
05d164b25c403c0ab9a114f25e750c6410d4d86c
by Louis DionneRevert "[libc++] NFC: Move unwrap_iter to its own header"
This reverts commit 924ea3bb53 *again*, this time because it broke the LLDB build with modules. We need to figure out what's up with the libc++ modules build once and for all.
Differential Revision: https://reviews.llvm.org/D103369
|
 | libcxx/include/CMakeLists.txt |
 | libcxx/include/module.modulemap |
 | libcxx/include/__algorithm/unwrap_iter.h |
 | libcxx/include/algorithm |
Commit
01ba355268071bea0b9432b51b6a66b5be159da8
by llvmgnsyncbot[gn build] Port 05d164b25c40
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
13659f48a1d7814fe893d2383acdc0b0313740a9
by richardPR50337, PR50561: Fix determination of whether a template parameter list contains constrained parameters.
|
 | clang/lib/AST/DeclTemplate.cpp |
 | clang/test/SemaTemplate/concepts.cpp |
Commit
c729f2a48a6ef6b20554494c5630082c89c3680c
by angandhiDifferential Revision: https://reviews.llvm.org/D99812
|
 | llvm/lib/Target/PowerPC/PPCISelLowering.h |
 | llvm/lib/Target/PowerPC/GISel/PPCCallLowering.h |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-ret.ll |
 | llvm/lib/Target/PowerPC/GISel/PPCCallLowering.cpp |
 | llvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-args-lowering.ll |
Commit
344e919b1a33cd69fe023cbe5a49bbdf4f5ea037
by minyihh[CodeGen][NFC] Remove unused virtual function
`TargetFrameLowering::emitCalleeSavedFrameMoves` with 4 arguments is not used anywhere in CodeGen. Thus it shouldn't be exposed as a virtual function. NFC.
Differential Revision: https://reviews.llvm.org/D103328
|
 | llvm/lib/Target/X86/X86FrameLowering.h |
 | llvm/lib/Target/M68k/M68kFrameLowering.h |
 | llvm/lib/Target/M68k/M68kFrameLowering.cpp |
 | llvm/include/llvm/CodeGen/TargetFrameLowering.h |
Commit
d8e0ae9a76a62bdc6117630d59bf9967ac9bb4ea
by erich.keane[SYCL] Fix __builtin_sycl_unique_stable_name to work on windows/spir
In the case where the device is an itanium target, and the host is a windows target, we were getting the names wrong, since in the itanium case we filter by lambda-signature.
The fix is to always filter by the signature rather than just on non-windows builds. I considered doing the reverse (that is, checking the aux-triple), but doing so would result in duplicate lambda mangling numbers (from linux reusing the same number for different signatures).
|
 | clang/lib/AST/ASTContext.cpp |
 | clang/test/CodeGenSYCL/unique_stable_name_windows_diff.cpp |
Commit
6c2a4e28f4d1c0f525c53302c08808c1b4f8073b
by kadircet[clangd] TUScheduler uses last active file for file-less queries
This enables requests like workspaceSymbols to be dispatched using the file user was most recently operating on. A replacement for D103179.
Differential Revision: https://reviews.llvm.org/D103476
|
 | clang-tools-extra/clangd/TUScheduler.cpp |
 | clang-tools-extra/clangd/TUScheduler.h |
 | clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp |
Commit
dc10bf1a4ed0b34b27284b5260ce5c6cc132bd6f
by kadircet[clangd][Protocol] Drop optional from WorkspaceEdit::changes
This is causing weird code patterns in various places and I can't see any difference between None and empty change list. Neither in the current use cases nor in the spec.
Differential Revision: https://reviews.llvm.org/D103449
|
 | clang-tools-extra/clangd/Protocol.h |
 | clang-tools-extra/clangd/Protocol.cpp |
 | clang-tools-extra/clangd/Diagnostics.cpp |
 | clang-tools-extra/clangd/ClangdLSPServer.cpp |
Commit
9f5d783d467523d6218a63883b45192c8a875c96
by llvm-dev[X86][SSE] combineScalarToVector - only reuse broadcasts for scalar_to_vector if the source operands scalar types match
We were hitting an issue when the scalar_to_vector source was being implicitly truncated (in this case to i8 to vXi1) but we were also using the i8 source in a broadcast to a vXi8 value.
Fixes PR50374
|
 | llvm/test/CodeGen/X86/pr50374.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
e65242e37a7284dc2f24c7f686867da665af3a63
by walter erquinigo[NFC][trace][intel-pt] small test fixes
These tests started failing after a change in the disassembler. The fix is pretty simple though.
|
 | lldb/test/API/commands/trace/TestTraceDumpInstructions.py |
 | lldb/source/Target/Trace.cpp |
Commit
07c2a912ddf1641b969fdbae3418f77c362f67c6
by rnkAdd a .mailmap entry for my two email addresses
I'm using rnk@google.com as the canonical email for now, but I guess I can always update .mailmap in the future.
|
 | .mailmap |
Commit
9e9ac4138890425b92d2196344ab59305caa32d7
by kadircet[clangd] Drop optional on ExternalIndexSpec
Differential Revision: https://reviews.llvm.org/D100308
|
 | clang-tools-extra/clangd/Config.h |
 | clang-tools-extra/clangd/index/ProjectAware.cpp |
 | clang-tools-extra/clangd/ConfigCompile.cpp |
 | clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp |
 | clang-tools-extra/clangd/index/ProjectAware.h |
 | clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp |
Commit
b73a1e67782bb56552c0f343cebe93985a85293d
by amy.zhuang[NFC] Test commit. Fix typos.
|
 | mlir/lib/Analysis/AffineAnalysis.cpp |
Commit
b5dd421a3afa02907777fddf61073274e2a4aa9a
by phosek[Fuchsia] Use libc++abi on Windows in Fuchsia toolchain
Don't use vcruntime, this makes our toolchain more hermetic and avoids some compiler errors we've encountered in compiler-rt.
Differential Revision: https://reviews.llvm.org/D103555
|
 | clang/cmake/caches/Fuchsia-stage2.cmake |
Commit
07a6beb402150d25ec7c93a5747520ac2804731d
by llvm-project[Clang][OpenMP] Emit dependent PreInits before directive.
The PreInits of a loop transformation (atm moment only tile) include the computation of the trip count. The trip count is needed by any loop-associated directives that consumes the transformation-generated loop. Hence, we must ensure that the PreInits of consumed loop transformations are emitted with the consuming directive.
This is done by addinging the inner loop transformation's PreInits to the outer loop-directive's PreInits. The outer loop-directive will consume the de-sugared AST such that the inner PreInits are not emitted twice. The PreInits of a loop transformation are still emitted directly if its generated loop(s) are not associated with another loop-associated directive.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D102180
|
 | clang/test/OpenMP/tile_codegen.cpp |
 | clang/include/clang/AST/StmtOpenMP.h |
 | clang/test/OpenMP/tile_codegen_for_dependent.cpp |
 | clang/lib/AST/StmtOpenMP.cpp |
 | clang/test/OpenMP/tile_codegen_tile_for.cpp |
 | clang/lib/Sema/SemaOpenMP.cpp |
 | clang/lib/CodeGen/CGStmtOpenMP.cpp |
Commit
3e5ddb83e387281bc9b3dea8766bcc633a6fcee5
by gandhi21299Revert "Differential Revision: https://reviews.llvm.org/D99812"
This reverts commit c729f2a48a6ef6b20554494c5630082c89c3680c.
|
 | llvm/lib/Target/PowerPC/GISel/PPCCallLowering.cpp |
 | llvm/lib/Target/PowerPC/GISel/PPCCallLowering.h |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-args-lowering.ll |
 | llvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-ret.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.h |
Commit
875ff8e059b73f65f5ad08d416a0a9caf0673d1a
by Louis Dionne[libc++] Enable tests for the experimental library by default
This matches the fact that we build the experimental library by default. Otherwise, by default we'd be building the library but not testing it, which is inconsistent.
Differential Revision: https://reviews.llvm.org/D102109
|
 | libcxx/utils/libcxx/test/params.py |
 | libunwind/test/lit.site.cfg.in |
 | libcxx/test/configs/libcxx-trunk-static.cfg.in |
 | libcxxabi/test/lit.site.cfg.in |
Commit
1c5ff0b03f4e5b03619f58634396b5370d61b086
by gandhi21299[PowerPC] [GlobalISel] Implementation of formal arguments lowering in the IRTranslator for the PPC backend
Differential Revision: https://reviews.llvm.org/D99812
|
 | llvm/lib/Target/PowerPC/GISel/PPCCallLowering.h |
 | llvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-ret.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/lib/Target/PowerPC/PPCISelLowering.h |
 | llvm/lib/Target/PowerPC/GISel/PPCCallLowering.cpp |
 | llvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-args-lowering.ll |
Commit
60ce8babf77e65836d844741fbe50f297ad00781
by davelee.com[coro] Preserve scope line for compiler generated functions
Coro-split functions with an active suspend point have their scope line set to the line of the suspend point. However for compiler generated functions, this results in debug info with unconventional results: a file named `<compiler-generated>` with a non-zero line number. The convention for `<compiler-generated>` is that the line number is zero.
This change propagates the scope line only for non-compiler generated functions.
Differential Revision: https://reviews.llvm.org/D102412
|
 | llvm/lib/Transforms/Coroutines/CoroSplit.cpp |
 | llvm/test/Transforms/Coroutines/coro-async.ll |
Commit
c980d93d91280a8e0a6618ece1960bb71c45d950
by i[MC] Change "unexpected tokens" to "expected newline" and remove unneeded "in .xxx directive"
|
 | llvm/test/MC/COFF/cv-fpo-errors.s |
 | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp |
Commit
aba67ba7840a771262ddc72e090bd653170ff85a
by i[MC] Delete unneeded MCAsmParser &Parser
|
 | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp |
Commit
effb87dfa810a28e763f914fe3e6e984782cc846
by i[profile] Add -fprofile-instr-generate tests for weak definition and various linkages
|
 | compiler-rt/test/profile/Linux/coverage-weak-lld.cpp |
 | compiler-rt/test/profile/Linux/coverage-linkage-lld.cpp |
 | compiler-rt/test/profile/Linux/coverage-linkage.cpp |
 | compiler-rt/test/profile/Windows/coverage-linkage-lld.cpp |
 | compiler-rt/test/profile/Windows/coverage-weak-lld.cpp |
 | compiler-rt/test/profile/Windows/coverage-linkage.cpp |
Commit
87c43f3aa99d778755c7f5420e955885f855ecad
by i[InstrProfiling] Delete linkage/visibility toggling for Windows
The linkage/visibility of `__profn_*` variables are derived from the profiled functions.
extern_weak => linkonce available_externally => linkonce_odr internal => private extern => private _ => unchanged
The linkage/visibility of `__profc_*`/`__profd_*` variables are derived from `__profn_*` with linkage/visibility wrestling for Windows.
The changes can be folded to the following without changing semantics.
``` if (TT.isOSBinFormatCOFF() && !NeedComdat) { Linkage = GlobalValue::InternalLinkage; Visibility = GlobalValue::DefaultVisibility; } ```
That said, I think we can just delete the code block.
An extern/internal function will now use private `__profc_*`/`__profd_*` variables, instead of internal ones. This saves some symbol table entries.
A non-comdat {linkonce,weak}_odr function will now use hidden external `__profc_*`/`__profd_*` variables instead of internal ones. There is potential object file size increase because such symbols need `/INCLUDE:` directives. However such non-comdat functions are rare (note that non-comdat weak definitions don't prevent duplicate definition error).
The behavior changes match ELF.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D103355
|
 | llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp |
 | compiler-rt/test/profile/Windows/coverage-weak-lld.cpp |
 | llvm/test/Instrumentation/InstrProfiling/platform.ll |
 | llvm/test/Instrumentation/InstrProfiling/linkage.ll |
 | llvm/test/Instrumentation/InstrProfiling/profiling.ll |
Commit
9d070b2f4889887f9ce497592ef01df7b9601a1c
by akhuangRecommit "Fix tmp files being left on Windows builds." with a fix for incorrect std::string use. (Also remove redundant call to RemoveFileOnSignal.)
Clang writes object files by first writing to a .tmp file and then renaming to the final .obj name. On Windows, if a compile is killed partway through the .tmp files don't get deleted.
Currently it seems like RemoveFileOnSignal takes care of deleting the tmp files on Linux, but on Windows we need to call setDeleteDisposition on tmp files so that they are deleted when closed.
This patch switches to using TempFile to create the .tmp files we write when creating object files, since it uses setDeleteDisposition on Windows. This change applies to both Linux and Windows for consistency.
Differential Revision: https://reviews.llvm.org/D102876
This reverts commit 20797b129f844d4b12ffb2b12cf33baa2d42985c.
|
 | clang/include/clang/Frontend/CompilerInstance.h |
 | llvm/lib/Support/Path.cpp |
 | clang/lib/Frontend/CompilerInstance.cpp |
 | llvm/lib/Support/Windows/Path.inc |
Commit
2541075c22aec261e45e2c4edba65b29ed472d2e
by jyknightFix llvm/test/tools/llvm-dwp/X86/type_dedup_v5.test
It was writing files to the source dir after 316da543af14fb4b40ef0377fe770f430745f5ea.
|
 | llvm/test/tools/llvm-dwp/X86/type_dedup_v5.test |
Commit
f976b9997ee55a130b139efe7b6e6f3b0384016b
by zeratul976[clangd] Improve resolution of static method calls in HeuristicResolver
Differential Revision: https://reviews.llvm.org/D101741
|
 | clang-tools-extra/clangd/HeuristicResolver.cpp |
 | clang-tools-extra/clangd/unittests/InlayHintTests.cpp |
Commit
d8b9ed72ee838145a5c48d8b6fdccd00dc200c42
by efriedma[AArch64] Add regression test for missed bfi optimization.
(See https://reviews.llvm.org/D60358 for the transform that breaks this case.)
|
 | llvm/test/CodeGen/AArch64/bitfield-insert.ll |
Commit
b2c8bcbab8a44c4582632845697b9425c3200230
by yitzhakmFix "control reaches end of non-void function" warnings on ppc64le
Warnings can be found here: https://lab.llvm.org/buildbot/#/builders/76/builds/2640
Reviewed By: ymandel
Differential Revision: https://reviews.llvm.org/D103565
|
 | clang/lib/ASTMatchers/GtestMatchers.cpp |
Commit
64e5a3bbdde25af0fd9f2b9b8539e23f36c80601
by llvm-project[clang] Fix fail of OpenMP/tile_codegen_tile_for.cpp.
Clang's version string can be customized using CLANG_VENDOR which the test did not consider. Change the test to accept any version string.
|
 | clang/test/OpenMP/tile_codegen_tile_for.cpp |