Commit
28e8695785083926b97e2f99aa12241954b46f06
by nagy.h.mostafa[MLIR] NFC - Fix indentation in examples in LoopOps.td
|
 | mlir/include/mlir/Dialect/LoopOps/LoopOps.td |
Commit
c2e272f8cf76ec97f675e0dfdada75445bbee5c5
by epastor[ms] [llvm-ml] Improve data support, adding names and complex initializers.
Summary: Add support for ?, DUP, and string initializers, as well as MASM syntax for named data locations.
Reviewers: rnk, thakis
Reviewed By: thakis
Subscribers: merge_guards_bot, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73226
|
 | llvm/lib/MC/MCParser/MasmParser.cpp |
 | llvm/test/tools/llvm-ml/basic_data.test |
Commit
77a2744fa50b80c73d68356af010a002cc2a3d7f
by Jonas Devlieghere[lldb/Debugger] Remove macros formerly used by property definitions
The DEFAULT_ were used in property definitions which have since been moved to CoreProperties.td.
|
 | lldb/source/Core/Debugger.cpp |
Commit
c4093db3dac4ef09fb175f4aa79c8a422da70771
by Jonas Devlieghere[lldb] Color the current PC marker
Differential revision: https://reviews.llvm.org/D75073
|
 | lldb/source/Core/CoreProperties.td |
Commit
9fe769a961dc8e3ce7d967ea0e07a4f0e5fac6e9
by epastorRevert "[ms] [llvm-ml] Improve data support, adding names and complex initializers."
This reverts commit c2e272f8cf76ec97f675e0dfdada75445bbee5c5, which broke builds.
|
 | llvm/test/tools/llvm-ml/basic_data.test |
 | llvm/lib/MC/MCParser/MasmParser.cpp |
Commit
a8a4f99afb7c1f527ae9d1b274a67d0d3f2c3c4c
by kparzysz[Hexagon] Lower bitcast of a vector predicate
This patch lowers bitcast of vector predicate of type v32i1/v64i1 to i32/i64 type.
|
 | llvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-hvx-pred-bitcast.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.h |
Commit
6f87b162e636b0cfe590758621a606d2bc68424f
by rtereshin[MachineVerifier] Doing ::calcRegsPassed in RPO: ~35% faster MV, NFC
Depending on the target, test suite, pipeline config and perhaps other factors machine verifier when forced on with -verify-machineinstrs can increase compile time 2-2.5 times over (Release, Asserts On), taking up ~60% of the time. An invaluable tool, it significantly slows down machine verifier-enabled testing.
Nearly 75% of its time MachineVerifier spends in the calcRegsPassed method. It's a classic forward dataflow analysis executed over sets, but visiting MBBs in arbitrary order. We switch that to RPO here.
This speeds up MachineVerifier by about 35%, decreasing the overall compile time with -verify-machineinstrs by 20-25% or so.
calcRegsPassed itself gets 2x faster here.
All measured on a large suite of shaders targeting a number of GPUs.
Reviewers: bogner, stoklund, rudkx, qcolombet
Reviewed By: bogner
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75032
|
 | llvm/lib/CodeGen/MachineVerifier.cpp |
Commit
95291a0e34c74d9be0ad216465a2a2e9db9610d4
by epastorReland "[ms] [llvm-ml] Improve data support, adding names and complex initializers."
This reverts commit 9fe769a961dc8e3ce7d967ea0e07a4f0e5fac6e9, and re-lands commit c2e272f8cf76ec97f675e0dfdada75445bbee5c5.
Summary: Add support for ?, DUP, and string initializers, as well as MASM syntax for named data locations.
This version avoids the use of a C++17-only feature, if-statements with initializer.
Reviewers: rnk, thakis
Reviewed By: thakis
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73226
|
 | llvm/test/tools/llvm-ml/basic_data.test |
 | llvm/lib/MC/MCParser/MasmParser.cpp |
Commit
820df6e679143786d41808b7bfc9ad023ed217d2
by kparzysz[Hexagon] Lower vector predicate store
This patch lowers store of vector predicate of type v128i1.
|
 | llvm/test/CodeGen/Hexagon/store-vector-pred.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.h |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp |
 | llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp |
Commit
7f9f027c62623bff79730cd30d1a8a534e2ddb06
by Jonas Devlieghere[lldb/Test] Update TestDisassemblyFormat for new format
|
 | lldb/test/Shell/Settings/TestDisassemblyFormat.test |
Commit
df8dda67ed03f7d7ba3d9475556ab01946386852
by gclaytonAdd methods to data extractor for extracting bytes and fixed length C strings.
Summary: These modificaitons will be used in D74883.
Fixed length C strings can have trailing NULLs or sometimes spaces (BSD archive files), so the fixed length C string defaults to stripping trailing NULLs, but can have the arguments specify to remove one or more kinds of spaces if needed. This is used to extract fixed length C strings from ELF NOTEs in D74883.
Reviewers: labath, dblaikie, aprantl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74991
|
 | llvm/lib/Support/DataExtractor.cpp |
 | llvm/unittests/Support/DataExtractorTest.cpp |
 | llvm/include/llvm/Support/DataExtractor.h |
Commit
c93112dc4f745b0455addb54bfe1c2f79b827c6d
by zoecarverValidate argument passed to __builtin_frame_address and __builtin_return_address
Verifies that the argument passed to __builtin_frame_address and __builtin_return_address is within the range [0, 0xFFFF].
|
 | clang/test/Sema/builtin-stackaddress.c |
 | clang/lib/Sema/SemaChecking.cpp |
Commit
cf9dae122e04f015424aff6e7706430161b5e396
by bmahjour[NFC] [DA] Refactoring getIndexExpressionsFromGEP
Summary: This patch moves the getIndexExpressionsFromGEP function from polly into ScalarEvolution so that both polly and DependenceAnalysis can use it for the purpose of subscript delinearization when the array sizes are not parametric.
Authored By: bmahjour
Reviewer: Meinersbur, sebpop, fhahn, dmgreen, grosser, etiotto, bollu
Reviewed By: Meinersbur
Subscribers: hiraditya, arphaman, Whitney, ppc-slack, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73995
|
 | polly/lib/Support/ScopHelper.cpp |
 | polly/lib/Analysis/ScopBuilder.cpp |
 | llvm/include/llvm/Analysis/ScalarEvolution.h |
 | polly/include/polly/Support/ScopHelper.h |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
698078257285a044110620d7dab2fb4451a3fa29
by zoecarverRevert "Validate argument passed to __builtin_frame_address and __builtin_return_address"
This reverts commit c93112dc4f745b0455addb54bfe1c2f79b827c6d.
|
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/test/Sema/builtin-stackaddress.c |
Commit
eefda18227a2faeacbd5420cb482fa8b5836283b
by medismail.bennani[lldb/Plugins] Move SBTarget::GetExtendedCrashInformation to SBProcess
This patch moves the SB API method GetExtendedCrashInformation from SBTarget to SBProcess since it only makes sense to call this method on a sane process which might not be the case on a SBTarget object.
It also addresses some feedbacks received after landing the first patch for the 'crash-info' feature.
Differential Revision: https://reviews.llvm.org/D75049
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/bindings/interface/SBTarget.i |
 | lldb/source/Commands/CommandObjectProcess.cpp |
 | lldb/test/API/functionalities/process_crash_info/main.c |
 | lldb/bindings/interface/SBProcess.i |
 | lldb/source/API/SBTarget.cpp |
 | lldb/include/lldb/Target/Platform.h |
 | lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp |
 | lldb/include/lldb/API/SBProcess.h |
 | lldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py |
 | lldb/include/lldb/API/SBTarget.h |
 | lldb/include/lldb/API/SBStructuredData.h |
 | lldb/source/API/SBProcess.cpp |
 | lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h |
Commit
0368997402ae5f62efc83ec7b6f9052e01916943
by alexbrachetmialot[libc] [UnitTest] Create death tests
Summary: This patch adds `EXPECT_EXITS` and `EXPECT_DEATH` macros for testing exit codes and deadly signals. They are less convoluted than their analogs in GTEST and don't have matchers but just take an int for either the exit code or the signal respectively. Nor do they have any regex match against the stdout/stderr of the child process.
Reviewers: sivachandra, gchatelet
Reviewed By: sivachandra
Subscribers: mgorny, MaskRay, tschuett, libc-commits
Differential Revision: https://reviews.llvm.org/D74665
|
 | libc/test/src/signal/raise_test.cpp |
 | libc/cmake/modules/LLVMLibCRules.cmake |
 | libc/utils/testutils/ExecuteFunctionUnix.cpp |
 | libc/utils/testutils/ExecuteFunction.h |
 | libc/utils/testutils/CMakeLists.txt |
 | libc/utils/UnitTest/Test.cpp |
 | libc/utils/CMakeLists.txt |
 | libc/utils/UnitTest/Test.h |
Commit
0ed4744bb511baea08652491aaba4131bc3d676f
by jay.foadAMDGPU/GlobalISel: Lower 64-bit uaddo/usubo
Summary: Add more test cases for signed and unsigned add/sub with overflow.
Reviewers: arsenm, rampitec, kerbowa
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75051
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddo.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubo.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddo.mir |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
Commit
a5fa77888243beede98959ced17596b380e8de59
by craig.topper[LegalizeTypes] Scalarize non-byte sized loads in WidenRecRes_Load and SplitVecResLoad
Should fix PR42803 and PR44902
Differential Revision: https://reviews.llvm.org/D74590
|
 | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll |
 | llvm/test/CodeGen/X86/load-local-v3i1.ll |
Commit
841be9854c496adb1944fbf33af055814366ec86
by Jonas Devlieghere[lldb] Color the line marker
Highlight the color marker similar to what we do for the column marker. The default color matches the color of the current PC marker (->) in the default disassembly format.
Differential revision: https://reviews.llvm.org/D75070
|
 | lldb/include/lldb/Core/Debugger.h |
 | lldb/source/Core/SourceManager.cpp |
 | lldb/source/Core/CoreProperties.td |
 | lldb/source/Core/Debugger.cpp |
 | lldb/test/API/source-manager/TestSourceManager.py |
 | lldb/test/Shell/Settings/TestLineMarkerColor.test |
Commit
e6f9cb025cd765f422b51d01f4a5714db788b3a7
by n.james93[docs] dump_ast_matchers strips internal::(Bindable)?Matcher from Result_type
Summary: Remove `internal::Matcher` and `internal::BindableMatcher` from Result Type when dumping AST Matchers
Reviewers: joerg, gribozavr2, aaron.ballman
Reviewed By: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75046
|
 | clang/docs/LibASTMatchersReference.html |
 | clang/docs/tools/dump_ast_matchers.py |
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
Commit
edc4f4c9c9d90b2a4f8831ba4c873f08eaa5395a
by Jason MolendaUnwind past an interrupt handler correctly on arm or at pc==0
Fix RegisterContextLLDB::InitializeNonZerothFrame so that it will fetch a FullUnwindPlan instead of falling back to the architectural default unwind plan -- GetFullUnwindPlan knows how to spot a jmp 0x0 that results in a fault, which may be the case when we see a trap handler on the stack.
Fix RegisterContextLLDB::SavedLocationForRegister so that when the pc value is requested from a trap handler frame, where we have a complete register context available to us, don't provide the Return Address register (lr) instead of the pc. We have an actual pc value here, and it's pointing to the instruction that faulted.
Differential revision: https://reviews.llvm.org/D75007 <rdar://problem/59416588>
|
 | lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp |
Commit
915e7699243726d001f9ab4e8fa2380a5e57de56
by smeenai[arcconfig] Default base to previous revision
When you run `arc diff`, arc defaults to uploading all the changes you have against the upstream branch into a single patch. This is almost never what you want for stacked commits (patch series); you only want to submit the changes done by the current patch. It's also come up as a point of confusion in the Phabricator vs. GitHub PRs discussion, for example. Configure arc to only upload your current patch by default, which I think is a much more suitable default for LLVM developers.
Differential Revision: https://reviews.llvm.org/D74990
|
 | .arcconfig |
Commit
e34ddc09f464667b5f3a49bf60255e89041ddf44
by smeenai[arcconfig] Delete subproject arcconfigs
From https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/:
> An .arcconfig file is a JSON file which you check into your project's root.
I've done some experimentation, and it looks like the subproject .arcconfigs just get ignored, as the documentation says. Given that we're fully on the monorepo now, it's safe to remove them.
Differential Revision: https://reviews.llvm.org/D74996
|
 | libunwind/.arcconfig |
 | polly/.arcconfig |
 | parallel-libs/.arcconfig |
 | compiler-rt/.arcconfig |
 | libcxx/.arcconfig |
 | lld/.arcconfig |
 | clang/.arcconfig |
 | debuginfo-tests/.arcconfig |
 | libcxxabi/.arcconfig |
 | pstl/.arcconfig |
 | lldb/.arcconfig |
 | clang-tools-extra/.arcconfig |
 | openmp/.arcconfig |
 | llvm/.arcconfig |
Commit
03dd205c1516d9930a80101a7e0a6793af47ec9e
by joergAdjust max_align_t handling
Depend on the compiler to provide a correct implementation of max_align_t. If __STDCPP_NEW_ALIGNMENT__ is missing and C++03 mode has been explicitly enabled, provide a minimal fallback in <new> as alignment of the largest primitive types.
|
 | libcxx/include/cstddef |
 | libcxx/include/stddef.h |
 | libcxx/include/new |
Commit
4e45ef4d77b74350ea5a64a216b046ea6be1b96f
by joergPrefer PATH_MAX to MAXPATHLEN
The former is part of POSIX and requires less heavy headers. They are practically functionally equivalent.
|
 | llvm/lib/Support/Unix/Path.inc |
Commit
fe210a1ff2e90093e210bcbcc1184308903c7bdb
by frank.laub[MLIR] Add std.atomic_rmw op
Summary: The RFC for this op is here: https://llvm.discourse.group/t/rfc-add-std-atomic-rmw-op/489
The std.atmomic_rmw op provides a way to support read-modify-write sequences with data race freedom. It is intended to be used in the lowering of an upcoming affine.atomic_rmw op which can be used for reductions.
A lowering to LLVM is provided with 2 paths: - Simple patterns: llvm.atomicrmw - Everything else: llvm.cmpxchg
Differential Revision: https://reviews.llvm.org/D74401
|
 | mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir |
 | mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp |
 | mlir/test/IR/invalid-ops.mlir |
 | mlir/include/mlir/Dialect/StandardOps/IR/Ops.td |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
 | mlir/test/IR/core-ops.mlir |
Commit
888b12b270f3fb7b2e4030fec792e24321998c5b
by efriedma[polly] Don't count scops in a global variable.
This can cause issues with thread safety.
Differential Revision: https://reviews.llvm.org/D75089
|
 | polly/lib/Analysis/ScopBuilder.cpp |
 | polly/lib/Analysis/ScopInfo.cpp |
 | polly/include/polly/ScopDetection.h |
 | polly/include/polly/ScopInfo.h |
Commit
082f1a3b15999c803265fabcb555ad253a00d477
by Jason MolendaMy prevous commit to RegisterContextLLDB is causing a test fail on aarch64-ubuntu - collect a little information about what is happening on this target before I revert my change; I don't have access to this target.
|
 | lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py |
Commit
248eaff823725fd35816b3486526a4515fb7c885
by efriedma[AArch64] SVE implies fullfp16
This is explicitly guaranteed in ARMARM. And it makes reasoning about vectors easier: we can assume that if a vector operation is legal, the corresponding scalar operation is also legal.
Differential Revision: https://reviews.llvm.org/D74993
|
 | llvm/test/CodeGen/AArch64/sve-vector-splat.ll |
 | llvm/lib/Target/AArch64/AArch64.td |
Commit
5522e8296fc5a082ebfc2cd1904099b1ba0570d9
by n.james93[NFC] Cleaned up ASTMatchersInternal Code
|
 | clang/lib/ASTMatchers/ASTMatchersInternal.cpp |
Commit
11e3dde6252f481238dccd14956350ff328c4087
by arsenm2GlobalISel: Reimplement fewerElementsVectorBasic
Changes the handling of odd breakdowns, and avoids using G_EXTRACT/G_INSERT. Pad with undef to a wider size, and unmerge. Also avoid introducing instructions for the fully undef components.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir |
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-bswap.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-and.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-xor.mir |
Commit
0b46b078b656eacaf8fb0b550825189a051f0744
by arsenm2AMDGPU/GlobalISel: Fix incorrect VOP3P fneg folding
We use some s32 values in VOP3P operands, and won't see any intervening casts from a 32-bit fneg. Make sure it's really a packed fneg before folding.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fdot2.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot4.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot2.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot4.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot8.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot8.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot2.ll |
Commit
226bddce458b8648a16d49e6415be2ccf9592c0e
by SourabhSingh.Tomar[DebugInfo]: Refactored Macinfo section consumption part to allow future macro section dumping.
Summary: Previously macinfo infrastructure was using functions names that were ambiguous i.e `getMacro/getMacroDWO` in a sense of conveying stated intentions. This patch refactored them into more reasonable `getDebugMacinfo/getDebugMacinfoDWO` names thus making room for macro implementation.
Reviewers: aprantl, probinson, jini.susan.george, dblaikie
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D75037
|
 | llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
Commit
23c2a5ce33f0f05e4cc43c2cbb9009e9b549839c
by isanbardAllow "callbr" to return non-void values
Summary: Terminators in LLVM aren't prohibited from returning values. This means that the "callbr" instruction, which is used for "asm goto", can support "asm goto with outputs."
This patch removes all restrictions against "callbr" returning values. The heavy lifting is done by the code generator. The "INLINEASM_BR" instruction's a terminator, and the code generator doesn't allow non-terminator instructions after a terminator. In order to correctly model the feature, we need to copy outputs from "INLINEASM_BR" into virtual registers. Of course, those copies aren't terminators.
To get around this issue, we split the block containing the "INLINEASM_BR" right before the "COPY" instructions. This results in two cheats:
- Any physical registers defined by "INLINEASM_BR" need to be marked as live-in into the block with the "COPY" instructions. This violates an assumption that physical registers aren't marked as "live-in" until after register allocation. But it seems as if the live-in information only needs to be correct after register allocation. So we're able to get away with this.
- The indirect branches from the "INLINEASM_BR" are moved to the "COPY" block. This is to satisfy PHI nodes.
I've been told that MLIR can support this handily, but until we're able to use it, we'll have to stick with the above.
Reviewers: jyknight, nickdesaulniers, hfinkel, MaskRay, lattner
Reviewed By: nickdesaulniers, MaskRay, lattner
Subscribers: rriddle, qcolombet, jdoerfert, MatzeB, echristo, MaskRay, xbolva00, aaron.ballman, cfe-commits, JonChesterfield, hiraditya, llvm-commits, rnk, craig.topper
Tags: #llvm, #clang
Differential Revision: https://reviews.llvm.org/D69868
|
 | llvm/test/CodeGen/X86/callbr-asm-outputs.ll |
 | llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp |
 | llvm/docs/LangRef.rst |
 | llvm/lib/CodeGen/MachineVerifier.cpp |
 | llvm/include/llvm/CodeGen/MachineBasicBlock.h |
 | llvm/lib/CodeGen/MachineBasicBlock.cpp |
 | llvm/test/CodeGen/X86/callbr-asm.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/lib/AsmParser/LLParser.cpp |
Commit
50cac248773c3a023e8f6ceb9938bdd5e9f15da2
by isanbardSupport output constraints on "asm goto"
Summary: Clang's "asm goto" feature didn't initially support outputs constraints. That was the same behavior as gcc's implementation. The decision by gcc not to support outputs was based on a restriction in their IR regarding terminators. LLVM doesn't restrict terminators from returning values (e.g. 'invoke'), so it made sense to support this feature.
Output values are valid only on the 'fallthrough' path. If an output value's used on an indirect branch, then it's 'poisoned'.
In theory, outputs *could* be valid on the 'indirect' paths, but it's very difficult to guarantee that the original semantics would be retained. E.g. because indirect labels could be used as data, we wouldn't be able to split critical edges in situations where two 'callbr' instructions have the same indirect label, because the indirect branch's destination would no longer be the same.
Reviewers: jyknight, nickdesaulniers, hfinkel
Reviewed By: jyknight, nickdesaulniers
Subscribers: MaskRay, rsmith, hiraditya, llvm-commits, cfe-commits, craig.topper, rnk
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D69876
|
 | clang/lib/CodeGen/CGStmt.cpp |
 | clang/test/Parser/asm-goto.c |
 | clang/lib/Analysis/UninitializedValues.cpp |
 | clang/test/Analysis/uninit-asm-goto.cpp |
 | clang/include/clang/AST/Stmt.h |
 | clang/include/clang/Basic/Features.def |
 | clang/test/Parser/asm-goto.cpp |
 | clang/lib/AST/Stmt.cpp |
 | clang/lib/Parse/ParseStmtAsm.cpp |
 | clang/lib/Sema/SemaStmtAsm.cpp |
 | clang/test/Sema/asm-goto.cpp |
 | clang/test/CodeGen/asm-goto.c |
 | clang/docs/LanguageExtensions.rst |
Commit
b3bce6a3ddb77a6c6b55ec9de3e36c8de608384c
by rtereshin[MachineVerifier] Doing ::calcRegsPassed over faster sets: ~15-20% faster MV, NFC
MachineVerifier still takes 45-50% of total compile time with -verify-machineinstrs, with calcRegsPassed dataflow taking ~50-60% of MachineVerifier.
The majority of that time is spent in BBInfo::addPassed, mostly within DenseSet implementing the sets the dataflow is operating over.
In particular, 1/4 of that DenseSet time is spent just iterating over it (operator++), 40-50% on insertions, and most of the rest in ::count.
Given that, we're implementing custom sets just for this analysis here, focusing on cheap insertions and O(n) iteration time (as opposed to O(U), where U is the universe).
As it's based _mostly_ on BitVector for sparse and SmallVector for dense, it may remotely resemble SparseSet. The difference is, our solution is a lot less clever, doesn't have constant time `clear` that we won't use anyway as reusing these sets across analyses is cumbersome, and thus more space efficient and safer (got a resizable Universe and a fallback to DenseSet for sparse if it gets too big).
With this patch MachineVerifier gets ~15-20% faster, its contribution to total compile time drops from 45-50% to ~35%, while contribution of calcRegsPassed to MachineVerifier drops from 50-60% to ~35% as well.
calcRegsPassed itself gets another 2x faster here.
All measured on a large suite of shaders targeting a number of GPUs.
Reviewers: bogner, stoklund, rudkx, qcolombet
Reviewed By: rudkx
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75033
|
 | llvm/lib/CodeGen/MachineVerifier.cpp |
Commit
d5a4fa05146fe290735e2a38adb50d76052c4313
by Jason MolendaRevert "My prevous commit to RegisterContextLLDB is causing a test fail"
This reverts commit 082f1a3b15999c803265fabcb555ad253a00d477.
|
 | lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py |
Commit
4fdd2edbdb4bfe6a95df0fac12e8beffcbe33b86
by Jason MolendaRevert "Unwind past an interrupt handler correctly on arm or at pc==0"
The aarcht64-ubuntu bot is showing a test failure in TestHandleAbort.py with this patch. Adding some logging to that file, it looks like the saved register context above the trap handler does not have save state for $pc, but it does have it for $lr on that platform. I need to fall back to looking for $lr if the $pc cannot be retrieved. I'll update the patch and re-commit once that's fixed.
This reverts commit edc4f4c9c9d90b2a4f8831ba4c873f08eaa5395a.
|
 | lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp |
Commit
fee41517fe0f7ff9f0e204dd9200ebf32ca03cb8
by arsenm2AMDGPU/GlobalISel: Introduce post-legalize combiner
The current set of custom combines are only really useful after legalization, so move them there. There is a lot of overlap in the boilerplate here, but I think we do want a pretty different set of combines before and after legalize. I think we will want a lot of overlap between the post-legalize and a post-regbankselect combiner.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/combine-ashr-narrow.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/combine-lshr-narrow.mir |
 | llvm/lib/Target/AMDGPU/AMDGPU.h |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUCombine.td |
 | llvm/lib/Target/AMDGPU/CMakeLists.txt |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.kernarg.segment.ptr.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/combine-shl-narrow.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp |
Commit
1612d382418c767729b582c7b3daf52f18348461
by arsenm2GlobalISel: Remove unneeded initialiation
Removes implicit unsigned->Register conversion.
|
 | llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h |
Commit
2c0edbf19c1b0115b944cd017201eaf1f6a832ee
by uenoku.tokotoko[Attributor] Use AssumptionCache in AANonNullFloating::initialize
|
 | llvm/test/Transforms/Attributor/nonnull.ll |
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
35a061453579f623aca1edc7f6f23dd969c21395
by Jonas Devlieghere[lldb/Utility] Fix unspecified behavior.
Order of evaluation of the operands of any C++ operator [...] is unspecified. This patch fixes the issue in Stream::Indent by calling the function consecutively.
On my Windows setup, TestSettings.py fails because the function prints the value first, followed by the indentation.
Expected result: MY_FILE=this is a file name with spaces.txt
Actual result: MY_FILE =this is a file name with spaces.txt
|
 | lldb/source/Utility/Stream.cpp |
Commit
84c3d3f37a24d9c4835d5c9cd449083845ba8bcd
by tclin914[Sparc][NFC] Remove trailing space
|
 | llvm/lib/Target/Sparc/SparcRegisterInfo.td |
 | llvm/lib/Target/Sparc/LeonFeatures.td |
 | llvm/lib/Target/Sparc/Sparc.td |
 | llvm/lib/Target/Sparc/SparcInstrAliases.td |
 | llvm/lib/Target/Sparc/SparcInstrFormats.td |
 | llvm/lib/Target/Sparc/SparcInstrInfo.td |
Commit
c08a1c7071c43b7bd0384e71c486ad5e5546b08f
by pavel[lldb] Mark ObjectFileBreakpad test inputs as non-text
These are technically text files, but the object file layer treats them as binary, and the relevant tests verify the parsed contents byte for byte. Git's crlf conversion can make those tests fail. Marking the files as non-text disables that.
|
 | lldb/test/Shell/ObjectFile/Breakpad/Inputs/.gitattributes |
Commit
55d4b0d7dd70d5ecc9e641d93fbf234bb7104d1a
by Raphael Isemann[lldb] Fix that a crashing test is marked as unsupported when it prints UNSUPPORTED before crashing
Summary: I added an `abort()` call to some code and noticed that the test suite was still passing and it just marked my test as "UNSUPPORTED".
It seems the reason for that is that we expect failing tests to print "FAIL:" which doesn't happen when we crash. If we then also have an unsupported because we skipped some debug information in the output, we just mark the test passing because it is unsupported on the current platform.
This patch marks any test that has a non-zero exit code as failing even if it doesn't print "FAIL:" (e.g., because it crashed).
Reviewers: labath, JDevlieghere
Reviewed By: labath, JDevlieghere
Subscribers: aprantl, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D75031
|
 | lldb/test/API/lldbtest.py |
Commit
3e9a7b2ba470bbe9cf3de3e4b15ba09dcfd206aa
by n.james93[ASTMatchers] Matcher macros with params move params instead of copying
Summary: Use move semantics instead of copying for AST Matchers with parameters
Reviewers: aaron.ballman, gribozavr2
Reviewed By: gribozavr2
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75096
|
 | clang/include/clang/ASTMatchers/ASTMatchersMacros.h |
Commit
6a0c066c6102cd463e8ad48881e91e596547507a
by n.james93[ASTMatchers] Adds a matcher called `hasAnyOperatorName`
Summary: Acts on `BinaryOperator` and `UnaryOperator` and functions the same as `anyOf(hasOperatorName(...), hasOperatorName(...), ...)`
Documentation generation isn't perfect but I feel that the python doc script needs updating for that
Reviewers: aaron.ballman, gribozavr2
Reviewed By: aaron.ballman, gribozavr2
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75040
|
 | clang/docs/LibASTMatchersReference.html |
 | clang/docs/tools/dump_ast_matchers.py |
 | clang/lib/ASTMatchers/ASTMatchersInternal.cpp |
 | clang/lib/ASTMatchers/Dynamic/Registry.cpp |
 | clang/include/clang/ASTMatchers/ASTMatchersInternal.h |
 | clang/include/clang/ASTMatchers/ASTMatchers.h |
 | clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp |
Commit
9238dfb4d80dc93a3187a2d3b030c6f7867afd50
by craig.topper[X86] Remove mask output from X86 gather/scatter ISD opcodes.
Instead add it when we make the machine nodes during instruction selections.
This makes this ISD node closer to ISD::MGATHER. Trying to see if we remove the X86 specific ones.
|
 | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
89ba4acad6ccc1ba6e1044ea929c4dcc1e92f6a3
by craig.topper[X86] Pass parameters into selectVectorAddr to remove dependency on X86MaskedGatherScatterSDNode.
Might be able to get rid of X86ISD::SCATTER and some uses of X86ISD::GATHER. Which require isel to use ISD::SCATTER and ISD::GATHER as well.
|
 | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp |
Commit
29e2cb87491cfc3690f7467acfef8a0323eba8b4
by alexbrachetmialot[libc] [UnitTest] Give UnitTest gtest like colors
Summary: This is a quality of life change to make it a little nicer to look at, NFC. This patch makes the RUN and OK lines green and FAILED lines red to match gtest's output.
Reviewers: sivachandra, gchatelet, PaulkaToast
Reviewed By: gchatelet
Subscribers: MaskRay, tschuett, libc-commits
Differential Revision: https://reviews.llvm.org/D75103
|
 | libc/utils/UnitTest/Test.cpp |
Commit
ea6b95dc2f68e7f3f06abc47fae44c91ceebef93
by Raphael Isemann[lldb][NFC] Make ArrayRef initialization more obvious in lldb-test.cpp
Seems like this code raised some alarm bells as it looks like an ArrayRef to a temporary initializer list, but it's actually just calling the ArrayRef(T*, T*) constructor. Let's clarify this and directly call the right ArrayRef constructor here.
Fixes rdar://problem/59176052
|
 | lldb/tools/lldb-test/lldb-test.cpp |
Commit
eefbff0082c5228e01611f7e6987695d0b1c6d32
by pavel[lldb] s/CHECK-NEXT/CHECK-DAG in dwp-debug-types.s
These can come out nondeterministically for two reasons: - sorting based on ConstStringified pointer values - different relative speeds of the indexing threads
Making these nondeterministic without incurring performance penalties is hard, so I just make the test expect them in any order (the order is not important in this test anyway.
|
 | lldb/test/Shell/SymbolFile/DWARF/dwp-debug-types.s |
Commit
27c89ced811986d473b0562f313f2bc5e0cbbe4b
by shkzhang[NFC][PowerPC] Add a new test case scalar_cmp.ll
|
 | llvm/test/CodeGen/PowerPC/scalar_cmp.ll |
Commit
05d174d30159579ae19e90899736d98e2544c0e3
by Raphael Isemann[lldb][NFC] Move namespace lookup in ClangASTSource to own function.
Beside being cleaner we can probably reuse that logic elsewhere.
|
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h |
Commit
814fb658ca262f5c2df47f11d47f91fac188e0d6
by jano.veselylibclc: cmake configure should depend on file list
This makes sure targets are rebuilt if a file is added or removed. Reviewer: tstellar Differential Revision: https://reviews.llvm.org/D74662
|
 | libclc/CMakeLists.txt |
Commit
dc78190811b5f678c8a1ac07a6d46f68b8f2e865
by jay.foadAMDGPU/GlobalISel: add legalize tests for s64 max/min
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir |
Commit
ccee390767ca963d541e0b1c7c8587d1fbde505f
by jay.foadGlobalISel: NFC minor cleanup to avoid a couple of fixed size local arrays
|
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
Commit
62c7d8402651a0704602e73c90da92248bbad6d5
by calixte.denizet[profile] gcov_mutex must be static
Summary: Forget static keyword for gcov_mutex in https://reviews.llvm.org/D74953 and that causes test failure on mac.
Reviewers: erik.pilkington, vsk
Reviewed By: vsk
Subscribers: vsk, dexonsmith, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D75080
|
 | compiler-rt/lib/profile/GCDAProfiling.c |
Commit
dcd89b3de6de891bfcc59189cda1ea059fbdcdb5
by hansAdd llvm-cov to LLVM_TOOLCHAIN_TOOLS
See https://github.com/llvm/llvm-project/issues/141
|
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
bd2df13ee0f972ac386fd2d8edf5a9205ace04bb
by ikudrin[DebugInfo] Fix printing CIE offsets in EH FDEs.
While the value of the CIE pointer field in a DWARF FDE record is an offset to the corresponding CIE record from the beginning of the section, for EH FDE records it is relative to the current offset. Previously, we did not make that distinction when dumped both kinds of FDE records and just printed the same value for the CIE pointer field and the CIE offset; that was acceptable for DWARF FDEs but was wrong for EH FDEs.
This patch fixes the issue by explicitly printing the offset of the linked CIE object.
Differential Revision: https://reviews.llvm.org/D74613
|
 | llvm/test/DebugInfo/RISCV/eh-frame.s |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h |
 | lld/test/ELF/eh-frame-hdr-augmentation.s |
 | llvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s |
 | llvm/test/tools/llvm-objdump/eh_frame-mipsel.test |
 | llvm/test/MC/Mips/eh-frame.s |
 | llvm/test/tools/llvm-dwarfdump/X86/debug_frame_offset.test |
 | llvm/test/tools/llvm-objdump/eh_frame-arm64.test |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp |
 | llvm/test/DebugInfo/X86/debug_frame-invalid-cie-offset.s |
 | llvm/test/tools/llvm-objdump/eh_frame-coff.test |
Commit
9fd7ce7f4449619bc85ab4d2643e656836a2d5e2
by dkszelethus[analyzer][MallocChecker][NFC] Communicate the allocation family to auxiliary functions with parameters
The following series of refactoring patches aim to fix the horrible mess that MallocChecker.cpp is.
I genuinely hate this file. It goes completely against how most of the checkers are implemented, its by far the biggest headache regarding checker dependencies, checker options, or anything you can imagine. On top of all that, its just bad code. Its seriously everything that you shouldn't do in C++, or any other language really. Bad variable/class names, in/out parameters... Apologies, rant over.
So: there are a variety of memory manipulating function this checker models. One aspect of these functions is their AllocationFamily, which we use to distinguish between allocation kinds, like using free() on an object allocated by operator new. However, since we always know which function we're actually modeling, in fact we know it compile time, there is no need to use tricks to retrieve this information out of thin air n+1 function calls down the line. This patch changes many methods of MallocChecker to take a non-optional AllocationFamily template parameter (which also makes stack dumps a bit nicer!), and removes some no longer needed auxiliary functions.
Differential Revision: https://reviews.llvm.org/D68162
|
 | clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h |
 | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp |
Commit
72848f26b434624f612834443e8a7c0239026340
by cullen.rhodes[AArch64][SVE] Add predicate reinterpret intrinsics
Summary: Implements the following intrinsics:
* llvm.aarch64.sve.convert.to.svbool * llvm.aarch64.sve.convert.from.svbool
For converting the ACLE svbool_t type (<n x 16 x i1>) to and from the other predicate types: <n x 8 x i1>, <n x 4 x i1> and <n x 2 x i1>.
Reviewers: sdesmalen, kmclaughlin, efriedma, dancgr, rengolin
Reviewed By: sdesmalen, efriedma
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74471
|
 | llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |
Commit
157b3d505f612460a109ac7d5325d81540b3eade
by grimar[yaml2obj] - Address post commit comments for D74764
It removes a stale comment and fixes the comment in the test and section names related accordingly.
|
 | llvm/test/tools/yaml2obj/ELF/section-address-assign.yaml |
 | llvm/lib/ObjectYAML/ELFEmitter.cpp |
Commit
7a7eacc797f7cc603d50987883ea95aee99d6b22
by herhut[MLIR][GPU] Implement a simple greedy loop mapper.
Summary: The mapper assigns annotations to loop.parallel operations that are compatible with the loop to gpu mapping pass. The outermost loop uses the grid dimensions, followed by block dimensions. All remaining loops are mapped to sequential loops.
Differential Revision: https://reviews.llvm.org/D74963
|
 | mlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/lib/Dialect/GPU/CMakeLists.txt |
 | mlir/test/Dialect/GPU/mapping.mlir |
 | mlir/include/mlir/Dialect/LoopOps/LoopOps.td |
 | mlir/test/lib/Transforms/TestGpuParallelLoopMapping.cpp |
 | mlir/test/lib/Transforms/CMakeLists.txt |
 | mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp |
 | mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp |
Commit
decd021facba804b57e8d80b6159c987d3261ab8
by hansDon't generate libcalls for wide shift on Windows ARM (PR42711)
The previous patch (cff90f07cb5cc3c3bc58277926103af31caef308) didn't cover ARM.
|
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/test/CodeGen/ARM/shift_minsize.ll |
Commit
00d4814f499fd09f8cf326c1c1a219175268b970
by zinenko[mlir] Generalize intrinsic builders in the LLVM dialect definition
All LLVM IR intrinsics are constructed in a similar way. The ODS definition of the LLVM dialect in MLIR also lists multiple intrinsics, many of which reproduce the same (or similar enough) code stanza to translate the MLIR operation into the LLVM IR intrinsic. Provide a single base class containing parameterizable code to build LLVM IR intrinsics given their name and the lists of overloadable operands and results. Use this class to remove (almost) duplicate translations for intrinsics defined in LLVMOps.td.
Differential Revision: https://reviews.llvm.org/D74889
|
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td |
Commit
3a1b34ff69be5d1cbd218bfe81fc66edb8fa15f1
by zinenko[mlir] Intrinsics generator: use TableGen-defined builder function
Originally, intrinsics generator for the LLVM dialect has been producing customized code fragments for the translation of MLIR operations to LLVM IR intrinsics. LLVM dialect ODS now provides a generalized version of the translation code, parameterizable with the properties of the operation. Generate ODS that uses this version of the translation code instead of generating a new version of it for each intrinsic.
Differential Revision: https://reviews.llvm.org/D74893
|
 | mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td |
 | mlir/test/mlir-tblgen/llvm-intrinsics.td |
Commit
5f9b543e8e305630c9d133e4ac6366d836d75a59
by zinenko[mlir] simplify affine maps and operands in affine.min/max
Affine dialect already has a map+operand simplification infrastructure in place. Plug the recently added affine.min/max operations into this infrastructure and add a simple test. More complex behavior of the simplifier is already tested by other ops.
Addresses https://bugs.llvm.org/show_bug.cgi?id=45008.
Differential Revision: https://reviews.llvm.org/D75058
|
 | mlir/include/mlir/Dialect/AffineOps/AffineOps.td |
 | mlir/lib/Dialect/AffineOps/AffineOps.cpp |
 | mlir/test/AffineOps/canonicalize.mlir |
Commit
fc0d11c90420acfcaa5424f5df979a63f5ab4123
by Raphael Isemann[lldb][NFC] Modernize logging in ClangASTSource/ExpressionDeclMap
|
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp |
Commit
cff90c938b7be43de482ffb7a8a7fdbdf57c32a3
by andrzej.warzynski[AArch64][SVE] Update names and comments for gathers/scatters (NFC)
Summary: This patch renames functions and TableGen classes for SVE gathers and scatters. The original names implied that the corresponding methods/classes are only suited for regular gathers/scatters (i.e. LD1 and ST1), which is not the case. Indeed, we will be re-using them for non-temporal and first-faulting gathers/scatters in the forthcoming patches. The new names also highlight the split into Vector-Scalar (VS) and Scalar-Vector (SV) cases.
List of changes: * `performLD1GatherCombine` and `performST1ScatterCombine` are renamed as `performGatherLoadCombine` and `performScatterStoreCombine`, respectively. * Selection DAG types for scatters and gathers from AArch64SVEInstrInfo.td are renamed. For example, `SDT_AArch64_GLD1` is renamed as `SDT_AArch64_GATHER_SV`. SV stands for Scalar-Vector, as opposed to Vector-Scalar (VS). * The intrinsic classes from IntrinsicsAArch64.td are renamed. For example, `AdvSIMD_GatherLoad_64bitOffset_Intrinsic` is renamed as `AdvSIMD_GatherLoad_SV_64b_Offsets_Intrinsic`. * Updated comments in `performGatherLoadCombine` and `performScatterStoreCombine`.
Reviewers: sdesmalen, rengolin, efriedma
Reviewed By: sdesmalen
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75035
|
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
e4e122aa1d59bdc1e15b414479d574952223b512
by herhut[MLIR][GPU] Fix forward declaration of Region class.
I forward declared mlir::Region as a struct by mistake :(
|
 | mlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h |
Commit
4486aa03c5f431ba33a1d1ac9991da912e3decd9
by hansbuild_llvm_package.bat: Produce zip files in addition to the installers
Now that the Windows installer no longer does anything besides self-extract, maybe it would make sense to distribute the toolchain as a plain zip file in addition to the current installer.
Differential revision: https://reviews.llvm.org/D74896
|
 | llvm/utils/release/build_llvm_package.bat |
Commit
555d5ad85a4986d003040eb94109c72579021423
by kadircet[clangd] Disable ExtractVariable for C
Summary: Currently extract variable doesn't spell the type explicitly and just uses an `auto` instead, which is not available in C.
Reviewers: usaxena95
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75053
|
 | clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp |
 | clang-tools-extra/clangd/unittests/TweakTests.cpp |
Commit
defd0e24aa054aed583d5272e2cc64ae7b0fdc7d
by Raphael Isemann[lldb][NFC] Move NameSearchContext to own header/source files
The class is large enough to be in its own file. This patch also removes the cyclic dependency between ClangASTSource <-> NameSearchContext.
|
 | lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.cpp |
 | lldb/include/lldb/lldb-forward.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h |
 | lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
 | lldb/unittests/Expression/ClangExpressionDeclMapTest.cpp |
 | lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt |
Commit
2ad7b6fba0e3a9e71df64bd1a51a14f9c5930eb3
by Raphael Isemann[lldb][NFC] Make NameSearchContext::m_found members bools instead of bitfields
The size of NameSearchContext isn't important as we never store it and rarely allocate more than a few. This way we also don't have to use the memset to initialize these fields to zero.
|
 | lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp |
Commit
60a2db5986a84ef3e930818b6b86dc0d5c361e4a
by whitequarkRemove myself from CODE_OWNERS.
|
 | llvm/CODE_OWNERS.TXT |
Commit
3950093951f49314f2c61157be96aa72f9a0e2e0
by thakis[gn build] (manually) merge fee41517fe0f
|
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn |
Commit
93b6e1924081874039e6c88828db8e0ab7bbba04
by Raphael Isemann[lldb] Initialize NameSearchContext::m_namespace_map in constructor
This member is for some reason initialized in ClangASTSource::FindExternalVisibleDecls so all other functions using this member dereference a nullptr unless we call this function before that. Let's just initialize this in the constructor.
This should be NFC as the only side effect is that we don't reset the namespace map when calling ClangASTSource::FindExternalVisibleDecls multiple times (and we never call this function multiple times for one NameSearchContext from what I can see).
|
 | lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
Commit
bdb24faa2af4b989e757bc0a220224df9fe4d874
by Raphael Isemann[lldb][NFC] Move filling namespace map in ClangASTSource to own function
|
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
Commit
0a3b0837915e9796ae4279fe704efa663b89d815
by jeremy.morse[debuginfo-tests] Warn, not error, if we can't delete working directory
On Windows, an error running the debugger typically leaves a process hanging around in the working directory. When Dexter exits, it can't then delete the working directory and produces an exception, masking the problem in the debugger. (This can be worked around by specifying --save-temps). Rather than hard-erroring, print a warning when we can't delete the working directory instead.
It'd be much better to improve our error handling, and make the WorkingDirectory class aware that something's wrong when it enters exit. However, this is something that's going to mask genuine errors and make everyones lives harder right now, so I think this non-ideal fix is important to get in first.
Differential Revision: https://reviews.llvm.org/D74548
|
 | debuginfo-tests/dexter/dex/utils/WorkingDirectory.py |
Commit
305320b0057924ef78978e9df8a0e1f591990a06
by zinenko[mlir] NFC: move AffineOps tests from test/ to test/Dialect
AffineOps dialect lives under lib/Dialect/AffineOps and so should its tests.
|
 | mlir/test/AffineOps/load-store-invalid.mlir |
 | mlir/test/Dialect/AffineOps/inlining.mlir |
 | mlir/test/AffineOps/load-store.mlir |
 | mlir/test/AffineOps/inlining.mlir |
 | mlir/test/AffineOps/invalid.mlir |
 | mlir/test/Dialect/AffineOps/canonicalize.mlir |
 | mlir/test/Dialect/AffineOps/load-store.mlir |
 | mlir/test/Dialect/AffineOps/invalid.mlir |
 | mlir/test/Dialect/AffineOps/load-store-invalid.mlir |
 | mlir/test/Dialect/AffineOps/memref-stride-calculation.mlir |
 | mlir/test/AffineOps/ops.mlir |
 | mlir/test/Dialect/AffineOps/ops.mlir |
 | mlir/test/AffineOps/memref-stride-calculation.mlir |
 | mlir/test/AffineOps/canonicalize.mlir |
 | mlir/test/Dialect/AffineOps/dma.mlir |
 | mlir/test/AffineOps/dma.mlir |
Commit
5e6d7246335dc4aa0145bdbd5cea70b886a34133
by herhut[MLIR][GPU] Properly model step in parallel loop to gpu conversion.
Summary: The original patch had TODOs to add support for step computations, which this commit addresses. The computations are expressed using affine expressions so that the affine canonicalizers can simplify the full bound and index computations.
Also cleans up the code a little and exposes the pass in the header file.
Differential Revision: https://reviews.llvm.org/D75052
|
 | mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp |
 | mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h |
 | mlir/lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp |
 | mlir/test/Conversion/LoopsToGPU/parallel_loop.mlir |
Commit
b8d638d337e76a632d07d61f4cef59e243b961a8
by flo[DSE,MSSA] Do not attempt to remove un-removable memdefs.
We have to skip MemoryDefs that cannot be removed. This fixes a crash in the newly added test case and fixes a wrong case in memset-and-memcpy.ll.
|
 | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll |
Commit
10ea01d80d6fb81d01856271dbcd6205911d451d
by spatel[VectorCombine] make cost calc consistent for binops and cmps
Code duplication (subsequently removed by refactoring) allowed a logic discrepancy to creep in here.
We were being conservative about creating a vector binop -- but not a vector cmp -- in the case where a vector op has the same estimated cost as the scalar op. We want to be more aggressive here because that can allow other combines based on reduced instruction count/uses.
We can reverse the transform in DAGCombiner (potentially with a more accurate cost model) if this causes regressions.
AFAIK, this does not conflict with InstCombine. We have a scalarize transform there, but it relies on finding a constant operand or a matching insertelement, so that means it eliminates an extractelement from the sequence (so we won't have 2 extracts by the time we get here if InstCombine succeeds).
Differential Revision: https://reviews.llvm.org/D75062
|
 | llvm/test/Transforms/VectorCombine/X86/extract-binop.ll |
 | llvm/lib/Transforms/Vectorize/VectorCombine.cpp |
Commit
e0568ef2c5c2e949ccfd5b66cc749fab8fa38e03
by spatel[VectorCombine] add tests for possible extract->shuffle; NFC
|
 | llvm/test/Transforms/VectorCombine/X86/extract-binop.ll |
 | llvm/test/Transforms/VectorCombine/X86/extract-cmp.ll |
Commit
7b6168e7bef1cdc355fd28572bd69ea4057c57f8
by 1.int32[ASTImporter] Improved variable template redecl chain handling.
Reviewers: martong, a.sidorin, shafik
Reviewed By: martong
Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, teemperor, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74720
|
 | clang/unittests/AST/ASTImporterGenericRedeclTest.cpp |
 | clang/lib/AST/ASTImporter.cpp |
Commit
770ad9f55e660e0ec89f61d5579dfafad17ab5f5
by adam.balogh[Analyzer] Fix for iterator modeling and checkers: handle negative numbers correctly
Currently, using negative numbers in iterator operations (additions and subractions) results in advancements with huge positive numbers due to an error. This patch fixes it.
Differential Revision: https://reviews.llvm.org/D74760
|
 | clang/test/Analysis/iterator-modelling.cpp |
 | clang/lib/StaticAnalyzer/Checkers/Iterator.cpp |
Commit
f452f7b95a8c20f187f67dc57dd4778ba09090b3
by spatel[PhaseOrdering] add test for missing vector/CSE transforms (PR45015); NFC
|
 | llvm/test/Transforms/PhaseOrdering/X86/lit.local.cfg |
 | llvm/test/Transforms/PhaseOrdering/X86/addsub.ll |
Commit
83f4372f3a708ceaa800feff8b1bd92ae2c3be5f
by spatel[CodeGen] fix clang test that runs the optimizer pipeline; NFC
There's already a FIXME note on this file; it can break when the underlying LLVM behavior changes independently of anything in clang.
|
 | clang/test/CodeGen/complex-math.c |
Commit
7d91fd23dfa8ad33b3d270b6a2b8f6cf6a589a38
by zinenko[mlir] NFC: update documentation in ConvertLinalgToLLVM
The documentation was describing an obsolete version of the transformation.
|
 | mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp |
Commit
91f7f0d8e3ef2b6be07bc9621de075ff11c730c9
by luismarques[RISCV] Fix sysroot tests without GCC on RISC-V hosts with GCC
D68391 added tests that check scenarios where no RISC-V GCC toolchain is supposed to be detected. When running the tests on RISC-V hosts the system's GCC toolchain will be detected, and the tests will fail. This patch adds a `--gcc-toolchain` option pointing to a path where no GCC toolchain is present, ensuring that the tests are run under the expected conditions, and therefore are able to pass in all test environments.
Differential Revision: https://reviews.llvm.org/D75061
|
 | clang/test/Driver/riscv64-toolchain-extra.c |
 | clang/test/Driver/riscv32-toolchain-extra.c |
Commit
edae4be8e21c5deb9a8ffc24a8c17e70b878bf39
by hansFix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)
No functionality change (intended), but this seems to make the code a bit clearer for the compiler and maybe for human readers too.
|
 | llvm/utils/TableGen/DFAEmitter.h |
 | llvm/utils/TableGen/DFAEmitter.cpp |
Commit
2bd6974aaa664f01e8822514295425fee380b131
by jbcoe[clang-format] Wrap lines for C# property accessors
Summary: Ensure that auto-implemented properties `{ get; private set }` are wrapped on to one line for C# code.
Reviewers: MyDeveloperDay, krasimir
Reviewed By: MyDeveloperDay, krasimir
Subscribers: cfe-commits
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D75006
|
 | clang/lib/Format/UnwrappedLineFormatter.cpp |
 | clang/unittests/Format/FormatTestCSharp.cpp |
Commit
e16e267bb6ee8dd923bf328fd277d8e637eb34c6
by kkwli0[OpenMP][cmake] ignore warning on unknown CUDA version
Differential Revision: https://reviews.llvm.org/D75001
|
 | openmp/runtime/cmake/LibompCheckLinkerFlag.cmake |
Commit
dc383f07b080aa3a5725628691163850bc50ae89
by joergStop including sys/param.h from Unix.h
|
 | llvm/lib/Support/Unix/Unix.h |
Commit
e09754ccefc8cff7ae5fa18ce73db76339b559f5
by kadircet[clangd] Migrate Lexer usages in TypeHierarchy to TokenBuffers
Summary: Also fixes a bug, resulting from directly using ND.getEndLoc() for end location of the range. As ND.getEndLoc() points to the begining of the last token, whereas it should point one past the end, since LSP ranges are half open (exclusive on the end).
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74850
|
 | clang-tools-extra/clangd/XRefs.cpp |
 | clang-tools-extra/clangd/test/type-hierarchy.test |
Commit
e5513336aee4a9b10cb98f234145aeb4763fdd69
by dkszelethus[analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to CallDescription
Exactly what it says on the tin! I decided not to merge this with the patch that changes all these to a CallDescriptionMap object, so the patch is that much more trivial.
Differential Revision: https://reviews.llvm.org/D68163
|
 | clang/test/Analysis/malloc-annotations.cpp |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h |
 | clang/test/Analysis/kmalloc-linux.c |
 | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp |
Commit
bcda1269c4c4d5d19d2be425c0a52d19fe09f146
by thakisclang-cl: Add a `/showIncludes:user` flag.
This flag is like /showIncludes, but it only includes user headers and omits system headers (similar to MD and MMD). The motivation is that projects that already track system includes though other means can use this flag to get consistent behavior on Windows and non-Windows, and it saves tools that output /showIncludes output (e.g. ninja) some work.
implementation-wise, this makes `HeaderIncludesCallback` honor the existing `IncludeSystemHeaders` bit, and changes the three clients of `HeaderIncludesCallback` (`/showIncludes`, `-H`, `CC_PRINT_HEADERS=1`) to pass `-sys-header-deps` to set that bit -- except for `/showIncludes:user`, which doesn't pass it.
Differential Revision: https://reviews.llvm.org/D75093
|
 | clang/include/clang/Driver/CLCompatOptions.td |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Preprocessor/headermap-rel2.c |
 | clang/test/Driver/cl-options.c |
 | clang/lib/Frontend/DependencyFile.cpp |
 | clang/lib/Frontend/HeaderIncludeGen.cpp |
 | clang/test/Frontend/print-header-includes.c |
Commit
ab96ec41ead8fadbbaae4c31ef5096a478772aa6
by jay.foad[AMDGPU] Precommit some test updates for D68338 "Remove dubious logic in bidirectional list scheduler"
|
 | llvm/test/CodeGen/AMDGPU/load-hi16.ll |
 | llvm/test/CodeGen/AMDGPU/smrd-vccz-bug.ll |
 | llvm/test/CodeGen/AMDGPU/add.v2i16.ll |
 | llvm/test/CodeGen/AMDGPU/wave32.ll |
 | llvm/test/CodeGen/AMDGPU/sminmax.v2i16.ll |
 | llvm/test/CodeGen/AMDGPU/mad_64_32.ll |
 | llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier.ll |
 | llvm/test/CodeGen/AMDGPU/fneg-combines.ll |
 | llvm/test/CodeGen/AMDGPU/fneg-fabs.f16.ll |
 | llvm/test/CodeGen/AMDGPU/global_smrd.ll |
 | llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.ll |
 | llvm/test/CodeGen/AMDGPU/sad.ll |
Commit
fc466f87804f97b322394ef3b9db43ea3febcc15
by benny.kraMake test not write to the source directory
|
 | clang/test/CodeGen/static-init.cpp |
Commit
425ef999385058143bb927aefe81daddcd43f623
by lebedev.ri[NFC][InstCombine] Add shift amount reassociation miscompile example from PR44802
https://bugs.llvm.org/show_bug.cgi?id=44802
|
 | llvm/test/Transforms/InstCombine/shift-amount-reassociation.ll |
Commit
781d077afb0ed9771c513d064c40170c1ccd21c9
by lebedev.ri[InstCombine] reassociateShiftAmtsOfTwoSameDirectionShifts(): fix miscompile (PR44802)
As input, we have the following pattern: Sh0 (Sh1 X, Q), K We want to rewrite that as: Sh x, (Q+K) iff (Q+K) u< bitwidth(x) While we know that originally (Q+K) would not overflow (because 2 * (N-1) u<= iN -1), we may have looked past extensions of shift amounts. so it may now overflow in smaller bitwidth.
To ensure that does not happen, we need to ensure that the total maximal shift amount is still representable in that smaller bitwidth. If the overflow would happen, (Q+K) u< bitwidth(x) check would be bogus.
https://bugs.llvm.org/show_bug.cgi?id=44802
|
 | llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp |
 | llvm/test/Transforms/InstCombine/shift-amount-reassociation.ll |
Commit
6f807ca00d951d3e74f7ea4fe1daa8e3560f4c0d
by lebedev.ri[NFC][InstCombine] Add shift amount reassociation in bittest miscompile example from PR44802
https://bugs.llvm.org/show_bug.cgi?id=44802
|
 | llvm/test/Transforms/InstCombine/shift-amount-reassociation-in-bittest.ll |
Commit
2855c8fed9326ec44526767f1596a4fe4e55dc70
by lebedev.ri[InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): fix miscompile (PR44802)
Much like with reassociateShiftAmtsOfTwoSameDirectionShifts(), as input, we have the following pattern: icmp eq/ne (and ((x shift Q), (y oppositeshift K))), 0 We want to rewrite that as: icmp eq/ne (and (x shift (Q+K)), y), 0 iff (Q+K) u< bitwidth(x)
While we know that originally (Q+K) would not overflow (because 2 * (N-1) u<= iN -1), we may have looked past extensions of shift amounts. so it may now overflow in smaller bitwidth.
To ensure that does not happen, we need to ensure that the total maximal shift amount is still representable in that smaller bitwidth. If the overflow would happen, (Q+K) u< bitwidth(x) check would be bogus.
https://bugs.llvm.org/show_bug.cgi?id=44802
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
 | llvm/test/Transforms/InstCombine/shift-amount-reassociation-in-bittest.ll |
Commit
ec1efe71130f5b049e53828281204b50d89d4cf6
by aykevanlaethem[LLDB] Let DataExtractor deal with two-byte addresses
AVR usually uses two byte addresses. By making DataExtractor deal with this, it is possible to load AVR binaries that don't have debug info associated with them.
Differential Revision: https://reviews.llvm.org/D73969
|
 | lldb/source/Utility/DataExtractor.cpp |
 | lldb/unittests/Utility/DataExtractorTest.cpp |
Commit
deb116ee0a5b80f61bc341ed68606dc5ad093569
by pavel[DWARFDebugLine] Avoid dumping prologue members we did not parse
Summary: This patch if motivated by D74560, specifically the subthread about what to print upon encountering reserved initial length values.
If the debug_line prologue has an unsupported version, we skip parsing the rest of the data. If we encounter an reserved initial length field, we don't even parse the version. However, we still print out all members (with value 0) in the dump function.
This patch introduces early exits in the Prologue::dump function so that we print only the fields that were parsed successfully. In case of an unsupported version, we skip printing all subsequent prologue fields -- because we don't even know if this version has those fields. In case of a reserved unit length, we don't print anything -- if the very first field of the prologue is invalid, it's hard to say if we even have a prologue to begin with.
Note that the user will still be able to see the invalid/reserved initial length value in the error message. I've modified (reordered) debug_line_invalid.test to show that the error message comes straight after the debug_line offset. I've also added some flush() calls to the dumping code to ensure this is the case in all situations (without that, the warnings could get out of sync if the output was not a terminal -- I guess this is why std::iostreams have the tie() function).
Reviewers: jhenderson, ikudrin, dblaikie
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75043
|
 | llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp |
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test |
Commit
a82ffe9d93a24abf30bcf63081096ea18baf78dc
by Artem Dergachev[analyzer] Add support for CXXInheritedCtorInitExpr.
So far we've been dropping coverage every time we've encountered a CXXInheritedCtorInitExpr. This patch attempts to add some initial support for it.
Constructors for arguments of a CXXInheritedCtorInitExpr are still not fully supported.
Differential Revision: https://reviews.llvm.org/D74735
|
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h |
 | clang/test/Analysis/osobject-retain-release.cpp |
 | clang/include/clang/Analysis/ConstructionContext.h |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h |
 | clang/lib/StaticAnalyzer/Core/CallEvent.cpp |
 | clang/lib/StaticAnalyzer/Core/ExprEngine.cpp |
 | clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp |
 | clang/test/Analysis/cxx-inherited-ctor-init-expr.cpp |
 | clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp |
 | clang/lib/StaticAnalyzer/Core/SymbolManager.cpp |
 | clang/include/clang/Analysis/AnyCall.h |
 | clang/lib/Analysis/RetainSummaryManager.cpp |
Commit
e6d0bad843c4c84bb762cf93a56c5bdd5cc535c0
by hokein.wu[clang-rename] Add the USR of incomplete decl to the USRSet.
Summary: This fixes a clangd rename issue, which is missing the reference of an incomplete specialization.
Unfortunately, I didn't reproduce this issue in clang-rename, I guess the input `FoundDecl` of AdditionalUSRFinder is different in clangd vs clang-rename, clang-rename uses the underlying CXXRecordDecl of the ClassTemplateDecl, which is fixed in https://github.com/llvm/llvm-project/commit/5d862c042b52ae2aad37471d0b83b6c678a520e3; while clangd-rename uses the ClassTemplateDecl.
Reviewers: kbobyrev
Reviewed By: kbobyrev
Subscribers: ilya-biryukov, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74829
|
 | clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp |
 | clang-tools-extra/clangd/unittests/RenameTests.cpp |
Commit
93331a17e8b3d6205efc8f1d4e7a74523f3b7035
by maskray[ELF] Support archive:file syntax in input section descriptions
Fixes https://bugs.llvm.org/show_bug.cgi?id=44450
https://sourceware.org/binutils/docs/ld/Input-Section-Basics.html#Input-Section-Basics The following two rules are not implemented.
* `archive:` matches every file in the archive. * `:file` matches a file not in an archive.
Reviewed By: grimar, ruiu
Differential Revision: https://reviews.llvm.org/D75100
|
 | lld/test/ELF/linkerscript/input-archive.s |
 | lld/ELF/LinkerScript.cpp |
Commit
33cbd5ee080ecbc1775751d7f5d930ae9b83c8ec
by jay.foadAMDGPU/GlobalISel: Legalize s64 min/max by lowering
Reviewers: arsenm, rampitec
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75108
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir |
Commit
7b65886ec2d0de431959f6b1d1801ef43a958f55
by hokein.wuMake builtbot happy.
Disable the failing rename test, it should not be failed, needs further investigation.
|
 | clang/unittests/Rename/RenameClassTest.cpp |
Commit
fa755d3e71ed590ac5c62f0e1eff09435c9593fe
by anastasia.stulova[Sema][C++] Propagate conversion kind to specialize the diagnostics
Compute and propagate conversion kind to diagnostics helper in C++ to provide more specific diagnostics about incorrect implicit conversions in assignments, initializations, params, etc...
Duplicated some diagnostics as errors because C++ is more strict.
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74116
|
 | clang/test/CXX/temp/temp.spec/temp.expl.spec/p19.cpp |
 | clang/test/CXX/temp/temp.spec/temp.explicit/p9.cpp |
 | clang/test/Sema/block-return.c |
 | clang/test/SemaObjCXX/comptypes-1.mm |
 | clang/test/SemaTemplate/member-access-expr.cpp |
 | clang/test/SemaTemplate/temp_arg_nontype.cpp |
 | clang/test/SemaObjCXX/property-invalid-type.mm |
 | clang/test/SemaCXX/decl-microsoft-call-conv.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/CXX/except/except.handle/p16.cpp |
 | clang/test/SemaObjCXX/arc-type-conversion.mm |
 | clang/test/SemaObjCXX/noescape.mm |
 | clang/test/OpenMP/allocate_allocator_messages.cpp |
 | clang/test/Sema/callingconv-sysv_abi.c |
 | clang/test/SemaOpenCL/address-spaces.cl |
 | clang/test/SemaObjC/comptypes-legal.m |
 | clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/test/CXX/expr/p13.cpp |
 | clang/test/SemaCXX/ms-property-error.cpp |
 | clang/test/Sema/pass-object-size.c |
 | clang/test/Sema/overloadable.c |
 | clang/test/SemaCXX/addr-of-overloaded-function.cpp |
 | clang/test/SemaObjCXX/comptypes-7.mm |
 | clang/test/SemaCXX/int-ptr-cast-SFINAE.cpp |
 | clang/test/SemaObjC/arc.m |
 | clang/test/SemaObjCXX/parameterized_classes_subst.mm |
 | clang/test/Sema/callingconv.c |
 | clang/test/SemaTemplate/instantiate-member-class.cpp |
 | clang/test/SemaCXX/goto.cpp |
 | clang/test/SemaObjCXX/nullability-pragmas.mm |
 | clang/test/Sema/preserve-call-conv.c |
 | clang/test/Sema/callingconv-ms_abi.c |
 | clang/test/SemaTemplate/extern-templates.cpp |
 | clang/test/CXX/drs/dr3xx.cpp |
 | clang/test/CXX/conv/conv.fctptr/p1.cpp |
 | clang/test/SemaObjCXX/objc-container-subscripting.mm |
 | clang/test/SemaObjCXX/instantiate-stmt.mm |
 | clang/test/SemaObjCXX/instantiate-expr.mm |
 | clang/test/CXX/temp/temp.spec/temp.explicit/p10.cpp |
 | clang/test/Sema/block-call.c |
Commit
11857d49948b845dcfd7c7f78595095e3add012d
by xur[remark][diagnostics] [codegen] Fix PR44896
This patch fixes PR44896. For IR input files, option fdiscard-value-names should be ignored as we need named values in loadModule(). Commit 60d3947922 sets this option after loadModule() where valued names already created. This creates an inconsistent state in setNameImpl() that leads to a seg fault. This patch forces fdiscard-value-names to be false for IR input files.
This patch also emits a warning of "ignoring -fdiscard-value-names" if option fdiscard-value-names is explictly enabled in the commandline for IR input files.
Differential Revision: https://reviews.llvm.org/D74878
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/CodeGen/PR44896.ll |
 | clang/lib/CodeGen/CodeGenAction.cpp |
 | clang/include/clang/Basic/DiagnosticDriverKinds.td |
Commit
86e13ec194a01744822606f4473d577cbc2c211a
by arsenm2AMDGPU/GlobalISel: Use packed for G_ADD/G_SUB/G_MUL v2s16
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/mul.v2i16.ll |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-mul.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sub.mir |
Commit
ab41129b1ee1f20d772f9eed346c10edcd70396a
by Louis Dionne[libc++] Proper fix for libc++'s modulemap after D68480
Summary: In libc++, we normally #ifdef out header content instead of #erroring out when the Standard in use is insufficient for the requirements of the header.
Reviewers: EricWF
Subscribers: jkorous, dexonsmith, libcxx-commits, teemperor
Tags: #libc
Differential Revision: https://reviews.llvm.org/D75074
|
 | libcxx/include/barrier |
 | libcxx/test/libcxx/modules/stds_include.sh.cpp |
 | libcxx/include/semaphore |
 | libcxx/include/latch |
Commit
7c2f4a8370829aae5a96b7353fb0727d4e47e8fd
by Louis Dionne[libc++] Revert 03dd205c151 "Adjust max_align_t handling"
That commit was made without approval from a libc++ reviewer, and it also broke the build in C++03 mode.
|
 | libcxx/include/new |
 | libcxx/include/cstddef |
 | libcxx/include/stddef.h |
Commit
c66db2116507d56818c11b28f838d686c5ae4600
by jay.foadAMDGPU/GlobalISel: Un-XFAIL a test
This was missed in 12fe9b26ec88bb2dd40d574a644edca302e804b2
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll |
Commit
69da40033106aadbb452c473ec99c002ff801b12
by pavelRevert "[DWARFDebugLine] Avoid dumping prologue members we did not parse"
The changed test started failing on the windows bots. Reverting while I investigate.
This reverts commit deb116ee0a5b80f61bc341ed68606dc5ad093569.
|
 | llvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test |
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp |
Commit
14845b2c459021e3dbf2ead52d707d4a7db40cbb
by listmailRevert "[LICM] Support hosting of dynamic allocas out of loops"
This reverts commit 8d22100f66c4170510c6ff028c60672acfe1cff9.
There was a functional regression reported (https://bugs.llvm.org/show_bug.cgi?id=44996). I'm not actually sure the patch is wrong, but I don't have time to investigate currently, and this line of work isn't something I'm likely to get back to quickly.
|
 | llvm/lib/Transforms/Scalar/LICM.cpp |
 | llvm/test/Transforms/LICM/hoist-alloca.ll |
Commit
bf6d94f15981dcffe2bd77a35423e25344ecd47d
by Louis Dionne[libc++] Remove incorrect XFAIL in modules test
Apparently, the test still works on single-threaded systems.
|
 | libcxx/test/libcxx/modules/stds_include.sh.cpp |
Commit
342eca29749e3169cd9bb3ca0953519a41a7ca0f
by lebedev.ri[NFC][Codegen] Add miscompile test for constant store merging from PR43446
This miscompile was introduced by rL354676 / https://reviews.llvm.org/D58468
https://bugs.llvm.org/show_bug.cgi?id=43446
|
 | llvm/test/CodeGen/X86/stores-merging.ll |
Commit
d20907d1de89bf63b589fadd8c096d4895e47fba
by lebedev.ri[Codegen] Revert rL354676/rL354677 and followups - introduced PR43446 miscompile
This reverts https://reviews.llvm.org/D58468 (rL354676, 44037d7a6377ec8e5542cced73583283334b516b), and all and any follow-ups to that code block.
https://bugs.llvm.org/show_bug.cgi?id=43446
|
 | llvm/test/CodeGen/X86/pr40631_deadstore_elision.ll |
 | llvm/test/CodeGen/AArch64/ldst-paired-aliasing.ll |
 | llvm/test/CodeGen/X86/constant-combines.ll |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/X86/lifetime-alias.ll |
 | llvm/test/CodeGen/X86/stores-merging.ll |
 | llvm/test/CodeGen/PowerPC/constant-combines.ll |
Commit
eb1c040b413a3542a7a6db2cae0d0d7bc2728a95
by sd.fertile[PowerPC][NFC] Remove comments mentioning Darwin and VRSAVE from lit test.
|
 | llvm/test/CodeGen/PowerPC/sjlj.ll |
Commit
a12f1d6a52a195831da8f38eece08f271e2aa31b
by qcolombet[MachineInstr] Add a dumpr method
Add a dump method that recursively prints an instruction and all the instructions defining its operands and so on.
This is helpful when looking at combiner issue.
NFC
Differential Revision: https://reviews.llvm.org/D75094
|
 | llvm/lib/CodeGen/MachineInstr.cpp |
 | llvm/include/llvm/CodeGen/MachineInstr.h |
Commit
eee22ec3c3712a1089cbdbe66ccf36dd89be507a
by Vedant Kumar[X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h
See discussion on https://reviews.llvm.org/D75091 for information about the build failure and alternatives considered.
|
 | llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h |
Commit
a57d9652a0dcc823921f2d4bac29680db5dbef64
by Yaxun.LiuMake __builtin_amdgcn_dispatch_ptr dereferenceable and align at 4
Differential Revision: https://reviews.llvm.org/D75028
|
 | llvm/include/llvm/IR/IntrinsicsAMDGPU.td |
 | clang/test/CodeGenOpenCL/builtins-amdgcn.cl |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/test/CodeGenCUDA/builtins-amdgcn.cu |
Commit
7f3afd480d95e77fb89565455b65b3ebd716aba1
by scott.linderEmit register names in cfi assembly directives
Update .cfi_undefined, .cfi_register, and .cfi_return_column to print symbolic register arguments.
Differential Revision: https://reviews.llvm.org/D74914
|
 | llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll |
 | llvm/lib/MC/MCAsmStreamer.cpp |
 | llvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll |
 | llvm/test/MC/X86/return-column.s |
 | llvm/test/CodeGen/SPARC/exception.ll |
 | llvm/test/CodeGen/SPARC/reserved-regs.ll |
Commit
915b4aa1392fc865de9139696780ad5107f6cdc8
by scott.linderSupport emitting .cfi_undefined in CodeGen
This will be used by AMDGPU.
Differential Revision: https://reviews.llvm.org/D74914
|
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp |
Commit
481b1c83802f730df5876d01ede2054a738ee37e
by scott.linder[AMDGPU] Implement wave64 DWARF register mapping
Summary: Implement the DWARF register mapping described in llvm/docs/AMDGPUUsage.rst
This is currently limited to wave64 VGPRs/AGPRs.
This also includes some minor changes in AMDGPUInstPrinter, AMDGPUMCTargetDesc, and AMDGPUAsmParser to make generating CFI assembly text and ELF sections possible to ease testing, although complete CFI support is not yet implemented.
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74915
|
 | llvm/lib/Target/AMDGPU/SIRegisterInfo.td |
 | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp |
 | llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp |
 | llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp |
 | llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h |
 | llvm/test/DebugInfo/AMDGPU/print-reg-name.s |
 | llvm/test/DebugInfo/AMDGPU/register-mapping.s |
 | llvm/test/DebugInfo/AMDGPU/variable-locations.ll |
Commit
3cd13c4624b5900c884b691b72d0ca053433f6fe
by jinghamFix a race between lldb's packet timeout and the profile thread's usleep.
The debugserver profile thread used to suspend itself between samples with a usleep. When you detach or kill, MachProcess::Clear would delay replying to the incoming packet until pthread_join of the profile thread returned. If you are unlucky or the suspend delay is long, it could take longer than the packet timeout for pthread_join to return. Then you would get an error about detach not succeeding from lldb - even though in fact the detach was successful...
I replaced the usleep with PThreadEvents entity. Then we just call a timed WaitForEventBits, and when debugserver wants to stop the profile thread, it can set the event bit, and the sleep will exit immediately.
Differential Revision: https://reviews.llvm.org/D75004
|
 | lldb/test/API/macosx/profile_vrs_detach/main.c |
 | lldb/tools/debugserver/source/MacOSX/MachProcess.h |
 | lldb/test/API/macosx/profile_vrs_detach/Makefile |
 | lldb/tools/debugserver/source/MacOSX/MachProcess.mm |
 | lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py |
Commit
922558be9ecb24f51fbe879bf6e55d6aad9f4619
by spatel[PhaseOrdering] add tests for missed CSE; NFC
Also add a RUN line for the new pass manager.
|
 | llvm/test/Transforms/PhaseOrdering/X86/addsub.ll |
Commit
e3add3e5a192ec7f73922a4278f52d335d1f9be5
by martin[libcxx] Fix building for windows after 54fa9ecd3088508
Move the implementation of __libcpp_thread_poll_with_backoff and __libcpp_timed_backoff_policy::operator() out of the _LIBCPP_HAS_THREAD_API_PTHREAD block. None of the code in these methods is pthreads specific.
Also add "inline _LIBCPP_INLINE_VISIBILITY" to __libcpp_timed_backoff_policy::operator(), to avoid errors due to multiple definitions of the operator. Contrary to __libcpp_thread_poll_with_backoff (which is a template function), this is a normal non-templated method.
Differential Revision: https://reviews.llvm.org/D75102
|
 | libcxx/include/__threading_support |
Commit
e11f9fb4508534d31b09d2ba6cd22428ccc75f65
by isanbardAdd 'l' constraint to goto label reference
A goto label uses the 'l' constraint, skipping it can cause unexpected warnings.
|
 | clang/test/Analysis/uninit-asm-goto.cpp |
Commit
0789f280483e315d8bcb5e7005e04e7118983b21
by lebedev.ri[NFC][SCEV] Piping to pass TTI into SCEVExpander::isHighCostExpansionHelper()
Summary: Future patches will make use of TTI to perform cost-model-driven `SCEVExpander::isHighCostExpansionHelper()` This is a fully NFC patch to make things reviewable.
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, zzheng, javed.absar, dmgreen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73704
|
 | llvm/include/llvm/Transforms/Utils/LoopUtils.h |
 | llvm/include/llvm/Analysis/ScalarEvolutionExpander.h |
 | llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp |
 | llvm/include/llvm/Transforms/Utils/UnrollLoop.h |
 | llvm/lib/Transforms/Utils/SimplifyIndVar.cpp |
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
 | llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h |
 | llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp |
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
 | llvm/lib/Transforms/Utils/LoopUtils.cpp |
 | llvm/lib/Target/ARM/MVETailPredication.cpp |
 | llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp |
 | llvm/lib/Transforms/Utils/LoopUnroll.cpp |
 | llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp |
 | llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp |
Commit
b99c91a0872f4b7b7e482c40818bbdda4c967bd5
by lebedev.ri[NFC][SCEV] Piping to pass new SCEVCheapExpansionBudget option into SCEVExpander::isHighCostExpansionHelper()
Summary: In future patches`SCEVExpander::isHighCostExpansionHelper()` will respect the budget allocated by performing TTI cost modelling. This is a fully NFC patch to make things reviewable.
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, zzheng, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73705
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
 | llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp |
 | llvm/include/llvm/Analysis/ScalarEvolutionExpander.h |
 | llvm/lib/Transforms/Utils/LoopUtils.cpp |
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
 | llvm/lib/Transforms/Utils/SimplifyIndVar.cpp |
Commit
1622f3e074cb72feadd6f9d32f21d2030d3bdc47
by lebedev.ri[NFC][SCEV] SCEVExpander::isHighCostExpansionHelper(): check that we processed expression first
Summary: As far as i can tell this is still NFC. Initially in rL146438 it was added at the top of the function, later rL238507 dethroned it, and rL244474 did it again.
I'm not sure if we have already checked the cost of this expansion, we should be doing that again.
Reviewers: reames, mkazantsev, wmi, sanjoy, atrick, igor-laevsky
Reviewed By: mkazantsev
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73706
|
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
Commit
2d8275d72e1602a1869e6286b0ffbf9034ab102b
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansion(): assert if TTI is not provided
Summary: Currently, as per `check-llvm`, we never call `SCEVExpander::isHighCostExpansion()` with null TTI, so this appears to be a safe restriction.
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: javed.absar, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73712
|
 | llvm/include/llvm/Analysis/ScalarEvolutionExpander.h |
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
Commit
f90973f48645d1d1799d7bdb81cd6873e3a8ab71
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansionHelper(): begin cost modelling - model cast cost
Summary: This is not a NFC, although it does not change any of the existing tests. I'm not really sure if we should have specific tests for the cost modelling itself.
This is the first patch that actually makes `SCEVExpander::isHighCostExpansionHelper()` account for the cost of the SCEV expression, and consider the budget available, by modelling cast expressions.
I believe the logic itself is "pretty obviously correct" - from budget, we need to subtract the cost of the cast expression from inner type `Op->getType()` to the `S->getType()` type, and recurse into the expression we are casting.
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: xbolva00, hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73716
|
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
 | llvm/include/llvm/Analysis/ScalarEvolutionExpander.h |
Commit
b8793f0dabc974aec74ce09362d8790d77c6acba
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model UDiv by power-of-two as LShr
Summary: Like with casts, we need to subtract the cost of `lshr` instruction from budget, and recurse into LHS operand. Seems "pretty obviously correct" to me?
To be noted, there is a number of other shortcuts we //could// cost-model: * `... + (-1 * ...)` -> `... - ...` <- likely very frequent case * `x - (rem x, power-of-2)`, which is currently `(x udiv power-of-2) * power-of-2` -> `x & -log2(power-of-2)` * `rem x, power-of-2`, which is currently `x - ((x udiv power-of-2) * power-of-2)` -> `x & log2(power-of-2)-1` * `... * power-of-2` -> `... << log2(power-of-2)` <- likely not very beneficial
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73718
|
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
Commit
b8abdf9a176116271ed121ebd9c6b2194930e5e7
by lebedev.ri[NFC][IndVarSimplify] Adjust value names in IndVarSimplify/exit_value_test2.ll
%tmp prefix confuses auto-update scripts
|
 | llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll |
Commit
cc29600b908ba3aefb41e53398922319841fdb37
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model plain UDiv
Summary: If we don't believe this UDiv is actually a LShr in disguise, things are much worse. First, we try to see if this UDiv actually originates from user code, by looking for `S + 1`, and if found considering this UDiv to be free. But otherwise, we always considered this UDiv to be high-cost.
However that is no longer the case with TTI-driven cost model: our default budget is 4, which matches the default cost of UDiv, so now we allow a single UDiv to not be counted as high-cost.
While that is the case, it is evident this is actually a regression due to the fact that cost-modelling is incomplete - we did not account for the `add`, `mul` costs yet. That is being addressed in D73728.
Cost-modelling for UDiv also seems pretty straight-forward: subtract cost of the UDiv itself, and recurse into both the LHS and RHS.
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73722
|
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll |
Commit
756af2f88bda16a70df200283f833227f336822a
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model add/mul
Summary: While this resolves the regression from D73722 in `llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll`, this now regresses `llvm/test/Transforms/IndVarSimplify/elim-extend.ll` `@nestedIV` test, we no longer can perform that expansion within default budget of `4`, but require budget of `6`. That regression is being addressed by D73777.
The basic idea here is simple. ``` Op0, Op1, Op2 ... | | | \--+--/ | | | \---+---/ ``` I.e. given N operands, we will have N-1 operations, so we have to add cost of an add (mul) for **every** Op processed, **except** the first one, plus we need to recurse into *every* Op.
I'm guessing there's already canonicalization that ensures we won't have `1` operand in `scMulExpr`, and no `0` in `scAddExpr`/`scMulExpr`.
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73728
|
 | llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll |
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/IndVarSimplify/elim-extend.ll |
Commit
0f3c9b54e60b384728c0c24518b8f2645719275e
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model polynomial recurrence
Summary: So, i wouldn't call this *obviously* correct, but i think i got it right this time :)
Roughly, we have ``` Op0*x^0 + Op1*x^1 + Op2*x^2 ... ``` where `Op_{n} * x^{n}` is called term, and `n` the degree of term.
Due to the way they are stored internally in `SCEVAddRecExpr`, i believe we can have `Op_{n}` to be `0`, so we should not charge for those.
I think it is most straight-forward to count the cost in 4 steps: 1. First, count it the same way we counted `scAddExpr`, but be sure to skip terms with zero constants. Much like with `add` expr we will have one less addition than number of terms. 2. Each non-constant term (term degree >= 1) requires a multiplication between the `Op_{n}` and `x^{n}`. But again, only charge for it if it is required - `Op_{n}` must not be 0 (no term) or 1 (no multiplication needed), and obviously don't charge constant terms (`x^0 == 1`). 3. We must charge for all the `x^0`..`x^{poly_degree}` themselves. Since `x^{poly_degree}` is `x * x * ... * x`, i.e. `poly_degree` `x`'es multiplied, for final `poly_degree` term we again require `poly_degree-1` multiplications. Note that all the `x^{0}`..`x^{poly_degree-1}` will be computed for the free along the way there. 4. And finally, the operands themselves.
Here, much like with add/mul exprs, we really don't look for preexisting instructions..
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73741
|
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
Commit
d6f47aeb5198b142072d8ce2bbf2fdd30d116db0
by lebedev.ri[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model min/max (PR44668)
Summary: Previosly we simply always said that `SCEVMinMaxExpr` is too costly to expand. But this isn't really true, it expands into just a comparison+swap pair. And again much like with add/mul, there will be one less such pair than the number of operands. And we need to count the cost of operands themselves.
This does change a number of testcases, and as far as i can tell, all of these changes are improvements, in the sense that we fixed up more latches to do the [in]equality comparison.
This concludes cost-modelling changes, no other SCEV expressions exist as of now.
This is a part of addressing [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]].
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73744
|
 | llvm/test/Transforms/IndVarSimplify/eliminate-trunc.ll |
 | llvm/test/Transforms/IndVarSimplify/iv-widen.ll |
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/IndVarSimplify/elim-extend.ll |
 | llvm/test/Transforms/IndVarSimplify/loop-invariant-conditions.ll |
 | llvm/test/Transforms/IndVarSimplify/lftr-multi-exit.ll |
 | llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll |
 | llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll |
 | llvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll |
 | llvm/test/Transforms/IndVarSimplify/full_widening.ll |
 | llvm/test/Transforms/IndVarSimplify/lftr-reuse.ll |
Commit
44edc6fd2c63b7db43e13cc8caf1fee79bebdb5f
by lebedev.ri[SCEV] rewriteLoopExitValues(): even if have hard uses, still rewrite if cheap (PR44668)
Summary: Replacing uses of IV outside of the loop is likely generally useful, but `rewriteLoopExitValues()` is cautious, and if it isn't told to always perform the replacement, and there are hard uses of IV in loop, it doesn't replace.
In [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]], that prevents `-indvars` from replacing uses of induction variable after the loop, which might be one of the optimization failures preventing that code from being vectorized.
Instead, now that the cost model is fixed, i believe we should be a little bit more optimistic, and also perform replacement if we believe it is within our budget.
Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]].
Reviewers: reames, mkazantsev, asbirlea, fhahn, skatkov
Reviewed By: mkazantsev
Subscribers: nikic, hiraditya, zzheng, javed.absar, dmgreen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73501
|
 | llvm/test/Transforms/IndVarSimplify/do-recompute-if-cheap.ll |
 | llvm/lib/Transforms/Utils/LoopUtils.cpp |
 | llvm/test/Transforms/IndVarSimplify/dont-recompute.ll |
 | llvm/test/Transforms/IndVarSimplify/elim-extend.ll |
 | llvm/test/Transforms/IndVarSimplify/pr28705.ll |
 | llvm/test/Transforms/IndVarSimplify/lrev-existing-umin.ll |
 | llvm/test/Transforms/IndVarSimplify/pr39673.ll |
Commit
400ceda425ab392096ff2800acad41a4322974d2
by lebedev.ri[SCEV][IndVars] Always provide insertion point to the SCEVExpander::isHighCostExpansion()
Summary: This addresses the `llvm/test/Transforms/IndVarSimplify/elim-extend.ll` `@nestedIV` regression from D73728
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73777
|
 | llvm/test/Transforms/IndVarSimplify/elim-extend.ll |
 | llvm/include/llvm/Analysis/ScalarEvolutionExpander.h |
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
 | llvm/lib/Analysis/ScalarEvolutionExpander.cpp |
Commit
6d0d1a63f2a6c120f206a83e7c1ddae9fa5a569a
by isanbardUse "nop" to avoid size warnings.
|
 | clang/test/Analysis/uninit-asm-goto.cpp |
Commit
6201f6601dec03e44424ad2d5cc04a9766f194b1
by zoecarverCheck args passed to __builtin_frame_address and __builtin_return_address.
Verifies that an argument passed to __builtin_frame_address or __builtin_return_address is within the range [0, 0xFFFF]
Differential revision: https://reviews.llvm.org/D66839
Re-committed after fixed: c93112dc4f745b0455addb54bfe1c2f79b827c6d
|
 | clang/test/Sema/builtin-stackaddress.c |
 | clang/lib/Sema/SemaChecking.cpp |
Commit
c5ce6d8b561a5b2790a56803df24f800df7a76a8
by craig.topper[X86] Add test to show incorrect ordering of flt.rounds intrinsic relative to calls to fesetround.
We don't order flt.rounds intrinsics relative to side effecting operations in SelectionDAG. And we CSE multiple calls because of this.
|
 | llvm/test/CodeGen/X86/flt-rounds.ll |
Commit
63cef621f954eb87c494021725f4eeac89132d16
by a.bataev[LIBOMPTARGET]Fix PR44933: fix crash because of the too early deinitialization of libomptarget.
Summary: Instead of using global variables with unpredicted time of deinitialization, use dynamically allocated variables with functions explicitly marked as global constructor/destructor and priority. This allows to prevent the crash because of the incorrect order of dynamic libraries deinitialization.
Reviewers: grokos, hfinkel
Subscribers: caomhin, kkwli0, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D74837
|
 | openmp/libomptarget/src/device.cpp |
 | openmp/libomptarget/src/interface.cpp |
 | openmp/libomptarget/src/rtl.cpp |
 | openmp/libomptarget/src/rtl.h |
 | openmp/libomptarget/test/offloading/dynamic_module_load.c |
 | openmp/libomptarget/src/omptarget.cpp |
 | openmp/libomptarget/src/api.cpp |
Commit
430512ed7d7b5e1052fb3b671d8e54fc3afcf490
by Akira[ObjC][ARC] Don't move a retain call living outside a loop into the loop body
We started seeing cases where ARC optimizer would move retain calls into loop bodies, causing imbalance in the number of retain and release calls, after changes were made to delete inert ARC calls since the inert calls that used to block code motion are gone.
Fix the bug by setting the CFG hazard flag when visiting a loop header.
rdar://problem/56908836
|
 | llvm/test/Transforms/ObjCARC/cfg-hazards.ll |
 | llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp |
Commit
9c54f6154f748e707ad2385ddf6d66e812890c6a
by yitzhakm[libTooling] Add function to determine associated text of a declaration.
Summary: This patch adds `getAssociatedRange` which, for a given decl, computes preceding and trailing text that would conceptually be associated with the decl by the reader. This includes comments, whitespace, and separators like ';'.
Reviewers: gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72153
|
 | clang/include/clang/Tooling/Transformer/SourceCode.h |
 | clang/unittests/Tooling/SourceCodeTest.cpp |
 | clang/lib/Tooling/Transformer/SourceCode.cpp |
Commit
0906dca493b3cec36d7fc3fe9f079c0a5288515d
by tlively[WebAssembly] Simplify extract_vector lowering
Summary: Removes patterns that were not doing useful work, changes the default extract instructions to be the unsigned versions now that they are enabled by default, fixes PR44988, and adds tests for sext_inreg lowering.
Reviewers: aheejin
Reviewed By: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75005
|
 | llvm/test/CodeGen/WebAssembly/simd.ll |
 | llvm/test/CodeGen/WebAssembly/simd-sext-inreg.ll |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
 | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp |
 | llvm/test/CodeGen/WebAssembly/simd-arith.ll |
Commit
396b7253944e927878dff2f6321efabb3aaa0f45
by johannes[OpenMP][Opt] Combine `struct ident_t*` during deduplication
If we deduplicate OpenMP runtime calls we have multiple `ident_t*` that represent information like source location. So far, we simply kept the one used by the replacement call. However, as exposed by PR44893, that can cause problems if we have stack allocated `ident_t` objects. While we need to revisit the use of these as well, it is clear that we eventually want to merge source location information in some way. With this patch we add the infrastructure to do so but without doing the actual merge. Instead we pick a global `ident_t` from the replaced calls, if possible, or create a new one with an unknown location instead.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D74925
|
 | llvm/test/Transforms/OpenMP/deduplication.ll |
 | clang/test/OpenMP/PR44893.c |
 | llvm/test/Transforms/OpenMP/gtid.ll |
 | llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h |
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
6d2372ce584f0fd26575e31d63278b98be2cfa1c
by Cyndy Ishida[llvm][TextAPI] rename test vars, NFC
* Conforms to clang tidy
|
 | llvm/unittests/TextAPI/TextStubV1Tests.cpp |
 | llvm/unittests/TextAPI/TextStubV3Tests.cpp |
 | llvm/unittests/TextAPI/TextStubV2Tests.cpp |
Commit
b8fdafe68ce25b7ff4d31720548622e28db87ebf
by lebedev.ri[Sema] Perform call checking when building CXXNewExpr
Summary: There was even a TODO for this. The main motivation is to make use of call-site based `__attribute__((alloc_align(param_idx)))` validation (D72996).
Reviewers: rsmith, erichkeane, aaron.ballman, jdoerfert
Reviewed By: rsmith
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73020
|
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/test/SemaCXX/operator-new-size-diagnose_if.cpp |
 | clang/test/SemaCXX/std-align-val-t-in-operator-new.cpp |
 | clang/test/SemaCXX/diagnose_if.cpp |
 | clang/lib/Sema/SemaChecking.cpp |
Commit
3dd5a298bfff48c0939448c9b4bc987cf6bb5385
by lebedev.ri[clang] Annotating C++'s `operator new` with more attributes
Summary: Right now we annotate C++'s `operator new` with `noalias` attribute, which very much is healthy for optimizations.
However as per [[ http://eel.is/c++draft/basic.stc.dynamic.allocation | `[basic.stc.dynamic.allocation]` ]], there are more promises on global `operator new`, namely: * non-`std::nothrow_t` `operator new` *never* returns `nullptr` * If `std::align_val_t align` parameter is taken, the pointer will also be `align`-aligned * ~~global `operator new`-returned pointer is `__STDCPP_DEFAULT_NEW_ALIGNMENT__`-aligned ~~ It's more caveated than that.
Supplying this information may not cause immediate landslide effects on any specific benchmarks, but it for sure will be healthy for optimizer in the sense that the IR will better reflect the guarantees provided in the source code.
The caveat is `-fno-assume-sane-operator-new`, which currently prevents emitting `noalias` attribute, and is automatically passed by Sanitizers ([[ https://bugs.llvm.org/show_bug.cgi?id=16386 | PR16386 ]]) - should it also cover these attributes? The problem is that the flag is back-end-specific, as seen in `test/Modules/explicit-build-flags.cpp`. But while it is okay to add `noalias` metadata in backend, we really should be adding at least the alignment metadata to the AST, since that allows us to perform sema checks on it.
Reviewers: erichkeane, rjmccall, jdoerfert, eugenis, rsmith
Reviewed By: rsmith
Subscribers: xbolva00, jrtc27, atanasyan, nlopes, cfe-commits
Tags: #llvm, #clang
Differential Revision: https://reviews.llvm.org/D73380
|
 | clang/test/AST/ast-dump-stmt-json.cpp |
 | clang/lib/CodeGen/CGCall.cpp |
 | clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp |
 | clang/test/CodeGenCXX/multi-dim-operator-new.cpp |
 | clang/test/CodeGenCoroutines/coro-gro-nrvo.cpp |
 | clang/test/CodeGenCXX/new-array-init.cpp |
 | clang/test/CodeGenCXX/builtin-calling-conv.cpp |
 | clang/test/CodeGenObjCXX/copy.mm |
 | clang/include/clang/AST/Decl.h |
 | clang/test/CodeGenCXX/cxx1z-aligned-allocation.cpp |
 | clang/test/CodeGenCXX/goto.cpp |
 | clang/test/CodeGenCXX/delete-two-arg.cpp |
 | clang/test/Analysis/new-ctor-null-throw.cpp |
 | clang/test/CodeGenCXX/dllimport.cpp |
 | clang/test/Analysis/new-ctor-null.cpp |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/test/CodeGenCXX/align-avx-complete-objects.cpp |
 | clang/test/CodeGenCXX/new-overflow.cpp |
 | clang/test/CodeGenCoroutines/coro-return.cpp |
 | clang/test/CodeGenObjCXX/arc-new-delete.mm |
 | clang/test/CodeGenCXX/new.cpp |
 | clang/test/SemaCXX/new-delete.cpp |
 | clang/test/CodeGenCXX/microsoft-abi-array-cookies.cpp |
 | clang/test/CodeGenCXX/dllexport.cpp |
 | clang/test/CodeGenCXX/operator-new.cpp |
 | clang/test/SemaCXX/builtin-operator-new-delete.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/test/CodeGenCXX/mips-size_t-ptrdiff_t.cpp |
 | clang/test/CodeGenCXX/builtin-is-constant-evaluated.cpp |
 | clang/test/CodeGenCXX/cxx11-initializer-array-new.cpp |
 | clang/test/CodeGenCXX/new-alias.cpp |
 | clang/test/CodeGenCoroutines/coro-alloc.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/test/Analysis/new-ctor-malloc.cpp |
 | clang/test/CodeGenCXX/arm.cpp |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/test/CodeGenCXX/runtime-dllstorage.cpp |
 | clang/test/CodeGenCXX/static-init.cpp |
 | clang/test/CodeGenCXX/builtin-operator-new-delete.cpp |
 | clang/test/CodeGenCoroutines/coro-gro.cpp |
 | clang/test/CodeGenCXX/exceptions.cpp |
 | clang/lib/AST/Decl.cpp |
 | clang/test/CodeGenCoroutines/coro-cleanup.cpp |
Commit
8594f3d8990960f062b8ed5184f7d7cc9337e78f
by Vedant KumarRevert "[X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h"
This reverts commit eee22ec3c3712a1089cbdbe66ccf36dd89be507a.
This is not the correct fix, the root cause seems to be a bug in the stage1 host clang compiler. See https://reviews.llvm.org/D75091 for more discussion.
|
 | llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h |
Commit
3b5530cf9647cf79ee45aef42c4f5fa7cc9acfd9
by Louis Dionne[libc++] Avoid including <semaphore.h> on Apple
It turns out that <semaphore.h> is not well-behaved, as it transitively includes <sys/param.h>, and that one defines several non-reserved macros that clash with some downstream projects in modular builds. For the time being, using <sys/semaphore.h> instead gives us the declarations we need without the macros.
rdar://59744472
|
 | libcxx/include/__threading_support |
Commit
4b2b8b96db2837a95e8c3ceca3f31ac5641ca001
by Jason MolendaRe-land Unwind past an interrupt handler correctly on arm or at pc==0
Updated the patch to only fetch $pc on a Return Address-using target only if we're in a trap frame *and* if there is a saved location for $pc in the trap frame's unwind rules. If not, we fall back to fetching the Return Address register (eg $lr).
Original commit msg:
Unwind past an interrupt handler correctly on arm or at pc==0
Fix RegisterContextLLDB::InitializeNonZerothFrame so that it will fetch a FullUnwindPlan instead of falling back to the architectural default unwind plan -- GetFullUnwindPlan knows how to spot a jmp 0x0 that results in a fault, which may be the case when we see a trap handler on the stack.
Fix RegisterContextLLDB::SavedLocationForRegister so that when the pc value is requested from a trap handler frame, where we have a complete register context available to us, don't provide the Return Address register (lr) instead of the pc. We have an actual pc value here, and it's pointing to the instruction that faulted.
Differential revision: https://reviews.llvm.org/D75007 <rdar://problem/59416588>
|
 | lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp |
Commit
b3e6487f02ac98b6c4a501f5da10c867bd98f769
by riddleriver[mlir][DenseElementsAttr] Fix storage size for bfloat16 when parsing from hex.
Summary: bfloat16 is stored internally as a double, so we can't direct use Type::getIntOrFloatBitWidth.
Differential Revision: https://reviews.llvm.org/D75133
|
 | mlir/lib/Parser/Parser.cpp |
 | mlir/test/IR/dense-elements-hex.mlir |