This is the mail archive of the gcc-patches@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: [PATCH] Fix AMD64 handling of functions with huge stack frames (take 2)


> This patch passed testing on AMD64, IA64 and IA32.
> 20031023-4.c test fails on PPC64 and 20031023-{1,2,3,4}.c fail on S390x,
> but I assume those are architecture dependent problems which I'll try
> to tackle next.

The patch is failing on hppa64-hp-hpux11.11 due to some wierd reload errors.
The symbol_ref that causes the ultimate ICE first appears in the reloads
for insn 23.

/xxx/gnu/gcc-3.3/gcc/gcc/testsuite/gcc.c-torture/compile/20031023-1.c:54: error:
 unrecognizable insn:
(insn 88 86 89 1 (set (reg:DI %r21)
	(mem/u/f:DI (symbol_ref/u:DI ("*L$C0002") [flags 0x2]) [0 S8 A64])) -1 (nil)
    (nil))

Reloads for insn # 23
Reload 0: R1_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0), can't combine, second
ary_reload_p
        reload_reg_rtx: (reg:SI %r1)
Reload 1: reload_in (DI) = (symbol_ref/u:DI ("*L$C0002") [flags 0x2])
	GENERAL_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0)
	reload_in_reg: (symbol_ref/u:DI ("*L$C0002") [flags 0x2])
	reload_reg_rtx: (reg:DI %r20)
	secondary_in_reload = 0
	secondary_in_icode = reload_indi
Reload 2: reload_in (DI) = (plus:DI (reg/f:DI %r3)
						    (mem/u/f:DI (symbol_ref/u:DI ("*L$C0002") [flags 0x2]) [0 S8 A64]))
     GENERAL_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0), can't combine
     reload_in_reg: (plus:DI (reg/f:DI %r3)
						    (const_int 1099511627792 [0x10000000010]))
	 reload_reg_rtx: (reg:DI %r21)

Insns 22 and  23 look like:

(insn 22 21 23 1 (set (reg:DI 75)
        (reg:DI %r28)) 118 {*pa.md:3313} (nil)
    (expr_list:REG_DEAD (reg:DI %r28)
	(nil)))

(insn 23 22 24 1 (set (reg:DI 66 [ <result> ])
        (reg:DI 75)) 118 {*pa.md:3313} (nil)
    (expr_list:REG_DEAD (reg:DI 75)
	(nil)))

So, I don't understand what's going on in reload.

I can see pa.c needs some updates to handle large frames but that looks
like a separate issue.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)


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