|
 | clang/include/clang/Basic/AttrDocs.td (diff) |
 | clang/include/clang/Basic/Attr.td (diff) |
|
 | clang/include/clang/Basic/AttrDocs.td (diff) |
Commit
7255d1f54fd3efcfe5836e1799c5b998d67752d3
by david.green[ARM] Format ARMISD node definitions. NFC
This clang-formats the list of ARMISD nodes. Usually this is something I would avoid, but these cause problems with formatting every time new nodes are added.
The list in getTargetNodeName also makes use of MAKE_CASE macros, as other backends do.
|
 | llvm/lib/Target/ARM/ARMISelLowering.h (diff) |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp (diff) |
|
 | libcxx/include/bitset (diff) |
Commit
de266ce4f9f2dfc989d2f9f82017229be5f535eb
by thakis[lld/mac] Don't assert when using -exported_symbol with private symbol
When I added this assert in D93609, it asserted that a symbol that is privateExtern is also isExternal().
In D98381 the privateExtern check moved into shouldExportSymbol() but the assert didn't -- now it checked that _every_ non-exported symbol is isExternal(), which isn't true. Move the assert into the privateExtern check where it used to be.
Fixes PR50098.
Differential Revision: https://reviews.llvm.org/D101223
|
 | lld/MachO/SyntheticSections.cpp (diff) |
 | lld/test/MachO/export-options.s (diff) |
|
 | llvm/test/Transforms/InstCombine/eq-of-parts.ll |
Commit
ca177dcda301b98b73c67a2cbcbd4106dc80dec2
by koraq[libc++][doc] Adds a Format library status page.
A status page for libc++'s Format library. The page is inspired by @zoecarver's Ranges status page.
Differential Revision: https://reviews.llvm.org/D101085
|
 | libcxx/docs/FormatProposalStatus.csv |
 | libcxx/docs/FormatIssuePaperStatus.csv |
 | libcxx/docs/FormatStatus.rst |
 | libcxx/docs/index.rst (diff) |
Commit
38225d692163fc697006d8a769479459fdfc32fa
by cjdb[libcxx][iterator] adds `std::input_or_output_iterator` and `std::sentinel_for`
Implements parts of: * P0896R4 The One Ranges Proposal`
Depends on D100080
Differential Revision: https://reviews.llvm.org/D100160
|
 | libcxx/test/std/iterators/stream.iterators/istream.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/input_or_output_iterator.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/include/iterator (diff) |
 | libcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp |
 | libcxx/include/__iterator/concepts.h (diff) |
 | libcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp |
Commit
d4ec8ea19cb1c944f70b584b2bdb8a12ea875261
by Dávid Bolvanský[InstCombine] ctpop(X) + ctpop(Y) => ctpop(X | Y) if X and Y have no common bits (PR48999)
For example:
``` int src(unsigned int a, unsigned int b) { return __builtin_popcount(a << 16) + __builtin_popcount(b >> 16); }
int tgt(unsigned int a, unsigned int b) { return __builtin_popcount((a << 16) | (b >> 16)); } ```
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D101210
|
 | llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (diff) |
 | llvm/test/Transforms/InstCombine/ctpop.ll (diff) |
|
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff) |
 | llvm/test/Transforms/InstCombine/ctpop.ll (diff) |
Commit
967ebad12521f3187014a722804c27a75d44e649
by aaronFix null ptr crash dumping TemplateTemplateParmDecl
The following program winds up with D->getDefaultArgStorage().getInheritedFrom() == nullptr during dumping the TemplateTemplateParmDecl corresponding to the template parameter of i.
template <typename> struct R; template <template <typename> class = R> void i();
This patch fixes the null pointer dereference.
|
 | clang/lib/AST/JSONNodeDumper.cpp (diff) |
 | clang/test/AST/ast-dump-template-decls-json.cpp (diff) |
|
 | llvm/test/Transforms/InstCombine/ctpop.ll (diff) |
Commit
af342f72400445b85c38ba768439c495d7cf346f
by david.green[AArch64] Enable UseAA globally in the AArch64 backend
This is similar to D69796 from the ARM backend. We remove the UseAA feature, enabling it globally in the AArch64 backend. This should in general be an improvement allowing the backend to reorder more instructions in scheduling and codegen, and enabling it by default helps to improve the testing of the feature, not making it cpu-specific. A debugging option is added instead for testing.
Differential Revision: https://reviews.llvm.org/D98781
|
 | llvm/test/CodeGen/AArch64/arm64-variadic-aapcs.ll (diff) |
 | llvm/lib/Target/AArch64/AArch64.td (diff) |
 | llvm/lib/Target/AArch64/AArch64Subtarget.h (diff) |
 | llvm/test/CodeGen/AArch64/seh-finally.ll (diff) |
 | llvm/test/CodeGen/AArch64/arm64-virtual_base.ll (diff) |
 | llvm/lib/Target/AArch64/AArch64Subtarget.cpp (diff) |
 | llvm/test/CodeGen/AArch64/ilp32-va.ll (diff) |
 | llvm/test/CodeGen/AArch64/misched-stp.ll (diff) |
 | llvm/test/CodeGen/AArch64/aarch64-gep-opt.ll (diff) |
|
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff) |
Commit
1cc5946cc80d75be76ac8a41e1a3697059273681
by flo[NewGVN] Use performSymbolicEvaluation instead of createExpression.
performSymbolicEvaluation is used to obtain the symbolic expression when visiting instructions and this is used to determine their congruence class.
performSymbolicEvaluation only creates expressions for certain instructions (via createExpression). For unsupported instructions, 'unknown' expression are created.
The use of createExpression in processOutgoingEdges means we may simplify the condition in processOutgoingEdges to a constant in the initial round of processing, but we use Unknown(I) for the congruence class. If an operand of I changes the expression Unknown(I) stays the same, so there is no update of the congruence class of I. Hence it won't get re-visited. So if an operand of I changes in a way that causes createExpression to return different result, this update is missed.
This patch updates the code to use performSymbolicEvaluation, to be symmetric with the congruence class updating code.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D99990
|
 | llvm/lib/Transforms/Scalar/NewGVN.cpp (diff) |
 | llvm/test/Transforms/NewGVN/compare-condition-changes.ll |
Commit
0eb3299d28e4a9e235dec28d70a0df9e74e74722
by pklausler[flang] Fix crash from -DMACRO= with empty replacement
Such macros were exposing some edge cases in the preprocessor regarding empty tokens.
Differential Revision: https://reviews.llvm.org/D101207
|
 | flang/include/flang/Common/interval.h (diff) |
 | flang/lib/Parser/provenance.cpp (diff) |
|
 | llvm/test/CodeGen/X86/tail-call-deref.ll |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff) |
 | llvm/lib/CodeGen/Analysis.cpp (diff) |
 | llvm/test/CodeGen/ARM/tail-call.ll (diff) |
 | llvm/test/CodeGen/X86/tail-calls-compatible-attrs.ll |
Commit
0ce723cb228bc1d1a0f5718f3862fb836145a333
by VenkataRamanaiah.Nalamothu[NFC] Refactor how CFI section types are represented in AsmPrinter
In terms of readability, the `enum CFIMoveType` didn't better document what it intends to convey i.e. the type of CFI section that gets emitted.
Reviewed By: dblaikie, MaskRay
Differential Revision: https://reviews.llvm.org/D76519
|
 | llvm/lib/CodeGen/AsmPrinter/ARMException.cpp (diff) |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff) |
 | llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp (diff) |
 | llvm/include/llvm/CodeGen/AsmPrinter.h (diff) |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp (diff) |
Commit
95af971764186a2af6158af26e5aa905a55be586
by nikita.ppv[PatternMatch] Improve m_Deferred() documentation (NFC)
m_Deferred() has nothing to do with commutative matchers, it needs to be used whenever the value to match is determinde as part of the same match expression.
|
 | llvm/include/llvm/IR/PatternMatch.h (diff) |
|
 | llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll (diff) |
Commit
a5051f2fa2f20405a7cd0630067afc338f6c6d44
by nikita.ppv[SCEV] Fix applyLoopGuards() chaining for ne predicates
ICMP_NE predicates directly overwrote the rewritten result, instead of chaining it with previous rewrites, as was done for ICMP_ULT and ICMP_ULE. This means that some guards were effectively discarded, depending on their order.
|
 | llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll (diff) |
 | llvm/lib/Analysis/ScalarEvolution.cpp (diff) |
Commit
6fca189532511da1b48e8c0d9aad8ff2edca382d
by Jason MolendaSimplify the breakpoint setting in DynamicLoaderMacOS::SetNotificationBreakpoint
Instead of looking up a symbol and reducing it to an addr_t to set a breakpoint, set the breakpoint on the function name directly. The old Mac OS X dynamic loader plugin worked in terms of addresses and I incorrectly emulated that here when I wrote this newer one.
Differential Revision: https://reviews.llvm.org/D100931
|
 | lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp (diff) |
Commit
5e537ea1d7a937f848ff1c0fc691d5a5afdf2459
by Lang Hames[ORC-RT] Re-apply "Initial ORC Runtime directories and build..." with fixes.
This reapplies 1e1d75b190c, which was reverted in ce1a4d53231 due to build failures.
The unconditional dependencies on clang and llvm-jitlink in compiler-rt/test/orc/CMakeLists.txt have been removed -- they don't appear to be necessary, and I suspect they're the cause of the build failures seen earlier.
|
 | compiler-rt/test/orc/TestCases/Darwin/x86-64/lit.local.cfg.py |
 | compiler-rt/cmake/config-ix.cmake (diff) |
 | compiler-rt/test/orc/TestCases/Darwin/lit.local.cfg.py |
 | compiler-rt/lib/orc/placeholder.cpp |
 | compiler-rt/test/orc/CMakeLists.txt |
 | compiler-rt/lib/CMakeLists.txt (diff) |
 | compiler-rt/test/CMakeLists.txt (diff) |
 | compiler-rt/test/orc/TestCases/Darwin/x86-64/placeholder_test.S |
 | compiler-rt/test/orc/lit.cfg.py |
 | compiler-rt/CMakeLists.txt (diff) |
 | compiler-rt/lib/orc/CMakeLists.txt |
 | compiler-rt/test/orc/lit.site.cfg.py.in |
Commit
108864397d26ffff39267f417cabc7f248431437
by kai.wang[Clang] Add clang attribute `clang_builtin_alias`.
In some cases, we want to provide the alias name for the clang builtins. For example, the arguments must be constant integers for some RISC-V builtins. If we use wrapper functions, we could not constrain the arguments be constant integer. This attribute is used to achieve the purpose.
Besides this, use `clang_builtin_alias` is more efficient than using wrapper functions. We use this attribute to deal with test time issue reported in https://bugs.llvm.org/show_bug.cgi?id=49962.
In our downstream testing, it could decrease the testing time from 6.3 seconds to 3.7 seconds for vloxei.c test.
Differential Revision: https://reviews.llvm.org/D100611
|
 | clang/lib/Sema/SemaDeclAttr.cpp (diff) |
 | clang/lib/AST/Decl.cpp (diff) |
 | clang/test/CodeGen/RISCV/riscv-attr-builtin-alias.c |
 | clang/test/Misc/pragma-attribute-supported-attributes-list.test (diff) |
 | clang/include/clang/Basic/Attr.td (diff) |
 | clang/include/clang/Basic/AttrDocs.td (diff) |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td (diff) |
 | clang/test/CodeGen/RISCV/riscv-attr-builtin-alias-err.c |
|
 | llvm/include/llvm-c/Orc.h (diff) |
|
 | clang/include/clang/Basic/AttrDocs.td (diff) |
|
 | llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp (diff) |
 | llvm/lib/Target/X86/X86TargetMachine.cpp (diff) |
 | llvm/test/CodeGen/X86/O0-pipeline.ll (diff) |
 | llvm/tools/opt/opt.cpp (diff) |
 | llvm/include/llvm/CodeGen/TargetPassConfig.h (diff) |
 | llvm/lib/CodeGen/TargetPassConfig.cpp (diff) |
 | llvm/test/CodeGen/X86/AMX/amx-configO2toO0.ll |
 | llvm/test/CodeGen/X86/AMX/amx-configO2toO0-precfg.ll |
 | llvm/lib/Target/X86/X86LowerAMXType.cpp (diff) |
 | llvm/lib/Target/X86/X86PreAMXConfig.cpp |
 | llvm/test/CodeGen/X86/AMX/amx-low-intrinsics-no-amx-bitcast.ll (diff) |
 | llvm/test/CodeGen/X86/AMX/amx-configO0toO0.ll |
 | llvm/lib/Target/X86/X86.h (diff) |
 | llvm/include/llvm/CodeGen/Passes.h (diff) |
 | llvm/lib/Target/X86/CMakeLists.txt (diff) |
 | llvm/test/CodeGen/X86/AMX/amx-low-intrinsics.ll (diff) |
 | llvm/lib/Target/X86/X86FastTileConfig.cpp |
 | llvm/test/CodeGen/X86/AMX/amx-configO2toO0-lower.ll |
 | llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn (diff) |
 | llvm/test/CodeGen/X86/AMX/amx-fast-tile-config.mir |
|
 | llvm/lib/Target/X86/X86PreAMXConfig.cpp (diff) |
 | llvm/test/CodeGen/X86/AMX/amx-configO2toO0-precfg.ll (diff) |
|
 | llvm/test/Transforms/PhaseOrdering/pr32544.ll |
Commit
d8fa5ef6a2972aa3d8b49a7664ba94c79b00f6d4
by kai.wang[RISCV] Apply clang_builtin_alias to overloaded builtins.
We only apply `clang_builtin_alias` to non-masked builtins. Masked builtins could not use `clang_builtin_alias` because the operand order is different between overloaded intrinsics and builtins.
A bunch of test cases need to be updated.
Differential Revision: https://reviews.llvm.org/D100658
|
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1down.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrgather.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmax.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vluxei.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredand.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamomin.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmsac.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmv.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vasub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxnor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vaadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsac.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmul.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmax.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vadc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfgt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vid.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoxor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsbc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrem.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsif.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwredsum.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vdiv.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsof.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmax.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmin.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmslt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsac.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslideup.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsmul.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfncvt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrec7.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnclip.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/viota.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnot.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmax.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfdiv.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmin.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsqrt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfclass.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnsra.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfeq.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsqrt7.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1down.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssra.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vzext.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsac.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfne.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmacc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vlse.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnsrl.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmacc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredsum.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmerge.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnand.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredsum.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsle.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsll.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmerge.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vpopc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwcvt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbf.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmacc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsext.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoswap.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vand.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmul.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmin.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwredsum.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmsac.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslidedown.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmseq.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vneg.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsgnj.c (diff) |
 | clang/utils/TableGen/RISCVVEmitter.cpp (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfirst.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmacc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsgt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredxor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssrl.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfge.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmv.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsra.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmflt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrdiv.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoand.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsrl.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmacc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vse.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmand.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmin.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vle.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamomax.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmul.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfadd.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfcvt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1up.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsne.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vloxei.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsub.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vxor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmul.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1up.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmacc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoor.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadc.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfle.c (diff) |
Commit
1d8ef761be68d7ba023aea0450be5355426d46f7
by flo[NewGVN] Use ExprResult to add extra predicate users.
This patch updates performSymbolicPredicateInfoEvaluation to manage registering additional dependencies using ExprResult. Similar to D99987, this fixes an issues where we failed to track the correct dependency for a phi-of-ops value, which is marked as temporary.
Fixes PR49873.
Reviewed By: asbirlea, ruiling
Differential Revision: https://reviews.llvm.org/D100560
|
 | llvm/lib/Transforms/Scalar/NewGVN.cpp (diff) |
 | llvm/test/Transforms/NewGVN/phi-of-ops-simplification-dependencies.ll (diff) |
|
 | llvm/lib/Transforms/Scalar/NewGVN.cpp (diff) |
|
 | llvm/test/CodeGen/X86/atomic-flags.ll (diff) |
|
 | llvm/test/CodeGen/X86/atomic-flags.ll (diff) |
|
 | llvm/lib/Target/X86/X86InstrInfo.cpp (diff) |
 | llvm/test/CodeGen/X86/atomic-eflags-reuse.ll (diff) |
 | llvm/test/CodeGen/X86/atomic-flags.ll (diff) |
|
 | clang/lib/Tooling/DumpTool/APIData.h (diff) |
 | clang/lib/Tooling/EmptyNodeIntrospection.inc.in (diff) |
 | clang/include/clang/Tooling/NodeIntrospection.h (diff) |
 | clang/lib/Tooling/DumpTool/generate_cxx_src_locs.py (diff) |
 | clang/unittests/Introspection/IntrospectionTest.cpp (diff) |
 | clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.cpp (diff) |
|
 | clang-tools-extra/clang-query/QueryParser.cpp (diff) |
 | clang-tools-extra/clang-query/Query.cpp (diff) |
 | clang-tools-extra/clang-query/CMakeLists.txt (diff) |
 | clang-tools-extra/clang-query/QuerySession.h (diff) |
 | clang-tools-extra/clang-query/Query.h (diff) |
 | clang-tools-extra/unittests/clang-query/QueryParserTest.cpp (diff) |
Commit
a354fd56c5046cc4317a301d90908520f6c4717a
by koraq[libc++] Adds __utility/to_underlying.h.
During the review of D97115 it was mentioned adding the `<utility>` header for `__to_underlying` was a bit unfortunate. Nowadays we tend to implement smaller headers, so a good reason to move `std::to_underlying` to its own header and adjust `<charconv>` to use the new header.
Differential Revision: https://reviews.llvm.org/D101233
|
 | libcxx/include/charconv (diff) |
 | libcxx/include/__utility/to_underlying.h |
 | libcxx/include/CMakeLists.txt (diff) |
 | libcxx/include/utility (diff) |
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn (diff) |
Commit
535df472b04208d6ae88e017c8f1d831fb239346
by llvm-devRevert rG2149aa73f640c96 "[X86] Add support for reusing ZF etc. from locked XADD instructions (PR20841)"
This might be the cause of some msan build failures - I don't have access to a msan build right now, so this is a speculative revert.
|
 | llvm/lib/Target/X86/X86InstrInfo.cpp (diff) |
 | llvm/test/CodeGen/X86/atomic-flags.ll (diff) |
 | llvm/test/CodeGen/X86/atomic-eflags-reuse.ll (diff) |
Commit
1cea7ab4ba13346745d6aa6e117ee2e77995fb07
by koraq[demangler] Use standard semantics for StringView::substr
The StringView::substr now accepts a substring starting position and its length instead of previous non-standard `from` & `to` positions.
All uses of two argument StringView::substr are in MicrosoftDemangler and have 0 as a starting position, so no changes are necessary.
This also fixes a bug where attempting to extract a suffix with substr (a `to` position equal to size) would return a substring without the last character.
Fixing the issue should not introduce observable changes in the demangler, since as currently used, a second argument to StringView::substr is either: 1) a result of a successful call to StringView::find and so necessarily smaller than size., or 2) in the case of Demangler::demangleCharLiteral potentially equal to size, but with demangler expecting more data to follow later on and failing either way.
Reviewed By: #libc_abi, ldionne, erik.pilkington
Differential Revision: https://reviews.llvm.org/D100246
|
 | llvm/unittests/Demangle/CMakeLists.txt (diff) |
 | libcxxabi/src/demangle/StringView.h (diff) |
 | llvm/include/llvm/Demangle/StringView.h (diff) |
 | llvm/unittests/Demangle/StringViewTest.cpp |
|
 | llvm/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn (diff) |
Commit
4b9be5ac08506bdaea2f8f6cb8e4ead71452f38d
by flo[VPlan] Add VPBlockUtils::blocksOnly helper.
This patch adds a blocksOnly helpers which take an iterator range over VPBlockBase * or const VPBlockBase * and returns an interator range that only include BlockTy blocks. The accesses are casted to BlockTy.
Reviewed By: a.elovikov
Differential Revision: https://reviews.llvm.org/D101093
|
 | llvm/unittests/Transforms/Vectorize/VPlanTest.cpp (diff) |
 | llvm/lib/Transforms/Vectorize/VPlan.h (diff) |
|
 | lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp (diff) |
 | lldb/source/Plugins/Process/FreeBSD/NativeThreadFreeBSD.cpp (diff) |
 | lldb/packages/Python/lldbsuite/test/dotest.py (diff) |
 | lldb/source/Plugins/Process/FreeBSD/NativeThreadFreeBSD.h (diff) |
 | lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h (diff) |
|
 | lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (diff) |
 | lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp (diff) |
 | lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h (diff) |
 | lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h (diff) |
 | lldb/packages/Python/lldbsuite/test/dotest.py (diff) |
Commit
fc86e6d188c38e2cee221fae4960c3307367f387
by minyihh[ARM][disassembler] Fix incorrect number of MCOperands generated by the disassembler
Try to fix bug 49974.
This patch fixes two issues:
1. BL does not use predicate (BL_pred is the predicate version of BL), so we shouldn't add predicate operands in DecodeBranchImmInstruction. 2. Inside DecodeT2AddSubSPImm, we shouldn't add predicate operands into the MCInst because ARMDisassembler::AddThumbPredicate will do that for us. However, we should handle CC-out operand for t2SUBspImm and t2AddspImm.
Differential Revision: https://reviews.llvm.org/D100585
|
 | llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp (diff) |
 | llvm/test/MC/Disassembler/ARM/bl-arm.txt |
 | llvm/test/MC/Disassembler/ARM/sub-sp-imm-thumb2.txt |
|
 | clang/include/clang/Basic/OpenCLOptions.h (diff) |
 | mlir/include/mlir/Support/TypeID.h (diff) |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff) |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp (diff) |
 | llvm/utils/unittest/googlemock/include/gmock/gmock-generated-matchers.h (diff) |
Commit
504eee28fe0ff4cf582f623b2ee83e9940e33024
by Vitaly BukaDisable deprecated-copy warnings on various LLVM code to bring the bot back to green
Bootstrap with `-Werror` is currently broken due to D79714. This patch is required to bring the bootstrap bot back to green. The code will likely need to be fixed and the pragmas removed in due time, but for now we need to bring the bot back up.
Bot that is currently failing: https://lab.llvm.org/buildbot/#/builders/36/builds/7680
Differential Revision: https://reviews.llvm.org/D101214
|
 | llvm/utils/unittest/googlemock/include/gmock/gmock.h (diff) |
|
 | llvm/utils/unittest/googlemock/include/gmock/gmock-generated-matchers.h (diff) |
Commit
ddfe13e757cb72c056cba8d889d6cb8ee69f1afa
by zeratul976[clangd] Produce semantic token for name referring to UnresolvedUsingValueDecl
For now, use the token kind Unknown. We may be able to improve on this using HeuristicResolver.
Differential Revision: https://reviews.llvm.org/D99052
|
 | clang-tools-extra/clangd/SemanticHighlighting.cpp (diff) |
 | clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp (diff) |
Commit
d941863de2becb3d8d2e00676fc7125974934c7f
by zeratul976[clangd] Use HeuristicResolver to produce a better semantic token for name referring to UnresolvedUsingValueDecl
Fixes https://github.com/clangd/clangd/issues/686
Differential Revision: https://reviews.llvm.org/D99056
|
 | clang-tools-extra/clangd/SemanticHighlighting.cpp (diff) |
 | clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp (diff) |
Commit
7b312e228c36fc10cec4ecbd98a289f213a97518
by lebedev.ri[NFC][X86][AVX2] Add baseline CodeGen/CostModel tests for interleaved loads/stores of i16 w/ strides 2/3/4
`X86TTIImpl::getInterleavedMemoryOpCostAVX2()` currently contains data only for a handful of tuples. For now, at least add tests for a few more.
I'm guessing that we care how well the patterns codegen since we use their presumed cost for vectorization decisions, so i've added codegen tests too.
There's one really easy caveat for these codegen tests: for interleaved load tests, we really have to ensure that the deinterleaved vectors are escaped separately. Similarly for stores.
|
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll |
 | llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-4.ll |
 | llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll |
 | llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-4.ll |
 | llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-2.ll |
 | llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-4.ll |
 | llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll |
 | llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-3.ll |
|
 | compiler-rt/unittests/lit.common.unit.configured.in (diff) |
 | llvm/utils/lit/lit/formats/googletest.py (diff) |
 | compiler-rt/unittests/lit.common.unit.cfg.py (diff) |
|
 | compiler-rt/cmake/config-ix.cmake (diff) |
|
 | compiler-rt/lib/scudo/standalone/linux.cpp (diff) |
|
 | clang-tools-extra/clangd/InlayHints.cpp (diff) |
 | clang-tools-extra/clangd/unittests/InlayHintTests.cpp (diff) |
|
 | clang-tools-extra/clangd/unittests/InlayHintTests.cpp (diff) |
 | clang-tools-extra/clangd/InlayHints.cpp (diff) |
|
 | clang-tools-extra/clangd/HeuristicResolver.cpp (diff) |
 | clang-tools-extra/clangd/HeuristicResolver.h (diff) |
Commit
c1baf946e6cf611ae871e34db5cfea0f94f4b5a0
by Lang Hames[ORC] Avoid invalidating iterators in EHFrameRegistrationPlugin.
In EHFrameRegistrationPlugin::notifyTransferringResources if SrcKey had eh-frames associated but DstKey did not we would create a new entry for DskKey, invalidating the iterator for SrcKey in the process. This commit fixes that by removing SrcKey first in this case.
|
 | llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp (diff) |
Commit
2c9028170eeb6749373f2f93ad6abdc0164c36a3
by Jinsong Ji[DebugInfo][AIX] Set target debugger-tune default to dbx
https://reviews.llvm.org/D99400 set clang DefaultDebuggerTuning for AIX to dbx. However, we still need to update the target default so that llc and other tools will get the same default debuggertuning, and avoid passing extra options in LTO.
Reviewed By: #powerpc, shchenz, dblaikie
Differential Revision: https://reviews.llvm.org/D101197
|
 | llvm/test/DebugInfo/XCOFF/empty.ll (diff) |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff) |
 | llvm/test/DebugInfo/PowerPC/debugger-tune.ll |
 | llvm/test/DebugInfo/XCOFF/explicit-section.ll (diff) |
 | llvm/test/DebugInfo/XCOFF/function-sections.ll (diff) |
|
 | clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbe.c |
 | clang/include/clang/Basic/BuiltinsRISCV.def (diff) |
 | clang/lib/CodeGen/CGBuiltin.cpp (diff) |
 | llvm/include/llvm/IR/IntrinsicsRISCV.td (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.h (diff) |
 | llvm/test/CodeGen/RISCV/rv64zbe-intrinsic.ll |
 | llvm/lib/Target/RISCV/RISCVInstrInfoB.td (diff) |
 | clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbe.c |
 | llvm/test/CodeGen/RISCV/rv32zbe-intrinsic.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
Commit
8f5cd4940515899b06d6d1ecf593fbd6e08cce20
by craig.topper[RISCV] Teach DAG combine what bits Zbp instructions demanded from their inputs.
This teaches DAG combine that shift amount operands for grev, gorc shfl, unshfl only read a few bits.
This also teaches DAG combine that grevw, gorcw, shflw, unshflw, bcompressw, bdecompressw only consume the lower 32 bits of their inputs.
In the future we can teach SimplifyDemandedBits to also propagate demanded bits of the output to the inputs in some cases.
|
 | llvm/test/CodeGen/RISCV/rv32zbp-intrinsic.ll (diff) |
 | llvm/test/CodeGen/RISCV/rv64zbe-intrinsic.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
 | llvm/test/CodeGen/RISCV/rv64zbp-intrinsic.ll (diff) |
|
 | llvm/lib/Target/RISCV/RISCVInstrInfo.td (diff) |
 | llvm/test/CodeGen/RISCV/add-imm.ll (diff) |
Commit
837442de9c60f539dd901a2cc389a413d132b1bc
by craig.topper[RISCV] Cleanup setOperationAction calls for INTRINSIC_WO_CHAIN/INTRINSIC_W_CHAIN
We have several extensions that need i32 to be Custom for INTRINSIC_WO_CHAIN with RV64 so enable it for all RV64.
For V extension, make i32 Custom for RV64 and i64 Custom for RV32. When the i32 or i64 is legal, the operation action doesn't matter. LegalizeDAG checks MVT::Other rather than the real type.
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
|
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmnot.c |
 | clang/include/clang/Basic/riscv_vector.td (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmmv.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmmv.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnot.c |
|
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vfabs.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfneg.c |
 | clang/include/clang/Basic/riscv_vector.td (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfabs.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vfneg.c |
|
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfgt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmfgt.c (diff) |
 | clang/include/clang/Basic/riscv_vector.td (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsgt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmfge.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfge.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsge.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmsgt.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmsge.c |
|
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vncvt.c |
 | clang/include/clang/Basic/riscv_vector.td (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vncvt.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwcvt.c |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vwcvt.c |
|
 | clang/lib/Sema/OpenCLBuiltins.td (diff) |
Commit
0f7d4105c60b5b4ee80fd32225658a4d8261c120
by Jan Svoboda[clang][deps] Only generate absolute paths when asked to
Add option to `clang-scan-deps` to enable/disable generation of command-line arguments with absolute paths. This is essentially a revert of D100533, but with improved naming and added test.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D101051
|
 | clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h (diff) |
 | clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h (diff) |
 | clang/test/ClangScanDeps/modules-full.cpp (diff) |
 | clang/tools/clang-scan-deps/ClangScanDeps.cpp (diff) |
 | clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp (diff) |
 | clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (diff) |
|
 | clang/tools/clang-scan-deps/ClangScanDeps.cpp (diff) |
Commit
6ba150dbb44346f4f2b39d15b85f3c2339427771
by djtodoro[llvm-dwarfdump] Fix split-dwarf bug in stats for inlined var loc cov
Initial (D96045) patch didn't handle split dwarf cases, so this fixes that bug.
In addition, before applying this patch, we had a slowdown that happened after the D96045. With this patch, the slowdown will be fixed as well.
Differential Revision: https://reviews.llvm.org/D100951
|
 | llvm/test/tools/llvm-dwarfdump/X86/Inputs/split-dwarf-objfile2.s |
 | llvm/test/tools/llvm-dwarfdump/X86/inlined_variables_with_zero_cov.test |
 | llvm/tools/llvm-dwarfdump/Statistics.cpp (diff) |
 | llvm/test/tools/llvm-dwarfdump/X86/Inputs/split-dwarf.s |
 | llvm/test/tools/llvm-dwarfdump/X86/Inputs/split-dwarf-objfile1.s |
|
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmnot.c (diff) |
 | clang/test/CodeGen/RISCV/rvv-intrinsics/vmmv.c (diff) |
Commit
258e2e9a0bdc1e0b0ade99a27de4190010cbee78
by david.green[ARM] Ensure loop invariant active.lane.mask operands
CGP can move instructions like a ptrtoint into a loop, but the MVETailPredication when converting them will currently assume invariant trip counts. This tries to ensure the operands are loop invariant, and bails if not.
Differential Revision: https://reviews.llvm.org/D100550
|
 | llvm/test/CodeGen/Thumb2/mve-tailpred-loopinvariant.ll |
 | llvm/lib/Target/ARM/MVETailPredication.cpp (diff) |
Commit
5987d7c59da5a7611036c2952f5a1f501d17ad48
by krasimir[clang-format] fix indent in alignChainedConditionals
Clang-format was indenting the lines following the `?` in the added test case by +5 instead of +4. This only happens in a very specific situation, where the `?` is followed by a multiline block comment, as in the example. This fix addresses this without regressing any of the existing tests.
Differential Revision: https://reviews.llvm.org/D101033
|
 | clang/lib/Format/WhitespaceManager.cpp (diff) |
 | clang/unittests/Format/FormatTest.cpp (diff) |
Commit
3c9bcf0e3549d89b31e19e67a5a16babdee2c72d
by jeremy.morse[Clang][Coroutine][DebugInfo] Relax test ordering requirement
The test added in D97533 (and modified by this patch) has some overly strict printed metadata ordering requirements, specifically the interleaving of DILocalVariable nodes and DILocation nodes. Slight changes in metadata emission can easily break this unfortunately.
This patch stops after clang codegen rather than allowing the coro splitter to run, and reduces the need for ordering: it picks out the DILocalVariable nodes being sought, in any order (CHECK-DAG), and doesn't examine any DILocations. The implicit CHECK-NOT is what's important: the test seeks to ensure a duplicate set of DILocalVariables aren't emitted in the same scope.
Differential Revision: https://reviews.llvm.org/D100298
|
 | clang/test/CodeGenCoroutines/coro-dwarf.cpp (diff) |
Commit
499f1ed5485383e8e7bf3aacbc6d34560d0668df
by andrzej.warzynski[flang][driver] Fine-tune `-fdebug-dump-symbols`
When generating output for `-fdebug-dump-symbols`, make sure that BuildRuntimeDerivedTypeTables is also run. This change is needed in order to make the implementation of `-fdebug-dump-symbols` in `flang-new` consistent with `f18`. It also allows us to port more tests to use the new driver whenever it is enabled.
Differential Revision: https://reviews.llvm.org/D100649
|
 | flang/test/Semantics/typeinfo01.f90 (diff) |
 | flang/lib/Frontend/FrontendActions.cpp (diff) |
Commit
7302fe432843bd7e9b41b50ddaa37781f62b08cf
by flo[VPlan] Make blocksOnly work properly with ranges over const pointers.
When iterating over const blocks, the base type in the lambdas needs to use const VPBlockBase *, otherwise it cannot be used with input iterators over const VPBlockBase.
Also adjust the type of the input iterator range to const &, as it does not take ownership of the input range.
|
 | llvm/lib/Transforms/Vectorize/VPlan.h (diff) |
 | llvm/unittests/Transforms/Vectorize/VPlanTest.cpp (diff) |
Commit
a458b7855e1ad9c79f05b37f13a4242fdac3fb31
by david.sherwood[AArch64] Add AArch64TTIImpl::getMaskedMemoryOpCost function
When vectorising for AArch64 targets if you specify the SVE attribute we automatically then treat masked loads and stores as legal. Also, since we have no cost model for masked memory ops we believe it's cheap to use the masked load/store intrinsics even for fixed width vectors. This can lead to poor code quality as the intrinsics will currently be scalarised in the backend. This patch adds a basic cost model that marks fixed-width masked memory ops as significantly more expensive than for scalable vectors.
Tests for the cost model are added here:
Transforms/LoopVectorize/AArch64/masked-op-cost.ll
Differential Revision: https://reviews.llvm.org/D100745
|
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h (diff) |
 | llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll |
 | llvm/test/Transforms/LoopVectorize/AArch64/masked-op-cost.ll |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (diff) |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h (diff) |
 | llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll (diff) |
Commit
cf7276820c501341d71a6f0728a753c7e5f843bc
by david.sherwood[NFC] Add scalable vectorisation tests for int/FP <> int/FP conversions
We can already vectorize loops that involve int<>int, fp<>fp, int<>fp and fp<>int conversions, however we didn't previously have any tests for them. This patch adds some tests for each conversion type.
Differential Revision: https://reviews.llvm.org/D99951
|
 | llvm/test/Transforms/LoopVectorize/AArch64/sve-type-conv.ll |
|
 | llvm/test/CodeGen/Thumb2/mve-soft-float-abi.ll (diff) |
Commit
94c7bd7eb2633285093377a917918edd45a373b3
by david.green[ARM] Expand VMOVRRD simplification pattern
This expands the VMOVRRD(extract(..(build_vector(a, b, c, d)))) pattern, to also handle insert_vectors. Providing we can find the correct insert, this helps further simplify patterns by removing the redundant VMOVRRD.
Differential Revision: https://reviews.llvm.org/D100245
|
 | llvm/test/CodeGen/ARM/dagcombine-anyexttozeroext.ll (diff) |
 | llvm/test/CodeGen/Thumb2/mve-soft-float-abi.ll (diff) |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp (diff) |
 | llvm/test/CodeGen/Thumb2/mve-vecreduce-mla.ll (diff) |
 | llvm/test/CodeGen/Thumb2/mve-vecreduce-add.ll (diff) |
 | llvm/test/CodeGen/ARM/vdup.ll (diff) |
|
 | llvm/test/Transforms/InstCombine/ctpop.ll (diff) |
|
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td (diff) |
 | llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp.ll (diff) |
Commit
cc7803ee3f767412223c234586834976d257a521
by jeremy.morse[LSR][DebugInfo] Don't unnecessarily drop DebugLocs
When transforming a loop terminating condition into a "max" comparison, the DebugLoc from the old condition should be set on the newly created comparison. They are the same operation, just optimized. Fixes PR48067.
Differential Revision: https://reviews.llvm.org/D98218
|
 | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (diff) |
 | llvm/test/Transforms/LoopStrengthReduce/optimizemax_debugloc.ll |
|
 | llvm/test/Transforms/IndVarSimplify/lftr.ll (diff) |
Commit
8710eff6c3bab333bd270573fc349938b9a69dc0
by tim.renouf[MC][AMDGPU][llvm-objdump] Synthesized local labels in disassembly
1. Add an accessor function to MCSymbolizer to retrieve addresses referenced by a symbolizable operand, but not resolved to a symbol. That way, the caller can synthesize labels at those addresses and then retry disassembling the section.
2. Implement that in AMDGPU -- a failed symbol lookup results in the address being added to a vector returned by the new function.
3. Use that in llvm-objdump when using MCSymbolizer (which only happens on AMDGPU) and SymbolizeOperands is on.
Differential Revision: https://reviews.llvm.org/D101145
Change-Id: I19087c3bbfece64bad5a56ee88bcc9110d83989e
|
 | llvm/test/tools/llvm-objdump/AMDGPU/elf-disassemble-symbolize-operands.yaml |
 | llvm/tools/llvm-objdump/llvm-objdump.cpp (diff) |
 | llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h (diff) |
 | llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp (diff) |
 | llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h (diff) |
|
 | llvm/test/tools/llvm-objdump/AMDGPU/lit.local.cfg |
Commit
e439a463a30833f1c7d366ed722f0f12d1682638
by Raphael Isemann[lldb] Use forward type in pointer-to-member
This change is similar in spirit to the change at: https://reviews.llvm.org/rG34c697c85e9d0af11a72ac4df5578aac94a627b3
It fixes the problem where the layout of a type was being accessed while its base classes were not populated yet; which caused an incorrect layout to be produced and cached.
This fixes PR50054
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D100977
|
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (diff) |
 | lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/Makefile |
 | lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py |
 | lldb/test/API/functionalities/lazy-loading/main.cpp (diff) |
 | lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py (diff) |
 | lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/main.cpp |
|
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll |
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp (diff) |
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (diff) |
 | llvm/lib/Target/AArch64/AArch64InstrGISel.td (diff) |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td (diff) |
Commit
691badc3d6a76ceb98530d58f80c11565337d767
by Dávid Bolvanský[InstCombine] C - ctpop(a) - > ctpop(~a)) if C is bitwidth (PR50104)
Proof: https://alive2.llvm.org/ce/z/mncA9K Solves https://bugs.llvm.org/show_bug.cgi?id=50104
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D101257
|
 | llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (diff) |
 | llvm/test/Transforms/InstCombine/ctpop.ll (diff) |
 | llvm/test/Transforms/InstCombine/ctpop-cttz.ll (diff) |
Commit
7818906ca134775edffb77857f436359d3a50b90
by alexey.bader[SYCL] Implement SYCL address space attributes handling
Default address space (applies when no explicit address space was specified) maps to generic (4) address space.
Added SYCL named address spaces `sycl_global`, `sycl_local` and `sycl_private` defined as sub-sets of the default address space.
Static variables without address space now reside in global address space when compile for SPIR target, unless they have an explicit address space qualifier in source code.
Differential Revision: https://reviews.llvm.org/D89909
|
 | clang/lib/AST/ItaniumMangle.cpp (diff) |
 | clang/test/CodeGenSYCL/address-space-mangling.cpp |
 | clang/include/clang/Sema/ParsedAttr.h (diff) |
 | clang/include/clang/Basic/AddressSpaces.h (diff) |
 | clang/lib/Basic/Targets/SPIR.h (diff) |
 | clang/lib/Sema/SemaType.cpp (diff) |
 | clang/test/CodeGenSYCL/address-space-conversions.cpp |
 | clang/include/clang/AST/Type.h (diff) |
 | clang/lib/CodeGen/TargetInfo.cpp (diff) |
 | clang/lib/Basic/Targets/X86.h (diff) |
 | clang/lib/CodeGen/CGDecl.cpp (diff) |
 | clang/lib/Basic/Targets/TCE.h (diff) |
 | clang/test/CodeGenSYCL/address-space-deduction.cpp |
 | clang/lib/CodeGen/CodeGenModule.cpp (diff) |
 | clang/test/SemaSYCL/address-space-conversions.cpp |
 | clang/lib/AST/ASTContext.cpp (diff) |
 | clang/lib/CodeGen/CGExpr.cpp (diff) |
 | clang/lib/CodeGen/CodeGenModule.h (diff) |
 | clang/lib/AST/TypePrinter.cpp (diff) |
 | clang/test/SemaTemplate/address_space-dependent.cpp (diff) |
 | clang/lib/Basic/Targets/AMDGPU.cpp (diff) |
 | clang/lib/Basic/Targets/NVPTX.h (diff) |
|
 | llvm/lib/TableGen/Record.cpp (diff) |
 | llvm/include/llvm/TableGen/Record.h (diff) |
 | llvm/lib/TableGen/TGParser.cpp (diff) |
 | llvm/lib/TableGen/TGParser.h (diff) |
Commit
b125c034af89e32d5258d593080ff0c4810776a0
by Dávid BolvanskýOnly ignore -Wdeprecated-copy if the used compiler supports the warning
This is needed after https://reviews.llvm.org/rG9658d045926545e62cc3f963fe611d7c5d0c9d98 which introduced code that at least didn't compile clean with clang 8.
Reviewed By: xbolva00
Differential Revision: https://reviews.llvm.org/D101288
|
 | llvm/utils/unittest/googlemock/include/gmock/gmock.h (diff) |
 | llvm/utils/unittest/googletest/include/gtest/internal/gtest-param-util-generated.h (diff) |
 | llvm/utils/unittest/googlemock/include/gmock/gmock-matchers.h (diff) |
|
 | llvm/lib/TableGen/TGParser.cpp (diff) |
Commit
e7b6c0f398ee5975bf9f39e629713ae446e8fe01
by nigelp[clang][XCore] Define __xcore__ for XCore target.
The headers shipped with the XMOS XCore compiler expect __xcore__ to be defined. The __XS1B__ macro, already defined, is for the default subtarget.
No other targets affected.
|
 | clang/test/Preprocessor/init.c (diff) |
 | clang/lib/Basic/Targets/XCore.cpp (diff) |
|
 | llvm/utils/unittest/googletest/include/gtest/internal/gtest-param-util-generated.h (diff) |
 | llvm/utils/unittest/googlemock/include/gmock/gmock-matchers.h (diff) |
 | llvm/utils/unittest/googlemock/include/gmock/gmock.h (diff) |
Commit
c2419aae762a040b4f7b5bc7b701444949e2d9f8
by gkm[lld-macho] Add option --error-limit=N
Add option to limit (or remove limits) on the number of errors printed before exiting. This option exists in the other lld ports: COFF & ELF.
Differential Revision: https://reviews.llvm.org/D101274
|
 | lld/test/MachO/error-limit.test |
 | lld/MachO/Options.td (diff) |
 | lld/MachO/Driver.cpp (diff) |
Commit
a0677ff5ebf711afcecdc9bfa336137caee43c72
by llvm-dev[X86] Rename multiclass ATOMIC_LOAD_BINOP -> ATOMIC_RMW_BINOP. NFCI.
Noticed while triaging the rG2149aa73f640c96 regressions - the LXADD ops are load+store RMW instructions, not just loads.
|
 | llvm/lib/Target/X86/X86InstrCompiler.td (diff) |
|
 | clang/docs/SYCLSupport.rst |
|
 | debuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp (diff) |
|
 | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h (diff) |
 | llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll (diff) |
|
 | libcxx/include/__iterator/incrementable_traits.h (diff) |
 | libcxx/include/iterator (diff) |
 | libcxx/include/__iterator/readable_traits.h (diff) |
Commit
858d4885dcc2242910971607bf46428d5b563d95
by frgossen[MLIR][Shape] Ensure to preserve op type of `shape.broadcast`
Ensure to preserve the correct type during when folding and canonicalization. `shape.broadcast` of of a single operand can only be folded away if the argument type is correct.
Differential Revision: https://reviews.llvm.org/D101158
|
 | mlir/lib/Dialect/Shape/IR/Shape.cpp (diff) |
 | mlir/test/Dialect/Shape/canonicalize.mlir (diff) |
Commit
153144be40855ca1e35e1bfca082e10f553bb2e5
by llvm-project[SimplifyCFG] Preserve metadata when unconditionalizing branches (constant condition).
When replacing a conditional branch by an unconditional one because the condition is a constant, transfer the metadata to the new branch instruction.
Part of fix for llvm.org/PR50060
Reviewed By: lebedev.ri
Differential Revision: https://reviews.llvm.org/D101141
|
 | llvm/test/Transforms/SimplifyCFG/pr50060-constantfold-loopid.ll |
 | llvm/lib/Transforms/Utils/Local.cpp (diff) |
Commit
b2d079379b6c7b3942d728c9b290ae252f7921c5
by aktoon[CSSPGO] Explicitly disallow Binary and Compact Binary profile format for CSSPGO
CSSPGO only supports text and extended binary profile now. Raw binary does not have the metadata section CSSPGO needs, and Compact binary profile needs special handling for GUID based context names, which is not yet implemented.
Disasslow these two format for CSSPGO profile writing to avoid silently generating invalid profiles.
Differential Revision: https://reviews.llvm.org/D101300
|
 | llvm/lib/ProfileData/SampleProfWriter.cpp (diff) |
|
 | clang/docs/index.rst (diff) |
Commit
f9c0859e9687294a3b6b2e797faf4b7ee62c60ce
by psteinfeld[flang] Check for attributes specific to dummy arguments
We were not checking that attributes that are supposed to be specific to dummy arguments were not being used for local entities. I added the checks along with tests for them.
After implementing these new checks, I found that one of the tests in separate-mp02.f90 was erroneous, and I fixed it.
Differential Revision: https://reviews.llvm.org/D101126
|
 | flang/lib/Semantics/check-declarations.cpp (diff) |
 | flang/test/Semantics/separate-mp02.f90 (diff) |
 | flang/test/Semantics/resolve58.f90 (diff) |
Commit
7d850db6b6438221555b800d31ef5dc63f50dc89
by Jonas Devlieghere[lldb] Don't use ::fork or ::vfork on watchOS or tvOS
Update lldb-server to not use fork or vfork on watchOS and tvOS as these functions are explicitly marked unavailable there.
llvm-project/lldb/test/API/tools/lldb-server/main.cpp:304:11: error: 'fork' is unavailable: not available on watchOS if (fork() == 0) ^ WatchSimulator6.2.sdk/usr/include/unistd.h:447:8: note: 'fork' has been explicitly marked unavailable here pid_t fork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; ^ llvm-project/lldb/test/API/tools/lldb-server/main.cpp:307:11: error: 'vfork' is unavailable: not available on watchOS if (vfork() == 0) ^ WatchSimulator6.2.sdk/usr/include/unistd.h:602:8: note: 'vfork' has been explicitly marked unavailable here pid_t vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; ^
|
 | lldb/test/API/tools/lldb-server/main.cpp (diff) |
|
 | mlir/test/Dialect/Shape/canonicalize.mlir (diff) |
 | mlir/lib/Dialect/Shape/IR/Shape.cpp (diff) |
|
 | llvm/include/llvm/AsmParser/LLLexer.h |
 | llvm/lib/AsmParser/LLLexer.cpp (diff) |
 | llvm/lib/AsmParser/LLLexer.h |
 | llvm/lib/AsmParser/Parser.cpp (diff) |
 | llvm/lib/AsmParser/LLParser.h |
 | llvm/lib/AsmParser/LLParser.cpp (diff) |
 | llvm/include/llvm/AsmParser/LLParser.h |
 | llvm/include/llvm/AsmParser/LLToken.h |
 | llvm/lib/AsmParser/LLToken.h |
Commit
a0c735e29a4fd471fa4a9ee60b3bdea79a066e28
by Raphael Isemann[lldb] Skip TestPointerToMemberTypeDependingOnParentSize on Windows and GCC
The test added in D100977 is failing to compile on these platforms. This seems to be caused by GCC, MSVC and Clang@Windows rejecting the code because `ToLayout` isn't complete when pointer_to_member_member is declared (even though that seems to be valid code).
This also reverts the test changes in the lazy-loading test from D100977 as that failed for the same reason.
|
 | lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py (diff) |
 | lldb/test/API/functionalities/lazy-loading/main.cpp (diff) |
 | lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py (diff) |
|
 | clang/test/Integration/thinlto_profile_sample_accurate.c (diff) |
 | clang/test/CodeGen/thinlto-backend-option.ll (diff) |
 | clang/test/CodeGen/thinlto-emit-llvm.c (diff) |
 | clang/test/Driver/thinlto_backend.c (diff) |
|
 | llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll (diff) |
Commit
cedfa38fc46d7531c44ea230b767d8286767f350
by jinlPreserve the lexical order for global variables during llvm-link merge
The order of global variables is generated in the order of recursively materializing variables if the global variable has the attribute of hasLocalLinkage or hasLinkOnceLinkage during the module merging. In practice, it is often the exact reverse of source order. This new order may cause performance regression.
The change is to preserve the original lexical order for global variables.
Reviewed By: jdoerfert, dexonsmith
Differential Revision: https://reviews.llvm.org/D94202
|
 | llvm/test/ThinLTO/X86/writeonly2.ll (diff) |
 | llvm/lib/Linker/IRMover.cpp (diff) |
 | llvm/test/Linker/ctors2.ll (diff) |
 | llvm/test/Linker/comdat.ll (diff) |
 | llvm/test/ThinLTO/X86/import-constant.ll (diff) |
 | llvm/test/Linker/comdat14.ll (diff) |
 | llvm/test/Linker/ctors3.ll (diff) |
 | llvm/test/Linker/metadata-attach.ll (diff) |
 | llvm/test/ThinLTO/X86/index-const-prop2.ll (diff) |
 | llvm/test/ThinLTO/X86/writeonly.ll (diff) |
 | llvm/test/Linker/ctors.ll (diff) |
 | llvm/test/Linker/link-flags.ll (diff) |
 | llvm/test/ThinLTO/X86/index-const-prop.ll (diff) |
 | llvm/test/Linker/globalorder.ll |
 | llvm/test/Linker/Inputs/globalorder-2.ll |
 | llvm/test/Linker/testlink.ll (diff) |
|
 | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp (diff) |
 | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h (diff) |
|
 | clang/unittests/Introspection/IntrospectionTest.cpp (diff) |
 | clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.cpp (diff) |
|
 | llvm/tools/llvm-objdump/llvm-objdump.cpp (diff) |
Commit
077fe0f7398c4e1b1a45a9f012c634f13d4118ca
by huberjn[OpenMP][Documentation] Add FAQ entry for dynamically linked libraries
Summary: Add an FAW entry detailing the support for using dynamically linked libraries with OpenMP Offloading
|
 | openmp/docs/SupportAndFAQ.rst (diff) |
Commit
6cc62043c8bf4daa27664a2e1674abbe8d0492c6
by Alex Lorenz[clang][driver] Use the provided arch name for a Darwin target triple
This ensures that the Darwin driver uses a consistent target triple representation when the triple is printed out to the user.
Differential Revision: https://reviews.llvm.org/D100807
|
 | clang/test/Driver/default-toolchain.c (diff) |
 | clang/lib/Driver/ToolChains/Darwin.cpp (diff) |
 | clang/test/Driver/darwin-version.c (diff) |
 | clang/test/Driver/aarch64-cpus.c (diff) |
 | clang/test/Driver/arm64_32-link.c (diff) |
|
 | mlir/include/mlir/Rewrite/FrozenRewritePatternSet.h (diff) |
 | mlir/include/mlir/IR/PatternMatch.h (diff) |
Commit
f0c22c3d584c5f335b2457b6f9c2723ebdcfa06e
by clattner[Verifier] Tidy up the code a bit, NFC.
This tidies up the code a bit: * Eliminate the ctx member, which doesn't need to be stored. * Rename verify(Operation) to make it more clear that it is doing more than verifyOperation and that the dominance check isn't being done multiple times. * Rename mayNotHaveTerminator which was confusing about whether it wasn't known whether it had a terminator, when it is really about whether it is legal to have a terminator. * Some minor optimizations: don't check for RegionKindInterface if there are no regions. Don't do two passes over the operations in a block in OperationVerifier::verifyDominance when one will do.
The optimizations are actually a measurable (but minor) win in some CIRCT cases.
Differential Revision: https://reviews.llvm.org/D101267
|
 | mlir/lib/IR/Verifier.cpp (diff) |
Commit
f8de9aaef2f472ad7572748582444083d31d5a95
by martin[llvm-rc] Add a GNU windres-like frontend to llvm-rc
This primarily parses a different set of options and invokes the same resource compiler as llvm-rc normally. Additionally, it can convert directly to an object file (which in MSVC style setups is done with the separate cvtres tool, or by the linker).
(GNU windres also supports other conversions; from coff object file back to .res, and from .res or object file back to .rc form; that's not yet implemented.)
The other bigger complication lies in being able to imply or pass the intended target triple, to let clang find the corresponding mingw sysroot for finding include files, and for specifying the default output object machine format.
It can be implied from the tool triple prefix, like `<triple>-[llvm-]windres` or picked up from the windres option e.g. `-F pe-x86-64`. In GNU windres, that option takes BFD style format names such as pe-i386 or pe-x86-64. As libbfd in binutils doesn't support Windows on ARM, there's no such canonical name for the ARM targets. Therefore, as an LLVM specific extension, this option is extended to allow passing full triples, too.
Differential Revision: https://reviews.llvm.org/D100756
|
 | llvm/test/tools/llvm-rc/language.test (diff) |
 | llvm/test/tools/llvm-rc/windres-target.test |
 | clang/test/Preprocessor/llvm-windres.rc |
 | llvm/test/lit.cfg.py (diff) |
 | llvm/test/CMakeLists.txt (diff) |
 | llvm/test/tools/llvm-rc/windres-format.test |
 | llvm/test/tools/llvm-rc/windres-preproc.test |
 | llvm/test/tools/llvm-rc/codepage.test (diff) |
 | clang/test/CMakeLists.txt (diff) |
 | clang/test/Preprocessor/Inputs/llvm-windres.h |
 | llvm/test/tools/llvm-rc/windres-version.test |
 | llvm/test/tools/llvm-rc/windres-prefix.test |
 | llvm/tools/llvm-rc/CMakeLists.txt (diff) |
 | llvm/tools/llvm-rc/llvm-rc.cpp (diff) |
 | llvm/tools/llvm-rc/WindresOpts.td |
Commit
b5f04d81a2c0b01db32ed7c1685be37e6bdce171
by gchatelet[libc] Use different alignment for memcpy between ARM and x86.
Aligned copy used to be 'destination aligned' for x86 but this decision was reverted in D93457 where we noticed that it was better for ARM to be 'source aligned'. More benchmarking confirmed that it can be up to 30% faster to align copy to destination for x86. This Patch offers both implementations and switches x86 back to destination aligned. It also fixes alignment to 32 byte on x86.
Differential Revision: https://reviews.llvm.org/D101296
|
 | libc/src/string/x86/memcpy.cpp (diff) |
 | libc/src/string/aarch64/memcpy.cpp (diff) |
 | libc/src/string/memory_utils/memcpy_utils.h (diff) |
 | libc/src/string/memcpy.cpp (diff) |
 | libc/test/src/string/memory_utils/memcpy_utils_test.cpp (diff) |
Commit
51b461074385aa8cc141809fa27070544b6ac34c
by dblaikieSupport DW_FORM_strx* in llvm-dwp.
Currently llvm-dwp only handled DW_FORM_string and DW_FORM_GNU_str_index; with this patch it also starts to handle DW_FORM_strx[1-4]?
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D75485
|
 | llvm/test/tools/llvm-dwp/X86/invalid_string_form.test (diff) |
 | llvm/test/tools/llvm-dwp/Inputs/handle_strx/dw5.dwo |
 | llvm/test/tools/llvm-dwp/X86/unsupported_cu_index_version.s (diff) |
 | llvm/test/tools/llvm-dwp/X86/invalid_cu_header_length.s |
 | llvm/test/tools/llvm-dwp/X86/invalid_cu_header_version.s |
 | llvm/test/tools/llvm-dwp/X86/handle_strx.test |
 | llvm/test/tools/llvm-dwp/X86/invalid_cu_header_length_type.s |
 | llvm/tools/llvm-dwp/llvm-dwp.cpp (diff) |
Commit
c6aa206b429dccadc5c0471b22544337da1fc943
by sivachandra[libc] Add differential quality and perf analysis targets for sinf and cosf.
Infrastructure needed for setting up the diff binaries has been added. Along the way, an exhaustive test for sinf and cosf have also been added.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D101276
|
 | libc/test/src/math/differential_testing/cosf_perf.cpp |
 | libc/test/src/math/exhaustive/cosf_test.cpp |
 | libc/utils/testutils/CMakeLists.txt (diff) |
 | libc/utils/testutils/StreamWrapper.h (diff) |
 | libc/test/src/math/exhaustive/CMakeLists.txt (diff) |
 | libc/test/src/math/exhaustive/sqrtf_test.cpp (diff) |
 | libc/test/src/math/differential_testing/CMakeLists.txt |
 | libc/test/src/math/differential_testing/cosf_diff.cpp |
 | libc/utils/testutils/Timer.cpp |
 | libc/test/src/math/differential_testing/SingleInputSingleOutputDiff.h |
 | libc/test/src/math/differential_testing/sinf_diff.cpp |
 | libc/test/src/math/CMakeLists.txt (diff) |
 | libc/test/src/math/exhaustive/sinf_test.cpp |
 | libc/test/src/math/differential_testing/sinf_perf.cpp |
 | libc/utils/testutils/StreamWrapper.cpp (diff) |
 | libc/utils/testutils/Timer.h |
|
 | llvm/utils/gn/secondary/llvm/test/BUILD.gn (diff) |
 | llvm/utils/gn/secondary/llvm/tools/llvm-rc/BUILD.gn (diff) |
 | llvm/utils/gn/secondary/BUILD.gn (diff) |
|
 | llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/MCTargetDesc/BUILD.gn (diff) |
 | llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn (diff) |
 | llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/Utils/BUILD.gn (diff) |
Commit
70d94c3f2cae71ade2ceacdceb3d2e9899d2289a
by arthur.j.odwyer[libc++] __bit_iterator mustn't rely on deprecated SMF generation.
This allows us to turn -Wdeprecated-copy back on. We turned it off in 3b71de41cc7c7 because Clang's implementation became more stringent and started diagnosing the old code here.
Differential Revision: https://reviews.llvm.org/D101183
|
 | libcxx/include/__bit_reference (diff) |
 | libcxx/utils/libcxx/test/params.py (diff) |
Commit
e87479b00fcc852a54b79d2fd7f8d779e2b75f68
by arthur.j.odwyer[libc++] Remove the special logic for "noexcept iterators" in basic_string.
This reverts a large chunk of http://reviews.llvm.org/D15862 , and also fixes bugs in `insert`, `append`, and `assign`, which are now regression-tested. (Thanks to Tim Song for pointing out the bug in `append`!)
Before this patch, we did a special dance in `append`, `assign`, and `insert` (but not `replace`). All of these require the strong exception guarantee, even when the user-provided InputIterator might have throwing operations.
The naive way to accomplish this is to construct a temporary string and then append/assign/insert from the temporary; i.e., finish all the potentially throwing and self-inspecting InputIterator operations *before* starting to modify self. But this is slow, so we'd like to skip it when possible.
The old code (D15682) attempted to check that specific iterator operations were nothrow: it assumed that if the iterator operations didn't throw, then it was safe to iterate the input range multiple times and therefore it was safe to use the fast-path non-naive version. This was wrong for two reasons: (1) the old code checked the wrong operations (e.g. checked noexceptness of `==`, but the code that ran used `!=`), and (2) the conversion of value_type to char could still throw, or inspect the contents of self.
The new code is much simpler, although still much more complicated than it really could be. We'll likely revisit this codepath at some point, but for now this patch suffices to get it passing all the new regression tests.
The added tests all fail before this patch, and succeed afterward. See https://quuxplusone.github.io/blog/2021/04/17/pathological-string-appends/
Differential Revision: https://reviews.llvm.org/D98573
|
 | libcxx/test/libcxx/strings/iterators.exceptions.pass.cpp |
 | libcxx/test/libcxx/strings/iterators.noexcept.pass.cpp |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp (diff) |
 | libcxx/test/std/strings/basic.string/string.modifiers/robust_against_adl.pass.cpp |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp (diff) |
 | libcxx/include/iterator (diff) |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp (diff) |
 | libcxx/test/libcxx/iterators/trivial_iterators.pass.cpp |
 | libcxx/include/filesystem (diff) |
 | libcxx/include/string (diff) |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp (diff) |
Commit
036b80fcbbccee8199851158fd349230aa77d75e
by arthur.j.odwyer[libc++] [test] Improve test_exceptions() in each string.modifiers test.
When checking the strong exception guarantee, also check that iterators haven't been invalidated.
Reviewed as part of https://reviews.llvm.org/D98573
|
 | libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp (diff) |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp (diff) |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp (diff) |
 | libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp (diff) |
|
 | libcxx/utils/libcxx/test/params.py (diff) |
Commit
a786f2badc41459c713668eabe2b0053e4d8132a
by leonardchan[compiler-rt][hwasan] Add definition for Symbolizer::SymbolizeFrame
This is undefined if SANITIZER_SYMBOLIZER_MARKUP is 1, which is the case for Fuchsia, and will result in a undefined symbol error. This function is needed by hwasan for online symbolization, but is not needed for us since we do offline symbolization.
Differential Revision: https://reviews.llvm.org/D99386
|
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp (diff) |
Commit
614de225c92bc3998a83a274e84dfb94ec8a7840
by i[gcov] Set nounwind and respect module flags metadata "frame-pointer" & "uwtable" for synthesized functions
This applies the D100251 mechanism to the gcov instrumentation pass.
With this patch, `-fno-omit-frame-pointer` in `clang -fprofile-arcs -O1 -fno-omit-frame-pointer` will be respected for synthesized `__llvm_gcov_writeout,__llvm_gcov_reset,__llvm_gcov_init` functions: the frame pointer will be kept (note: on many targets -O1 eliminates the frame pointer by default).
`clang -fno-exceptions -fno-asynchronous-unwind-tables -g -fprofile-arcs` will produce .debug_frame instead of .eh_frame.
Fix: https://github.com/ClangBuiltLinux/linux/issues/955
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D101129
|
 | llvm/test/Transforms/GCOVProfiling/module-flags.ll |
 | llvm/test/Transforms/GCOVProfiling/function-numbering.ll (diff) |
 | llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff) |
Commit
b81244fa4ff9188df22847c6e11e050892292002
by iAdd LLVM_ATTRIBUTE_USED to fix problems which could be exposed by aggressive global pointer variable removal
Note to BuryPointer.cpp:GraveYard. 'unused' cannot prevent (1) dead store elimination and (2) removal of the global pointer variable (D69428) but 'used' can.
Discovered when comparing link maps between HEAD+D69428 and HEAD.
Reviewed By: lattner
Differential Revision: https://reviews.llvm.org/D101217
|
 | llvm/lib/Support/BuryPointer.cpp (diff) |
 | llvm/lib/Support/Unix/Signals.inc (diff) |
Commit
e2cd92cb9bc2d71ff6fe0299583e48b38c1c6b97
by craig.topper[RISCV] Match splatted load to scalar load + splat. Form strided load during isel.
This modifies my previous patch to push the strided load formation to isel. This gives us opportunity to fold the splat into a .vx operation first. Using a scalar register and a .vx operation reduces vector register pressure which can be important for larger LMULs.
If we can't fold the splat into a .vx operation, then it can make sense to use a strided load to free up the vector arithmetic ALU to do actual arithmetic rather than tying it up with vmv.v.x.
Reviewed By: khchen
Differential Revision: https://reviews.llvm.org/D101138
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-shuffles.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
 | llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll (diff) |
Commit
b5403117814a7c39b944839e10492493f2ceb4ac
by i[ADT] Remove StatisticBase and make NoopStatistic empty
In LLVM_ENABLE_STATS=0 builds, `llvm::Statistic` maps to `llvm::NoopStatistic` but has 3 unused pointers. GlobalOpt considers that the pointers can potentially retain allocated objects, so GlobalOpt cannot optimize out the `NoopStatistic` variables (see D69428 for more context), wasting 23KiB for stage 2 clang.
This patch makes `NoopStatistic` empty and thus reclaims the wasted space. The clang size is even smaller than applying D69428 (slightly smaller in both .bss and .text). ``` # This means the D69428 optimization on clang is mostly nullified by this patch. HEAD+D69428: size(.bss) = 0x0725a8 HEAD+D101211: size(.bss) = 0x072238
# bloaty - HEAD+D69428 vs HEAD+D101211 # With D101211, we also save a lot of string table space (.rodata). FILE SIZE VM SIZE -------------- -------------- -0.0% -32 -0.0% -24 .eh_frame -0.0% -336 [ = ] 0 .symtab -0.0% -360 [ = ] 0 .strtab [ = ] 0 -0.2% -880 .bss -0.0% -2.11Ki -0.0% -2.11Ki .rodata -0.0% -2.89Ki -0.0% -2.89Ki .text -0.0% -5.71Ki -0.0% -5.88Ki TOTAL ```
Note: LoopFuse is a disabled pass. This patch adds `#if LLVM_ENABLE_STATS` so `OptimizationRemarkMissed` is skipped in LLVM_ENABLE_STATS==0 builds. If these `OptimizationRemarkMissed` are useful and not noisy, we can replace `llvm::Statistic` with `llvm::TrackingStatistic` in the future.
Reviewed By: lattner
Differential Revision: https://reviews.llvm.org/D101211
|
 | llvm/include/llvm/ADT/Statistic.h (diff) |
 | llvm/lib/Transforms/Scalar/LoopFuse.cpp (diff) |
|
 | llvm/include/llvm-c/Orc.h (diff) |
Commit
c8fc5e3ba942057d6c4cdcd1faeae69a28e7b671
by Lang Hames[ORC] C API updates.
Adds support for creating custom MaterializationUnits in the C API with the new LLVMOrcCreateCustomMaterializationUnit function.
Modifies ownership rules for LLVMOrcAbsoluteSymbols to make it consistent with LLVMOrcCreateCustomMaterializationUnit. This is an ABI breaking change for any clients of the LLVMOrcAbsoluteSymbols API.
Adds LLVMOrcLLJITGetObjLinkingLayer and LLVMOrcObjectLayerEmit functions to allow clients to get a reference to an LLJIT instance's linking layer, then emit an object file using it. This can be used to support construction of custom materialization units in the common case where those units will generate an object file that needs to be emitted to complete the materialization.
|
 | llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp (diff) |
 | llvm/include/llvm-c/LLJIT.h (diff) |
 | llvm/include/llvm-c/Orc.h (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt (diff) |
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp |
|
 | llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn (diff) |
Commit
0e8378032597bcaccb948de88e965ad75bfaeb7b
by saugustineDon't fail the shared_ptr test if libc++ has insufficient debug info.
Don't fail the shared_ptr test if libc++ has insufficient debug info.
This addresses https://bugs.llvm.org/show_bug.cgi?id=48937
Differential Revision: https://reviews.llvm.org/D100610
|
 | libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py (diff) |
Commit
fe1555607716899745fc53c503193fff1b7bbe15
by saugustineSupport leak sanitizer in libcxx.
Support leak sanitizer in libcxx.
Simple addition for leak checking when running the libcxx testsuite.
Differential Revision: https://reviews.llvm.org/D100775
|
 | libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py (diff) |
 | libcxx/utils/libcxx/test/config.py (diff) |
Commit
84d16e2055071abf0c2c22ad13d6f896a75bd38d
by roger.ferrerImplementation for TargetTransformInfo::hasActiveVectorLength()
This patch adds the missing implementation for TargetTransformInfo::hasActiveVectorLength() without which using hasActiveVectorLength() causes linker error.
Patch by Vineet Kumar!
Differential Revision: https://reviews.llvm.org/D100941
|
 | llvm/lib/Analysis/TargetTransformInfo.cpp (diff) |
Commit
caf1294d95785503a1d114c8c167e181fff7068b
by baptiste.saleil[AMDGPU] Experiments show that the GCNRegBankReassign pass significantly impacts the compilation time and there is no case for which we see any improvement in performance. This patch removes this pass and its associated test cases from the tree.
Differential Revision: https://reviews.llvm.org/D101313
Change-Id: I0599169a7609c19a887f8d847a71e664030cc141
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot4.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.g16.ll (diff) |
 | llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/strict_fsub.f64.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i16.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fma.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.d16.dim.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/frem.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/lshr.v2i16.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/regbank-reassign-split.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f16.ll (diff) |
 | llvm/lib/Target/AMDGPU/CMakeLists.txt (diff) |
 | llvm/test/CodeGen/AMDGPU/vector_shuffle.packed.ll (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot4.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/idot4s.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.dim.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/idiv-licm.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.encode.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/saddo.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f32.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/idot8s.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/saddsat.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/store-local.96.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/strict_fmul.f64.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i128.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/regbank-reassign-wave64.mir |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.a16.dim.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.demote.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/roundeven.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/regbank-reassign.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.a16.dim.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/idot4u.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/ctlz.ll (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPU.h (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i8.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/strict_fma.f16.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/idot2.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/memory_clause.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.demote.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/fshr.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/load-local.128.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/shl.v2i16.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/ssubsat.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/ds-sub-offset.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.inc.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f64.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.3d.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.mulo.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/load-local.96.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/strict_fadd.f64.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/fneg-fold-legalize-dag-increase-insts.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.dim.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/store-local.128.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/idot8u.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/strict_fma.f64.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll (diff) |
|
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn (diff) |
Commit
ab0df6c0346e515291a381467527621ab0ccf953
by Alex LorenzRevert "[clang][driver] Use the provided arch name for a Darwin target triple"
This reverts commit 6cc62043c8bf4daa27664a2e1674abbe8d0492c6.
This caused a test failure on a M1 mac CI job (https://reviews.llvm.org/D100807#2718006), I will recommit this with a fix.
|
 | clang/test/Driver/aarch64-cpus.c (diff) |
 | clang/test/Driver/default-toolchain.c (diff) |
 | clang/test/Driver/darwin-version.c (diff) |
 | clang/lib/Driver/ToolChains/Darwin.cpp (diff) |
 | clang/test/Driver/arm64_32-link.c (diff) |
Commit
bdd68357901d2ccdd110cf35746703ac8e46de3c
by zoecarver[libc++][ranges] iterator.concept.sizedsentinel: sized_sentinel_for and disable_sized_sentinel_for.
Based on D100160.
Reviewed By: cjdb, ldionne, Quuxplusone, #libc, miscco
Differential Revision: https://reviews.llvm.org/D100587
|
 | libcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sized_sentinel_for.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/include/iterator (diff) |
 | libcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
 | libcxx/include/__iterator/concepts.h (diff) |
 | libcxx/test/std/iterators/stream.iterators/istream.iterator/iterator_concept_conformance.compile.pass.cpp (diff) |
Commit
9b0501abc7b515b740fb5ee929817442dd3029a5
by aeubanks[Clang] -Wunused-but-set-parameter and -Wunused-but-set-variable
These are intended to mimic warnings available in gcc.
-Wunused-but-set-variable is triggered in the case of a variable which appears on the LHS of an assignment but not otherwise used.
For instance:
void f() { int x; x = 0; }
-Wunused-but-set-parameter works similarly, but for function parameters instead of variables.
In C++, they are triggered only for scalar types; otherwise, they are triggered for all types. This is gcc's behavior.
-Wunused-but-set-parameter is controlled by -Wextra, while -Wunused-but-set-variable is controlled by -Wunused. This is slightly different from gcc's behavior, but seems most consistent with clang's behavior for -Wunused-parameter and -Wunused-variable.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D100581
|
 | clang/test/SemaCXX/shift.cpp (diff) |
 | clang/include/clang/Sema/Sema.h (diff) |
 | clang/test/CodeGen/builtins-arm.c (diff) |
 | clang/test/SemaCXX/sizeless-1.cpp (diff) |
 | clang/include/clang/Basic/DiagnosticGroups.td (diff) |
 | clang/test/SemaCXX/goto.cpp (diff) |
 | clang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp |
 | clang/test/CodeGen/X86/x86_64-xsave.c (diff) |
 | clang/test/Sema/warn-unused-but-set-parameters.c |
 | clang/lib/Sema/SemaDecl.cpp (diff) |
 | clang/lib/Sema/SemaExpr.cpp (diff) |
 | clang/test/CodeGen/builtins-riscv.c (diff) |
 | clang/test/Sema/vector-gcc-compat.c (diff) |
 | clang/test/CodeGen/X86/x86_32-xsave.c (diff) |
 | clang/test/Misc/warning-wall.c (diff) |
 | clang/test/SemaObjC/foreach.m (diff) |
 | clang/test/FixIt/fixit.cpp (diff) |
 | clang/test/Sema/shift.c (diff) |
 | clang/test/Sema/warn-unused-but-set-variables.c |
 | clang/lib/Sema/SemaStmt.cpp (diff) |
 | clang/test/SemaCXX/warn-unused-but-set-parameters-cpp.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td (diff) |
Commit
bbddadd46e46261b441bf1132efc3c1fbb73ce17
by Lang HamesRevert "[ORC] Add unit tests for parts of the Orc and LLJIT C APIs."
This reverts commit 8740360093b5154504f5e056596119f9566f4b06.
This commit caused failures on some builders (see e.g. https://lab.llvm.org/buildbot/#/builders/5/builds/7071). Reverting while I investigate.
|
 | llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt (diff) |
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp |
|
 | llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn (diff) |
Commit
e01c666b136e3f97587b22a2029f31e5c36a0e71
by iRevert D76519 "[NFC] Refactor how CFI section types are represented in AsmPrinter"
This reverts commit 0ce723cb228bc1d1a0f5718f3862fb836145a333.
D76519 was not quite NFC. If we see a CFISection::Debug function before a CFISection::EH one (-fexceptions -fno-asynchronous-unwind-tables), we may incorrectly pick CFISection::Debug and emit a `.cfi_sections .debug_frame`. We should use .eh_frame instead.
This scenario is untested.
|
 | llvm/include/llvm/CodeGen/AsmPrinter.h (diff) |
 | llvm/lib/CodeGen/AsmPrinter/ARMException.cpp (diff) |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff) |
 | llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp (diff) |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp (diff) |
Commit
b99466eb4525b151508d8f1a054d7a7fb4731c03
by llvm-project[SimplifyCFG] Preserve metadata when unconditionalizing branches (same target).
When replacing a conditional branch by an unconditional one because the targets are identical, transfer the metadata to the new branch instruction.
Reviewed By: lebedev.ri
Differential Revision: https://reviews.llvm.org/D101226
|
 | llvm/lib/Transforms/Utils/Local.cpp (diff) |
 | llvm/test/Transforms/SimplifyCFG/commondest-loopid.ll |
Commit
bdc4ec04d42a0d9c7db9842754487e97d9778639
by hubert.reinterpretcast[AIX] Avoid use of mtim.tv_nsec member of stat structure on AIX
The value observed for the `mtim.tv_nsec` member is erroneous in some AIX environments. Avoid using this member by forcing `HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC` to `0`.
This resolves "mtime changed" errors such as the one http://lab.llvm.org:8014/#/builders/126/builds/330/steps/5/logs/FAIL__Clang__test_c has.
Reviewed By: daltenty, jsji
Differential Revision: https://reviews.llvm.org/D101323
|
 | llvm/cmake/config-ix.cmake (diff) |
Commit
254e289d45337ec1da930ef93b4b1dd92f791153
by antiagainstRevert "[ADT] Remove StatisticBase and make NoopStatistic empty"
This reverts commit b5403117814a7c39b944839e10492493f2ceb4ac because it breaks MLIR build:
https://buildkite.com/mlir/mlir-core/builds/13299#ad0f8901-dfa4-43cf-81b8-7940e2c6c15b
|
 | llvm/include/llvm/ADT/Statistic.h (diff) |
 | llvm/lib/Transforms/Scalar/LoopFuse.cpp (diff) |
|
 | llvm/test/CodeGen/RISCV/rvv/vrsub-sdnode-rv32.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vmaxu-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vadd-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vsub-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vremu-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vor-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vselect-int-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vsrl-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vshl-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vmin-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vsra-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vsplats-i64.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vreductions-int-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vdiv-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vdivu-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vand-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vmax-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vrem-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vmul-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/setcc-integer-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vminu-sdnode-rv32.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/vxor-sdnode-rv32.ll (diff) |
Commit
a41f076ef1d611fcd255514d0c19cb06375e49b2
by i[test] Fix tools/gold/X86/weak.ll after D94202
The order regressed after D94202: after `a b`, when adding `a c`, we may reorder `a` to the right of `b`, causing the final order to be `b a c`.
|
 | llvm/test/tools/gold/X86/Inputs/weak.ll (diff) |
 | llvm/test/tools/gold/X86/weak.ll (diff) |
Commit
fede99d386ec9e7bab2762aa16cb10c0513ae464
by gh[NVPTX] Enable lowering of atomics on local memory
LLVM does not have valid assembly backends for atomicrmw on local memory. However, as this memory is thread local, we should be able to lower this to the relevant load/store.
Differential Revision: https://reviews.llvm.org/D98650
|
 | llvm/include/llvm/Transforms/Scalar/LowerAtomic.h (diff) |
 | llvm/lib/Target/NVPTX/NVPTXAtomicLower.cpp |
 | llvm/lib/Target/NVPTX/CMakeLists.txt (diff) |
 | llvm/test/CodeGen/NVPTX/atomic-lower-local.ll |
 | llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp (diff) |
 | llvm/lib/Transforms/Scalar/LowerAtomic.cpp (diff) |
 | llvm/lib/Target/NVPTX/NVPTXAtomicLower.h |
|
 | llvm/include/llvm/Transforms/Scalar/LowerAtomic.h (diff) |
 | llvm/lib/Target/NVPTX/CMakeLists.txt (diff) |
 | llvm/lib/Target/NVPTX/NVPTXAtomicLower.h |
 | llvm/lib/Target/NVPTX/NVPTXAtomicLower.cpp |
 | llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp (diff) |
 | llvm/test/CodeGen/NVPTX/atomic-lower-local.ll |
 | llvm/lib/Transforms/Scalar/LowerAtomic.cpp (diff) |
Commit
18839be9c5c8b9f882dd241769784035b082d4e1
by i[ADT] Remove StatisticBase and make NoopStatistic empty
In LLVM_ENABLE_STATS=0 builds, `llvm::Statistic` maps to `llvm::NoopStatistic` but has 3 mostly unused pointers. GlobalOpt considers that the pointers can potentially retain allocated objects, so GlobalOpt cannot optimize out the `NoopStatistic` variables (see D69428 for more context), wasting 23KiB for stage 2 clang.
This patch makes `NoopStatistic` empty and thus reclaims the wasted space. The clang size is even smaller than applying D69428 (slightly smaller in both .bss and .text). ``` # This means the D69428 optimization on clang is mostly nullified by this patch. HEAD+D69428: size(.bss) = 0x0725a8 HEAD+D101211: size(.bss) = 0x072238
# bloaty - HEAD+D69428 vs HEAD+D101211 # With D101211, we also save a lot of string table space (.rodata). FILE SIZE VM SIZE -------------- -------------- -0.0% -32 -0.0% -24 .eh_frame -0.0% -336 [ = ] 0 .symtab -0.0% -360 [ = ] 0 .strtab [ = ] 0 -0.2% -880 .bss -0.0% -2.11Ki -0.0% -2.11Ki .rodata -0.0% -2.89Ki -0.0% -2.89Ki .text -0.0% -5.71Ki -0.0% -5.88Ki TOTAL ```
Note: LoopFuse is a disabled pass. For now this patch adds `#if LLVM_ENABLE_STATS` so `OptimizationRemarkMissed` is skipped in LLVM_ENABLE_STATS==0 builds. If these `OptimizationRemarkMissed` are useful in LLVM_ENABLE_STATS==0 builds, we can replace `llvm::Statistic` with `llvm::TrackingStatistic`, or use a different abstraction to keep track of the strings.
Similarly, skip the code in `mlir/lib/Pass/PassStatistics.cpp` which calls `getName`/`getDesc`/`getValue`.
Reviewed By: lattner
Differential Revision: https://reviews.llvm.org/D101211
|
 | llvm/lib/Transforms/Scalar/LoopFuse.cpp (diff) |
 | llvm/include/llvm/ADT/Statistic.h (diff) |
 | mlir/include/mlir/Pass/Pass.h (diff) |
 | mlir/lib/Pass/PassStatistics.cpp (diff) |
 | mlir/test/Pass/pipeline-stats.mlir (diff) |
Commit
30bb5be38908b0006ed94124515e43774ee37915
by hoy[CSSPGO] Unblock optimizations with pseudo probe instrumentation part 2.
As a follow-up to D95982, this patch continues unblocking optimizations that are blocked by pseudu probe instrumention.
The optimizations unblocked are: - In-block load propagation. - In-block dead store elimination - Memory copy optimization that turns stores to consecutive memories into a memset.
These optimizations are local to a block, so they shouldn't affect the profile quality.
Reviewed By: wmi
Differential Revision: https://reviews.llvm.org/D100075
|
 | llvm/lib/Analysis/Loads.cpp (diff) |
 | llvm/lib/Transforms/Scalar/Sink.cpp (diff) |
 | llvm/test/Transforms/SampleProfile/pseudo-probe-instcombine.ll (diff) |
 | llvm/test/Transforms/SampleProfile/pseudo-probe-memset.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (diff) |
 | llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp (diff) |
Commit
a2a3ca8d97962d90443ee758e47877e15d7e3832
by yhsBPF: emit debuginfo for Function of DeclRefExpr if requested
Commit e3d8ee35e4ad ("reland "[DebugInfo] Support to emit debugInfo for extern variables"") added support to emit debugInfo for extern variables if requested by the target. Currently, only BPF target enables this feature by default.
As BPF ecosystem grows, callback function started to get support, e.g., recently bpf_for_each_map_elem() is introduced (https://lwn.net/Articles/846504/) with a callback function as an argument. In the future we may have something like below as a demonstration of use case : extern int do_work(int); long bpf_helper(void *callback_fn, void *callback_ctx, ...); long prog_main() { struct { ... } ctx = { ... }; return bpf_helper(&do_work, &ctx, ...); } Basically bpf helper may have a callback function and the callback function is defined in another file or in the kernel. In this case, we would like to know the debuginfo types for do_work(), so the verifier can proper verify the safety of bpf_helper() call.
For the following example, extern int do_work(int); long bpf_helper(void *callback_fn); long prog() { return bpf_helper(&do_work); }
Currently, there is no debuginfo generated for extern function do_work(). In the IR, we have, ... define dso_local i64 @prog() local_unnamed_addr #0 !dbg !7 { entry: %call = tail call i64 @bpf_helper(i8* bitcast (i32 (i32)* @do_work to i8*)) #2, !dbg !11 ret i64 %call, !dbg !12 } ... declare dso_local i32 @do_work(i32) #1 ...
This patch added support for the above callback function use case, and the generated IR looks like below: ... declare !dbg !17 dso_local i32 @do_work(i32) #1 ... !17 = !DISubprogram(name: "do_work", scope: !1, file: !1, line: 1, type: !18, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2) !18 = !DISubroutineType(types: !19) !19 = !{!20, !20} !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
The TargetInfo.allowDebugInfoForExternalVar is renamed to TargetInfo.allowDebugInfoForExternalRef as now it guards both extern variable and extern function debuginfo generation.
Differential Revision: https://reviews.llvm.org/D100567
|
 | clang/lib/Basic/Targets/BPF.h (diff) |
 | clang/include/clang/Basic/TargetInfo.h (diff) |
 | clang/lib/Sema/SemaDecl.cpp (diff) |
 | clang/lib/CodeGen/CGExpr.cpp (diff) |
 | clang/test/CodeGen/debug-info-extern-callback.c |
|
 | clang/test/VFS/broken-vfs-module-dep.c |
 | llvm/lib/Support/VirtualFileSystem.cpp (diff) |
Commit
7aa3cad46ac3258f9b069fbdaad8b73e280ebfbb
by gh[NVPTX] Enable lowering of atomics on local memory
LLVM does not have valid assembly backends for atomicrmw on local memory. However, as this memory is thread local, we should be able to lower this to the relevant load/store.
Differential Revision: https://reviews.llvm.org/D98650
|
 | llvm/lib/Target/NVPTX/NVPTXAtomicLower.cpp |
 | llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp (diff) |
 | llvm/test/CodeGen/NVPTX/atomic-lower-local.ll |
 | llvm/lib/Target/NVPTX/CMakeLists.txt (diff) |
 | llvm/lib/Target/NVPTX/NVPTXAtomicLower.h |
 | llvm/lib/Transforms/Scalar/LowerAtomic.cpp (diff) |
 | llvm/include/llvm/Transforms/Scalar/LowerAtomic.h (diff) |
Commit
ca27260701e237a4470cc00f0791b93e78e5fed8
by gh[MLIR] Add SCF.if Condition Canonicalizations
Add two canoncalizations for scf.if. 1) A canonicalization that allows users of a condition within an if to assume the condition is true if in the true region, etc. 2) A canonicalization that removes yielded statements that are equivalent to the condition or its negation
Differential Revision: https://reviews.llvm.org/D101012
|
 | mlir/test/Dialect/SCF/canonicalize.mlir (diff) |
 | mlir/lib/Dialect/SCF/SCF.cpp (diff) |
 | mlir/test/Transforms/canonicalize.mlir (diff) |
|
 | llvm/utils/gn/secondary/llvm/lib/Target/NVPTX/BUILD.gn (diff) |
Commit
fd1ff5ee0388af9eb373d903a1644e6cd2c96d9d
by aeubanks[Inliner] Make ModuleInlinerWrapperPass return PreservedAnalyses::all()
The ModulePassManager should already have taken care of all analysis invalidation. Without this change, upcoming changes will cause more invalidation than necessary.
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D101320
|
 | llvm/lib/Transforms/IPO/Inliner.cpp (diff) |
Commit
bba7338b8f5df15a444aad8b3026aec869767b2b
by yhsBPF: generate BTF info for LD_imm64 loaded function pointer
For an example like below, extern int do_work(int); long bpf_helper(void *callback_fn); long prog() { return bpf_helper(&do_work); }
The final generated codes look like: r1 = do_work ll call bpf_helper exit where we have debuginfo for do_work() extern function: !17 = !DISubprogram(name: "do_work", ...)
This patch implemented to add additional checking in processing LD_imm64 operands for possible function pointers so BTF for bpf function do_work() can be properly generated. The original llvm function name processReloc() is renamed to processGlobalValue() to better reflect what the function is doing.
Differential Revision: https://reviews.llvm.org/D100568
|
 | llvm/lib/Target/BPF/BTFDebug.cpp (diff) |
 | llvm/lib/Target/BPF/BTFDebug.h (diff) |
 | llvm/test/CodeGen/BPF/BTF/extern-func-ptr.ll |
Commit
23c9e8bc25795b69e16d39b674c19c79a2bb107b
by ajcbik[mlir][tensors] Introduce attribute interface/attribute for tensor encoding
The new "encoding" field in tensor types so far had no meaning. This revision introduces:
1. an encoding attribute interface in IR: for verification between tensors and encodings in general 2. an attribute in Tensor dialect; #tensor.sparse<dict> + concrete sparse tensors API
Active discussion: https://llvm.discourse.group/t/rfc-introduce-a-sparse-tensor-type-to-core-mlir/2944/
Reviewed By: silvas, penpornk, bixia
Differential Revision: https://reviews.llvm.org/D101008
|
 | mlir/include/mlir/Dialect/Tensor/IR/CMakeLists.txt (diff) |
 | mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp (diff) |
 | mlir/include/mlir/Dialect/Tensor/IR/TensorAttrDefs.td |
 | mlir/lib/Parser/TypeParser.cpp (diff) |
 | mlir/include/mlir/Dialect/Tensor/IR/Tensor.h (diff) |
 | mlir/lib/IR/TensorEncoding.cpp |
 | mlir/lib/IR/BuiltinTypes.cpp (diff) |
 | mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td (diff) |
 | mlir/lib/IR/CMakeLists.txt (diff) |
 | mlir/include/mlir/IR/TensorEncoding.td |
 | mlir/test/Dialect/Tensor/valid_sparse.mlir |
 | mlir/include/mlir/IR/TensorEncoding.h |
 | mlir/lib/Dialect/Tensor/IR/CMakeLists.txt (diff) |
 | mlir/test/Dialect/Tensor/invalid_sparse_tensor.mlir |
 | mlir/include/mlir/IR/CMakeLists.txt (diff) |
|
 | clang/include/clang/Sema/Sema.h (diff) |
|
 | clang/tools/amdgpu-arch/CMakeLists.txt |
 | clang/include/clang/Basic/DiagnosticDriverKinds.td (diff) |
 | clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_fail |
 | clang/tools/CMakeLists.txt (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_different |
 | clang/tools/amdgpu-arch/AMDGPUArch.cpp |
 | clang/test/Driver/amdgpu-openmp-system-arch.c |
 | clang/include/clang/Driver/Options.td (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_gfx906 |
 | clang/lib/Driver/ToolChains/AMDGPU.h (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_gfx908_gfx908 |
 | clang/lib/Driver/ToolChains/AMDGPU.cpp (diff) |
 | clang/test/Driver/amdgpu-openmp-system-arch-fail.c |
Commit
016092d786f226f403fce5b5d0888dfa939b3f21
by pengfei.wangReapply "[X86][AMX] Try to hoist AMX shapes' def"
We request no intersections between AMX instructions and their shapes' def when we insert ldtilecfg. However, this is not always ture resulting from not only users don't follow AMX API model, but also optimizations.
This patch adds a mechanism that tries to hoist AMX shapes' def as well. It only hoists shapes inside a BB, we can improve it for cases across BBs in future. Currently, it only hoists shapes of which all sources' def above the first AMX instruction. We can improve for the case that only source that moves an immediate value to a register below AMX instruction.
Reviewed By: xiangzhangllvm
Differential Revision: https://reviews.llvm.org/D101067
|
 | llvm/lib/Target/X86/X86PreTileConfig.cpp (diff) |
 | llvm/test/CodeGen/X86/AMX/amx-sched.ll (diff) |
Commit
d07c90e39550e6b708d9bd262697a4b92bae860a
by riddleriver[mlir] Refactor the forward dataflow propagation in SCCP into a generic framework
This revision takes the forward value propagation engine in SCCP and refactors it into a more generalized forward dataflow analysis framework. This framework allows for propagating information about values across the various control flow constructs in MLIR, and removes the need for users to reinvent the traversal (often not as completely). There are a few aspects of the traversal, that were conservative for SCCP, that should be relaxed to support the needs of different value analyses. To keep this revision simple, these conservative behaviors will be left in (Note that this won't produce an incorrect result, but may produce more conservative results than necessary in certain edge cases. e.g. region entry arguments for non-region branch interface operations). The framework also only focuses on computing lattices for values, given the SCCP origins, but this is something to relax as needed in the future.
Given that this logic is already in SCCP, a majority of this commit is NFC. The more interesting parts are the interface glue that clients interact with.
Differential Revision: https://reviews.llvm.org/D100915
|
 | mlir/docs/Tutorials/DataFlowAnalysis.md |
 | mlir/include/mlir/Analysis/DataFlowAnalysis.h |
 | mlir/lib/Analysis/CMakeLists.txt (diff) |
 | mlir/lib/Analysis/DataFlowAnalysis.cpp |
 | mlir/lib/Transforms/SCCP.cpp (diff) |
|
 | compiler-rt/lib/asan/tests/asan_interface_test.cpp (diff) |
Commit
d122d80b3d1c3ffdfbf6a2168f3d61fa4337facc
by Lang HamesReapply "[ORC] Add unit tests for parts of the ..." with fixes and improvements.
This reapplies 8740360093b, which was reverted in bbddadd46e4 due to buildbot errors.
This version checks that a JIT instance can be safely constructed, skipping tests if it can not be. To enable this it introduces new C API to retrieve and set the target triple for a JITTargetMachineBuilder.
|
 | llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp (diff) |
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp |
 | llvm/include/llvm-c/LLJIT.h (diff) |
 | llvm/include/llvm-c/Orc.h (diff) |
 | llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
Commit
e5000eef81354aa755caa25b317e205364f444e0
by czhengsz[XCOFF] make .file directive have directory info
The .file directive is changed to only have basename in D36018 for ELF.
But on AIX, we require the .file directive to also contain the directory info. This aligns with other AIX compiler like XLC and is required by some AIX tool like DBX.
Reviewed By: hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D99785
|
 | llvm/lib/MC/MCAsmInfoXCOFF.cpp (diff) |
 | llvm/test/CodeGen/PowerPC/aix-filename-absolute-path.ll |
 | llvm/include/llvm/MC/MCAsmInfo.h (diff) |
 | llvm/test/CodeGen/PowerPC/aix-filename-relative-path.ll |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
|
 | llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
Commit
5a26345fe22516ebe1a6278addb48c01f44ee137
by AlokKumar.Sharma[DebugInfo][llvm-dwarfdump] Fix printing of Unit header with DW_UT_partial type
llvm-dwarfdump crashed for Unit header with DW_UT_partial type. ------------- llvm-dwarfdump: /tmp/llvm/include/llvm/ADT/Optional.h:197: T& llvm::optional_detail::OptionalStorage<T, true>::getValue() & [with T = long unsigned int]: Assertion `hasVal' failed. PLEASE submit a bug report to the technical support section of https://developer.amd.com/amd-aocc and include the crash backtrace. Stack dump: 0. Program arguments: llvm-dwarfdump -v /tmp/test/DebugInfo/X86/Output/dwarfdump-he ader.s.tmp.o #0 0x00007f37d5ad8838 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /tmp/llvm/lib/Support/Unix/Signals.inc:565:0 #1 0x00007f37d5ad88ef PrintStackTraceSignalHandler(void*) /tmp/llvm/lib/Support/Unix/Signals.inc:632:0 #2 0x00007f37d5ad65bd llvm::sys::RunSignalHandlers() /tmp/llvm/lib/Support/Signals.cpp:71:0 #3 0x00007f37d5ad81b9 SignalHandler(int) /tmp/llvm/lib/Support/Unix/Signals.inc:407:0 #4 0x00007f37d4c26040 (/lib/x86_64-linux-gnu/libc.so.6+0x3f040) #5 0x00007f37d4c25fb7 raise /build/glibc-S9d2JN/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0 #6 0x00007f37d4c27921 abort /build/glibc-S9d2JN/glibc-2.27/stdlib/abort.c:81:0 #7 0x00007f37d4c1748a __assert_fail_base /build/glibc-S9d2JN/glibc-2.27/assert/assert.c:89:0 #8 0x00007f37d4c17502 (/lib/x86_64-linux-gnu/libc.so.6+0x30502) #9 0x00007f37d7576b81 llvm::optional_detail::OptionalStorage<unsigned long, true>::getValue() & /tmp/llvm/include/llvm/ADT/Optional.h:198:0 #10 0x00007f37d75726ac llvm::Optional<unsigned long>::operator*() && /tmp/llvm/include/llvm/ADT/Optional.h:309:0 #11 0x00007f37d7582968 llvm::DWARFCompileUnit::dump(llvm::raw_ostream&, llvm::DIDumpOptions) /tmp/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp:30:0 --------------
Patch by: @jini.susan
Reviewed By: @probinson
Differential Revision: https://reviews.llvm.org/D101255
|
 | llvm/test/DebugInfo/X86/dwarfdump-header.s (diff) |
 | llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp (diff) |
|
 | lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp (diff) |
 | llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp (diff) |
 | llvm/tools/llvm-dwp/llvm-dwp.cpp (diff) |
 | clang/lib/Serialization/ASTReaderStmt.cpp (diff) |
Commit
b4537c3f51bc6c011ddd9c10b80043ac4ce16a01
by phosek[Driver] Push multiarch path setup to individual drivers
Different platforms use different rules for multiarch triples so it's difficult to provide a single method for all platforms. We instead move the getMultiarchTriple to the ToolChain class and let individual platforms override it and provide their custom logic.
Differential Revision: https://reviews.llvm.org/D101194
|
 | clang/lib/Driver/Driver.cpp (diff) |
 | clang/lib/Driver/ToolChains/Fuchsia.h (diff) |
 | clang/lib/Driver/ToolChains/Fuchsia.cpp (diff) |
 | clang/include/clang/Driver/ToolChain.h (diff) |
 | clang/lib/Driver/ToolChains/WebAssembly.h (diff) |
 | clang/cmake/caches/Fuchsia-stage2.cmake (diff) |
 | clang/lib/Driver/ToolChains/Gnu.h (diff) |
 | clang/lib/Driver/ToolChains/Linux.cpp (diff) |
 | libcxx/utils/ci/run-buildbot (diff) |
 | clang/lib/Driver/ToolChain.cpp (diff) |
 | clang/lib/Driver/ToolChains/WebAssembly.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
|
 | llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp (diff) |
 | llvm/include/llvm-c/Orc.h (diff) |
Commit
6a2d41453183a2011797ce1f0c6fa3635035d174
by Lang Hames[ORC] Disable Orc C API test for armv8l targets.
The https://lab.llvm.org/buildbot/#/builders/107 builder is failing on this testcase, but doesn't produce a helpful error message yet. Disabling for now until I have time to dig in further.
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (diff) |
Commit
e4c606acaf11d12f511aad4384d57b8e04d8ac1c
by daniil.fukalov[TTI] NFC: Change getScalarizationOverhead and getOperandsScalarizationOverhead to return InstructionCost.
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D101283
|
 | llvm/lib/Target/X86/X86TargetTransformInfo.h (diff) |
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp (diff) |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h (diff) |
 | llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp (diff) |
 | llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp (diff) |
 | llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h (diff) |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff) |
 | llvm/lib/Analysis/TargetTransformInfo.cpp (diff) |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h (diff) |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp (diff) |
|
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp |
 | llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt (diff) |
|
 | llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn (diff) |
Commit
33f04e485c7d95626e12aa522b09cc81109fc6ab
by mikael.holmenOnly ignore -Wdeprecated-copy if the used compiler supports the warning
This is needed after https://reviews.llvm.org/rG9658d045926545e62cc3f963fe611d7c5d0c9d98 which introduced code that at least didn't compile clean with clang 8.
Differential Revision: https://reviews.llvm.org/D101288
|
 | llvm/utils/unittest/googletest/include/gtest/internal/gtest-param-util-generated.h (diff) |
 | llvm/utils/unittest/googlemock/include/gmock/gmock-matchers.h (diff) |
 | llvm/utils/unittest/googlemock/include/gmock/gmock.h (diff) |
|
 | clang/cmake/caches/Fuchsia-stage2.cmake (diff) |
Commit
b003ebd603c9b16ad65527f89c1a9898598ce6ff
by frgossen[MLIR][Linalg] Generalize splat constant folding
Splat constant folding was limited to `std.constant` operations. Instead, use the constant matcher and apply splat constant folding to any constant-like operation that holds a splat attribute.
Differential Revision: https://reviews.llvm.org/D101301
|
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp (diff) |
|
 | clang/lib/Format/Format.cpp (diff) |
|
 | clang/unittests/Format/FormatTest.cpp (diff) |
Commit
acadf9613319c962e02977dd9eb69ba62ca8f965
by david.sherwood[NFC][SVE] Add tests for inserting subvectors into illegal scalable vectors
A previous commit fixed some issues with inserting subvectors into illegal scalable vectors:
0035decae7ab9ab1c988fdcede46598540afd1a0
I've created a patch that simply adds some of those same tests for SVE.
Differential Revision: https://reviews.llvm.org/D100641
|
 | llvm/test/CodeGen/AArch64/sve-insert-vector.ll (diff) |
|
 | clang/lib/Headers/amxintrin.h (diff) |
|
 | llvm/include/llvm/CodeGen/GlobalISel/Utils.h (diff) |
 | llvm/lib/CodeGen/GlobalISel/Utils.cpp (diff) |
|
 | llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h (diff) |
 | llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp (diff) |
Commit
39662abf720fc195b549246f32719d313f05a67f
by petar.avramovic[MIPatternMatch]: Add mi_match for MachineInstr
This utility allows more efficient start of pattern match. Often MachineInstr(MI) is available and instead of using mi_match(MI.getOperand(0).getReg(), MRI, ...) followed by MRI.getVRegDef(Reg) that gives back MI we now use mi_match(MI, MRI, ...).
Differential Revision: https://reviews.llvm.org/D99735
|
 | llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h (diff) |
 | llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp (diff) |
|
 | llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h (diff) |
 | llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp (diff) |
|
 | llvm/test/Transforms/LoopFusion/pr48060.ll (diff) |
 | llvm/test/Transforms/LoopFusion/diagnostics_missed.ll (diff) |
 | llvm/test/Transforms/LoopFusion/diagnostics_analysis.ll (diff) |
Commit
4a9bc59867b64a24ff628c5a7ab2ca5e727dd9c1
by petar.avramovicAMDGPU/GlobalISel: Add integer med3 combines
Add signed and unsigned integer version of med3 combine. Source pattern is min(max(Val, K0), K1) or max(min(Val, K1), K0) where K0 and K1 are constants and K0 <= K1. Destination is med3 that corresponds to signedness of min/max in source.
Differential Revision: https://reviews.llvm.org/D90050
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankcombiner-umed3.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankcombiner-smed3.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUGISel.td (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/smed3.ll |
 | llvm/lib/Target/AMDGPU/SIInstructions.td (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPUCombine.td (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/umed3.ll |
|
 | clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp (diff) |
|
 | libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.fail.cpp (diff) |
Commit
fb7be0d912cbcba68803456fbde3fd311b3922ed
by petar.avramovicAMDGPU/GlobalISel: Remove redundant G_FCANONICALIZE
Add basic version of isCanonicalized for global-isel. Copied from sdag. Add post legalizer combine that deletes G_FCANONICALIZE when its input is already Canonicalized.
Differential Revision: https://reviews.llvm.org/D96605
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff) |
 | llvm/lib/Target/AMDGPU/AMDGPUCombine.td (diff) |
 | llvm/lib/Target/AMDGPU/SIISelLowering.h (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fcanonicalize.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll (diff) |
Commit
b845217b1dadc3e30c13720be1dfacd17ea3cbae
by protze[OpenMP][libomptarget] Separate lit tests for different offloading targets (1/2)
This patch creates a separate test directory for each offloading target to be tested. This allows to test multiple architectures in one configuration, while still see all failing tests separately. The lit test names include the target triple, so that it will be easier to spot the failing target.
This patch also allows to mark expected failing tests based on the target-triple, as the currently used triple is added to the lit "features": ``` // XFAIL: nvptx64-nvidia-cuda ```
Differential Revision: https://reviews.llvm.org/D101315
|
 | openmp/libomptarget/test/CMakeLists.txt (diff) |
 | openmp/libomptarget/test/lit.cfg (diff) |
 | openmp/libomptarget/test/lit.site.cfg.in (diff) |
|
 | mlir/include/mlir/Dialect/Linalg/Passes.h (diff) |
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp (diff) |
 | mlir/include/mlir/Dialect/Linalg/Passes.td (diff) |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff) |
 | mlir/test/Dialect/Linalg/tile-tensors.mlir (diff) |
 | mlir/lib/Dialect/Linalg/Transforms/Loops.cpp (diff) |
 | mlir/lib/Dialect/Linalg/Utils/Utils.cpp (diff) |
 | mlir/include/mlir/Dialect/Linalg/Utils/Utils.h (diff) |
Commit
4581bf31bb8333dc1372959f7d650ed940eab710
by kadircet[clangd] Dont index deeply nested symbols
This is fix for some timeouts and OOM problems faced while indexing an auto-generated file with thousands of nested lambdas.
Differential Revision: https://reviews.llvm.org/D101066
|
 | clang-tools-extra/clangd/AST.cpp (diff) |
 | clang-tools-extra/clangd/unittests/ASTTests.cpp (diff) |
 | clang-tools-extra/clangd/AST.h (diff) |
 | clang-tools-extra/clangd/index/IndexAction.cpp (diff) |
 | clang-tools-extra/clangd/unittests/IndexActionTests.cpp (diff) |
|
 | clang/lib/Driver/ToolChains/AMDGPU.h (diff) |
 | clang/tools/CMakeLists.txt (diff) |
 | clang/lib/Driver/ToolChains/AMDGPU.cpp (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_gfx906 |
 | clang/test/Driver/amdgpu-openmp-system-arch-fail.c |
 | clang/include/clang/Basic/DiagnosticDriverKinds.td (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_fail |
 | clang/include/clang/Driver/Options.td (diff) |
 | clang/test/Driver/amdgpu-openmp-system-arch.c |
 | clang/tools/amdgpu-arch/CMakeLists.txt |
 | clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp (diff) |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_gfx908_gfx908 |
 | clang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_different |
 | clang/tools/amdgpu-arch/AMDGPUArch.cpp |
Commit
efd254b63621de9ce750eddf9e8135154099d261
by dvyukovtsan: fix deadlock in pthread_atfork callbacks
We take report/thread_registry locks around fork. This means we cannot report any bugs in atfork handlers. We resolved this by enabling per-thread ignores around fork. This resolved some of the cases, but not all. The added test triggers a race report from a signal handler called from atfork callback, we reset per-thread ignores around signal handlers, so we tried to report it and deadlocked. But there are more cases: a signal handler can be called synchronously if it's sent to itself. Or any other report types would cause deadlocks as well: mutex misuse, signal handler spoiling errno, etc. Disable all reports for the duration of fork with thr->suppress_reports and don't re-enable them around signal handlers.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D101154
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp (diff) |
 | compiler-rt/test/tsan/pthread_atfork_deadlock3.c |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_mman.cpp (diff) |
Commit
f818ec9dd173bfacd0ee8b403146c26e17271a46
by zarko[AIX] Allow safe for 32bit P9 VSX extract and insert pattern matches
In https://reviews.llvm.org/D92789 PPC64 checks were added that disallowed most VSX pattern matching. We enable some safe ones for 32bit in this patch.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D97503
|
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff) |
 | llvm/test/CodeGen/PowerPC/aix-vec_extract_p9.ll |
 | llvm/test/CodeGen/PowerPC/aix-p9-insert-extract.ll |
 | llvm/test/CodeGen/PowerPC/aix-vec_extract_p9_2.ll |
 | llvm/test/CodeGen/PowerPC/aix-vec_insert_elt.ll |
 | llvm/lib/Target/PowerPC/PPCInstrVSX.td (diff) |
 | llvm/test/CodeGen/PowerPC/aix-p9-xxinsertw-xxextractuw.ll |
 | llvm/test/CodeGen/PowerPC/vec-bswap.ll (diff) |
 | llvm/test/CodeGen/PowerPC/aix-insert-extract.ll |
Commit
160e729cf0011da9eacea60cb325a2b506dc7b39
by flo[VPlan] Use recursive traversal iterator in VPSlotTracker.
This patch simplifies VPSlotTracker by using the recursive traversal iterator to traverse all blocks in a VPlan in reverse post-order when numbering VPValues in a plan.
This depends on a fix to RPOT (D100169). It also extends the traversal unit tests to check RPOT.
Reviewed By: a.elovikov
Differential Revision: https://reviews.llvm.org/D100176
|
 | llvm/lib/Transforms/Vectorize/VPlanValue.h (diff) |
 | llvm/lib/Transforms/Vectorize/VPlan.cpp (diff) |
Commit
6a92c19f3bbc47827b8844a2b527f6c6fba63afd
by anastasia.stulova[C++4OpenCL] Add diagnostics for OpenCL types in templates.
Refactored diagnostics for OpenCL types to allow their reuse for templates.
Patch by olestrohm (Ole Strohm)!
Differential Revision: https://reviews.llvm.org/D100860
|
 | clang/test/SemaOpenCL/event_t.cl (diff) |
 | clang/test/SemaOpenCL/sampler_t.cl (diff) |
 | clang/test/SemaOpenCL/clk_event_t.cl (diff) |
 | clang/test/SemaOpenCLCXX/template-opencl-types.clcpp |
 | clang/lib/Sema/SemaDecl.cpp (diff) |
|
 | llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll (diff) |
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (diff) |
 | llvm/test/Transforms/LoopUnroll/AArch64/runtime-unroll-generic.ll |
Commit
e808289fe6432c044567a9b3b6999089eb8d1e2b
by spatel[IndVars] avoid crash in LFTR when assuming an add recurrence
The test is a crasher reduced from: https://llvm.org/PR49993
linearFunctionTestReplace() assumes that we have an add recurrence, so check for that as a condition of matching a loop counter.
Differential Revision: https://reviews.llvm.org/D101291
|
 | llvm/test/Transforms/IndVarSimplify/lftr.ll (diff) |
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff) |
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff) |
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.mir (diff) |
Commit
8110fcc8fc56cb5d2fc0cbab882ddfdae2536201
by petar.avramovicAMDGPU/GlobalISel: Fix negative offset folding for buffer_load
Buffer_load does unsigned offset calculations. Don't fold operands of 32-bit add that are likely to cause unsigned add overflow (common case is when one of the operands is negative).
Differential Revision: https://reviews.llvm.org/D91336
|
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff) |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.mir (diff) |
|
 | mlir/test/Dialect/Shape/canonicalize.mlir (diff) |
 | mlir/lib/Dialect/Shape/IR/Shape.cpp (diff) |
|
 | llvm/test/Analysis/LoopAccessAnalysis/pointer-phis.ll |
 | llvm/test/Transforms/LoopVectorize/vectorize-pointer-phis.ll |
Commit
f8d7bd996f1e9a01b9d5cee39c579dd8ac71bae4
by frgossen[MLIR][Shape] Remove empty extent tensor operands
Empty extent tensor operands were only removed when they were defined as a constant. Additionally, we can remove them if they are known to be empty by their type `tensor<0xindex>`.
Differential Revision: https://reviews.llvm.org/D101351
|
 | mlir/lib/Dialect/Shape/IR/Shape.cpp (diff) |
 | mlir/include/mlir/IR/BuiltinAttributes.h (diff) |
 | mlir/test/Dialect/Shape/canonicalize.mlir (diff) |
Commit
24590d8d67d8596130917ac65bed3e9a35272924
by a.bataev[SLP]Improved isGatherShuffledEntry, NFC.
Reworked isGatherShuffledEntry function, simplified and moved common code to the lambda (it shall go away when non-power-2 patch will be landed).
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff) |
Commit
6176a8f90961ce39b0a7c97e2f8891cd1ada61a3
by frgossen[MLIR] Debug log IR after pattern applications
Like `print-ir-after-all` and `-before-all`, this allows to inspect IR for debug purposes. While the former allow to inspect only between passes, this change allows to follow the rewrites that happen within passes.
Differential Revision: https://reviews.llvm.org/D100940
|
 | mlir/lib/Rewrite/PatternApplicator.cpp (diff) |
|
 | llvm/lib/Target/X86/X86InstrCompiler.td (diff) |
|
 | llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp (diff) |
Commit
4b99f9c7db262aa55d56d3af2f228e624ff7b55f
by gabor.marton[analyzer][StdLibraryFunctionsChecker] Track dependent arguments
When we report an argument constraint violation, we should track those other arguments that participate in the evaluation of the violation. By default, we depend only on the argument that is constrained, however, there are some special cases like the buffer size constraint that might be encoded in another argument(s).
Differential Revision: https://reviews.llvm.org/D101358
|
 | clang/test/Analysis/std-c-library-functions-arg-constraints-tracking-notes.c |
 | clang/test/Analysis/std-c-library-functions-arg-constraints.c (diff) |
 | clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp (diff) |
Commit
24f836e8fd6f5c562318775d8154d4c561bae427
by protze[OpenMP][libomptarget] Separate lit tests for different offloading targets (2/2)
This patch fuses the RUN lines for most libomptarget tests. The previous patch D101315 created separate test targets for each supported offloading triple.
This patch updates the RUN lines in libomptarget tests to use a generic run line independent of the offloading target selected for the lit instance.
In cases, where no RUN line was defined for a specific offloading target, the corresponding target is declared as XFAIL. If it turns out that a test actually supports the target, the XFAIL line can be removed.
Differential Revision: https://reviews.llvm.org/D101326
|
 | openmp/libomptarget/test/offloading/target_depend_nowait.cpp (diff) |
 | openmp/libomptarget/test/mapping/present/target_data.c (diff) |
 | openmp/libomptarget/test/mapping/present/target_update_array_extension.c (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_api.cpp (diff) |
 | openmp/libomptarget/test/offloading/requires.c (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_nested_mappers.cpp (diff) |
 | openmp/libomptarget/test/mapping/present/target_data_at_exit.c (diff) |
 | openmp/libomptarget/test/env/omp_target_debug.c (diff) |
 | openmp/libomptarget/test/offloading/assert.cpp (diff) |
 | openmp/libomptarget/test/api/omp_get_num_devices_with_empty_target.c (diff) |
 | openmp/libomptarget/test/mapping/ptr_and_obj_motion.c (diff) |
 | openmp/libomptarget/test/mapping/present/target_exit_data_delete.c (diff) |
 | openmp/libomptarget/test/offloading/mandatory_but_no_devices.c (diff) |
 | openmp/libomptarget/test/lit.cfg (diff) |
 | openmp/libomptarget/test/offloading/non_contiguous_update.cpp (diff) |
 | openmp/libomptarget/test/offloading/dynamic_module.c (diff) |
 | openmp/libomptarget/test/unified_shared_memory/shared_update.c (diff) |
 | openmp/libomptarget/test/mapping/present/target_array_extension.c (diff) |
 | openmp/libomptarget/test/mapping/present/zero_length_array_section_exit.c (diff) |
 | openmp/libomptarget/test/offloading/bug47654.cpp (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_target_update.cpp (diff) |
 | openmp/libomptarget/test/mapping/present/target.c (diff) |
 | openmp/libomptarget/test/offloading/looptripcnt.c (diff) |
 | openmp/libomptarget/test/offloading/d2d_memcpy.c (diff) |
 | openmp/libomptarget/test/mapping/present/unified_shared_memory.c (diff) |
 | openmp/libomptarget/test/unified_shared_memory/api.c (diff) |
 | openmp/libomptarget/test/offloading/offloading_success.cpp (diff) |
 | openmp/libomptarget/test/unified_shared_memory/close_enter_exit.c (diff) |
 | openmp/libomptarget/test/offloading/bug49021.cpp (diff) |
 | openmp/libomptarget/test/mapping/data_absent_at_exit.c (diff) |
 | openmp/libomptarget/test/mapping/target_implicit_partial_map.c (diff) |
 | openmp/libomptarget/test/offloading/host_as_target.c (diff) |
 | openmp/libomptarget/test/mapping/target_update_array_extension.c (diff) |
 | openmp/libomptarget/test/unified_shared_memory/close_manual.c (diff) |
 | openmp/libomptarget/test/offloading/parallel_offloading_map.cpp (diff) |
 | openmp/libomptarget/test/mapping/present/target_enter_data.c (diff) |
 | openmp/libomptarget/test/mapping/pr38704.c (diff) |
 | openmp/libomptarget/test/mapping/data_member_ref.cpp (diff) |
 | openmp/libomptarget/test/mapping/present/zero_length_array_section.c (diff) |
 | openmp/libomptarget/test/unified_shared_memory/close_modifier.c (diff) |
 | openmp/libomptarget/test/mapping/lambda_mapping.cpp (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_target_data.cpp (diff) |
 | openmp/libomptarget/test/offloading/info.c (diff) |
 | openmp/libomptarget/test/offloading/offloading_success.c (diff) |
 | openmp/libomptarget/test/mapping/delete_inf_refcount.c (diff) |
 | openmp/libomptarget/test/mapping/present/target_data_array_extension.c (diff) |
 | openmp/libomptarget/test/offloading/memory_manager.cpp (diff) |
 | openmp/libomptarget/test/offloading/bug49334.cpp (diff) |
 | openmp/libomptarget/test/offloading/lone_target_exit_data.c (diff) |
 | openmp/libomptarget/test/env/base_ptr_ref_count.c (diff) |
 | openmp/libomptarget/test/api/is_initial_device.c (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_target.cpp (diff) |
 | openmp/libomptarget/test/mapping/private_mapping.c (diff) |
 | openmp/libomptarget/test/mapping/present/target_update.c (diff) |
 | openmp/libomptarget/test/mapping/present/target_exit_data_release.c (diff) |
 | openmp/libomptarget/test/api/omp_get_num_devices.c (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp (diff) |
 | openmp/libomptarget/test/mapping/declare_mapper_target_data_enter_exit.cpp (diff) |
 | openmp/libomptarget/test/mapping/alloc_fail.c (diff) |
 | openmp/libomptarget/test/offloading/dynamic_module_load.c (diff) |
 | openmp/libomptarget/test/mapping/target_data_array_extension_at_exit.c (diff) |
Commit
9b7a0a50355d5dc8ab3e9598103ef81b00077ff4
by llvm-dev[X86] Add support for reusing ZF etc. from locked XADD instructions (PR20841)
XADD has the same EFLAGS behaviour as ADD
Reapplies rG2149aa73f640 (after it was reverted at rG535df472b042) - AFAICT rG029e41ec9800 should ensure we correctly tag the LXADD* ops as load/stores - I haven't been able to repro the sanitizer buildbot fails locally so this is a speculative commit.
|
 | llvm/test/CodeGen/X86/atomic-flags.ll (diff) |
 | llvm/lib/Target/X86/X86InstrInfo.cpp (diff) |
 | llvm/test/CodeGen/X86/atomic-eflags-reuse.ll (diff) |
|
 | clang/include/clang/Driver/Options.td (diff) |
Commit
53e1cb88f28052fa849f28ff164d61e06a3dcfd2
by davg[clangd] run clang-format on FindTargetTests.cpp's FindExplicitReferencesTest
Addressing comments in https://reviews.llvm.org/D98984
Differential Revision: https://reviews.llvm.org/D101328
|
 | clang-tools-extra/clangd/unittests/FindTargetTests.cpp (diff) |
Commit
53b3c1c5e77bbb2560c8bbb20c4b7c4c61166ffb
by martin[libcxx] [test] Add a separate 'windows-dll' feature to check for
This allows distinguishing failures in tests that only fail when libcxx is linked as a DLL, allowing narrowing down XFAILs (avoiding XPASS errors if not built as a DLL).
If both enable_shared and enable_static are set, the tests link and use the shared version of the lib.
Differential Revision: https://reviews.llvm.org/D100221
|
 | libcxx/utils/libcxx/test/features.py (diff) |
Commit
4ebb01cbcb3a9566fa0684eac5bdb232d9dc91fe
by martin[libcxx] [test] Convert a couple of LIBCXX-WINDOWS-FIXME into XFAIL: windows-dll for known bugs
These are caused due to inconsistencies regarding always inline in combination with dllimport. A bug report reference is added next to each XFAIL line.
Differential Revision: https://reviews.llvm.org/D100789
|
 | libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/hash.pass.cpp (diff) |
 | libcxx/test/std/localization/locale.categories/category.collate/locale.collate/locale.collate.members/hash.pass.cpp (diff) |
 | libcxx/test/std/localization/locale.categories/category.collate/locale.collate/locale.collate.members/compare.pass.cpp (diff) |
 | libcxx/test/std/localization/locales/locale/locale.operators/compare.pass.cpp (diff) |
Commit
c20e4fbfa6d154616c2dd41e828a02facd000d71
by davg[clangd] Improve handling of Objective-C protocols in types
Improve support for Objective-C protocols for types/type locs
Differential Revision: https://reviews.llvm.org/D98984
|
 | clang-tools-extra/clangd/FindTarget.cpp (diff) |
 | clang-tools-extra/clangd/unittests/FindTargetTests.cpp (diff) |
 | clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp (diff) |
Commit
4afeda9157cffd2daa83f8075d73f1e11ea34c81
by david.sherwood[LoopVectorize] Simplify scalar cost calculation in getInstructionCost
This patch simplifies the calculation of certain costs in getInstructionCost when isScalarAfterVectorization() returns a true value. There are a few places where we multiply a cost by a number N, i.e.
unsigned N = isScalarAfterVectorization(I, VF) ? VF.getKnownMinValue() : 1; return N * TTI.getArithmeticInstrCost(...
After some investigation it seems that there are only these cases that occur in practice:
1. VF is a scalar, in which case N = 1. 2. VF is a vector. We can only get here if: a) the instruction is a GEP/bitcast/PHI with scalar uses, or b) this is an update to an induction variable that remains scalar.
I have changed the code so that N is assumed to always be 1. For GEPs the cost is always 0, since this is calculated later on as part of the load/store cost. PHI nodes are costed separately and were never previously multiplied by VF. For all other cases I have added an assert that none of the users needs scalarising, which didn't fire in any unit tests.
Only one test required fixing and I believe the original cost for the scalar add instruction to have been wrong, since only one copy remains after vectorisation.
I have also added a new test for the case when a pointer PHI feeds directly into a store that will be scalarised as we were previously never testing it.
Differential Revision: https://reviews.llvm.org/D99718
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff) |
 | llvm/test/Transforms/LoopVectorize/AArch64/no_vector_instructions.ll (diff) |
 | llvm/test/Transforms/LoopVectorize/AArch64/predication_costs.ll (diff) |
|
 | llvm/lib/Target/X86/X86InstrInfo.cpp (diff) |
 | llvm/test/CodeGen/X86/atomic-eflags-reuse.ll (diff) |
 | llvm/test/CodeGen/X86/atomic-flags.ll (diff) |
|
 | flang/unittests/Runtime/CMakeLists.txt (diff) |
 | flang/unittests/RuntimeGTest/CMakeLists.txt (diff) |
 | flang/unittests/RuntimeGTest/Format.cpp |
 | flang/unittests/Runtime/format.cpp |
|
 | llvm/test/Transforms/LoopVectorize/AArch64/predication_costs.ll (diff) |
 | llvm/test/Transforms/LoopVectorize/AArch64/no_vector_instructions.ll (diff) |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff) |
|
 | llvm/docs/Phabricator_premerge_results.png |
 | llvm/docs/Phabricator.rst (diff) |
 | llvm/docs/Phabricator_premerge_unit_tests.png |
Commit
21da04f701735ecd42f1d43b3f58b708ad382905
by thakis[llvm, clang] Remove stdlib includes from .h files without `std::`
Found files not containing `std::` with:
INCL="algorithm|array|list|map|memory|queue|set|string|utility|vector|unordered_map|unordered_set" git ls-files llvm/include/llvm | grep '\.h$' | xargs grep -L std:: | \ xargs grep -El "#include <($INCL)>$" > to_process.txt git ls-files clang/include/clang | grep '\.h$' | xargs grep -L std:: | \ xargs grep -El "#include <($INCL)>$" >> to_process.txt
Then removed these headers from those files with
INCL_ESCAPED="$(echo $INCL|sed 's/|/\\|/g')" cat to_process.txt | xargs sed -i "/^#include <\($INCL_ESCAPED\)>$/d" cat to_process.txt | xargs sed -i '/^$/N;/^\n$/D'
No behavior change.
Differential Revision: https://reviews.llvm.org/D101378
|
 | clang/include/clang/Driver/Options.h (diff) |
 | llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h (diff) |
 | llvm/include/llvm/CodeGen/MachineInstrBuilder.h (diff) |
 | llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h (diff) |
 | llvm/include/llvm/DebugInfo/GSYM/FileEntry.h (diff) |
 | llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h (diff) |
 | llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h (diff) |
 | clang/include/clang/Index/CommentToXML.h (diff) |
 | llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h (diff) |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicType.h (diff) |
 | llvm/include/llvm/CodeGen/TileShapeInfo.h (diff) |
 | llvm/include/llvm/DebugInfo/GSYM/StringTable.h (diff) |
 | clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h (diff) |
 | llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h (diff) |
 | clang/include/clang/Tooling/Transformer/Parsing.h (diff) |
 | llvm/include/llvm/Target/CGPassBuilderOption.h (diff) |
 | clang/include/clang/AST/DeclContextInternals.h (diff) |
Commit
241c2da4064c850d58896e0a870b0c3485dfd82d
by wei.huang[AIX][Power10] Restrict prefixed instructions from crossing the 64byte boundary
This patch adds the support to restrict prefixed instruction from crossing the 64 byte boundary: - Add the infrastructure to register a custom XCOFF streamer - Add a custom XCOFF streamer for PowerPC to allow us to intercept instructions as they are being emitted and align all 8 byte instructions to a 64 byte boundary if required by adding a 4 byte nop.
Reviewed By: stefanp
Differential Revision: https://reviews.llvm.org/D101107
|
 | llvm/include/llvm/Support/TargetRegistry.h (diff) |
 | llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt (diff) |
 | llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.h |
 | llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp |
 | llvm/test/CodeGen/PowerPC/aix-prefixed-instruction-boundary.mir |
 | llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp (diff) |
|
 | llvm/utils/gn/secondary/llvm/lib/Target/PowerPC/MCTargetDesc/BUILD.gn (diff) |
Commit
ea8416bf4df4e2823d85d50d8ddd69dd8ed54720
by ndesaulniers[CodeGenOptions] make StackProtectorGuardOffset signed
GCC supports negative values for -mstack-protector-guard-offset=, this should be a signed value. Pre-req to D100919.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101325
|
 | clang/include/clang/Driver/Options.td (diff) |
 | llvm/test/CodeGen/X86/stack-protector-3.ll (diff) |
 | clang/lib/Driver/ToolChains/Clang.cpp (diff) |
 | llvm/include/llvm/CodeGen/CommandFlags.h (diff) |
 | llvm/lib/Target/X86/X86ISelLowering.cpp (diff) |
 | llvm/include/llvm/Target/TargetOptions.h (diff) |
 | clang/include/clang/Basic/CodeGenOptions.def (diff) |
 | llvm/lib/CodeGen/CommandFlags.cpp (diff) |
Commit
887bdff8bae74ae0cedadbbe35f39141da3642c9
by phosek[Driver] Fix tests failing in per-target multiarch layout
These failures were revealed by b4537c3f51bc6c011ddd9c10b80043ac4ce16a01.
Differential Revision: https://reviews.llvm.org/D101348
|
 | clang/test/Driver/cross-linux.c (diff) |
 | clang/test/Driver/env.c (diff) |
 | clang/test/Driver/sanitizer-ld.c (diff) |
 | clang/test/Driver/compiler-rt-unwind.c (diff) |
Commit
ca7824c2a8dbf3e37734e10e77003acd34d0868a
by mgorny[lldb] [gdb-remote] Report QPassSignals and qXfer via extensions API
Remove hardcoded platform list for QPassSignals, qXfer:auxv:read and qXfer:libraries-svr4:read and instead query the process plugin via the GetSupportedExtensions() API.
Differential Revision: https://reviews.llvm.org/D101241
|
 | lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (diff) |
 | lldb/include/lldb/Host/common/NativeProcessProtocol.h (diff) |
 | lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp (diff) |
 | lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp (diff) |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp (diff) |
 | lldb/test/API/tools/lldb-server/TestLldbGdbServer.py (diff) |
 | lldb/test/API/tools/lldb-server/signal-filtering/TestGdbRemote_QPassSignals.py (diff) |
Commit
25bf137b1ea33ff9c76834f44b10f4e1ae677d5e
by Adrian PrantlAlso display the underlying error message when displaying a fixit
When the user running LLDB with default settings sees the fixit notification it means that the auto-applied fixit didn't work. This patch shows the underlying error message instead of just the fixit to make it easier to understand what the error in the expression was.
Differential Revision: https://reviews.llvm.org/D101333
|
 | lldb/test/API/commands/expression/fixits/TestFixIts.py (diff) |
 | lldb/source/Expression/UserExpression.cpp (diff) |
|
 | compiler-rt/test/lsan/TestCases/use_globals_unused.cpp (diff) |
Commit
e05fdab1250c0956ef9fc87fe764c9f0c144304d
by craig.topper[TableGen] Add predicate checks to isel patterns for default HwMode.
As discussed in D100691 and based on D100889.
I removed the ModeChecks cache which provides little value. Reduced from three loops to two. Used ArrayRef to pass the Predicate to AppendPattern to avoid needing to construct a vector for single mode. Used SmallVector to avoid heap allocation constructing DefaultCheck for the in tree targets the use it.
Reviewed By: kparzysz
Differential Revision: https://reviews.llvm.org/D101240
|
 | llvm/utils/TableGen/CodeGenDAGPatterns.cpp (diff) |
Commit
21db4cc2ea1518900b4a4c8235c4e1131fa0e613
by anirudh_prasad[SystemZ][z/OS] Remove register prefixes when printing out the register.
- This patch is the first part in enforcing prefix-less registers for the HLASM dialect in z/OS - This patch removes the "%[r|f|v]" prefix while printing registers - To achieve this, the `AssemblerDialect` field of MAI was used - There is also a bit of refactoring done to ensure code repetition is reduced. - Currently the LLVM assembler for SystemZ/z/OS accepts both prefixed registers and prefix-less registers. A subsequent follow-up patch will restrict the SystemZAsmParser to only accept prefix-less registers.
Crediting @kianm as an author as well.
Reviewed By: uweigand, abhina.sreeskantharajan
Differential Revision: https://reviews.llvm.org/D101308
|
 | llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp (diff) |
 | llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h (diff) |
 | llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp (diff) |
Commit
1ebbf84ba45b1af8b6469f79a6c6798d185bc1d2
by lebedev.ri[NFC][IR] PHINode: assert we aren't trying to create token-typed PHI
Verifier will complain, but by then it may be too late, because we might have never reached it because we already crashed with some bogus bug. It is best to catch this the moment it happens.
|
 | llvm/include/llvm/IR/Instructions.h (diff) |
|
 | llvm/include/llvm/IR/Instructions.h (diff) |
|
 | llvm/docs/Security.rst (diff) |
Commit
1d505016efa29ce1e9b11baf8ab2d7950e9bdcc7
by jrtc27[ELF][MIPS] Don't emit dynamic relocations for PIE non-preemptible TLS
Whilst not wrong (unless using static PIE where the relocations are likely not implemented by the runtime), this is inefficient, as the TLS module indices and offsets are independent of the executable's load address.
Reviewed By: MaskRay, atanasyan
Differential Revision: https://reviews.llvm.org/D101382
|
 | lld/test/ELF/mips-tls-64.s (diff) |
 | lld/test/ELF/mips-tls.s (diff) |
 | lld/ELF/SyntheticSections.cpp (diff) |
Commit
7fefd032cb260f96191089c9d817c61276d8bf66
by jrtc27[ELF][MIPS] Emit dynamic relocations for PIC non-preemptible static TLS
This is the same problem as 127176e59eb9, but for static TLS rather than dynamic TLS. Although we know the symbol will be the one in our own TLS segment, and thus the offset of it within that, we don't know where in the static TLS block our data will be allocated and thus we must emit a dynamic relocation for this case.
Reviewed By: MaskRay, atanasyan
Differential Revision: https://reviews.llvm.org/D101381
|
 | lld/test/ELF/mips-tls.s (diff) |
 | lld/ELF/SyntheticSections.cpp (diff) |
 | lld/test/ELF/mips-tls-64.s (diff) |
Commit
be935f28888cbfe705699fa3beb8b849aa0f9f90
by lebedev.ri[NFC][Verifier] Fixup token PHINode test cases
It would still pass in non-assert build, but with asserts it would now crash.
I haven't checked, but hopefully `not`'s `--crash` argument should be enough to support both paths.
|
 | llvm/test/Verifier/token1.ll (diff) |
Commit
f19e8f424f1f76b1868f68631bfbd0d3b1648bda
by a.bataev[COST][X86]Improve cost model for reverse shuffle v32i16/v64i8 in AVX512F.
Improved cost model for reverse shuffle on AVX512F for types v32i16/v64i8.
Differential Revision: https://reviews.llvm.org/D100974
|
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp (diff) |
 | llvm/test/Analysis/CostModel/X86/shuffle-reverse.ll (diff) |
|
 | llvm/test/CodeGen/Thumb2/mve-vidup.ll |
Commit
8de7d8b2c289acfb866248b798bea9a755b198d7
by david.green[ARM] Recognize VIDUP from BUILDVECTORs of additions
This adds a pattern to recognize VIDUP from BUILD_VECTOR of incrementing adds. This can come up from either geps or adds, and came up recently in D100550. We are just looking for a BUILD_VECTOR where each lane is an add of the first lane with N*i, where i is the lane and N is one of 1, 2, 4, or 8, supported by the VIDUP instruction.
Differential Revision: https://reviews.llvm.org/D101263
|
 | llvm/lib/Target/ARM/ARMISelLowering.h (diff) |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp (diff) |
 | llvm/test/CodeGen/Thumb2/mve-tailpred-loopinvariant.ll (diff) |
 | llvm/test/CodeGen/Thumb2/mve-vidup.ll (diff) |
 | llvm/lib/Target/ARM/ARMInstrMVE.td (diff) |
 | llvm/lib/Target/ARM/ARMInstrInfo.td (diff) |
|
 | llvm/test/Transforms/SimplifyCFG/multiple-phis.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/suppress-zero-branch-weights.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/HoistCode.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/PowerPC/cttz-ctlz-spec.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/volatile-phioper.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/guards.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/sink-common-code.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/noreturn-call.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/invoke.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/X86/disable-lookup-table.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/inline-asm-sink.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/implied-cond.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/div-rem-pairs.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/basictest.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/preserve-branchweights-switch-create.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/merge-default.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll (diff) |
|
 | compiler-rt/lib/msan/tests/msan_test.cpp (diff) |
Commit
12011b5217929ef8a56c2099c6f3233934ea4fbc
by jay.foad[AMDGPU] GCNHazardRecognizer: ignore all meta instructions
This is hopefully NFC, but should be more robust in ignoring all instructions that should be ignored, instead of just some of them.
Differential Revision: https://reviews.llvm.org/D101372
|
 | llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp (diff) |
Commit
0a82d885a4fc198395369e9ae75dfe175140df94
by andrew.kaylor[Dependence Analysis] Fix ExactSIV producing wrong analysis
Patch by Artem Radzikhovskyy!
Symptom: ExactSIV test produced incorrect analysis of dependencies see LIT tests Bug: At the end of the algorithm when determining dependence direction original author forgot to divide intermediate results by gcd and round result toward zero
Although this bug can be fixed with significantly fewer changes I opted to write the code in such a way that reflects the original algorithm that Banerjee proposed, for easier reference in the future. This surprisingly results in shorter code, and fewer quotient and max/min calculations.
Changes Summary:
- fixed findGCD to return valid x and y so that they match the function description where: ax - by = gcd(a,b) - Fixed ExactSIV test, to produce proper results - Documented the extension of Banerjee's algorithm that the original code author introduced. Banerjee's original algorithm only tested whether Dst depends on Src, the extension also allows us to test whether Src depends on Dst, in one pass. - ExactRDIV test worked fine. Since it uses findGCD(), it needed to be updated.Since ExactRDIV test has very few changes from the core algorithm of ExactSIV I modified the test to have consistent format as ExactSIV. - Updated the LIT tests to be testing for correct values.
Differential Revision: https://reviews.llvm.org/D100331
|
 | llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll (diff) |
 | llvm/test/Analysis/DependenceAnalysis/Coupled.ll (diff) |
 | llvm/lib/Analysis/DependenceAnalysis.cpp (diff) |
|
 | llvm/test/Transforms/InstCombine/minmax-intrinsics.ll (diff) |
Commit
025bb52903792de3dd29667d42c97fdf13a00f2b
by spatel[InstCombine] fold clamp to 2 values from min/max intrinsics
The "select" versions of these folds is also missing and can cause infinite loops as shown in: https://llvm.org/PR48900 ...but it seems easier to match these as max/min as a first fix.
https://alive2.llvm.org/ce/z/wv-_dT
|
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff) |
 | llvm/test/Transforms/InstCombine/minmax-intrinsics.ll (diff) |
Commit
5275d772da0555f95ffa6d8f938728be13caa862
by eugenisRevert "tsan: fix deadlock in pthread_atfork callbacks"
Tests fail on debug builders. See the forward fix in https://reviews.llvm.org/D101385.
This reverts commit efd254b63621de9ce750eddf9e8135154099d261.
|
 | compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_mman.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h (diff) |
 | compiler-rt/test/tsan/pthread_atfork_deadlock3.c |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp (diff) |
Commit
9c552d27ee03ad485c2d36827e73bea75faee5e1
by ihurd: Fix i386 research path
f26341840253 ("[Driver] Gnu.cpp: remove obsoleted i386 triple detection from end-of-life distribution versions") dropped the i686-gnu gcc path, but GNU/Hurd's gcc is actually using it, and not i386.
This fixes the gcc path and update the tests to reflect it.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101317
|
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/i386-gnu/bin/ld |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/i686-gnu/bin/as |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbegin.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i386-gnu/4.6.0/crtbeginS.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbeginT.o |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/i686-gnu/bin/ld |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i386-gnu/4.6.0/crtbegin.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbeginS.o |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/lib/gcc/i386-gnu/4.6.0/crtbegin.o |
 | clang/test/Driver/hurd.c (diff) |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/i386-gnu/lib/.keep |
 | clang/lib/Driver/ToolChains/Gnu.cpp (diff) |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbegin.o |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/i686-gnu/lib/.keep |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/i386-gnu/bin/as |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i386-gnu/4.6.0/crtbeginT.o |
Commit
8b550af7a9cf363d382b7042f12ab24aa13711fc
by psteinfeld[flang] Handle structure constructors with forward references to PDTs
We were not correctly handling structure constructors that had forward references to parameterized derived types. I harvested the code that checks for forward references that was used during analysis of function call expressions and called it from there and also called it during the analysis of structure constructors.
I also added a test that will produce an internal error without this change.
Differential Revision: https://reviews.llvm.org/D101330
|
 | flang/lib/Semantics/expression.cpp (diff) |
 | flang/test/Semantics/bad-forward-type.f90 (diff) |
 | flang/include/flang/Semantics/expression.h (diff) |
Commit
932e8c3241541c0216968a0f966c495b77bf4461
by ihurd: Detect libstdc++ include paths on Debian Hurd i386
This is a follow-up of e92d2b80c6c9 ("[Driver] Detect libstdc++ include paths for native gcc (-m32 and -m64) on Debian i386") for the Debian Hurd case, which has the same multiarch name reduction from i686 to i386. i386-linux-gnu is actually Linux-only, so this moves the code of that commit to Linux.cpp, and adds the same to Hurd.cpp
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101331
|
 | clang/test/Driver/hurd.c |
 | clang/lib/Driver/ToolChains/Hurd.cpp (diff) |
 | clang/lib/Driver/ToolChains/Hurd.h (diff) |
 | clang/test/Driver/hurd.cpp |
 | clang/lib/Driver/ToolChains/Gnu.cpp (diff) |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/include/i386-gnu/c++/4.6.0/.keep |
 | clang/lib/Driver/ToolChains/Gnu.h (diff) |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/include/c++/4.6.0/.keep |
 | clang/lib/Driver/ToolChains/Linux.cpp (diff) |
Commit
9433bacc73e92bebe7cb32358f21a4b866800cf3
by aeubanks[test] Fix some func-attrs tests under the legacy PM
The new PM doesn't visit declarations in CGSCC passes. These tests aren't testing that detail, so just run them against the new PM.
|
 | llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadOnly.ll (diff) |
Commit
b13e913b31a0703ebc15d701ff05fd82788dc02a
by ihurd: Clean up test
- Unsupported Windows to drop backslashes code - Upgrade to current gcc 10 version
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101347
|
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/include/c++/4.6.0/.keep |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/10/crtbeginS.o |
 | clang/test/Driver/hurd.cpp (diff) |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbeginT.o |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/lib/gcc/i686-gnu/10/crtbegin.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbeginS.o |
 | clang/test/Driver/Inputs/basic_cross_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbegin.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/include/i386-gnu/c++/10/.keep |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/4.6.0/crtbegin.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/10/crtbeginT.o |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/include/c++/10/.keep |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/include/i386-gnu/c++/4.6.0/.keep |
 | clang/test/Driver/Inputs/basic_hurd_tree/usr/lib/gcc/i686-gnu/10/crtbegin.o |
|
 | lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py (diff) |
|
 | clang/lib/Driver/ToolChains/Gnu.cpp (diff) |
|
 | llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll (diff) |
Commit
e37c8fd364a96d9d9f56a1e06e178e9e376beda3
by iHurd: Clean up Debian multiarch /usr/include/<triplet>
This is a follow-up of 35dd6470de84 for the Hurd case, to avoid the duplication of the i386-gnu path, already provided by Hurd::getMultiarchTriple.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D101324
|
 | clang/lib/Driver/ToolChains/Hurd.cpp (diff) |
Commit
e1021dd1fdfebff77cfb205892ada6b6a900865f
by dvyukovtsan: refactor fork handling
Commit efd254b6362 ("tsan: fix deadlock in pthread_atfork callbacks") fixed another deadlock related to atfork handling. But builders with DCHECKs enabled reported failures of pthread_atfork_deadlock2.c and pthread_atfork_deadlock3.c tests related to the fact that we hold runtime locks on interceptor exit: https://lab.llvm.org/buildbot/#/builders/70/builds/6727 This issue is somewhat inherent to the current approach, we indeed execute user code (atfork callbacks) with runtime lock held.
Refactor fork handling to not run user code (atfork callbacks) with runtime locks held. This change does this by installing own atfork callbacks during runtime initialization. Atfork callbacks run in LIFO order, so the expectation is that our callbacks run last, right before the actual fork. This way we lock runtime mutexes around fork, but not around user callbacks.
Extend tests to also install after fork callbacks just to cover more scenarios. Some tests also started reporting real races that we previously suppressed.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D101385
|
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp (diff) |
 | compiler-rt/test/tsan/pthread_atfork_deadlock3.c |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_mman.cpp (diff) |
 | compiler-rt/test/tsan/pthread_atfork_deadlock.c (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp (diff) |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp (diff) |
 | compiler-rt/test/tsan/pthread_atfork_deadlock2.c (diff) |
Commit
f69853ac40ba1b8cd119fc49091cb7216da81b38
by dvyukovtsan: fix build with COMPILER_RT_TSAN_DEBUG_OUTPUT
COMPILER_RT_TSAN_DEBUG_OUTPUT enables TSAN_COLLECT_STATS, which changes layout of runtime structs (some structs contain stats when the option is enabled). It's not OK to build runtime with the define, but tests without it. The error is detected by build_consistency_stats/nostats. Fix this by defining TSAN_COLLECT_STATS for tests to match the runtime.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D101386
|
 | compiler-rt/lib/tsan/tests/CMakeLists.txt (diff) |
|
 | llvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll (diff) |
Commit
e45168c4fa7debe61ec0fdb6ddae347e18477d37
by nikita.ppv[SCEV] Handle uge/ugt predicates in applyLoopGuards()
These can be handled the same way as ule/ult, just using umax instead of umin. This is useful in cases where the umax prevents the upper bound from overflowing.
Differential Revision: https://reviews.llvm.org/D101196
|
 | llvm/lib/Analysis/ScalarEvolution.cpp (diff) |
 | llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll (diff) |
|
 | llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp (diff) |
|
 | llvm/test/Transforms/DeadStoreElimination/noop-stores.ll (diff) |
Commit
3244a8b5366dcd7a840963a6a2ae2c7ffe50de2c
by llvm-project[OpenMP][CMake] Pass --cuda-path to regression tests.
The OpenMP runtime can be compiled using a CUDA installed at non-default location with the -DCUDA_TOOLKIT_ROOT_DIR setting. However, check-openmp will fail afterwards because Clang needs to know where to find the CUDA headers.
Fix by passing -cuda-path to Clang using the value of CUDA_TOOLKIT_ROOT_DIR which has been determined by CMake. Also set LD_LIBRARY_PATH such that it can find the cuda runtime when executing. This will ensure that the regression test do not depend on the current environment, but use the environment it was configured for.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D101266
|
 | openmp/libomptarget/deviceRTLs/nvptx/test/lit.site.cfg.in (diff) |
 | openmp/libomptarget/test/CMakeLists.txt (diff) |
 | openmp/libomptarget/test/lit.cfg (diff) |
 | openmp/libomptarget/deviceRTLs/nvptx/test/lit.cfg (diff) |
 | openmp/libomptarget/test/lit.site.cfg.in (diff) |
Commit
cbce28f07e410cf46845a86621f93c8cd38eee6a
by aeubanks[ConstFold] Use const-folded operands in more places
Previously we were const folding operands but not passing them.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D101394
|
 | llvm/lib/Analysis/ConstantFolding.cpp (diff) |
Commit
82bcd985862892773fc9685aa6abcbb298267aa0
by riddleriver[mlir] Fix bug in ForwardDataFlowAnalysis solver
Explicitly check for uninitialized to prevent crashes in edge cases where the derived analysis creates a lattice element for a value that hasn't been visited yet.
|
 | mlir/lib/Analysis/DataFlowAnalysis.cpp (diff) |
|
 | llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll (diff) |
 | llvm/test/Transforms/SimplifyCFG/preserve-store-alignment.ll (diff) |
|
 | llvm/test/Transforms/SimplifyCFG/tail-merge-assert.ll |
 | llvm/test/Transforms/SimplifyCFG/tail-merge-noreturn.ll |
Commit
ce09dd54e6eca4903bfb1dcb230ba002159f969c
by craig.topper[RISCV] Select 5 bit immediate for VSETIVLI during isel rather than peepholing in the custom inserter.
This adds a special operand type that is allowed to be either an immediate or register. By giving it a unique operand type the machine verifier will ignore it.
This perturbs a lot of tests but mostly it is just slightly different instruction orders. Something bad did happen to some min/max reduction tests. We're spilling vector registers when we weren't before.
Reviewed By: khchen
Differential Revision: https://reviews.llvm.org/D101246
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-i2fp.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-shuffles.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-splat.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv.ll (diff) |
 | llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-splat.ll (diff) |
 | llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/frameindex-addr.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-splat.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extload-truncstore.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv64.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitreverse.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-conv.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp2i.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll (diff) |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll (diff) |
Commit
3067520bf463d93b17c4a92508e28df6b9bb90a9
by craig.topper[SelectionDAG] Use a VTSDNode to store the saturation width for FP_TO_SINT_SAT/FP_TO_UINT_SAT
Previously we used an i32 constant to store the saturation width, but i32 isn't legal on RISCV64. This wasn't a big deal to fix, but it is extra work for the type legalizer.
This patch uses a VTSDNode to store the type similar to SEXT_INREG. This makes it opaque to the type legalizer.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D101262
|
 | llvm/include/llvm/Target/TargetSelectionDAG.td (diff) |
 | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (diff) |
 | llvm/include/llvm/CodeGen/ISDOpcodes.h (diff) |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h (diff) |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td (diff) |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff) |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td (diff) |
 | llvm/lib/Target/X86/X86ISelLowering.cpp (diff) |
|
 | lld/MachO/UnwindInfoSection.cpp (diff) |
Commit
700402b00eccea338206604ac5ffbde7c9493329
by jezng[lld-macho] Don't put an antivirus test file in reproduce.s
It appears that some antivirii do not recognize that "this is a test": https://reviews.llvm.org/D101218#2720676
Reviewed By: #lld-macho, smeenai
Differential Revision: https://reviews.llvm.org/D101402
|
 | lld/test/MachO/reproduce.s (diff) |
|
 | llvm/test/Transforms/OpenMP/values_in_offload_arrays.ll (diff) |
 | llvm/test/Transforms/OpenMP/hide_mem_transfer_latency.ll (diff) |
Commit
4dfddf715b94857998601aa79c25e4f327d44dfa
by alexshap[llvm-objcopy][MachO] Add support for LC_THREAD/LC_UNIXTHREAD
Add support for LC_THREAD/LC_UNIXTHREAD (these load commands can be copied over without any modifications).
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D101384
|
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp (diff) |
 | llvm/test/tools/llvm-objcopy/MachO/lc-thread.test |
Commit
a921d2d2fb46b898794091e7410426c518a4f0cc
by phosek[Driver] Add -print-multiarch
This is useful in runtimes build for example which currently try to guess the correct triple where to place libraries in the multiarch layout. Using this flag, the build system can get the corre |