diff options
| author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-05 14:40:59 +0000 |
|---|---|---|
| committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-05 14:40:59 +0000 |
| commit | 09fabb76ac90980cc9f873f85ee2ca5ab31e5acb (patch) | |
| tree | b51b498c5ca943b9565eaefb10b25dbe1c28556e | |
| parent | 1ec445cf16d8565285caf8727a740ff07692dfe3 (diff) | |
| download | ppe42-gcc-09fabb76ac90980cc9f873f85ee2ca5ab31e5acb.tar.gz ppe42-gcc-09fabb76ac90980cc9f873f85ee2ca5ab31e5acb.zip | |
Sat Jul 5 16:18:53 CEST 2003 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Blame to Jan Hubicka <jh@suse.cz>
* cfglayout.c (record_effective_endpoints): Split insns before
first basic block correctly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68973 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/cfglayout.c | 21 |
2 files changed, 15 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04fa53e0bce..bb80f8f2d5e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sat Jul 5 16:18:53 CEST 2003 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> + + Blame to Jan Hubicka <jh@suse.cz> + * cfglayout.c (record_effective_endpoints): Split insns before + first basic block correctly. + 2003-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 3a6b92500b6..08d20e1357a 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -196,19 +196,16 @@ record_effective_endpoints (void) rtx insn; for (insn = get_insns (); - NEXT_INSN (insn) && GET_CODE (insn) == NOTE; + insn + && GET_CODE (insn) == NOTE + && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK; insn = NEXT_INSN (insn)) - { - if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_BASIC_BLOCK) - { - insn = NULL; - break; - } - if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG) - break; - } - if (insn) - cfg_layout_function_header = unlink_insn_chain (get_insns (), insn); + continue; + if (!insn) + abort (); /* No basic blocks at all? */ + if (PREV_INSN (insn)) + cfg_layout_function_header = + unlink_insn_chain (get_insns (), PREV_INSN (insn)); else cfg_layout_function_header = NULL_RTX; |

