From d61d643dccb05f08e1651aa4cc769ede6a52dd5a Mon Sep 17 00:00:00 2001 From: Benjamin Kramer <kramerb@google.com> Date: Thu, 16 Apr 2020 06:53:42 -0700 Subject: [PATCH] Integrate LLVM at https://github.com/llvm/llvm-project/commit/3ee1ec0b9dd6 PiperOrigin-RevId: 306837009 Change-Id: I430ad66bada18eba9b12fb99d6bfc3229393f91b --- .../xla/transforms/xla_legalize_to_linalg.cc | 7 ++++--- .../experimental/conv_emitter/conv_emitter.cc | 9 +++++---- tensorflow/workspace.bzl | 4 ++-- third_party/mlir/BUILD | 17 +++++++++++++++++ third_party/mlir/test.BUILD | 1 + 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc b/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc index f9c041f2e28..10319a6f80d 100644 --- a/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc +++ b/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc @@ -269,7 +269,8 @@ class BroadcastInDimConverter // The input is a scalar, i.e. this is a scalar broadcast op. inputMap = AffineMap::get(nloops, /*symbolCount=*/0, b->getContext()); } else { - inputMap = AffineMap::get(nloops, /*symbolCount=*/0, dimExprs); + inputMap = AffineMap::get(nloops, /*symbolCount=*/0, dimExprs, + b->getContext()); } } return b->getAffineMapArrayAttr( @@ -295,7 +296,7 @@ class TransposeConverter b->getAffineDimExpr(permutation.index()); } return b->getAffineMapArrayAttr( - {AffineMap::get(nloops, /*symbolCount=*/0, inputExprs), + {AffineMap::get(nloops, /*symbolCount=*/0, inputExprs, b->getContext()), b->getMultiDimIdentityMap(nloops)}); } }; @@ -367,7 +368,7 @@ class ReshapeAddRemoveDimConverter return nullptr; inputExprs.resize(operandShape.size(), b->getAffineConstantExpr(0)); return b->getAffineMapArrayAttr( - {AffineMap::get(nloops, /*symbolCount=*/0, inputExprs), + {AffineMap::get(nloops, /*symbolCount=*/0, inputExprs, b->getContext()), b->getMultiDimIdentityMap(nloops)}); } }; diff --git a/tensorflow/compiler/xla/service/mlir_gpu/experimental/conv_emitter/conv_emitter.cc b/tensorflow/compiler/xla/service/mlir_gpu/experimental/conv_emitter/conv_emitter.cc index c17d686f7dc..1051220382f 100644 --- a/tensorflow/compiler/xla/service/mlir_gpu/experimental/conv_emitter/conv_emitter.cc +++ b/tensorflow/compiler/xla/service/mlir_gpu/experimental/conv_emitter/conv_emitter.cc @@ -93,7 +93,8 @@ ShapeInfo GetShapeInfo( } shape_info.affine_map = mlir::AffineMap::get( - /*dimCount=*/2 + spatial_dims.size(), /*symbolCount=*/0, affine_exprs); + /*dimCount=*/2 + spatial_dims.size(), /*symbolCount=*/0, affine_exprs, + builder.getContext()); shape_info.element_type = [&] { switch (shape.element_type()) { @@ -315,9 +316,9 @@ StatusOr<InitialMlirConvAnchors> CreateNaiveMlirConv( builder.createOrFold<mlir::AffineLoadOp>( location, input, mlir::AffineMap(input_shape_info.affine_map) - .compose( - mlir::AffineMap::get(/*dimCount=*/2 + num_spatial_dims * 2, - /*symbolCount=*/0, input_indices)), + .compose(mlir::AffineMap::get( + /*dimCount=*/2 + num_spatial_dims * 2, + /*symbolCount=*/0, input_indices, builder.getContext())), input_vars), builder.getF32Type()); }(); diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl index ae2be9508f3..5250ebe8069 100755 --- a/tensorflow/workspace.bzl +++ b/tensorflow/workspace.bzl @@ -658,8 +658,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""): ) # Check out LLVM and MLIR from llvm-project. - LLVM_COMMIT = "129cf84e69537ae5c184550f94be18da738d9261" - LLVM_SHA256 = "4b56ff735e973ee982c4f24ab5b22d56ad0734f2d12d9c57fe1c21530a5840a0" + LLVM_COMMIT = "3ee1ec0b9dd6ee2350f39ae8a418bf3ce28d06cf" + LLVM_SHA256 = "473eae82b2c9f8bace1b86018b809a1565723d0f9affaeb88d3d95b685062746" LLVM_URLS = [ "https://storage.googleapis.com/mirror.tensorflow.org/github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT), "https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT), diff --git a/third_party/mlir/BUILD b/third_party/mlir/BUILD index b98af06c50e..24655f0c24c 100644 --- a/third_party/mlir/BUILD +++ b/third_party/mlir/BUILD @@ -449,6 +449,23 @@ cc_library( ], ) +cc_library( + name = "AffineUtils", + srcs = glob( + [ + "lib/Dialect/Affine/Utils/*.cpp", + "lib/Dialect/Affine/Utils/*.h", + ], + ), + hdrs = ["include/mlir/Dialect/Affine/Utils.h"], + includes = ["include"], + deps = [ + ":Affine", + ":IR", + "@llvm-project//llvm:support", + ], +) + gentbl( name = "AffinePassIncGen", strip_include_prefix = "include", diff --git a/third_party/mlir/test.BUILD b/third_party/mlir/test.BUILD index f242ae76287..5e761ace886 100644 --- a/third_party/mlir/test.BUILD +++ b/third_party/mlir/test.BUILD @@ -207,6 +207,7 @@ cc_library( "@llvm-project//llvm:support", "@llvm-project//mlir:Affine", "@llvm-project//mlir:AffineTransforms", + "@llvm-project//mlir:AffineUtils", "@llvm-project//mlir:Analysis", "@llvm-project//mlir:IR", "@llvm-project//mlir:Pass",