Jeff Law <jeffreya...@gmail.com> writes: > On 6/16/23 06:34, Richard Biener via Gcc-patches wrote: >> IVOPTs has strip_offset which suffers from the same issues regarding >> integer overflow that split_constant_offset did but the latter was >> fixed quite some time ago. The following implements strip_offset >> in terms of split_constant_offset, removing the redundant and >> incorrect implementation. >> >> The implementations are not exactly the same, strip_offset relies >> on ptrdiff_tree_p to fend off too large offsets while split_constant_offset >> simply assumes those do not happen and truncates them. By >> the same means strip_offset also handles POLY_INT_CSTs but >> split_constant_offset does not. Massaging the latter to >> behave like strip_offset in those cases might be the way to go? >> >> Bootstrapped and tested on x86_64-unknown-linux-gnu. >> >> Comments? >> >> Thanks, >> Richard. >> >> PR tree-optimization/110243 >> * tree-ssa-loop-ivopts.cc (strip_offset_1): Remove. >> (strip_offset): Make it a wrapper around split_constant_offset. >> >> * gcc.dg/torture/pr110243.c: New testcase. > Your call -- IMHO you know this code far better than I.
+1, but LGTM FWIW. I couldn't see anything obvious (and valid) that split_offset_1 handles and split_constant_offset doesn't. Thanks, Richard