On 9/11/2021 12:01 PM, Aldy Hernandez wrote:
So another thing to consider is that the threaders initially record
their paths in different directions. Forward threading records
starting at the first block, backward from the final block. At some
point (I no longer remember where) we invert the backwards threader's
path to fit the model that the registry wanted and I think we then
convert the path into the structure that the generic copier wants at
some later point.
Yeah, that's in back_threader_registry::register_path, and then we go
back and massage things again in back_jt_path_registry::update_cfg().
In theory with the two better separated we might not need to do the
conversions of the backwards threader's paths anymore.
Good point. I'll think about it, as we need some coherent way of
keeping track of paths that can we can share, as I'm about to add yet
another one in the jt_state business in tree-ssa-threadege.h.
ps. Don't forget about gcc.dg/torture/pr55107 regression I sent you
yesterday. It's showing up on a wide range of targets.
Yeah, thanks for mentioning it. I'm putting it aside until Monday
when I'm actually getting paid to chase tricky bugs :).
Fair enough :-) Works for me. I've got a way to disable the test
trivially until we sort out whether or not it's valid and/or useful.
jeff