profile
viewpoint
Nicolas Vasilache nicolasvasilache Google Brain NYC

niessner/Opt 217

Opt DSL

ezyang/pytorch-unattached 12

Tensors and Dynamic neural networks in Python with strong GPU acceleration

nicolasvasilache/plaidml 1

PlaidML is a framework for making deep learning work everywhere.

PollyLabs/isl 1

isl mirror (BETA) - The official isl repository is at http://repo.or.cz/w/isl.git

andidr/teckyl 0

An MLIR frontend for tensor expressions

ezyang/dmlc-core 0

A common bricks library for building scalable and portable distributed machine learning.

nicolasvasilache/awesome-deep-learning-papers 0

The most cited deep learning papers

nicolasvasilache/CDN 0

Image dump

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 10382ebe8f3f8e5df3b163fc0026b300d6274b2c

[mlir][Linalg] Fix build warnings

view details

push time in 13 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha bfaf535791897f3cc2af40d4f5a677489ad25940

[mlir][Linalg] Refactor in preparation for automatic Linalg "named" ops. This revision prepares the ground for declaratively defining Linalg "named" ops. Such named ops form the backbone of operations that are ubiquitous in the ML application domain. This revision closely related to the definition of a "Tensor Computation Primitives Dialect" and demonstrates that ops can be expressed as declarative configurations of the `linalg.generic` op. Differential Revision: https://reviews.llvm.org/D74491

view details

push time in 13 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 137415ad285b1d3c1fa1dfb8f44c2ac62d3ebbe4

[mlir][EDSC][Linalg] Compose linalg_matmul and vector.contract Summary: This revision allows model builder to create a linalg_matmul whose body is a vector.contract. This shows the abstractions compose nicely. Differential Revision: https://reviews.llvm.org/D74457

view details

push time in 13 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 8513ff05c81e60f771aa58846b37840f979a2777

[mlir][VectorOps][EDSC] Add EDSC for VectorOps Summary: This revision adds EDSC support for VectorOps to enable the creation of a `vector_matmul` declaratively. The `vector_matmul` is a simple configuration of the `vector.contract` op that follows the StructuredOps abstraction. Differential Revision: https://reviews.llvm.org/D74284

view details

push time in 15 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 75394e1301dd1d4739a24d440e9996c52e5b5570

[mlir][EDSC] Almost NFC - Refactor and untangle EDSC dependencies This CL refactors EDSCs to layer them better and break unnecessary dependencies. After this refactoring, the top-level EDSC target only depends on IR but not on Dialects anymore and each dialect has its own EDSC directory. This simplifies the layering and breaks cyclic dependencies. In particular, the declarative builder + folder are made explicit and are now confined to Linalg. As the refactoring occurred, certain classes and abstractions that were not paying for themselves have been removed. Differential Revision: https://reviews.llvm.org/D74302

view details

push time in 15 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha d4fbf8312b966b669bc52b33bf9cf30648883921

[mlir][EDSC] NFC - Move StructuredIndexed and IteratorType out of Linalg Summary: This NFC revision will allow those classes to be reused to allow building structured vector operations. Reviewers: aartbik, ftynse Subscribers: arphaman, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74279

view details

push time in 17 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 681f929f591616ca048aa470d030d985b6719216

[mlir][VectorOps] Introduce a `vector.fma` op that works on n-D vectors and lowers to `llvm.intrin.fmuladd` Summary: The `vector.fma` operation is portable enough across targets that we do not want to keep it wrapped under `vector.outerproduct` and `llvm.intrin.fmuladd`. This revision lifts the op into the vector dialect and implements the lowering to LLVM by using two patterns: 1. a pattern that lowers from n-D to (n-1)-D by unrolling when n > 2 2. a pattern that converts from 1-D to the proper LLVM representation Reviewers: ftynse, stellaraccident, aartbik, dcaballe, jsetoain, tetuante Reviewed By: aartbik Subscribers: fhahn, dcaballe, merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74075

view details

push time in 18 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 499ad45877b930325b641d18e7b8b71094116e49

[mlir][VectorOps] Expose and use llvm.intrin.fma* Summary: This revision exposes the portable `llvm.fma` intrinsic in LLVMOps and uses it in lieu of `llvm.fmuladd` when lowering the `vector.outerproduct` op to LLVM. This guarantees proper `fma` instructions will be emitted if the target ISA supports it. `llvm.fmuladd` does not have this guarantee in its semantics, despite evidence that the proper x86 instructions are emitted. For more details, see https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic. Reviewers: ftynse, aartbik, dcaballe, fhahn Reviewed By: aartbik Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74219

view details

push time in 18 days

issue commentgoogle/iree

Define initial SIMD dialect

We have a bunch of stuff in flight regarding these topics that generalize quite nicely. If this is an active area of interest, I'd encourage you to look at what we are doing on the MLIR Vector dialect: https://mlir.llvm.org/docs/Dialects/Vector/ and ask questions. We also discussed with ARM folks re MLIR and how to model SVE in a very specific way using regions because of the peculiar constraints of SVE (i.e. it's not "just" vector<?x?xf32>).

cc @tetuante

benvanik

comment created time in 21 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha ff50c8dcef4121cedb1561194b9c620532378fb5

Revert "[mlir][Linalg][doc] Add Design Document for the Linalg Dialect" This reverts commit 1d58a7c82f77154bf56a51a5f248ef5d0a9bb4a8.

view details

Nicolas Vasilache

commit sha 34cd354ea967a6aecee4133fe43e4879355c6dbe

[mlir][Linalg][doc] Add Design Document for the Linalg Dialect Summary: This revision adds a Rationale for the Linalg Dialect Reviewers: rriddle, mehdi_amini, ftynse, albertcohen Reviewed By: albertcohen Subscribers: merge_guards_bot, jfb, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73595

view details

push time in 23 days

GollumEvent

issue commentnicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-02-02 at 2 27 23 PM

nicolasvasilache

comment created time in 23 days

issue commentnicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-02-02 at 2 26 43 PM

nicolasvasilache

comment created time in 23 days

GollumEvent
GollumEvent

issue commentnicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-02-02 at 2 15 43 PM

nicolasvasilache

comment created time in 23 days

GollumEvent
GollumEvent
GollumEvent

issue commentnicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-02-02 at 2 10 16 PM

nicolasvasilache

comment created time in 23 days

GollumEvent
GollumEvent
GollumEvent

issue commentnicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-02-02 at 1 42 11 PM

nicolasvasilache

comment created time in 23 days

GollumEvent

issue commentnicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-02-02 at 1 09 09 PM

nicolasvasilache

comment created time in 23 days

GollumEvent
GollumEvent
GollumEvent

push eventllvm/llvm-project

Nicolas Vasilache

commit sha dc1d43cfa0294dea6713aa825d287ddaa3ac971b

[mlir][Linalg] NFC - Cleanup and split input file for roundtrip.mlir

view details

push time in 25 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 6f0229bc71b182ee26f05363d42317e60e33f05c

[mlir][EDSC] NFC - Cleanups to builder-api-test.cpp This revision does the following post-commit cleanups: 1. don't use -1 magic constants, 2. drop commented out old test that does not belong here, 3. reformat and add a proper clang-format off on a CHECK directive.

view details

push time in 25 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha f9fa9e1f0e9508abb7b11b161a4c1509a6933d2b

[mlir][Linalg] Adding support for linalg_matmul with tensors. Summary: This revision provides 2 versions of matmul with tensors to account for the differences in buffer vs value semantics: 1. `C(i, j) = sum_{r_k} A(i, r_k) * B(r_k, j)` 2. `D(i, j) = C(i, j) + sum_{r_k} A(i, r_k) * B(r_k, j)` Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73796

view details

push time in 25 days

startedgoogle/iree

started time in 25 days

push eventllvm/llvm-project

Nicolas Vasilache

commit sha ea1e3369f7a8aa9729f8e2fc208b8f6a79392874

[mlir][Linalg] Introduce folding patterns to remove certain MemRefCastOp Summary: Canonicalization and folding patterns in StandardOps may interfere with the needs of Linalg. This revision introduces specific foldings for dynamic memrefs that can be proven to be static. Very concretely: Determines whether it is possible to fold it away in the parent Linalg op: ```mlir %1 = memref_cast %0 : memref<8x16xf32> to memref<?x?xf32> %2 = linalg.slice %1 ... : memref<?x?xf32> ... // or %1 = memref_cast %0 : memref<8x16xf32, affine_map<(i, j)->(16 * i + j)>> to memref<?x?xf32> linalg.generic(%1 ...) : memref<?x?xf32> ... ``` into ```mlir %2 = linalg.slice %0 ... : memref<8x16xf32> ... // or linalg.generic(%0 ... : memref<8x16xf32, affine_map<(i, j)->(16 * i + j)>> ``` Reviewers: ftynse, aartbik, jsetoain, tetuante, asaadaldien Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73565

view details

push time in a month

GollumEvent
CommitCommentEvent
CommitCommentEvent
CommitCommentEvent

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 1d58a7c82f77154bf56a51a5f248ef5d0a9bb4a8

[mlir][Linalg][doc] Add Design Document for the Linalg Dialect

view details

push time in a month

GollumEvent
GollumEvent
GollumEvent
GollumEvent

issue openednicolasvasilache/nicolas.vasilache.github.io

Im

Screen Shot 2020-01-27 at 11 10 25 PM

created time in a month

GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent
GollumEvent

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 5bb8d28e61cc6babfad9c232078a48c046af5a1e

[mlir][Linalg] Add tensor support to Linalg EDSC Builders Summary: This diff extends the Linalg EDSC builders so we can easily create mixed tensor/buffer linalg.generic ops. This is expected to be useful for HLO -> Linalg lowering. The StructuredIndexed struct is made to derive from ValueHandle and can now capture a type + indexing expressions. This is used to represent return tensors. Pointwise unary and binary builders are extended to allow both output buffers and return tensors. This has implications on the number of region arguments. Reviewers: ftynse, hanchung, asaadaldien Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73149

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha c0a26a35ee2426d76cf113c8119438f6c4d996ce

Revert "[mlir][Linalg] Add tensor support to Linalg EDSC Builders" This reverts commit 89e19e8eddd6dd0dc38d595b6784fb9ce65d9972. This committed a stale version of the diff https://reviews.llvm.org/D72863 .. I apologize, reverting.

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 89e19e8eddd6dd0dc38d595b6784fb9ce65d9972

[mlir][Linalg] Add tensor support to Linalg EDSC Builders Summary: This diff extends the Linalg EDSC builders so we can easily create mixed tensor/buffer linalg.generic ops. This is expected to be useful for HLO -> Linalg lowering. The `StructuredIndexed` struct is made to derive from `ValueHandle` and can now capture a type + indexing expressions. This is used to represent return tensors. Pointwise unary and binary builders are extended to allow both output buffers and return tensors. This has implications on the number of region arguments. Reviewers: ftynse, herhut, hanchung, asaadaldien, stellaraccident Reviewed By: asaadaldien Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72863

view details

push time in a month

GollumEvent

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 64c4dcb5eef20fca9e125148a74e529643696e2b

[mlir][Linalg] Extend linalg vectorization to MatmulOp Summary: This is a simple extension to allow vectorization to work not only on GenericLinalgOp but more generally across named ops too. For now, this still only vectorizes matmul-like ops but is a step towards more generic vectorization of Linalg ops. Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72942

view details

push time in a month

push eventllvm/llvm-project

Andy Davis

commit sha 78f82e162ec0d916b5d45943d2b28376b0224dee

[VectorOps] Update vector transfer read op comments. Summary: Update vector transfer read op comments. Reviewers: nicolasvasilache, aartbik Reviewed By: nicolasvasilache, aartbik Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72731

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 2b81d3c6c6fd7b3fcffba626c5df3a9a66a3deb1

[mlir][Linalg] Fix Linalg EDSC builders Summary: This diff fixes the fact that the method `mlir::edsc::makeGenericLinalgOp` incorrectly adds 2 blocks to Linalg ops. Tests are updated accordingly. Reviewers: ftynse, hanchung, herhut, pifon2a, asaadaldien Reviewed By: asaadaldien Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72780

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 88380b91c87e83fc8984c17d86017df0a3de62aa

[mlir][Linalg] NFC - Hotfix for gcc-5 build

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 7741de94358b827086a4542202fdb2aac99687d4

[mlir][Linalg] NFC - Cleanup Linalg Pass locations and namespacing Summary: This diff moves the conversion pass declaration closer to its definition and makes the namespacing of passes consistent with the rest of the infrastructure (i.e. `mlir::linalg::createXXXPass` -> `mlir::createXXXPass`). Reviewers: ftynse, jpienaar, mehdi_amini Subscribers: rriddle, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72766

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha ad7f4c11eb14a41205f4dadd08493aca0bf8f9ec

[mlir][Linalg] NFC - Hotfix for gcc-5 build

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 89b395fe793be6f3704ff8faaf6b55191431dc7a

[mlir][EDSC] Refactor dependencies involving EDSCs. Summary: This diff removes the dependency of LinalgOps and VectorOps on EDSCs. Reviewers: jpienaar, ftynse Reviewed By: ftynse Subscribers: merge_guards_bot, mgorny, mehdi_amini, rriddle, burmako, shauheen, antiagainst, csigg, arpith-jacob, mgester, lucyrfox, herhut, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72481

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha f52d71736b10e87b1aa1880b777dc9462a0085ce

[mlir][Linalg] Update the semantics, verifier and test for Linalg with tensors. Summary: This diff fixes issues with the semantics of linalg.generic on tensors that appeared when converting directly from HLO to linalg.generic. The changes are self-contained within MLIR and can be captured and tested independently of XLA. The linalg.generic and indexed_generic are updated to: To allow progressive lowering from the value world (a.k.a tensor values) to the buffer world (a.k.a memref values), a linalg.generic op accepts mixing input and output ranked tensor values with input and output memrefs. ``` %1 = linalg.generic #trait_attribute %A, %B {other-attributes} : tensor<?x?xf32>, memref<?x?xf32, stride_specification> -> (tensor<?x?xf32>) ``` In this case, the number of outputs (args_out) must match the sum of (1) the number of output buffer operands and (2) the number of tensor return values. The semantics is that the linalg.indexed_generic op produces (i.e. allocates and fills) its return values. Tensor values must be legalized by a buffer allocation pass before most transformations can be applied. Such legalization moves tensor return values into output buffer operands and updates the region argument accordingly. Transformations that create control-flow around linalg.indexed_generic operations are not expected to mix with tensors because SSA values do not escape naturally. Still, transformations and rewrites that take advantage of tensor SSA values are expected to be useful and will be added in the near future. Subscribers: bmahjour, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72555

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha e653d306ce90e5612796d8adce9eb34b1c10e85a

[mlir][Linalg] Update ReshapeOp::build to be more idiomatic Summary: This diff makes it easier to create a `linalg.reshape` op and adds an EDSC builder api test to exercise the new builders. Reviewers: ftynse, jpienaar Subscribers: mehdi_amini, rriddle, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72580

view details

push time in a month

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 2d515e49d89c0738ccef8f1733d5f9afe00ee979

[mlir][VectorOps] Implement insert_strided_slice conversion Summary: This diff implements the progressive lowering of insert_strided_slice. Two cases appear: 1. when the source and dest vectors have different ranks, extract the dest subvector at the proper offset and reduce to case 2. 2. when they have the same rank N: a. if the source and dest type are the same, the insertion is trivial: just forward the source b. otherwise, iterate over all N-1 D subvectors and create an extract/insert_strided_slice/insert replacement, reducing the problem to vecotrs of the same N-1 rank. This combines properly with the other conversion patterns to lower all the way to LLVM. Reviewers: ftynse, rriddle, AlexEichenberger, andydavis1, tetuante, nicolasvasilache Reviewed By: andydavis1 Subscribers: merge_guards_bot, mehdi_amini, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72317

view details

push time in 2 months

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 65678d938431c90408afa8d255cbed3d8ed8273f

[mlir][VectorOps] Implement strided_slice conversion Summary: This diff implements the progressive lowering of strided_slice to either: 1. extractelement + insertelement for the 1-D case 2. extract + optional strided_slice + insert for the n-D case. This combines properly with the other conversion patterns to lower all the way to LLVM. Appropriate tests are added. Reviewers: ftynse, rriddle, AlexEichenberger, andydavis1, tetuante Reviewed By: andydavis1 Subscribers: merge_guards_bot, mehdi_amini, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72310

view details

push time in 2 months

push eventnicolasvasilache/llvm-project

Nicolas Vasilache

commit sha acb2b617380e56f32acb33df0f83085019467906

[mlir][VectorOps] Implement insert_strided_slice conversion Summary: This diff implements the progressive lowering of insert_strided_slice. Two cases appear: 1. when the source and dest vectors have different ranks, extract the dest subvector at the proper offset and reduce to case 2. 2. when they have the same rank N: a. if the source and dest type are the same, the insertion is trivial: just forward the source b. otherwise, iterate over all N-1 D subvectors and create an extract/insert_strided_slice/insert replacement, reducing the problem to vecotrs of the same N-1 rank. This combines properly with the other conversion patterns to lower all the way to LLVM. Reviewers: ftynse, rriddle Subscribers: mehdi_amini, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72317

view details

push time in 2 months

push eventnicolasvasilache/llvm-project

Stephen Kelly

commit sha 6a3ecf4dc7ec299394e71b3124df2b3a34ed4ac3

Allow newlines in AST Matchers in clang-query files Reviewers: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71842

view details

Stephen Kelly

commit sha 831b636861ea33c3cc1c1c28384fb1800facf792

Revert "Allow newlines in AST Matchers in clang-query files" This reverts commit 6a3ecf4dc7ec299394e71b3124df2b3a34ed4ac3.

view details

Evgenii Stepanov

commit sha 04926e67fda210c9709da4f8672ac0b5147ebb90

Revert "[msan] Check qsort input." This change breaks LLVM bootstrap with ASan and MSan. FAILED: lib/ToolDrivers/llvm-lib/Options.inc OptParser.td:137:1: error: Option is equivalent to def INPUT : Option<[], "<input>", KIND_INPUT>; ^ OptParser.td:137:1: error: Other defined here def INPUT : Option<[], "<input>", KIND_INPUT>; This reverts commit caa48a6b88aeed8ae80e6ddb1eae8c6a7cbe260b.

view details

Stephen Kelly

commit sha 522ee29a4fb3814db604b585c8637247477ec057

Allow newlines in AST Matchers in clang-query files Reviewers: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71842

view details

Craig Topper

commit sha bb0138729b8d4af3d8bd888c821ff79f1350f045

[X86] Add custom widening for v2f64->v2i32 strict_fp_to_uint with avx512f, but not avx512vl. AVX512F added instruction for vector fp_to_uint conversions. With AVX512VL we can use a specific instruction that does v2f64->v4i32 with zeroes in the 2 extra elements. For non-strict nodes without AVX512VL we relied on type legalization to turn it to v4f64->v4i32 which would later be widened by op legalization to v8f64->v8i32. But type legalization doesn't currently widen strict nodes since it doesn't know how to safely and efficiently pad the extra elements. But for X86 we know padding with zeroes is safe and efficient so do that ourselves.

view details

Fangrui Song

commit sha 1417558e4a61794347c6bfbafaff7cd96985b2c3

[ELF] Improve the condition to create .interp Similar to rL362355, but with the `!config->shared` guard. (1) {gcc,clang} -fuse-ld=bfd -pie -fPIE -nostdlib a.c => .interp created (2) {gcc,clang} -fuse-ld=lld -pie -fPIE -nostdlib a.c => .interp not created (3) {gcc,clang} -fuse-ld=lld -pie -fPIE -nostdlib a.c a.so => .interp created The inconsistency of (2) is due to the condition `!Config->SharedFiles.empty()`. To make lld behave more like ld.bfd, we could change the condition to: config->hasDynSymTab && !config->dynamicLinker.empty() && script->needsInterpSection(); However, that would bring another inconsistency as can be observed with: (4) {gcc,clang} -fuse-ld=bfd -no-pie -nostdlib a.c => .interp not created

view details

Craig Topper

commit sha 90ff34e6ab38a333b16890c0d4b7ca891d213652

[X86] Add custom widening for v2i32->v2f64 strict_uint_to_fp with AVX512F, but not AVX512VL. Previously we were widening with isel patterns, but that wasn't exception safe for strict FP. So now we widen to v4i32->v4f64 during type legalization. And then let op legalization further widen to v8i32->v8f64. The vec_int_to_fp.ll changes are caused by us no longer narrowing extracts of strict_uint_to_fp to the v4i32->v2f64 instruction without AVX512VL only to have isel rewiden it. Now we just keep it wide throughout. So we don't have an opportunity to narrow the load.

view details

Mehdi Amini

commit sha b52cb5688b618a751c80e6d7ca2d1cae486c713d

Add a clang-tidy configuration file for MLIR, it is using camelBack for naming at the moment

view details

Fangrui Song

commit sha 019a92bb2832447092bb5c1faf9d03bb03b8c9c8

[ELF][test] Fix dynamic-linker.s

view details

Reid Kleckner

commit sha ad1f7a895ba452ae8d9d0743bdbf8337cf36c5d9

Revert "Make lazyload_metadata.ll resilient to the addition of new metadata kinds" This reverts commit be4704bd41a4dd8bb5c4dd5a614744c69fb3cf8e. This test fails on Windows without awk.

view details

Craig Topper

commit sha f953882113d089206821ad3113a48d873b7c7f23

[X86] Custom widen 128/256-bit vXi32 uint_to_fp on avx512f targets without avx512vl. Similar for vXi64 sint_to_fp/uint_to_fp on avx512dq without avx512vl. Previously we widened these through isel patterns, but that didn't work for STRICT_ nodes. Those need to be padded with zeroes in the upper bits which is harder to do in isel patterns.

view details

David Herzka

commit sha 4e5d134da1cf948f02fc283adc65c723c6672eaa

Make lazyload_metadata.ll resilient to the addition of new metadata kinds Summary: The specific number of records loaded depends on the number of kinds, but the difference between the lazy and not lazy cases does not. Reviewers: modocache Subscribers: llvm-commits, dexonsmith, steven_wu, hiraditya, mehdi_amini Tags: #llvm Differential Revision: https://reviews.llvm.org/D71882

view details

Eric Christopher

commit sha 2369560f4a7720b19edfbf9de14ef061307ff773

Fix -Wunused-lambda-capture warnings.

view details

Eric Christopher

commit sha 1584e2f9870fb95169cd4ea7aedc05bfabe28cf6

Remove SrcVT only used in an assert and propagate query.

view details

Kamil Rytarowski

commit sha 78f714f824fac8aa3fdd85908c41538bccefb959

[compiler-rt] [netbsd] Add support for versioned statvfs interceptors Summary: Add support for NetBSD 9.0 and newer versions of interceptors operating on struct statvfs: fstatvfs, fstatvfs1, getmntinfo, getvfsstat, statvfs, statvfs1. The default promoted interceptors are for NetBSD 9.99.26. Older ones (currently 9.0) are kept in a new NetBSD specific file: /sanitizer_common_interceptors_netbsd_compat.inc. This file defines compat interceptors and mangles `INIT_*` macros, concatenating the current interceptors and the compat ones. This redefinition is not elegant, but it avoids preprocessor madness. Define struct_statvfs90_sz for the compat purposes. Reviewers: mgorny, kcc, vitalybuka, joerg Reviewed By: mgorny Subscribers: dberris, llvm-commits, #sanitizers Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D71700

view details

Liu, Chen3

commit sha 1a7b69f5dd32980a7e0b0841a99dc65b2b887203

add custom operation for strict fpextend/fpround Differential Revision: https://reviews.llvm.org/D71892

view details

Evgenii Stepanov

commit sha 5ca97d0defeed38feec2352692f6bb80297d6712

Revert "Allow newlines in AST Matchers in clang-query files" + 1 Revert "Fix -Wunused-lambda-capture warnings." This reverts commit 2369560f4a7720b19edfbf9de14ef061307ff773. This reverts commit 522ee29a4fb3814db604b585c8637247477ec057. clang/lib/ASTMatchers/Dynamic/Parser.cpp:610:13: warning: implicit conversion turns string literal into bool: 'const char [35]' to 'bool' [-Wstring-conversion] assert(!"Newline should never be found here");

view details

Eric Christopher

commit sha 30617e4b9c871882c6fc765d12eb85c1aba87139

Remove unused static function.

view details

Eric Christopher

commit sha 3009cee75f04fb2bb28fbe7fc33cff3782c0f882

Fix a -Wcovered-switch-default warning by moving the unreachable out of the covered switch.

view details

Eric Christopher

commit sha 3d18ce71548a84f5ed69585d084964fafda14a82

Remove an unused static function.

view details

push time in 2 months

create barnchnicolasvasilache/llvm-project

branch : lower-insert-strided-slice

created branch time in 2 months

push eventnicolasvasilache/llvm-project

Nicolas Vasilache

commit sha dbab45af91786022c74598af694469d43701d09f

[mlir][VectorOps] Implement strided_slice conversion Summary: This diff implements the progressive lowering of strided_slice to either: 1. extractelement + insertelement for the 1-D case 2. extract + optional strided_slice + insert for the n-D case. This combines properly with the other conversion patterns to lower all the way to LLVM. Appropriate tests are added. Reviewers: ftynse, rriddle Subscribers: mehdi_amini, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72310

view details

push time in 2 months

push eventnicolasvasilache/llvm-project

Nicolas Vasilache

commit sha 7ce0d25056cf63012c1689e18822a354c3106ce2

[mlir][VectorOps] Implement strided_slice conversion Summary: This diff implements the progressive lowering of strided_slice to either: 1. extractelement + insertelement for the 1-D case 2. extract + optional strided_slice + insert for the n-D case. This combines properly with the other conversion patterns to lower all the way to LLVM. Appropriate tests are added. Reviewers: ftynse, rriddle Subscribers: mehdi_amini, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72310

view details

push time in 2 months

push eventnicolasvasilache/llvm-project

Kristina Brooks

commit sha b18cb9c4716677b048a88125be14d59a56865b9c

[Gnu toolchain] Look at standard GCC paths for libstdcxx by default Linux' current addLibCxxIncludePaths and addLibStdCxxIncludePaths are actually almost non-Linux-specific at all, and can be reused almost as such for all gcc toolchains. Only keep Android/Freescale/Cray hacks in Linux's version. Patch by sthibaul (Samuel Thibault) Differential Revision: https://reviews.llvm.org/D69758

view details

Stephen Kelly

commit sha 35efef5351e3b3a4e50bcd862407ef7edc0b2166

Add missing test

view details

Fangrui Song

commit sha 5511861e6dc81e702587bb4d07deba35571db293

[MC][ARM] Delete MCSection::HasData and move SHF_ARM_PURECODE logic to ARMELFObjectWriter::addTargetSectionFlags This simplifies the generic interface and also makes SHF_ARM_PURECODE more robust (fixes a TODO). Inspecting MCDataFragment contents covers more cases than MCObjectStreamer::EmitBytes.

view details

Stephen Kelly

commit sha 445f4d2310e751a6ab18f84b1d4ad13037ffd819

Clang-format previous commit

view details

Brian Gesiak

commit sha 83a9321f60d837e4d41c9c08c09ab9e4c171ada4

[Coroutines] Remove corresponding phi values when apply simplifyTerminatorLeadingToRet Summary: In addMustTailToCoroResumes, we set musttail on those resume instructions that are followed by a ret instruction. This is done by simplifyTerminatorLeadingToRet which replace a sequence of branches leading to a ret with a clone of the ret. However it forgets to remove corresponding PHI values that come from basic block of replaced branch, and may cause jumpthreading pass hangs (https://bugs.llvm.org/show_bug.cgi?id=43720) This patch fix this issue Test Plan: cppcoro library with O3+flto check-llvm Reviewers: modocache, GorNishanov, lewissbaker Reviewed By: modocache Subscribers: mehdi_amini, EricWF, hiraditya, dexonsmith, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71826 Patch by junparser (JunMa)!

view details

Liu, Chen3

commit sha ca3bf289a7f38b651280d8c6e784d4045a42b580

[NFC] Modify the format: Drop the else since we alerady returned in the if.

view details

Craig Topper

commit sha 95840866b7d86794490ed46278fa9a9d798ee5bf

[X86] Improve v2i64->v2f32 and v4i64->v4f32 uint_to_fp on avx and avx2 targets. Summary: Based on Simon's D52965, but improved to handle strict fp and improve some of the shuffling. Rather than use v2i1/v4i1 and let type legalization continue, just generate all the code with legal types and use an explicit shuffle. I also added an explicit setcc to the v4i64 code to match the semantics of vselect which doesn't just use the sign bit. I'm also using a v4i64->v4i32 truncate instead of the shuffle in Simon's original code. With the setcc this will become a pack. Future work can look into using X86ISD::BLENDV and a different shuffle that only moves the sign bit. Reviewers: RKSimon, spatel Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71956

view details

Fangrui Song

commit sha 2c053109fa83dc260042552c9132f3f528eb894e

[MC] Delete MCFragment::isDummy. NFC isa<...>, dyn_cast<...> and cast<...> are used by other fragments. Don't make MCDummyFragment special.

view details

QingShan Zhang

commit sha b9780f4f80ba82c6271b6b87fbfe6ea32d154e49

[DAGCombine] Don't check the legality of type when combine the SIGN_EXTEND_INREG This is the DAG node for SIGN_EXTEND_INREG : t21: v4i32 = sign_extend_inreg t18, ValueType:ch:v4i16 It has two operands. The first one is the value it want to extend, and the second one is the type to specify how to extend the value. For this example, it means that, it is signed extend the t18(v4i32) from v4i16 to v4i32. That is the semantics of c code: vector int foo(vector int m) { return m << 16 >> 16; } And it could be any vector type that hardware support the operation, though the type 'v4i16' is NOT legal for the target. When we are trying to combine the srl + sra, what we did now is calling the TLI.isOperationLegal(), which will also check the legality of the type. That doesn't make sense. Differential Revision: https://reviews.llvm.org/D70230

view details

Fangrui Song

commit sha 806a2b1f3d8850eb88f1f9338e86b6398841c961

[MC] Reorder MCFragment members to decrease padding sizeof(MCFragment) does not change, but some if its subclasses do, e.g. on a 64-bit platform, sizeof(MCEncodedFragment) decreases from 64 to 56, sizeof(MCDataFragment) decreases from 224 to 216.

view details

Fangrui Song

commit sha 2e4669500314cc6ba08c59abf8ee0fedd590018e

[MC] Reorder members of MCFragment's subclasses to decrease padding On a 64-bit platform: sizeof(MCBoundaryAlignFragment): 64 -> 56 sizeof(MCOrgFragment): 72 -> 64 sizeof(MCFillFragment): 80 -> 72 sizeof(MCLEBFragment): 88 -> 80

view details

MaheshRavishankar

commit sha 8aae6455c074af5ad9a2fe4e68079cfc591359ab

[mlir][spirv] Update SPIR-V documentation with information about lowering to SPIR-V dialect. Add information about - SPIRVTypeConverter - SPIRVOpLowering - Utility functions used in lowering to SPIR-V dialect.

view details

Craig Topper

commit sha 19ace449a3da4058428495283b3b15826f8d7d34

[TargetLowering] Use SETCC input type to call getBooleanContents instead of the setcc result type. This isn't a functonal change since we also check the bit width is the same and the input type is integer. This guarantees the input and output type are the same. But passing the input type makes the code more readable.

view details

Kristina Brooks

commit sha ce67db4185374016a9f5745869f9dbedfc12e6d2

[Clang] Force rtlib=platform in test to avoid fails with CLANG_DEFAULT_RTLIB Driver test `cross-linux.c` fails when CLANG_DEFAULT_RTLIB is "compiler-rt" as the it expects a GCC-style `"crtbegin.o"` after `"crti.o"` but instead receives something akin to this in the frontend invocation: ``` "crt1.o" "crti.o" "/o/b/llvm/bin/../lib/clang/10.0.0/lib/linux/clang_rt.crtbegin-x86_64.o" ``` This patch adds an override to `cross-linux.c` tests so the expected result is produced regardless of the compile-time default rtlib, as having tests fail due to that is fairly confusing. After applying the patch, the test passes regardless of the CLANG_DEFAULT_RTLIB setting. Differential Revision: https://reviews.llvm.org/D72236

view details

Anton Afanasyev

commit sha a7929533300535547f8484f7e38765234a7e7c93

[Metadata] Add TBAA struct metadata to `AAMDNode` Summary: Make `AAMDNodes`' `getAAMetadata()` and `setAAMetadata()` to take `!tbaa.struct` into account as well as `!tbaa`. This impacts llvm.org/pr42022. This is a temprorary fix needed to keep `!tbaa.struct` tag by SROA pass. New field `TBAAStruct` should be deleted when `!tbaa` tag replaces `!tbaa.struct`. Merging two `!tbaa.struct`'s to one is conservatively considered to be `nullptr` (giving `MayAlias`) -- this could be enhanced, but relying on the said future replacement. Reviewers: RKSimon, spatel, vporpo Subscribers: hiraditya, kosarev, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70924

view details

Ehud Katz

commit sha c5fb73c5d1b3f1adb77d99fc85c594b48bff08f9

[APFloat] Add recoverable string parsing errors to APFloat Implementing the APFloat part in PR4745. Differential Revision: https://reviews.llvm.org/D69770

view details

Neil Henning

commit sha 103a58c8f2b0a62a42f6eedcdef38222ff22a538

Add ExternalAAWrapperPass to createLegacyPMAAResults. Our out-of-tree custom aliasing solution for the HPC# Burst compiler here at Unity makes use of the `ExternalAAwrapperPass` infrastructure to insert our custom aliasing resolution into the core of LLVM. This is great for all cases except for function inlining, where because `createLegacyPMAAResults` does not make use of `ExternalAAWrapperPass`, when we have a definite no-alias result within a function it won't be propagated to the calling function during inlining. This commit just rectifies this oversight by adding the missing dependency. Differential Revision: https://reviews.llvm.org/D71348

view details

Kern Handa

commit sha aab72f89b19ae38ea7ac3b7b51aae68fc10aef4f

[mlir] Update mlir/CMakeLists.txt to install *.def files This is needed to consume mlir after it has been installed of the source tree. Without this, consuming mlir results a build error. Differential Revision: https://reviews.llvm.org/D72232

view details

Ehud Katz

commit sha f3f7dc3d2990151a78b246a7a1485d0c13a9fb36

[APFloat] Fix compilation warnings

view details

Shengchen Kan

commit sha 5173bfcbc4873fa12d14de0a0a4e6ac9ce960b5e

Add interface emitPrefix for MCCodeEmitter Differential Revision: https://reviews.llvm.org/D72047

view details

push time in 2 months

create barnchnicolasvasilache/llvm-project

branch : lower-strided-slice

created branch time in 2 months

push eventllvm/llvm-project

Nicolas Vasilache

commit sha 766ce87e9bed89bc3b5c2c904f1eb2d10be0d3be

[mlir][Linalg] Lower linalg.reshape to LLVM for the static case Summary: This diff adds lowering of the linalg.reshape op to LLVM. A new descriptor is created with fields initialized as follows: 1. allocatedPTr, alignedPtr and offset are copied from the source descriptor 2. sizes are copied from the static destination shape 3. strides are copied from the static strides collected with `getStridesAndOffset` Only the static case in which the target view conforms to strided memref semantics is supported. Other cases are left for future work and will be added on a per-need basis. Reviewers: ftynse, mravishankar Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72316

view details

push time in 2 months

push eventllvm/llvm-project

Nicolas Vasilache

commit sha e3750cafdb17f5b7431f18c0229bfb597dde4c88

[mlir][Linalg] Add a linalg.reshape op Summary: This diff adds a new operation to linalg to allow reshaping of an existing view into a new view in the same buffer at the same offset. More specifically: The `linalg.reshape` op produces a new view whose sizes are a reassociation of the original `view`. Depending on whether or not the reassociated MemRefType is contiguous, the resulting memref may require explicit alloc and copies. A reassociation is defined as a continous grouping of dimensions and is represented with a affine map array attribute. In the future, non-continous groupings may be allowed (i.e. permutations, reindexings etc). For now, it is assumed that either: 1. a reassociation produces and consumes contiguous MemRefType or, 2. the reshape op will be folded into its consumers (by changing the shape of the computations). All other cases are undefined behavior and a reshape op may not lower to LLVM if it cannot be proven statically that it does not require alloc+copy. A reshape may either collapse or expand dimensions, depending on the relationship between source and target memref ranks. The verification rule is that the reassociation maps are applied to the memref with the larger rank to obtain the memref with the smaller rank. In the case of a dimension expansion, the reassociation maps can be interpreted as inverse maps. Examples: ```mlir // Dimension collapse (i, j) -> i' and k -> k' %1 = linalg.reshape %0 [(i, j, k) -> (i, j), (i, j, k) -> (k)] : memref<?x?x?xf32, stride_spec> into memref<?x?xf32, stride_spec_2> ``` ```mlir // Dimension expansion i -> (i', j') and (k) -> (k') %1 = linalg.reshape %0 [(i, j, k) -> (i, j), (i, j, k) -> (k)] : memref<?x?xf32, stride_spec> into memref<?x?x?xf32, stride_spec_2> ``` The relevant invalid and roundtripping tests are added. Reviewers: AlexEichenberger, ftynse, rriddle, asaadaldien, yangjunpro Subscribers: kiszk, merge_guards_bot, mehdi_amini, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72168

view details

push time in 2 months

more