345 Commits

Author SHA1 Message Date
Benjamin Kramer
38d248aadd [bazel] Set the default of LLVM_UNREACHABLE_OPTIMIZE to 1
This matches the CMake default. LLVM_UNREACHABLE_OPTIMIZE=0 doesn't
build with gcc
2022-03-24 10:56:43 +01:00
Benjamin Kramer
fdaf9ed884 [bazel] Make extract_api compatible with bazel 2022-03-23 11:01:04 +01:00
Alexander Belyaev
5bcc90ee61 [clang] Update BUILD.bazel after 89f6b26f1beb2c1344f5cfeb34e405128544c76b. 2022-03-23 09:46:40 +01:00
Alex Zinenko
b9959590d4 [mlir][bazel] filegroups for Python CF, PDL, Tensor dialects
These dialects have Python bindings and are tested, but were not
previously exposed through Bazel filegroups.

Differential Revision: https://reviews.llvm.org/D122138
2022-03-21 15:46:36 +01:00
Adrian Kuegel
96353d6f6f [clang][Bazel] Add missing dependency from symbol_graph to llvm:support.
This did not show up as build error because the build also works if the
dependency is transitively available. But there should be a direct
dependency anyway.
2022-03-21 08:43:06 +01:00
Jacques Pienaar
374208ea15 [bazel][mlir] Add MLIR PDLL LSP server target
Add targets for PDLL LSP server.
2022-03-19 18:08:36 -07:00
Sterling Augustine
61d5d12ca9 Update llvm-config.h.cmake for 7b983917d4 2022-03-18 12:59:15 -07:00
Benjamin Kramer
9816fada16 [bazel] Port a954ade8ed41 2022-03-18 10:50:55 +01:00
Benjamin Kramer
d3f4562cbd [bazel] Sync llvm-config.h after 112aafcaf425dca901690ca823d25607e5795263 2022-03-18 10:45:54 +01:00
Sterling Augustine
07998f6d75 Correct and complete dependency sets after 74b411d38c48513a125e67e049aca55452b9e855
Prior to this change the __support_cpp_array_ref target's only dependency was libc_root.
but it #includes "TypeTraits.h" and Array.h for that matter.

These dependencies matter when building in distributed build systems and the relevant
files must be know for the distributed build to ship them to the executor.

Differential Revision: https://reviews.llvm.org/D121974
2022-03-17 19:52:49 -07:00
Sterling Augustine
9065dd1439 Fix invalid preprocessor directive. 2022-03-17 19:12:48 -07:00
Sterling Augustine
6f958b6ff5 Update llvm-config.h.cmake for LLVM_UNREACHABLE_OPTIMIZE 2022-03-17 19:04:42 -07:00
Alex Zinenko
6864d27088 [mlir][bazel] make .pyi files available to Bazel
These files are necessary for various type checking and autocompletion
tooling to work.

Differential Revision: https://reviews.llvm.org/D121810
2022-03-17 11:02:17 +01:00
Adrian Kuegel
0e694e1426 [Bazel] Update Bazel build to add symbol_graph.
Differential Revision: https://reviews.llvm.org/D121886
2022-03-17 10:53:04 +01:00
Adrian Kuegel
d8740912dd [mlir][Bazel] Add missing dependency.
Differential Revision: https://reviews.llvm.org/D121893
2022-03-17 10:25:20 +01:00
Adrian Kuegel
bd0bf9674b [mlir][Bazel] Adapt BUILD.bazel for move of lsp-server support files.
Differential Revision: https://reviews.llvm.org/D121891
2022-03-17 10:04:11 +01:00
Adrian Kuegel
7733a61fbc [mlir][Bazel] Also fix mlir/unittests/BUILD.bazel. 2022-03-17 09:42:06 +01:00
Adrian Kuegel
2f1d918c0b [mlir][Bazel] Adapt to move of FuncOp. 2022-03-17 09:25:30 +01:00
Benjamin Kramer
0c4e9fbf41 [bazel] Port 50f82e68470c 2022-03-16 23:46:46 +01:00
Jakub Kuderski
7c285b78cf [bazel] Add build rule for llvm-remark-size-diff
This binary is used in LIT tests.

Test: `bazel run --config=generic_clang -c opt @llvm-project//llvm:llvm-remark-size-diff -- --help`

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D121742
2022-03-16 14:07:07 -04:00
Sterling Augustine
103f23d63d Updated mlir-tablegen dependencies for f96a8675cd29776ca39bb76133ee9167f5001f17
Differential Revision: https://reviews.llvm.org/D121764
2022-03-15 19:41:42 -07:00
Michael Jones
74b411d38c [libc][bazel] split support_standalone_cpp target
previously the support_standalone_cpp target contained all of the files
in the __support/cpp folder. This change splits these out so that only
what is needed is included. In addition, this change adds the new
support files that previously didn't have targets.

Reviewed By: lntue, gchatelet

Differential Revision: https://reviews.llvm.org/D121314
2022-03-15 16:40:43 -07:00
Matthias Springer
39ec46bd83 [mlir][bufferize] Extract buffer hoisting into separate function
This improves the modularity of the bufferization.

From now on, all ops that do not implement BufferizableOpInterface are considered hoisting barriers. Previously, all ops that do not implement the interface were not considered barriers and such ops had to be marked as barriers explicitly. This was unsafe because we could've hoisted across unknown ops where it was not safe to hoist.

As a side effect, this allows for cleaning up AffineBufferizableOpInterfaceImpl. This build unit no longer needed and can be deleted.

Differential Revision: https://reviews.llvm.org/D121519
2022-03-15 21:25:03 +09:00
Adrian Kuegel
fd8fe3bab6 [mlir][Bazel] Adjust build file to account for new td files. 2022-03-15 09:05:07 +01:00
Adrian Kuegel
49a29e5c9f [mlir][Bazel] Adjust regarding StandardToLLVM -> FuncToLLVM rename.
Differential Revision: https://reviews.llvm.org/D121185
2022-03-08 09:07:36 +01:00
Matthias Springer
93e663273b [mlir][shape] Migrate bufferization to BufferizableOpInterface
Differential Revision: https://reviews.llvm.org/D121043
2022-03-07 21:54:27 +09:00
Adrian Kuegel
08ba81f520 [mlir][Bazel] Remove unused dependencies (NFC)
Differential Revision: https://reviews.llvm.org/D121106
2022-03-07 13:26:20 +01:00
Christian Sigg
4c3c107b54 [MLIR] Fix bazel BUILD file after Parser.h moved.
See D121024, D121025, D121026.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D121094
2022-03-07 13:19:47 +01:00
Benjamin Kramer
317e6a8077 [bazel] Port 76ec69a911c6 2022-03-04 20:18:00 +01:00
David Blaikie
03ce383920 More bazel fixes 2022-03-04 04:44:02 +00:00
David Blaikie
115a5a616e More bazel fixes 2022-03-04 04:15:49 +00:00
David Blaikie
61e1581fa3 Bazel fixes for 81f2f4dfb2922e4f7af8bbfd8b653eda7c1f1339 2022-03-04 01:02:39 +00:00
Benjamin Kramer
29fe819ed3 Revert "Update bazel build rules to match 169ebf03ab2a6f16bfa32a36305929c7bc8e4784."
This reverts commit f2af453263569bca04df8229929d988ab82fa1d7. The
corresponding LLVM change was reverted in 27712243ab2680fa87b2de52ca4245d7c22f81f8.
2022-03-03 22:15:36 +01:00
David Blaikie
831fa725ef More bazel fixes. 2022-03-03 02:05:32 +00:00
David Blaikie
f6bc0a48cc More attempts at bazel fix 2022-03-03 00:18:54 +00:00
David Blaikie
59262d2d4b Attempt fix for Bazel build from
3ba66435d9377cb99ee1718807cbf6a7c4b0d6d3
2022-03-02 21:47:25 +00:00
Alex Zinenko
59814a8c99 [mlir] more Bazel changes for 23aa5a744666 2022-03-02 16:16:14 +01:00
Alex Zinenko
ea998709eb [mlir] Add partial support for translating data layout
Add support for translating data layout specifications for integer and float
types between MLIR and LLVM IR. This is a first step towards removing the
string-based LLVM dialect data layout attribute on modules. The latter is still
available and will remain so until the first-class MLIR modeling can fully
replace it.

Depends On D120739

Reviewed By: wsmoses

Differential Revision: https://reviews.llvm.org/D120740
2022-03-02 14:56:50 +01:00
Benjamin Kramer
38406ca9bd [bazel] Add a missing dependency after 1f971e23f089 2022-03-02 00:20:08 +01:00
Benjamin Kramer
6c19bb4040 [bazel] Build fixes for 23aa5a744666 2022-03-02 00:13:57 +01:00
Jorge Gorbe Moya
3de4e6b400 [bazel] add missing dependency 2022-03-01 10:43:27 -08:00
Benjamin Kramer
20517719a9 [bazel] Port g95b4e88b1db3 2022-02-27 00:11:42 +01:00
Nikita Popov
8dcb5e6bf5 Revert "[Driver] Default CLANG_DEFAULT_PIE_ON_LINUX to ON"
See post-commit discussion on https://reviews.llvm.org/D120305.
This change breaks the clang-ppc64le-rhel buildbot, though
there is suspicion that it's an issue with the bot. The change
also had a larger than expected impact on compile-time and
code-size.

This reverts commit 3c4ed02698afec021c6bca80740d1e58e3ee019e
and some followup changes.
2022-02-26 15:32:49 +01:00
gysit
51fdd802c7 [mlir][OpDSL] Add type function attributes.
Previously, OpDSL operation used hardcoded type conversion operations (cast or cast_unsigned). Supporting signed and unsigned casts thus meant implementing two different operations. Type function attributes allow us to define a single operation that has a cast type function attribute which at operation instantiation time may be set to cast or cast_unsigned. We may for example, defina a matmul operation with a cast argument:

```
@linalg_structured_op
def matmul(A=TensorDef(T1, S.M, S.K), B=TensorDef(T2, S.K, S.N), C=TensorDef(U, S.M, S.N, output=True),
    cast=TypeFnAttrDef(default=TypeFn.cast)):
  C[D.m, D.n] += cast(U, A[D.m, D.k]) * cast(U, B[D.k, D.n])
```

When instantiating the operation the attribute may be set to the desired cast function:

```
linalg.matmul(lhs, rhs, outs=[out], cast=TypeFn.cast_unsigned)
```

The revsion introduces a enum in the Linalg dialect that maps one-by-one to the type functions defined by OpDSL.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D119718
2022-02-25 08:25:23 +00:00
Fangrui Song
3c4ed02698 [Driver] Default CLANG_DEFAULT_PIE_ON_LINUX to ON
Default the option introduced in D113372 to ON to match all(?) major Linux
distros. This matches GCC and improves consistency with Android and linux-musl
which always default to PIE.
Note: CLANG_DEFAULT_PIE_ON_LINUX will be removed in the future.

Reviewed By: thesamesam

Differential Revision: https://reviews.llvm.org/D120305
2022-02-25 00:22:12 +00:00
Thomas Raoux
b1357fe618 [mlir][memref] Add transformation to do loop multi-buffering
This transformation is useful to break dependency between consecutive loop
iterations by increasing the size of a temporary buffer. This is usually
combined with heavy software pipelining.

Differential Revision: https://reviews.llvm.org/D119406
2022-02-24 09:41:21 -08:00
Adrian Kuegel
0fc11418a7 [mlir][Bazel] Fix wrong dependency for GPUBaseIncGen. 2022-02-23 10:53:35 +01:00
Matthias Springer
41cb504b7c [mlir][linalg][bufferize][NFC] Move interface impl to Linalg Transforms
This is for consistency with other dialects.

Differential Revision: https://reviews.llvm.org/D120190
2022-02-21 17:14:24 +09:00
Benjamin Kramer
a83e08b450 [mlir][Vector] Add InferTypeOpInterface to vector dialect and remove the now redundant builders 2022-02-18 01:46:58 +01:00
Aart Bik
515c617003 [mlir][linalg][sparse] add linalg optimization passes "upstream"
It is time to compose Linalg related optimizations with SparseTensor
related optimizations. This is a careful first start by adding some
general Linalg optimizations "upstream" of the sparse compiler in the
full sparse compiler pipeline. Some minor changes were needed to make
those optimizations aware of sparsity.

Note that after this, we will add a sparse specific fusion rule,
just to demonstrate the power of the new composition.

Reviewed By: bixia

Differential Revision: https://reviews.llvm.org/D119971
2022-02-17 08:55:50 -08:00