Commit Graph

964 Commits

Author SHA1 Message Date
A. Unique TensorFlower bba9968ff0 Integrate LLVM at llvm/llvm-project@499bce3aba
Updates LLVM usage to match
[499bce3abab8](https://github.com/llvm/llvm-project/commit/499bce3abab8)

PiperOrigin-RevId: 342921326
2020-11-17 12:30:18 -08:00
A. Unique TensorFlower 7a6a6ffa40 Integrate LLVM at llvm/llvm-project@65f3e121fe
Updates LLVM usage to match
[65f3e121fe4f](https://github.com/llvm/llvm-project/commit/65f3e121fe4f)

PiperOrigin-RevId: 342859791
2020-11-17 07:38:03 -08:00
Stephan Herhut 0c7152e65c Extend fusion root heuristic to also work in partially bufferized programs.
We now follow data flow though tensor_cast, tensor_load and tensor_to_memref
operations.

PiperOrigin-RevId: 342851104
2020-11-17 06:34:48 -08:00
A. Unique TensorFlower d9113e0b4d Integrate LLVM at llvm/llvm-project@a8db144169
Updates LLVM usage to match
[a8db14416927](https://github.com/llvm/llvm-project/commit/a8db14416927)

PiperOrigin-RevId: 342613747
2020-11-16 05:13:36 -08:00
Tres Popp be9ae88eaa Consider aliases through control flow for lhlo-fuse-linalg.
This should handle scf.if and shape.assuming regions,
which we care about in kernel_gen.

PiperOrigin-RevId: 342584762
2020-11-16 01:12:45 -08:00
Ben Vanik 1afada97ed Don't override MSVC CRT defaults.
You can't mix CRT modes in binaries, so overriding these here breaks any build that links these files in that isn't also doing these same non-default overrides.

PiperOrigin-RevId: 342447232
2020-11-14 13:51:28 -08:00
Ben Vanik 88a5bde51f Fixing M_PI compile error on MSVC.
M_PI and other math constants (used in chlo_legalize_hlo_patterns.td)
are not part of the C++ standard and must be enabled on MSVC
(similar to _GNU_SOURCE adding glibc symbols to posix headers).

PiperOrigin-RevId: 342432987
2020-11-14 10:02:04 -08:00
Smit Hinsu d0901a83e5 Enable fallback legalization for MaxPoolGradGrad and MaxPool3DGradGrad ops
Requires,
* Override for ReducePrecision in HloMlirBuilder
* Sinking of constants for ReduceWindow op

PiperOrigin-RevId: 342330848
2020-11-13 13:49:05 -08:00
Tres Popp 8c32f52323 Integrate LLVM at llvm/llvm-project@c30ab6c2a3
Updates LLVM usage to match
[c30ab6c2a307](https://github.com/llvm/llvm-project/commit/c30ab6c2a307)

PiperOrigin-RevId: 342309362
2020-11-13 11:59:03 -08:00
A. Unique TensorFlower 582a6fa7cc Integrate LLVM at llvm/llvm-project@76b6cb515b
Updates LLVM usage to match
[76b6cb515b2f](https://github.com/llvm/llvm-project/commit/76b6cb515b2f)

PiperOrigin-RevId: 342266979
2020-11-13 08:26:36 -08:00
Benjamin Kramer c340d561b7 Integrate LLVM at llvm/llvm-project@a7b6574144
Updates LLVM usage to match
[a7b657414415](https://github.com/llvm/llvm-project/commit/a7b657414415)

PiperOrigin-RevId: 342233973
2020-11-13 03:49:45 -08:00
Stephan Herhut c344695bca Properly configure patterns in hlo to lhlo conversion with typeconverter.
Otherwise, materializations for partial conversions do not work.

PiperOrigin-RevId: 342215962
2020-11-13 00:58:51 -08:00
Rahul Joshi bbaad416a1 [MLIR] Update tests to eliminate public function declarations.
- Also fixed kernel_gen embed_memref_prints to mark the declarations inserted private.
- This is in prep for proposed MLIR change to disallow public declarations.

PiperOrigin-RevId: 342081252
2020-11-12 10:42:59 -08:00
Benjamin Kramer c10be5282b Integrate LLVM at llvm/llvm-project@c8d73d939f
Updates LLVM usage to match
[c8d73d939fa4](https://github.com/llvm/llvm-project/commit/c8d73d939fa4)

PiperOrigin-RevId: 342068766
2020-11-12 09:51:12 -08:00
Rahul Joshi 1958f228ec [MLIR:HLO] Extend CustomCall to support multiple outputs.
- Extend MHLO CustomCall to have multiple tensors as results.
- Extend LHLO CustomCall to have multiple memrefs for output operands.
- Fix HLO->LHLO and XLA HLO->LHLO mapping for CustomCall to setup the
  operand_segment_sizes attribute correctly.

PiperOrigin-RevId: 342067762
2020-11-12 09:46:25 -08:00
A. Unique TensorFlower af1914a174 Integrate LLVM at llvm/llvm-project@02af11094f
Updates LLVM usage to match
[02af11094fe4](https://github.com/llvm/llvm-project/commit/02af11094fe4)

PiperOrigin-RevId: 342035247
2020-11-12 06:27:59 -08:00
Tres Popp 1dffa62fe9 Fold away shape.shape_of(mhlo.dynamic_reshape(inp, shape))
This specific pattern can be replaced with the shape
passed to dynamic_reshape. This is implemented as a
canonicalization on mhlo.dynamic_reshape to fit in
the infrastructure of canonicalization.

PiperOrigin-RevId: 342009365
2020-11-12 02:48:26 -08:00
A. Unique TensorFlower 7fc4985eae Integrate LLVM at llvm/llvm-project@1cbf8e89b5
Updates LLVM usage to match
[1cbf8e89b54d](https://github.com/llvm/llvm-project/commit/1cbf8e89b54d)

PiperOrigin-RevId: 341867974
2020-11-11 11:10:12 -08:00
Rahul Joshi 745c8aa0b1 Extract some duplicated code into a helper function.
- Extract code to create result memref's into a ConvertResults function.
- Also fix a bug when using reifyReturnTypes: use correct index for result_shape instead
  of always using the first element.

PiperOrigin-RevId: 341852227
2020-11-11 10:01:00 -08:00
Alexander Belyaev d4f2c767d3 [HLO] Fix HLO DynamicBroadcastInDimOp -> LHLO lowering.
The conversion had a bug in computation of strides and sizes args for std.memref_reinterpret_cast. The previous version also relied on linalg::ReshapeOp to do broadcasting when the rank of the output was higher than the rank of the input. Now the broadcasting is entirely done via descriptor modification and linalg::ReshapeOp was replaced with CopyOp.

PiperOrigin-RevId: 341379871
2020-11-09 04:24:40 -08:00
Smit Hinsu 4ef12aa000 Update GetDimensionSize and SetDimensionSize ops to use I64 attribute for dimension
This is to match with HLO semantics and general dimension semantics in MLIR.

Also,

* Define minimal verifier for these ops.
* Add folder for SetDimensionSize op on static shaped dimension.
* Fix assumption of ranked shape in GetDimensionSize op.

PiperOrigin-RevId: 341150923
2020-11-06 18:03:04 -08:00
A. Unique TensorFlower 3238f8226f Integrate LLVM at llvm/llvm-project@f147f59cd3
Updates LLVM usage to match
[f147f59cd377](https://github.com/llvm/llvm-project/commit/f147f59cd377)

PiperOrigin-RevId: 341140324
2020-11-06 16:33:56 -08:00
Robert Suderman a926e0f040 Removed Op(Complex, Real) lowering to address complex type inference issue
Lowerings that depended on operations between real and complex types may
not infer the correct intermediate type. Removing these operations as
they are not technically legally generated operations. Updated tests
to validate this.

PiperOrigin-RevId: 341128903
2020-11-06 15:24:23 -08:00
A. Unique TensorFlower 3dcd8b4ba2 Integrate LLVM at llvm/llvm-project@d0b8810fe4
Updates LLVM usage to match
[d0b8810fe4ec](https://github.com/llvm/llvm-project/commit/d0b8810fe4ec)

PiperOrigin-RevId: 341081862
2020-11-06 11:09:07 -08:00
A. Unique TensorFlower d72a022063 Integrate LLVM at llvm/llvm-project@0e76a9bc58
Updates LLVM usage to match
[0e76a9bc5834](https://github.com/llvm/llvm-project/commit/0e76a9bc5834)

PiperOrigin-RevId: 341056157
2020-11-06 08:49:12 -08:00
Marius Brehler f09db1fea0 PR #44589: Introduce MHLO_BUILD_EMBEDDED build option
Imported from GitHub PR https://github.com/tensorflow/tensorflow/pull/44589

This option allows to skip calling `find_package(MLIR)`, enabling to
embed MHLO into other project, e.g. IREE.
Copybara import of the project:

--
715299e594c95ce9d4f45dc154ba8a4acb196289 by Marius Brehler <marius.brehler@iml.fraunhofer.de>:

Introduce MHLO_BUILD_EMBEDDED build option

This option allows to skip calling `find_package(MLIR)`, enabling to
embed MHLO into other project, e.g. IREE.

--
6a9cd1adb69dfd27e4306566085c2edcb9e266bf by Marius Brehler <marius.brehler@iml.fraunhofer.de>:

Update tensorflow/compiler/mlir/hlo/CMakeLists.txt

Co-authored-by: Geoffrey Martin-Noble <gcmn@google.com>
PiperOrigin-RevId: 341046504
2020-11-06 07:40:28 -08:00
Tres Popp af4c9774dc Handle rank 1 broadcasts in unranked kernel lowering.
Previously this started at rank 2 after checking for scalars and equal shapes. This resulted in cases such as <1xf32> + <2xf32> being treated as impossible.

PiperOrigin-RevId: 341043965
2020-11-06 07:22:43 -08:00
A. Unique TensorFlower c30ea47682 Integrate LLVM at llvm/llvm-project@4d79ef814a
Updates LLVM usage to match
[4d79ef814aed](https://github.com/llvm/llvm-project/commit/4d79ef814aed)

PiperOrigin-RevId: 341037948
2020-11-06 06:26:56 -08:00
A. Unique TensorFlower 209dc24a44 Integrate LLVM at llvm/llvm-project@624d3fe0e4
Updates LLVM usage to match
[624d3fe0e41e](https://github.com/llvm/llvm-project/commit/624d3fe0e41e)

PiperOrigin-RevId: 341030651
2020-11-06 05:18:35 -08:00
A. Unique TensorFlower d134a92e2d Integrate LLVM at llvm/llvm-project@930cf1cb9f
Updates LLVM usage to match
[930cf1cb9fdb](https://github.com/llvm/llvm-project/commit/930cf1cb9fdb)

PiperOrigin-RevId: 340985671
2020-11-05 21:45:35 -08:00
A. Unique TensorFlower 88a3bcbc72 Integrate LLVM at llvm/llvm-project@bb43a0cd4a
Updates LLVM usage to match
[bb43a0cd4adc](https://github.com/llvm/llvm-project/commit/bb43a0cd4adc)

PiperOrigin-RevId: 340963390
2020-11-05 18:04:21 -08:00
A. Unique TensorFlower 2d9022497f Integrate LLVM at llvm/llvm-project@2eadbc8614
Updates LLVM usage to match
[2eadbc86142b](https://github.com/llvm/llvm-project/commit/2eadbc86142b)

PiperOrigin-RevId: 340930608
2020-11-05 14:37:20 -08:00
A. Unique TensorFlower 7858fe51af Integrate LLVM at llvm/llvm-project@2f84b59a4c
Updates LLVM usage to match
[2f84b59a4cf9](https://github.com/llvm/llvm-project/commit/2f84b59a4cf9)

PiperOrigin-RevId: 340842817
2020-11-05 06:53:35 -08:00
A. Unique TensorFlower 4c58c6a7cd Integrate LLVM at llvm/llvm-project@b715fa330d
Updates LLVM usage to match
[b715fa330dfa](https://github.com/llvm/llvm-project/commit/b715fa330dfa)

PiperOrigin-RevId: 340833409
2020-11-05 05:35:30 -08:00
Dmitry Volodin 1821c69910 PR #44405: Fix typos in compiler directory
Imported from GitHub PR https://github.com/tensorflow/tensorflow/pull/44405

Splitting #43857 by top-level directories.
Copybara import of the project:

--
fa5da7d5478649d11321dcac9f867b0a57e4798a by Dmitry Volodin <mr.molkree@gmail.com>:

fix typos in compiler dir

--
4d3c9f047f7ecb8ab299f1bf28a86fd39096eee7 by Dmitry Volodin <mr.molkree@gmail.com>:

fix one test as "atleast" in it comes from Bazel

--
9440ebaaa9fc4a735f7f72f0c8f0de4ec58afbd6 by Dmitry Volodin <mr.molkree@gmail.com>:

a bit more

PiperOrigin-RevId: 340819994
2020-11-05 03:31:54 -08:00
A. Unique TensorFlower 5f9c75c273 Integrate LLVM at llvm/llvm-project@5b29d26b21
Updates LLVM usage to match
[5b29d26b21bb](https://github.com/llvm/llvm-project/commit/5b29d26b21bb)

PiperOrigin-RevId: 340714785
2020-11-04 13:19:10 -08:00
Alexander Belyaev 3d930d08c2 [HLO] Delete LHLO memref cast ops and migrate to STD ones.
PiperOrigin-RevId: 340663578
2020-11-04 09:26:34 -08:00
Richard Uhler 82031b356c Improve error message for improperly shaped slice indices.
The slice indices must be rank-1 and have the same number of elements of the
rank of the operand. Give reasonable error messages for violations of these
requirements instead of a misleading error message that the types of the
indices don't all match.

PiperOrigin-RevId: 340660822
2020-11-04 09:10:51 -08:00
A. Unique TensorFlower f9c87731d9 Integrate LLVM at llvm/llvm-project@76313288cd
Updates LLVM usage to match
[76313288cd7d](https://github.com/llvm/llvm-project/commit/76313288cd7d)

PiperOrigin-RevId: 340648011
2020-11-04 07:56:48 -08:00
A. Unique TensorFlower 52b8c9e4c4 Integrate LLVM at llvm/llvm-project@8475fa6ed6
Updates LLVM usage to match
[8475fa6ed6bb](https://github.com/llvm/llvm-project/commit/8475fa6ed6bb)

PiperOrigin-RevId: 340635950
2020-11-04 06:22:16 -08:00
A. Unique TensorFlower 2cc16c5f71 Integrate LLVM at llvm/llvm-project@33945cdd62
Updates LLVM usage to match
[33945cdd62c4](https://github.com/llvm/llvm-project/commit/33945cdd62c4)

PiperOrigin-RevId: 340556042
2020-11-03 17:26:06 -08:00
Marius Brehler ff9b8c6f65 PR #44499: Add missing dep on MLIRMhloPassIncGen target
Imported from GitHub PR https://github.com/tensorflow/tensorflow/pull/44499

The file `sink_constants_to_control_flow.cc` includes the header
`PassDetail.h`, which itself includes `mhlo_passes.h.inc`. The latter is
not guaranteed to be already generated since there was no dependency set
to MLIRMhloPassIncGen.
Copybara import of the project:

--
0ff51ccc88c1ba049eb2e9555afb54079bea39c9 by Marius Brehler <marius.brehler@iml.fraunhofer.de>:

Add missing dep on MLIRMhloPassIncGen target

The file `sink_constants_to_control_flow.cc` includes the header
`PassDetail.h`, which itself includes `mhlo_passes.h.inc`. The latter is
not guaranteed to be already generated since there was no dependency set
to MLIRMhloPassIncGen.

PiperOrigin-RevId: 340485068
2020-11-03 11:18:48 -08:00
A. Unique TensorFlower 880ebcffbb Integrate LLVM at llvm/llvm-project@701456b523
Updates LLVM usage to match
[701456b52355](https://github.com/llvm/llvm-project/commit/701456b52355)

PiperOrigin-RevId: 340477025
2020-11-03 10:43:14 -08:00
Sean Silva d3ea3abdec Remove `results_escape_functions` from HloLegalizeToLhlo
PiperOrigin-RevId: 340464958
2020-11-03 09:49:56 -08:00
A. Unique TensorFlower 46dac6955b Integrate LLVM at llvm/llvm-project@756f597841
Updates LLVM usage to match
[756f59784108](https://github.com/llvm/llvm-project/commit/756f59784108)

PiperOrigin-RevId: 340340747
2020-11-02 16:32:38 -08:00
A. Unique TensorFlower e866aac3ac Integrate LLVM at llvm/llvm-project@72ddd559b8
Updates LLVM usage to match
[72ddd559b8aa](https://github.com/llvm/llvm-project/commit/72ddd559b8aa)

PiperOrigin-RevId: 340292055
2020-11-02 12:29:52 -08:00
Tres Popp 81e8d778c4 Fix bug using std.rank instead of shape.rank
PiperOrigin-RevId: 339890070
2020-10-30 09:59:24 -07:00
Tres Popp 76b30fd426 Move unranked chlo lowering to transform_unranked_hlo.
Additionally:
- Forward listeners through new if/else op builders.
This corrects an error that led to incomplete legalization of broadcasted op
lowering.
- Use OpConversionPattern to ensure up to date operand values are used.
PiperOrigin-RevId: 339838833
2020-10-30 02:56:44 -07:00
A. Unique TensorFlower e188ef10f2 Integrate LLVM at llvm/llvm-project@9bb9b737c5
Updates LLVM usage to match
[9bb9b737c557](https://github.com/llvm/llvm-project/commit/9bb9b737c557)

PiperOrigin-RevId: 339799862
2020-10-29 20:28:56 -07:00
Thomas Joerg e888b04a5c Integrate LLVM at llvm/llvm-project@6648414b2b
Updates LLVM usage to match
[6648414b2b7d](https://github.com/llvm/llvm-project/commit/6648414b2b7d)

PiperOrigin-RevId: 339727680
2020-10-29 12:53:05 -07:00