From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13349 invoked by alias); 6 Feb 2004 03:34:44 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 13332 invoked from network); 6 Feb 2004 03:34:40 -0000 Received: from unknown (HELO www.eyesopen.COM) (12.96.199.11) by sources.redhat.com with SMTP; 6 Feb 2004 03:34:40 -0000 Received: from localhost (roger@localhost) by www.eyesopen.COM (8.11.6/8.11.6) with ESMTP id i162dW802022; Thu, 5 Feb 2004 19:39:33 -0700 Date: Sat, 21 Feb 2004 13:45:00 -0000 From: Roger Sayle To: Josef Zlomek cc: Daniel Berlin , Subject: Re: Variable tracking (location lists support) - part 2 In-Reply-To: <20040202203715.GA2379@artax.karlin.mff.cuni.cz> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2004-02/txt/msg00518.txt.bz2 Message-ID: <20040221134500.etrAA-3AoKUK8ocBZr5Fzh2f23h7aAIoaOaEzp0berM@z> On Mon, 2 Feb 2004, Josef Zlomek wrote: > 2004-02-02 Daniel Berlin > Josef Zlomek > > * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function > at the beginning of function, call dwarf2out_var_location for > NOTE_INSN_VAR_LOCATION note. > (struct var_loc_node, struct var_loc_list_def, loclabel_num, > decl_loc_table, decl_loc_table_allocated, decl_loc_table_in_use, > DECL_LOC_TABLE_INCREMENT): New. > (lookup_decl_loc): New function. > (add_var_loc_to_decl): New function. > (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used > only if can_use_fbreg. > (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other > functions. > (loc_descriptor): Likewise. Process VAR_LOCATION. > (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true. > (loc_descriptor_from_tree): Call mem_loc_descriptor with > can_use_fbreg == true. > (add_location_or_const_value_attribute): Added parameter enum > dwarf_attribute attr, generate attribute ATTR. Create the location list. > (add_bound_info): Call loc_descriptor with can_use_fbreg == true. > (gen_formal_parameter_die): Call add_location_or_const_value_attribute > with attr == DW_AT_location. > (gen_subprogram_die): Generate the location list for DW_AT_frame_base > if frame_base_decl is defined and has a location list. > (gen_variable_die): Call add_location_or_const_value_attribute with > attr == DW_AT_location. > (dwarf2out_var_location): New function. > (dwarf2out_begin_function): New function. > (dwarf2out_init): Create decl_loc_table and initialize > decl_loc_table_allocated and decl_loc_table_in_use. Ok for mainline. Given the importance of these patches, I'm surprised that they haven't already been reviewed. However, I'm happy to approve any patches that move us towards omitting the frame pointer by default on more platforms for 3.5, with the associated improvements in compile-time, debugging and generated code performance. Many thanks. Roger --