From d9e7115468531638db9a695eafa9b0fa48b1fa43 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 22 Jul 2013 10:27:25 +0200 Subject: [PATCH] i386.md (nonlocal_goto_receiver): Delete insn if it is not needed after split. gcc/ 2013-07-22 Uros Bizjak * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if it is not needed after split. From-SVN: r201118 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.md | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87c07baf7dc..f0260dd4392 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-07-22 Uros Bizjak + + * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if + it is not needed after split. + 2013-07-20 Iain Sandoe PR target/51784 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index a4778fed1a9..c67ed31923e 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -16233,12 +16233,7 @@ (define_insn_and_split "nonlocal_goto_receiver" [(unspec_volatile [(const_int 0)] UNSPECV_NLGR)] "TARGET_MACHO && !TARGET_64BIT && flag_pic" -{ - if (crtl->uses_pic_offset_table) - return "#"; - else - return ""; /* No pic reg restore needed. */ -} + "#" "&& reload_completed" [(const_int 0)] { @@ -16258,6 +16253,10 @@ xops[2] = gen_rtx_CONST (Pmode, tmp); ix86_expand_binary_operator (MINUS, SImode, xops); } + else + /* No pic reg restore needed. */ + emit_note (NOTE_INSN_DELETED); + DONE; }) -- 2.30.2