re PR debug/33868 (Gross memory usage of var-tracking)

PR debug/33868
        * var-tracking.c (variable_union): Don't break after one loop
        * iteration
        but only when a difference is found.
        (dump_variable): Also print DECL_UID.

From-SVN: r129602
This commit is contained in:
Michael Matz 2007-10-24 12:54:24 +00:00
parent 32154c8905
commit e56f915286
2 changed files with 32 additions and 18 deletions

View File

@ -1,21 +1,28 @@
2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
2007-10-24 Michael Matz <matz@suse.de>
* ipa-type-escape.h: Expose function
is_array_access_through_pointer_and_index.
* ipa-type-escape.c
(is_array_access_through_pointer_and_index):
Add three new parameters. Add support of
POINTER_PLUS_EXPR tree code.
PR debug/33868
* var-tracking.c (variable_union): Don't break after one loop iteration
but only when a difference is found.
(dump_variable): Also print DECL_UID.
2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
* ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
* tree-pass.h: Add pass_ipa_struct_reorg.
* common.opt: Add ipa-struct-reorg flag.
* Makefile.in: Add ipa-strcut-reorg.o compilation.
* passes.c: Add pass pass_ipa_struct_reorg.
* params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
* params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
* ipa-type-escape.h: Expose function
is_array_access_through_pointer_and_index.
* ipa-type-escape.c
(is_array_access_through_pointer_and_index):
Add three new parameters. Add support of
POINTER_PLUS_EXPR tree code.
2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
* ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
* tree-pass.h: Add pass_ipa_struct_reorg.
* common.opt: Add ipa-struct-reorg flag.
* Makefile.in: Add ipa-strcut-reorg.o compilation.
* passes.c: Add pass pass_ipa_struct_reorg.
* params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
* params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
2007-10-24 Ira Rosen <irar@il.ibm.com>

View File

@ -1221,9 +1221,11 @@ variable_union (void **slot, void *data)
&& REG_P (node->loc)
&& REGNO (node2->loc) == REGNO (node->loc))
|| rtx_equal_p (node2->loc, node->loc)))
if (node2->init < node->init)
node2->init = node->init;
break;
{
if (node2->init < node->init)
node2->init = node->init;
break;
}
}
if (node || node2)
dst = unshare_variable (set, dst, VAR_INIT_STATUS_UNKNOWN);
@ -2209,8 +2211,13 @@ dump_variable (void **slot, void *data ATTRIBUTE_UNUSED)
int i;
location_chain node;
fprintf (dump_file, " name: %s\n",
fprintf (dump_file, " name: %s",
IDENTIFIER_POINTER (DECL_NAME (var->decl)));
if (dump_flags & TDF_UID)
fprintf (dump_file, " D.%u\n", DECL_UID (var->decl));
else
fprintf (dump_file, "\n");
for (i = 0; i < var->n_var_parts; i++)
{
fprintf (dump_file, " offset %ld\n",