PPC has the tdi instruction that does a compare and raises SIGTRAP if the compare is successful. With this instruction conditional branches leading to uncommon traps can be implemented very efficiently. This is especially needed on AIX, where there are almost no possibilities for ImplicitNullChecks as the zero page is not protected. On linux, this accounts for about 2% jvm2008 performance. Possibilities for trap based range checks and trap based null checks are recognized during matching. To support this, we added a method branches_to_uncommon_trap() to be used in the predicate during matching. The computation of the final block layout must know about this, as it must place the fallthrough properly and adapt the condition in the tdi instruction. We added a method is_TrapBasedCheckNode so these nodes can be recogized in a platform independent way. --------------------------------- This is preparation for PPC64 integration: http://openjdk.java.net/jeps/175 This and following ppc64 changes will go into staging repository first and tested there: http://hg.openjdk.java.net/ppc-aix-port/stage/ http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/338e318f1e12/ppc_patches/0216_opto-trap_based_null_and_range_checks.patch