Updates LLVM usage to match
[220de1f32add](https://github.com/llvm/llvm-project/commit/220de1f32add)

PiperOrigin-RevId: 337270545
Change-Id: Ie25da9af95cdf3b8db1ad57fdfc0d18c10ee3fc5
This commit is contained in:
Adrian Kuegel 2020-10-15 02:53:17 -07:00 committed by TensorFlower Gardener
parent 34592c6663
commit ca0607c198
8 changed files with 41 additions and 43 deletions

View File

@ -56,9 +56,9 @@ void PopulateMhloToStdPatterns(OwningRewritePatternList *patterns,
MLIRContext *ctx); MLIRContext *ctx);
// Collection of rewrite patterns for lowering of HLO to LHLO dialect. // Collection of rewrite patterns for lowering of HLO to LHLO dialect.
void populateHLOToLHLOConversionPattern( void populateHLOToLHLOConversionPattern(MLIRContext *context,
MLIRContext *context, BufferAssignmentTypeConverter *converter, BufferizeTypeConverter *converter,
OwningRewritePatternList *patterns); OwningRewritePatternList *patterns);
// Collection of rewrite patterns for lowering of HLO to Linalg dialect. // Collection of rewrite patterns for lowering of HLO to Linalg dialect.
void populateHLOToLinalgConversionPattern(MLIRContext *context, void populateHLOToLinalgConversionPattern(MLIRContext *context,

View File

@ -42,7 +42,7 @@ namespace mhlo {
namespace { namespace {
template <typename T> template <typename T>
using BaseOpConversion = BufferAssignmentOpConversionPattern<T>; using BaseOpConversion = BufferizeOpConversionPattern<T>;
Value InsertDynamicAllocAndDealloc(Location loc, Value result, Value InsertDynamicAllocAndDealloc(Location loc, Value result,
Value shape_operand, Value shape_operand,
@ -433,7 +433,7 @@ struct HloLegalizeToLhlo
target.addLegalOp<TensorFromElementsOp>(); target.addLegalOp<TensorFromElementsOp>();
target.addIllegalDialect<mhlo::MhloDialect>(); target.addIllegalDialect<mhlo::MhloDialect>();
BufferAssignmentTypeConverter converter; BufferizeTypeConverter converter;
auto isMemRefType = [](Type type) { return type.isa<BaseMemRefType>(); }; auto isMemRefType = [](Type type) { return type.isa<BaseMemRefType>(); };
target.addDynamicallyLegalOp<FuncOp>([&](FuncOp op) { target.addDynamicallyLegalOp<FuncOp>([&](FuncOp op) {
auto inputs = op.getType().getInputs(); auto inputs = op.getType().getInputs();
@ -456,16 +456,16 @@ struct HloLegalizeToLhlo
}); });
auto kind = results_escape_function auto kind = results_escape_function
? BufferAssignmentTypeConverter::KeepAsFunctionResult ? BufferizeTypeConverter::KeepAsFunctionResult
: BufferAssignmentTypeConverter::AppendToArgumentsList; : BufferizeTypeConverter::AppendToArgumentsList;
converter.setResultConversionKind<UnrankedTensorType, UnrankedMemRefType>( converter.setResultConversionKind<UnrankedTensorType, UnrankedMemRefType>(
kind); kind);
converter.setResultConversionKind<RankedTensorType, MemRefType>(kind); converter.setResultConversionKind<RankedTensorType, MemRefType>(kind);
populateHLOToLHLOConversionPattern(&context, &converter, &patterns); populateHLOToLHLOConversionPattern(&context, &converter, &patterns);
populateWithBufferAssignmentOpConversionPatterns< populateWithBufferizeOpConversionPatterns<mlir::ReturnOp, mlir::ReturnOp,
mlir::ReturnOp, mlir::ReturnOp, lmhlo::CopyOp>(&context, converter, lmhlo::CopyOp>(
patterns); &context, converter, patterns);
populateShapeTypeConversionPatterns(&context, converter, patterns); populateShapeTypeConversionPatterns(&context, converter, patterns);
if (failed(applyPartialConversion(getOperation(), target, patterns))) if (failed(applyPartialConversion(getOperation(), target, patterns)))
signalPassFailure(); signalPassFailure();
@ -480,9 +480,9 @@ struct HloLegalizeToLhlo
}; };
} // namespace } // namespace
void populateHLOToLHLOConversionPattern( void populateHLOToLHLOConversionPattern(MLIRContext* context,
MLIRContext* context, BufferAssignmentTypeConverter* converter, BufferizeTypeConverter* converter,
OwningRewritePatternList* patterns) { OwningRewritePatternList* patterns) {
// clang-format off // clang-format off
patterns->insert< patterns->insert<
HloToLhloDynamicBroadcastInDimOpConverter, HloToLhloDynamicBroadcastInDimOpConverter,

View File

@ -62,7 +62,7 @@ std::unique_ptr<llvm::TargetMachine> GetTargetMachine(llvm::Module* module) {
} }
llvm::TargetOptions target_options = llvm::TargetOptions target_options =
llvm::codegen::InitTargetOptionsFromCodeGenFlags(); llvm::codegen::InitTargetOptionsFromCodeGenFlags(llvm::Triple());
return std::unique_ptr<llvm::TargetMachine>(target->createTargetMachine( return std::unique_ptr<llvm::TargetMachine>(target->createTargetMachine(
triple.str(), "generic", "", target_options, llvm::Reloc::Model::PIC_)); triple.str(), "generic", "", target_options, llvm::Reloc::Model::PIC_));
} }

View File

@ -40,10 +40,10 @@ namespace transforms {
namespace { namespace {
class TensorFromElementsOpConverter class TensorFromElementsOpConverter
: public BufferAssignmentOpConversionPattern<TensorFromElementsOp> { : public BufferizeOpConversionPattern<TensorFromElementsOp> {
public: public:
using BufferAssignmentOpConversionPattern< using BufferizeOpConversionPattern<
TensorFromElementsOp>::BufferAssignmentOpConversionPattern; TensorFromElementsOp>::BufferizeOpConversionPattern;
LogicalResult matchAndRewrite( LogicalResult matchAndRewrite(
TensorFromElementsOp op, ArrayRef<Value> operands, TensorFromElementsOp op, ArrayRef<Value> operands,
@ -64,10 +64,10 @@ class TensorFromElementsOpConverter
}; };
class DynamicTensorFromElementsOpConverter class DynamicTensorFromElementsOpConverter
: public BufferAssignmentOpConversionPattern<DynamicTensorFromElementsOp> { : public BufferizeOpConversionPattern<DynamicTensorFromElementsOp> {
public: public:
using BufferAssignmentOpConversionPattern< using BufferizeOpConversionPattern<
DynamicTensorFromElementsOp>::BufferAssignmentOpConversionPattern; DynamicTensorFromElementsOp>::BufferizeOpConversionPattern;
LogicalResult matchAndRewrite( LogicalResult matchAndRewrite(
DynamicTensorFromElementsOp op, ArrayRef<Value> operands, DynamicTensorFromElementsOp op, ArrayRef<Value> operands,
@ -116,10 +116,10 @@ class DynamicTensorFromElementsOpConverter
}; };
class TensorLoadOpConversion class TensorLoadOpConversion
: public BufferAssignmentOpConversionPattern<TensorLoadOp> { : public BufferizeOpConversionPattern<TensorLoadOp> {
public: public:
using BufferAssignmentOpConversionPattern< using BufferizeOpConversionPattern<
TensorLoadOp>::BufferAssignmentOpConversionPattern; TensorLoadOp>::BufferizeOpConversionPattern;
LogicalResult matchAndRewrite( LogicalResult matchAndRewrite(
TensorLoadOp op, ArrayRef<Value> operands, TensorLoadOp op, ArrayRef<Value> operands,
@ -131,10 +131,10 @@ class TensorLoadOpConversion
}; };
class ExtractElementOpConversion class ExtractElementOpConversion
: public BufferAssignmentOpConversionPattern<ExtractElementOp> { : public BufferizeOpConversionPattern<ExtractElementOp> {
public: public:
using BufferAssignmentOpConversionPattern< using BufferizeOpConversionPattern<
ExtractElementOp>::BufferAssignmentOpConversionPattern; ExtractElementOp>::BufferizeOpConversionPattern;
LogicalResult matchAndRewrite( LogicalResult matchAndRewrite(
ExtractElementOp op, ArrayRef<Value> operands, ExtractElementOp op, ArrayRef<Value> operands,
@ -152,12 +152,10 @@ class ExtractElementOpConversion
}; };
template <typename OpTy> template <typename OpTy>
class SimpleOpResultConversion class SimpleOpResultConversion : public BufferizeOpConversionPattern<OpTy> {
: public BufferAssignmentOpConversionPattern<OpTy> {
public: public:
using BufferAssignmentOpConversionPattern< using BufferizeOpConversionPattern<OpTy>::BufferizeOpConversionPattern;
OpTy>::BufferAssignmentOpConversionPattern; using BufferizeOpConversionPattern<OpTy>::converter;
using BufferAssignmentOpConversionPattern<OpTy>::converter;
LogicalResult matchAndRewrite( LogicalResult matchAndRewrite(
OpTy op, ArrayRef<Value> operands, OpTy op, ArrayRef<Value> operands,
@ -169,10 +167,10 @@ class SimpleOpResultConversion
}; };
class TensorCastOpConverter class TensorCastOpConverter
: public BufferAssignmentOpConversionPattern<TensorCastOp> { : public BufferizeOpConversionPattern<TensorCastOp> {
public: public:
using BufferAssignmentOpConversionPattern< using BufferizeOpConversionPattern<
TensorCastOp>::BufferAssignmentOpConversionPattern; TensorCastOp>::BufferizeOpConversionPattern;
LogicalResult matchAndRewrite( LogicalResult matchAndRewrite(
TensorCastOp op, ArrayRef<Value> operands, TensorCastOp op, ArrayRef<Value> operands,
@ -190,7 +188,7 @@ class TensorCastOpConverter
} // namespace } // namespace
void populateStandardBufferizePattern(MLIRContext *context, void populateStandardBufferizePattern(MLIRContext *context,
BufferAssignmentTypeConverter *converter, BufferizeTypeConverter *converter,
OwningRewritePatternList *patterns) { OwningRewritePatternList *patterns) {
patterns->insert<ExtractElementOpConversion, TensorFromElementsOpConverter, patterns->insert<ExtractElementOpConversion, TensorFromElementsOpConverter,
DynamicTensorFromElementsOpConverter, DynamicTensorFromElementsOpConverter,

View File

@ -86,7 +86,7 @@ struct BufferizePass : public BufferizePassBase<BufferizePass> {
return !op.tensor().getType().isa<UnrankedTensorType>(); return !op.tensor().getType().isa<UnrankedTensorType>();
}); });
BufferAssignmentTypeConverter converter; BufferizeTypeConverter converter;
auto typesAreLegal = [&converter](Operation* op) { auto typesAreLegal = [&converter](Operation* op) {
return converter.isLegal(op->getOperandTypes()) && return converter.isLegal(op->getOperandTypes()) &&
converter.isLegal(op->getResultTypes()); converter.isLegal(op->getResultTypes());
@ -102,8 +102,8 @@ struct BufferizePass : public BufferizePassBase<BufferizePass> {
OwningRewritePatternList patterns; OwningRewritePatternList patterns;
mhlo::populateHLOToLHLOConversionPattern(&context, &converter, &patterns); mhlo::populateHLOToLHLOConversionPattern(&context, &converter, &patterns);
populateWithBufferAssignmentOpConversionPatterns<ReturnOp, ReturnOp, populateWithBufferizeOpConversionPatterns<ReturnOp, ReturnOp,
lmhlo::CopyOp>( lmhlo::CopyOp>(
&context, converter, patterns); &context, converter, patterns);
populateStandardBufferizePattern(&context, &converter, &patterns); populateStandardBufferizePattern(&context, &converter, &patterns);
populateShapeTypeConversionPatterns(&context, converter, patterns); populateShapeTypeConversionPatterns(&context, converter, patterns);

View File

@ -21,7 +21,7 @@ limitations under the License.
namespace mlir { namespace mlir {
class BufferAssignmentPlacer; class BufferAssignmentPlacer;
class BufferAssignmentTypeConverter; class BufferizeTypeConverter;
class LLVMTypeConverter; class LLVMTypeConverter;
class MLIRContext; class MLIRContext;
class OwningRewritePatternList; class OwningRewritePatternList;
@ -45,7 +45,7 @@ namespace transforms {
/// Collects a set of patterns that bufferize operations from the standard /// Collects a set of patterns that bufferize operations from the standard
/// dialect. /// dialect.
void populateStandardBufferizePattern(MLIRContext *context, void populateStandardBufferizePattern(MLIRContext *context,
BufferAssignmentTypeConverter *converter, BufferizeTypeConverter *converter,
OwningRewritePatternList *patterns); OwningRewritePatternList *patterns);
} // namespace transforms } // namespace transforms
} // namespace kernel_gen } // namespace kernel_gen

View File

@ -149,7 +149,7 @@ std::unique_ptr<llvm::TargetMachine> GetTargetMachine(
} }
llvm::TargetOptions target_options = llvm::TargetOptions target_options =
llvm::codegen::InitTargetOptionsFromCodeGenFlags(); llvm::codegen::InitTargetOptionsFromCodeGenFlags(llvm::Triple());
// Set the verbose assembly options. // Set the verbose assembly options.
target_options.MCOptions.AsmVerbose = false; target_options.MCOptions.AsmVerbose = false;

View File

@ -712,8 +712,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
) )
# Check out LLVM and MLIR from llvm-project. # Check out LLVM and MLIR from llvm-project.
LLVM_COMMIT = "89657b3a3b5772558ac084dc03591de5dab3f1f1" LLVM_COMMIT = "220de1f32add09848009ae2286a1e6fd271abe9e"
LLVM_SHA256 = "8b0835cd130c20d34c4884dd776c1fb6b322d30c3668374f2366b4f397092fe3" LLVM_SHA256 = "dd5ec3d3f96a5ef8a59e6118e9c8eca9bb0443ae1a7e8a7834e63732e635d377"
LLVM_URLS = [ LLVM_URLS = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT), "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), "https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT),