Every time an exception object is created, the constructor calls
`fillInStackTrace()`, which has to walk the call stack to record every
frame.  This is expensive, and it's also unnecessary if the exception is
never thrown.  There are a few instances in various parts of the JDK
libraries where we create an exception in the dominator block but don't
always throw it.  This patch fixes those cases so that if the exception
is not going to be thrown, it is never created in the first place.

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

-------------

Commit messages:
 - Only create exception objects if we're going to throw them

Changes: https://git.openjdk.org/jdk/pull/31487/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=31487&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8386509
  Stats: 41 lines in 6 files changed: 12 ins; 8 del; 21 mod
  Patch: https://git.openjdk.org/jdk/pull/31487.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31487/head:pull/31487

PR: https://git.openjdk.org/jdk/pull/31487

Reply via email to