aboutsummaryrefslogtreecommitdiff
path: root/gcc/shrink-wrap.c
diff options
context:
space:
mode:
authorZhenqiang Chen <zhenqiang.chen@linaro.org>2014-05-26 06:40:57 +0000
committerZhenqiang Chen <zqchen@gcc.gnu.org>2014-05-26 06:40:57 +0000
commitd29d688acb5bba852cd9709aac914457db47972f (patch)
treed1b6e9a616200e45161fe65a5982cdc41bfb4eb2 /gcc/shrink-wrap.c
parent88f32f0f924ccac7635c4491292327cbe30939e2 (diff)
downloadgcc-d29d688acb5bba852cd9709aac914457db47972f.zip
gcc-d29d688acb5bba852cd9709aac914457db47972f.tar.gz
gcc-d29d688acb5bba852cd9709aac914457db47972f.tar.bz2
re PR rtl-optimization/61278 (ICE with LTO (lto-wrapper failed) on x86_64-linux-gnu in 64-bit mode)
ChangeLog: 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org> PR rtl-optimization/61278 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live. testsuite/ChangeLog: 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org> * gcc.dg/lto/pr61278_0.c: New test. * gcc.dg/lto/pr61278_1.c: New test. From-SVN: r210922
Diffstat (limited to 'gcc/shrink-wrap.c')
-rw-r--r--gcc/shrink-wrap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c
index 6863502..7d9c6e7 100644
--- a/gcc/shrink-wrap.c
+++ b/gcc/shrink-wrap.c
@@ -213,8 +213,15 @@ move_insn_for_shrink_wrap (basic_block bb, rtx insn,
if (EDGE_COUNT (bb->succs) == 1)
return false;
+ /* If DF_LIVE doesn't exist, i.e. at -O1, just give up. */
+ if (!df_live)
+ return false;
+
next_block = split_edge (live_edge);
+ /* We create a new basic block. Call df_grow_bb_info to make sure
+ all data structures are allocated. */
+ df_grow_bb_info (df_live);
bitmap_copy (df_get_live_in (next_block), df_get_live_out (bb));
df_set_bb_dirty (next_block);