Integrate LLVM at llvm/llvm-project@220de1f32a
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:
parent
34592c6663
commit
ca0607c198
@ -56,9 +56,9 @@ void PopulateMhloToStdPatterns(OwningRewritePatternList *patterns,
|
||||
MLIRContext *ctx);
|
||||
|
||||
// Collection of rewrite patterns for lowering of HLO to LHLO dialect.
|
||||
void populateHLOToLHLOConversionPattern(
|
||||
MLIRContext *context, BufferAssignmentTypeConverter *converter,
|
||||
OwningRewritePatternList *patterns);
|
||||
void populateHLOToLHLOConversionPattern(MLIRContext *context,
|
||||
BufferizeTypeConverter *converter,
|
||||
OwningRewritePatternList *patterns);
|
||||
|
||||
// Collection of rewrite patterns for lowering of HLO to Linalg dialect.
|
||||
void populateHLOToLinalgConversionPattern(MLIRContext *context,
|
||||
|
@ -42,7 +42,7 @@ namespace mhlo {
|
||||
namespace {
|
||||
|
||||
template <typename T>
|
||||
using BaseOpConversion = BufferAssignmentOpConversionPattern<T>;
|
||||
using BaseOpConversion = BufferizeOpConversionPattern<T>;
|
||||
|
||||
Value InsertDynamicAllocAndDealloc(Location loc, Value result,
|
||||
Value shape_operand,
|
||||
@ -433,7 +433,7 @@ struct HloLegalizeToLhlo
|
||||
target.addLegalOp<TensorFromElementsOp>();
|
||||
target.addIllegalDialect<mhlo::MhloDialect>();
|
||||
|
||||
BufferAssignmentTypeConverter converter;
|
||||
BufferizeTypeConverter converter;
|
||||
auto isMemRefType = [](Type type) { return type.isa<BaseMemRefType>(); };
|
||||
target.addDynamicallyLegalOp<FuncOp>([&](FuncOp op) {
|
||||
auto inputs = op.getType().getInputs();
|
||||
@ -456,16 +456,16 @@ struct HloLegalizeToLhlo
|
||||
});
|
||||
|
||||
auto kind = results_escape_function
|
||||
? BufferAssignmentTypeConverter::KeepAsFunctionResult
|
||||
: BufferAssignmentTypeConverter::AppendToArgumentsList;
|
||||
? BufferizeTypeConverter::KeepAsFunctionResult
|
||||
: BufferizeTypeConverter::AppendToArgumentsList;
|
||||
converter.setResultConversionKind<UnrankedTensorType, UnrankedMemRefType>(
|
||||
kind);
|
||||
converter.setResultConversionKind<RankedTensorType, MemRefType>(kind);
|
||||
|
||||
populateHLOToLHLOConversionPattern(&context, &converter, &patterns);
|
||||
populateWithBufferAssignmentOpConversionPatterns<
|
||||
mlir::ReturnOp, mlir::ReturnOp, lmhlo::CopyOp>(&context, converter,
|
||||
patterns);
|
||||
populateWithBufferizeOpConversionPatterns<mlir::ReturnOp, mlir::ReturnOp,
|
||||
lmhlo::CopyOp>(
|
||||
&context, converter, patterns);
|
||||
populateShapeTypeConversionPatterns(&context, converter, patterns);
|
||||
if (failed(applyPartialConversion(getOperation(), target, patterns)))
|
||||
signalPassFailure();
|
||||
@ -480,9 +480,9 @@ struct HloLegalizeToLhlo
|
||||
};
|
||||
} // namespace
|
||||
|
||||
void populateHLOToLHLOConversionPattern(
|
||||
MLIRContext* context, BufferAssignmentTypeConverter* converter,
|
||||
OwningRewritePatternList* patterns) {
|
||||
void populateHLOToLHLOConversionPattern(MLIRContext* context,
|
||||
BufferizeTypeConverter* converter,
|
||||
OwningRewritePatternList* patterns) {
|
||||
// clang-format off
|
||||
patterns->insert<
|
||||
HloToLhloDynamicBroadcastInDimOpConverter,
|
||||
|
@ -62,7 +62,7 @@ std::unique_ptr<llvm::TargetMachine> GetTargetMachine(llvm::Module* module) {
|
||||
}
|
||||
|
||||
llvm::TargetOptions target_options =
|
||||
llvm::codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::codegen::InitTargetOptionsFromCodeGenFlags(llvm::Triple());
|
||||
return std::unique_ptr<llvm::TargetMachine>(target->createTargetMachine(
|
||||
triple.str(), "generic", "", target_options, llvm::Reloc::Model::PIC_));
|
||||
}
|
||||
|
@ -40,10 +40,10 @@ namespace transforms {
|
||||
namespace {
|
||||
|
||||
class TensorFromElementsOpConverter
|
||||
: public BufferAssignmentOpConversionPattern<TensorFromElementsOp> {
|
||||
: public BufferizeOpConversionPattern<TensorFromElementsOp> {
|
||||
public:
|
||||
using BufferAssignmentOpConversionPattern<
|
||||
TensorFromElementsOp>::BufferAssignmentOpConversionPattern;
|
||||
using BufferizeOpConversionPattern<
|
||||
TensorFromElementsOp>::BufferizeOpConversionPattern;
|
||||
|
||||
LogicalResult matchAndRewrite(
|
||||
TensorFromElementsOp op, ArrayRef<Value> operands,
|
||||
@ -64,10 +64,10 @@ class TensorFromElementsOpConverter
|
||||
};
|
||||
|
||||
class DynamicTensorFromElementsOpConverter
|
||||
: public BufferAssignmentOpConversionPattern<DynamicTensorFromElementsOp> {
|
||||
: public BufferizeOpConversionPattern<DynamicTensorFromElementsOp> {
|
||||
public:
|
||||
using BufferAssignmentOpConversionPattern<
|
||||
DynamicTensorFromElementsOp>::BufferAssignmentOpConversionPattern;
|
||||
using BufferizeOpConversionPattern<
|
||||
DynamicTensorFromElementsOp>::BufferizeOpConversionPattern;
|
||||
|
||||
LogicalResult matchAndRewrite(
|
||||
DynamicTensorFromElementsOp op, ArrayRef<Value> operands,
|
||||
@ -116,10 +116,10 @@ class DynamicTensorFromElementsOpConverter
|
||||
};
|
||||
|
||||
class TensorLoadOpConversion
|
||||
: public BufferAssignmentOpConversionPattern<TensorLoadOp> {
|
||||
: public BufferizeOpConversionPattern<TensorLoadOp> {
|
||||
public:
|
||||
using BufferAssignmentOpConversionPattern<
|
||||
TensorLoadOp>::BufferAssignmentOpConversionPattern;
|
||||
using BufferizeOpConversionPattern<
|
||||
TensorLoadOp>::BufferizeOpConversionPattern;
|
||||
|
||||
LogicalResult matchAndRewrite(
|
||||
TensorLoadOp op, ArrayRef<Value> operands,
|
||||
@ -131,10 +131,10 @@ class TensorLoadOpConversion
|
||||
};
|
||||
|
||||
class ExtractElementOpConversion
|
||||
: public BufferAssignmentOpConversionPattern<ExtractElementOp> {
|
||||
: public BufferizeOpConversionPattern<ExtractElementOp> {
|
||||
public:
|
||||
using BufferAssignmentOpConversionPattern<
|
||||
ExtractElementOp>::BufferAssignmentOpConversionPattern;
|
||||
using BufferizeOpConversionPattern<
|
||||
ExtractElementOp>::BufferizeOpConversionPattern;
|
||||
|
||||
LogicalResult matchAndRewrite(
|
||||
ExtractElementOp op, ArrayRef<Value> operands,
|
||||
@ -152,12 +152,10 @@ class ExtractElementOpConversion
|
||||
};
|
||||
|
||||
template <typename OpTy>
|
||||
class SimpleOpResultConversion
|
||||
: public BufferAssignmentOpConversionPattern<OpTy> {
|
||||
class SimpleOpResultConversion : public BufferizeOpConversionPattern<OpTy> {
|
||||
public:
|
||||
using BufferAssignmentOpConversionPattern<
|
||||
OpTy>::BufferAssignmentOpConversionPattern;
|
||||
using BufferAssignmentOpConversionPattern<OpTy>::converter;
|
||||
using BufferizeOpConversionPattern<OpTy>::BufferizeOpConversionPattern;
|
||||
using BufferizeOpConversionPattern<OpTy>::converter;
|
||||
|
||||
LogicalResult matchAndRewrite(
|
||||
OpTy op, ArrayRef<Value> operands,
|
||||
@ -169,10 +167,10 @@ class SimpleOpResultConversion
|
||||
};
|
||||
|
||||
class TensorCastOpConverter
|
||||
: public BufferAssignmentOpConversionPattern<TensorCastOp> {
|
||||
: public BufferizeOpConversionPattern<TensorCastOp> {
|
||||
public:
|
||||
using BufferAssignmentOpConversionPattern<
|
||||
TensorCastOp>::BufferAssignmentOpConversionPattern;
|
||||
using BufferizeOpConversionPattern<
|
||||
TensorCastOp>::BufferizeOpConversionPattern;
|
||||
|
||||
LogicalResult matchAndRewrite(
|
||||
TensorCastOp op, ArrayRef<Value> operands,
|
||||
@ -190,7 +188,7 @@ class TensorCastOpConverter
|
||||
} // namespace
|
||||
|
||||
void populateStandardBufferizePattern(MLIRContext *context,
|
||||
BufferAssignmentTypeConverter *converter,
|
||||
BufferizeTypeConverter *converter,
|
||||
OwningRewritePatternList *patterns) {
|
||||
patterns->insert<ExtractElementOpConversion, TensorFromElementsOpConverter,
|
||||
DynamicTensorFromElementsOpConverter,
|
||||
|
@ -86,7 +86,7 @@ struct BufferizePass : public BufferizePassBase<BufferizePass> {
|
||||
return !op.tensor().getType().isa<UnrankedTensorType>();
|
||||
});
|
||||
|
||||
BufferAssignmentTypeConverter converter;
|
||||
BufferizeTypeConverter converter;
|
||||
auto typesAreLegal = [&converter](Operation* op) {
|
||||
return converter.isLegal(op->getOperandTypes()) &&
|
||||
converter.isLegal(op->getResultTypes());
|
||||
@ -102,8 +102,8 @@ struct BufferizePass : public BufferizePassBase<BufferizePass> {
|
||||
|
||||
OwningRewritePatternList patterns;
|
||||
mhlo::populateHLOToLHLOConversionPattern(&context, &converter, &patterns);
|
||||
populateWithBufferAssignmentOpConversionPatterns<ReturnOp, ReturnOp,
|
||||
lmhlo::CopyOp>(
|
||||
populateWithBufferizeOpConversionPatterns<ReturnOp, ReturnOp,
|
||||
lmhlo::CopyOp>(
|
||||
&context, converter, patterns);
|
||||
populateStandardBufferizePattern(&context, &converter, &patterns);
|
||||
populateShapeTypeConversionPatterns(&context, converter, patterns);
|
||||
|
@ -21,7 +21,7 @@ limitations under the License.
|
||||
namespace mlir {
|
||||
|
||||
class BufferAssignmentPlacer;
|
||||
class BufferAssignmentTypeConverter;
|
||||
class BufferizeTypeConverter;
|
||||
class LLVMTypeConverter;
|
||||
class MLIRContext;
|
||||
class OwningRewritePatternList;
|
||||
@ -45,7 +45,7 @@ namespace transforms {
|
||||
/// Collects a set of patterns that bufferize operations from the standard
|
||||
/// dialect.
|
||||
void populateStandardBufferizePattern(MLIRContext *context,
|
||||
BufferAssignmentTypeConverter *converter,
|
||||
BufferizeTypeConverter *converter,
|
||||
OwningRewritePatternList *patterns);
|
||||
} // namespace transforms
|
||||
} // namespace kernel_gen
|
||||
|
@ -149,7 +149,7 @@ std::unique_ptr<llvm::TargetMachine> GetTargetMachine(
|
||||
}
|
||||
|
||||
llvm::TargetOptions target_options =
|
||||
llvm::codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::codegen::InitTargetOptionsFromCodeGenFlags(llvm::Triple());
|
||||
|
||||
// Set the verbose assembly options.
|
||||
target_options.MCOptions.AsmVerbose = false;
|
||||
|
@ -712,8 +712,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
|
||||
)
|
||||
|
||||
# Check out LLVM and MLIR from llvm-project.
|
||||
LLVM_COMMIT = "89657b3a3b5772558ac084dc03591de5dab3f1f1"
|
||||
LLVM_SHA256 = "8b0835cd130c20d34c4884dd776c1fb6b322d30c3668374f2366b4f397092fe3"
|
||||
LLVM_COMMIT = "220de1f32add09848009ae2286a1e6fd271abe9e"
|
||||
LLVM_SHA256 = "dd5ec3d3f96a5ef8a59e6118e9c8eca9bb0443ae1a7e8a7834e63732e635d377"
|
||||
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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user