[VTA, PR41473] drop NULL locations from lists

Jakub Jelinek jakub@redhat.com
Mon Nov 23 20:52:00 GMT 2009


On Mon, Nov 23, 2009 at 06:11:57PM -0200, Alexandre Oliva wrote:
> Entries in location lists whose RTL is NULL or not representable end up
> causing us to waste debug info space emitting empty DW_AT_location.
> 
> This patch optimizes the debug information, omitting the useless
> DW_AT_location.  This should work around the bug in Darwin's dsymutil.
> 
> While at that, I arranged for entries in location lists that are not
> representable in debug info to not waste an entry in the output location
> list.
> 
> The patch also fixes the handling of CONST_DOUBLEs and CONST_VECTORs
> within CONCAT and CONCATN, that was currently disabled because mode was
> specified as VOIDmode by the handlers of these RTL forms.  Even with
> -gdwarf-4, we'd still have failed to emit them.
> 
> Ok to install if this passes regstrap?
> 

Are you sure the dropping of single_element_loc_list call in the
loc->first && loc->last == loc->first case is a good idea?
I believe that will force using location lists even when block form could be
used for DW_AT_location.  If loc->first->descr is NULL, the function should
just return NULL, otherwise it should create the special single element list
so that add_AT_location_description does the right thing.

	Jakub



More information about the Gcc-patches mailing list