aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2004-02-27 23:48:00 +0000
committerDale Johannesen <dalej@gcc.gnu.org>2004-02-27 23:48:00 +0000
commitb30e1617dc8b550c542728850152e31f5dfb6ca2 (patch)
tree5864d75205e934d178070eec26d0d98f19e99fe8
parentbbc51dc29f2e78be13e4631172d3c1bd05405249 (diff)
downloadgcc-b30e1617dc8b550c542728850152e31f5dfb6ca2.zip
gcc-b30e1617dc8b550c542728850152e31f5dfb6ca2.tar.gz
gcc-b30e1617dc8b550c542728850152e31f5dfb6ca2.tar.bz2
darwin.c (machopic_output_possible_stub_label): Remove.
2004-02-27 Dale Johannesen <dalej@apple.com> * config/darwin.c (machopic_output_possible_stub_label): Remove. config/darwin-protos.h: Ditto. config/darwin.h: Remove call to it. * combine.c (distribute_notes): Do not place a REG_DEAD note when value is both set and used. From-SVN: r78590
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/combine.c20
-rw-r--r--gcc/config/darwin-protos.h2
-rw-r--r--gcc/config/darwin.c31
-rw-r--r--gcc/config/darwin.h3
5 files changed, 12 insertions, 51 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a16b583..5993005 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-02-27 Dale Johannesen <dalej@apple.com>
+ * config/darwin.c (machopic_output_possible_stub_label): Remove.
+ config/darwin-protos.h: Ditto.
+ config/darwin.h: Remove call to it.
+ * combine.c (distribute_notes): Do not place a REG_DEAD note
+ when value is both set and used.
+
2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
diff --git a/gcc/combine.c b/gcc/combine.c
index b7cad3f..e6656e0 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -12729,26 +12729,16 @@ distribute_notes (rtx notes, rtx from_insn, rtx i3, rtx i2)
}
#endif
}
- /* If the register is both set and used here, put the
- REG_DEAD note here, but place a REG_UNUSED note
- here too unless there already is one. */
- else if (reg_referenced_p (XEXP (note, 0),
- PATTERN (tem)))
- {
- place = tem;
-
- if (! find_regno_note (tem, REG_UNUSED,
- REGNO (XEXP (note, 0))))
- REG_NOTES (tem)
- = gen_rtx_EXPR_LIST (REG_UNUSED, XEXP (note, 0),
- REG_NOTES (tem));
- }
else
{
PUT_REG_NOTE_KIND (note, REG_UNUSED);
/* If there isn't already a REG_UNUSED note, put one
- here. */
+ here. Do not place a REG_DEAD note, even if
+ the register is also used here; that would not
+ match the algorithm used in lifetime analysis
+ and can cause the consistency check in the
+ scheduler to fail. */
if (! find_regno_note (tem, REG_UNUSED,
REGNO (XEXP (note, 0))))
place = tem;
diff --git a/gcc/config/darwin-protos.h b/gcc/config/darwin-protos.h
index 66b015b..2866033 100644
--- a/gcc/config/darwin-protos.h
+++ b/gcc/config/darwin-protos.h
@@ -65,8 +65,6 @@ extern const char *darwin_strip_name_encoding (const char *);
extern void machopic_finish (FILE *);
-extern void machopic_output_possible_stub_label (FILE *, const char*);
-
extern void darwin_exception_section (void);
extern void darwin_eh_frame_section (void);
extern void machopic_select_section (tree, int, unsigned HOST_WIDE_INT);
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 978fdde..87523fe 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1096,37 +1096,6 @@ update_non_lazy_ptrs (const char *name)
}
}
-/* Function NAME is being defined, and its label has just been output.
- If there's already a reference to a stub for this function, we can
- just emit the stub label now and we don't bother emitting the stub later. */
-
-void
-machopic_output_possible_stub_label (FILE *file, const char *name)
-{
- tree temp;
-
- /* Ensure we're looking at a section-encoded name. */
- if (name[0] != '!' || (name[1] != 't' && name[1] != 'T'))
- return;
-
- for (temp = machopic_stubs;
- temp != NULL_TREE;
- temp = TREE_CHAIN (temp))
- {
- const char *sym_name;
-
- sym_name = IDENTIFIER_POINTER (TREE_VALUE (temp));
- if (sym_name[0] == '!' && (sym_name[1] == 'T' || sym_name[1] == 't')
- && ! strcmp (name+2, sym_name+2))
- {
- ASM_OUTPUT_LABEL (file, IDENTIFIER_POINTER (TREE_PURPOSE (temp)));
- /* Avoid generating a stub for this. */
- TREE_USED (temp) = 0;
- break;
- }
- }
-}
-
/* Scan the list of stubs and update any recorded names whose
stripped name matches the argument. */
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 0a0c2d1..83c7a8c 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -395,9 +395,6 @@ do { text_section (); \
|| DECL_INITIAL (DECL)) \
(* targetm.encode_section_info) (DECL, DECL_RTL (DECL), false); \
ASM_OUTPUT_LABEL (FILE, xname); \
- /* Avoid generating stubs for functions we've just defined by \
- outputting any required stub name label now. */ \
- machopic_output_possible_stub_label (FILE, xname); \
} while (0)
#define ASM_DECLARE_CONSTANT_NAME(FILE, NAME, EXP, SIZE) \