authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-07-20 16:04:46-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-07-20 16:04:46-07:00
log91c4e28c5102223917ccf270fd466b796e0e0587
tree4df12fb3d69876e1ec7778a11eb449ce0e06514e
parentf47cf93b477c47cb4be00019203b2cd11a94d53d

Liveness: fix br instruction not tracking its operand


1 files changed, 4 insertions(+), 1 deletions(-)

src/Liveness.zig+4-1
...@@ -250,7 +250,6 @@ fn analyzeInst(...@@ -250,7 +250,6 @@ fn analyzeInst(
250250
251 .arg,251 .arg,
252 .alloc,252 .alloc,
253 .br,
254 .constant,253 .constant,
255 .const_ty,254 .const_ty,
256 .breakpoint,255 .breakpoint,
...@@ -321,6 +320,10 @@ fn analyzeInst(...@@ -321,6 +320,10 @@ fn analyzeInst(
321 const extra = a.air.extraData(Air.StructField, inst_datas[inst].ty_pl.payload).data;320 const extra = a.air.extraData(Air.StructField, inst_datas[inst].ty_pl.payload).data;
322 return trackOperands(a, new_set, inst, main_tomb, .{ extra.struct_ptr, .none, .none });321 return trackOperands(a, new_set, inst, main_tomb, .{ extra.struct_ptr, .none, .none });
323 },322 },
323 .br => {
324 const br = inst_datas[inst].br;
325 return trackOperands(a, new_set, inst, main_tomb, .{ br.operand, .none, .none });
326 },
324 .assembly => {327 .assembly => {
325 const extra = a.air.extraData(Air.Asm, inst_datas[inst].ty_pl.payload);328 const extra = a.air.extraData(Air.Asm, inst_datas[inst].ty_pl.payload);
326 const extended = a.zir.instructions.items(.data)[extra.data.zir_index].extended;329 const extended = a.zir.instructions.items(.data)[extra.data.zir_index].extended;