Commit
9c859fc54d92ce6890c9b17addb411a4b577e165
by kerry.mclaughlin[AArch64][SVE] Add SVE2 intrinsics for bit permutation & table lookup
Summary: Implements the following intrinsics: - @llvm.aarch64.sve.bdep.x - @llvm.aarch64.sve.bext.x - @llvm.aarch64.sve.bgrp.x - @llvm.aarch64.sve.tbl2 - @llvm.aarch64.sve.tbx
The SelectTableSVE2 function in this patch is used to select the TBL2 intrinsic & ensures that the vector registers allocated are consecutive.
Reviewers: sdesmalen, andwar, dancgr, cameron.mcinally, efriedma, rengolin
Reviewed By: efriedma
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74912
|
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/test/CodeGen/AArch64/sve2-intrinsics-perm-tb.ll |
 | llvm/test/CodeGen/AArch64/sve2-intrinsics-bit-permutation.ll |
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
Commit
2dcbdba85406e498b885570c05e9573ddc3e4a81
by dvyukovtsan: fix pthread_detach with called_from_lib suppressions
Generally we ignore interceptors coming from called_from_lib-suppressed libraries. However, we must not ignore critical interceptors like e.g. pthread_create, otherwise runtime will lost track of threads. pthread_detach is one of these interceptors we should not ignore as it affects thread states and behavior of pthread_join which we don't ignore as well. Currently we can produce very obscure false positives. For more context see: https://groups.google.com/forum/#!topic/thread-sanitizer/ecH2P0QUqPs The added test captures this pattern.
While we are here rename ThreadTid to ThreadConsumeTid to make it clear that it's not just a "getter", it resets user_id to 0. This lead to confusion recently.
Reviewed in https://reviews.llvm.org/D74828
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h |
 | compiler-rt/test/tsan/ignore_lib6.cpp.supp |
 | compiler-rt/test/tsan/ignore_lib6.cpp |
Commit
546918cbb4b2231c65cf91fceb738a59d03af7bf
by hansRevert "[compiler-rt] Add a critical section when flushing gcov counters"
See discussion on PR44792.
This reverts commit 02ce9d8ef5a84bc884de4105eae5f8736ef67634.
It also reverts the follow-up commits 8f46269f0 "[profile] Don't dump counters when forking and don't reset when calling exec** functions" 62c7d8402 "[profile] gcov_mutex must be static"
|
 | compiler-rt/lib/profile/GCDAProfiling.c |
 | clang/lib/Driver/ToolChains/Darwin.cpp |
 | llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp |
Commit
1b30b49436568c1b554d4d1c9b4b72fa3c2baf94
by thakis[gn build] (manually) merge e058667a2e01
|
 | llvm/utils/gn/secondary/clang/test/BUILD.gn |
Commit
5560a78820ee7cecd1ad14f5a96889459dd36766
by hokein.wu[clangd] Bump index version number.
Summary: Though we don't have new changes to the index format, we have changes to symbol collector, e.g. collect marcos, spelled references. Bump the version to force background-index to rebuild.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74127
|
 | clang-tools-extra/clangd/index/Serialization.cpp |
Commit
8c2cf499e6119be8f3f1a0d42c4bb7e45b0d615d
by kadircet[clang][Tooling] Add a way to tokenize a FileRange
Reviewers: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74962
|
 | clang/lib/Tooling/Syntax/Tokens.cpp |
 | clang/include/clang/Tooling/Syntax/Tokens.h |
 | clang/unittests/Tooling/Syntax/TokensTest.cpp |
Commit
6e34a9a838c150b968b05b76d545969d1ddeee90
by kbobyrev[OpenMP] Fix the test by generating output file in temporary directory
Related Revison: D74925 Commit: 396b7253944e927878dff2f6321efabb3aaa0f45
|
 | clang/test/OpenMP/PR44893.c |
Commit
ce75c3d2b62ca6272aa0dee39c8ed06a19336005
by thakis[gn build] (manually) port 2f6cc21f44e
|
 | llvm/utils/gn/secondary/llvm/test/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/tools/llvm-gsym/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/lib/DebugInfo/GSYM/BUILD.gn |
Commit
8f8756d465e4743c7cffebc26de682e864c94d57
by evgeny[Assembler] Allow assembling empty index with non-zero flags
Differential revision: https://reviews.llvm.org/D74778
|
 | llvm/test/Assembler/summary-flags2.ll |
 | llvm/tools/llvm-as/llvm-as.cpp |
Commit
cfbe889af58c758853e84f8fa7a7822e22f2a9e3
by thakis[gn build] re-"gn format" all gn files
|
 | llvm/utils/gn/secondary/llvm/lib/BinaryFormat/BUILD.gn |
 | llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/tests/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn |
 | llvm/utils/gn/secondary/llvm/tools/llvm-objcopy/BUILD.gn |
Commit
319ea2dd9e32cd10415e1f5060e84febf7c606c6
by sven.vanhaastregt[OpenCL] Add atomic type builtins
Add atomic types and builtins operating on those atomic types to `-fdeclare-opencl-builtins`. The _explicit variants are left out of this commit, as these take enum arguments that are not yet supported by the `-fdeclare-opencl-builtins` machinery.
|
 | clang/lib/Sema/OpenCLBuiltins.td |
Commit
fcfd4fb686b83a5c8c7ba2c3bd4992ff24e83870
by ntv[mlir][Linalg] NFC - Refactor LinalgStructuredOps towards "named" Linalg ops
This revision performs some basic refactoring towards more easily defining Linalg "named" ops. Such named ops form the backbone of operations that are ubiquitous in the ML application domain.
|
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h |
 | mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td |
 | mlir/lib/Dialect/Linalg/IR/CMakeLists.txt |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h |
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp |
Commit
0f1df4892538ccd9ecc23d68c65c7bd2b00f3f01
by nicolai.haehnleAMDGPU/SIInsertSkips: Fix the determination of whether early-exit-after-kill is possible
Summary: The old code made some incorrect assumptions about the order in which basic blocks are laid out in a function. This could lead to incorrect early-exits, especially when kills occurred inside of loops.
The new approach is to check whether the point where the conditional kill occurs dominates all reachable code. If that is the case, there cannot be any other threads in the wave that are waiting to rejoin at a later point in the CFG, i.e. if exec=0 at that point, then all threads really are dead and we can exit the wave.
Make some other minor cleanups to the pass while we're at it.
v2: preserve the dominator tree
Reviewers: arsenm, cdevadas, foad, critson
Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74908
Change-Id: Ia0d2b113ac944ad642d1c622b6da1b20aa1aabcc
|
 | llvm/test/CodeGen/AMDGPU/skip-if-dead.ll |
 | llvm/lib/Target/AMDGPU/SIInsertSkips.cpp |
Commit
09a6b26753d739c577a92ef715c0bcedd3dc3c0d
by jay.foadAMDGPU: Fix some more incorrect check lines
|
 | llvm/test/CodeGen/AMDGPU/flat-load-clustering.mir |
 | llvm/test/CodeGen/AMDGPU/lds-bounds.ll |
 | llvm/test/CodeGen/AMDGPU/kernel-args.ll |
 | llvm/test/CodeGen/AMDGPU/constant-fold-imm-immreg.mir |
 | llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll |
 | llvm/test/CodeGen/AMDGPU/v_cndmask.ll |
 | llvm/test/CodeGen/AMDGPU/wave32.ll |
 | llvm/test/CodeGen/AMDGPU/bitcast-v4f16-v4i16.ll |
 | llvm/test/CodeGen/AMDGPU/gfx10-vop-literal.ll |
 | llvm/test/CodeGen/AMDGPU/waitcnt-preexisting.mir |
 | llvm/test/CodeGen/AMDGPU/global-saddr.ll |
 | llvm/test/CodeGen/AMDGPU/global_atomics_i64.ll |
Commit
38b4516de8a4a791d17085d37f95e3cc15c359f9
by yitzhakm[libTooling] Add function to determine associated text of a declaration.
Summary: Second attempt -- the first was reverted in commit 0e480b39c66143ad142f9a30d8d40e49d7d7b0ce, because of test breakages. This revision fixes the cause of the test breakages.
Original description follows: 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
0aec4b418ebc9490d6fefbe4d18dee0aeeced2ed
by nicolai.haehnleQuick fix for bot failure on "AMDGPU/SIInsertSkips: Fix the determination of whether early-exit-after-kill is possible"
Apparently the dominator tree update is incorrect, will investigate.
Change-Id: Ie76f8d11b22a552af1f098c893773f3d85e02d4f
|
 | llvm/lib/Target/AMDGPU/SIInsertSkips.cpp |
Commit
41a6612ea8afc5254e4de3aca55628d37f0be433
by hansPut microsoft template parameter shadow warning behind separate flag (PR44794)
Differential revision: https://reviews.llvm.org/D75121
|
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/SemaCXX/microsoft-template-shadow.cpp |
 | clang/include/clang/Basic/DiagnosticGroups.td |
Commit
e7375e993248ff39e664caeea9b8a0c8b0e489b5
by Xiangling.Liao[AIX] Remove whitelist checking for ExternalSymbolSDNodes
Allow all ExternalSymbolSDNode on AIX, and rely on the linker error to find symbols which we don't have definitions from any library/compiler-rt.
Differential Revision: https://reviews.llvm.org/D75075
|
 | llvm/test/CodeGen/PowerPC/aix-external-sym-sdnode-lowering.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
Commit
9eb3cc10b2c6f78ccf033cb264113fc904651cd0
by simon.tatham[ARM,MVE] Add predicated intrinsics for many unary functions.
Summary: This commit adds the predicated MVE intrinsics for the same set of unary operations that I added in their unpredicated forms in
* D74333 (vrint) * D74334 (vrev) * D74335 (vclz, vcls) * D74336 (vmovl) * D74337 (vmovn)
but since the predicated versions are a lot more similar to each other, I've kept them all together in a single big patch. Everything here is done in the standard way we've been doing other predicated operations: an IR intrinsic called `@llvm.arm.mve.foo.predicated` and some isel rules that match that alongside whatever they accept for the unpredicated version of the same instruction.
In order to write the isel rules conveniently, I've refactored the existing isel rules for the affected instructions into multiclasses parametrised by a vector-type class, in the usual way. All those refactorings are intended to leave the existing isel rules unchanged: the only difference should be that new ones for the predicated intrinsics are introduced.
The only tiny infrastructure change I needed in this commit was to change the implementation of `IntrinsicMX` in `arm_mve_defs.td` so that the records it defines are anonymous rather than named (and use `NameOverride` to set the output intrinsic name), which allows me to call it twice in two multiclasses with the same `NAME` without a tablegen-time error.
Reviewers: dmgreen, MarkMurrayARM, miyuki, ostannard
Reviewed By: MarkMurrayARM
Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D75165
|
 | llvm/include/llvm/IR/IntrinsicsARM.td |
 | clang/include/clang/Basic/arm_mve_defs.td |
 | llvm/lib/Target/ARM/ARMInstrMVE.td |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vclzcls-predicated.ll |
 | clang/test/CodeGen/arm-mve-intrinsics/vmovn.c |
 | clang/test/CodeGen/arm-mve-intrinsics/vrev.c |
 | clang/test/CodeGen/arm-mve-intrinsics/vclz.c |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/absneg-predicated.ll |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vrint-predicated.ll |
 | clang/include/clang/Basic/arm_mve.td |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vmovn.ll |
 | clang/test/CodeGen/arm-mve-intrinsics/absneg.c |
 | clang/test/CodeGen/arm-mve-intrinsics/vmovl.c |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vrev.ll |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vcvt-fp-int.ll |
 | clang/test/CodeGen/arm-mve-intrinsics/vcvt.c |
 | clang/test/CodeGen/arm-mve-intrinsics/vrnd.c |
 | llvm/test/CodeGen/Thumb2/mve-intrinsics/vmovl.ll |
Commit
d6b05fccb709eb38b5b4b21901cb63825faee83e
by nicolai.haehnleFull fix for "AMDGPU/SIInsertSkips: Fix the determination of whether early-exit-after-kill is possible" (hopefully)
Properly preserve the MachineDominatorTree in all cases.
Change-Id: I54cf0c0a20934168a356920ba8ed5097a93c4131
|
 | llvm/lib/Target/AMDGPU/SIInsertSkips.cpp |
Commit
02323a3d5f9ea676865f78d603e68fa4b4b62608
by hokein.wu[clangd] use printQualifiedName to skip the inlinenamespace qualifiers.
Summary: symbols in libcpp are inside the inline namespace, printQualifierAsString will print the inline namespace, which is unexpected.
Reviewers: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75174
|
 | clang-tools-extra/clangd/unittests/RenameTests.cpp |
 | clang-tools-extra/clangd/refactor/Rename.cpp |
Commit
e8c5fea243ce30640ec9707fabdb635a49b3153c
by jbcoe[clang-format] Special handling of spaces for C# code
Summary: Ensure that there are spaces around braces '{', '}'.
Ensure that there is a space before and after '=>'.
Ensure that 'async' and 'when' are considered as keywords when inserting spaces.
Reviewers: krasimir, MyDeveloperDay
Reviewed By: krasimir
Tags: #clang-format
Differential Revision: https://reviews.llvm.org/D75129
|
 | clang/lib/Format/TokenAnnotator.cpp |
 | clang/lib/Format/FormatToken.h |
 | clang/unittests/Format/FormatTestCSharp.cpp |
Commit
ced45978a2a5b258421590214f46848e726144b8
by pavelRecommit "[DWARFDebugLine] Avoid dumping prologue members we did not parse"
The patch was reverted in 69da40033 because of test failures on windows. The problem was the unpredictable order of some of the error messages, which I've tried to strenghten in that patch.
It turns out this is not possible to do in verbose mode because there the data is being writted as it is being parsed. No amount of flushing (as I've done in the non-verbose mode) will help that. Indeed, even without any buffering the warning messages can end in the middle of a line in non-verbose mode.
In this patch, I have reverted the changes which tested the relative position of the warning message, except for the messages about unsupported initial length, which are the ones I really wanted to test, and which do come out reasonably.
The original commit message was:
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/DWARFContext.cpp |
 | llvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp |
Commit
bbb0933e3d8c45916928ab2b8a13f69a30bfd34a
by llvm-dev[DAG] visitRotate - modulo non-uniform constant rotation amounts
|
 | llvm/test/CodeGen/X86/vector-fshl-rot-256.ll |
 | llvm/test/CodeGen/X86/vector-rotate-256.ll |
 | llvm/test/CodeGen/X86/vector-fshr-rot-256.ll |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
594130db0a56c3c3d889f750c5c971fac6f33594
by pavelAdd unit tests for RangeDataVector::FindEntryIndexesThatContain
Summary: This adds unit tests for FindEntryIndexesThatContain, this is done in preparation for changing the logic of the function.
Reviewers: labath, teemperor
Reviewed By: labath
Subscribers: arphaman, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D75180
|
 | lldb/unittests/Utility/RangeMapTest.cpp |
Commit
894ce940db5909cf43a428ee9cb4e99b74d9b58e
by spatel[AArch64] add tests for fake fneg; NFC
See comments in D73978 for background.
|
 | llvm/test/CodeGen/AArch64/arm64-fp.ll |
Commit
07eb82fc06cc41a64d136d046e6b30565c3e5579
by mvelsAdd _LIBCPP_BUILTIN_CONSTANT_P support.
Summary: This change adds the macros _LIBCPP_COMPILER_HAS_BUILTIN_CONSTANT and _LIBCPP_BUILTIN_CONSTANT_P to detect compile time constants, and optimze the code accordingly.
A planned usage example: The implementation of basic_string::assign() can short-cut a compile time known short string assignent into a fast and compact inlined assignment:
``` basic_string::assign(const value_type* __s) { if (_LIBCPP_BUILTIN_CONSTANT_P(__s[0]) && length(__s) < __min_cap) { copy(pointer(), _s, length(__s) + 1); set_size(length(__s)); } else { // delegate / tail call out of line implementation } } ```
Subscribers: christof, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D73732
|
 | libcxx/include/__config |
Commit
3c36d8dad57712f6616a197632e754541e71edf4
by pavelIntroduce DWARFDataExtractor::getInitialLength
Summary: This patch introduces a function to house the code needed to do the DWARF64 detection dance. The function decodes the initial length field and returns it as a pair containing the actual length, and the DWARF encoding.
This patch does _not_ attempt to handle the problem of detecting lengths which extend past the size of the section, or cases when reads of a single contribution accidentally escape beyond its specified length, but I think it's useful in its own right.
Reviewers: dblaikie, jhenderson, ikudrin
Subscribers: hiraditya, probinson, aprantl, JDevlieghere, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74560
|
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h |
 | llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp |
 | llvm/unittests/DebugInfo/DWARF/CMakeLists.txt |
 | llvm/unittests/DebugInfo/DWARF/DWARFDataExtractorTest.cpp |
Commit
299c3e13fbd256d96f66a4625944ac7ccbb9cc86
by llvmgnsyncbot[gn build] Port 3c36d8dad57
|
 | llvm/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn |
Commit
b3d0c798367d1dbf07d0357260b432571bff5c7d
by spatel[DAGCombiner] avoid narrowing fake fneg vector op
This may inhibit vector narrowing in general, but there's already an inconsistency in the way that we deal with this pattern as shown by the test diff.
We may want to add a dedicated function for narrowing fneg. It's often folded into some other op, so moving it away from other math ops may cause regressions that we would not see for normal binops.
See D73978 for more details.
|
 | llvm/test/CodeGen/AArch64/arm64-fp.ll |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
2011d14296eeaae911e898d11154ee5d1a5db1d6
by kadircet[clangd] Clean-up XRefs.cpp from Lexer usages and unnecessary SourceLoc transformations
Summary: Get rid of calls to lexer and unnecessary source location transformations.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75166
|
 | clang-tools-extra/clangd/unittests/XRefsTests.cpp |
 | clang-tools-extra/clangd/XRefs.cpp |
Commit
423194098b88dfea86cca6f8e203e9d88f70abc9
by maskray[ELF] --orphan-handling=: don't warn/error for unused synthesized sections
This makes --orphan-handling= less noisy. This change also improves our compatibility with GNU ld.
GNU ld special cases .symtab, .strtab and .shstrtab . We need output section descriptions for .symtab, .strtab and .shstrtab to suppress:
<internal>:(.symtab) is being placed in '.symtab' <internal>:(.shstrtab) is being placed in '.shstrtab' <internal>:(.strtab) is being placed in '.strtab'
With --strip-all, .symtab and .strtab can be omitted (note, --strip-all is not compatible with --emit-relocs).
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D75149
|
 | lld/ELF/LinkerScript.h |
 | lld/ELF/LinkerScript.cpp |
 | lld/test/ELF/linkerscript/orphan-report.s |
 | lld/ELF/Writer.cpp |
Commit
6503aadcc6c96aecfd3489da5dc3887216948a47
by maskray[llvm-objcopy][test] Improve empty section tests
empty-sections.test: add two tests adapted from @jhenderson's https://reviews.llvm.org/D74755#1882221 strip-non-alloc.test: improve. D74755 will change the attribution of an empty section.
They mostly test the behavior of Object.cpp:sectionWithinSegment : how we attribute sections to segments. `ParentSegment` can affect some subtle layout decisions.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D74879
|
 | llvm/test/tools/llvm-objcopy/ELF/strip-non-alloc.test |
 | llvm/test/tools/llvm-objcopy/ELF/empty-section.test |
Commit
465dca79b311115d173fd001afd403557d78c2bb
by rnkAvoid SmallString.h include in MD5.h, NFC
Saves 200 includes, which is mostly immaterial.
|
 | llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp |
 | llvm/tools/llvm-diff/DifferenceEngine.cpp |
 | llvm/include/llvm/Support/MD5.h |
 | llvm/lib/Transforms/Coroutines/CoroFrame.cpp |
 | llvm/lib/Support/MD5.cpp |
Commit
805f5836d1bbd03dcc9de78881bd81dc8cb09cc4
by alexbrachetmialot[libc] Fix build when -DBUILD_SHARED_LIBS=On
Reviewers: gchatelet, sivachandra
Reviewed By: gchatelet, sivachandra
Subscribers: libc-commits, mgorny, MaskRay, tschuett
Differential Revision: https://reviews.llvm.org/D75136
|
 | libc/utils/testutils/CMakeLists.txt |
 | libc/utils/UnitTest/CMakeLists.txt |
Commit
590dc8d02cd781b110a87b82476c3557cb5957c3
by john.brawnUse virtual functions in ParsedAttrInfo instead of function pointers
This doesn't do anything on its own, but it's the first step towards allowing plugins to define attributes. It does simplify the ParsedAttrInfo generation in ClangAttrEmitter a little though.
Differential Revision: https://reviews.llvm.org/D31337
|
 | clang/lib/Sema/ParsedAttr.cpp |
 | clang/utils/TableGen/ClangAttrEmitter.cpp |
Commit
73c3b52676a1ec2418429665bd3724df4e695340
by sd.fertile[PowerPC][NFC] Convert grep usage to FileCheck in lit test.
|
 | llvm/test/CodeGen/PowerPC/vec_vrsave.ll |
Commit
387c3f74fd8efdc0be464b0e1a8033cc1eeb739c
by Steven Wu[compiler-rt] Build all alias in builtin as private external on Darwin
Summary: For builtin compiler-rt, it is built with visibility hidden by default to avoid the client exporting symbols from libclang static library. The compiler option -fvisibility=hidden doesn't work on the aliases in c files because they are created with inline assembly. On Darwin platform, thoses aliases are exported by default if they are reference by the client.
Fix the issue by adding ".private_extern" to all the aliases if the library is built with visibility hidden.
rdar://problem/58960296
Reviewers: dexonsmith, arphaman, delcypher, kledzik
Reviewed By: delcypher
Subscribers: dberris, jkorous, ributzka, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D73577
|
 | compiler-rt/lib/builtins/int_lib.h |
Commit
1e9321e97aba43e41ccd7ab2f1bef41d5bcf65af
by antiagainst[mlir][spirv] NFC: move folders and canonicalizers in a separate file
This gives us better file organization and faster compilation time by avoid having a gigantic SPIRVOps.cpp file.
|
 | mlir/lib/Dialect/SPIRV/SPIRVCanonicalization.cpp |
 | mlir/lib/Dialect/SPIRV/SPIRVOps.cpp |
 | mlir/lib/Dialect/SPIRV/CMakeLists.txt |
Commit
59fb9cde7a4a96fe8485a80d9010e4420ffdca82
by yamauchiDevirtualize a call on alloca without waiting for post inline cleanup and next DevirtSCCRepeatedPass iteration. Needs ReviewPublic
This aims to fix a missed inlining case.
If there's a virtual call in the callee on an alloca (stack allocated object) in the caller, and the callee is inlined into the caller, the post-inline cleanup would devirtualize the virtual call, but if the next iteration of DevirtSCCRepeatedPass doesn't happen (under the new pass manager), which is based on a heuristic to determine whether to reiterate, we may miss inlining the devirtualized call.
This enables inlining in clang/test/CodeGenCXX/member-function-pointer-calls.cpp.
|
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/test/Transforms/Inline/devirtualize-4.ll |
 | clang/test/CodeGenCXX/member-function-pointer-calls.cpp |
Commit
14aef5367d0dfc2ec10ffdbbc3fb8abbc530f4d1
by mikhail.maltsev[libcxx] Fix _LIBCPP_HAS_THREAD_API_EXTERNAL build
Summary: The definition of `__libcpp_timed_backoff_policy` and the declaration of `__libcpp_thread_poll_with_backoff` must not be guarded by #if !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) because the definitions of `__libcpp_timed_backoff_policy::operator()` and `__libcpp_thread_poll_with_backoff` aren't guarded by this macro (and this is correct because these two functions are implemented in terms of other libc++ functions and don't interact with the host threading library).
Reviewers: ldionne, __simt__, EricWF, mclow.lists
Reviewed By: ldionne
Subscribers: dexonsmith, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D75191
|
 | libcxx/include/__threading_support |
Commit
4f71252cf8430e60837e0e030c3d40db4c79eb99
by aqjune[TTI] Let getOperationCost assume that Freeze is free
|
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
Commit
fd7c2e24c1c2ae7d0e251a86cb026710c576eaac
by kparzysz[SDAG] Add SDNode::values() = make_range(values_begin(), values_end())
Also use it in a few places to simplify code a little bit. NFC
|
 | llvm/lib/Target/Mips/MipsSEISelLowering.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp |
 | llvm/include/llvm/CodeGen/SelectionDAGNodes.h |
Commit
7822c8c03e9fe8c857da21c4ccbe28396b43130d
by Vedant Kumar[lldb/test] Skip running a test under ASan, it intentionally double-frees
|
 | lldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py |
Commit
e4af56db27e5007ae6f6095a0ba0421211de9ba3
by gclaytonFix buildbots after recent GSYM commit.
Added llvm-gsymutil to LLVM_TEST_DEPENDS.
|
 | llvm/test/CMakeLists.txt |
Commit
37c7f0d9456b3ff4a87829ad842823da6aa2401f
by maskray[ELF] --orphan-handling=: don't warn/error for input SHT_REL[A] retained by --emit-relocs
They are purposefully skipped by input section descriptions (rL295324). Similarly, --orphan-handling= should not warn/error for them. This behavior matches GNU ld.
Reviewed By: grimar
Differential Revision: https://reviews.llvm.org/D75151
|
 | lld/ELF/LinkerScript.cpp |
 | lld/test/ELF/linkerscript/emit-reloc.s |
Commit
34312ed24e17a0e8269611b954e489fa7759f115
by rnkRemove unneeded Compiler.h and DataTypes.h includes, NFC
|
 | llvm/include/llvm/Support/SwapByteOrder.h |
 | lldb/source/Utility/Timer.cpp |
 | llvm/include/llvm/Support/MathExtras.h |
Commit
d260ea7199bce566fb4229eac5cc4c5d4843c5f0
by mvelsInline basic_string::erase for fastpath where __n == npos
Summary: This change checks for the case where people want to erase a string to the end, i.e., __n == npos, and inlines the call if so.
This also demonstrates keeping the ABI intact for V1, but inlining the erase() method for unstable.
Reviewers: EricWF, mclow.lists, ldionne
Reviewed By: EricWF, ldionne
Subscribers: smeenai, dexonsmith, christof, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D73743
|
 | libcxx/include/string |
 | libcxx/include/__string |
Commit
7691790dfd1011d08f5468f63952d7690755aad4
by kparzysz[Hexagon] Improve casting of boolean HVX vectors to scalars
- Mark memory access for bool vectors as disallowed in target lowering. This will prevent combining bitcasts of bool vectors with stores. - Replace the actual bitcasting code with a faster version. - Handle casting of v16i1 to i16.
|
 | llvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-hvx-pred-bitcast.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.h |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-store-bitcast-v128i1.ll |
 | llvm/test/CodeGen/Hexagon/store-vector-pred.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp |
Commit
30dae38349cbe293bee0705b313dc747e53afd49
by rnkFix LLP64 detection in SwapByteOrder.h
MSVC does not define __LONG_MAX__, so we were just getting lucky in this conditional: #if __LONG_MAX__ == __INT_MAX__
Undefined identifiers evaluate to zero in preprocessor conditionals, so this became true, which happens to work for MSVC platforms.
Instead, use this pattern and let the compiler constant fold: return sizeof(long) == sizeof(int) ? SwapByteOrder_32((uint32_t)C) : SwapByteOrder_64((uint64_t)C);
|
 | llvm/include/llvm/Support/SwapByteOrder.h |
Commit
56f7de5baae3ae9a746ac8f5a8e32cfcaf7b4a6b
by nikita.ppv[InstCombine] Remove trivially empty ranges from end
InstCombine removes pairs of start+end intrinsics that don't have anything in between them. Currently this is done by starting at the start intrinsic and scanning forwards. This patch changes it to start at the end intrinsic and scan backwards.
The motivation here is as follows: When we process the start intrinsic, we have not yet looked at the following instructions, which may still get folded/removed. If they do, we will only be able to remove the start/end pair on the next iteration. When we process the end intrinsic, all the instructions before it have already been visited, and we don't run into this problem.
Differential Revision: https://reviews.llvm.org/D75011
|
 | llvm/test/Transforms/InstCombine/vararg.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
 | llvm/lib/Transforms/InstCombine/InstCombineInternal.h |
 | llvm/test/Transforms/InstCombine/lifetime.ll |
Commit
165f707f9d0fb227e30b9a57d8ceb27f55032f90
by aykevanlaethem[AVR] Don't adjust addresses by 2 for absolute values
Adjusting by 2 breaks DWARF output. With this fix, programs start to compile and produce valid DWARF output.
Differential Revision: https://reviews.llvm.org/D74213
|
 | llvm/test/MC/AVR/relocations-abs.s |
 | llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp |
Commit
6afc3de42f8f65dfa2e51b0e81e95ef6427be9ac
by aykevanlaethem[AVR] Fix private label prefix
This is a small pet peeve from me. This change makes sure the AVR backend uses the correct private label prefix (.L) so that private labels are hidden in avr-objdump.
Example code:
define i8 @foo(i1 %cond) { br i1 %cond, label %then, label %else then: ret i8 3 else: ret i8 5 }
When compiling this: llc -march=avr -filetype=obj -o test.o test.ll and then dumping it: avr-objdump -d test.o You would previously get an ugly temporary label:
00000000 <foo>: 0: 81 70 andi r24, 0x01 ; 1 2: 80 30 cpi r24, 0x00 ; 0 4: f9 f3 breq .-2 ; 0x4 <foo+0x4> 6: 83 e0 ldi r24, 0x03 ; 3 8: 08 95 ret
0000000a <LBB0_2>: a: 85 e0 ldi r24, 0x05 ; 5 c: 08 95 ret
This patch fixes that, the output is now:
00000000 <foo>: 0: 81 70 andi r24, 0x01 ; 1 2: 80 30 cpi r24, 0x00 ; 0 4: 01 f0 breq .+0 ; 0x6 <foo+0x6> 6: 83 e0 ldi r24, 0x03 ; 3 8: 08 95 ret a: 85 e0 ldi r24, 0x05 ; 5 c: 08 95 ret
Note that as you can see the breq operand is different. However it is still the same after linking:
4: 11 f0 breq .+4
Differential Revision: https://reviews.llvm.org/D75124
|
 | llvm/test/CodeGen/AVR/ctlz.ll |
 | llvm/test/CodeGen/AVR/cttz.ll |
 | llvm/test/CodeGen/AVR/umul-with-overflow.ll |
 | llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp |
 | llvm/test/CodeGen/AVR/branch-relaxation-long.ll |
 | llvm/test/CodeGen/AVR/rot.ll |
 | llvm/test/CodeGen/AVR/smul-with-overflow.ll |
 | llvm/test/CodeGen/AVR/branch-relaxation.ll |
 | llvm/test/CodeGen/AVR/integration/blink.ll |
Commit
3e440545dc4404f5fdc3edceba96d901aeaef923
by nikita.ppv[CVP] Add test for cmp of local phi; NFC
|
 | llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll |
Commit
7da3b5e45c254c2366bd330fd4411f80011724ef
by nikita.ppv[InstCombine] Simplify DCE code; NFC
As pointed out on D75008, MadeIRChange is already set by eraseInstFromFunction(), which also already does a debug print.
|
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
Commit
3bf3996cd4ef2d4898b32d4cef52d6549bbe6820
by julian.lettner[TSan] Add CMake check for minimal SDK requirements on Darwin
Fails with the following message in the error case: ``` CMake Error at /path/to/llvm-project/compiler-rt/lib/tsan/CMakeLists.txt:119 (message): Building the TSan runtime requires at least macOS SDK 10.12 ```
Fixes #44682. https://bugs.llvm.org/show_bug.cgi?id=44682
Reviewed By: dmajor, delcypher
Differential Revision: https://reviews.llvm.org/D74501
|
 | compiler-rt/lib/tsan/CMakeLists.txt |
Commit
9d9633fb700d2c18b67b253a59145a543c6a37c4
by nikita.ppv[CVP] Simplify cmp of local phi node
CVP currently does not simplify cmps with instructions in the same block, because LVI getPredicateAt() currently does not provide much useful information for that case (D69686 would change that, but is stuck.) However, if the instruction is a Phi node, then LVI can compute the result of the predicate by threading it into the predecessor blocks, which allows it simplify some conditions that nothing else can handle. Relevant code: https://github.com/llvm/llvm-project/blob/6d6a4590c5d4c7fc7445d72fe685f966b0a8cafb/llvm/lib/Analysis/LazyValueInfo.cpp#L1904-L1927
Differential Revision: https://reviews.llvm.org/D72169
|
 | llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp |
 | llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll |
Commit
00f54050f7e8d8ac0bab2a34affc98f6e4221dd4
by nikita.ppv[SimpleLoopUnswitch] Remove unnecessary include; NFC
|
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
Commit
ca50f09db9f86eb5ac7aa0cb53c52637f2b7effa
by tyker[clang] fix error detection in consteval calls
Summary: code like: ``` consteval int f() { int *A = new int(0); return *A; }
int i1 = f(); ``` currently doesn't generate any error.
Reviewers: rsmith
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D74418
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/SemaCXX/cxx2a-consteval.cpp |
Commit
5bc6ff6455ec663a5da2681d057d0f848817b388
by antiagainst[mlir][spirv] Add some folders for spv.LogicalAnd/spv.LogicalOr
This commit handles folding spv.LogicalAnd/spv.LogicalOr when one of the operands is constant true/false.
Differential Revision: https://reviews.llvm.org/D75195
|
 | mlir/include/mlir/Dialect/SPIRV/SPIRVLogicalOps.td |
 | mlir/lib/Dialect/SPIRV/SPIRVCanonicalization.cpp |
 | mlir/test/Dialect/SPIRV/canonicalize.mlir |
Commit
25c6544f32eec4fd563f5531cec1d42b5c9c3e13
by spatel[VectorCombine] add a debug flag to skip all transforms
As suggested in D75145 -
I'm not sure why, but several passes have this kind of disable/enable flag implemented at the pass manager level. But that means we have to duplicate the flag for both pass managers and add code to check the flag every time the pass appears in the pipeline.
We want a debug option to see if this pass is misbehaving regardless of the pass managers, so just add a disablement check at the single point before any transforms run.
Differential Revision: https://reviews.llvm.org/D75204
|
 | llvm/lib/Transforms/Vectorize/VectorCombine.cpp |
Commit
85b641c27aecee637d3f7ab25915f47438f55848
by epastor[ms] Rename ParsingInlineAsm functions/variables to reflect MS-specificity.
Summary: ParsingInlineAsm was a misleading name. These values are only set for MS-style inline assembly.
Reviewed By: rnk
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D75198
|
 | llvm/lib/MC/MCParser/MasmParser.cpp |
 | llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h |
 | llvm/lib/MC/MCParser/AsmParser.cpp |
 | llvm/include/llvm/MC/MCParser/MCAsmParser.h |
 | clang/lib/Parse/ParseStmtAsm.cpp |
 | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp |
Commit
22cb36c86b80fb9148fb08b1d384cd84bb9548d5
by Adrian Prantl[dsymutil] Avoid copying swiftinterfaces from the SDK into the dsym bundle
This patch fixes a bug that would cause dsymutil to collect .swiftinterface files for the Swift stdlib and other SDK modules. There is no advantage in copying these since they should be loaded from the ones bundled with LLDB's embedded Swift compiler instead and copying them will cause LLDB to recompile them from source instead of loading their prebuilt cached counterparts in the SDK.
rdar://problem/57463247
Differential Revisions: https://reviews.llvm.org/D75196
|
 | llvm/lib/DWARFLinker/DWARFLinker.cpp |
 | llvm/test/tools/dsymutil/Inputs/swift-interface.s |
 | llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h |
 | llvm/test/tools/dsymutil/Inputs/swift-interface.ll |
 | llvm/lib/DWARFLinker/DWARFLinkerCompileUnit.cpp |
 | llvm/test/tools/dsymutil/X86/swift-interface.test |
Commit
d2cbaf1755ffa90300365c0d71400a5ee4ada3bd
by leonardchanFix for the test failues introduced in https://reviews.llvm.org/D74704.
|
 | clang/test/Driver/riscv32-toolchain-extra.c |
 | clang/test/Driver/riscv64-toolchain-extra.c |
Commit
52073310e443a206653f8f4c841f42ed88ab549b
by paulatoth[libc] Fix typo of namespace in round implementation.
Summary: Fixed typos in namespace declarations and comments in the files under `src/math/round`.
Reviewers: sivachandra, abrachet
Reviewed By: sivachandra, abrachet
Subscribers: MaskRay, tschuett, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D75205
|
 | libc/src/math/round/round.h |
 | libc/src/math/round/round.cpp |
 | libc/src/math/round/round_redirector.cpp |
Commit
c753a306fd1ad4a7e5c61367225abce86ac29cd7
by kostyak[scudo][standalone] Various improvements wrt RSS
Summary: This patch includes several changes to reduce the overall footprint of the allocator: - for realloc'd chunks: only keep the same chunk when lowering the size if the delta is within a page worth of bytes; - when draining a cache: drain the beginning, not the end; we add pointers at the end, so that meant we were draining the most recently added pointers; - change the release code to account for an freed up last page: when scanning the pages, we were looking for pages fully covered by blocks; in the event of the last page, if it's only partially covered, we wouldn't mark it as releasable - even what follows the last chunk is all 0s. So now mark the rest of the page as releasable, and adapt the test; - add a missing `setReleaseToOsIntervalMs` to the cacheless secondary; - adjust the Android classes based on more captures thanks to pcc@'s tool.
Reviewers: pcc, cferris, hctim, eugenis
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D75142
|
 | compiler-rt/lib/scudo/standalone/local_cache.h |
 | compiler-rt/lib/scudo/standalone/size_class_map.h |
 | compiler-rt/lib/scudo/standalone/primary64.h |
 | compiler-rt/lib/scudo/standalone/primary32.h |
 | compiler-rt/lib/scudo/standalone/secondary.h |
 | compiler-rt/lib/scudo/standalone/release.h |
 | compiler-rt/lib/scudo/standalone/combined.h |
 | compiler-rt/lib/scudo/standalone/tests/size_class_map_test.cpp |
 | compiler-rt/lib/scudo/standalone/tests/release_test.cpp |
Commit
63779fb462d828d16b87f427a6490dded842ca15
by antiagainst[mlir][spirv] Refactoring to avoid calling the same function twice
|
 | mlir/lib/Dialect/SPIRV/SPIRVCanonicalization.cpp |
Commit
f79b81fbe2870ff631ad72a75f7e077b15b52a22
by alexshap[llvm-objcopy] Enable --discard-all for MachO
In this diff we enable the option --discard-all for MachO.
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D75104
|
 | llvm/test/tools/llvm-objcopy/MachO/discard-all.test |
 | llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp |
Commit
eca4bfea3d380f56652a19bfe4746663601050cb
by listmail[MC] Pull out a relaxFragment helper [NFC]
Having this as it's own function helps to reduce indentation and allows use of return instead of wiring a value over the switch. A lambda would have also worked, but with slightly deeper nesting.
|
 | llvm/include/llvm/MC/MCAssembler.h |
 | llvm/lib/MC/MCAssembler.cpp |
Commit
7848a3c8ab54570f5875e63606ff75b5736750b4
by rjmccallUpdate the ARC docs for non-trivial ownership in structs.
|
 | clang/docs/AutomaticReferenceCounting.rst |
Commit
949134e2fefd34a38ed71de90dffe2300e2e1139
by a.v.lapshin[DebugInfo][NFC] Remove handler with ErrorPolicy from DWARFContext.
Summary: Current LLVM code base does not use error handler with ErrorPolicy. This patch removes ErrorPolicy from DWARFContext.
This patch is extracted from the D74308.
Reviewers: jhenderson, dblaikie, grimar, aprantl, JDevlieghere
Reviewed By: grimar
Subscribers: hiraditya, llvm-commits
Tags: #llvm, #debug-info
Differential Revision: https://reviews.llvm.org/D75118
|
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/lib/DebugInfo/Symbolize/Symbolize.cpp |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
 | llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp |
Commit
16cabf278fc8c14d415e677ce0bc40d46a6de30d
by n.james93[ASTMatchers] HasNameMatcher handles `extern "C"`
Summary: Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=42193 | hasName AST matcher is confused by extern "C" in namespace. ]]
Reviewers: klimek, aaron.ballman, gribozavr2
Reviewed By: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75202
|
 | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp |
 | clang/lib/ASTMatchers/ASTMatchersInternal.cpp |
Commit
65f99b5383ff3293881f59dd64cfb596c3d03aa4
by Amara Emerson[AArch64][GlobalISel] Fixup <32b heterogeneous regbanks of G_PHIs just before selection.
Since all types <32b on gpr end up being assigned gpr32 regclasses, we can end up with PHIs here which try to select between a gpr32 and an fpr16. Ideally RBS shouldn't be selecting heterogenous regbanks for operands if possible, but we still need to be able to deal with it here.
To fix this, if we have a gpr-bank operand < 32b in size and at least one other operand is on the fpr bank, then we add cross-bank copies to homogenize the operand banks. For simplicity the bank that we choose to settle on is whatever bank the def operand has. For example:
%endbb: %dst:gpr(s16) = G_PHI %in1:gpr(s16), %bb1, %in2:fpr(s16), %bb2 => %bb2: ... %in2_copy:gpr(s16) = COPY %in2:fpr(s16) ... %endbb: %dst:gpr(s16) = G_PHI %in1:gpr(s16), %bb1, %in2_copy:gpr(s16), %bb2
Differential Revision: https://reviews.llvm.org/D75086
|
 | llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir |
 | llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp |
Commit
34ee941f6d04454838456f0dc692f4abab5cdd19
by ditaliano[ObjectFileMachO] Fix a build error on embedded.
|
 | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp |
Commit
14306ce80c660fda31e2b5279b66174066326531
by craig.topper[X86] Add proper MachinePointerInfo to the loads/stores created for moving data between SSE and X87 in X86DAGToDAGISel::PreprocessISelDAG
|
 | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp |
Commit
a8186935aea67e7a3041b83a50a83073a866e936
by craig.topper[X86] Use correct MachineMemOperand for stack load in LowerFLT_ROUNDS_
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
9c1a707ba3f6dbb684d0b50b8e301468e04c9d61
by craig.topper[X86] Use proper alignment for stack temporary and correct MachinePointerInfo for stack accesses in LowerUINT_TO_FP.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
77d9b7b2cdbc401ded68970bc83efc6d1e179318
by craig.topper[X86] Query constant pool object alignment instead of hardcoding.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
a5a07b80419e68afd14916e95e2c613a9cee26d9
by Adrian PrantlVisit previously unreachable nodes in the debug info metadata verifier.
This allows for diagnosing malformed LLVM IR debug info metadata such as the one in the testcase.
<rdar://problem/59756060>
Differential Revision: https://reviews.llvm.org/D75212
|
 | llvm/test/Verifier/llvm.loop.cu.ll |
 | llvm/lib/IR/Verifier.cpp |
Commit
30f4362040fe28069e96c217856817e9014ab26d
by erik.pilkingtonDisable memory leak checking in a test to work around a bot failure
This leak is expected, see the discussion on commit 85fb997
|
 | llvm/test/ExecutionEngine/OrcLazy/objc-minimal.ll |
Commit
98ed0c5475df57ca5cd4df0997d8bba323c843aa
by richardPR44978: Accept as an extension some cases where destructor name lookup is ambiguous, but only one of the possible lookup results could possibly be right.
Clang recently started diagnosing ambiguity in more cases, and this broke the build of Firefox. GCC, ICC, MSVC, and previous versions of Clang all accept some forms of ambiguity here (albeit different ones in each case); this patch mostly accepts anything any of those compilers accept.
|
 | clang/test/SemaCXX/destructor.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
Commit
a0ec111c92964fd3bc48a032d383eaa1109f20ce
by Louis Dionne[libc++] Temporarily disable availability markup for the C++20 Synchronization library
The markup wasn't quite right, and that broke compilation with availability markup enabled. I'm disabling it until I have time to fix it properly to get the CI mostly green again.
|
 | libcxx/include/__config |
Commit
12339efd70966edd2016206ddae2fbfdf748d400
by Louis DionneRevert "[libc++] Do not set the `availability=XXX` feature when not testing against a system libc++"
This reverts commit 7dd6a862e, which broke more tests than it fixed.
|
 | libcxx/utils/libcxx/test/config.py |
Commit
15e2831fcd7e58db12d110f1624085d1e683e4a6
by craig.topper[X86] Explicitly pass Pointer, MachinePointerInfo and Alignment to BuildFILD.
Previously this code was called into two ways, either a FrameIndexSDNode was passed in StackSlot. Or a load node was passed in the argument called StackSlot. This was determined by a dyn_cast to FrameIndexSDNode.
In the case of a load, we had to go find the real pointer from operand 0 and cast the node to MemSDNode to find the pointer info.
For the stack slot case, the code assumed that the stack slot was perfectly aligned despite not being the creator of the slot.
This commit modifies the interface to make the caller responsible for passing all of the required information to avoid all the guess work and reverse engineering.
I'm not aware of any issues with the original code after an earlier commit to fix the alignment of one of the stack objects. This is just clean up to make the code less surprising.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.h |
Commit
870363a22d398fa2aee5b3d3ddf14b99b26923c5
by craig.topper[X86] Explicitly pass Destination VT and debug location to BuildFILD. NFC
We'd already passed most everything else. Might was well pass these two things and stop passing Op.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.h |
Commit
682e7037552f12e1c0be508f7c1b9ee81f66c6a5
by Louis Dionne[libc++] Workaround unused variable warning in test
This only showed up in C++11/C++14 where the static_assert below was ifdef'd out, and the variable was indeed unused.
|
 | libcxx/test/std/atomics/types.pass.cpp |
Commit
82a21c16554330b257b7af9492466888c2351b6f
by craig.topper[X86] Add proper MachinePointerInfo to stack store created in LowerWin64_i128OP.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
c965fd942f1d2de6179cd1a2f78c78fa4bd74626
by apilipenkoCost Annotation Writer for InlineCost
Add extra diagnostics for the inline cost analysis under -print-instruction-deltas cl option. When enabled along with -debug-only=inline-cost it prints the IR of inline candidate annotated with cost and threshold change per every instruction.
Reviewed By: apilipenko, davidxl, mtrofin
Differential Revision: https://reviews.llvm.org/D71501
|
 | llvm/lib/Analysis/InlineCost.cpp |
 | llvm/test/Transforms/Inline/debuginline-cost-delta.ll |
Commit
b305b8a256eade076bb13f52668a6015631ac0e5
by maskray[ELF][test] Rename SHF_LINK_ORDER related "metadata" to "linkorder"
Test cleanups.
|
 | lld/test/ELF/linkerscript/section-metadata.s |
 | lld/test/ELF/linkerscript/discard-linkorder.s |
 | lld/test/ELF/gc-sections-metadata2.s |
 | lld/test/ELF/linkorder-err2.s |
 | lld/test/ELF/linkorder-err3.s |
 | lld/test/ELF/section-metadata-err2.s |
 | lld/test/ELF/gc-sections-metadata.s |
 | lld/test/ELF/gc-sections-linkorder.s |
 | lld/test/ELF/linkerscript/linkorder.s |
 | lld/test/ELF/linkerscript/section-metadata2.s |
 | lld/test/ELF/gc-sections-linkorder2.s |
 | lld/test/ELF/section-metadata-err.s |
 | lld/test/ELF/gc-sections-linkorder-err.s |
 | lld/test/ELF/linkerscript/discard-section-metadata.s |
 | lld/test/ELF/section-metadata-err3.s |
 | lld/test/ELF/gc-sections-metadata-err.s |
 | lld/test/ELF/linkerscript/linkorder2.s |
 | lld/test/ELF/linkorder-err.s |
Commit
21056a4ea025a5db85c076d0b35f981864999541
by craig.topper[X86] Add test cases showing incorrect setting of nofpexcept flag due to CSE occuring during SelectionDAG creation.
These tests generate two nodes that are identical except for the metadata that indicates their exception behavior. The nodes get CSEd by SelectionDAG, but the nofpexcept flag is being set based only on the fpexcept.ignore node being created last.
We need to detect this case and intersect the flags similar to what is already done with fast math flags.
|
 | llvm/test/CodeGen/X86/fp-intrinsics-flags.ll |
Commit
2a49d650a5d208f92b0afbfa1e59a58496abe03d
by llvm-project[docs][LoopTerminology] Add Loop Simplify Form description.
Information taken from https://youtu.be/3pRhvQi7Z10?t=481 and comments in LoopSimplify.h.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D74989
|
 | llvm/docs/LoopTerminology.rst |
 | llvm/docs/Passes.rst |
Commit
c7e8d8b13e5c713f6a39ba18dbf0498dd8fafb3d
by Matthew.ArsenaultGlobalISel: Cleanup code with MachineIRBuilder features
|
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
Commit
6dcf43102c3d0af81137e871607579ab59126923
by Matthew.ArsenaultAMDGPU/GlobalISel: Add missing G_[US]ADDE/G_[US]SUBE tests
The s64 case currently crashes, so leave that for later.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sadde.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uadde.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usube.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssube.mir |
Commit
6fc0d00823182eca3e7f6deb4bac0335ad4fc95c
by Matthew.ArsenaultGlobalISel: Fix lowering for G_UADDE/G_USUBE
The type parameter passed into lower is invalid and should be removed from the function.
|
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uadde.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usube.mir |
Commit
79493e721a4a8de298c3fda829a1e872e95bcfc4
by arsenm2AMDGPU/GlobalISel: Add missing test for G_UMULH
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umulh.mir |
Commit
c46b85aaf4d442f732e2cf8e84076b374187921c
by nemanja.i.ibm[LoopVectorize] Fix cost for calls to functions that have vector versions
A recent commit (https://reviews.llvm.org/rG66c120f02560ef528a60924104ead66f330190f1) changed the cost for calls to functions that have a vector version for some vectorization factor. However, no check is performed for whether the vectorization factor matches the current one being cost modeled. This leads to attempts to widen call instructions to a vectorization factor for which such a function does not exist, which in turn leads to an assertion failure.
This patch adds the check for vectorization factor (i.e. not just that the called function has a vector version for some VF, but that it has a vector version for this VF).
Differential revision: https://reviews.llvm.org/D74944
|
 | llvm/test/Transforms/LoopVectorize/widened-massv-call.ll |
 | llvm/test/Transforms/LoopVectorize/widened-massv-vfabi-attr.ll |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
b9f3686056010c15d52cc07fed1dba41cb341206
by nemanja.i.ibmFix buildbot break after c46b85aaf4d4
I added test cases that rely on the availability of the PPC target into the general directory for the loop vectorizer. This causes failures on bots that don't build the PPC target. Moving them to the PowerPC directory to fix this.
|
 | llvm/test/Transforms/LoopVectorize/widened-massv-vfabi-attr.ll |
 | llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-call.ll |
 | llvm/test/Transforms/LoopVectorize/widened-massv-call.ll |
 | llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-vfabi-attr.ll |
Commit
621388468b5125f05d649262681676bed2faefe6
by ogirouxSome fixes for open breaks on MacOS and UBSan
|
 | libcxx/test/std/thread/thread.semaphore/max.pass.cpp |
 | libcxx/include/__threading_support |
 | libcxx/src/barrier.cpp |
 | libcxx/include/semaphore |
Commit
cab6ac2612b5e4f22fca357a2c0740bc1b995e96
by sivachandra[libc] Add an optional `NAME` argument to `add_entrypoint_object` rule.
This argument can be used to specify the entrypoint name if it is different from the target name.
Reviewers: gchatelet, abrachet
Differential Revision: https://reviews.llvm.org/D74948
|
 | libc/cmake/modules/LLVMLibCRules.cmake |
Commit
aff8c045a225d98ee5fffa914e2493941f8465cd
by pifon[MLIR] Add `take_back()` to STLExtras.h for completeness.
Differential Revision: https://reviews.llvm.org/D75208
|
 | mlir/include/mlir/Support/STLExtras.h |
Commit
2bb7774ddf002668816fdb7c4a5b8da322fe284e
by kadircet[clangd] Get rid of getBeginningOfIdentifier helper
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75176
|
 | clang-tools-extra/clangd/SourceCode.cpp |
 | clang-tools-extra/clangd/unittests/SourceCodeTests.cpp |
 | clang-tools-extra/clangd/SourceCode.h |
 | clang-tools-extra/clangd/Hover.cpp |
 | clang-tools-extra/clangd/unittests/CollectMacrosTests.cpp |
Commit
1aab055dd8ecd1ce8dcc0fe21da95e08b288b24e
by gchatelet[libc] Add CMake script to check host cpu features
Summary: Tested on MacOSX and Linux. For robustness we can go the OpenCV way and add individual c++ files with intrinsics. https://github.com/opencv/opencv/blob/master/cmake/checks/cpu_avx2.cpp
Reviewers: sivachandra, abrachet
Subscribers: mgorny, MaskRay, tschuett, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D74897
|
 | libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake |
 | libc/cmake/modules/cpu_features/check_sse2.cpp |
 | libc/cmake/modules/cpu_features/check_sse.cpp |
 | libc/cmake/modules/cpu_features/check_avx.cpp |
 | libc/cmake/modules/cpu_features/check_avx512f.cpp |
Commit
f31fc1043d384e0b699fcb114694a5d8e1f51784
by kadircet[clangd] Get rid of lexer usage in AST.cpp
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75193
|
 | clang-tools-extra/clangd/AST.cpp |
 | clang-tools-extra/clangd/AST.h |
Commit
13db7490fa67e22605dec4ab824121230b0fd928
by sjoerd.meijer[AArch64] Peephole optimization: merge AND and TST instructions
In some cases Clang does not perform merging of instructions AND and TST (aka ANDS xzr).
Example:
tst x2, x1 and x3, x2, x1
to:
ands x3, x2, x1
This patch add such merging during instruction selection: when AND is replaced with ANDS instruction in LowerSELECT_CC, all users of AND also should be changed for using this ANDS instruction
Short discussion on mailing list: http://llvm.1065342.n5.nabble.com/llvm-dev-ARM-Peephole-optimization-instructions-tst-add-tp133109.html
Patch by Pavel Kosov.
Differential Revision: https://reviews.llvm.org/D71701
|
 | llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp |
 | llvm/test/CodeGen/AArch64/shift-by-signext.ll |
 | llvm/test/CodeGen/AArch64/funnel-shift.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/peephole-and-tst.ll |
Commit
72f044ecdfb566ccffca5e078494d1761a1c2af9
by sam.parker[NFC][ARM] Add test case
|
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/cmplx_cong.mir |
Commit
8c26f42fe90e3f8612d2f57a3c9c5e7fcff5e91e
by simon.tatham[clang,ARM,MVE] Remove redundant #includes in test file.
I made that file by pasting together several pieces, and forgot to take out the #include <arm_mve.h> from the tops of the later ones, so the test was pointlessly including the same header five times. NFC.
|
 | clang/test/CodeGen/arm-mve-intrinsics/absneg.c |
Commit
56b03c35ddecf7d096a513b0633ddf6c49286784
by Raphael Isemann[lldb] Skip TestWasm.py on sanitized builds until D75200 has landed
|
 | lldb/test/API/functionalities/gdb_remote_client/TestWasm.py |
Commit
e58229fded0407f3e4f77cd87bedcd4d35bb7c89
by sam.parker[ARM] Add CPSR as an implicit use of t2IT
This use is already attached to the BUNDLE instruction but is lost after finalisation.
Differential Revision: https://reviews.llvm.org/D75186
|
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/cmplx_cong.mir |
 | llvm/test/CodeGen/ARM/constant-islands-split-IT.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/switch.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir |
 | llvm/test/CodeGen/MIR/ARM/bundled-instructions.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-load.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir |
 | llvm/test/CodeGen/Thumb2/constant-islands-cbz.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-use.mir |
 | llvm/lib/Target/ARM/ARMInstrThumb2.td |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-def.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update2.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-header.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir |
 | llvm/test/CodeGen/MIR/ARM/nested-instruction-bundle-error.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir |
 | llvm/test/CodeGen/Thumb2/t2-teq-reduce.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir |
 | llvm/test/CodeGen/ARM/tail-dup-bundle.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir |
Commit
2affdcee615f7f96220fd7a5c4022203f1201822
by Raphael Isemann[lldb][NFC] Fix several -Wdocumentation warnings
The GetOffset documentation was copied from the function above so I completely deleted that one. The rest was just outdated documentation that didn't keep up with renamed or changed function parameters/return types.
|
 | lldb/include/lldb/Utility/Broadcaster.h |
 | lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp |
 | lldb/include/lldb/Target/Thread.h |
 | lldb/include/lldb/Utility/CompletionRequest.h |
 | lldb/include/lldb/Breakpoint/BreakpointResolver.h |
 | lldb/include/lldb/Utility/Flags.h |
 | lldb/include/lldb/Host/common/NativeProcessProtocol.h |
Commit
ff574ff291e73b78164aade9d456d364bbf93a03
by david.stenberg[DebugInfo][NFC] Move out lambdas from collectCallSiteParameters()
Summary: This is a preparatory patch for D75036, in which a debug expression is associated with each parameter register in the worklist. In that patch the two lambda functions addToWorklist() and finishCallSiteParams() grow a bit, so move those out to separate functions. This patch also prepares for each parameter register having their own expression moving the creation of the DbgValueLoc into finishCallSiteParams().
Reviewers: djtodoro, vsk
Reviewed By: djtodoro, vsk
Subscribers: hiraditya, llvm-commits
Tags: #debug-info, #llvm
Differential Revision: https://reviews.llvm.org/D75050
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
Commit
6d857166d218ccedfff3b177a4489420e3bdd603
by david.stenberg[DebugInfo] Describe call site values for chains of expression producing instrs
Summary: If the describeLoadedValue() hook produced a DIExpression when describing a instruction, and it was not possible to emit a call site entry directly (the value operand was not an immediate nor a preserved register), then that described value could not be inserted into the worklist, and would instead be dropped, meaning that the parameter's call site value couldn't be described.
This patch extends the worklist so that each entry has an DIExpression that is built up when iterating through the instructions.
This allows us to describe instruction chains like this:
$reg0 = mv $fp $reg0 = add $reg0, offset call @call_with_offseted_fp
Since DW_OP_LLVM_entry_value operations can't be combined with any other expression, such call site entries will not be emitted. I have added a test, dbgcall-site-expr-entry-value.mir, which verifies that we don't assert or emit broken DWARF in such cases.
Reviewers: djtodoro, aprantl, vsk
Reviewed By: djtodoro, vsk
Subscribers: hiraditya, llvm-commits
Tags: #debug-info, #llvm
Differential Revision: https://reviews.llvm.org/D75036
|
 | llvm/test/DebugInfo/MIR/AArch64/dbgcall-site-expr-chain.mir |
 | llvm/test/DebugInfo/MIR/AArch64/dbgcall-site-expr-entry-value.mir |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
Commit
58d9e8194e4e4ed18175400792030920a3bb7636
by djordje.todorovic[DebugInfo][ARM] Fix noreg case when checkig if it is an addImm
This fixes a build failure with an ARM buildbot.
Differential Revision: https://reviews.llvm.org/D75231
|
 | llvm/test/DebugInfo/MIR/ARM/dbgcallsite-noreg-is-imm-check.mir |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.cpp |
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
Commit
014728413f354c8f44375074b331e68ce194bbd2
by kbobyrevRevert "[Hexagon] Improve casting of boolean HVX vectors to scalars"
This reverts commit 7691790dfd1011d08f5468f63952d7690755aad4.
The patch is failing tests with MSAN: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/39054/steps/check-llvm%20msan/logs/stdio
|
 | llvm/test/CodeGen/Hexagon/autohvx/isel-hvx-pred-bitcast.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-store-bitcast-v128i1.ll |
 | llvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp |
 | llvm/test/CodeGen/Hexagon/store-vector-pred.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.h |
Commit
4bb3cb2bcb59d2139dfd9fbaa7c475dcf8507242
by Raphael Isemann[lldb] Show the actual error when 'watchpoint set expression' failed
Currently we only show the user that the expression failed but not what is actually wrong with it. This just dumps the error we get back alongside the other output to the error stream.
This should also help with finding out with why sometimees the TestWatchLocationWithWatchSet.py test fails here on the LLDB incremental bot on Green Dragon.
|
 | lldb/source/Commands/CommandObjectWatchpoint.cpp |
Commit
f41e82c82cc82073cf08f60c96b61c4b0496b652
by jay.foad[InstCombine] Fix confusing variable name.
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
Commit
2e24219d3cbfcb8c824c58872f97de0a2e94a7c8
by hans[MC][ARM] Resolve some pcrel fixups at assembly time (PR44929)
MC currently does not emit these relocation types, and lld does not handle them. Add FKF_Constant as a work-around of some ARM code after D72197. Eventually we probably should implement these relocation types.
By Fangrui Song!
Differential revision: https://reviews.llvm.org/D72892
|
 | llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp |
 | llvm/test/MC/ARM/pcrel-global.s |
 | llvm/include/llvm/MC/MCFixupKindInfo.h |
 | llvm/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s |
 | llvm/test/MC/ARM/Windows/invalid-relocation.s |
 | llvm/lib/MC/MCAssembler.cpp |
Commit
548e540d2ced9f5a596e0433f544c560a842a6a7
by jbcoe[clang-format] Handle commas in [] in C#
Summary: Respect setting `SpacesInSquareBrackets` for commas in square brackets in C# code.
Reviewers: krasimir, MyDeveloperDay
Reviewed By: krasimir
Subscribers: cfe-commits
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D75182
|
 | clang/unittests/Format/FormatTestCSharp.cpp |
 | clang/lib/Format/TokenAnnotator.cpp |
Commit
13f2a5883f2bf29b65b0a24592c2a38132e8946e
by david.green[ARM] Fixup FP16 bitcasts
Under fp16 we optimise the bitcast between a VMOVhr and a CopyToReg via custom lowering. This rewrites that to be a DAG combine instead, which helps produce better code in the cases where the bitcast is actaully legal.
Differential Revision: https://reviews.llvm.org/D72753
|
 | llvm/test/CodeGen/Thumb2/mve-masked-ldst.ll |
 | llvm/test/CodeGen/Thumb2/mve-masked-store.ll |
 | llvm/test/CodeGen/ARM/fp16-bitcast.ll |
 | llvm/test/CodeGen/Thumb2/mve-div-expand.ll |
 | llvm/test/CodeGen/Thumb2/mve-fmath.ll |
 | llvm/test/CodeGen/Thumb2/mve-phireg.ll |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
Commit
51b5b567ccca8fd3583f5399ccca015c85560036
by kbobyrevRequire asserts for debuginline-cost-delta.ll test
-debug-only=inline-cost does not exist in optimized builds without asserts and therefore the test fails for such configurations.
Related revision: c965fd942f1d2de6179cd1a2f78c78fa4bd74626
|
 | llvm/test/Transforms/Inline/debuginline-cost-delta.ll |
Commit
45abcd1df1ae6c42f7b65afe4344d2c435141ccc
by llvm-dev[AVX] Cleanup check prefixes
We were missing some coverage for avx512bw targets as the update script can be pretty dumb about check prefix orders...
|
 | llvm/test/CodeGen/X86/var-permute-512.ll |
Commit
5122e828701c88f8d53ee881bc68f3904454d154
by hans[driver][darwin] Don't use -platform_version flag by default (PR44813)
The code in llvmorg-10-init-12188-g25ce33a6e4f is a breaking change for users of older linkers who don't pass a version parameter, which prevents a drop-in clang upgrade. Old tools can't know about what future tools will do, so as a general principle the burden should be new tools to be compatible by default. Also, for comparison, none of the other tests of Version within AddLinkArgs add any new behaviors unless the version is explicitly specified. Therefore, this patch changes the -platform_version behavior from opt-out to opt-in.
Patch by David Major!
Differential revision: https://reviews.llvm.org/D74784
|
 | clang/test/Driver/darwin-ld-platform-version-macos.c |
 | clang/test/Driver/darwin-ld-platform-version-tvos.c |
 | clang/test/Driver/darwin-ld-platform-version-watchos.c |
 | clang/test/Driver/darwin-ld-platform-version-ios.c |
 | clang/lib/Driver/ToolChains/Darwin.cpp |
Commit
fa9439fac84ea4eb4050aa1ae150c0ec2cf86c20
by andrzej.warzynski[AArch64][SVE] Add intrinsics for first-faulting gather loads
Summary: The following intrinsics are added: * @llvm.aarch64.sve.ldff1.gather * @llvm.aarch64.sve.ldff1.gather.index * @llvm.aarch64.sve.ldff1.gather_sxtw * @llvm.aarch64.sve.ldff1.gather.uxtw * @llvm.aarch64.sve.ldff1.gather_sxtw.index * @llvm.aarch64.sve.ldff1.gather.uxtw.index * @llvm.aarch64.sve.ldff1.gather.scalar.offset
Although this patch is quite substantial, the vast majority of the implementation is just a 'copy & paste' of the implementation of regular gather loads, including tests. There's only a handful of new definitions: * AArch64ISD nodes defined in AArch64ISelLowering.h (e.g. GLDFF1) * Seleciton DAG Types in AArch64SVEInstrInfo.td (e.g. AArch64ldff1_gather) * intrinsics in IntrinsicsAArch64.td (e.g. aarch64_sve_ldff1_gather) * Pseudo instructions in SVEInstrFormats.td to workaround the issue of use-before-def for the FFR register.
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D75128
|
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-64bit-scaled-offset.ll |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-64bit-unscaled-offset.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-32bit-scaled-offsets.ll |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-vector-base-scalar-offset.ll |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-32bit-unscaled-offsets.ll |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-vector-base-imm-offset.ll |
Commit
016d91ccbd4d434aa90fbfa6fd28e9da1abc9279
by djordje.todorovic[CallSiteInfo] Handle bundles when updating call site info
This will address the issue: P8198 and P8199 (from D73534).
The methods was not handle bundles properly.
Differential Revision: https://reviews.llvm.org/D74904
|
 | llvm/lib/CodeGen/IfConversion.cpp |
 | llvm/lib/CodeGen/MachineLICM.cpp |
 | llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp |
 | llvm/include/llvm/CodeGen/MachineFunction.h |
 | llvm/lib/CodeGen/UnreachableBlockElim.cpp |
 | llvm/lib/CodeGen/XRayInstrumentation.cpp |
 | llvm/lib/CodeGen/LiveRangeEdit.cpp |
 | llvm/include/llvm/CodeGen/MachineInstr.h |
 | llvm/lib/CodeGen/TailDuplicator.cpp |
 | llvm/test/CodeGen/Thumb2/call-site-info-update.ll |
 | llvm/lib/CodeGen/BranchFolding.cpp |
 | llvm/lib/CodeGen/TargetInstrInfo.cpp |
 | llvm/lib/CodeGen/PeepholeOptimizer.cpp |
 | llvm/lib/CodeGen/MachineFunction.cpp |
 | llvm/lib/CodeGen/MachineOutliner.cpp |
 | llvm/lib/CodeGen/MachineInstr.cpp |
Commit
7ea9a6e0220da36ff2fd1fbc29c2755be23e5166
by hansRevert "make -fmodules-codegen and -fmodules-debuginfo work also with PCHs"
This caused PR44953. See also the discussion on D74846.
This reverts commit cbc9d22e49b434b6ceb2eb94b67079d02e0a7b74.
|
 | clang/lib/Serialization/ASTWriterDecl.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang/lib/Serialization/ASTReaderDecl.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/test/PCH/codegen.cpp |
 | clang/test/Modules/Inputs/codegen-flags/foo.h |
Commit
7dfe0cc7f5765dc729685a0aa468cdf54a265a11
by jbcoe[clang-format] Recognize C# named argument colons as a token type
Summary: No longer merge 'name' and ':' into a single token.
Ensure that line breaks cannot be placed before or after a named-argument colon.
Ensure that no space is inserted before a named-argument colon.
Reviewers: krasimir
Reviewed By: krasimir
Subscribers: cfe-commits, MyDeveloperDay
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D75244
|
 | clang/lib/Format/TokenAnnotator.cpp |
 | clang/unittests/Format/FormatTestCSharp.cpp |
 | clang/lib/Format/FormatTokenLexer.cpp |
 | clang/lib/Format/FormatTokenLexer.h |
 | clang/lib/Format/FormatToken.h |
Commit
6bdd63dc28208a597542b0c6bc41093f32417804
by llvm-dev[X86] createVariablePermute - handle case where recursive createVariablePermute call fails
Account for the case where a recursive createVariablePermute call with a wider vector type fails.
Original test case from @craig.topper (Craig Topper)
|
 | llvm/test/CodeGen/X86/var-permute-512.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
aa324c5441f229bd1ff07407affeab95740328fe
by hokein.wu[clangd][NFC] Don't query the index if the rename symbol is function local.
This would save an unnecessary index query when renaming a function local symbol in cross-file rename mode.
|
 | clang-tools-extra/clangd/refactor/Rename.cpp |
Commit
54e5600e4d28535d4296a6b6baeefccc9cc9d904
by zinenko[mlir] fix wrong symbol order in AffineApplyNormalizer
Summary: AffineApplyNormalizer provides common logic for folding affine maps that appear in affine.apply into other affine operations that use the result of said affine.apply. In the process, affine maps of both operations are composed. During the composition `A.compose(B)` the symbols from the map A are placed before those of the map B in a single concatenated symbol list. However, AffineApplyNormalizer was ordering the operands of the operation being normalized by iteratively appending the symbols into a single list accoridng to the operand order, regardless of whether these operands are symbols of the current operation or of the map that is being folded into it. This could lead to wrong order of symbols and, when the symbols were bound to constant values, to visibly incorrect folding of constants into affine maps as reported in PR45031. Make sure symbols operands to the current operation are always placed before symbols coming from the folded maps.
Update the test that was exercising the incorrect folder behavior. For some reason, the order of symbol operands was swapped in the test input compared to the previous operations, making it easy to assume the correct maps were produced whereas they were swapping the symbols back due to the problem described above.
Closes https://bugs.llvm.org/show_bug.cgi?id=45031
Differential Revision: https://reviews.llvm.org/D75247
|
 | mlir/test/Dialect/AffineOps/canonicalize.mlir |
 | mlir/lib/Dialect/AffineOps/AffineOps.cpp |
 | mlir/include/mlir/Dialect/AffineOps/AffineOps.h |
Commit
fabe52a7412d850bf06e006db1d53de0500a1853
by llvm-devFix uninitialized variable warning. NFC.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
efe2f59ec4d7216dba5669f9a10c8cd4745c422c
by llvm-dev[X86] LowerMSCATTER/MGATHER - reduce scope of MaskVT. NFCI.
Fixes cppcheck warning.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
dc7ac563ac3a76a5149257e5f95cf0474e7618cf
by llvm-devFix shadow variable warnings. NFC.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
e61e7f0794b7bfc9eb698802808f5bfaf026d3f1
by llvm-devFix shadow variable warning. NFC.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
39e1c1fa9ee03e91751e505d747275e58069e6de
by akuegelAdd GPU lowerings for the different log ops.
Summary: This adds GPU lowerings for log, log10 and log2.
Reviewers: mravishankar, herhut
Subscribers: jholewinski, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75239
|
 | mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp |
 | mlir/test/Conversion/GPUToROCDL/gpu-to-rocdl.mlir |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir |
Commit
f35f59ac36db3c5fe636f6899d98ac690126a4f7
by aaronAdding some documentation for __builtin_dump_struct.
|
 | clang/docs/LanguageExtensions.rst |
Commit
fe6bcfaf3b28e300e722b23e6ef00d04d7240a93
by llvm-dev[X86] Use Subtarget.useSoftFloat() in X86TargetLowering constructor
Avoid use of X86TargetLowering::useSoftFloat() in the constructor as its a virtual function
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
f90cc633de9f75715a3efc87c25c39a2de3ce53e
by llvm-devFix cppcheck definition/declaration arg mismatch warnings. NFCI.
|
 | llvm/lib/Target/X86/X86ISelLowering.h |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
5900d3f2e94f710d73a89931953ce0a3d928c70d
by jay.foad[AMDGPU][ConstantFolding] Fold llvm.amdgcn.fract intrinsic
Reviewers: nhaehnle, arsenm, rampitec
Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75179
|
 | llvm/test/Analysis/ConstantFolding/AMDGPU/fract.ll |
 | llvm/lib/Analysis/ConstantFolding.cpp |
Commit
4569b3a86f8a4b1b8ad28fe2321f936f9d7ffd43
by kbobyrevRevert "Devirtualize a call on alloca without waiting for post inline cleanup and next"
This reverts commit 59fb9cde7a4a96fe8485a80d9010e4420ffdca82.
The patch caused internal miscompilations.
|
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/test/Transforms/Inline/devirtualize-4.ll |
 | clang/test/CodeGenCXX/member-function-pointer-calls.cpp |
Commit
fcfd3a281c1d6ffd40e4acc430eba448fa6c8423
by ntv[mlir] NFC - Move runner utils from mlir-cpu-runner to ExecutionEngine
Runner utils are useful beyond just CPU and hiding them within the test directory makes it unnecessarily harder to reuse in other projects.
|
 | mlir/include/mlir/ExecutionEngine/RunnerUtils.h |
 | mlir/lib/ExecutionEngine/CMakeLists.txt |
 | mlir/test/mlir-cpu-runner/include/cblas_interface.h |
 | mlir/test/mlir-cpu-runner/include/mlir_runner_utils.h |
 | mlir/test/mlir-cpu-runner/mlir_runner_utils.cpp |
 | mlir/test/CMakeLists.txt |
 | mlir/test/mlir-cpu-runner/include/cblas.h |
 | mlir/test/mlir-cpu-runner/CMakeLists.txt |
 | mlir/lib/ExecutionEngine/RunnerUtils.cpp |
Commit
ee1b2e7ded12ef6e11ce35bb9929490ac9e7fa4f
by kparzysz[Hexagon] Do not use init_arrays by default
|
 | clang/test/Driver/hexagon-toolchain-elf.c |
 | clang/lib/Driver/ToolChains/Hexagon.cpp |
Commit
bd97704eaaaab5a95ecb048ce343c1a4be5d94e5
by alexey.bader[SYCL] Driver option to select SYCL version
Summary: User can select the version of SYCL the compiler will use via the flag -sycl-std, similar to -cl-std.
The flag defines the LangOpts.SYCLVersion option to the version of SYCL. The default value is undefined. If driver is building SYCL code, flag is set to the default SYCL version (1.2.1)
The preprocessor uses this variable to define CL_SYCL_LANGUAGE_VERSION macro, which should be defined according to SYCL 1.2.1 standard.
Only valid value at this point for the flag is 1.2.1.
Co-Authored-By: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co> Signed-off-by: Ruyman Reyes <ruyman@codeplay.com>
Subscribers: ebevhan, Anastasia, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72857
Signed-off-by: Alexey Bader <alexey.bader@intel.com>
|
 | clang/test/Preprocessor/sycl-macro.cpp |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/lib/Frontend/InitPreprocessor.cpp |
 | clang/test/Frontend/sycl-aux-triple.cpp |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/include/clang/Driver/Options.td |
 | clang/include/clang/Basic/LangOptions.def |
 | clang/test/Driver/sycl.c |
 | clang/test/SemaSYCL/kernel-attribute.cpp |
Commit
1b811ff8a935fafb279ad9bad36d36058a129b42
by bmahjour[DA] Delinearization of fixed-size multi-dimensional arrays
Summary: Currently the dependence analysis in LLVM is unable to compute accurate dependence vectors for multi-dimensional fixed size arrays. This is mainly because the delinearization algorithm in scalar evolution relies on parametric terms to be present in the access functions. In the case of fixed size arrays such parametric terms are not present, but we can use the indexes from GEP instructions to recover the subscripts for each dimension of the arrays. This patch adds this ability under the existing option `-da-disable-delinearization-checks`.
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/D72178
|
 | llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll |
 | llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll |
 | llvm/test/Transforms/LoopInterchange/currentLimitation.ll |
 | llvm/include/llvm/Analysis/DependenceAnalysis.h |
 | llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll |
 | llvm/lib/Analysis/DependenceAnalysis.cpp |
 | llvm/test/Transforms/LoopInterchange/profitability.ll |
Commit
f943443e65115c83648f1185adedb3d333f8619f
by a.v.lapshin[Debuginfo][NFC] Unify error reporting routines inside DebugInfoDWARF.
Summary: Error reporting in DebugInfoDWARF library currently done in three ways :
1. Direct calls to WithColor::error()/WithColor::warning() 2. ErrorPolicy defaultErrorHandler(Error E); 3. void dumpWarning(Error Warning);
additionally, other locations could have more variations:
lld/ELF/SyntheticSection.cpp if (Error e = cu->tryExtractDIEsIfNeeded(false)) { error(toString(sec) + ": " + toString(std::move(e)));
DebugInfo/DWARF/DWARFUnit.cpp if (Error e = tryExtractDIEsIfNeeded(CUDieOnly)) WithColor::error() << toString(std::move(e));
Thus error reporting could look inconsistent. To have a consistent error messages it is necessary to have a possibility to redefine error reporting functions. This patch creates two handlers and allows to redefine them. It also patches all places inside DebugInfoDWARF to use these handlers.
The intention is always to use following handlers for error reporting purposes inside DebugInfoDWARF:
DebugInfo/DWARF/DWARFContext.h
std::function<void(Error E)> RecoverableErrorHandler = WithColor::defaultErrorHandler; std::function<void(Error E)> WarningHandler = WithColor::defaultWarningHandler;
This is last patch from series of patches: D74481, D74635, D75118.
Reviewers: jhenderson, dblaikie, probinson, aprantl, JDevlieghere
Reviewed By: jhenderson
Subscribers: grimar, hiraditya, llvm-commits
Tags: #llvm, #debug-info
Differential Revision: https://reviews.llvm.org/D74308
|
 | llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
 | llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp |
 | llvm/lib/DebugInfo/Symbolize/Symbolize.cpp |
Commit
965ba4291a6d978c7d4d98831d6ae62e9761f37d
by sam.parkerRevert "[ARM] Add CPSR as an implicit use of t2IT"
This reverts commit e58229fded0407f3e4f77cd87bedcd4d35bb7c89.
Differential Revision: https://reviews.llvm.org/D75186
|
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update2.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir |
 | llvm/lib/Target/ARM/ARMInstrThumb2.td |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir |
 | llvm/test/CodeGen/MIR/ARM/bundled-instructions.mir |
 | llvm/test/CodeGen/ARM/tail-dup-bundle.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir |
 | llvm/test/CodeGen/Thumb2/t2-teq-reduce.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir |
 | llvm/test/CodeGen/MIR/ARM/nested-instruction-bundle-error.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-load.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-use.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/cmplx_cong.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-header.mir |
 | llvm/test/CodeGen/Thumb2/constant-islands-cbz.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/switch.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-def.mir |
 | llvm/test/CodeGen/ARM/constant-islands-split-IT.mir |
Commit
168a44a70eb562f9a88a2e25b6ffd9cca3b25052
by llvm-dev[CostModel][X86] Improve extract/insert element costs (PR43605)
This tries to improve the accuracy of extract/insert element costs by accounting for subvector extraction/insertion for >128-bit vectors and the shuffling of elements to/from the 0'th index.
It also adds INSERTPS for f32 types and PINSR/PEXTR costs for integer types (at the moment we assume the same cost as MOVD/MOVQ - which isn't always true).
Differential Revision: https://reviews.llvm.org/D74976
|
 | llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll |
 | llvm/test/Transforms/LoopVectorize/X86/interleaving.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/hadd.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/zext.ll |
 | llvm/test/Analysis/CostModel/X86/vshift-lshr-cost.ll |
 | llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll |
 | llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector.ll |
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/X86/arith-fp.ll |
 | llvm/test/Analysis/CostModel/X86/intrinsic-cost.ll |
 | llvm/test/Analysis/CostModel/X86/vshift-ashr-cost.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/sext.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/hsub.ll |
 | llvm/test/Analysis/CostModel/X86/sitofp.ll |
 | llvm/test/Analysis/CostModel/X86/load_store.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll |
 | llvm/test/Analysis/CostModel/X86/extend.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll |
 | llvm/test/Analysis/CostModel/X86/vector-extract.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/minimum-sizes.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/PR35865.ll |
 | llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/commutativity.ll |
 | llvm/test/Analysis/CostModel/X86/fptosi.ll |
 | llvm/test/Analysis/CostModel/X86/fptoui.ll |
 | llvm/test/Analysis/CostModel/X86/vshift-shl-cost.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/pr35497.ll |
 | llvm/test/Analysis/CostModel/X86/vector-insert.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/resched.ll |
 | llvm/test/Analysis/CostModel/X86/fround.ll |
Commit
080890a9f38ff63f9693b55b263dc433ba8bed7a
by llvm-dev[InstCombine] Add PR14365 test cases + vector equivalents.
|
 | llvm/test/Transforms/InstCombine/pr14365.ll |
Commit
c08384a3aeeb81646750543cd5637e096d6fc4b1
by sunfish[WebAssembly] Add an `isWasm` target triple predicate.
This simplies code which needs to apply the same logic to both wasm32 and wasm64.
This patch is part of https://reviews.llvm.org/D70700.
|
 | llvm/include/llvm/ADT/Triple.h |
Commit
197bda587b4bb5e7603ad05fc1106332edc6afbd
by sunfish[WebAssembly] Teach lld how to demangle "__main_argc_argv".
WebAssembly requires that caller and callee signatures match, so it can't do the usual trick of passing more arguments to main than it expects. Instead WebAssembly will mangle "main" with argc/argv parameters as "__main_argc_argv". This patch teaches lld how to demangle it.
This patch is part of https://reviews.llvm.org/D70700.
|
 | lld/wasm/Symbols.cpp |
Commit
00072c08c75050ae2c835b7bb0e505475dbcd7b9
by sunfish[WebAssembly] Mangle the argc/argv `main` as `__wasm_argc_argv`.
WebAssembly enforces a rule that caller and callee signatures must match. This means that the traditional technique of passing `main` `argc` and `argv` even when it doesn't need them doesn't work.
Currently the backend renames `main` to `__original_main`, however this doesn't interact well with LTO'ing libc, and the name isn't intuitive. This patch allows us to transition to `__main_argc_argv` instead.
This implements the proposal in https://github.com/WebAssembly/tool-conventions/pull/134 with a flag to disable it when targeting Emscripten, though this is expected to be temporary, as discussed in the proposal comments.
Differential Revision: https://reviews.llvm.org/D70700
|
 | clang/lib/CodeGen/CodeGenModule.h |
 | clang/test/CodeGen/wasm-call-main.c |
 | clang/test/CodeGen/wasm-main.c |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/lib/Frontend/InitHeaderSearch.cpp |
 | clang/test/CodeGen/wasm-main_argc_argv.c |
 | clang/lib/AST/Mangle.cpp |
Commit
f64e457cb75b61f6566de8327a1bfae498d5a296
by pierre.vanhoutryve[Transforms][Debugify] Ignore PHI nodes when checking for DebugLocs
Fix for: https://bugs.llvm.org/show_bug.cgi?id=37964
Differential Revision: https://reviews.llvm.org/D75242
|
 | llvm/lib/Transforms/Utils/Debugify.cpp |
 | llvm/test/DebugInfo/pr37964.ll |
Commit
740ed617f7d4d16e7883636c5eff994f8be7eba4
by alexey.baderRevert "[SYCL] Driver option to select SYCL version"
This reverts commit bd97704eaaaab5a95ecb048ce343c1a4be5d94e5.
It broke tests on mac: http://45.33.8.238/mac/9011/step_7.txt
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/lib/Frontend/CompilerInvocation.cpp |
 | clang/test/Driver/sycl.c |
 | clang/include/clang/Driver/Options.td |
 | clang/include/clang/Basic/LangOptions.def |
 | clang/test/Frontend/sycl-aux-triple.cpp |
 | clang/test/Preprocessor/sycl-macro.cpp |
 | clang/lib/Frontend/InitPreprocessor.cpp |
 | clang/test/SemaSYCL/kernel-attribute.cpp |
Commit
ddd11273d9d0807e25a34181e5978e3307d78dc2
by simon.mollRemove BinaryOperator::CreateFNeg
Use UnaryOperator::CreateFNeg instead.
Summary: With the introduction of the native fneg instruction, the fsub -0.0, %x idiom is obsolete. This patch makes LLVM emit fneg instead of the idiom in all places.
Reviewed By: cameron.mcinally
Differential Revision: https://reviews.llvm.org/D75130
|
 | llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp |
 | llvm/test/Transforms/Reassociate/fast-basictest.ll |
 | llvm/test/Transforms/InstCombine/maxnum.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp |
 | llvm/test/Transforms/InstCombine/minimum.ll |
 | llvm/lib/Transforms/Scalar/Reassociate.cpp |
 | llvm/test/Transforms/InstCombine/fmul.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp |
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
 | llvm/lib/IR/Instructions.cpp |
 | llvm/test/Transforms/InstCombine/cos-sin-intrinsic.ll |
 | llvm/test/Transforms/Reassociate/fp-expr.ll |
 | llvm/test/Transforms/InstCombine/fsub.ll |
 | llvm/test/Transforms/InstCombine/fpcast.ll |
 | llvm/test/Transforms/InstCombine/pow-1.ll |
 | llvm/test/Transforms/InstCombine/minmax-fp.ll |
 | llvm/include/llvm/IR/InstrTypes.h |
 | llvm/test/Transforms/InstCombine/fast-math.ll |
 | llvm/test/Transforms/InstCombine/fneg.ll |
 | llvm/test/Transforms/InstCombine/minnum.ll |
 | clang/test/CodeGen/complex-math.c |
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
 | llvm/test/Transforms/InstCombine/maximum.ll |
Commit
75d4d4bd028f6a5f24ef41dbbc45bed65b2305cf
by john.brawnAdd an attribute registry so plugins can add attributes
When constructing a ParsedAttr the ParsedAttrInfo gets looked up in the AttrInfoMap, which is auto-generated using tablegen. If that lookup fails then we look through the ParsedAttrInfos that plugins have added to the registry and check if any has a spelling that matches.
Differential Revision: https://reviews.llvm.org/D31338
|
 | clang/include/clang/Basic/AttributeCommonInfo.h |
 | clang/include/clang/Sema/ParsedAttr.h |
 | clang/lib/Basic/Attributes.cpp |
 | clang/utils/TableGen/ClangAttrEmitter.cpp |
 | clang/lib/Sema/ParsedAttr.cpp |
Commit
4ef272ec9c5f737b8d63a3cc8870d8d63bf0385e
by nikita.ppv[InstCombine] DCE instructions earlier
When InstCombine initially populates the worklist, it already performs constant folding and DCE. However, as the instructions are initially visited in program order, this DCE can pick up only the last instruction of a dead chain, the rest would only get picked up in the main InstCombine run.
To avoid this, we instead perform the DCE in separate pass over the collected instructions in reverse order, which will allow us to pick up full dead instruction chains. We already need to do this reverse iteration anyway to populate the worklist, so this shouldn't add extra cost.
This by itself only fixes a small part of the problem though: The same basic issue also applies during the main InstCombine loop. We generally always want DCE to occur as early as possible, because it will allow one-use folds to happen. Address this by also performing DCE while adding deferred instructions to the main worklist.
This drops the number of tests that perform more than 2 InstCombine iterations from ~80 to ~40. There's some spurious test changes due to operand order / icmp toggling.
Differential Revision: https://reviews.llvm.org/D75008
|
 | llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h |
 | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp |
 | llvm/test/Transforms/InstCombine/vec_sext.ll |
 | llvm/test/Transforms/InstCombine/2010-11-01-lshr-mask.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineInternal.h |
 | llvm/test/Transforms/InstCombine/sub-ashr-and-to-icmp-select.ll |
 | llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll |
 | llvm/test/Transforms/InstCombine/pr44245.ll |
 | llvm/test/Transforms/InstCombine/select-imm-canon.ll |
 | llvm/test/Transforms/InstCombine/sub-ashr-or-to-icmp-select.ll |
 | llvm/test/Transforms/InstCombine/logical-select.ll |
 | llvm/test/Transforms/InstCombine/demorgan-sink-not-into-xor.ll |
Commit
512f345a5db163ac52bf0223f749acc6188e6138
by ntv[mlir] Hotfix - Rename MLIRRuntimeUtils to mlir_runtime_utils
|
 | mlir/test/CMakeLists.txt |
 | mlir/lib/ExecutionEngine/CMakeLists.txt |
Commit
0c8a21879872c8ca8aa5966263f9d67207b3108e
by sameer.sahasrabuddhe[AMDGPU] improve fragile test for divergent branches
Summary: The affected LIT test intends to test the correct use of divergence analysis to detect a divergent branch with a uniform predicate. The passes involved are LLVM IR passes, but the test runs llc and tries to match against generated ISA, which makes it hard to demonstrate that the intended behavior was really tested. Replaced this with a test that invokes opt on the required passes and then checks for the appropriate changes in the LLVM IR.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D75267
|
 | llvm/test/CodeGen/AMDGPU/divergent-branch-uniform-condition.ll |
Commit
04da3dfecc199a7fdd262b06eeb399fc8ce0d1f6
by rnkForward declare special case lists
This avoids pulling in unordered_map from TrigramIndex.h:
$ diff -u thedeps-before.txt thedeps-after.txt | \ grep '^[-+] ' | sort | uniq -c | sort -nr 976 - ../llvm/include/llvm/Support/TrigramIndex.h 976 - ../llvm/include/llvm/Support/SpecialCaseList.h 976 - ../clang/include/clang/Basic/SanitizerSpecialCaseList.h 502 - ../../../PROGRA~2/MIB055~1/2019/PROFES~1/VC/Tools/MSVC/14.24.28314/include/unordered_map 467 - ../../../PROGRA~2/MIB055~1/2019/PROFES~1/VC/Tools/MSVC/14.24.28314/include/xhash 467 - ../../../PROGRA~2/MIB055~1/2019/PROFES~1/VC/Tools/MSVC/14.24.28314/include/xbit_ops.h 212 - ../llvm/include/llvm/ADT/StringSet.h
|
 | clang/lib/Basic/XRayLists.cpp |
 | clang/include/clang/Basic/SanitizerSpecialCaseList.h |
 | clang/include/clang/Basic/XRayLists.h |
 | clang/include/clang/Basic/SanitizerBlacklist.h |
 | clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h |
 | clang/lib/Basic/SanitizerBlacklist.cpp |
 | clang/lib/Sema/SemaDecl.cpp |
Commit
bc8836651fba3304d92e1025ff6a918f25e9e209
by rnkForward declare FileEntry and DirectoryEntry in Module.h
FileManager.h is an expensive header (~350ms for me in isolation), so try to do without it.
Notably, we need to avoid checking the alignment of FileEntry, which happens for DenseMap<FileEntry*> and PointerUnion<FileEntry*>. I adjusted the code to avoid PointerUnion, and moved the DenseMap insertion to the .cpp file.
Globally, this only saved about ~17 includes of the related headers because SourceManager.h still includes FileManager.h, and it is more popular than Module.h.
|
 | clang/include/clang/Serialization/ModuleFile.h |
 | clang/include/clang/Basic/Module.h |
 | clang/lib/Lex/ModuleMap.cpp |
 | clang/lib/Basic/Module.cpp |
Commit
d4ad2adb0046ef5bc4276552f978b43446e9c0c2
by eric[libc++] Mark more try_lock tests as possibly flaky.
These tests check that an operations happens within a specified deadline, which causes flaky failures on slow machines or machines under heavy load.
By adding the // FLAKY_TEST. tag it allows the test suite to retry or ignore the tests
|
 | libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock.pass.cpp |
 | libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock.pass.cpp |
 | libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock.pass.cpp |
 | libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/try_lock.pass.cpp |
 | libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/try_lock.pass.cpp |
 | libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock.pass.cpp |
 | libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock.pass.cpp |
Commit
d32fa59fa007ba53b8453f96a5661b149e4715c7
by daltenty[XCOFF] Don't emit non-external labels in the symbol table and handle MCSA_LGlobal
Summary: We need to handle the MCSA_LGlobal case in emitSymbolAttribute for functions marked internal in the IR so that the appropriate storage class is emitted on the function descriptor csect. As part of this we need to make sure that external labels are not emitted into the symbol table, so we don't emit the descriptor label in the object writing path.
Reviewers: jasonliu, DiggerLin, hubert.reinterpretcast
Reviewed By: jasonliu
Subscribers: Xiangling_L, wuzish, nemanjai, hiraditya, jsji, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74968
|
 | llvm/lib/MC/XCOFFObjectWriter.cpp |
 | llvm/test/CodeGen/PowerPC/aix-xcoff-mergeable-const.ll |
 | llvm/test/CodeGen/PowerPC/aix-xcoff-mergeable-str.ll |
 | llvm/lib/MC/MCXCOFFStreamer.cpp |
 | llvm/test/CodeGen/PowerPC/aix-internal.ll |
Commit
b26c88e3c6e08f8f78ab4291bc85b5685241f493
by alexfh[clang-tidy] Store all ranges in clang::tooling::Diagnostic
Summary: Instead of dropping all the ranges associated with a Diagnostic when converting them to a ClangTidy error, instead attach them to the ClangTidyError, so they can be consumed by other APIs.
Patch by Joe Turner <joturner@google.com>. Differential Revision: https://reviews.llvm.org/D69782
|
 | clang/unittests/Tooling/DiagnosticsYamlTest.cpp |
 | clang-tools-extra/unittests/clang-apply-replacements/ApplyReplacementsTest.cpp |
 | clang/lib/Tooling/Core/Diagnostic.cpp |
 | clang/include/clang/Tooling/DiagnosticsYaml.h |
 | clang/include/clang/Tooling/Core/Diagnostic.h |
Commit
01b209679f69cc42e96f05a3c37ba06480094819
by stephen.neuendorffer[MLIR] add show-dialects option for mlir-opt
Display the list of dialects known to mlir-opt. This is useful for ensuring that linkage has happened correctly, for instance.
Differential Revision: https://reviews.llvm.org/D74865
|
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/test/mlir-opt/commandline.mlir |
Commit
9227a74b7e8ff9b9cb5924e03547b940dc06e331
by herhut[MLIR][Loops] Expose transformations on loop.parallel in header (NFC).
Summary: This change does not add any functionality but merely exposes existing static functions to make the associated transformations available outside of their testing passes.
Differential Revision: https://reviews.llvm.org/D75232
|
 | mlir/include/mlir/Dialect/LoopOps/Transforms.h |
 | mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopFusion.cpp |
 | mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopTiling.cpp |
Commit
4a966e5dd75160a7df0c7231e4c760a2bb127112
by ntv[mlir] NFC - Split out RunnerUtils that don't require a C++ runtime
Summary: This revision split out a new CRunnerUtils library that supports MLIR execution on targets without a C++ runtime.
Differential Revision: https://reviews.llvm.org/D75257
|
 | mlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir |
 | mlir/lib/ExecutionEngine/RunnerUtils.cpp |
 | mlir/lib/ExecutionEngine/CRunnerUtils.cpp |
 | mlir/lib/ExecutionEngine/CMakeLists.txt |
 | mlir/include/mlir/ExecutionEngine/RunnerUtils.h |
 | mlir/include/mlir/ExecutionEngine/CRunnerUtils.h |
 | mlir/test/CMakeLists.txt |
Commit
256e61699b19c8e3545c948547c12872a8567250
by paolosev[LLDB] Fix AddressSanitizer failure in MemoryCache
The lldb sanitizer bot is flagging a container-overflow error after we introduced test TestWasm.py. MemoryCache::Read didn't behave correctly in case of partial reads that can happen with object files whose size is smaller that the cache size. It should return the actual number of bytes read and not try to fill the buffer with random memory. Module::GetMemoryObjectFile needs to be modified accordingly, to resize its buffer to only the size that was read.
Differential Revision: https://reviews.llvm.org/D75200
|
 | lldb/source/Core/Module.cpp |
 | lldb/source/Target/Memory.cpp |
Commit
84e6fd815a50965e07a689ade85d0ede0711b16a
by spatel[AArch64] regenerate complete test checks; NFC
|
 | llvm/test/CodeGen/AArch64/arm64-dup.ll |
Commit
2f090ce8904cd973bb336ad56006288e04a05178
by spatel[AArch64] add splat shuffle combine test; NFC
|
 | llvm/test/CodeGen/AArch64/arm64-dup.ll |
Commit
90fd859f51d7a77ccb7978804af00c847e8e4d6d
by spatel[x86] use instruction-level fast-math-flags to drive MachineCombiner
The code changes here are hopefully straightforward:
1. Use MachineInstruction flags to decide if FP ops can be reassociated (use both "reassoc" and "nsz" to be consistent with IR transforms; we probably don't need "nsz", but that's a safer interpretation of the FMF). 2. Check that both nodes allow reassociation to change instructions. This is a stronger requirement than we've usually implemented in IR/DAG, but this is needed to solve the motivating bug (see below), and it seems unlikely to impede optimization at this late stage. 3. Intersect/propagate MachineIR flags to enable further reassociation in MachineCombiner.
We managed to make MachineCombiner flexible enough that no changes are needed to that pass itself. So this patch should only affect x86 (assuming no other targets have implemented the hooks using MachineIR flags yet).
The motivating example in PR43609 is another case of fast-math transforms interacting badly with special FP ops created during lowering: https://bugs.llvm.org/show_bug.cgi?id=43609 The special fadd ops used for converting int to FP assume that they will not be altered, so those are created without FMF.
However, the MachineCombiner pass was being enabled for FP ops using the global/function-level TargetOption for "UnsafeFPMath". We managed to run instruction/node-level FMF all the way down to MachineIR sometime in the last 1-2 years though, so we can do better now.
The test diffs require some explanation:
1. llvm/test/CodeGen/X86/fmf-flags.ll - no target option for unsafe math was specified here, so MachineCombiner kicks in where it did not previously; to make it behave consistently, we need to specify a CPU schedule model, so use the default model, and there are no code diffs. 2. llvm/test/CodeGen/X86/machine-combiner.ll - replace the target option for unsafe math with the equivalent IR-level flags, and there are no code diffs; we can't remove the NaN/nsz options because those are still used to drive x86 fmin/fmax codegen (special SDAG opcodes). 3. llvm/test/CodeGen/X86/pow.ll - similar to #1 4. llvm/test/CodeGen/X86/sqrt-fastmath.ll - similar to #1, but MachineCombiner does some reassociation of the estimate sequence ops; presumably these are perf wins based on latency/throughput (and we get some reduction of move instructions too); I'm not sure how it affects numerical accuracy, but the test reflects reality better now because we would expect MachineCombiner to be enabled if the IR was generated via something like "-ffast-math" with clang. 5. llvm/test/CodeGen/X86/vec_int_to_fp.ll - this is the test added to model PR43609; the fadds are not reassociated now, so we should get the expected results. 6. llvm/test/CodeGen/X86/vector-reduce-fadd-fast.ll - similar to #1 7. llvm/test/CodeGen/X86/vector-reduce-fmul-fast.ll - similar to #1
Differential Revision: https://reviews.llvm.org/D74851
|
 | llvm/test/CodeGen/X86/pow.ll |
 | llvm/lib/CodeGen/TargetInstrInfo.cpp |
 | llvm/test/CodeGen/X86/machine-combiner.ll |
 | llvm/lib/Target/X86/X86InstrInfo.cpp |
 | llvm/test/CodeGen/X86/fmf-flags.ll |
 | llvm/test/CodeGen/X86/vec_int_to_fp.ll |
 | llvm/test/CodeGen/X86/vector-reduce-fadd-fast.ll |
 | llvm/test/CodeGen/X86/vector-reduce-fmul-fast.ll |
 | llvm/test/CodeGen/X86/sqrt-fastmath.ll |