- May 10, 2022
-
-
Nikita Popov authored
This halves the size of LargeTest, dropping time to compile this file locally from 14s to 5.5s. Hopefully this will also fix the persistent timeouts in pre-merge checks. Differential Revision: https://reviews.llvm.org/D124237
-
Nikita Popov authored
Building libMLIR.so currently fails with: > /usr/bin/ld: /tmp/ccNzulEA.ltrans39.ltrans.o: in function `(anonymous namespace)::SerializeToHsacoPass::optimizeLlvm(llvm::Module&, llvm::TargetMachine&)': > /builddir/build/BUILD/llvm-project-15.0.0.src/mlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp:328: undefined reference to `mlir::makeOptimizingTransformer(unsigned int, unsigned int, llvm::TargetMachine*)' This is because MLIRGPUTransforms depends on MLIRExecutionEngine in https://github.com/llvm/llvm-project/blob/61bb2e4ea82fc5499a271d70d4537383d1942208/mlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp#L328, but MLIRExecutionEngine is marked as excluded from libMLIR.so. However, this code doesn't require the full execution engine: It only performs middle-end optimization, and does not need any of the JIT/codegen infrastructure. As such, split off a separate library MLIRExecutionEngineUtils, which only contains that part and is not excluded from libMLIR.so. Fixes https://github.com/llvm/llvm-project/issues/54242. Differential Revision: https://reviews.llvm.org/D125214
-
Gabor Marton authored
This is to minimize superfluous assume calls. Depends on D124758 Differential Revision: https://reviews.llvm.org/D124761
-
Gabor Marton authored
Summary: By evaluating both children states, now we are capable of discovering infeasible parent states. In this patch, `assume` is implemented in the terms of `assumeDuali`. This might be suboptimal (e.g. where there are adjacent assume(true) and assume(false) calls, next patches addresses that). This patch fixes a real CRASH. Fixes https://github.com/llvm/llvm-project/issues/54272 Differential Revision: https://reviews.llvm.org/D124758
-
Gabor Marton authored
In some cases a parent State is already infeasible, but we recognize this only if an additonal constraint is added. This patch is the first of a series to address this issue. In this patch `assumeDual` is changed to clone the parent State but with an `Infeasible` flag set, and this infeasible-parent is returned both for the true and false case. Then when we add a new transition in the exploded graph and the destination is marked as infeasible, the node will be a sink node. Related bug: https://github.com/llvm/llvm-project/issues/50883 Actually, this patch does not solve that bug in the solver, rather with this patch we can handle the general parent-infeasible cases. Next step would be to change the State API and require all checkers to use the `assume*Dual` API and deprecate the simple `assume` calls. Hopefully, the next patch will introduce `assumeInBoundDual` and will solve the CRASH we have here: https://github.com/llvm/llvm-project/issues/54272 Differential Revision: https://reviews.llvm.org/D124674
-
Nikita Popov authored
While it originally did, this option no longer affects the cc1 interface. For the cc1 interface, -no-opaque-pointers has to be passed, there is no cmake option.
-
Martin Storsjö authored
The variable name checked didn't match the one set on the line above. This error was introduced in b3df14b6.
-
Max Kazantsev authored
Looks like this test exposes some non-determinism and fails with auth-generated checks. Recommited with sole check it didn't crash. Will investigate why it happens.
-
Max Kazantsev authored
This reverts commit 1daf35f4.
-
Max Kazantsev authored
Make sure "[SLP]Further improvement of the cost model for scalars used in buildvectors." does not come back until it's fixed.
-
Walter Erquinigo authored
This reverts commit 9d2dd6d7. Reverting because this exposes an issue in the uint64_t json parser.
-
Chuanqi Xu authored
This is a following cleanup for the previous work D123918. I missed serveral places which still use legacy pass managers. This patch tries to remove them.
-
Shraiysh Vaishay authored
This patch adds lowering for task construct from Fortran to `omp.task` operation in OpenMPDialect Dialect (mlir). Also added tests for the same. Reviewed By: kiranchandramohan, peixin Differential Revision: https://reviews.llvm.org/D124138
-
Walter Erquinigo authored
llvm's json parser supports uint64_t, so let's better use it for the packets being sent between lldb and lldb-server instead of using int64_t as an intermediate type, which might be error-prone.
-
Craig Topper authored
Even if the minimum number of elements is 1 and the length doesn't change, we don't know what vscale is so we can't classify it as identity mask. Instead it is a zero element splat. For reverse, we shouldn't classify it as a reverse unless there are at least 2 elements in the mask. This applies to both fixed and scalable vectors. For fixed vectors, a single element would be an identity shuffle. For scalable vector it's a zero elt splat. Reviewed By: sdesmalen, liaolucy Differential Revision: https://reviews.llvm.org/D124655
-
Walter Erquinigo authored
It turns out that the issue in https://lab.llvm.org/buildbot/#/builders/17/builds/21754 is that a size_t is attempted to be used interchangeably with uint64_t. -
Greg McGary authored
-
Walter Erquinigo authored
It turns out that the issue in https://lab.llvm.org/buildbot/#/builders/17/builds/21754 is that a size_t is attempted to be used interchangeably with uint64_t.
-
Walter Erquinigo authored
This commit causes https://lab.llvm.org/buildbot/#/builders/17/builds/21743 to fail seemingly because of bad handling of the PERF_ATTR_SIZE_VER5 symbol. This patch tries to handle better the absence of this symbol.
-
Andrew Litteken authored
[IRSim] Remove early check from similarity matching such that commutative instructions are checked correctly when using the same value. When the first commutative instruction in a region using the same value in both positions was compared to a corresponding instruction with two different values, there was an early check that determined that since the values were new, it was true that these values acted in the same way structurally. If this was not contradicted later in the program, the regions were marked as similar. This removes that check, so that it is clear that the same value cannot be mapped to two different values. Reviewer: paquette Differential Revision: https://reviews.llvm.org/D124775
-
Stella Stamenova authored
Currently, building mlir with the python bindings enabled on Windows in Debug is broken because pybind11, python and cmake don't like to play together. This change normalizes how the three interact, so that the builds can now run and succeed. The main issue is that python and cmake both make assumptions about which libraries are needed in a Windows build based on the flavor. - cmake assumes that a debug (or a debug-like) flavor of the build will always require pythonX_d.lib and provides no option/hint to tell it to use a different library. cmake does find both the debug and release versions, but then uses the debug library. - python (specifically pyconfig.h and by extension python.h) hardcodes the dependency on pythonX_d.lib or pythonX.lib depending on whether `_DEBUG` is defined. This is NOT transparent - it does not show up anywhere in the build logs until the link step fails with `pythonX_d.lib is missing` (or `pythonX.lib is missing`) - pybind11 tr...
-
Sheng authored
-
Ben Shi authored
Reviewed By: benshi001 Differential Revision: https://reviews.llvm.org/D125157
-
Ben Shi authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D125210
-
Peter Klausler authored
In a function, ENTRY E without an explicit RESULT() creates a function result entity also named E that is storage associated with the enclosing function's result. f18 was emitting an incorrect error message if that function result E was referenced without any declaration prior to its ENTRY statement when it should have been implicitly declared instead. Differential Revision: https://reviews.llvm.org/D125144
-
Chuanqi Xu authored
Reviewed By: iains Differential Revision: https://reviews.llvm.org/D124149
-
Peter Klausler authored
As is already supported for dummy procedures, we need to also accept declarations of procedure pointers that consist of a POINTER attribute statement followed by an INTERFACE block. (The case of an INTERFACE block followed by a POINTER statement already works.) While cleaning this case up, adjust the utility predicate IsProcedurePointer() to recognize it (namely a SubprogramDetails symbol with Attr::POINTER) and delete IsProcName(). Extend tests, and add better comments to symbol.h to document the two ways in which procedure pointers are represented. Differential Revision: https://reviews.llvm.org/D125139
-
LLVM GN Syncbot authored
-
-
Mircea Trofin authored
This allows the compiler to support more features than those supported by a model. The only requirement (development mode only) is that the new features must be appended at the end of the list of features requested from the model. The support is transparent to compiler code: for unsupported features, we provide a valid buffer to copy their values; it's just that this buffer is disconnected from the model, so insofar as the model is concerned (AOT or development mode), these features don't exist. The buffers are allocated at setup - meaning, at steady state, there is no extra allocation (maintaining the current invariant). These buffers has 2 roles: one, keep the compiler code simple. Second, allow logging their values in development mode. The latter allows retraining a model supporting the larger feature set starting from traces produced with the old model. For release mode (AOT-ed models), this decouples compiler evolution from model e...
-
Peter Klausler authored
The semantic test for an intrinsic assignment to a polymorphic derived type entity from a type that is an extension of its base type was reversed, so it would allow assignments that it shouldn't and disallowed some that it should; and the test case for it incorectly assumed that the invalid semantics were correct. Fix the code and the test, and add a new test for the invalid case (LHS type is an extension of the RHS type). Differential Revision: https://reviews.llvm.org/D125135
-
Peter Klausler authored
The rules in the Fortran standard for specification expressions are full of special cases and exceptions, and semantics didn't get them exactly right. It is valid to refer to an INTENT(OUT) dummy argument in a specification expression in the context of a specification inquiry function like SIZE(); it is not valid to reference an OPTIONAL dummy argument outside of the context of PRESENT. This patch makes the specification expression checker a little context-sensitive about whether it's examining an actual argument of a specification inquiry intrinsic function or not. Differential Revision: https://reviews.llvm.org/D125131
-
Peter Klausler authored
DATA statements in inner procedures were not treating undeclared objects as implicitly declared variables if the DATA statement appeared in a specification part; they were treated as host-associated symbols instead. This was incorrect. Fix DATA statement name resolution to always treat DATA as if it had appeared in the executable part. Differential Revision: https://reviews.llvm.org/D125129
-
Carl Ritson authored
-
Carl Ritson authored
-
Peter Klausler authored
A disassociated procedure pointer is allowed to be passed as an absent actual argument that corresponds to an optional dummy procedure, but not NULL(); accept that case as well. Differential Revision: https://reviews.llvm.org/D125127
-
Peter Klausler authored
The type compatibility checks for the ARRAY= argument and the dummy arguments and result of the OPERATION= argument to the REDUCE intrinsic function need to allow for parameterized data types with LEN parameters. (Their values are required to be identical but this is not a numbered constraint requiring a compilation time check). Differential Revision: https://reviews.llvm.org/D125124
-
Amaury Séchet authored
This cleans up tech debt. Similar to D33390 . Reviewed By: Kmeakin Differential Revision: https://reviews.llvm.org/D125150
-
Peter Klausler authored
Functions returning ALLOCATABLE or POINTER arrays have descriptor inquiries in their results' shape expressions that won't compare equal. These functions need only be checked for compatible ranks (& of course other characteristics). Differential Revision: https://reviews.llvm.org/D125123
-
Peter Klausler authored
The utility UnwrapConvertedExpr() was failing to unwrap a converted TypeParamInquiry operation when called from runtime derived type description table construction, leading to an abort in semantics. Differential Revision: https://reviews.llvm.org/D125119
-