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: libjava build failure sol2.6 asm problem?


On Mon, Dec 31, 2001 at 08:05:37PM -0500, Jeff Sturm wrote:
> It may be helpful here if the backend could easily emit the equivalent
> instructions, e.g. a bsr/ret on Alpha, without a new call frame.  The code
> we generate now is longer and PIC doesn't come for free.

Yes, but this presents problems when it comes to represent this
in the CFG -- the return label cannot move from adjacent to the
bsr instruction.

> However the c++ frontend doesn't bother with TRY_FINALLY_EXPR, it emits
> even inlined destructors twice.  So I'm inclined to say gcj should do the
> same.

Perhaps, but with c++, there is no source line corresponding to
the destructor invocation, and one can in fact place a breakpoint
on the out of line destructor at -O0.  I'm inclined to say that
(at least at -O0) TRY_FINALLY_EXPR should continue with the fake
gosub.  Perhaps at -O1 we might have TRY_FINALLY_EXPR (not gcj
itself) emit the code twice.

The main problem with TRY_FINALLY_EXPR as it exists is that it should
use a cleanup exception handler rather than a catch-all exception
handler.

The sparc -fpic problem still needs to be fixed, not worked around.


r~


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