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: mostly fix 14329, except for c++


Richard Henderson <rth@redhat.com> writes:

> The DECL_DEBUG_EXPR/DECL_DEBUG_EXPR_IS_FROM is enough to generate
> both proper warnings and proper debug info from the SRA optimized
> code.  Not that this actually does generate proper debug info,
> but in principal the information is now present.
> 
> For some reason, the "obvious" changes to the C++ front end pretty
> printer (in attachment 2 below) do not work.  Zillions of testsuite
> failures due to crashes in this code.  I'll let a C++ person fix it.
> 
> Tested on alphaev67-linux.

Is there any way to do this that doesn't involve adding a field to
tree_decl and so slowing the compiler down?  Every field is worth
about 0.5%, I think.

>         * tree.h (struct tree_decl): Add debug_expr_is_from.
>         (DECL_DEBUG_EXPR_IS_FROM): New.
>         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
>         * dwarf2out.c (dwarf2out_var_location): Update to match.
>         * tree-outof-ssa.c (create_temp): Likewise.
>         * var-tracking.c (track_expr_p): Likewise.
>         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
>         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
>         * toplev.c (default_tree_printer): Likewise.


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