Integrate LLVM at llvm/llvm-project@0316f3e649
Updates LLVM usage to match [0316f3e64972](https://github.com/llvm/llvm-project/commit/0316f3e64972) PiperOrigin-RevId: 374855085
This commit is contained in:
		
							parent
							
								
									c62fd89663
								
							
						
					
					
						commit
						57aeb5ab16
					
				| 
						 | 
					@ -15,9 +15,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 | 
					load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LLVM_COMMIT = "6381664580080f015bc0c2ec647853f697cf744a"
 | 
					LLVM_COMMIT = "0316f3e64972c919d8bfa2d15b9a4be858530f85"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LLVM_SHA256 = "f16c1757a31dbf9370da3de766e20b238212b5a0e08b897eeda893899ebf70bf"
 | 
					LLVM_SHA256 = "ddf0daa23870922c468343c08670e8007358b463cf4ed2c737a94086cc433527"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LLVM_BAZEL_TAG = "llvm-project-{commit}".format(commit = LLVM_COMMIT)
 | 
					LLVM_BAZEL_TAG = "llvm-project-{commit}".format(commit = LLVM_COMMIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,2 @@
 | 
				
			||||||
6381664580080f015bc0c2ec647853f697cf744a
 | 
					0316f3e64972c919d8bfa2d15b9a4be858530f85
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -438,7 +438,7 @@ class HLOClient_UnaryElementwiseOp<string mnemonic, list<OpTrait> traits,
 | 
				
			||||||
        SmallVectorImpl<ShapedTypeComponents>& inferedReturnShapes) {
 | 
					        SmallVectorImpl<ShapedTypeComponents>& inferedReturnShapes) {
 | 
				
			||||||
      return failure();
 | 
					      return failure();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    LogicalResult reifyReturnTypeShapes(OpBuilder& builder,
 | 
					    LogicalResult reifyReturnTypeShapes(OpBuilder& builder, ValueRange operands,
 | 
				
			||||||
        SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					        SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
      return ::mlir::mhlo::deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
					      return ::mlir::mhlo::deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
				
			||||||
          &reifiedReturnShapes);
 | 
					          &reifiedReturnShapes);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,7 +139,8 @@ class HLO_UnaryElementwiseOp<string mnemonic, list<OpTrait> traits,
 | 
				
			||||||
      return failure();
 | 
					      return failure();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    LogicalResult reifyReturnTypeShapes(
 | 
					    LogicalResult reifyReturnTypeShapes(
 | 
				
			||||||
        OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					        OpBuilder& builder, ValueRange operands,
 | 
				
			||||||
 | 
					        SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
      return ::mlir::mhlo::deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
					      return ::mlir::mhlo::deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
				
			||||||
                                                       &reifiedReturnShapes);
 | 
					                                                       &reifiedReturnShapes);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -452,7 +453,8 @@ class HLO_BinaryElementwiseOp<string mnemonic, list<OpTrait> traits> :
 | 
				
			||||||
      return failure();
 | 
					      return failure();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    LogicalResult reifyReturnTypeShapes(
 | 
					    LogicalResult reifyReturnTypeShapes(
 | 
				
			||||||
        OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					        OpBuilder& builder, ValueRange operands,
 | 
				
			||||||
 | 
					        SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
      return ::mlir::mhlo::deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
					      return ::mlir::mhlo::deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
				
			||||||
                                                       &reifiedReturnShapes);
 | 
					                                                       &reifiedReturnShapes);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -204,7 +204,8 @@ LogicalResult BroadcastComplexOp::inferReturnTypeComponents(
 | 
				
			||||||
                                                    inferedReturnShapes);
 | 
					                                                    inferedReturnShapes);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
LogicalResult BroadcastComplexOp::reifyReturnTypeShapes(
 | 
					LogicalResult BroadcastComplexOp::reifyReturnTypeShapes(
 | 
				
			||||||
    OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					    OpBuilder& builder, ValueRange,
 | 
				
			||||||
 | 
					    SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
  return ReifyBroadcastBinaryOpReturnTypeShapes(builder, getOperation(),
 | 
					  return ReifyBroadcastBinaryOpReturnTypeShapes(builder, getOperation(),
 | 
				
			||||||
                                                reifiedReturnShapes);
 | 
					                                                reifiedReturnShapes);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -235,7 +236,8 @@ LogicalResult BroadcastCompareOp::inferReturnTypeComponents(
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LogicalResult BroadcastCompareOp::reifyReturnTypeShapes(
 | 
					LogicalResult BroadcastCompareOp::reifyReturnTypeShapes(
 | 
				
			||||||
    OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					    OpBuilder& builder, ValueRange,
 | 
				
			||||||
 | 
					    SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
  return ReifyBroadcastBinaryOpReturnTypeShapes(builder, getOperation(),
 | 
					  return ReifyBroadcastBinaryOpReturnTypeShapes(builder, getOperation(),
 | 
				
			||||||
                                                reifiedReturnShapes);
 | 
					                                                reifiedReturnShapes);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -293,7 +295,8 @@ LogicalResult IsPosInfOp::inferReturnTypes(
 | 
				
			||||||
        inferedReturnShapes);                                                 \
 | 
					        inferedReturnShapes);                                                 \
 | 
				
			||||||
  }                                                                           \
 | 
					  }                                                                           \
 | 
				
			||||||
  LogicalResult Op::reifyReturnTypeShapes(                                    \
 | 
					  LogicalResult Op::reifyReturnTypeShapes(                                    \
 | 
				
			||||||
      OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {      \
 | 
					      OpBuilder& builder, ValueRange,                                         \
 | 
				
			||||||
 | 
					      SmallVectorImpl<Value>& reifiedReturnShapes) {                          \
 | 
				
			||||||
    return ReifyBroadcastBinaryOpReturnTypeShapes(builder, getOperation(),    \
 | 
					    return ReifyBroadcastBinaryOpReturnTypeShapes(builder, getOperation(),    \
 | 
				
			||||||
                                                  reifiedReturnShapes);       \
 | 
					                                                  reifiedReturnShapes);       \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1002,7 +1002,7 @@ LogicalResult DynamicBroadcastInDimOp::inferReturnTypeComponents(
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LogicalResult DynamicBroadcastInDimOp::reifyReturnTypeShapes(
 | 
					LogicalResult DynamicBroadcastInDimOp::reifyReturnTypeShapes(
 | 
				
			||||||
    OpBuilder&, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					    OpBuilder&, ValueRange, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
  reifiedReturnShapes.push_back(output_dimensions());
 | 
					  reifiedReturnShapes.push_back(output_dimensions());
 | 
				
			||||||
  return success();
 | 
					  return success();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2100,7 +2100,8 @@ LogicalResult SelectOp::inferReturnTypeComponents(
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LogicalResult SelectOp::reifyReturnTypeShapes(
 | 
					LogicalResult SelectOp::reifyReturnTypeShapes(
 | 
				
			||||||
    OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					    OpBuilder& builder, ValueRange operands,
 | 
				
			||||||
 | 
					    SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
  return deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
					  return deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
				
			||||||
                                     &reifiedReturnShapes);
 | 
					                                     &reifiedReturnShapes);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -3183,7 +3184,8 @@ LogicalResult CompareOp::inferReturnTypeComponents(
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LogicalResult CompareOp::reifyReturnTypeShapes(
 | 
					LogicalResult CompareOp::reifyReturnTypeShapes(
 | 
				
			||||||
    OpBuilder& builder, SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
					    OpBuilder& builder, ValueRange operands,
 | 
				
			||||||
 | 
					    SmallVectorImpl<Value>& reifiedReturnShapes) {
 | 
				
			||||||
  return deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
					  return deriveShapeFromFirstOperand(&builder, getOperation(),
 | 
				
			||||||
                                     &reifiedReturnShapes);
 | 
					                                     &reifiedReturnShapes);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -107,7 +107,8 @@ LogicalResult ConvertResults(Operation* op, SmallVectorImpl<Value>& results,
 | 
				
			||||||
    if (!shape_type_op) return failure();
 | 
					    if (!shape_type_op) return failure();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SmallVector<Value, 1> results_shape;
 | 
					    SmallVector<Value, 1> results_shape;
 | 
				
			||||||
    auto status = shape_type_op.reifyReturnTypeShapes(rewriter, results_shape);
 | 
					    auto status = shape_type_op.reifyReturnTypeShapes(
 | 
				
			||||||
 | 
					        rewriter, shape_type_op->getOperands(), results_shape);
 | 
				
			||||||
    if (failed(status)) return failure();
 | 
					    if (failed(status)) return failure();
 | 
				
			||||||
    results.push_back(
 | 
					    results.push_back(
 | 
				
			||||||
        InsertDynamicAllocAndDealloc(op->getLoc(), result.value(),
 | 
					        InsertDynamicAllocAndDealloc(op->getLoc(), result.value(),
 | 
				
			||||||
| 
						 | 
					@ -390,7 +391,8 @@ struct HloToLhloDotGeneralOpConverter
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      SmallVector<Value, 1> results_shape;
 | 
					      SmallVector<Value, 1> results_shape;
 | 
				
			||||||
      auto shape_type_op = dyn_cast<InferShapedTypeOpInterface>(op);
 | 
					      auto shape_type_op = dyn_cast<InferShapedTypeOpInterface>(op);
 | 
				
			||||||
      if (failed(shape_type_op.reifyReturnTypeShapes(rewriter, results_shape)))
 | 
					      if (failed(shape_type_op.reifyReturnTypeShapes(
 | 
				
			||||||
 | 
					              rewriter, shape_type_op->getOperands(), results_shape)))
 | 
				
			||||||
        return failure();
 | 
					        return failure();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      bufferArgs[2] = InsertDynamicAllocAndDealloc(
 | 
					      bufferArgs[2] = InsertDynamicAllocAndDealloc(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,7 +55,8 @@ struct ShapeReificationPattern : public OpRewritePattern<shape::ShapeOfOp> {
 | 
				
			||||||
    if (!shape_origin) return failure();
 | 
					    if (!shape_origin) return failure();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    llvm::SmallVector<Value, 1> reifications;
 | 
					    llvm::SmallVector<Value, 1> reifications;
 | 
				
			||||||
    if (failed(shape_origin.reifyReturnTypeShapes(rewriter, reifications)))
 | 
					    if (failed(shape_origin.reifyReturnTypeShapes(
 | 
				
			||||||
 | 
					            rewriter, shape_origin->getOperands(), reifications)))
 | 
				
			||||||
      return failure();
 | 
					      return failure();
 | 
				
			||||||
    assert(reifications.size() == 1);
 | 
					    assert(reifications.size() == 1);
 | 
				
			||||||
    Value reified_shape = reifications.front();
 | 
					    Value reified_shape = reifications.front();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,8 @@ struct ReifyReturnTypeShapesPattern : public RewritePattern {
 | 
				
			||||||
        op->getOperand(0).getDefiningOp());
 | 
					        op->getOperand(0).getDefiningOp());
 | 
				
			||||||
    if (!defining_op) return failure();
 | 
					    if (!defining_op) return failure();
 | 
				
			||||||
    SmallVector<Value, 4> return_shapes;
 | 
					    SmallVector<Value, 4> return_shapes;
 | 
				
			||||||
    if (failed(defining_op.reifyReturnTypeShapes(rewriter, return_shapes))) {
 | 
					    if (failed(defining_op.reifyReturnTypeShapes(
 | 
				
			||||||
 | 
					            rewriter, defining_op->getOperands(), return_shapes))) {
 | 
				
			||||||
      return failure();
 | 
					      return failure();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    rewriter.replaceOp(op, return_shapes);
 | 
					    rewriter.replaceOp(op, return_shapes);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue