Commit
352cba2441c6c4e00f067c9c68358cc0a6a5fffb
by krasimir[libc] add back math.h #include utils/FPUtil/ManipulationFunctions.h
This partially reverts cee1e7d14f4628d6174b33640d502bff3b54ae45: [libc][NFC][Obvious] Remove few unnecessary #include directives in tests.
That commit causes a test failure in our configuration: [ RUN ] ILogbTest.SpecialNumbers_ilogb third_party/llvm/llvm-project/libc/test/src/math/ILogbTest.h:28: FAILURE Expected: FP_ILOGBNAN Which is: 2147483647 To be equal to: func(__llvm_libc::fputil::FPBits<T>::buildNaN(1)) Which is: -2147483648
|
 | libc/utils/FPUtil/ManipulationFunctions.h |
Commit
cdb692ee0c6745ea008ee6cc00fe1e65021516bb
by llvm-dev[X86] Add X86ISD::SUBV_BROADCAST_LOAD and begin removing X86ISD::SUBV_BROADCAST (PR38969)
Subvector broadcasts are only load instructions, yet X86ISD::SUBV_BROADCAST treats them more generally, requiring a lot of fallback tablegen patterns.
This initial patch replaces constant vector lowering inside lowerBuildVectorAsBroadcast with direct X86ISD::SUBV_BROADCAST_LOAD loads which helps us merge a number of equivalent loads/broadcasts.
As well as general plumbing/analysis additions for SUBV_BROADCAST_LOAD, I needed to wrap SelectionDAG::makeEquivalentMemoryOrdering so it can handle result chains from non generic LoadSDNode nodes.
Later patches will continue to replace X86ISD::SUBV_BROADCAST usage.
Differential Revision: https://reviews.llvm.org/D92645
|
 | llvm/include/llvm/CodeGen/SelectionDAG.h |
 | llvm/lib/Target/X86/X86InstrAVX512.td |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/lib/Target/X86/X86ISelLowering.h |
 | llvm/lib/Target/X86/X86InstrSSE.td |
 | llvm/test/CodeGen/X86/subvector-broadcast.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
 | llvm/test/CodeGen/X86/broadcast-elm-cross-splat-vec.ll |
 | llvm/lib/Target/X86/X86InstrFragmentsSIMD.td |
Commit
92310454bf0f1f9686f38afd11756c7d046495c9
by nunoplopesMake LLVM build in C++20 mode
Part of the <=> changes in C++20 make certain patterns of writing equality operators ambiguous with themselves (sorry!). This patch goes through and adjusts all the comparison operators such that they should work in both C++17 and C++20 modes. It also makes two other small C++20-specific changes (adding a constructor to a type that cases to be an aggregate, and adding casts from u8 literals which no longer have type const char*).
There were four categories of errors that this review fixes. Here are canonical examples of them, ordered from most to least common:
// 1) Missing const namespace missing_const { struct A { #ifndef FIXED bool operator==(A const&); #else bool operator==(A const&) const; #endif };
bool a = A{} == A{}; // error }
// 2) Type mismatch on CRTP namespace crtp_mismatch { template <typename Derived> struct Base { #ifndef FIXED bool operator==(Derived const&) const; #else // in one case changed to taking Base const& friend bool operator==(Derived const&, Derived const&); #endif };
struct D : Base<D> { };
bool b = D{} == D{}; // error }
// 3) iterator/const_iterator with only mixed comparison namespace iter_const_iter { template <bool Const> struct iterator { using const_iterator = iterator<true>;
iterator();
template <bool B, std::enable_if_t<(Const && !B), int> = 0> iterator(iterator<B> const&);
#ifndef FIXED bool operator==(const_iterator const&) const; #else friend bool operator==(iterator const&, iterator const&); #endif };
bool c = iterator<false>{} == iterator<false>{} // error || iterator<false>{} == iterator<true>{} || iterator<true>{} == iterator<false>{} || iterator<true>{} == iterator<true>{}; }
// 4) Same-type comparison but only have mixed-type operator namespace ambiguous_choice { enum Color { Red };
struct C { C(); C(Color); operator Color() const; bool operator==(Color) const; friend bool operator==(C, C); };
bool c = C{} == C{}; // error bool d = C{} == Red; }
Differential revision: https://reviews.llvm.org/D78938
|
 | llvm/tools/llvm-objdump/llvm-objdump.cpp |
 | llvm/include/llvm/ADT/StringMap.h |
 | llvm/include/llvm/CodeGen/DIE.h |
 | llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h |
 | llvm/include/llvm/Support/BinaryStreamRef.h |
 | llvm/lib/IR/Attributes.cpp |
 | llvm/include/llvm/ADT/AllocatorList.h |
 | llvm/include/llvm/ADT/DenseSet.h |
 | llvm/lib/Transforms/Scalar/GVNHoist.cpp |
 | llvm/include/llvm/IR/BasicBlock.h |
 | llvm/unittests/ADT/STLExtrasTest.cpp |
 | llvm/include/llvm/ADT/DirectedGraph.h |
 | llvm/include/llvm/ADT/STLExtras.h |
 | clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp |
 | clang/include/clang/AST/StmtIterator.h |
 | llvm/include/llvm/ADT/DenseMap.h |
 | llvm/lib/CodeGen/PeepholeOptimizer.cpp |
 | llvm/include/llvm/Object/StackMapParser.h |
 | llvm/include/llvm/ADT/iterator.h |
 | llvm/include/llvm/Support/SuffixTree.h |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h |
 | llvm/include/llvm/ProfileData/InstrProfReader.h |
 | llvm/include/llvm/CodeGen/LiveInterval.h |
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
 | clang/lib/Parse/ParseOpenMP.cpp |
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h |
 | llvm/include/llvm/IR/Attributes.h |
Commit
b8338983e6f6ec6ebd48a7fc640b5d859e653b27
by Raphael Isemann[lldb] Add std::array to the supported template list of the CxxModuleHandler
Identical to the other patches that add STL containers to the supported templated list.
|
 | lldb/test/API/commands/expression/import-std-module/array/main.cpp |
 | lldb/test/API/commands/expression/import-std-module/array/Makefile |
 | lldb/test/API/commands/expression/import-std-module/array/TestArrayFromStdModule.py |
 | lldb/source/Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp |
Commit
e71a4cc20789f66470d69cbe32626761da642130
by krasimirfix a -Wunused-variable warning in release build
|
 | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp |
Commit
931e66bd899cbc10822fd80e7447eb3df0db1176
by llvm-dev[X86] Remove extract_subvector(subv_broadcast_load()) fold.
This was needed in an earlier version of D92645, but isn't now - and I've just noticed that it was potentially flawed depending on the relevant widths of the broadcasted and extracted subvectors.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
9ed8e0caab9b6f638e82979f6fdf60d67ce65b92
by dfukalov[NFC] Reduce include files dependency and AA header cleanup (part 2).
Continuing work started in https://reviews.llvm.org/D92489:
Removed a bunch of includes from "AliasAnalysis.h" and "LoopPassManager.h".
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D92852
|
 | llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp |
 | llvm/lib/Transforms/Scalar/Float2Int.cpp |
 | llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp |
 | llvm/lib/Transforms/IPO/HotColdSplitting.cpp |
 | llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp |
 | llvm/include/llvm/Analysis/BasicAliasAnalysis.h |
 | llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp |
 | llvm/lib/Transforms/Utils/LoopRotationUtils.cpp |
 | llvm/lib/Analysis/MemorySSA.cpp |
 | llvm/include/llvm/Analysis/MemorySSA.h |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp |
 | llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp |
 | llvm/lib/CodeGen/LiveIntervals.cpp |
 | llvm/lib/Transforms/Scalar/LoopDistribute.cpp |
 | llvm/lib/LTO/Caching.cpp |
 | llvm/lib/Transforms/IPO/FunctionAttrs.cpp |
 | llvm/include/llvm/Analysis/AliasAnalysis.h |
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
 | llvm/lib/Transforms/IPO/ArgumentPromotion.cpp |
 | llvm/tools/opt/NewPMDriver.cpp |
 | llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp |
 | clang/lib/CodeGen/BackendUtil.cpp |
 | llvm/lib/Analysis/ScopedNoAliasAA.cpp |
 | llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/lib/Analysis/AliasAnalysis.cpp |
 | llvm/examples/Bye/Bye.cpp |
 | llvm/lib/Transforms/Scalar/LoopPassManager.cpp |
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | lld/MachO/Driver.cpp |
 | llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp |
 | llvm/lib/Transforms/Utils/LoopVersioning.cpp |
 | llvm/include/llvm/Transforms/Scalar/LoopPassManager.h |
 | llvm/lib/Analysis/MemDepPrinter.cpp |
 | llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp |
 | llvm/lib/LTO/LTOBackend.cpp |
Commit
6d2a78996bee74611dad55b6c42b828ce1ee0953
by kerry.mclaughlin[SVE][CodeGen] Add bfloat16 support to scalable masked gather
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D93307
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/sve-masked-gather-32b-unsigned-unscaled.ll |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/test/CodeGen/AArch64/sve-masked-gather-64b-unscaled.ll |
 | llvm/test/CodeGen/AArch64/sve-masked-gather-32b-unsigned-scaled.ll |
 | llvm/test/CodeGen/AArch64/sve-masked-gather-64b-scaled.ll |
 | llvm/test/CodeGen/AArch64/sve-masked-scatter-legalise.ll |
 | llvm/test/CodeGen/AArch64/sve-masked-gather-32b-signed-unscaled.ll |
 | llvm/test/CodeGen/AArch64/sve-masked-gather-32b-signed-scaled.ll |
Commit
c2751250f33f61e95e5d9feec95e5b063c601806
by zinenko[mlir] partially update LLVM dialect documentation
Rewrite the parts of the documentation that became stale: context/module handling and type system. Expand the type system description.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D93315
|
 | mlir/docs/Dialects/LLVM.md |
Commit
ccdd8c7759459ef4b9b09820d241081d387be779
by zinenko[mlir] Move LLVM Dialect Op documentation to ODS
This was long overdue. The initial documentation for the LLVM dialect was introduced before ODS had support for long descriptions. This is now possible, so the documentation is moved to ODS, which can serve as a single source of truth. The high-level description of the dialect structure is updated to reflect that.
Depends On: D93315
Reviewed By: rriddle, mehdi_amini
Differential Revision: https://reviews.llvm.org/D93425
|
 | mlir/docs/Dialects/LLVM.md |
 | mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
Commit
08a00c6f43c187f8fb3b08dd98e269fb1fcff836
by martin[libcxx] Remove ifdefs in the message to static_assert. NFC.
Differential Revision: https://reviews.llvm.org/D93283
|
 | libcxx/include/filesystem |
Commit
7c504b6dd0638c4bad40440060fdebc726dc0c07
by kerry.mclaughlin[AArch64] Renamed sve-masked-scatter-legalise.ll. NFC.
|
 | llvm/test/CodeGen/AArch64/sve-masked-scatter-legalise.ll |
 | llvm/test/CodeGen/AArch64/sve-masked-scatter-legalize.ll |
Commit
894c4761c67ac850e156a26aa427035a811d7aed
by sam.mccall[clangd] Add llvm:: qualifier to work around GCC bug. NFC
Some old GCC versions seem to miss the default template parameter when using the clang/Basic/LLVM.h forward declarations of SmallVector.
See D92788
|
 | clang-tools-extra/clangd/Headers.h |
Commit
2d6b1e9b5f3b6c49c0a7732583c984d8dcbc8a9d
by llvm-dev[DebugInfo] Fix MSVC build by adding back necessary reverse_iterator != operator
Put back the std::reverse_iterator<DWARFDie::iterator> != operator that was removed in D78938 to fix VS2019 builds
|
 | llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h |