On Sat, Jun 27, 2015 at 5:13 AM, Jeff Law <l...@redhat.com> wrote: > On 06/26/2015 03:02 AM, Bin Cheng wrote: >> >> Hi, >> GCC avoids multi-pointers/dangling-pointers of struct iv by allocating >> multiple copies of the structure. This patch is an obvious fix to the >> issue >> by managing iv structures in obstack. >> >> Bootstrap on x86_64, will apply to trunk if no objection. >> >> Thanks, >> bin >> >> 2015-06-26 Bin Cheng <bin.ch...@arm.com> >> >> * tree-ssa-loop-ivopts.c (struct ivopts_data): New field >> iv_obstack. >> (tree_ssa_iv_optimize_init): Initialize iv_obstack. >> (alloc_iv): New parameter. Allocate struct iv using >> obstack_alloc. >> (set_iv, find_interesting_uses_address, add_candidate_1): New >> argument. >> (find_interesting_uses_op): Don't duplicate struct iv. >> (free_loop_data): Don't free iv structure explicitly. >> (tree_ssa_iv_optimize_finalize): Free iv_obstack. > > Presumably you're trying to simplify the memory management here so that you > don't have to track lifetimes of the IV structures so carefully, which in > turn simplifies some upcoming patch? Yes, that's exactly the reason. I am still on the way fixing missed-optimizations in IVO, and plan to do some refactoring/simplification afterwards. > > Note we don't have a "no objection" policy for this kind of patch. However, > I think it may make sense to look into having you as a maintainer for the IV > optimizations if you're interested. Oh, that would be my great honor.
Thanks, bin > > Jeff >