This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Alpha bootstrap failure


On Wed, Nov 28, 2001 at 01:26:32AM +0100, Jakub Jelinek wrote:
> It looks like -foptimize-sibling-calls -ffunction-sections
> ICEs Alpha gcc.

Yes.  I've got this patch in my tree, but have been stumbling
over ld segfaults for the past day or so, first from binutils
cvs, then from standard rh7.1.

I'm currently trying the ld patch you posted this morning.

> I think all DECL_ONE_ONLY functions will be public, so only the
> flag_function_sections case is problematic.

Yes.

> Is that check in decl_in_text_section because you fear the two might be too
> far away from each other?

Yes.  There was a KDE bug report about this.

> With recent ld script changes they won't be,

Hmm.  Dunno.  I'm inclined to keep the different section check intact.
It just feels more Correct.  If the two sections actually wind up close
together, then linker relaxation would remove the extra address loads.


r~


Index: config/alpha/alpha.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v
retrieving revision 1.159
diff -c -p -d -r1.159 alpha.md
*** alpha.md	2001/11/26 22:56:52	1.159
--- alpha.md	2001/11/28 00:30:19
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 4840,4850 ****
    [(set_attr "type" "jsr")
     (set_attr "length" "12,*,16")])
  
! ;; Need 's' alternative for OSF/1, which implements profiling via linker
! ;; tricks.  Note that the DEC assembler expands "jmp foo" with $at, which
  ;; doesn't do what we want.
  (define_insn "*sibcall_osf_1"
!   [(call (mem:DI (match_operand:DI 0 "current_file_function_operand" "R,s"))
  	 (match_operand 1 "" ""))
     (use (reg:DI 29))]
    "TARGET_ABI_OSF"
--- 4840,4849 ----
    [(set_attr "type" "jsr")
     (set_attr "length" "12,*,16")])
  
! ;; Note that the DEC assembler expands "jmp foo" with $at, which
  ;; doesn't do what we want.
  (define_insn "*sibcall_osf_1"
!   [(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
  	 (match_operand 1 "" ""))
     (use (reg:DI 29))]
    "TARGET_ABI_OSF"
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 6800,6810 ****
    [(set_attr "type" "jsr")
     (set_attr "length" "12,*,16")])
  
- ;; Need 's' alternative for OSF/1, which implements profiling
- ;; via linker tricks.
  (define_insn "*sibcall_value_osf_1"
    [(set (match_operand 0 "" "")
! 	(call (mem:DI (match_operand:DI 1 "current_file_function_operand" "R,s"))
  	      (match_operand 2 "" "")))
     (use (reg:DI 29))]
    "TARGET_ABI_OSF"
--- 6799,6807 ----
    [(set_attr "type" "jsr")
     (set_attr "length" "12,*,16")])
  
  (define_insn "*sibcall_value_osf_1"
    [(set (match_operand 0 "" "")
! 	(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
  	      (match_operand 2 "" "")))
     (use (reg:DI 29))]
    "TARGET_ABI_OSF"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]