tree-optimization/99024 - fix leak in loop vect analysis

When we analyzed a loop as epilogue but later in peeling decide
we're not going to use it then in the DTOR we clear the original
loops ->aux which causes us to leak the main loop vinfo.

Fixed by only clearing aux if it is associated with the vinfo
we're destroying.

2021-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99024
	* tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
	clear loop->aux if it is associated with the destroyed loop_vinfo.
This commit is contained in:
Richard Biener 2021-02-10 09:06:26 +01:00
parent 5da5d8a02c
commit d997565c41

View File

@ -927,7 +927,11 @@ _loop_vec_info::~_loop_vec_info ()
delete scan_map;
epilogue_vinfos.release ();
loop->aux = NULL;
/* When we release an epiloge vinfo that we do not intend to use
avoid clearing AUX of the main loop which should continue to
point to the main loop vinfo since otherwise we'll leak that. */
if (loop->aux == this)
loop->aux = NULL;
}
/* Return an invariant or register for EXPR and emit necessary