@@ -125,15 +125,15 @@ FailureOr<TiledLayoutAttr> inferLayout(MemRefType memref_ty,
125125 int64_t leading_tile_rows = 0 ) {
126126 if (auto tiled_layout_attr =
127127 dyn_cast<TiledLayoutAttr>(memref_ty.getLayout ())) {
128- if (leading_tile_rows > 0 && ! tiled_layout_attr.getTiles (). empty () &&
129- tiled_layout_attr. getTiles (). front (). dimensions (). size () == 2 &&
130- tiled_layout_attr. getTiles ().front ().dimensions ()[ 0 ] !=
131- leading_tile_rows) {
128+ const ArrayRef<xla::Tile> tiles = tiled_layout_attr.getTiles ();
129+ if (leading_tile_rows > 0 && !tiles. empty () &&
130+ tiles. front ().dimensions ().size () == 2 &&
131+ tiles. front (). dimensions ()[ 0 ] != leading_tile_rows) {
132132 return emitError (UnknownLoc::get (memref_ty.getContext ()),
133133 " Trying to infer memref layout with sublane tiling " )
134134 << leading_tile_rows
135135 << " , but the memref already has sublane tiling "
136- << tiled_layout_attr. getTiles () .front ().dimensions ()[0 ];
136+ << tiles .front ().dimensions ()[0 ];
137137 }
138138 return tiled_layout_attr;
139139 }
@@ -428,6 +428,8 @@ struct InferMemRefLayoutPass
428428 void runOnOperation () override {
429429 // Fail if hardware_generation has not been set from the default value.
430430 if (hardware_generation < 0 ) {
431+ getOperation ().emitError (" hardware_generation must be set" )
432+ << hardware_generation;
431433 signalPassFailure ();
432434 return ;
433435 }
0 commit comments