- Jan 19, 2023
-
-
Michal Paszkowski authored
This change makes the AsmPrinter emit OpExecutionMode ContractionOff when both opencl.enable.FP_CONTRACT and spirv.ExecutionMode metadata are not present. Differential Revision: https://reviews.llvm.org/D141734
-
Nikita Popov authored
These are currently being miscompiled, see PR59888.
-
Alex Brachet authored
Add {e,r}flags, {g,f}s.base registers so they can be referenced in cfi directives,. They are not otherwise useable in any instructions, but can be implicitly pushed to the stack like with pushf for {e,r}flags. Differential Revision: https://reviews.llvm.org/D141879 -
Nico Weber authored
-
Nico Weber authored
-
Haojian Wu authored
A prototype of using include-cleaner library in clangd: - (re)implement clangd's "unused include" warnings with the library - the new implementation is hidden under a flag `Config::UnusedIncludesPolicy::Experiment` Differential Revision: https://reviews.llvm.org/D140875
-
Christian Ulmann authored
This commit purges direct accesses to MD_prof metadata and replaces them with the accessors provided from the utility file wherever possible. This commit can be seen as the first step towards switching the branch weights to 64 bits. See post here: https://discourse.llvm.org/t/extend-md-prof-branch-weights-metadata-from-32-to-64-bits/67492 Reviewed By: davidxl, paulkirth Differential Revision: https://reviews.llvm.org/D141393
-
Amaury Séchet authored
Fix a regression in D141883 Depends on D141883 Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D141884
-
Haojian Wu authored
Support building UsingType for elaborated type specifiers: ``` namespace ns { class Foo {}; } using ns::Foo; // The TypeLoc of `Foo` below should be a ElaboratedTypeLoc with an // inner UsingTypeLoc rather than the underlying `CXXRecordTypeLoc` class Foo foo; ``` Differential Revision: https://reviews.llvm.org/D141280 -
Jean Perier authored
Adds support for: - referencing a whole allocatable/pointer symbol - passing allocatable/pointer in a call This required update in HLFIRTools.cpp helpers so that the raw address, extents, lower bounds, and type parameters of a fir.box/fir.class can be extracted. This is required because in hlfir lowering, dereferencing a pointer/alloc is only doing the fir.load fir.box part, and the helpers have to be able to reason about that fir.box without the help of a "fir::FortranVariableOpInterface". Missing: - referencing part of allocatable/pointer (will need to update Designator lowering to dereference the pointer/alloc). Same for whole allocatable and pointer components. - allocate/deallocate/pointer assignment statements. - Whole allocatable assignment. - Lower inquires. Differential Revision: https://reviews.llvm.org/D142043
-
serge-sans-paille authored
When used to find an exact match, some extra context can be used to totally cut some computations. This saves 1% of the instruction count when pre processing sqlite3.c through valgrind --tool=callgrind ./bin/clang -E sqlite3.c -o/dev/null Differential Revision: https://reviews.llvm.org/D142026
-
Groverkss authored
This patch adds support for divisions in the union of two PWMAFunction. This is now possible because of previous patches, which made divisions explicitly stored in MultiAffineFunction (MAF). This patch also refactors the previous implementation, moving the implementation for obtaining a set of points where a MAF is lexicographically "better" than the other to MAF. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D138118
-
Michal Paszkowski authored
Differential Revision: https://reviews.llvm.org/D142061
-
Timm Bäder authored
This reverts commit 5b54cf1a. This breaks a builder: https://lab.llvm.org/buildbot/#/builders/5/builds/30854
-
Timm Bäder authored
This reverts commit 490e8214. This breaks a builder: https://lab.llvm.org/buildbot/#/builders/214/builds/5415
-
Timm Bäder authored
-
Amaury Séchet authored
This transofrm loses information that can be useful for other transforms. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D141883
-
Evan Smal authored
This patch improves the diagnostic message "initializer-string for char array is too long" by specifying an expected array length and by indicating that the initializer string implicitly includes the null terminator. Fixes #58829 Differential Revision: https://reviews.llvm.org/D141283
-
Florian Hahn authored
This patch adds a new VPBlockShallowTraversalWrapper struct to provide graph traits specialization that do not traverse through VPRegionBlocks. This matches the behavior of the existing traits for plain VPBlockBase and is a step before moving the graph traits for VPBlockBase to traverse through VPRegionBlocks to enable cross region support in VPDominatorTree. Depends on D140511. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D140512
-
Mariusz Sikora authored
Introducing feature predicate VFmacF64Inst for targets which supports v_fmac_f64 instructions. Differential Revision: https://reviews.llvm.org/D142017
-
Timm Bäder authored
This reverts commit fddf6418. Apparently this also breaks some builders: /usr/bin/ld: EvalEmitter.cpp:(.text._ZN5clang6interp11EvalEmitter7emitShlENS0_8PrimTypeES2_RKNS0_10SourceInfoE+0x1f54): undefined reference to `bool clang::interp::CheckShift<clang::interp::Integral<16u, true> >(clang::interp::InterpState&, clang::interp::CodePtr, clang::interp::Integral<16u, true> const&, unsigned int)' /usr/bin/ld: EvalEmitter.cpp:(.text._ZN5clang6interp11EvalEmitter7emitShlENS0_8PrimTypeES2_RKNS0_10SourceInfoE+0x1fd4): undefined reference to `bool clang::interp::CheckShift<clang::interp::Integral<32u, true> >(clang::interp::InterpState&, clang::interp::CodePtr, clang::interp::Integral<32u, true> const&, unsigned int)' /usr/bin/ld: EvalEmitter.cpp:(.text._ZN5clang6interp11EvalEmitter7emitShlENS0_8PrimTypeES2_RKNS0_10SourceInfoE+0x2058): undefined reference to `bool clang::interp::CheckShift<clang::interp::Integral<32u, true> >(clang::interp::InterpState&, clang::interp::CodePtr, clang::interp::Integral<32u, true> const&, unsigned int)' (etc)
-
Dominik Adamski authored
simd nontemporal construct is represented as a list of variables which have low locality accross simd iterations Added verifier of nontemporal clause. MLIR tests were updated to test correctness of MLIR definition of nontemporal clause. Differential Revision: https://reviews.llvm.org/D140553 Reviewed By: kiranchandramohan
-
Jordan Rupprecht authored
-
Timm Bäder authored
This reverts commit 9ee0d749.
-
Timm Bäder authored
Implement mul, div, rem, etc. compound assign operators. Differential Revision: https://reviews.llvm.org/D137071
-
Timm Bäder authored
Just like we do with all the other Check* functions.
-
Timm Bäder authored
-
Timm Bäder authored
This way we can check for this flag in the new interpreter as well.
-
Quentin Colombet authored
The `lower_vectors` operation of the transform dialect takes a lot of arguments to build. In order to make C++ code easier to work with when using this instruction, introduce a new structure, named `LowerVectorsOptions`, that aggregates all the options that are used to build this instruction. This allows to use patterns like: ``` LowerVectorsOptions opts; opts.setOptZ(...) .setOptY(...)...; builder.create<LowerVectorsOp>(target, opts); ``` Instead of having to pass all N options directly to the builder and set them in the right order. NFC Differential Revision: https://reviews.llvm.org/D141923
-
Christian Ulmann authored
This commit introduces LLVM's `MemoryEffects` attribute and replaces the deprecated usage of `llvm.readnone` in the LLVM dialect. The absence of the attribute on a `LLVMFuncOp` implies that it might access all kinds of memory. This semantic corresponds to `llvm::Function`'s behaviour. Depends on D142002 Differential Revision: https://reviews.llvm.org/D142013
-
Alex Zinenko authored
-
Alex Zinenko authored
Simplify the handling of silenceable failures in the transform dialect. Previously, the logic of `TransformEachOpTrait` required that `applyToEach` returned a list of null pointers when a silenceable failure was emitted. This was not done consistently and also crept into ops without this trait although they did not require it. Handle this case earlier in the interpreter and homogeneously associated preivously unset transform dialect values (both handles and parameters) with empty lists of the matching kind. Ignore the results of `applyToEach` for the targets for which it produced a silenceable failure. As a result, one never needs to set results to lists containing nulls. Furthermore, the objects associated with transform dialect values must never be null. Depends On D140980 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D141305
-
Alex Zinenko authored
Use the recently introduced transform dialect parameter mechanism to perform controllable multi-size tiling with sizes computed at the transformation time rather than at runtime. This requires to generalize tile and split structured transform operations to work with any transform dialect handle types, which is desirable in itself to avoid unchecked overuse of PDL OperationType. Reviewed By: shabalin Differential Revision: https://reviews.llvm.org/D140980
-
Nikita Popov authored
Similarly to what backref() does, add an "easy path" to slow() that can handle some non-branching cases, in particular simple character matches. This has the dual effect of reducing the number of characters we need to match, and the number of states in the NFA. This reduces FileCheck runtime on vloxseg.c from 17s to 12s on my machine.
-
Timm Bäder authored
Just like we do for record members, diagnose uninitialized array record fields. Differential Revision: https://reviews.llvm.org/D136828
-
Haojian Wu authored
They were pointed out in the review of https://reviews.llvm.org/D140875
-
Timm Bäder authored
We often visit the same variable multiple times, e.g. once when checking its initializer and later when compiling the function. Unify both of those in visitVarDecl() and do the returning of the value in visitDecl(). Differential Revision: https://reviews.llvm.org/D136815
-
David Sherwood authored
Adds intrinsics for the following instructions: * WHILEGE (predicate pair) * WHILEGT (predicate pair) * WHILEHI (predicate pair) * WHILEHS (predicate pair) * WHILELE (predicate pair) * WHILELO (predicate pair) * WHILELS (predicate pair) * WHILELT (predicate pair) I've added an opcode selector called SelectOpcodeFromVT to AArch64ISelDAGToDAG.cpp that we will extend in future to select opcodes from different MVTs. For now, the only use is for selecting predicate types. NOTE: These intrinsics are still in development and are subject to future changes. Differential Revision: https://reviews.llvm.org/D141936
-
Christian Ulmann authored
This commit ensures that all functions produced by `FuncToLLVM` drop the llvm.linkage attribute. Furthermore, it adds a small test that checks if the readnone attribute is preserved. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D142002
-
Quentin Colombet authored
NFC
-