diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-05 22:25:29 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-05 22:25:29 +0000 |
commit | 7deddfded2d013c07a639873a4c90bfed40fd03e (patch) | |
tree | 3df2a52207fec5bec55c28303aa57a8bd9b4e620 /gcc/cfgrtl.c | |
parent | c79b54af83c8031caac515081fb7c56a127b90e3 (diff) | |
download | gcc-7deddfded2d013c07a639873a4c90bfed40fd03e.tar.gz |
2010-11-05 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 166377
2010-11-05 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 166377
* gcc/Makefile.in (MELT_RAW_CFLAGS): removed LIBELFINC
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@166380 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r-- | gcc/cfgrtl.c | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index a19ba8daa2b..66f0b14f2c4 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -3090,94 +3090,6 @@ init_rtl_bb_info (basic_block bb) bb->il.rtl = ggc_alloc_cleared_rtl_bb_info (); } - -/* Add EXPR to the end of basic block BB. */ - -rtx -insert_insn_end_bb_new (rtx pat, basic_block bb) -{ - rtx insn = BB_END (bb); - rtx new_insn; - rtx pat_end = pat; - - while (NEXT_INSN (pat_end) != NULL_RTX) - pat_end = NEXT_INSN (pat_end); - - /* If the last insn is a jump, insert EXPR in front [taking care to - handle cc0, etc. properly]. Similarly we need to care trapping - instructions in presence of non-call exceptions. */ - - if (JUMP_P (insn) - || (NONJUMP_INSN_P (insn) - && (!single_succ_p (bb) - || single_succ_edge (bb)->flags & EDGE_ABNORMAL))) - { -#ifdef HAVE_cc0 - rtx note; -#endif - /* If this is a jump table, then we can't insert stuff here. Since - we know the previous real insn must be the tablejump, we insert - the new instruction just before the tablejump. */ - if (GET_CODE (PATTERN (insn)) == ADDR_VEC - || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) - insn = prev_real_insn (insn); - -#ifdef HAVE_cc0 - /* FIXME: 'twould be nice to call prev_cc0_setter here but it aborts - if cc0 isn't set. */ - note = find_reg_note (insn, REG_CC_SETTER, NULL_RTX); - if (note) - insn = XEXP (note, 0); - else - { - rtx maybe_cc0_setter = prev_nonnote_insn (insn); - if (maybe_cc0_setter - && INSN_P (maybe_cc0_setter) - && sets_cc0_p (PATTERN (maybe_cc0_setter))) - insn = maybe_cc0_setter; - } -#endif - /* FIXME: What if something in cc0/jump uses value set in new - insn? */ - new_insn = emit_insn_before_noloc (pat, insn, bb); - } - - /* Likewise if the last insn is a call, as will happen in the presence - of exception handling. */ - else if (CALL_P (insn) - && (!single_succ_p (bb) - || single_succ_edge (bb)->flags & EDGE_ABNORMAL)) - { - /* Keeping in mind targets with small register classes and parameters - in registers, we search backward and place the instructions before - the first parameter is loaded. Do this for everyone for consistency - and a presumption that we'll get better code elsewhere as well. */ - - /* Since different machines initialize their parameter registers - in different orders, assume nothing. Collect the set of all - parameter registers. */ - insn = find_first_parameter_load (insn, BB_HEAD (bb)); - - /* If we found all the parameter loads, then we want to insert - before the first parameter load. - - If we did not find all the parameter loads, then we might have - stopped on the head of the block, which could be a CODE_LABEL. - If we inserted before the CODE_LABEL, then we would be putting - the insn in the wrong basic block. In that case, put the insn - after the CODE_LABEL. Also, respect NOTE_INSN_BASIC_BLOCK. */ - while (LABEL_P (insn) - || NOTE_INSN_BASIC_BLOCK_P (insn)) - insn = NEXT_INSN (insn); - - new_insn = emit_insn_before_noloc (pat, insn, bb); - } - else - new_insn = emit_insn_after_noloc (pat, insn, bb); - - return new_insn; -} - /* Returns true if it is possible to remove edge E by redirecting it to the destination of the other edge from E->src. */ |