summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-05 14:40:59 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-05 14:40:59 +0000
commit09fabb76ac90980cc9f873f85ee2ca5ab31e5acb (patch)
treeb51b498c5ca943b9565eaefb10b25dbe1c28556e
parent1ec445cf16d8565285caf8727a740ff07692dfe3 (diff)
downloadppe42-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/ChangeLog6
-rw-r--r--gcc/cfglayout.c21
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;
OpenPOWER on IntegriCloud