On Tue, Feb 04, 2020 at 12:06:54PM +0000, Richard Sandiford wrote: > > Also, you don't need to emit "#" in output template. This is just for > > extra safety, we can live without. Please see e.g. "*tzcnt<mode>_1". > > IMO it's better to keep it here, where we're relying on the split > happening for correctness. There's no theoretical guarantee that > a split ever happens otherwise.
A split will always happen if you have the "length" attribute and no register stacks (split_for_shorten_branches, "split5", almost directly before final). This has been true for so long that lots of things are bound to rely on it. "#" only has real meaning in final, of course (but is nice documentation for everything else). Maybe we should just always run split5, and not do it in final at all anymore? Or at least always for targets with the "length" attribute? Segher