Oh, right. I wonder why this happens only with Java?
Because Java defaults to -fnon-call-exceptions. Add -fno-non-call-exceptions and it will work. It looks to me like the REG_EH_REGION check in postreload-gcse.c is bogus. We can have these notes here with -fnon-call-exceptions, and we will have to do something about them. Perhaps just ignoring insns with a REG_EH_REGION note will work, which appears to be what gcse.c does. I haven't haven't really looked at the code to see if this is the proper solution though.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com