aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-02-01 18:26:17 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2015-02-01 18:26:17 +0100
commitdfde35b359c23dd0d1542f9fbb2ddb5bad3272fe (patch)
tree94ca412c24ccc67dd6fdffbc04a5139e57e8e436 /gcc/ChangeLog
parent516db2dd078c8f9fac7a3dd3ec9ef383570b1dfb (diff)
downloadgcc-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/ChangeLog16
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