This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Provide debug info for SRA optimized variables (PR debug/43983)


On Thu, May 13, 2010 at 3:53 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, May 12, 2010 at 11:09:32PM +0200, Jakub Jelinek wrote:
>> On Wed, May 12, 2010 at 02:46:42PM -0400, Jason Merrill wrote:
>> > So, in this patch you're changing the var_loc_note field to be
>> > either a varloc note or a piece EXPR_LIST that does not appear
>> > anywhere else in the compiler, correct? ?Please document this new
>> > data structure.
>>
>> Attached is an untested patch that incorporates your feedback
>> here and on IRC. ?Hope I haven't missed anything.
>>
>> I'll actually test it tomorrow.
>
> Here is what I've actually committed after bootstrapping/regtesting
> on x86_64-linux and i686-linux and manually in gdb inferior tested various copying
> / modify in place scenarios in adjust_piece_list.
>
> Thanks for the review.
>
> 2010-05-13 ?Jakub Jelinek ?<jakub@redhat.com>
>
> ? ? ? ?PR debug/43983
> ? ? ? ?* var-tracking.c (track_expr_p): Allow tracking of variables optimized
> ? ? ? ?by SRA.
> ? ? ? ?* Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
> ? ? ? ?* tree-sra.c (create_access_replacement): Call unshare_expr before
> ? ? ? ?passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from
> ? ? ? ?it.
> ? ? ? ?* dwarf2out.c: Include tree-flow.h.
> ? ? ? ?(struct var_loc_node): Rename var_loc_note field to loc, add comment.
> ? ? ? ?(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
> ? ? ? ?Handle DW_OP_bit_piece.
> ? ? ? ?(decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
> ? ? ? ?construct_piece_list, adjust_piece_list): New functions.
> ? ? ? ?(add_var_loc_to_decl): Handle SRA optimized variables.
> ? ? ? ?Adjust for var_loc_note to loc field renaming.
> ? ? ? ?(dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
> ? ? ? ?in VAR_LOCATION note.
> ? ? ? ?(new_loc_descr_op_bit_piece): New function.
> ? ? ? ?(dw_sra_loc_expr): New function.
> ? ? ? ?(dw_loc_list): Use it. ?Don't handle the last range after the
> ? ? ? ?loop, handle it inside of the loop. ?Adjust for var_loc_note
> ? ? ? ?to loc field renaming.
> ? ? ? ?(add_location_or_const_value_attribute): Only special case
> ? ? ? ?single entry loc lists if loc is NOTE_P. ?Adjust for
> ? ? ? ?var_loc_note to loc field renaming.
> ? ? ? ?(dwarf2out_var_location): Don't set newloc->var_loc_note
> ? ? ? ?and newloc->next here.
>
> ? ? ? ?* gcc.dg/guality/sra-1.c: New test.
>

The new test failed for me on Linux/x86-64:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44115


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]