Commit Graph

1039 Commits

Author SHA1 Message Date
Geoffrey Martin-Noble 38d0f96709 Switch deps AllPassesAndDialectsNoRegistration -> AllPassesAndDialects
These targets are now identical as all registration is explicit.
Temporarily leaving the old target as a (deprecated) alias while
changes propagate.

PiperOrigin-RevId: 366513211
2021-04-02 14:26:13 -07:00
A. Unique TensorFlower c315b07d9c Integrate LLVM at llvm/llvm-project@8e5f3d04f2
Updates LLVM usage to match
[8e5f3d04f269](https://github.com/llvm/llvm-project/commit/8e5f3d04f269)

PiperOrigin-RevId: 366508804
2021-04-02 14:02:15 -07:00
A. Unique TensorFlower ad442fd99a Integrate LLVM at llvm/llvm-project@17800f900d
Updates LLVM usage to match
[17800f900dca](https://github.com/llvm/llvm-project/commit/17800f900dca)

PiperOrigin-RevId: 366356934
2021-04-01 16:46:09 -07:00
Geoffrey Martin-Noble 763ff55970 Restore SingleBlockImplicitTerminator verification to mhlo.while
The internal users have been cleaned up, so we can roll this forward again.

PiperOrigin-RevId: 366313960
2021-04-01 13:04:26 -07:00
A. Unique TensorFlower f1bed7b340 Integrate LLVM at llvm/llvm-project@d61b40ed27
Updates LLVM usage to match
[d61b40ed2750](https://github.com/llvm/llvm-project/commit/d61b40ed2750)

PiperOrigin-RevId: 366288494
2021-04-01 11:05:39 -07:00
Rahul Joshi ff2cbfa2ec [MLIR] Add support for representing variadic reduce-window in HLO/LMHLO dialect.
-  Fixed a subset of transformations to handle variadic reduce-window.

PiperOrigin-RevId: 366278650
2021-04-01 10:24:50 -07:00
A. Unique TensorFlower d1f697e618 Integrate LLVM at llvm/llvm-project@abbe80fa52
Updates LLVM usage to match
[abbe80fa52c5](https://github.com/llvm/llvm-project/commit/abbe80fa52c5)

PiperOrigin-RevId: 366236030
2021-04-01 05:58:20 -07:00
A. Unique TensorFlower c23be1841c [MLIR] Add example test case for `move-up-dynamic-broadcasts-for-fusion` pass
Add exemplary test case as it appears in the lowering of two subsequent `tf.Sub`
ops.

PiperOrigin-RevId: 366219139
2021-04-01 03:24:43 -07:00
A. Unique TensorFlower eb4d20ba04 Integrate LLVM at llvm/llvm-project@e1d4fb1ebf
Updates LLVM usage to match
[e1d4fb1ebfff](https://github.com/llvm/llvm-project/commit/e1d4fb1ebfff)

PiperOrigin-RevId: 366207149
2021-04-01 01:51:23 -07:00
A. Unique TensorFlower f25ef97943 Integrate LLVM at llvm/llvm-project@777a58e05b
Updates LLVM usage to match
[777a58e05b22](https://github.com/llvm/llvm-project/commit/777a58e05b22)

PiperOrigin-RevId: 366149625
2021-03-31 17:18:25 -07:00
A. Unique TensorFlower 7b0a6bfeee Integrate LLVM at llvm/llvm-project@fcf6800506
Updates LLVM usage to match
[fcf680050686](https://github.com/llvm/llvm-project/commit/fcf680050686)

PiperOrigin-RevId: 366101230
2021-03-31 13:16:11 -07:00
A. Unique TensorFlower af3bc47a8b Integrate LLVM at llvm/llvm-project@8396aeb07c
Updates LLVM usage to match
[8396aeb07cdd](https://github.com/llvm/llvm-project/commit/8396aeb07cdd)

PiperOrigin-RevId: 366034463
2021-03-31 08:01:34 -07:00
A. Unique TensorFlower bbe0aa204c [MLIR][MHLO] Merge assuming ops with compatible witnesses
PiperOrigin-RevId: 366018349
2021-03-31 06:11:38 -07:00
Adrian Kuegel c8157ba4df Move code from helper struct to the only user.
We don't need the separate helper struct anymore, because it is now only used
in one place.

PiperOrigin-RevId: 366012639
2021-03-31 05:21:34 -07:00
Adrian Kuegel 4033a56750 Add special cases for SelectOp rank specialization.
We now use the same special cases for all ops with arity >= 2.
For binary ops, we now have only one special case if at least one of the
operands has exactly one element. In that case, we reshape both operands to
rank 1. Before, we had separate special cases whether the left-hand side
or the right-hand side have a scalar shape.

PiperOrigin-RevId: 366005835
2021-03-31 04:28:51 -07:00
A. Unique TensorFlower 9206805c58 [MLIR][MHLO] Do not yield results of ops that were moved out of assuming regions
When an op is moved out of an assuming region we already know statically that it
is independent of the assuming region. Hence, there is no need to yield its
results.

PiperOrigin-RevId: 366001405
2021-03-31 03:50:27 -07:00
A. Unique TensorFlower 8ade5d78c8 [MLIR][MHLO] Move `cstr_broadcastable` and `shape_of` out of `assuming` regions
Add pattern to move operations out of assuming op. This only valid for
constraint-independent ops, like `cstr_broadcastable` and `shape_of`. It will
eventually allow to make assuming regions' constraints independent from each
other so that they can be merged.

PiperOrigin-RevId: 365993145
2021-03-31 02:39:07 -07:00
A. Unique TensorFlower af2aaa6144 Integrate LLVM at llvm/llvm-project@afed50a14b
Updates LLVM usage to match
[afed50a14b34](https://github.com/llvm/llvm-project/commit/afed50a14b34)

PiperOrigin-RevId: 365986449
2021-03-31 01:37:43 -07:00
A. Unique TensorFlower eade942635 [MLIR][MHLO] Add pattern to move ops into the assuming region
This will eventually allow to make assuming regions' constraints independent
from each other.

PiperOrigin-RevId: 365985081
2021-03-31 01:23:31 -07:00
Geoffrey Martin-Noble 5ec66775d4 Temporarily relax restriction on mhlo.while terminator
Some internal tests are failing, so relaxing this restriction
temporarily while we investigate.

PiperOrigin-RevId: 365949611
2021-03-30 19:44:07 -07:00
Geoffrey Martin-Noble 5d65758e8c Canonicalize MHLO Case and If Ops with constant conditions
ReplaceOpWithRegion was taken directly from ScfOps. We should maybe put that somewhere common in core.

PiperOrigin-RevId: 365936724
2021-03-30 17:58:01 -07:00
Geoffrey Martin-Noble 2fb2a92c6e Verify mhlo.if region return types match op
This matches the behavior of mhlo.case. Additionally, fix the verification of CaseOp in the case of nested ops with mhlo.return-containing regions.

PiperOrigin-RevId: 365936672
2021-03-30 17:57:20 -07:00
Russell Power 3be9874d82 Remove comments for license declarations. These can get out of date/stale.
PiperOrigin-RevId: 365936646
2021-03-30 17:55:42 -07:00
A. Unique TensorFlower 00552afdd3 Integrate LLVM at llvm/llvm-project@c06a8f9caa
Updates LLVM usage to match
[c06a8f9caa51](https://github.com/llvm/llvm-project/commit/c06a8f9caa51)

PiperOrigin-RevId: 365935998
2021-03-30 17:52:35 -07:00
Geoffrey Martin-Noble 7a9394dca5 Restrict MHLO control flow ops to single-block regions
PiperOrigin-RevId: 365935824
2021-03-30 17:51:03 -07:00
A. Unique TensorFlower e78c59d927 Integrate LLVM at llvm/llvm-project@73adc05ced
Updates LLVM usage to match
[73adc05cedb2](https://github.com/llvm/llvm-project/commit/73adc05cedb2)

PiperOrigin-RevId: 365901717
2021-03-30 14:49:19 -07:00
A. Unique TensorFlower 3d8095a5ec Integrate LLVM at llvm/llvm-project@77d81c2270
Updates LLVM usage to match
[77d81c2270c6](https://github.com/llvm/llvm-project/commit/77d81c2270c6)

PiperOrigin-RevId: 365870238
2021-03-30 12:27:56 -07:00
A. Unique TensorFlower f90042321a Integrate LLVM at llvm/llvm-project@c51e91e046
Updates LLVM usage to match
[c51e91e04681](https://github.com/llvm/llvm-project/commit/c51e91e04681)

PiperOrigin-RevId: 365802786
2021-03-30 07:06:04 -07:00
Adrian Kuegel c1a6ae8994 Generalize the HloBinaryElementwiseAdaptor
We can use it also for ternary ops like Select if we change the signature so
that a ValueRange is passed in.
Also remove special casing for HloComplexAdaptor. It can be handled with the
generic adaptor as well.

PiperOrigin-RevId: 365777493
2021-03-30 03:53:53 -07:00
Adrian Kuegel 6388e8d9ee mlir-hlo-opt: set preloadDialectsInContext to false.
This requires specifying dependent dialects in several passes.

PiperOrigin-RevId: 365758084
2021-03-30 01:07:14 -07:00
A. Unique TensorFlower 9ebadc4c4d Integrate LLVM at llvm/llvm-project@482283042f
Updates LLVM usage to match
[482283042f79](https://github.com/llvm/llvm-project/commit/482283042f79)

PiperOrigin-RevId: 365710568
2021-03-29 18:29:48 -07:00
A. Unique TensorFlower 12a82dfe44 Integrate LLVM at llvm/llvm-project@20d5c42e0e
Updates LLVM usage to match
[20d5c42e0ef5](https://github.com/llvm/llvm-project/commit/20d5c42e0ef5)

PiperOrigin-RevId: 365666232
2021-03-29 14:37:03 -07:00
A. Unique TensorFlower 85a306d356 [MLIR][MHLO] Add pattern to inline broadcasted shapes
Simplify reasoning about `cstr_broadcastable` ops in the
`mhlo-move-up-dynamic-broadcasts-for-fusion` pass.

PiperOrigin-RevId: 365560893
2021-03-29 06:32:32 -07:00
A. Unique TensorFlower fb819c1de8 [MLIR][MHLO] Apply patterns in MoveUpDynamicBroadcastsForFusionPass greedily
PiperOrigin-RevId: 365556488
2021-03-29 06:02:06 -07:00
A. Unique TensorFlower 238c1d8a92 Integrate LLVM at llvm/llvm-project@594e0ba969
Updates LLVM usage to match
[594e0ba96967](https://github.com/llvm/llvm-project/commit/594e0ba96967)

PiperOrigin-RevId: 365282704
2021-03-26 16:45:20 -07:00
A. Unique TensorFlower 9b7479f907 Integrate LLVM at llvm/llvm-project@4157a079af
Updates LLVM usage to match
[4157a079afbf](https://github.com/llvm/llvm-project/commit/4157a079afbf)

PiperOrigin-RevId: 365150758
2021-03-25 16:39:37 -07:00
Geoffrey Martin-Noble a2b6060c0c Add folder for HLO NotOp
PiperOrigin-RevId: 364989658
2021-03-25 02:08:38 -07:00
A. Unique TensorFlower cbef26c6a8 Integrate LLVM at llvm/llvm-project@1f6a57c1a0
Updates LLVM usage to match
[1f6a57c1a0fa](https://github.com/llvm/llvm-project/commit/1f6a57c1a0fa)

PiperOrigin-RevId: 364804812
2021-03-24 08:11:34 -07:00
A. Unique TensorFlower 52d1744285 Integrate LLVM at llvm/llvm-project@3e0ad11543
Updates LLVM usage to match
[3e0ad1154396](https://github.com/llvm/llvm-project/commit/3e0ad1154396)

PiperOrigin-RevId: 364790509
2021-03-24 06:45:22 -07:00
Adrian Kuegel a34aa699f8 Fix tanh lowering for NaN input.
If the input is NaN, the result should be NaN, too.

PiperOrigin-RevId: 364788902
2021-03-24 06:34:36 -07:00
A. Unique TensorFlower 7dd0fe4592 Integrate LLVM at llvm/llvm-project@d709dcc090
Updates LLVM usage to match
[d709dcc09097](https://github.com/llvm/llvm-project/commit/d709dcc09097)

PiperOrigin-RevId: 364688656
2021-03-23 17:58:45 -07:00
Stella Laurenzo 7f2bf48b8b Integrate LLVM at llvm/llvm-project@b24436ac96
Updates LLVM usage to match
[b24436ac96bd](https://github.com/llvm/llvm-project/commit/b24436ac96bd)

PiperOrigin-RevId: 364615807
2021-03-23 12:20:17 -07:00
A. Unique TensorFlower 8987dfd1d6 [MLIR][HLO] Move broadcasts over n-ary shape-preserving ops
This will open up more fusion opportunities.

PiperOrigin-RevId: 364577231
2021-03-23 09:38:39 -07:00
A. Unique TensorFlower 5bc4bf0834 Integrate LLVM at llvm/llvm-project@0776eca7a4
Updates LLVM usage to match
[0776eca7a4e7](https://github.com/llvm/llvm-project/commit/0776eca7a4e7)

PiperOrigin-RevId: 364552759
2021-03-23 07:26:28 -07:00
A. Unique TensorFlower 618223778d Integrate LLVM at llvm/llvm-project@5657f93e78
Updates LLVM usage to match
[5657f93e788f](https://github.com/llvm/llvm-project/commit/5657f93e788f)

PiperOrigin-RevId: 364541987
2021-03-23 06:15:46 -07:00
A. Unique TensorFlower 1a6483e229 Integrate LLVM at llvm/llvm-project@e990fa2170
Updates LLVM usage to match
[e990fa217031](https://github.com/llvm/llvm-project/commit/e990fa217031)

PiperOrigin-RevId: 364529739
2021-03-23 04:39:42 -07:00
A. Unique TensorFlower 54f37abc28 [MHLO] Move broadcasts over elementwise ops
Move up dynamic broadcasts and shape computations to allow for more fusion
opportunities.

PiperOrigin-RevId: 364514158
2021-03-23 02:34:41 -07:00
Mehdi Amini 98debb127d Update Tensorflow to prepare for changing the default value of `preloadDialectsInContext`
This makes tf-opt more strict on the dialect dependencies, and immediately reduces
the number of dialects loaded.
The canonicalization of TensorFlow graphs showed on the profile that Linalg pattern
were dominated the time, which is unexpected since Linalg is not even intended to be
used there.

PiperOrigin-RevId: 364087027
2021-03-20 11:01:55 -07:00
A. Unique TensorFlower 431be0e9b2 Integrate LLVM at llvm/llvm-project@cd442157cf
Updates LLVM usage to match
[cd442157cff4](https://github.com/llvm/llvm-project/commit/cd442157cff4)

PiperOrigin-RevId: 363873565
2021-03-19 05:55:54 -07:00
Benjamin Kramer 59fa7c0ef7 [MHLO:linalg] Lower all dynamic broadcasts of static shapes to linalg.generic
We only need the memref_reinterpret_cast if we don't know whether a dimension
gets expanded or not. With static shapes we know that a dimension can only be
expanded if it's a static 1, so lower it in the same way we lower fully
static broadcasts.

PiperOrigin-RevId: 363859181
2021-03-19 03:52:02 -07:00