Avoid making order of C++ arg evaluation influence generated IR
This looks like a footgun, is there a way to systematically smoke bugs like these out? This one was pretty benign, but I can imagine more serious instances of this. PiperOrigin-RevId: 352485514 Change-Id: I7f9629a21847817cc40b0381c9e1a9f9b08fcd18
This commit is contained in:
parent
4fcfcbe2c6
commit
b459be827a
@ -61,9 +61,6 @@ cc_library(
|
|||||||
tf_cc_test(
|
tf_cc_test(
|
||||||
name = "conv_emitter_test",
|
name = "conv_emitter_test",
|
||||||
srcs = ["conv_emitter_test.cc"],
|
srcs = ["conv_emitter_test.cc"],
|
||||||
tags = [
|
|
||||||
"no_oss", # TODO(b/148143101): Test should pass in OSS.
|
|
||||||
],
|
|
||||||
deps = [
|
deps = [
|
||||||
":conv_emitter",
|
":conv_emitter",
|
||||||
"//tensorflow/compiler/xla/service:hlo_parser",
|
"//tensorflow/compiler/xla/service:hlo_parser",
|
||||||
|
@ -340,11 +340,12 @@ StatusOr<InitialMlirConvAnchors> CreateNaiveMlirConv(
|
|||||||
builder.getF32Type());
|
builder.getF32Type());
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
auto accum_load_op =
|
||||||
|
builder.createOrFold<mlir::AffineLoadOp>(location, output_acc);
|
||||||
builder.createOrFold<mlir::AffineStoreOp>(
|
builder.createOrFold<mlir::AffineStoreOp>(
|
||||||
location,
|
location,
|
||||||
builder.create<mlir::AddFOp>(
|
builder.create<mlir::AddFOp>(
|
||||||
location,
|
location, accum_load_op,
|
||||||
builder.createOrFold<mlir::AffineLoadOp>(location, output_acc),
|
|
||||||
builder.create<mlir::MulFOp>(location, loaded_input, loaded_filter)),
|
builder.create<mlir::MulFOp>(location, loaded_input, loaded_filter)),
|
||||||
output_acc, llvm::ArrayRef<mlir::Value>());
|
output_acc, llvm::ArrayRef<mlir::Value>());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user