diff options
| author | dalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-27 23:48:00 +0000 | 
|---|---|---|
| committer | dalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-27 23:48:00 +0000 | 
| commit | bcbf3e49b45953de4dd3c796f62d1ae1d74d0152 (patch) | |
| tree | 5864d75205e934d178070eec26d0d98f19e99fe8 | |
| parent | b0c688b1a51dc26a1e3cc984d3d46d745a8212a8 (diff) | |
| download | ppe42-gcc-bcbf3e49b45953de4dd3c796f62d1ae1d74d0152.tar.gz ppe42-gcc-bcbf3e49b45953de4dd3c796f62d1ae1d74d0152.zip  | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78590 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/combine.c | 20 | ||||
| -rw-r--r-- | gcc/config/darwin-protos.h | 2 | ||||
| -rw-r--r-- | gcc/config/darwin.c | 31 | ||||
| -rw-r--r-- | gcc/config/darwin.h | 3 | 
5 files changed, 12 insertions, 51 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a16b583d4c8..59930057fd7 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 b7cad3fcbad..e6656e0671f 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 66b015b9b5b..28660339488 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 978fdde7e49..87523fe6b9e 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 0a0c2d145eb..83c7a8c8bdf 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)	\  | 

