mirror of https://github.com/proxmox/mirror_qemu
tcg: mark set_label with TCG_OPF_BB_END flag
set_label is effectively the end of a basic block, as no optimization can be made accross it. It was treated as such in the liveness analysis code, but as a special case. Mark it with TCG_OPF_BB_END flag so that this information can be used by other parts of the TCG code, and remove the special case in the liveness analysis code. Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>master
parent
5c2d2a9ee5
commit
332864bd95
|
@ -36,7 +36,7 @@ DEF(nopn, 0, 0, 1, 0) /* variable number of parameters */
|
||||||
|
|
||||||
DEF(discard, 1, 0, 0, 0)
|
DEF(discard, 1, 0, 0, 0)
|
||||||
|
|
||||||
DEF(set_label, 0, 0, 1, 0)
|
DEF(set_label, 0, 0, 1, TCG_OPF_BB_END)
|
||||||
DEF(call, 0, 1, 2, TCG_OPF_SIDE_EFFECTS) /* variable number of parameters */
|
DEF(call, 0, 1, 2, TCG_OPF_SIDE_EFFECTS) /* variable number of parameters */
|
||||||
DEF(jmp, 0, 1, 0, TCG_OPF_BB_END | TCG_OPF_SIDE_EFFECTS)
|
DEF(jmp, 0, 1, 0, TCG_OPF_BB_END | TCG_OPF_SIDE_EFFECTS)
|
||||||
DEF(br, 0, 0, 1, TCG_OPF_BB_END | TCG_OPF_SIDE_EFFECTS)
|
DEF(br, 0, 0, 1, TCG_OPF_BB_END | TCG_OPF_SIDE_EFFECTS)
|
||||||
|
|
|
@ -1297,11 +1297,6 @@ static void tcg_liveness_analysis(TCGContext *s)
|
||||||
args--;
|
args--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INDEX_op_set_label:
|
|
||||||
args--;
|
|
||||||
/* mark end of basic block */
|
|
||||||
tcg_la_bb_end(s, dead_temps);
|
|
||||||
break;
|
|
||||||
case INDEX_op_debug_insn_start:
|
case INDEX_op_debug_insn_start:
|
||||||
args -= def->nb_args;
|
args -= def->nb_args;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue