#include "toolbox/logging.h"
#include "threads/lock-common.h"
-#include "threads/threads-common.h"
#include "vm/global.h"
#include "vm/initialize.h"
otherwise we could run into a deadlock with <clinit>'s that
call static methods of it's own class. */
- if ((m->flags & ACC_STATIC) && !(m->class->state & CLASS_INITIALIZED)) {
+ if ((m->flags & ACC_STATIC) && !(m->clazz->state & CLASS_INITIALIZED)) {
#if !defined(NDEBUG)
if (initverbose)
- log_message_class("Initialize class ", m->class);
+ log_message_class("Initialize class ", m->clazz);
#endif
- if (!initialize_class(m->class))
+ if (!initialize_class(m->clazz))
return NULL;
/* check if the method has been compiled during initialization */
#endif
#if defined(ENABLE_INLINING) && defined(ENABLE_INLINING_DEBUG)
- if (opt_inlining && opt_inline_debug_all)
+ if (opt_Inline && opt_InlineAll)
jd->flags |= JITDATA_FLAG_INLINE;
#endif
jd->flags |= JITDATA_FLAG_VERBOSECALL;
#if defined(ENABLE_REPLACEMENT) && defined(ENABLE_INLINING)
- if (opt_inlining)
+ if (opt_Inline)
jd->flags |= JITDATA_FLAG_COUNTDOWN;
#endif
jd->flags |= JITDATA_FLAG_VERBOSECALL;
#if defined(ENABLE_INLINING)
- if (opt_inlining)
+ if (opt_Inline)
jd->flags |= JITDATA_FLAG_INLINE;
#endif
RT_TIMING_GET_TIME(time_checks);
-#if defined(WITH_CLASSPATH_SUN)
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
/* Code for Sun's OpenJDK (see
hotspot/src/share/vm/classfile/verifier.cpp
(Verifier::is_eligible_for_verification)): Don't verify
dynamically-generated bytecodes. */
# if defined(ENABLE_VERIFIER)
- if (class_issubclass(m->class, class_sun_reflect_MagicAccessorImpl))
+ if (class_issubclass(m->clazz, class_sun_reflect_MagicAccessorImpl))
jd->flags &= ~JITDATA_FLAG_VERIFY;
# endif
#endif
DEBUG_JIT_COMPILEVERBOSE("Analysing done: ");
- /* Build the CFG. This has to be done after stack_analyse, as
- there happens the JSR elimination. */
-
- if (!cfg_build(jd))
- return NULL;
-
#ifdef ENABLE_VERIFIER
if (JITDATA_HAS_FLAG_VERIFY(jd)) {
DEBUG_JIT_COMPILEVERBOSE("Typechecking: ");
#endif
RT_TIMING_GET_TIME(time_typecheck);
+#if defined(ENABLE_SSA)
+ fix_exception_handlers(jd);
+#endif
+
+ /* Build the CFG. This has to be done after stack_analyse, as
+ there happens the JSR elimination. */
+
+ if (!cfg_build(jd))
+ return NULL;
+
#if defined(ENABLE_LOOP)
if (opt_loops) {
depthFirst(jd);
# endif /* defined(ENABLE_LSRA) && !defined(ENABLE_SSA) */
#if defined(ENABLE_SSA)
/* allocate registers */
- if ((opt_lsra) && (jd->exceptiontablelength == 0)) {
+ if (
+ (opt_lsra)
+ /*&& strncmp(jd->m->name->text, "banana", 6) == 0*/
+ /*&& jd->exceptiontablelength == 0*/
+ ) {
+ /* printf("=== %s ===\n", jd->m->name->text); */
jd->ls = DNEW(lsradata);
jd->ls = NULL;
ssa(jd);
/*lsra(jd);*/ regalloc(jd);
-
+ eliminate_subbasicblocks(jd);
STATISTICS(count_methods_allocated_by_lsra++);
} else