On Wed, 2016-10-19 at 19:22 +0200, Bernd Schmidt wrote: > On 10/19/2016 07:19 PM, David Malcolm wrote: > > I already dropped LABEL_NUSES in compact mode in r241120; I think > > it's > > possible to regenerate that information. > > > > But how would we go about recreating the JUMP_LABEL data? As far > > as I > > can tell, it can be set up by reorg.c:make_return_insns > > via comparison against function_return_label and > > function_simple_return_label, which are set up by find_end_label; > > the > > functions in question are non-trivial, and can lead to extra insns > > being emitted. Also, in shrink-wrap.c:handle_simple_exit, which > > has > > similar state considerations. > > I'd expect every return/simple_return insn to contain the > corresponding > rtx code. mark_jump_label_1 has this, which supports the theory: > > case RETURN: > case SIMPLE_RETURN: > if (is_target) > { > gcc_assert (JUMP_LABEL (insn) == NULL || JUMP_LABEL (insn) > == x); > JUMP_LABEL (insn) = x; > } > return; > > This is called via mark_all_labels from rebuild_jump_labels_1, so it > should Just Work - in theory. > > > It seems simpler to serialize this information. > > Simpler, probably, but it would be nice to omit it if it really is > redundant.
Thanks, that gave me the pointer I needed. I think it is indeed redundant and I'll work on regenerating it in class function_reader.