diff options
author | Jakub Jelinek <jakub@redhat.com> | 2015-02-01 18:26:17 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2015-02-01 18:26:17 +0100 |
commit | dfde35b359c23dd0d1542f9fbb2ddb5bad3272fe (patch) | |
tree | 94ca412c24ccc67dd6fdffbc04a5139e57e8e436 /gcc/ChangeLog | |
parent | 516db2dd078c8f9fac7a3dd3ec9ef383570b1dfb (diff) | |
download | gcc-dfde35b359c23dd0d1542f9fbb2ddb5bad3272fe.zip gcc-dfde35b359c23dd0d1542f9fbb2ddb5bad3272fe.tar.gz gcc-dfde35b359c23dd0d1542f9fbb2ddb5bad3272fe.tar.bz2 |
re PR debug/64817 (compilation hangs at -O3 with -g enabled on x86_64-linux-gnu)
PR debug/64817
* cfgexpand.c (deep_ter_debug_map): New variable.
(avoid_deep_ter_for_debug): New function.
(expand_debug_expr): If TERed SSA_NAME is in
deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
instead of trying to expand SSA_NAME's def stmt.
(expand_debug_locations): When expanding debug bind
of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
value.
(pass_expand::execute): Call avoid_deep_ter_for_debug on
all debug bind stmts. Delete deep_ter_debug_map after
expand_debug_location if non-NULL and clear it.
* gcc.dg/pr64817-1.c: New test.
* gcc.dg/pr64817-2.c: New test.
From-SVN: r220320
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dca250c..ce07fba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2015-02-01 Jakub Jelinek <jakub@redhat.com> + + PR debug/64817 + * cfgexpand.c (deep_ter_debug_map): New variable. + (avoid_deep_ter_for_debug): New function. + (expand_debug_expr): If TERed SSA_NAME is in + deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL + instead of trying to expand SSA_NAME's def stmt. + (expand_debug_locations): When expanding debug bind + of a DEBUG_EXPR_DECL to corresponding SSA_NAME, + temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's + value. + (pass_expand::execute): Call avoid_deep_ter_for_debug on + all debug bind stmts. Delete deep_ter_debug_map after + expand_debug_location if non-NULL and clear it. + 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org> PR target/64851 |