From 477e7c9044fcd3b35fa5c5509dcce286c4747915 Mon Sep 17 00:00:00 2001 From: Max Dawkins Date: Thu, 24 Oct 2024 17:52:18 -0400 Subject: [PATCH 1/2] Integrate LLVM at llvm/llvm-project@6c64c8a6f3f7 --- WORKSPACE.bazel | 4 ++-- build_tools/llvm_version.txt | 2 +- .../linalg/transforms/TypeConversion.cpp | 19 +++++++++---------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 9d145aaef00..76f91fef2dc 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -17,9 +17,9 @@ workspace(name = "stablehlo") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -LLVM_COMMIT = "12bcea3292a1559ecad549b5d34c8abcf19f2626" +LLVM_COMMIT = "6c64c8a6f3f77c30745c751d4163ff6bf2fc323b" -LLVM_SHA256 = "1ce4ec480f47e8b46cea858a652d18dff18844c821d18836c41edbf36151c209" +LLVM_SHA256 = "a27f8452e8a4267acb7bf59ea4dae012cec22e37624a67206b927985554e3640" http_archive( name = "llvm-raw", diff --git a/build_tools/llvm_version.txt b/build_tools/llvm_version.txt index 3792626f643..33b25f0d787 100644 --- a/build_tools/llvm_version.txt +++ b/build_tools/llvm_version.txt @@ -1 +1 @@ -12bcea3292a1559ecad549b5d34c8abcf19f2626 +6c64c8a6f3f77c30745c751d4163ff6bf2fc323b diff --git a/stablehlo/conversions/linalg/transforms/TypeConversion.cpp b/stablehlo/conversions/linalg/transforms/TypeConversion.cpp index beb5b780e12..76c2900e6a7 100644 --- a/stablehlo/conversions/linalg/transforms/TypeConversion.cpp +++ b/stablehlo/conversions/linalg/transforms/TypeConversion.cpp @@ -47,36 +47,35 @@ Type convertShapedType(ShapedType shapedType) { return shapedType; } -std::optional materializeCastFromIllegal(OpBuilder &builder, Type type, - ValueRange inputs, - Location loc) { +Value materializeCastFromIllegal(OpBuilder &builder, Type type, + ValueRange inputs, Location loc) { Type fromType = getElementTypeOrSelf(inputs[0].getType()); Type toType = getElementTypeOrSelf(type); if ((!fromType.isSignedInteger() && !fromType.isUnsignedInteger()) || !toType.isSignlessInteger()) - return std::nullopt; + return Value(); // Use unrealized conversion casts to do signful->signless conversions. return builder.create(loc, type, inputs[0]) ->getResult(0); } -std::optional materializeCastToIllegal(OpBuilder &builder, Type type, - ValueRange inputs, Location loc) { +Value materializeCastToIllegal(OpBuilder &builder, Type type, ValueRange inputs, + Location loc) { Type fromType = getElementTypeOrSelf(inputs[0].getType()); Type toType = getElementTypeOrSelf(type); if (!fromType.isSignlessInteger() || (!toType.isSignedInteger() && !toType.isUnsignedInteger())) - return std::nullopt; + return Value(); // Use unrealized conversion casts to do signless->signful conversions. return builder.create(loc, type, inputs[0]) ->getResult(0); } -std::optional scalarToTensor(OpBuilder &builder, Type type, - ValueRange inputs, Location loc) { +Value scalarToTensor(OpBuilder &builder, Type type, ValueRange inputs, + Location loc) { assert(inputs.size() == 1); if (mlir::isa(inputs.front().getType())) { - return std::nullopt; + return Value(); } Value result = builder From 5e4c66050c39c12273d1f634c0eeb3137604aea0 Mon Sep 17 00:00:00 2001 From: Max Dawkins Date: Thu, 24 Oct 2024 21:25:20 -0400 Subject: [PATCH 2/2] docs --- docs/generated/stablehlo_linalg_passes.md | 1 + docs/generated/stablehlo_passes.md | 7 +++++++ docs/generated/stablehlo_tosa_passes.md | 1 + 3 files changed, 9 insertions(+) diff --git a/docs/generated/stablehlo_linalg_passes.md b/docs/generated/stablehlo_linalg_passes.md index c9f1c3e2b5c..9d1faad06de 100755 --- a/docs/generated/stablehlo_linalg_passes.md +++ b/docs/generated/stablehlo_linalg_passes.md @@ -4,6 +4,7 @@ _Legalize StableHLO to LinAlg_ + #### Options ``` -enable-primitive-ops : Lower to primitive Linalg ops (map, reduce and transpose) when possible, instead of linalg.generic diff --git a/docs/generated/stablehlo_passes.md b/docs/generated/stablehlo_passes.md index ed591fab242..4edc32cae0b 100755 --- a/docs/generated/stablehlo_passes.md +++ b/docs/generated/stablehlo_passes.md @@ -3,6 +3,7 @@ _Legalizes from CHLO ops flow to StableHLO and Shape ops_ + ### `-shape-legalize-to-stablehlo` _Legalize shape-related ops to StableHLO._ @@ -17,6 +18,7 @@ compilation pipelines that use StableHLO operations to model dynamism. _Folds StableHLO operations_ + #### Options ``` -fold-float : Allow for potentially lossy computations using float type. @@ -25,6 +27,7 @@ _Folds StableHLO operations_ _Canonicalizes StableHLO operations_ + ### `-stablehlo-canonicalize-dynamism` _Canonicalizes dynamic StableHLO ops into static ops._ @@ -87,6 +90,7 @@ func.func @tan_op_non_complex(%arg0: tensor<4xf64>) -> tensor<4xf64> { _Pass to transform the IR to be on signless integers._ + ### `-stablehlo-legalize-composite-to-call` _Replaces composite ops with a call to their decomposition._ @@ -232,6 +236,7 @@ func.func @add(%arg0: tensor>, %arg1: tenso _Legalize StableHLO to VHLO._ + ### `-stablehlo-refine-arguments` _Refines the argument shapes of the main function._ @@ -293,11 +298,13 @@ static shapes throughout the program. _Legalize VHLO to StableHLO._ + ### `-vhlo-to-version` _Convert between versions of VHLO._ + #### Options ``` -target : The target version. Must be a version of the form #.#.# . diff --git a/docs/generated/stablehlo_tosa_passes.md b/docs/generated/stablehlo_tosa_passes.md index 20ea0c72b63..62203d61c22 100755 --- a/docs/generated/stablehlo_tosa_passes.md +++ b/docs/generated/stablehlo_tosa_passes.md @@ -3,6 +3,7 @@ _Legalize StableHLO to TOSA_ + ### `-stablehlo-prepare-for-tosa` _Prepare StableHLO for legalization to TOSA_