Trunk gcj on IA64

Boehm, Hans hans_boehm@hp.com
Fri Aug 17 17:28:00 GMT 2001


I put a patch for the gcc trunk in
http://www.hpl.hp.com/personal/Hans_Boehm/patches/ia64gcj.patch .
With this, and Andrew Haley's patch to libjava/include/dwarf2-signal.h, I
managed to get the 8/8 trunk more or less working for Java.
This patch affects only the gcc part of the tree, not the java-specific
code. I suspect it also fixes some C++ bugs. I'm making it available now,
since I won't get a chance to work on it for at least the next week. Some
of it is not yet clean enough to be checked in.
Changes:
flow.c, config.ia64/ia64.h: Treat ar.pfs live before sibcall.
config/ia64/crtbegin.asm, config/ia64/crtend.asm:
	Handle .jcr class registration section.
config/ia64/ia64.c, config/ia64/linux.c:
	Exception handling patch (from Andrew Haley)
config/ia64/ia64.c, config/ia64/ia64.h, 
	Add soft_return_address_pointer_rtx to keep flow analysis from
marking
	return address save register as dead before a call.
config/ia64/linux.h:
	Fix signal handler frame layout to match recent kernels.
config/ia64/unwind-ia64.c:
	Fix (mostly) ia64 stack unwinding code:
		sp was set to 16 bytes off correct value.
		sp and psp were switched.
Known remaining problems (may be fixed since 8/8 or so when I last updated):
- Throwing exceptions leaks memory, in the same sense that the Titanic
leaked water. On the UCSD benchmark, which throws 1000000 exceptions in a
row, it goes through 2GB in something like 10 sec.
- Occasional SEGV around low.c:5724 with a null PREV_INSN(insn) and prev.
Occurs at -O1 and higher in some code. The offending instruction appears to
be NOTE_INSN_DELETED.
- The previously reported problem at line 9516 in fixup_abnormal_edges.
Seems to happen only at -O0. (Unfortunately that means there is at least
one file in SPECjbb which fails at all optimization levels.)
Hans


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /