diff options
author | Zhenqiang Chen <zhenqiang.chen@linaro.org> | 2014-05-26 06:40:57 +0000 |
---|---|---|
committer | Zhenqiang Chen <zqchen@gcc.gnu.org> | 2014-05-26 06:40:57 +0000 |
commit | d29d688acb5bba852cd9709aac914457db47972f (patch) | |
tree | d1b6e9a616200e45161fe65a5982cdc41bfb4eb2 /gcc/shrink-wrap.c | |
parent | 88f32f0f924ccac7635c4491292327cbe30939e2 (diff) | |
download | gcc-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.c | 7 |
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); |