[vmkit-commits] [vmkit] r101135 - in /vmkit/trunk: ./ autoconf/ include/mvm/Threads/ lib/J3/Classpath/ lib/J3/Compiler/ lib/J3/LLVMRuntime/ lib/J3/VMCore/ lib/Mvm/CommonThread/ lib/Mvm/Compiler/ lib/Mvm/GCMmap2/ lib/Mvm/MMTk/ mmtk/mmtk-j3/ tools/vmjc/ tools/vmkit/

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Apr 13 09:24:13 PDT 2010


Author: geoffray
Date: Tue Apr 13 11:24:13 2010
New Revision: 101135

URL: http://llvm.org/viewvc/llvm-project?rev=101135&view=rev
Log:
Add a new exception model in the runtime: the default is now setjmp/longjmp, but dwarf is still supported.


Modified:
    vmkit/trunk/Makefile.common.in
    vmkit/trunk/autoconf/configure.ac
    vmkit/trunk/configure
    vmkit/trunk/include/mvm/Threads/Thread.h
    vmkit/trunk/lib/J3/Classpath/ClasspathConstructor.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathVMSystem.inc
    vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc
    vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp
    vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll
    vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll
    vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll
    vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
    vmkit/trunk/lib/J3/VMCore/JavaThread.cpp
    vmkit/trunk/lib/J3/VMCore/JavaThread.h
    vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/Mvm/CommonThread/ctthread.cpp
    vmkit/trunk/lib/Mvm/Compiler/MMTkInline.inc
    vmkit/trunk/lib/Mvm/GCMmap2/MutatorThread.h
    vmkit/trunk/lib/Mvm/MMTk/MutatorThread.h
    vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp
    vmkit/trunk/tools/vmjc/vmjc.cpp
    vmkit/trunk/tools/vmkit/CommandLine.cpp

Modified: vmkit/trunk/Makefile.common.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.common.in?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/Makefile.common.in (original)
+++ vmkit/trunk/Makefile.common.in Tue Apr 13 11:24:13 2010
@@ -18,8 +18,6 @@
 # Set the root directory of this project's install prefix
 PROJ_INSTALL_ROOT := @prefix@
 
-REQUIRES_EH := 1
-
 # Include LLVM's Master Makefile.
 include $(LLVM_OBJ_ROOT)/Makefile.common
 

Modified: vmkit/trunk/autoconf/configure.ac
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/autoconf/configure.ac?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/autoconf/configure.ac (original)
+++ vmkit/trunk/autoconf/configure.ac Tue Apr 13 11:24:13 2010
@@ -303,15 +303,34 @@
 dnl **************************************************************************
 AC_ARG_WITH(exception-type,
        [AS_HELP_STRING(--with-exception-type=something,
-           [VM type ('check' or 'dwarf')])],
+           [Exception type ('check' or 'dwarf')])],
        [[exceptiontype=$withval]],
        [[ echo Using check as exception type.
                 exceptiontype=check
        ]]
 )
 
+AC_ARG_WITH(runtime-exception-type,
+       [AS_HELP_STRING(--with-runtime-exception-type=something,
+           [Runtime exception type ('setjmp' or 'dwarf')])],
+       [[runtimeexceptiontype=$withval]],
+       [[ echo Using setjmp as exception type.
+                exceptiontype=setjmp
+       ]]
+)
+
 if test "x$exceptiontype" = "xdwarf";  then
-  EXCEPTION_FLAGS="-DDWARF_EXCEPTIONS"
+  EXCEPTION_FLAGS="-DDWARF_EXCEPTIONS -fexceptions"
+fi
+
+if test "x$runtimeexceptiontype" = "xdwarf";  then
+  EXCEPTION_FLAGS+="-DRUNTIME_DWARF_EXCEPTIONS -fexceptions"
+fi
+
+if test "x$runtimeexceptiontype" != "xdwarf"; then
+  if test "x$exceptiontype" != "xdwarf"; then
+    EXCEPTION_FLAGS="-fno-exceptions"
+  fi
 fi
 
 AC_SUBST([EXCEPTION_FLAGS])

Modified: vmkit/trunk/configure
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/configure?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/configure (original)
+++ vmkit/trunk/configure Tue Apr 13 11:24:13 2010
@@ -723,6 +723,7 @@
 with_gc
 with_vm_type
 with_exception_type
+with_runtime_exception_type
 with_gnu_classpath_libs
 with_gnu_classpath_glibj
 with_j3
@@ -1367,7 +1368,9 @@
                           VM type ('single' 'isolate' 'isolate-sharing' or
                           'service')
   --with-exception-type=something
-                          VM type ('check' or 'dwarf')
+                          Exception type ('check' or 'dwarf')
+  --with-runtime-exception-type=something
+                          Runtime exception type ('setjmp' or 'dwarf')
   --with-gnu-classpath-libs=something
                           GNU CLASSPATH libraries (default is
                           /usr/lib/classpath)
@@ -3932,8 +3935,30 @@
 fi
 
 
+
+# Check whether --with-runtime-exception-type was given.
+if test "${with_runtime_exception_type+set}" = set; then :
+  withval=$with_runtime_exception_type; runtimeexceptiontype=$withval
+else
+   echo Using setjmp as exception type.
+                exceptiontype=setjmp
+
+
+fi
+
+
 if test "x$exceptiontype" = "xdwarf";  then
-  EXCEPTION_FLAGS="-DDWARF_EXCEPTIONS"
+  EXCEPTION_FLAGS="-DDWARF_EXCEPTIONS -fexceptions"
+fi
+
+if test "x$runtimeexceptiontype" = "xdwarf";  then
+  EXCEPTION_FLAGS+="-DRUNTIME_DWARF_EXCEPTIONS -fexceptions"
+fi
+
+if test "x$runtimeexceptiontype" != "xdwarf"; then
+  if test "x$exceptiontype" != "xdwarf"; then
+    EXCEPTION_FLAGS="-fno-exceptions -Wno-uninitialized"
+  fi
 fi
 
 

Modified: vmkit/trunk/include/mvm/Threads/Thread.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/Threads/Thread.h?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/include/mvm/Threads/Thread.h (original)
+++ vmkit/trunk/include/mvm/Threads/Thread.h Tue Apr 13 11:24:13 2010
@@ -1,6 +1,6 @@
 //===---------------- Threads.h - Micro-vm threads ------------------------===//
 //
-//                     The Micro Virtual Machine
+//                        The VMKit project
 //
 // This file is distributed under the University of Illinois Open Source
 // License. See LICENSE.TXT for details.
@@ -16,9 +16,18 @@
 
 #include "types.h"
 
+#ifdef RUNTIME_DWARF_EXCEPTIONS
 #define TRY try
 #define CATCH catch(...)
 #define IGNORE catch(...) { mvm::Thread::get()->clearException(); }
+#define END_CATCH
+#else
+#include <csetjmp>
+#define TRY { mvm::ExceptionBuffer __buffer__; if (!setjmp(__buffer__.buffer))
+#define CATCH else
+#define IGNORE else { mvm::Thread::get()->clearException(); }}
+#define END_CATCH }
+#endif
 
 namespace mvm {
 
@@ -122,12 +131,23 @@
   void* currentFP;
 };
 
+
+class ExceptionBuffer;
+
 /// Thread - This class is the base of custom virtual machines' Thread classes.
 /// It provides static functions to manage threads. An instance of this class
 /// contains all thread-specific informations.
 class Thread : public CircularBase {
 public:
-  
+  Thread() {
+#ifdef RUNTIME_DWARF_EXCEPTIONS
+  internalPendingException = 0;
+#else
+  lastExceptionBuffer = 0;
+#endif
+  lastKnownFrame = 0;
+  }
+
   /// yield - Yield the processor to another thread.
   ///
   static void yield(void);
@@ -283,6 +303,9 @@
 
   /// clearException - Clear any pending exception of the current thread.
   void clearException() {
+#ifdef RUNTIME_DWARF_EXCEPTIONS
+    internalPendingException = 0;
+#endif
     internalClearException();
   }
 
@@ -346,11 +369,40 @@
   /// lastKnownFrame - The last frame that we know of, before resuming to JNI.
   ///
   KnownFrame* lastKnownFrame;
+  
+#ifdef RUNTIME_DWARF_EXCEPTIONS
+  void* internalPendingException;
+#else
+  /// lastExceptionBuffer - The last exception buffer on this thread's stack.
+  ///
+  ExceptionBuffer* lastExceptionBuffer;
+#endif
+
+  void internalThrowException();
 
   void startKnownFrame(KnownFrame& F) __attribute__ ((noinline));
   void endKnownFrame();
 };
 
+#ifndef RUNTIME_DWARF_EXCEPTIONS
+class ExceptionBuffer {
+public:
+  ExceptionBuffer() {
+    Thread* th = Thread::get();
+    previousBuffer = th->lastExceptionBuffer;
+    th->lastExceptionBuffer = this;
+  }
+
+  ~ExceptionBuffer() {
+    Thread* th = Thread::get();
+    assert(th->lastExceptionBuffer == this && "Wrong exception buffer");
+    th->lastExceptionBuffer = previousBuffer;
+  }
+  ExceptionBuffer* previousBuffer;
+  jmp_buf buffer;
+};
+#endif
+
 /// StackWalker - This class walks the stack of threads, returning a MethodInfo
 /// object at each iteration.
 ///

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathConstructor.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathConstructor.inc?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathConstructor.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathConstructor.inc Tue Apr 13 11:24:13 2010
@@ -131,7 +131,7 @@
           th->throwPendingException();
         }
         return NULL;
-      }
+      } END_CATCH;
     
     } else {
       vm->illegalArgumentException("class is not a regular class");

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc Tue Apr 13 11:24:13 2010
@@ -172,7 +172,7 @@
         th->throwPendingException(); \
       } \
       return NULL; \
-    } \
+    } END_CATCH; \
     
     Typedef* retType = sign->getReturnType();
     if (retType->isPrimitive()) {

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathVMSystem.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathVMSystem.inc?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathVMSystem.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathVMSystem.inc Tue Apr 13 11:24:13 2010
@@ -72,6 +72,7 @@
   }
   
   jint i = sstart;
+  jint length = len;
   bool doThrow = false;
   if (!(dstType->isPrimitive())) {
     while (i < sstart + len && !doThrow) {
@@ -79,7 +80,7 @@
       if (cur) {
         if (!(cur->getClass()->isAssignableFrom(dstType))) {
           doThrow = true;
-          len = i;
+          length = i;
         }
       }
       ++i;
@@ -91,14 +92,12 @@
 
   void* ptrDst = (void*)((int64_t)(dst->elements) + (dstart << logSize));
   void* ptrSrc = (void*)((int64_t)(src->elements) + (sstart << logSize));
-  memmove(ptrDst, ptrSrc, len << logSize);
+  memmove(ptrDst, ptrSrc, length << logSize);
 
   if (doThrow)
     vm->arrayStoreException();
-  
-  
-  END_NATIVE_EXCEPTION
 
+  END_NATIVE_EXCEPTION
 }
 
 JNIEXPORT jint JNICALL Java_java_lang_VMSystem_identityHashCode(

Modified: vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc (original)
+++ vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc Tue Apr 13 11:24:13 2010
@@ -472,11 +472,12 @@
     // Get the Java exception.
     Value* exc = new LoadInst(javaExceptionPtr, "", currentBlock);
     
-    Value* geps2[2] = { module->constantZero,
+    Value* geps2[3] = { module->constantZero,
+                        module->constantZero,
                         module->OffsetCXXExceptionInThreadConstant };
     
     Value* cxxExceptionPtr = GetElementPtrInst::Create(threadId, geps2,
-                                                       geps2 + 2, "",
+                                                       geps2 + 3, "",
                                                        currentBlock);
 
     // Clear exceptions.
@@ -559,11 +560,12 @@
     endExceptionBlock->eraseFromParent();
   } else {
     Value* threadId = getCurrentThread(module->JavaThreadType);
-    Value* geps2[2] = { module->constantZero,
+    Value* geps2[3] = { module->constantZero,
+                        module->constantZero,
                         module->OffsetCXXExceptionInThreadConstant };
     
     Value* cxxExceptionPtr = GetElementPtrInst::Create(threadId, geps2,
-                                                       geps2 + 2, "",
+                                                       geps2 + 3, "",
                                                        currentBlock);
     cxxExceptionPtr = new LoadInst(cxxExceptionPtr, "", currentBlock);
     llvm::CallInst::Create(module->unwindResume, cxxExceptionPtr, "",

Modified: vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp Tue Apr 13 11:24:13 2010
@@ -152,7 +152,7 @@
   OffsetJavaExceptionInThreadConstant =
     ConstantInt::get(Type::getInt32Ty(Context), 2);
   OffsetCXXExceptionInThreadConstant =
-    ConstantInt::get(Type::getInt32Ty(Context), 3);
+    ConstantInt::get(Type::getInt32Ty(Context), 13);
   
   ClassReadyConstant = ConstantInt::get(Type::getInt8Ty(Context), ready);
   

Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Tue Apr 13 11:24:13 2010
@@ -1922,8 +1922,6 @@
   JnjvmBootstrapLoader* bootstrapLoader = vm->bootstrapLoader;
   JavaAOTCompiler* M = (JavaAOTCompiler*)bootstrapLoader->getCompiler();
   JavaJITCompiler* Comp = 0;
-  try {
-    
     if (!M->clinits->empty()) {
       Comp = JavaJITCompiler::CreateCompiler("JIT");
       Comp->EmitFunctionName = true;
@@ -1982,13 +1980,13 @@
               Class* cl = *ii;
               if (!strncmp(UTF8Buffer(cl->name).cString(), i->c_str(),
                            i->length() - 1)) {
-                try {
+                TRY {
                   cl->asClass()->initialiseClass(vm);
-                } catch (...) {
+                } CATCH {
                   fprintf(stderr, "Error when initializing %s\n",
                           UTF8Buffer(cl->name).cString());
                   abort();
-                }
+                } END_CATCH;
               }
             }
           } else {
@@ -1996,13 +1994,13 @@
             const UTF8* name = bootstrapLoader->asciizConstructUTF8(i->c_str());
             CommonClass* cl = bootstrapLoader->lookupClass(name);
             if (cl && cl->isClass()) {
-              try {
+              TRY {
                 cl->asClass()->initialiseClass(vm);
-              } catch (...) {
+              } CATCH {
                 fprintf(stderr, "Error when initializing %s\n",
                         UTF8Buffer(cl->name).cString());
                 abort();
-              }
+              } END_CATCH;
             } else {
               fprintf(stderr, "Class %s does not exist or is an array class.\n",
                       i->c_str());
@@ -2085,10 +2083,6 @@
 
     M->CreateStaticInitializer();
 
-  } catch(std::string str) {
-    fprintf(stderr, "Error : %s\n", str.c_str());
-  }
-  
 end:
 
   vm->threadSystem.nonDaemonLock.lock();

Modified: vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll (original)
+++ vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll Tue Apr 13 11:24:13 2010
@@ -11,5 +11,6 @@
 ;;; Field 10: internalThreadID
 ;;; field 11: routine
 ;;; field 12: lastKnownFrame
+;;; field 13: lastExceptionBuffer
 %MutatorThread = type { %VT*, %JavaThread*, %JavaThread*, i8*, i8*, i8*, i1, i1,
-                        i1, i8*, i8*, i8*, i8*}
+                        i1, i8*, i8*, i8*, i8*, i8*}

Modified: vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll (original)
+++ vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll Tue Apr 13 11:24:13 2010
@@ -27,7 +27,7 @@
 ;;; Field 3: The static instance
 %TaskClassMirror = type { i8, i1, i8* }
 
-%JavaThread = type { %MutatorThread, i8*, %JavaObject*, i8* }
+%JavaThread = type { %MutatorThread, i8*, %JavaObject* }
 
 
 %Attribut = type { %UTF8*, i32, i32 }

Modified: vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll (original)
+++ vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll Tue Apr 13 11:24:13 2010
@@ -13,8 +13,9 @@
 ;;; Field 10: internalThreadID
 ;;; field 11: routine
 ;;; field 12: lastKnownFrame
-;;; field 13: allocator
-;;; field 14: MutatorContext
-;;; field 15: realRoutine
+;;; field 13: lastKnownBufer
+;;; field 14: allocator
+;;; field 15: MutatorContext
+;;; field 16: realRoutine
 %MutatorThread = type { %VT*, %JavaThread*, %JavaThread*, i8*, i8*, i8*, i1, i1,
-                        i1, i8*, i8*, i8*, i8*, %BumpPtrAllocator, i8*, i8* }
+                        i1, i8*, i8*, i8*, i8*, i8*, %BumpPtrAllocator, i8*, i8* }

Modified: vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaClass.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaClass.cpp Tue Apr 13 11:24:13 2010
@@ -892,36 +892,43 @@
     } else if (!isResolving()) {
       setOwnerClass(JavaThread::get());
       
-      JavaObject* exc = 0;
-      TRY {
-        readClass();
-      } CATCH {
-        exc = JavaThread::get()->pendingException;
-        JavaThread::get()->clearException();
-      }
-
-      if (exc) {
-        setErroneous();        
-        setOwnerClass(0);
-        broadcastClass();
-        release();
-        JavaThread::get()->throwException(exc);
+      {
+        JavaObject* exc = 0;
+        llvm_gcroot(exc, 0);
+        TRY {
+          readClass();
+        } CATCH {
+          exc = JavaThread::get()->pendingException;
+          JavaThread::get()->clearException();
+        } END_CATCH;
+
+        if (exc) {
+          setErroneous();        
+          setOwnerClass(0);
+          broadcastClass();
+          release();
+          JavaThread::get()->throwException(exc);
+        }
       }
  
       release();
-
-      TRY {
-        loadParents();
-      } CATCH {
-        setInitializationState(loaded);
-        exc = JavaThread::get()->pendingException;
-        JavaThread::get()->clearException();
-      }
       
-      if (exc) {
-        setErroneous();        
-        setOwnerClass(0);
-        JavaThread::get()->throwException(exc);
+      {
+        JavaObject* exc = 0;
+        llvm_gcroot(exc, 0);
+        TRY {
+          loadParents();
+        } CATCH {
+          setInitializationState(loaded);
+          exc = JavaThread::get()->pendingException;
+          JavaThread::get()->clearException();
+        } END_CATCH;
+      
+        if (exc) {
+          setErroneous();        
+          setOwnerClass(0);
+          JavaThread::get()->throwException(exc);
+        }
       }
       
       makeVT();

Modified: vmkit/trunk/lib/J3/VMCore/JavaThread.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaThread.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaThread.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaThread.cpp Tue Apr 13 11:24:13 2010
@@ -23,7 +23,8 @@
 const unsigned int JavaThread::StateWaiting = 1;
 const unsigned int JavaThread::StateInterrupted = 2;
 
-JavaThread::JavaThread(JavaObject* thread, JavaObject* vmth, Jnjvm* isolate) {
+JavaThread::JavaThread(JavaObject* thread, JavaObject* vmth, Jnjvm* isolate)
+    : MutatorThread() {
   llvm_gcroot(thread, 0);
   llvm_gcroot(vmth, 0);
   
@@ -33,8 +34,6 @@
   interruptFlag = 0;
   state = StateRunning;
   pendingException = 0;
-  internalPendingException = 0;
-  lastKnownFrame = 0;
   jniEnv = isolate->jniEnv;
   localJNIRefs = new JNILocalReferences();
   currentAddedReferences = 0;
@@ -55,30 +54,18 @@
 #endif
 }
 
-// We define these here because gcc compiles the 'throw' keyword
-// differently, whether these are defined in a file or not. Since many
-// cpp files import JavaThread.h, they couldn't use the keyword.
-
-extern "C" void* __cxa_allocate_exception(unsigned);
-extern "C" void __cxa_throw(void*, void*, void*);
-
 void JavaThread::throwException(JavaObject* obj) {
   llvm_gcroot(obj, 0);
   JavaThread* th = JavaThread::get();
   assert(th->pendingException == 0 && "pending exception already there?");
   th->pendingException = obj;
-  void* exc = __cxa_allocate_exception(0);
-  // 32 = sizeof(_Unwind_Exception) in libgcc...  
-  th->internalPendingException = (void*)((uintptr_t)exc - 32);
-  __cxa_throw(exc, 0, 0);
+  th->internalThrowException();
 }
 
 void JavaThread::throwPendingException() {
   JavaThread* th = JavaThread::get();
   assert(th->pendingException);
-  void* exc = __cxa_allocate_exception(0);
-  th->internalPendingException = (void*)((uintptr_t)exc - 32);
-  __cxa_throw(exc, 0, 0);
+  th->internalThrowException();
 }
 
 void JavaThread::startJNI(int level) {

Modified: vmkit/trunk/lib/J3/VMCore/JavaThread.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaThread.h?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaThread.h (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaThread.h Tue Apr 13 11:24:13 2010
@@ -35,7 +35,7 @@
 #define END_NATIVE_EXCEPTION \
   } CATCH { \
     __th->throwFromNative(); \
-  } \
+  } END_CATCH;
 
 #define BEGIN_JNI_EXCEPTION \
   JavaThread* th = JavaThread::get(); \
@@ -48,7 +48,7 @@
 #define END_JNI_EXCEPTION \
   } CATCH { \
     th->throwFromJNI(SP); \
-  }
+  } END_CATCH;
 
 #define RETURN_FROM_JNI(a) {\
   th->endKnownFrame(); \
@@ -76,10 +76,6 @@
   ///
   JavaObject* pendingException;
 
-  /// internalPendingException - The C++ exception currencty pending.
-  ///
-  void* internalPendingException;
-
   /// javaThread - The Java representation of this thread.
   ///
   JavaObject* javaThread;
@@ -256,7 +252,6 @@
   ///
   virtual void internalClearException() {
     pendingException = 0;
-    internalPendingException = 0;
   }
 
 public:

Modified: vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp Tue Apr 13 11:24:13 2010
@@ -122,15 +122,12 @@
 #if defined(ISOLATE) || defined(ISOLATE_SHARING)
     // Isolate environments allocate the static instance on their own, not when
     // the class is being resolved.
-    void* val = cl->allocateStaticInstance(vm);
+    cl->allocateStaticInstance(vm);
 #else
     // Single environment allocates the static instance during resolution, so
     // that compiled code can access it directly (with an initialization
     // check just before the access)
-    void* val = cl->getStaticInstance();
-    if (!val) {
-      val = cl->allocateStaticInstance(vm);
-    }
+    if (!cl->getStaticInstance()) cl->allocateStaticInstance(vm);
 #endif
     release();
   
@@ -155,7 +152,7 @@
         release();
         self->throwPendingException();
         return;
-      }
+      } END_CATCH;
     }
  
     JavaObject* exc = 0;
@@ -181,6 +178,7 @@
 
     if (!vmjced) {
       JavaField* fields = cl->getStaticFields();
+      void* val = cl->getStaticInstance();
       for (uint32 i = 0; i < cl->nbStaticFields; ++i) {
         fields[i].initField(val, vm);
       }
@@ -199,7 +197,7 @@
         exc = self->getJavaException();
         assert(exc && "no exception?");
         self->clearException();
-      }
+      } END_CATCH;
     }
 #ifdef SERVICE
     }
@@ -1170,7 +1168,7 @@
   
     method->invokeIntStatic(this, method->classDef, &args);
   } CATCH {
-  }
+  } END_CATCH;
 
   exc = JavaThread::get()->pendingException;
   if (exc) {
@@ -1184,7 +1182,7 @@
     } CATCH {
       fprintf(stderr, "Exception in thread \"main\": "
                       "Can not print stack trace.\n");
-    }
+    } END_CATCH;
   }
 }
 
@@ -1237,7 +1235,7 @@
     vm->loadBootstrap();
   } CATCH {
     exc = JavaThread::get()->pendingException;
-  }
+  } END_CATCH;
 
   if (exc != NULL) {
     fprintf(stderr, "Exception %s while bootstrapping VM.",

Modified: vmkit/trunk/lib/Mvm/CommonThread/ctthread.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/CommonThread/ctthread.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/CommonThread/ctthread.cpp (original)
+++ vmkit/trunk/lib/Mvm/CommonThread/ctthread.cpp Tue Apr 13 11:24:13 2010
@@ -1,6 +1,6 @@
-//===-------------- ctthread.cc - Mvm common threads ----------------------===//
+//===---------- ctthread.cc - Thread implementation for VMKit -------------===//
 //
-//                              Mvm
+//                            The VMKit project
 //
 // This file is distributed under the University of Illinois Open Source
 // License. See LICENSE.TXT for details.
@@ -17,6 +17,7 @@
 #include <signal.h>
 #include <cstdio>
 #include <ctime>
+#include <dlfcn.h>
 #include <errno.h>
 #include <pthread.h>
 #include <sys/mman.h>
@@ -63,6 +64,36 @@
   lastKnownFrame = lastKnownFrame->previousFrame;
 }
 
+#if defined(__MACH__)
+#define SELF_HANDLE RTLD_DEFAULT
+#else
+#define SELF_HANDLE 0
+#endif
+
+void Thread::internalThrowException() {
+#ifdef RUNTIME_DWARF_EXCEPTIONS
+  // Use dlsym instead of getting the functions statically with extern "C"
+  // because gcc compiles exceptions differently.
+  typedef void* (*cxa_allocate_exception_type)(unsigned);
+  typedef void  (*cxa_throw_type)(void*, void*, void*);
+  
+  static cxa_allocate_exception_type cxa_allocate_exception =
+    (cxa_allocate_exception_type)(uintptr_t)
+    dlsym(SELF_HANDLE, "__cxa_allocate_exception");
+  
+  static cxa_throw_type cxa_throw =
+    (cxa_throw_type)(uintptr_t)
+    dlsym(SELF_HANDLE, "__cxa_throw");
+  
+  void* exc = cxa_allocate_exception(0);
+  // 32 = sizeof(_Unwind_Exception) in libgcc...  
+  internalPendingException = (void*)((uintptr_t)exc - 32);
+  cxa_throw(exc, 0, 0);
+#else
+  longjmp(lastExceptionBuffer->buffer, 1);
+#endif
+}
+
 void Thread::printBacktrace() {
   StackWalker Walker(this);
 

Modified: vmkit/trunk/lib/Mvm/Compiler/MMTkInline.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Compiler/MMTkInline.inc?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/Compiler/MMTkInline.inc (original)
+++ vmkit/trunk/lib/Mvm/Compiler/MMTkInline.inc Tue Apr 13 11:24:13 2010
@@ -48,6 +48,7 @@
   /*Params=*/FuncTy_9_args,
   /*isVarArg=*/false);
 
+
 std::vector<const Type*>FuncTy_11_args;
 FuncTy_11_args.push_back(IntegerType::get(mod->getContext(), 32));
 FunctionType* FuncTy_11 = FunctionType::get(
@@ -55,6 +56,7 @@
   /*Params=*/FuncTy_11_args,
   /*isVarArg=*/false);
 
+
 std::vector<const Type*>StructTy_struct_mvm__MutatorThread_fields;
 std::vector<const Type*>StructTy_struct_mvm__Thread_fields;
 std::vector<const Type*>StructTy_struct_mvm__CircularBase_fields;
@@ -215,12 +217,12 @@
 std::vector<const Type*>StructTy_struct_std__map_const_char_j3__ClassPrimitive__std__less_const_char__std__allocator_std__pair_const_char__j3__ClassPrimitive_______fields;
 std::vector<const Type*>StructTy_struct_std___Rb_tree_const_char_std__pair_const_char__j3__ClassPrimitive___std___Select1st_std__pair_const_char__j3__ClassPrimitive_____std__less_const_char__std__allocator_std__pair_const_char__j3__ClassPrimitive_______fields;
 std::vector<const Type*>StructTy_struct_std___Rb_tree_const_char_std__pair_const_char__j3__ClassPrimitive___std___Select1st_std__pair_const_char__j3__ClassPrimitive_____std__less_const_char__std__allocator_std__pair_const_char__j3__ClassPrimitive_________Rb_tree_impl_std__less_const_char__false__fields;
-std::vector<const Type*>StructTy_struct_std__less_const_char__fields;
-StructTy_struct_std__less_const_char__fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructType* StructTy_struct_std__less_const_char_ = StructType::get(mod->getContext(), StructTy_struct_std__less_const_char__fields, /*isPacked=*/true);
-mod->addTypeName("struct.std::less<const char>", StructTy_struct_std__less_const_char_);
+std::vector<const Type*>StructTy_struct___gnu_cxx__new_allocator_gc___fields;
+StructTy_struct___gnu_cxx__new_allocator_gc___fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructType* StructTy_struct___gnu_cxx__new_allocator_gc__ = StructType::get(mod->getContext(), StructTy_struct___gnu_cxx__new_allocator_gc___fields, /*isPacked=*/true);
+mod->addTypeName("struct.__gnu_cxx::new_allocator<gc*>", StructTy_struct___gnu_cxx__new_allocator_gc__);
 
-StructTy_struct_std___Rb_tree_const_char_std__pair_const_char__j3__ClassPrimitive___std___Select1st_std__pair_const_char__j3__ClassPrimitive_____std__less_const_char__std__allocator_std__pair_const_char__j3__ClassPrimitive_________Rb_tree_impl_std__less_const_char__false__fields.push_back(StructTy_struct_std__less_const_char_);
+StructTy_struct_std___Rb_tree_const_char_std__pair_const_char__j3__ClassPrimitive___std___Select1st_std__pair_const_char__j3__ClassPrimitive_____std__less_const_char__std__allocator_std__pair_const_char__j3__ClassPrimitive_________Rb_tree_impl_std__less_const_char__false__fields.push_back(StructTy_struct___gnu_cxx__new_allocator_gc__);
 std::vector<const Type*>StructTy_struct_std___Rb_tree_node_base_fields;
 StructTy_struct_std___Rb_tree_node_base_fields.push_back(IntegerType::get(mod->getContext(), 32));
 PATypeHolder StructTy_struct_std___Rb_tree_node_base_fwd = OpaqueType::get(mod->getContext());
@@ -294,6 +296,37 @@
 
 
 StructTy_struct_mvm__Thread_fields.push_back(PointerTy_23);
+std::vector<const Type*>StructTy_struct_mvm__ExceptionBuffer_fields;
+PATypeHolder PointerTy_24_fwd = OpaqueType::get(mod->getContext());
+StructTy_struct_mvm__ExceptionBuffer_fields.push_back(PointerTy_24_fwd);
+std::vector<const Type*>StructTy_struct___jmp_buf_tag_fields;
+ArrayType* ArrayTy_26 = ArrayType::get(IntegerType::get(mod->getContext(), 32), 6);
+
+StructTy_struct___jmp_buf_tag_fields.push_back(ArrayTy_26);
+StructTy_struct___jmp_buf_tag_fields.push_back(IntegerType::get(mod->getContext(), 32));
+std::vector<const Type*>StructTy_struct___sigset_t_fields;
+ArrayType* ArrayTy_27 = ArrayType::get(IntegerType::get(mod->getContext(), 32), 32);
+
+StructTy_struct___sigset_t_fields.push_back(ArrayTy_27);
+StructType* StructTy_struct___sigset_t = StructType::get(mod->getContext(), StructTy_struct___sigset_t_fields, /*isPacked=*/false);
+mod->addTypeName("struct.__sigset_t", StructTy_struct___sigset_t);
+
+StructTy_struct___jmp_buf_tag_fields.push_back(StructTy_struct___sigset_t);
+StructType* StructTy_struct___jmp_buf_tag = StructType::get(mod->getContext(), StructTy_struct___jmp_buf_tag_fields, /*isPacked=*/false);
+mod->addTypeName("struct.__jmp_buf_tag", StructTy_struct___jmp_buf_tag);
+
+ArrayType* ArrayTy_25 = ArrayType::get(StructTy_struct___jmp_buf_tag, 1);
+
+StructTy_struct_mvm__ExceptionBuffer_fields.push_back(ArrayTy_25);
+StructType* StructTy_struct_mvm__ExceptionBuffer = StructType::get(mod->getContext(), StructTy_struct_mvm__ExceptionBuffer_fields, /*isPacked=*/false);
+mod->addTypeName("struct.mvm::ExceptionBuffer", StructTy_struct_mvm__ExceptionBuffer);
+
+PointerType* PointerTy_24 = PointerType::get(StructTy_struct_mvm__ExceptionBuffer, 0);
+cast<OpaqueType>(PointerTy_24_fwd.get())->refineAbstractTypeTo(PointerTy_24);
+PointerTy_24 = cast<PointerType>(PointerTy_24_fwd.get());
+
+
+StructTy_struct_mvm__Thread_fields.push_back(PointerTy_24);
 StructType* StructTy_struct_mvm__Thread = StructType::get(mod->getContext(), StructTy_struct_mvm__Thread_fields, /*isPacked=*/false);
 mod->addTypeName("struct.mvm::Thread", StructTy_struct_mvm__Thread);
 cast<OpaqueType>(StructTy_struct_mvm__Thread_fwd.get())->refineAbstractTypeTo(StructTy_struct_mvm__Thread);
@@ -309,132 +342,141 @@
 
 PointerType* PointerTy_12 = PointerType::get(StructTy_struct_mvm__MutatorThread, 0);
 
-PointerType* PointerTy_24 = PointerType::get(IntegerType::get(mod->getContext(), 32), 0);
+PointerType* PointerTy_28 = PointerType::get(IntegerType::get(mod->getContext(), 32), 0);
 
 std::vector<const Type*>StructTy_JavaObject_fields;
 ArrayType* ArrayTy_VT = ArrayType::get(PointerTy_5, 0);
 mod->addTypeName("VT", ArrayTy_VT);
 
-PointerType* PointerTy_26 = PointerType::get(ArrayTy_VT, 0);
+PointerType* PointerTy_30 = PointerType::get(ArrayTy_VT, 0);
 
-StructTy_JavaObject_fields.push_back(PointerTy_26);
+StructTy_JavaObject_fields.push_back(PointerTy_30);
 StructTy_JavaObject_fields.push_back(PointerTy_0);
 StructType* StructTy_JavaObject = StructType::get(mod->getContext(), StructTy_JavaObject_fields, /*isPacked=*/false);
 mod->addTypeName("JavaObject", StructTy_JavaObject);
 
-PointerType* PointerTy_25 = PointerType::get(StructTy_JavaObject, 0);
+PointerType* PointerTy_29 = PointerType::get(StructTy_JavaObject, 0);
 
-std::vector<const Type*>FuncTy_28_args;
-FunctionType* FuncTy_28 = FunctionType::get(
+std::vector<const Type*>FuncTy_32_args;
+FunctionType* FuncTy_32 = FunctionType::get(
   /*Result=*/Type::getVoidTy(mod->getContext()),
-  /*Params=*/FuncTy_28_args,
+  /*Params=*/FuncTy_32_args,
   /*isVarArg=*/false);
 
-PointerType* PointerTy_29 = PointerType::get(PointerTy_25, 0);
 
-std::vector<const Type*>FuncTy_31_args;
-FuncTy_31_args.push_back(PointerTy_25);
-FuncTy_31_args.push_back(IntegerType::get(mod->getContext(), 32));
-FuncTy_31_args.push_back(IntegerType::get(mod->getContext(), 32));
-FuncTy_31_args.push_back(IntegerType::get(mod->getContext(), 32));
-FunctionType* FuncTy_31 = FunctionType::get(
-  /*Result=*/PointerTy_25,
-  /*Params=*/FuncTy_31_args,
+PointerType* PointerTy_33 = PointerType::get(PointerTy_29, 0);
+
+std::vector<const Type*>FuncTy_35_args;
+FuncTy_35_args.push_back(PointerTy_29);
+FuncTy_35_args.push_back(IntegerType::get(mod->getContext(), 32));
+FuncTy_35_args.push_back(IntegerType::get(mod->getContext(), 32));
+FuncTy_35_args.push_back(IntegerType::get(mod->getContext(), 32));
+FunctionType* FuncTy_35 = FunctionType::get(
+  /*Result=*/PointerTy_29,
+  /*Params=*/FuncTy_35_args,
   /*isVarArg=*/false);
 
-PointerType* PointerTy_32 = PointerType::get(PointerTy_26, 0);
 
-std::vector<const Type*>FuncTy_34_args;
-FuncTy_34_args.push_back(PointerTy_25);
-FuncTy_34_args.push_back(PointerTy_25);
-FuncTy_34_args.push_back(PointerTy_25);
-FuncTy_34_args.push_back(IntegerType::get(mod->getContext(), 32));
-FuncTy_34_args.push_back(IntegerType::get(mod->getContext(), 32));
-FunctionType* FuncTy_34 = FunctionType::get(
-  /*Result=*/PointerTy_25,
-  /*Params=*/FuncTy_34_args,
+PointerType* PointerTy_36 = PointerType::get(PointerTy_30, 0);
+
+std::vector<const Type*>FuncTy_38_args;
+FuncTy_38_args.push_back(PointerTy_29);
+FuncTy_38_args.push_back(PointerTy_29);
+FuncTy_38_args.push_back(PointerTy_29);
+FuncTy_38_args.push_back(IntegerType::get(mod->getContext(), 32));
+FuncTy_38_args.push_back(IntegerType::get(mod->getContext(), 32));
+FunctionType* FuncTy_38 = FunctionType::get(
+  /*Result=*/PointerTy_29,
+  /*Params=*/FuncTy_38_args,
   /*isVarArg=*/false);
 
-std::vector<const Type*>StructTy_36_fields;
-std::vector<const Type*>StructTy_37_fields;
-std::vector<const Type*>StructTy_38_fields;
-StructTy_38_fields.push_back(StructTy_JavaObject);
-StructTy_38_fields.push_back(PointerTy_25);
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 32));
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 32));
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 32));
-StructTy_38_fields.push_back(PointerTy_25);
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructTy_38_fields.push_back(PointerTy_25);
-StructTy_38_fields.push_back(PointerTy_25);
-StructTy_38_fields.push_back(PointerTy_25);
-StructTy_38_fields.push_back(PointerTy_25);
-StructTy_38_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructType* StructTy_38 = StructType::get(mod->getContext(), StructTy_38_fields, /*isPacked=*/false);
-
-StructTy_37_fields.push_back(StructTy_38);
-StructTy_37_fields.push_back(PointerTy_25);
-StructTy_37_fields.push_back(PointerTy_25);
-StructTy_37_fields.push_back(PointerTy_25);
-StructTy_37_fields.push_back(PointerTy_25);
-StructTy_37_fields.push_back(PointerTy_25);
-StructTy_37_fields.push_back(PointerTy_25);
-StructTy_37_fields.push_back(PointerTy_25);
-StructType* StructTy_37 = StructType::get(mod->getContext(), StructTy_37_fields, /*isPacked=*/false);
-
-StructTy_36_fields.push_back(StructTy_37);
-StructTy_36_fields.push_back(PointerTy_25);
-StructTy_36_fields.push_back(PointerTy_25);
-StructTy_36_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructTy_36_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructType* StructTy_36 = StructType::get(mod->getContext(), StructTy_36_fields, /*isPacked=*/false);
 
 std::vector<const Type*>StructTy_40_fields;
-StructTy_40_fields.push_back(StructTy_38);
-StructTy_40_fields.push_back(PointerTy_25);
-StructType* StructTy_40 = StructType::get(mod->getContext(), StructTy_40_fields, /*isPacked=*/false);
-
+std::vector<const Type*>StructTy_41_fields;
 std::vector<const Type*>StructTy_42_fields;
-std::vector<const Type*>StructTy_43_fields;
-StructTy_43_fields.push_back(StructTy_38);
-StructType* StructTy_43 = StructType::get(mod->getContext(), StructTy_43_fields, /*isPacked=*/false);
-
-StructTy_42_fields.push_back(StructTy_43);
-StructTy_42_fields.push_back(PointerTy_25);
+StructTy_42_fields.push_back(StructTy_JavaObject);
+StructTy_42_fields.push_back(PointerTy_29);
+StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 32));
+StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 32));
+StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 32));
+StructTy_42_fields.push_back(PointerTy_29);
+StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructTy_42_fields.push_back(PointerTy_29);
+StructTy_42_fields.push_back(PointerTy_29);
+StructTy_42_fields.push_back(PointerTy_29);
+StructTy_42_fields.push_back(PointerTy_29);
 StructTy_42_fields.push_back(IntegerType::get(mod->getContext(), 8));
-StructTy_42_fields.push_back(PointerTy_25);
 StructType* StructTy_42 = StructType::get(mod->getContext(), StructTy_42_fields, /*isPacked=*/false);
 
-std::vector<const Type*>StructTy_45_fields;
-StructTy_45_fields.push_back(PointerTy_25);
-StructTy_45_fields.push_back(PointerTy_25);
-StructTy_45_fields.push_back(PointerTy_25);
-StructTy_45_fields.push_back(PointerTy_25);
-StructType* StructTy_45 = StructType::get(mod->getContext(), StructTy_45_fields, /*isPacked=*/false);
-
-std::vector<const Type*>FuncTy_47_args;
-FuncTy_47_args.push_back(IntegerType::get(mod->getContext(), 1));
-FuncTy_47_args.push_back(IntegerType::get(mod->getContext(), 1));
-FuncTy_47_args.push_back(IntegerType::get(mod->getContext(), 1));
-FuncTy_47_args.push_back(IntegerType::get(mod->getContext(), 1));
-FuncTy_47_args.push_back(IntegerType::get(mod->getContext(), 1));
-FunctionType* FuncTy_47 = FunctionType::get(
+StructTy_41_fields.push_back(StructTy_42);
+StructTy_41_fields.push_back(PointerTy_29);
+StructTy_41_fields.push_back(PointerTy_29);
+StructTy_41_fields.push_back(PointerTy_29);
+StructTy_41_fields.push_back(PointerTy_29);
+StructTy_41_fields.push_back(PointerTy_29);
+StructTy_41_fields.push_back(PointerTy_29);
+StructTy_41_fields.push_back(PointerTy_29);
+StructType* StructTy_41 = StructType::get(mod->getContext(), StructTy_41_fields, /*isPacked=*/false);
+
+StructTy_40_fields.push_back(StructTy_41);
+StructTy_40_fields.push_back(PointerTy_29);
+StructTy_40_fields.push_back(PointerTy_29);
+StructTy_40_fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructTy_40_fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructType* StructTy_40 = StructType::get(mod->getContext(), StructTy_40_fields, /*isPacked=*/false);
+
+
+std::vector<const Type*>StructTy_44_fields;
+StructTy_44_fields.push_back(StructTy_42);
+StructTy_44_fields.push_back(PointerTy_29);
+StructType* StructTy_44 = StructType::get(mod->getContext(), StructTy_44_fields, /*isPacked=*/false);
+
+
+std::vector<const Type*>StructTy_46_fields;
+std::vector<const Type*>StructTy_47_fields;
+StructTy_47_fields.push_back(StructTy_42);
+StructType* StructTy_47 = StructType::get(mod->getContext(), StructTy_47_fields, /*isPacked=*/false);
+
+StructTy_46_fields.push_back(StructTy_47);
+StructTy_46_fields.push_back(PointerTy_29);
+StructTy_46_fields.push_back(IntegerType::get(mod->getContext(), 8));
+StructTy_46_fields.push_back(PointerTy_29);
+StructType* StructTy_46 = StructType::get(mod->getContext(), StructTy_46_fields, /*isPacked=*/false);
+
+
+std::vector<const Type*>StructTy_49_fields;
+StructTy_49_fields.push_back(PointerTy_29);
+StructTy_49_fields.push_back(PointerTy_29);
+StructTy_49_fields.push_back(PointerTy_29);
+StructTy_49_fields.push_back(PointerTy_29);
+StructType* StructTy_49 = StructType::get(mod->getContext(), StructTy_49_fields, /*isPacked=*/false);
+
+
+std::vector<const Type*>FuncTy_51_args;
+FuncTy_51_args.push_back(IntegerType::get(mod->getContext(), 1));
+FuncTy_51_args.push_back(IntegerType::get(mod->getContext(), 1));
+FuncTy_51_args.push_back(IntegerType::get(mod->getContext(), 1));
+FuncTy_51_args.push_back(IntegerType::get(mod->getContext(), 1));
+FuncTy_51_args.push_back(IntegerType::get(mod->getContext(), 1));
+FunctionType* FuncTy_51 = FunctionType::get(
   /*Result=*/Type::getVoidTy(mod->getContext()),
-  /*Params=*/FuncTy_47_args,
+  /*Params=*/FuncTy_51_args,
   /*isVarArg=*/false);
 
-std::vector<const Type*>FuncTy_49_args;
-FuncTy_49_args.push_back(PointerTy_24);
-FuncTy_49_args.push_back(IntegerType::get(mod->getContext(), 32));
-FuncTy_49_args.push_back(IntegerType::get(mod->getContext(), 32));
-FunctionType* FuncTy_49 = FunctionType::get(
+
+std::vector<const Type*>FuncTy_53_args;
+FuncTy_53_args.push_back(PointerTy_28);
+FuncTy_53_args.push_back(IntegerType::get(mod->getContext(), 32));
+FuncTy_53_args.push_back(IntegerType::get(mod->getContext(), 32));
+FunctionType* FuncTy_53 = FunctionType::get(
   /*Result=*/IntegerType::get(mod->getContext(), 32),
-  /*Params=*/FuncTy_49_args,
+  /*Params=*/FuncTy_53_args,
   /*isVarArg=*/false);
 
 
+
 // Function Declarations
 
 Function* func_llvm_gcroot = Function::Create(
@@ -470,7 +512,7 @@
 func_llvm_frameaddress->setAttributes(func_llvm_frameaddress_PAL);
 
 Function* func_abort = Function::Create(
-  /*Type=*/FuncTy_28,
+  /*Type=*/FuncTy_32,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"abort", mod); // (external, no body)
 func_abort->setCallingConv(CallingConv::C);
@@ -486,7 +528,7 @@
 func_abort->setAttributes(func_abort_PAL);
 
 Function* func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III = Function::Create(
-  /*Type=*/FuncTy_31,
+  /*Type=*/FuncTy_35,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III", mod); 
 func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III->setCallingConv(CallingConv::C);
@@ -502,7 +544,7 @@
 func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III->setAttributes(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III_PAL);
 
 Function* func_JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II = Function::Create(
-  /*Type=*/FuncTy_34,
+  /*Type=*/FuncTy_38,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II", mod); 
 func_JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II->setCallingConv(CallingConv::C);
@@ -518,7 +560,7 @@
 func_JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II->setAttributes(func_JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II_PAL);
 
 Function* func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III = Function::Create(
-  /*Type=*/FuncTy_31,
+  /*Type=*/FuncTy_35,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III", mod); 
 func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III->setCallingConv(CallingConv::C);
@@ -534,7 +576,7 @@
 func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III->setAttributes(func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III_PAL);
 
 Function* func_llvm_memory_barrier = Function::Create(
-  /*Type=*/FuncTy_47,
+  /*Type=*/FuncTy_51,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"llvm.memory.barrier", mod); // (external, no body)
 func_llvm_memory_barrier->setCallingConv(CallingConv::C);
@@ -550,7 +592,7 @@
 func_llvm_memory_barrier->setAttributes(func_llvm_memory_barrier_PAL);
 
 Function* func_llvm_atomic_cmp_swap_i32_p0i32 = Function::Create(
-  /*Type=*/FuncTy_49,
+  /*Type=*/FuncTy_53,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"llvm.atomic.cmp.swap.i32.p0i32", mod); // (external, no body)
 func_llvm_atomic_cmp_swap_i32_p0i32->setCallingConv(CallingConv::C);
@@ -568,7 +610,7 @@
 func_llvm_atomic_cmp_swap_i32_p0i32->setAttributes(func_llvm_atomic_cmp_swap_i32_p0i32_PAL);
 
 Function* func__ZN3mvm6Thread5yieldEv = Function::Create(
-  /*Type=*/FuncTy_28,
+  /*Type=*/FuncTy_32,
   /*Linkage=*/GlobalValue::ExternalLinkage,
   /*Name=*/"_ZN3mvm6Thread5yieldEv", mod); // (external, no body)
 func__ZN3mvm6Thread5yieldEv->setCallingConv(CallingConv::C);
@@ -577,124 +619,124 @@
 
 // Global Variable Declarations
 
-GlobalVariable* gvar_struct_final_object67 = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_36,
+GlobalVariable* gvar_struct_finalObject67 = new GlobalVariable(/*Module=*/ *mod, 
+/*Type=*/StructTy_40,
 /*isConstant=*/false,
-/*Linkage=*/GlobalValue::InternalLinkage,
+/*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"finalObject67");
 
-GlobalVariable* gvar_struct_final_object2 = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_40,
+GlobalVariable* gvar_struct_finalObject2 = new GlobalVariable(/*Module=*/ *mod, 
+/*Type=*/StructTy_44,
 /*isConstant=*/false,
-/*Linkage=*/GlobalValue::InternalLinkage,
+/*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"finalObject2");
 
-GlobalVariable* gvar_struct_final_object32 = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_42,
+GlobalVariable* gvar_struct_finalObject32 = new GlobalVariable(/*Module=*/ *mod, 
+/*Type=*/StructTy_46,
 /*isConstant=*/false,
-/*Linkage=*/GlobalValue::InternalLinkage,
+/*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"finalObject32");
 
 GlobalVariable* gvar_struct_org_mmtk_utility_DoublyLinkedList_static = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_45,
+/*Type=*/StructTy_49,
 /*isConstant=*/false,
 /*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"org_mmtk_utility_DoublyLinkedList_static");
 
-GlobalVariable* gvar_struct_final_object85 = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_36,
+GlobalVariable* gvar_struct_finalObject85 = new GlobalVariable(/*Module=*/ *mod, 
+/*Type=*/StructTy_40,
 /*isConstant=*/false,
-/*Linkage=*/GlobalValue::InternalLinkage,
+/*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"finalObject85");
 
-GlobalVariable* gvar_struct_final_object101 = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_42,
+GlobalVariable* gvar_struct_finalObject101 = new GlobalVariable(/*Module=*/ *mod, 
+/*Type=*/StructTy_46,
 /*isConstant=*/false,
-/*Linkage=*/GlobalValue::InternalLinkage,
+/*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"finalObject101");
 
-GlobalVariable* gvar_struct_final_object122 = new GlobalVariable(/*Module=*/ *mod, 
-/*Type=*/StructTy_36,
+GlobalVariable* gvar_struct_finalObject122 = new GlobalVariable(/*Module=*/ *mod, 
+/*Type=*/StructTy_40,
 /*isConstant=*/false,
-/*Linkage=*/GlobalValue::InternalLinkage,
+/*Linkage=*/GlobalValue::ExternalLinkage,
 /*Initializer=*/0, // has initializer, specified below
 /*Name=*/"finalObject122");
 
 // Constant Definitions
-ConstantInt* const_int32_50 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("1"), 10));
-ConstantPointerNull* const_ptr_51 = ConstantPointerNull::get(PointerTy_3);
-ConstantPointerNull* const_ptr_52 = ConstantPointerNull::get(PointerTy_0);
-ConstantInt* const_int32_53 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("3"), 10));
-ConstantInt* const_int32_54 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("-4"), 10));
-ConstantInt* const_int32_55 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("0"), 10));
-ConstantInt* const_int32_56 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2146435072"), 10));
-ConstantInt* const_int32_57 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2"), 10));
-ConstantInt* const_int32_58 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("8193"), 10));
-ConstantInt* const_int32_59 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("4"), 10));
-ConstantInt* const_int32_60 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("7"), 10));
-ConstantInt* const_int32_61 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("8"), 10));
-ConstantInt* const_int32_62 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("-1"), 10));
-ConstantInt* const_int32_63 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("63"), 10));
-ConstantInt* const_int32_64 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("127"), 10));
-ConstantInt* const_int32_65 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("255"), 10));
-ConstantInt* const_int32_66 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("511"), 10));
-ConstantInt* const_int32_67 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2047"), 10));
-ConstantInt* const_int32_68 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("10"), 10));
-ConstantInt* const_int32_69 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("32"), 10));
-ConstantInt* const_int32_70 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("12"), 10));
-ConstantInt* const_int32_71 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("5"), 10));
-ConstantInt* const_int32_72 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("16"), 10));
-ConstantInt* const_int32_73 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("6"), 10));
-ConstantInt* const_int32_74 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("20"), 10));
-ConstantInt* const_int32_75 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("26"), 10));
-ConstantPointerNull* const_ptr_76 = ConstantPointerNull::get(PointerTy_25);
-std::vector<Constant*> const_ptr_77_indices;
-const_ptr_77_indices.push_back(const_int32_55);
-const_ptr_77_indices.push_back(const_int32_57);
-Constant* const_ptr_77 = ConstantExpr::getGetElementPtr(gvar_struct_final_object67, &const_ptr_77_indices[0], const_ptr_77_indices.size());
-ConstantInt* const_int8_78 = ConstantInt::get(mod->getContext(), APInt(8, StringRef("-4"), 10));
-std::vector<Constant*> const_ptr_79_indices;
-const_ptr_79_indices.push_back(const_int32_55);
-const_ptr_79_indices.push_back(const_int32_50);
-Constant* const_ptr_79 = ConstantExpr::getGetElementPtr(gvar_struct_final_object2, &const_ptr_79_indices[0], const_ptr_79_indices.size());
-std::vector<Constant*> const_ptr_80_indices;
-const_ptr_80_indices.push_back(const_int32_55);
-const_ptr_80_indices.push_back(const_int32_50);
-Constant* const_ptr_80 = ConstantExpr::getGetElementPtr(gvar_struct_final_object32, &const_ptr_80_indices[0], const_ptr_80_indices.size());
+ConstantInt* const_int32_54 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("1"), 10));
+ConstantPointerNull* const_ptr_55 = ConstantPointerNull::get(PointerTy_3);
+ConstantPointerNull* const_ptr_56 = ConstantPointerNull::get(PointerTy_0);
+ConstantInt* const_int32_57 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("3"), 10));
+ConstantInt* const_int32_58 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("-4"), 10));
+ConstantInt* const_int32_59 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("0"), 10));
+ConstantInt* const_int32_60 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2146435072"), 10));
+ConstantInt* const_int32_61 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2"), 10));
+ConstantInt* const_int32_62 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("8193"), 10));
+ConstantInt* const_int32_63 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("4"), 10));
+ConstantInt* const_int32_64 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("7"), 10));
+ConstantInt* const_int32_65 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("8"), 10));
+ConstantInt* const_int32_66 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("-1"), 10));
+ConstantInt* const_int32_67 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("63"), 10));
+ConstantInt* const_int32_68 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("127"), 10));
+ConstantInt* const_int32_69 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("255"), 10));
+ConstantInt* const_int32_70 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("511"), 10));
+ConstantInt* const_int32_71 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("2047"), 10));
+ConstantInt* const_int32_72 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("10"), 10));
+ConstantInt* const_int32_73 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("32"), 10));
+ConstantInt* const_int32_74 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("12"), 10));
+ConstantInt* const_int32_75 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("5"), 10));
+ConstantInt* const_int32_76 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("16"), 10));
+ConstantInt* const_int32_77 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("6"), 10));
+ConstantInt* const_int32_78 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("20"), 10));
+ConstantInt* const_int32_79 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("26"), 10));
+ConstantPointerNull* const_ptr_80 = ConstantPointerNull::get(PointerTy_29);
 std::vector<Constant*> const_ptr_81_indices;
-const_ptr_81_indices.push_back(const_int32_55);
-const_ptr_81_indices.push_back(const_int32_53);
-Constant* const_ptr_81 = ConstantExpr::getGetElementPtr(gvar_struct_final_object32, &const_ptr_81_indices[0], const_ptr_81_indices.size());
-ConstantInt* const_int32_82 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("-32"), 10));
-ConstantPointerNull* const_ptr_83 = ConstantPointerNull::get(PointerTy_26);
+const_ptr_81_indices.push_back(const_int32_59);
+const_ptr_81_indices.push_back(const_int32_61);
+Constant* const_ptr_81 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject67, &const_ptr_81_indices[0], const_ptr_81_indices.size());
+ConstantInt* const_int8_82 = ConstantInt::get(mod->getContext(), APInt(8, StringRef("-4"), 10));
+std::vector<Constant*> const_ptr_83_indices;
+const_ptr_83_indices.push_back(const_int32_59);
+const_ptr_83_indices.push_back(const_int32_54);
+Constant* const_ptr_83 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject2, &const_ptr_83_indices[0], const_ptr_83_indices.size());
 std::vector<Constant*> const_ptr_84_indices;
-const_ptr_84_indices.push_back(const_int32_55);
-const_ptr_84_indices.push_back(const_int32_57);
-Constant* const_ptr_84 = ConstantExpr::getGetElementPtr(gvar_struct_org_mmtk_utility_DoublyLinkedList_static, &const_ptr_84_indices[0], const_ptr_84_indices.size());
-ConstantInt* const_int32_85 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("1000"), 10));
-ConstantInt* const_int1_86 = ConstantInt::get(mod->getContext(), APInt(1, StringRef("-1"), 10));
-std::vector<Constant*> const_ptr_87_indices;
-const_ptr_87_indices.push_back(const_int32_55);
-const_ptr_87_indices.push_back(const_int32_57);
-Constant* const_ptr_87 = ConstantExpr::getGetElementPtr(gvar_struct_final_object85, &const_ptr_87_indices[0], const_ptr_87_indices.size());
+const_ptr_84_indices.push_back(const_int32_59);
+const_ptr_84_indices.push_back(const_int32_54);
+Constant* const_ptr_84 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject32, &const_ptr_84_indices[0], const_ptr_84_indices.size());
+std::vector<Constant*> const_ptr_85_indices;
+const_ptr_85_indices.push_back(const_int32_59);
+const_ptr_85_indices.push_back(const_int32_57);
+Constant* const_ptr_85 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject32, &const_ptr_85_indices[0], const_ptr_85_indices.size());
+ConstantInt* const_int32_86 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("-32"), 10));
+ConstantPointerNull* const_ptr_87 = ConstantPointerNull::get(PointerTy_30);
 std::vector<Constant*> const_ptr_88_indices;
-const_ptr_88_indices.push_back(const_int32_55);
-const_ptr_88_indices.push_back(const_int32_50);
-Constant* const_ptr_88 = ConstantExpr::getGetElementPtr(gvar_struct_final_object101, &const_ptr_88_indices[0], const_ptr_88_indices.size());
-std::vector<Constant*> const_ptr_89_indices;
-const_ptr_89_indices.push_back(const_int32_55);
-const_ptr_89_indices.push_back(const_int32_53);
-Constant* const_ptr_89 = ConstantExpr::getGetElementPtr(gvar_struct_final_object101, &const_ptr_89_indices[0], const_ptr_89_indices.size());
-std::vector<Constant*> const_ptr_90_indices;
-const_ptr_90_indices.push_back(const_int32_55);
-const_ptr_90_indices.push_back(const_int32_57);
-Constant* const_ptr_90 = ConstantExpr::getGetElementPtr(gvar_struct_final_object122, &const_ptr_90_indices[0], const_ptr_90_indices.size());
+const_ptr_88_indices.push_back(const_int32_59);
+const_ptr_88_indices.push_back(const_int32_61);
+Constant* const_ptr_88 = ConstantExpr::getGetElementPtr(gvar_struct_org_mmtk_utility_DoublyLinkedList_static, &const_ptr_88_indices[0], const_ptr_88_indices.size());
+ConstantInt* const_int32_89 = ConstantInt::get(mod->getContext(), APInt(32, StringRef("1000"), 10));
+ConstantInt* const_int1_90 = ConstantInt::get(mod->getContext(), APInt(1, StringRef("-1"), 10));
+std::vector<Constant*> const_ptr_91_indices;
+const_ptr_91_indices.push_back(const_int32_59);
+const_ptr_91_indices.push_back(const_int32_61);
+Constant* const_ptr_91 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject85, &const_ptr_91_indices[0], const_ptr_91_indices.size());
+std::vector<Constant*> const_ptr_92_indices;
+const_ptr_92_indices.push_back(const_int32_59);
+const_ptr_92_indices.push_back(const_int32_54);
+Constant* const_ptr_92 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject101, &const_ptr_92_indices[0], const_ptr_92_indices.size());
+std::vector<Constant*> const_ptr_93_indices;
+const_ptr_93_indices.push_back(const_int32_59);
+const_ptr_93_indices.push_back(const_int32_57);
+Constant* const_ptr_93 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject101, &const_ptr_93_indices[0], const_ptr_93_indices.size());
+std::vector<Constant*> const_ptr_94_indices;
+const_ptr_94_indices.push_back(const_int32_59);
+const_ptr_94_indices.push_back(const_int32_61);
+Constant* const_ptr_94 = ConstantExpr::getGetElementPtr(gvar_struct_finalObject122, &const_ptr_94_indices[0], const_ptr_94_indices.size());
 
 // Global Variable Definitions
 
@@ -795,888 +837,888 @@
 // Block JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III.exit (label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit)
 AllocaInst* ptr_res = new AllocaInst(PointerTy_3, "res", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
 ptr_res->setAlignment(4);
- new StoreInst(const_ptr_51, ptr_res, false, label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+ new StoreInst(const_ptr_55, ptr_res, false, label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
 CastInst* ptr_res1 = new BitCastInst(ptr_res, PointerTy_7, "res1", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-std::vector<Value*> void_92_params;
-void_92_params.push_back(ptr_res1);
-void_92_params.push_back(const_ptr_52);
-CallInst* void_92 = CallInst::Create(func_llvm_gcroot, void_92_params.begin(), void_92_params.end(), "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-void_92->setCallingConv(CallingConv::C);
-void_92->setTailCall(false);AttrListPtr void_92_PAL;
+std::vector<Value*> void_96_params;
+void_96_params.push_back(ptr_res1);
+void_96_params.push_back(const_ptr_56);
+CallInst* void_96 = CallInst::Create(func_llvm_gcroot, void_96_params.begin(), void_96_params.end(), "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+void_96->setCallingConv(CallingConv::C);
+void_96->setTailCall(false);AttrListPtr void_96_PAL;
 {
   SmallVector<AttributeWithIndex, 4> Attrs;
   AttributeWithIndex PAWI;
   PAWI.Index = 4294967295U; PAWI.Attrs = 0  | Attribute::NoUnwind;
   Attrs.push_back(PAWI);
-  void_92_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
+  void_96_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
   
 }
-void_92->setAttributes(void_92_PAL);
+void_96->setAttributes(void_96_PAL);
 
-BinaryOperator* int32_93 = BinaryOperator::Create(Instruction::Add, int32_sz, const_int32_53, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-BinaryOperator* int32_94 = BinaryOperator::Create(Instruction::And, int32_93, const_int32_54, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-CallInst* ptr_95 = CallInst::Create(func_llvm_frameaddress, const_int32_55, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-ptr_95->setCallingConv(CallingConv::C);
-ptr_95->setTailCall(false);AttrListPtr ptr_95_PAL;
+BinaryOperator* int32_97 = BinaryOperator::Create(Instruction::Add, int32_sz, const_int32_57, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+BinaryOperator* int32_98 = BinaryOperator::Create(Instruction::And, int32_97, const_int32_58, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+CallInst* ptr_99 = CallInst::Create(func_llvm_frameaddress, const_int32_59, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+ptr_99->setCallingConv(CallingConv::C);
+ptr_99->setTailCall(false);AttrListPtr ptr_99_PAL;
 {
   SmallVector<AttributeWithIndex, 4> Attrs;
   AttributeWithIndex PAWI;
   PAWI.Index = 4294967295U; PAWI.Attrs = 0  | Attribute::NoUnwind;
   Attrs.push_back(PAWI);
-  ptr_95_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
+  ptr_99_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
   
 }
-ptr_95->setAttributes(ptr_95_PAL);
+ptr_99->setAttributes(ptr_99_PAL);
 
-CastInst* int32_96 = new PtrToIntInst(ptr_95, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-BinaryOperator* int32_97 = BinaryOperator::Create(Instruction::And, int32_96, const_int32_56, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-CastInst* ptr_98 = new IntToPtrInst(int32_97, PointerTy_12, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-std::vector<Value*> ptr_99_indices;
-ptr_99_indices.push_back(const_int32_55);
-ptr_99_indices.push_back(const_int32_57);
-Instruction* ptr_99 = GetElementPtrInst::Create(ptr_98, ptr_99_indices.begin(), ptr_99_indices.end(), "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-LoadInst* int32_100 = new LoadInst(ptr_99, "", false, label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-ICmpInst* int1_101 = new ICmpInst(*label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit, ICmpInst::ICMP_SLT, int32_94, const_int32_58, "");
-SelectInst* int32_retval_i = SelectInst::Create(int1_101, const_int32_55, const_int32_59, "retval.i", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-CastInst* ptr_tmp1 = new IntToPtrInst(int32_100, PointerTy_25, "tmp1", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-SwitchInst* void_102 = SwitchInst::Create(int32_retval_i, label_tableswitch_i_i6, 7, label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
-void_102->addCase(const_int32_55, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
-void_102->addCase(const_int32_57, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
-void_102->addCase(const_int32_53, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-void_102->addCase(const_int32_59, label_tableswitch3_i_i9);
-void_102->addCase(const_int32_60, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
-void_102->addCase(const_int32_61, label_tableswitch5_i_i11);
+CastInst* int32_100 = new PtrToIntInst(ptr_99, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+BinaryOperator* int32_101 = BinaryOperator::Create(Instruction::And, int32_100, const_int32_60, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+CastInst* ptr_102 = new IntToPtrInst(int32_101, PointerTy_12, "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+std::vector<Value*> ptr_103_indices;
+ptr_103_indices.push_back(const_int32_59);
+ptr_103_indices.push_back(const_int32_61);
+Instruction* ptr_103 = GetElementPtrInst::Create(ptr_102, ptr_103_indices.begin(), ptr_103_indices.end(), "", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+LoadInst* int32_104 = new LoadInst(ptr_103, "", false, label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+ICmpInst* int1_105 = new ICmpInst(*label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit, ICmpInst::ICMP_SLT, int32_98, const_int32_62, "");
+SelectInst* int32_retval_i = SelectInst::Create(int1_105, const_int32_59, const_int32_63, "retval.i", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+CastInst* ptr_tmp1 = new IntToPtrInst(int32_104, PointerTy_29, "tmp1", label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+SwitchInst* void_106 = SwitchInst::Create(int32_retval_i, label_tableswitch_i_i6, 7, label_JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III_exit);
+void_106->addCase(const_int32_59, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
+void_106->addCase(const_int32_61, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
+void_106->addCase(const_int32_57, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+void_106->addCase(const_int32_63, label_tableswitch3_i_i9);
+void_106->addCase(const_int32_64, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
+void_106->addCase(const_int32_65, label_tableswitch5_i_i11);
 
 
 // Block tableswitch.i.i6 (label_tableswitch_i_i6)
-CallInst* void_103 = CallInst::Create(func_abort, "", label_tableswitch_i_i6);
-void_103->setCallingConv(CallingConv::C);
-void_103->setTailCall(false);AttrListPtr void_103_PAL;
+CallInst* void_107 = CallInst::Create(func_abort, "", label_tableswitch_i_i6);
+void_107->setCallingConv(CallingConv::C);
+void_107->setTailCall(false);AttrListPtr void_107_PAL;
 {
   SmallVector<AttributeWithIndex, 4> Attrs;
   AttributeWithIndex PAWI;
   PAWI.Index = 4294967295U; PAWI.Attrs = 0  | Attribute::NoReturn | Attribute::NoUnwind;
   Attrs.push_back(PAWI);
-  void_103_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
+  void_107_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
   
 }
-void_103->setAttributes(void_103_PAL);
+void_107->setAttributes(void_107_PAL);
 
 new UnreachableInst(mod->getContext(), label_tableswitch_i_i6);
 
 // Block JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II.exit.i.i.i (label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i)
-GetElementPtrInst* ptr_105 = GetElementPtrInst::Create(ptr_tmp1, const_int32_59, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
-CastInst* ptr_106 = new BitCastInst(ptr_105, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
-LoadInst* ptr_107 = new LoadInst(ptr_106, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
-BinaryOperator* int32_108 = BinaryOperator::Create(Instruction::Add, int32_94, const_int32_62, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
-ICmpInst* int1_109 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i, ICmpInst::ICMP_SGT, int32_108, const_int32_63, "");
-BranchInst::Create(label_GOTO_or_IF_4_i_i_i_i_i, label_false_IF_ICMPGT16_i_i_i_i_i, int1_109, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
+GetElementPtrInst* ptr_109 = GetElementPtrInst::Create(ptr_tmp1, const_int32_63, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
+CastInst* ptr_110 = new BitCastInst(ptr_109, PointerTy_33, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
+LoadInst* ptr_111 = new LoadInst(ptr_110, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
+BinaryOperator* int32_112 = BinaryOperator::Create(Instruction::Add, int32_98, const_int32_66, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
+ICmpInst* int1_113 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i, ICmpInst::ICMP_SGT, int32_112, const_int32_67, "");
+BranchInst::Create(label_GOTO_or_IF_4_i_i_i_i_i, label_false_IF_ICMPGT16_i_i_i_i_i, int1_113, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i_i);
 
 // Block GOTO or IF*4.i.i.i.i.i (label_GOTO_or_IF_4_i_i_i_i_i)
-ICmpInst* int1_111 = new ICmpInst(*label_GOTO_or_IF_4_i_i_i_i_i, ICmpInst::ICMP_SGT, int32_108, const_int32_64, "");
-BranchInst::Create(label_GOTO_or_IF_6_i_i_i_i_i, label_false_IF_ICMPGT17_i_i_i_i_i, int1_111, label_GOTO_or_IF_4_i_i_i_i_i);
+ICmpInst* int1_115 = new ICmpInst(*label_GOTO_or_IF_4_i_i_i_i_i, ICmpInst::ICMP_SGT, int32_112, const_int32_68, "");
+BranchInst::Create(label_GOTO_or_IF_6_i_i_i_i_i, label_false_IF_ICMPGT17_i_i_i_i_i, int1_115, label_GOTO_or_IF_4_i_i_i_i_i);
 
 // Block GOTO or IF*6.i.i.i.i.i (label_GOTO_or_IF_6_i_i_i_i_i)
-ICmpInst* int1_113 = new ICmpInst(*label_GOTO_or_IF_6_i_i_i_i_i, ICmpInst::ICMP_SGT, int32_108, const_int32_65, "");
-BranchInst::Create(label_GOTO_or_IF_7_i_i1_i_i_i, label_false_IF_ICMPGT18_i_i_i_i_i, int1_113, label_GOTO_or_IF_6_i_i_i_i_i);
+ICmpInst* int1_117 = new ICmpInst(*label_GOTO_or_IF_6_i_i_i_i_i, ICmpInst::ICMP_SGT, int32_112, const_int32_69, "");
+BranchInst::Create(label_GOTO_or_IF_7_i_i1_i_i_i, label_false_IF_ICMPGT18_i_i_i_i_i, int1_117, label_GOTO_or_IF_6_i_i_i_i_i);
 
 // Block GOTO or IF*7.i.i1.i.i.i (label_GOTO_or_IF_7_i_i1_i_i_i)
-ICmpInst* int1_115 = new ICmpInst(*label_GOTO_or_IF_7_i_i1_i_i_i, ICmpInst::ICMP_SGT, int32_108, const_int32_66, "");
-BranchInst::Create(label_GOTO_or_IF_8_i_i_i_i_i, label_false_IF_ICMPGT19_i_i_i_i_i, int1_115, label_GOTO_or_IF_7_i_i1_i_i_i);
+ICmpInst* int1_119 = new ICmpInst(*label_GOTO_or_IF_7_i_i1_i_i_i, ICmpInst::ICMP_SGT, int32_112, const_int32_70, "");
+BranchInst::Create(label_GOTO_or_IF_8_i_i_i_i_i, label_false_IF_ICMPGT19_i_i_i_i_i, int1_119, label_GOTO_or_IF_7_i_i1_i_i_i);
 
 // Block GOTO or IF*8.i.i.i.i.i (label_GOTO_or_IF_8_i_i_i_i_i)
-ICmpInst* int1_117 = new ICmpInst(*label_GOTO_or_IF_8_i_i_i_i_i, ICmpInst::ICMP_SGT, int32_108, const_int32_67, "");
-BranchInst::Create(label_GOTO_or_IF_9_i_i_i_i_i, label_false_IF_ICMPGT20_i_i_i_i_i, int1_117, label_GOTO_or_IF_8_i_i_i_i_i);
+ICmpInst* int1_121 = new ICmpInst(*label_GOTO_or_IF_8_i_i_i_i_i, ICmpInst::ICMP_SGT, int32_112, const_int32_71, "");
+BranchInst::Create(label_GOTO_or_IF_9_i_i_i_i_i, label_false_IF_ICMPGT20_i_i_i_i_i, int1_121, label_GOTO_or_IF_8_i_i_i_i_i);
 
 // Block GOTO or IF*9.i.i.i.i.i (label_GOTO_or_IF_9_i_i_i_i_i)
-BinaryOperator* int32_119 = BinaryOperator::Create(Instruction::AShr, int32_108, const_int32_68, "", label_GOTO_or_IF_9_i_i_i_i_i);
-BinaryOperator* int32_120 = BinaryOperator::Create(Instruction::Add, int32_119, const_int32_69, "", label_GOTO_or_IF_9_i_i_i_i_i);
+BinaryOperator* int32_123 = BinaryOperator::Create(Instruction::AShr, int32_112, const_int32_72, "", label_GOTO_or_IF_9_i_i_i_i_i);
+BinaryOperator* int32_124 = BinaryOperator::Create(Instruction::Add, int32_123, const_int32_73, "", label_GOTO_or_IF_9_i_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, label_GOTO_or_IF_9_i_i_i_i_i);
 
 // Block false IF_ICMPGT16.i.i.i.i.i (label_false_IF_ICMPGT16_i_i_i_i_i)
-BinaryOperator* int32_122 = BinaryOperator::Create(Instruction::AShr, int32_108, const_int32_57, "", label_false_IF_ICMPGT16_i_i_i_i_i);
+BinaryOperator* int32_126 = BinaryOperator::Create(Instruction::AShr, int32_112, const_int32_61, "", label_false_IF_ICMPGT16_i_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, label_false_IF_ICMPGT16_i_i_i_i_i);
 
 // Block false IF_ICMPGT17.i.i.i.i.i (label_false_IF_ICMPGT17_i_i_i_i_i)
-BinaryOperator* int32_124 = BinaryOperator::Create(Instruction::AShr, int32_108, const_int32_59, "", label_false_IF_ICMPGT17_i_i_i_i_i);
-BinaryOperator* int32_125 = BinaryOperator::Create(Instruction::Add, int32_124, const_int32_70, "", label_false_IF_ICMPGT17_i_i_i_i_i);
+BinaryOperator* int32_128 = BinaryOperator::Create(Instruction::AShr, int32_112, const_int32_63, "", label_false_IF_ICMPGT17_i_i_i_i_i);
+BinaryOperator* int32_129 = BinaryOperator::Create(Instruction::Add, int32_128, const_int32_74, "", label_false_IF_ICMPGT17_i_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, label_false_IF_ICMPGT17_i_i_i_i_i);
 
 // Block false IF_ICMPGT18.i.i.i.i.i (label_false_IF_ICMPGT18_i_i_i_i_i)
-BinaryOperator* int32_127 = BinaryOperator::Create(Instruction::AShr, int32_108, const_int32_71, "", label_false_IF_ICMPGT18_i_i_i_i_i);
-BinaryOperator* int32_128 = BinaryOperator::Create(Instruction::Add, int32_127, const_int32_72, "", label_false_IF_ICMPGT18_i_i_i_i_i);
+BinaryOperator* int32_131 = BinaryOperator::Create(Instruction::AShr, int32_112, const_int32_75, "", label_false_IF_ICMPGT18_i_i_i_i_i);
+BinaryOperator* int32_132 = BinaryOperator::Create(Instruction::Add, int32_131, const_int32_76, "", label_false_IF_ICMPGT18_i_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, label_false_IF_ICMPGT18_i_i_i_i_i);
 
 // Block false IF_ICMPGT19.i.i.i.i.i (label_false_IF_ICMPGT19_i_i_i_i_i)
-BinaryOperator* int32_130 = BinaryOperator::Create(Instruction::AShr, int32_108, const_int32_73, "", label_false_IF_ICMPGT19_i_i_i_i_i);
-BinaryOperator* int32_131 = BinaryOperator::Create(Instruction::Add, int32_130, const_int32_74, "", label_false_IF_ICMPGT19_i_i_i_i_i);
+BinaryOperator* int32_134 = BinaryOperator::Create(Instruction::AShr, int32_112, const_int32_77, "", label_false_IF_ICMPGT19_i_i_i_i_i);
+BinaryOperator* int32_135 = BinaryOperator::Create(Instruction::Add, int32_134, const_int32_78, "", label_false_IF_ICMPGT19_i_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, label_false_IF_ICMPGT19_i_i_i_i_i);
 
 // Block false IF_ICMPGT20.i.i.i.i.i (label_false_IF_ICMPGT20_i_i_i_i_i)
-BinaryOperator* int32_133 = BinaryOperator::Create(Instruction::AShr, int32_108, const_int32_61, "", label_false_IF_ICMPGT20_i_i_i_i_i);
-BinaryOperator* int32_134 = BinaryOperator::Create(Instruction::Add, int32_133, const_int32_75, "", label_false_IF_ICMPGT20_i_i_i_i_i);
+BinaryOperator* int32_137 = BinaryOperator::Create(Instruction::AShr, int32_112, const_int32_65, "", label_false_IF_ICMPGT20_i_i_i_i_i);
+BinaryOperator* int32_138 = BinaryOperator::Create(Instruction::Add, int32_137, const_int32_79, "", label_false_IF_ICMPGT20_i_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, label_false_IF_ICMPGT20_i_i_i_i_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I.exit.i.i.i (label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i)
-PHINode* int32_136 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-int32_136->reserveOperandSpace(6);
-int32_136->addIncoming(int32_122, label_false_IF_ICMPGT16_i_i_i_i_i);
-int32_136->addIncoming(int32_125, label_false_IF_ICMPGT17_i_i_i_i_i);
-int32_136->addIncoming(int32_128, label_false_IF_ICMPGT18_i_i_i_i_i);
-int32_136->addIncoming(int32_131, label_false_IF_ICMPGT19_i_i_i_i_i);
-int32_136->addIncoming(int32_134, label_false_IF_ICMPGT20_i_i_i_i_i);
-int32_136->addIncoming(int32_120, label_GOTO_or_IF_9_i_i_i_i_i);
-
-std::vector<Value*> ptr_137_indices;
-ptr_137_indices.push_back(const_int32_50);
-ptr_137_indices.push_back(const_int32_50);
-Instruction* ptr_137 = GetElementPtrInst::Create(ptr_107, ptr_137_indices.begin(), ptr_137_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-LoadInst* ptr_138 = new LoadInst(ptr_137, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-BinaryOperator* int32_139 = BinaryOperator::Create(Instruction::Add, int32_136, const_int32_50, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-CastInst* ptr_140 = new BitCastInst(ptr_138, PointerTy_24, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-GetElementPtrInst* ptr_141 = GetElementPtrInst::Create(ptr_140, int32_139, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-LoadInst* int32_142 = new LoadInst(ptr_141, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
-ICmpInst* int1_143 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, ICmpInst::ICMP_EQ, int32_142, const_int32_55, "");
-BranchInst::Create(label_GOTO_or_IF__i_i_i, label_false_IFNE_i_i_i, int1_143, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+PHINode* int32_140 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+int32_140->reserveOperandSpace(6);
+int32_140->addIncoming(int32_126, label_false_IF_ICMPGT16_i_i_i_i_i);
+int32_140->addIncoming(int32_129, label_false_IF_ICMPGT17_i_i_i_i_i);
+int32_140->addIncoming(int32_132, label_false_IF_ICMPGT18_i_i_i_i_i);
+int32_140->addIncoming(int32_135, label_false_IF_ICMPGT19_i_i_i_i_i);
+int32_140->addIncoming(int32_138, label_false_IF_ICMPGT20_i_i_i_i_i);
+int32_140->addIncoming(int32_124, label_GOTO_or_IF_9_i_i_i_i_i);
+
+std::vector<Value*> ptr_141_indices;
+ptr_141_indices.push_back(const_int32_54);
+ptr_141_indices.push_back(const_int32_54);
+Instruction* ptr_141 = GetElementPtrInst::Create(ptr_111, ptr_141_indices.begin(), ptr_141_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+LoadInst* ptr_142 = new LoadInst(ptr_141, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+BinaryOperator* int32_143 = BinaryOperator::Create(Instruction::Add, int32_140, const_int32_54, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+CastInst* ptr_144 = new BitCastInst(ptr_142, PointerTy_28, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+GetElementPtrInst* ptr_145 = GetElementPtrInst::Create(ptr_144, int32_143, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+LoadInst* int32_146 = new LoadInst(ptr_145, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
+ICmpInst* int1_147 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i, ICmpInst::ICMP_EQ, int32_146, const_int32_59, "");
+BranchInst::Create(label_GOTO_or_IF__i_i_i, label_false_IFNE_i_i_i, int1_147, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i_i);
 
 // Block GOTO or IF*.i.i.i (label_GOTO_or_IF__i_i_i)
-std::vector<Value*> ptr_145_params;
-ptr_145_params.push_back(ptr_107);
-ptr_145_params.push_back(int32_94);
-ptr_145_params.push_back(const_int32_55);
-ptr_145_params.push_back(const_int32_55);
-CallInst* ptr_145 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III, ptr_145_params.begin(), ptr_145_params.end(), "", label_GOTO_or_IF__i_i_i);
-ptr_145->setCallingConv(CallingConv::C);
-ptr_145->setTailCall(false);AttrListPtr ptr_145_PAL;
-ptr_145->setAttributes(ptr_145_PAL);
+std::vector<Value*> ptr_149_params;
+ptr_149_params.push_back(ptr_111);
+ptr_149_params.push_back(int32_98);
+ptr_149_params.push_back(const_int32_59);
+ptr_149_params.push_back(const_int32_59);
+CallInst* ptr_149 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III, ptr_149_params.begin(), ptr_149_params.end(), "", label_GOTO_or_IF__i_i_i);
+ptr_149->setCallingConv(CallingConv::C);
+ptr_149->setTailCall(false);AttrListPtr ptr_149_PAL;
+ptr_149->setAttributes(ptr_149_PAL);
 
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_GOTO_or_IF__i_i_i);
 
 // Block false IFNE.i.i.i (label_false_IFNE_i_i_i)
-CastInst* ptr_147 = new IntToPtrInst(int32_142, PointerTy_29, "", label_false_IFNE_i_i_i);
-LoadInst* ptr_148 = new LoadInst(ptr_147, "", false, label_false_IFNE_i_i_i);
-CastInst* int32_149 = new PtrToIntInst(ptr_148, IntegerType::get(mod->getContext(), 32), "", label_false_IFNE_i_i_i);
- new StoreInst(int32_149, ptr_141, false, label_false_IFNE_i_i_i);
- new StoreInst(const_ptr_76, ptr_147, false, label_false_IFNE_i_i_i);
+CastInst* ptr_151 = new IntToPtrInst(int32_146, PointerTy_33, "", label_false_IFNE_i_i_i);
+LoadInst* ptr_152 = new LoadInst(ptr_151, "", false, label_false_IFNE_i_i_i);
+CastInst* int32_153 = new PtrToIntInst(ptr_152, IntegerType::get(mod->getContext(), 32), "", label_false_IFNE_i_i_i);
+ new StoreInst(int32_153, ptr_145, false, label_false_IFNE_i_i_i);
+ new StoreInst(const_ptr_80, ptr_151, false, label_false_IFNE_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i, label_false_IFNE_i_i_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II.exit.i.i.i (label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i)
-GetElementPtrInst* ptr_153 = GetElementPtrInst::Create(ptr_tmp1, const_int32_57, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-CastInst* ptr_154 = new BitCastInst(ptr_153, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-LoadInst* ptr_155 = new LoadInst(ptr_154, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-GetElementPtrInst* ptr_156 = GetElementPtrInst::Create(ptr_155, const_int32_50, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-CastInst* ptr_157 = new BitCastInst(ptr_156, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-LoadInst* ptr_158 = new LoadInst(ptr_157, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-CastInst* int32_159 = new PtrToIntInst(ptr_158, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-BinaryOperator* int32_160 = BinaryOperator::Create(Instruction::Add, int32_159, int32_94, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-std::vector<Value*> ptr_161_indices;
-ptr_161_indices.push_back(const_int32_50);
-ptr_161_indices.push_back(const_int32_50);
-Instruction* ptr_161 = GetElementPtrInst::Create(ptr_155, ptr_161_indices.begin(), ptr_161_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+GetElementPtrInst* ptr_157 = GetElementPtrInst::Create(ptr_tmp1, const_int32_61, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+CastInst* ptr_158 = new BitCastInst(ptr_157, PointerTy_33, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+LoadInst* ptr_159 = new LoadInst(ptr_158, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+GetElementPtrInst* ptr_160 = GetElementPtrInst::Create(ptr_159, const_int32_54, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+CastInst* ptr_161 = new BitCastInst(ptr_160, PointerTy_33, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
 LoadInst* ptr_162 = new LoadInst(ptr_161, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
 CastInst* int32_163 = new PtrToIntInst(ptr_162, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
-ICmpInst* int1_164 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i, ICmpInst::ICMP_UGT, int32_160, int32_163, "");
-BranchInst::Create(label_false_IFEQ_i_i_i, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i, int1_164, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+BinaryOperator* int32_164 = BinaryOperator::Create(Instruction::Add, int32_163, int32_98, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+std::vector<Value*> ptr_165_indices;
+ptr_165_indices.push_back(const_int32_54);
+ptr_165_indices.push_back(const_int32_54);
+Instruction* ptr_165 = GetElementPtrInst::Create(ptr_159, ptr_165_indices.begin(), ptr_165_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+LoadInst* ptr_166 = new LoadInst(ptr_165, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+CastInst* int32_167 = new PtrToIntInst(ptr_166, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
+ICmpInst* int1_168 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i, ICmpInst::ICMP_UGT, int32_164, int32_167, "");
+BranchInst::Create(label_false_IFEQ_i_i_i, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i, int1_168, label_JnJVM_org_mmtk_utility_alloc_Allocator_alignAllocationNoFill__Lorg_vmmagic_unboxed_Address_2II_exit_i_i_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2.exit.i.i.i (label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i)
-std::vector<Value*> ptr_166_indices;
-ptr_166_indices.push_back(const_int32_50);
-ptr_166_indices.push_back(const_int32_55);
-Instruction* ptr_166 = GetElementPtrInst::Create(ptr_155, ptr_166_indices.begin(), ptr_166_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
-CastInst* ptr__c_i_i_i = new IntToPtrInst(int32_160, PointerTy_26, ".c.i.i.i", label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
- new StoreInst(ptr__c_i_i_i, ptr_166, false, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
+std::vector<Value*> ptr_170_indices;
+ptr_170_indices.push_back(const_int32_54);
+ptr_170_indices.push_back(const_int32_59);
+Instruction* ptr_170 = GetElementPtrInst::Create(ptr_159, ptr_170_indices.begin(), ptr_170_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
+CastInst* ptr__c_i_i_i = new IntToPtrInst(int32_164, PointerTy_30, ".c.i.i.i", label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
+ new StoreInst(ptr__c_i_i_i, ptr_170, false, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
 
 // Block false IFEQ.i.i.i (label_false_IFEQ_i_i_i)
-CastInst* ptr_169 = new IntToPtrInst(int32_160, PointerTy_25, "", label_false_IFEQ_i_i_i);
-std::vector<Value*> ptr_170_params;
-ptr_170_params.push_back(ptr_155);
-ptr_170_params.push_back(ptr_158);
-ptr_170_params.push_back(ptr_169);
-ptr_170_params.push_back(const_int32_55);
-ptr_170_params.push_back(const_int32_55);
-CallInst* ptr_170 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II, ptr_170_params.begin(), ptr_170_params.end(), "", label_false_IFEQ_i_i_i);
-ptr_170->setCallingConv(CallingConv::C);
-ptr_170->setTailCall(false);AttrListPtr ptr_170_PAL;
-ptr_170->setAttributes(ptr_170_PAL);
+CastInst* ptr_173 = new IntToPtrInst(int32_164, PointerTy_29, "", label_false_IFEQ_i_i_i);
+std::vector<Value*> ptr_174_params;
+ptr_174_params.push_back(ptr_159);
+ptr_174_params.push_back(ptr_162);
+ptr_174_params.push_back(ptr_173);
+ptr_174_params.push_back(const_int32_59);
+ptr_174_params.push_back(const_int32_59);
+CallInst* ptr_174 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_BumpPointer_allocSlow__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2II, ptr_174_params.begin(), ptr_174_params.end(), "", label_false_IFEQ_i_i_i);
+ptr_174->setCallingConv(CallingConv::C);
+ptr_174->setTailCall(false);AttrListPtr ptr_174_PAL;
+ptr_174->setAttributes(ptr_174_PAL);
 
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_false_IFEQ_i_i_i);
 
 // Block tableswitch3.i.i9 (label_tableswitch3_i_i9)
-std::vector<Value*> ptr_172_indices;
-ptr_172_indices.push_back(const_int32_57);
-ptr_172_indices.push_back(const_int32_50);
-Instruction* ptr_172 = GetElementPtrInst::Create(ptr_tmp1, ptr_172_indices.begin(), ptr_172_indices.end(), "", label_tableswitch3_i_i9);
-LoadInst* ptr_173 = new LoadInst(ptr_172, "", false, label_tableswitch3_i_i9);
-CastInst* ptr_174 = new BitCastInst(ptr_173, PointerTy_25, "", label_tableswitch3_i_i9);
-std::vector<Value*> ptr_175_params;
-ptr_175_params.push_back(ptr_174);
-ptr_175_params.push_back(int32_94);
-ptr_175_params.push_back(const_int32_55);
-ptr_175_params.push_back(const_int32_55);
-CallInst* ptr_175 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III, ptr_175_params.begin(), ptr_175_params.end(), "", label_tableswitch3_i_i9);
-ptr_175->setCallingConv(CallingConv::C);
-ptr_175->setTailCall(false);AttrListPtr ptr_175_PAL;
-ptr_175->setAttributes(ptr_175_PAL);
+std::vector<Value*> ptr_176_indices;
+ptr_176_indices.push_back(const_int32_61);
+ptr_176_indices.push_back(const_int32_54);
+Instruction* ptr_176 = GetElementPtrInst::Create(ptr_tmp1, ptr_176_indices.begin(), ptr_176_indices.end(), "", label_tableswitch3_i_i9);
+LoadInst* ptr_177 = new LoadInst(ptr_176, "", false, label_tableswitch3_i_i9);
+CastInst* ptr_178 = new BitCastInst(ptr_177, PointerTy_29, "", label_tableswitch3_i_i9);
+std::vector<Value*> ptr_179_params;
+ptr_179_params.push_back(ptr_178);
+ptr_179_params.push_back(int32_98);
+ptr_179_params.push_back(const_int32_59);
+ptr_179_params.push_back(const_int32_59);
+CallInst* ptr_179 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III, ptr_179_params.begin(), ptr_179_params.end(), "", label_tableswitch3_i_i9);
+ptr_179->setCallingConv(CallingConv::C);
+ptr_179->setTailCall(false);AttrListPtr ptr_179_PAL;
+ptr_179->setAttributes(ptr_179_PAL);
 
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_tableswitch3_i_i9);
 
 // Block JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II.exit.i2.i.i (label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i)
-GetElementPtrInst* ptr_177 = GetElementPtrInst::Create(ptr_tmp1, const_int32_53, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
-CastInst* ptr_178 = new BitCastInst(ptr_177, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
-LoadInst* ptr_179 = new LoadInst(ptr_178, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
-BinaryOperator* int32_180 = BinaryOperator::Create(Instruction::Add, int32_94, const_int32_62, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
-ICmpInst* int1_181 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i, ICmpInst::ICMP_SGT, int32_180, const_int32_63, "");
-BranchInst::Create(label_GOTO_or_IF_4_i_i_i3_i_i, label_false_IF_ICMPGT16_i_i_i8_i_i, int1_181, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
+GetElementPtrInst* ptr_181 = GetElementPtrInst::Create(ptr_tmp1, const_int32_57, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
+CastInst* ptr_182 = new BitCastInst(ptr_181, PointerTy_33, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
+LoadInst* ptr_183 = new LoadInst(ptr_182, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
+BinaryOperator* int32_184 = BinaryOperator::Create(Instruction::Add, int32_98, const_int32_66, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
+ICmpInst* int1_185 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i, ICmpInst::ICMP_SGT, int32_184, const_int32_67, "");
+BranchInst::Create(label_GOTO_or_IF_4_i_i_i3_i_i, label_false_IF_ICMPGT16_i_i_i8_i_i, int1_185, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i2_i_i);
 
 // Block GOTO or IF*4.i.i.i3.i.i (label_GOTO_or_IF_4_i_i_i3_i_i)
-ICmpInst* int1_183 = new ICmpInst(*label_GOTO_or_IF_4_i_i_i3_i_i, ICmpInst::ICMP_SGT, int32_180, const_int32_64, "");
-BranchInst::Create(label_GOTO_or_IF_6_i_i_i4_i_i, label_false_IF_ICMPGT17_i_i_i9_i_i, int1_183, label_GOTO_or_IF_4_i_i_i3_i_i);
+ICmpInst* int1_187 = new ICmpInst(*label_GOTO_or_IF_4_i_i_i3_i_i, ICmpInst::ICMP_SGT, int32_184, const_int32_68, "");
+BranchInst::Create(label_GOTO_or_IF_6_i_i_i4_i_i, label_false_IF_ICMPGT17_i_i_i9_i_i, int1_187, label_GOTO_or_IF_4_i_i_i3_i_i);
 
 // Block GOTO or IF*6.i.i.i4.i.i (label_GOTO_or_IF_6_i_i_i4_i_i)
-ICmpInst* int1_185 = new ICmpInst(*label_GOTO_or_IF_6_i_i_i4_i_i, ICmpInst::ICMP_SGT, int32_180, const_int32_65, "");
-BranchInst::Create(label_GOTO_or_IF_7_i_i1_i5_i_i, label_false_IF_ICMPGT18_i_i_i10_i_i, int1_185, label_GOTO_or_IF_6_i_i_i4_i_i);
+ICmpInst* int1_189 = new ICmpInst(*label_GOTO_or_IF_6_i_i_i4_i_i, ICmpInst::ICMP_SGT, int32_184, const_int32_69, "");
+BranchInst::Create(label_GOTO_or_IF_7_i_i1_i5_i_i, label_false_IF_ICMPGT18_i_i_i10_i_i, int1_189, label_GOTO_or_IF_6_i_i_i4_i_i);
 
 // Block GOTO or IF*7.i.i1.i5.i.i (label_GOTO_or_IF_7_i_i1_i5_i_i)
-ICmpInst* int1_187 = new ICmpInst(*label_GOTO_or_IF_7_i_i1_i5_i_i, ICmpInst::ICMP_SGT, int32_180, const_int32_66, "");
-BranchInst::Create(label_GOTO_or_IF_8_i_i_i6_i_i, label_false_IF_ICMPGT19_i_i_i11_i_i, int1_187, label_GOTO_or_IF_7_i_i1_i5_i_i);
+ICmpInst* int1_191 = new ICmpInst(*label_GOTO_or_IF_7_i_i1_i5_i_i, ICmpInst::ICMP_SGT, int32_184, const_int32_70, "");
+BranchInst::Create(label_GOTO_or_IF_8_i_i_i6_i_i, label_false_IF_ICMPGT19_i_i_i11_i_i, int1_191, label_GOTO_or_IF_7_i_i1_i5_i_i);
 
 // Block GOTO or IF*8.i.i.i6.i.i (label_GOTO_or_IF_8_i_i_i6_i_i)
-ICmpInst* int1_189 = new ICmpInst(*label_GOTO_or_IF_8_i_i_i6_i_i, ICmpInst::ICMP_SGT, int32_180, const_int32_67, "");
-BranchInst::Create(label_GOTO_or_IF_9_i_i_i7_i_i, label_false_IF_ICMPGT20_i_i_i12_i_i, int1_189, label_GOTO_or_IF_8_i_i_i6_i_i);
+ICmpInst* int1_193 = new ICmpInst(*label_GOTO_or_IF_8_i_i_i6_i_i, ICmpInst::ICMP_SGT, int32_184, const_int32_71, "");
+BranchInst::Create(label_GOTO_or_IF_9_i_i_i7_i_i, label_false_IF_ICMPGT20_i_i_i12_i_i, int1_193, label_GOTO_or_IF_8_i_i_i6_i_i);
 
 // Block GOTO or IF*9.i.i.i7.i.i (label_GOTO_or_IF_9_i_i_i7_i_i)
-BinaryOperator* int32_191 = BinaryOperator::Create(Instruction::AShr, int32_180, const_int32_68, "", label_GOTO_or_IF_9_i_i_i7_i_i);
-BinaryOperator* int32_192 = BinaryOperator::Create(Instruction::Add, int32_191, const_int32_69, "", label_GOTO_or_IF_9_i_i_i7_i_i);
+BinaryOperator* int32_195 = BinaryOperator::Create(Instruction::AShr, int32_184, const_int32_72, "", label_GOTO_or_IF_9_i_i_i7_i_i);
+BinaryOperator* int32_196 = BinaryOperator::Create(Instruction::Add, int32_195, const_int32_73, "", label_GOTO_or_IF_9_i_i_i7_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, label_GOTO_or_IF_9_i_i_i7_i_i);
 
 // Block false IF_ICMPGT16.i.i.i8.i.i (label_false_IF_ICMPGT16_i_i_i8_i_i)
-BinaryOperator* int32_194 = BinaryOperator::Create(Instruction::AShr, int32_180, const_int32_57, "", label_false_IF_ICMPGT16_i_i_i8_i_i);
+BinaryOperator* int32_198 = BinaryOperator::Create(Instruction::AShr, int32_184, const_int32_61, "", label_false_IF_ICMPGT16_i_i_i8_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, label_false_IF_ICMPGT16_i_i_i8_i_i);
 
 // Block false IF_ICMPGT17.i.i.i9.i.i (label_false_IF_ICMPGT17_i_i_i9_i_i)
-BinaryOperator* int32_196 = BinaryOperator::Create(Instruction::AShr, int32_180, const_int32_59, "", label_false_IF_ICMPGT17_i_i_i9_i_i);
-BinaryOperator* int32_197 = BinaryOperator::Create(Instruction::Add, int32_196, const_int32_70, "", label_false_IF_ICMPGT17_i_i_i9_i_i);
+BinaryOperator* int32_200 = BinaryOperator::Create(Instruction::AShr, int32_184, const_int32_63, "", label_false_IF_ICMPGT17_i_i_i9_i_i);
+BinaryOperator* int32_201 = BinaryOperator::Create(Instruction::Add, int32_200, const_int32_74, "", label_false_IF_ICMPGT17_i_i_i9_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, label_false_IF_ICMPGT17_i_i_i9_i_i);
 
 // Block false IF_ICMPGT18.i.i.i10.i.i (label_false_IF_ICMPGT18_i_i_i10_i_i)
-BinaryOperator* int32_199 = BinaryOperator::Create(Instruction::AShr, int32_180, const_int32_71, "", label_false_IF_ICMPGT18_i_i_i10_i_i);
-BinaryOperator* int32_200 = BinaryOperator::Create(Instruction::Add, int32_199, const_int32_72, "", label_false_IF_ICMPGT18_i_i_i10_i_i);
+BinaryOperator* int32_203 = BinaryOperator::Create(Instruction::AShr, int32_184, const_int32_75, "", label_false_IF_ICMPGT18_i_i_i10_i_i);
+BinaryOperator* int32_204 = BinaryOperator::Create(Instruction::Add, int32_203, const_int32_76, "", label_false_IF_ICMPGT18_i_i_i10_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, label_false_IF_ICMPGT18_i_i_i10_i_i);
 
 // Block false IF_ICMPGT19.i.i.i11.i.i (label_false_IF_ICMPGT19_i_i_i11_i_i)
-BinaryOperator* int32_202 = BinaryOperator::Create(Instruction::AShr, int32_180, const_int32_73, "", label_false_IF_ICMPGT19_i_i_i11_i_i);
-BinaryOperator* int32_203 = BinaryOperator::Create(Instruction::Add, int32_202, const_int32_74, "", label_false_IF_ICMPGT19_i_i_i11_i_i);
+BinaryOperator* int32_206 = BinaryOperator::Create(Instruction::AShr, int32_184, const_int32_77, "", label_false_IF_ICMPGT19_i_i_i11_i_i);
+BinaryOperator* int32_207 = BinaryOperator::Create(Instruction::Add, int32_206, const_int32_78, "", label_false_IF_ICMPGT19_i_i_i11_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, label_false_IF_ICMPGT19_i_i_i11_i_i);
 
 // Block false IF_ICMPGT20.i.i.i12.i.i (label_false_IF_ICMPGT20_i_i_i12_i_i)
-BinaryOperator* int32_205 = BinaryOperator::Create(Instruction::AShr, int32_180, const_int32_61, "", label_false_IF_ICMPGT20_i_i_i12_i_i);
-BinaryOperator* int32_206 = BinaryOperator::Create(Instruction::Add, int32_205, const_int32_75, "", label_false_IF_ICMPGT20_i_i_i12_i_i);
+BinaryOperator* int32_209 = BinaryOperator::Create(Instruction::AShr, int32_184, const_int32_65, "", label_false_IF_ICMPGT20_i_i_i12_i_i);
+BinaryOperator* int32_210 = BinaryOperator::Create(Instruction::Add, int32_209, const_int32_79, "", label_false_IF_ICMPGT20_i_i_i12_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, label_false_IF_ICMPGT20_i_i_i12_i_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I.exit.i13.i.i (label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i)
-PHINode* int32_208 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-int32_208->reserveOperandSpace(6);
-int32_208->addIncoming(int32_194, label_false_IF_ICMPGT16_i_i_i8_i_i);
-int32_208->addIncoming(int32_197, label_false_IF_ICMPGT17_i_i_i9_i_i);
-int32_208->addIncoming(int32_200, label_false_IF_ICMPGT18_i_i_i10_i_i);
-int32_208->addIncoming(int32_203, label_false_IF_ICMPGT19_i_i_i11_i_i);
-int32_208->addIncoming(int32_206, label_false_IF_ICMPGT20_i_i_i12_i_i);
-int32_208->addIncoming(int32_192, label_GOTO_or_IF_9_i_i_i7_i_i);
-
-std::vector<Value*> ptr_209_indices;
-ptr_209_indices.push_back(const_int32_50);
-ptr_209_indices.push_back(const_int32_50);
-Instruction* ptr_209 = GetElementPtrInst::Create(ptr_179, ptr_209_indices.begin(), ptr_209_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-LoadInst* ptr_210 = new LoadInst(ptr_209, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-BinaryOperator* int32_211 = BinaryOperator::Create(Instruction::Add, int32_208, const_int32_50, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-CastInst* ptr_212 = new BitCastInst(ptr_210, PointerTy_24, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-GetElementPtrInst* ptr_213 = GetElementPtrInst::Create(ptr_212, int32_211, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-LoadInst* int32_214 = new LoadInst(ptr_213, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
-ICmpInst* int1_215 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, ICmpInst::ICMP_EQ, int32_214, const_int32_55, "");
-BranchInst::Create(label_GOTO_or_IF__i14_i_i, label_false_IFNE_i18_i_i, int1_215, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+PHINode* int32_212 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+int32_212->reserveOperandSpace(6);
+int32_212->addIncoming(int32_198, label_false_IF_ICMPGT16_i_i_i8_i_i);
+int32_212->addIncoming(int32_201, label_false_IF_ICMPGT17_i_i_i9_i_i);
+int32_212->addIncoming(int32_204, label_false_IF_ICMPGT18_i_i_i10_i_i);
+int32_212->addIncoming(int32_207, label_false_IF_ICMPGT19_i_i_i11_i_i);
+int32_212->addIncoming(int32_210, label_false_IF_ICMPGT20_i_i_i12_i_i);
+int32_212->addIncoming(int32_196, label_GOTO_or_IF_9_i_i_i7_i_i);
+
+std::vector<Value*> ptr_213_indices;
+ptr_213_indices.push_back(const_int32_54);
+ptr_213_indices.push_back(const_int32_54);
+Instruction* ptr_213 = GetElementPtrInst::Create(ptr_183, ptr_213_indices.begin(), ptr_213_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+LoadInst* ptr_214 = new LoadInst(ptr_213, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+BinaryOperator* int32_215 = BinaryOperator::Create(Instruction::Add, int32_212, const_int32_54, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+CastInst* ptr_216 = new BitCastInst(ptr_214, PointerTy_28, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+GetElementPtrInst* ptr_217 = GetElementPtrInst::Create(ptr_216, int32_215, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+LoadInst* int32_218 = new LoadInst(ptr_217, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
+ICmpInst* int1_219 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i, ICmpInst::ICMP_EQ, int32_218, const_int32_59, "");
+BranchInst::Create(label_GOTO_or_IF__i14_i_i, label_false_IFNE_i18_i_i, int1_219, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i13_i_i);
 
 // Block GOTO or IF*.i14.i.i (label_GOTO_or_IF__i14_i_i)
-std::vector<Value*> ptr_217_params;
-ptr_217_params.push_back(ptr_179);
-ptr_217_params.push_back(int32_94);
-ptr_217_params.push_back(const_int32_55);
-ptr_217_params.push_back(const_int32_55);
-CallInst* ptr_217 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III, ptr_217_params.begin(), ptr_217_params.end(), "", label_GOTO_or_IF__i14_i_i);
-ptr_217->setCallingConv(CallingConv::C);
-ptr_217->setTailCall(false);AttrListPtr ptr_217_PAL;
-ptr_217->setAttributes(ptr_217_PAL);
+std::vector<Value*> ptr_221_params;
+ptr_221_params.push_back(ptr_183);
+ptr_221_params.push_back(int32_98);
+ptr_221_params.push_back(const_int32_59);
+ptr_221_params.push_back(const_int32_59);
+CallInst* ptr_221 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III, ptr_221_params.begin(), ptr_221_params.end(), "", label_GOTO_or_IF__i14_i_i);
+ptr_221->setCallingConv(CallingConv::C);
+ptr_221->setTailCall(false);AttrListPtr ptr_221_PAL;
+ptr_221->setAttributes(ptr_221_PAL);
 
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_GOTO_or_IF__i14_i_i);
 
 // Block false IFNE.i18.i.i (label_false_IFNE_i18_i_i)
-CastInst* ptr_219 = new IntToPtrInst(int32_214, PointerTy_29, "", label_false_IFNE_i18_i_i);
-LoadInst* ptr_220 = new LoadInst(ptr_219, "", false, label_false_IFNE_i18_i_i);
-CastInst* int32_221 = new PtrToIntInst(ptr_220, IntegerType::get(mod->getContext(), 32), "", label_false_IFNE_i18_i_i);
- new StoreInst(int32_221, ptr_213, false, label_false_IFNE_i18_i_i);
- new StoreInst(const_ptr_76, ptr_219, false, label_false_IFNE_i18_i_i);
+CastInst* ptr_223 = new IntToPtrInst(int32_218, PointerTy_33, "", label_false_IFNE_i18_i_i);
+LoadInst* ptr_224 = new LoadInst(ptr_223, "", false, label_false_IFNE_i18_i_i);
+CastInst* int32_225 = new PtrToIntInst(ptr_224, IntegerType::get(mod->getContext(), 32), "", label_false_IFNE_i18_i_i);
+ new StoreInst(int32_225, ptr_217, false, label_false_IFNE_i18_i_i);
+ new StoreInst(const_ptr_80, ptr_223, false, label_false_IFNE_i18_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i, label_false_IFNE_i18_i_i);
 
 // Block tableswitch5.i.i11 (label_tableswitch5_i_i11)
-std::vector<Value*> ptr_225_indices;
-ptr_225_indices.push_back(const_int32_53);
-ptr_225_indices.push_back(const_int32_50);
-Instruction* ptr_225 = GetElementPtrInst::Create(ptr_tmp1, ptr_225_indices.begin(), ptr_225_indices.end(), "", label_tableswitch5_i_i11);
-LoadInst* ptr_226 = new LoadInst(ptr_225, "", false, label_tableswitch5_i_i11);
-CastInst* ptr_227 = new BitCastInst(ptr_226, PointerTy_25, "", label_tableswitch5_i_i11);
-std::vector<Value*> ptr_228_params;
-ptr_228_params.push_back(ptr_227);
-ptr_228_params.push_back(int32_94);
-ptr_228_params.push_back(const_int32_55);
-ptr_228_params.push_back(const_int32_55);
-CallInst* ptr_228 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III, ptr_228_params.begin(), ptr_228_params.end(), "", label_tableswitch5_i_i11);
-ptr_228->setCallingConv(CallingConv::C);
-ptr_228->setTailCall(false);AttrListPtr ptr_228_PAL;
-ptr_228->setAttributes(ptr_228_PAL);
+std::vector<Value*> ptr_229_indices;
+ptr_229_indices.push_back(const_int32_57);
+ptr_229_indices.push_back(const_int32_54);
+Instruction* ptr_229 = GetElementPtrInst::Create(ptr_tmp1, ptr_229_indices.begin(), ptr_229_indices.end(), "", label_tableswitch5_i_i11);
+LoadInst* ptr_230 = new LoadInst(ptr_229, "", false, label_tableswitch5_i_i11);
+CastInst* ptr_231 = new BitCastInst(ptr_230, PointerTy_29, "", label_tableswitch5_i_i11);
+std::vector<Value*> ptr_232_params;
+ptr_232_params.push_back(ptr_231);
+ptr_232_params.push_back(int32_98);
+ptr_232_params.push_back(const_int32_59);
+ptr_232_params.push_back(const_int32_59);
+CallInst* ptr_232 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_LargeObjectAllocator_alloc__III, ptr_232_params.begin(), ptr_232_params.end(), "", label_tableswitch5_i_i11);
+ptr_232->setCallingConv(CallingConv::C);
+ptr_232->setTailCall(false);AttrListPtr ptr_232_PAL;
+ptr_232->setAttributes(ptr_232_PAL);
 
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_tableswitch5_i_i11);
 
 // Block JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII.exit.i (label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i)
 PHINode* int32__in = PHINode::Create(IntegerType::get(mod->getContext(), 32), ".in", label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i);
 int32__in->reserveOperandSpace(2);
-int32__in->addIncoming(int32_142, label_false_IFNE_i_i_i);
-int32__in->addIncoming(int32_214, label_false_IFNE_i18_i_i);
+int32__in->addIncoming(int32_146, label_false_IFNE_i_i_i);
+int32__in->addIncoming(int32_218, label_false_IFNE_i18_i_i);
 
-CastInst* ptr_230 = new IntToPtrInst(int32__in, PointerTy_25, "", label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i);
+CastInst* ptr_234 = new IntToPtrInst(int32__in, PointerTy_29, "", label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II.exit.i.i (label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i)
-std::vector<Value*> ptr_232_indices;
-ptr_232_indices.push_back(const_int32_59);
-ptr_232_indices.push_back(const_int32_50);
-Instruction* ptr_232 = GetElementPtrInst::Create(ptr_tmp1, ptr_232_indices.begin(), ptr_232_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
-LoadInst* ptr_233 = new LoadInst(ptr_232, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
-CastInst* ptr_234 = new BitCastInst(ptr_233, PointerTy_25, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
-BinaryOperator* int32_235 = BinaryOperator::Create(Instruction::Add, int32_94, const_int32_62, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
-ICmpInst* int1_236 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i, ICmpInst::ICMP_SGT, int32_235, const_int32_63, "");
-BranchInst::Create(label_GOTO_or_IF_4_i_i_i_i, label_false_IF_ICMPGT16_i_i_i_i, int1_236, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
+std::vector<Value*> ptr_236_indices;
+ptr_236_indices.push_back(const_int32_63);
+ptr_236_indices.push_back(const_int32_54);
+Instruction* ptr_236 = GetElementPtrInst::Create(ptr_tmp1, ptr_236_indices.begin(), ptr_236_indices.end(), "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
+LoadInst* ptr_237 = new LoadInst(ptr_236, "", false, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
+CastInst* ptr_238 = new BitCastInst(ptr_237, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
+BinaryOperator* int32_239 = BinaryOperator::Create(Instruction::Add, int32_98, const_int32_66, "", label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
+ICmpInst* int1_240 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i, ICmpInst::ICMP_SGT, int32_239, const_int32_67, "");
+BranchInst::Create(label_GOTO_or_IF_4_i_i_i_i, label_false_IF_ICMPGT16_i_i_i_i, int1_240, label_JnJVM_org_mmtk_utility_alloc_Allocator_getMaximumAlignedSize__II_exit_i_i);
 
 // Block GOTO or IF*4.i.i.i.i (label_GOTO_or_IF_4_i_i_i_i)
-ICmpInst* int1_238 = new ICmpInst(*label_GOTO_or_IF_4_i_i_i_i, ICmpInst::ICMP_SGT, int32_235, const_int32_64, "");
-BranchInst::Create(label_GOTO_or_IF_6_i_i_i_i, label_false_IF_ICMPGT17_i_i_i_i, int1_238, label_GOTO_or_IF_4_i_i_i_i);
+ICmpInst* int1_242 = new ICmpInst(*label_GOTO_or_IF_4_i_i_i_i, ICmpInst::ICMP_SGT, int32_239, const_int32_68, "");
+BranchInst::Create(label_GOTO_or_IF_6_i_i_i_i, label_false_IF_ICMPGT17_i_i_i_i, int1_242, label_GOTO_or_IF_4_i_i_i_i);
 
 // Block GOTO or IF*6.i.i.i.i (label_GOTO_or_IF_6_i_i_i_i)
-ICmpInst* int1_240 = new ICmpInst(*label_GOTO_or_IF_6_i_i_i_i, ICmpInst::ICMP_SGT, int32_235, const_int32_65, "");
-BranchInst::Create(label_GOTO_or_IF_7_i_i1_i_i, label_false_IF_ICMPGT18_i_i_i_i, int1_240, label_GOTO_or_IF_6_i_i_i_i);
+ICmpInst* int1_244 = new ICmpInst(*label_GOTO_or_IF_6_i_i_i_i, ICmpInst::ICMP_SGT, int32_239, const_int32_69, "");
+BranchInst::Create(label_GOTO_or_IF_7_i_i1_i_i, label_false_IF_ICMPGT18_i_i_i_i, int1_244, label_GOTO_or_IF_6_i_i_i_i);
 
 // Block GOTO or IF*7.i.i1.i.i (label_GOTO_or_IF_7_i_i1_i_i)
-ICmpInst* int1_242 = new ICmpInst(*label_GOTO_or_IF_7_i_i1_i_i, ICmpInst::ICMP_SGT, int32_235, const_int32_66, "");
-BranchInst::Create(label_GOTO_or_IF_8_i_i_i_i, label_false_IF_ICMPGT19_i_i_i_i, int1_242, label_GOTO_or_IF_7_i_i1_i_i);
+ICmpInst* int1_246 = new ICmpInst(*label_GOTO_or_IF_7_i_i1_i_i, ICmpInst::ICMP_SGT, int32_239, const_int32_70, "");
+BranchInst::Create(label_GOTO_or_IF_8_i_i_i_i, label_false_IF_ICMPGT19_i_i_i_i, int1_246, label_GOTO_or_IF_7_i_i1_i_i);
 
 // Block GOTO or IF*8.i.i.i.i (label_GOTO_or_IF_8_i_i_i_i)
-ICmpInst* int1_244 = new ICmpInst(*label_GOTO_or_IF_8_i_i_i_i, ICmpInst::ICMP_SGT, int32_235, const_int32_67, "");
-BranchInst::Create(label_GOTO_or_IF_9_i_i_i_i, label_false_IF_ICMPGT20_i_i_i_i, int1_244, label_GOTO_or_IF_8_i_i_i_i);
+ICmpInst* int1_248 = new ICmpInst(*label_GOTO_or_IF_8_i_i_i_i, ICmpInst::ICMP_SGT, int32_239, const_int32_71, "");
+BranchInst::Create(label_GOTO_or_IF_9_i_i_i_i, label_false_IF_ICMPGT20_i_i_i_i, int1_248, label_GOTO_or_IF_8_i_i_i_i);
 
 // Block GOTO or IF*9.i.i.i.i (label_GOTO_or_IF_9_i_i_i_i)
-BinaryOperator* int32_246 = BinaryOperator::Create(Instruction::AShr, int32_235, const_int32_68, "", label_GOTO_or_IF_9_i_i_i_i);
-BinaryOperator* int32_247 = BinaryOperator::Create(Instruction::Add, int32_246, const_int32_69, "", label_GOTO_or_IF_9_i_i_i_i);
+BinaryOperator* int32_250 = BinaryOperator::Create(Instruction::AShr, int32_239, const_int32_72, "", label_GOTO_or_IF_9_i_i_i_i);
+BinaryOperator* int32_251 = BinaryOperator::Create(Instruction::Add, int32_250, const_int32_73, "", label_GOTO_or_IF_9_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, label_GOTO_or_IF_9_i_i_i_i);
 
 // Block false IF_ICMPGT16.i.i.i.i (label_false_IF_ICMPGT16_i_i_i_i)
-BinaryOperator* int32_249 = BinaryOperator::Create(Instruction::AShr, int32_235, const_int32_57, "", label_false_IF_ICMPGT16_i_i_i_i);
+BinaryOperator* int32_253 = BinaryOperator::Create(Instruction::AShr, int32_239, const_int32_61, "", label_false_IF_ICMPGT16_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, label_false_IF_ICMPGT16_i_i_i_i);
 
 // Block false IF_ICMPGT17.i.i.i.i (label_false_IF_ICMPGT17_i_i_i_i)
-BinaryOperator* int32_251 = BinaryOperator::Create(Instruction::AShr, int32_235, const_int32_59, "", label_false_IF_ICMPGT17_i_i_i_i);
-BinaryOperator* int32_252 = BinaryOperator::Create(Instruction::Add, int32_251, const_int32_70, "", label_false_IF_ICMPGT17_i_i_i_i);
+BinaryOperator* int32_255 = BinaryOperator::Create(Instruction::AShr, int32_239, const_int32_63, "", label_false_IF_ICMPGT17_i_i_i_i);
+BinaryOperator* int32_256 = BinaryOperator::Create(Instruction::Add, int32_255, const_int32_74, "", label_false_IF_ICMPGT17_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, label_false_IF_ICMPGT17_i_i_i_i);
 
 // Block false IF_ICMPGT18.i.i.i.i (label_false_IF_ICMPGT18_i_i_i_i)
-BinaryOperator* int32_254 = BinaryOperator::Create(Instruction::AShr, int32_235, const_int32_71, "", label_false_IF_ICMPGT18_i_i_i_i);
-BinaryOperator* int32_255 = BinaryOperator::Create(Instruction::Add, int32_254, const_int32_72, "", label_false_IF_ICMPGT18_i_i_i_i);
+BinaryOperator* int32_258 = BinaryOperator::Create(Instruction::AShr, int32_239, const_int32_75, "", label_false_IF_ICMPGT18_i_i_i_i);
+BinaryOperator* int32_259 = BinaryOperator::Create(Instruction::Add, int32_258, const_int32_76, "", label_false_IF_ICMPGT18_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, label_false_IF_ICMPGT18_i_i_i_i);
 
 // Block false IF_ICMPGT19.i.i.i.i (label_false_IF_ICMPGT19_i_i_i_i)
-BinaryOperator* int32_257 = BinaryOperator::Create(Instruction::AShr, int32_235, const_int32_73, "", label_false_IF_ICMPGT19_i_i_i_i);
-BinaryOperator* int32_258 = BinaryOperator::Create(Instruction::Add, int32_257, const_int32_74, "", label_false_IF_ICMPGT19_i_i_i_i);
+BinaryOperator* int32_261 = BinaryOperator::Create(Instruction::AShr, int32_239, const_int32_77, "", label_false_IF_ICMPGT19_i_i_i_i);
+BinaryOperator* int32_262 = BinaryOperator::Create(Instruction::Add, int32_261, const_int32_78, "", label_false_IF_ICMPGT19_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, label_false_IF_ICMPGT19_i_i_i_i);
 
 // Block false IF_ICMPGT20.i.i.i.i (label_false_IF_ICMPGT20_i_i_i_i)
-BinaryOperator* int32_260 = BinaryOperator::Create(Instruction::AShr, int32_235, const_int32_61, "", label_false_IF_ICMPGT20_i_i_i_i);
-BinaryOperator* int32_261 = BinaryOperator::Create(Instruction::Add, int32_260, const_int32_75, "", label_false_IF_ICMPGT20_i_i_i_i);
+BinaryOperator* int32_264 = BinaryOperator::Create(Instruction::AShr, int32_239, const_int32_65, "", label_false_IF_ICMPGT20_i_i_i_i);
+BinaryOperator* int32_265 = BinaryOperator::Create(Instruction::Add, int32_264, const_int32_79, "", label_false_IF_ICMPGT20_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, label_false_IF_ICMPGT20_i_i_i_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I.exit.i.i (label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i)
-PHINode* int32_263 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-int32_263->reserveOperandSpace(6);
-int32_263->addIncoming(int32_249, label_false_IF_ICMPGT16_i_i_i_i);
-int32_263->addIncoming(int32_252, label_false_IF_ICMPGT17_i_i_i_i);
-int32_263->addIncoming(int32_255, label_false_IF_ICMPGT18_i_i_i_i);
-int32_263->addIncoming(int32_258, label_false_IF_ICMPGT19_i_i_i_i);
-int32_263->addIncoming(int32_261, label_false_IF_ICMPGT20_i_i_i_i);
-int32_263->addIncoming(int32_247, label_GOTO_or_IF_9_i_i_i_i);
-
-GetElementPtrInst* ptr_264 = GetElementPtrInst::Create(ptr_233, const_int32_70, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-CastInst* ptr_265 = new BitCastInst(ptr_264, PointerTy_7, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-LoadInst* ptr_266 = new LoadInst(ptr_265, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-BinaryOperator* int32_267 = BinaryOperator::Create(Instruction::Add, int32_263, const_int32_50, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-CastInst* ptr_268 = new BitCastInst(ptr_266, PointerTy_24, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-GetElementPtrInst* ptr_269 = GetElementPtrInst::Create(ptr_268, int32_267, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-LoadInst* int32_270 = new LoadInst(ptr_269, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
-ICmpInst* int1_271 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, ICmpInst::ICMP_EQ, int32_270, const_int32_55, "");
-BranchInst::Create(label_GOTO_or_IF__i_i, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i, int1_271, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+PHINode* int32_267 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+int32_267->reserveOperandSpace(6);
+int32_267->addIncoming(int32_253, label_false_IF_ICMPGT16_i_i_i_i);
+int32_267->addIncoming(int32_256, label_false_IF_ICMPGT17_i_i_i_i);
+int32_267->addIncoming(int32_259, label_false_IF_ICMPGT18_i_i_i_i);
+int32_267->addIncoming(int32_262, label_false_IF_ICMPGT19_i_i_i_i);
+int32_267->addIncoming(int32_265, label_false_IF_ICMPGT20_i_i_i_i);
+int32_267->addIncoming(int32_251, label_GOTO_or_IF_9_i_i_i_i);
+
+GetElementPtrInst* ptr_268 = GetElementPtrInst::Create(ptr_237, const_int32_74, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+CastInst* ptr_269 = new BitCastInst(ptr_268, PointerTy_7, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+LoadInst* ptr_270 = new LoadInst(ptr_269, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+BinaryOperator* int32_271 = BinaryOperator::Create(Instruction::Add, int32_267, const_int32_54, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+CastInst* ptr_272 = new BitCastInst(ptr_270, PointerTy_28, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+GetElementPtrInst* ptr_273 = GetElementPtrInst::Create(ptr_272, int32_271, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+LoadInst* int32_274 = new LoadInst(ptr_273, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
+ICmpInst* int1_275 = new ICmpInst(*label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i, ICmpInst::ICMP_EQ, int32_274, const_int32_59, "");
+BranchInst::Create(label_GOTO_or_IF__i_i, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i, int1_275, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_getSizeClass__I_exit_i_i);
 
 // Block GOTO or IF*.i.i (label_GOTO_or_IF__i_i)
-std::vector<Value*> ptr_273_params;
-ptr_273_params.push_back(ptr_234);
-ptr_273_params.push_back(int32_94);
-ptr_273_params.push_back(const_int32_55);
-ptr_273_params.push_back(const_int32_55);
-CallInst* ptr_273 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III, ptr_273_params.begin(), ptr_273_params.end(), "", label_GOTO_or_IF__i_i);
-ptr_273->setCallingConv(CallingConv::C);
-ptr_273->setTailCall(false);AttrListPtr ptr_273_PAL;
-ptr_273->setAttributes(ptr_273_PAL);
+std::vector<Value*> ptr_277_params;
+ptr_277_params.push_back(ptr_238);
+ptr_277_params.push_back(int32_98);
+ptr_277_params.push_back(const_int32_59);
+ptr_277_params.push_back(const_int32_59);
+CallInst* ptr_277 = CallInst::Create(func_JnJVM_org_mmtk_utility_alloc_Allocator_allocSlow__III, ptr_277_params.begin(), ptr_277_params.end(), "", label_GOTO_or_IF__i_i);
+ptr_277->setCallingConv(CallingConv::C);
+ptr_277->setTailCall(false);AttrListPtr ptr_277_PAL;
+ptr_277->setAttributes(ptr_277_PAL);
 
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_GOTO_or_IF__i_i);
 
 // Block JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III.exit.i (label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i)
-CastInst* ptr_275 = new IntToPtrInst(int32_270, PointerTy_25, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
-CastInst* ptr_276 = new IntToPtrInst(int32_270, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
-LoadInst* ptr_277 = new LoadInst(ptr_276, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
-CastInst* int32_278 = new PtrToIntInst(ptr_277, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
- new StoreInst(int32_278, ptr_269, false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
- new StoreInst(const_ptr_76, ptr_276, false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+CastInst* ptr_279 = new IntToPtrInst(int32_274, PointerTy_29, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+CastInst* ptr_280 = new IntToPtrInst(int32_274, PointerTy_33, "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+LoadInst* ptr_281 = new LoadInst(ptr_280, "", false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+CastInst* int32_282 = new PtrToIntInst(ptr_281, IntegerType::get(mod->getContext(), 32), "", label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+ new StoreInst(int32_282, ptr_273, false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+ new StoreInst(const_ptr_80, ptr_280, false, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
 
 // Block JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII.exit (label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit)
-PHINode* ptr_282 = PHINode::Create(PointerTy_25, "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
-ptr_282->reserveOperandSpace(9);
-ptr_282->addIncoming(ptr_228, label_tableswitch5_i_i11);
-ptr_282->addIncoming(ptr_230, label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i);
-ptr_282->addIncoming(ptr_217, label_GOTO_or_IF__i14_i_i);
-ptr_282->addIncoming(ptr_175, label_tableswitch3_i_i9);
-ptr_282->addIncoming(ptr_158, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
-ptr_282->addIncoming(ptr_170, label_false_IFEQ_i_i_i);
-ptr_282->addIncoming(ptr_145, label_GOTO_or_IF__i_i_i);
-ptr_282->addIncoming(ptr_275, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
-ptr_282->addIncoming(ptr_273, label_GOTO_or_IF__i_i);
-
-CastInst* ptr_283 = new BitCastInst(ptr_282, PointerTy_3, "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
- new StoreInst(ptr_283, ptr_res, false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
-std::vector<Value*> ptr_285_indices;
-ptr_285_indices.push_back(const_int32_55);
-ptr_285_indices.push_back(const_int32_55);
-Instruction* ptr_285 = GetElementPtrInst::Create(ptr_282, ptr_285_indices.begin(), ptr_285_indices.end(), "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
-CastInst* ptr_VT_c_i_c = new BitCastInst(ptr__VT, PointerTy_26, "VT.c.i.c", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
- new StoreInst(ptr_VT_c_i_c, ptr_285, false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
-LoadInst* ptr_287 = new LoadInst(ptr_res, "", false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
-SwitchInst* void_288 = SwitchInst::Create(int32_retval_i, label_tableswitch_i_i, 7, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
-void_288->addCase(const_int32_55, label_false_IFNE_i);
-void_288->addCase(const_int32_57, label_tableswitch1_i_i);
-void_288->addCase(const_int32_53, label_tableswitch2_i_i);
-void_288->addCase(const_int32_59, label_tableswitch3_i_i);
-void_288->addCase(const_int32_60, label_tableswitch4_i_i);
-void_288->addCase(const_int32_61, label_tableswitch5_i_i);
+PHINode* ptr_286 = PHINode::Create(PointerTy_29, "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+ptr_286->reserveOperandSpace(9);
+ptr_286->addIncoming(ptr_232, label_tableswitch5_i_i11);
+ptr_286->addIncoming(ptr_234, label_JnJVM_org_mmtk_plan_MutatorContext_alloc__IIIII_exit_i);
+ptr_286->addIncoming(ptr_221, label_GOTO_or_IF__i14_i_i);
+ptr_286->addIncoming(ptr_179, label_tableswitch3_i_i9);
+ptr_286->addIncoming(ptr_162, label_JnJVM_org_mmtk_utility_alloc_Allocator_fillAlignmentGap__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_Address_2_exit_i_i_i);
+ptr_286->addIncoming(ptr_174, label_false_IFEQ_i_i_i);
+ptr_286->addIncoming(ptr_149, label_GOTO_or_IF__i_i_i);
+ptr_286->addIncoming(ptr_279, label_JnJVM_org_mmtk_utility_alloc_SegregatedFreeList_alloc__III_exit_i);
+ptr_286->addIncoming(ptr_277, label_GOTO_or_IF__i_i);
+
+CastInst* ptr_287 = new BitCastInst(ptr_286, PointerTy_3, "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+ new StoreInst(ptr_287, ptr_res, false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+std::vector<Value*> ptr_289_indices;
+ptr_289_indices.push_back(const_int32_59);
+ptr_289_indices.push_back(const_int32_59);
+Instruction* ptr_289 = GetElementPtrInst::Create(ptr_286, ptr_289_indices.begin(), ptr_289_indices.end(), "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+CastInst* ptr_VT_c_i_c = new BitCastInst(ptr__VT, PointerTy_30, "VT.c.i.c", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+ new StoreInst(ptr_VT_c_i_c, ptr_289, false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+LoadInst* ptr_291 = new LoadInst(ptr_res, "", false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+SwitchInst* void_292 = SwitchInst::Create(int32_retval_i, label_tableswitch_i_i, 7, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII_exit);
+void_292->addCase(const_int32_59, label_false_IFNE_i);
+void_292->addCase(const_int32_61, label_tableswitch1_i_i);
+void_292->addCase(const_int32_57, label_tableswitch2_i_i);
+void_292->addCase(const_int32_63, label_tableswitch3_i_i);
+void_292->addCase(const_int32_64, label_tableswitch4_i_i);
+void_292->addCase(const_int32_65, label_tableswitch5_i_i);
 
 
 // Block tableswitch.i.i (label_tableswitch_i_i)
-CallInst* void_289 = CallInst::Create(func_abort, "", label_tableswitch_i_i);
-void_289->setCallingConv(CallingConv::C);
-void_289->setTailCall(false);AttrListPtr void_289_PAL;
+CallInst* void_293 = CallInst::Create(func_abort, "", label_tableswitch_i_i);
+void_293->setCallingConv(CallingConv::C);
+void_293->setTailCall(false);AttrListPtr void_293_PAL;
 {
   SmallVector<AttributeWithIndex, 4> Attrs;
   AttributeWithIndex PAWI;
   PAWI.Index = 4294967295U; PAWI.Attrs = 0  | Attribute::NoReturn | Attribute::NoUnwind;
   Attrs.push_back(PAWI);
-  void_289_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
+  void_293_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());
   
 }
-void_289->setAttributes(void_289_PAL);
+void_293->setAttributes(void_293_PAL);
 
 new UnreachableInst(mod->getContext(), label_tableswitch_i_i);
 
 // Block tableswitch1.i.i (label_tableswitch1_i_i)
-LoadInst* ptr_291 = new LoadInst(const_ptr_77, "", false, label_tableswitch1_i_i);
-CastInst* int32_292 = new PtrToIntInst(ptr_291, IntegerType::get(mod->getContext(), 32), "", label_tableswitch1_i_i);
-GetElementPtrInst* ptr_293 = GetElementPtrInst::Create(ptr_287, const_int32_50, "", label_tableswitch1_i_i);
-CastInst* ptr_294 = new BitCastInst(ptr_293, PointerTy_0, "", label_tableswitch1_i_i);
-LoadInst* int8_295 = new LoadInst(ptr_294, "", false, label_tableswitch1_i_i);
-BinaryOperator* int8_296 = BinaryOperator::Create(Instruction::And, int8_295, const_int8_78, "", label_tableswitch1_i_i);
-CastInst* int8_297 = new TruncInst(int32_292, IntegerType::get(mod->getContext(), 8), "", label_tableswitch1_i_i);
-BinaryOperator* int8_298 = BinaryOperator::Create(Instruction::Or, int8_296, int8_297, "", label_tableswitch1_i_i);
- new StoreInst(int8_298, ptr_294, false, label_tableswitch1_i_i);
+LoadInst* ptr_295 = new LoadInst(const_ptr_81, "", false, label_tableswitch1_i_i);
+CastInst* int32_296 = new PtrToIntInst(ptr_295, IntegerType::get(mod->getContext(), 32), "", label_tableswitch1_i_i);
+GetElementPtrInst* ptr_297 = GetElementPtrInst::Create(ptr_291, const_int32_54, "", label_tableswitch1_i_i);
+CastInst* ptr_298 = new BitCastInst(ptr_297, PointerTy_0, "", label_tableswitch1_i_i);
+LoadInst* int8_299 = new LoadInst(ptr_298, "", false, label_tableswitch1_i_i);
+BinaryOperator* int8_300 = BinaryOperator::Create(Instruction::And, int8_299, const_int8_82, "", label_tableswitch1_i_i);
+CastInst* int8_301 = new TruncInst(int32_296, IntegerType::get(mod->getContext(), 8), "", label_tableswitch1_i_i);
+BinaryOperator* int8_302 = BinaryOperator::Create(Instruction::Or, int8_300, int8_301, "", label_tableswitch1_i_i);
+ new StoreInst(int8_302, ptr_298, false, label_tableswitch1_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_tableswitch1_i_i);
 
 // Block tableswitch2.i.i (label_tableswitch2_i_i)
-GetElementPtrInst* ptr_301 = GetElementPtrInst::Create(ptr_287, const_int32_50, "", label_tableswitch2_i_i);
-CastInst* ptr_302 = new BitCastInst(ptr_301, PointerTy_24, "", label_tableswitch2_i_i);
-LoadInst* int32_303 = new LoadInst(ptr_302, "", false, label_tableswitch2_i_i);
-BinaryOperator* int32_304 = BinaryOperator::Create(Instruction::And, int32_303, const_int32_57, "", label_tableswitch2_i_i);
-LoadInst* ptr_305 = new LoadInst(const_ptr_79, "", false, label_tableswitch2_i_i);
-CastInst* int32_306 = new PtrToIntInst(ptr_305, IntegerType::get(mod->getContext(), 32), "", label_tableswitch2_i_i);
-BinaryOperator* int32_307 = BinaryOperator::Create(Instruction::Or, int32_306, int32_304, "", label_tableswitch2_i_i);
-CastInst* ptr_308 = new BitCastInst(ptr_301, PointerTy_0, "", label_tableswitch2_i_i);
-CastInst* int8_trunc = new TruncInst(int32_303, IntegerType::get(mod->getContext(), 8), "trunc", label_tableswitch2_i_i);
-BinaryOperator* int8_309 = BinaryOperator::Create(Instruction::And, int8_trunc, const_int8_78, "", label_tableswitch2_i_i);
-CastInst* int8_310 = new TruncInst(int32_307, IntegerType::get(mod->getContext(), 8), "", label_tableswitch2_i_i);
-BinaryOperator* int8_311 = BinaryOperator::Create(Instruction::Or, int8_310, int8_309, "", label_tableswitch2_i_i);
- new StoreInst(int8_311, ptr_308, false, label_tableswitch2_i_i);
+GetElementPtrInst* ptr_305 = GetElementPtrInst::Create(ptr_291, const_int32_54, "", label_tableswitch2_i_i);
+CastInst* ptr_306 = new BitCastInst(ptr_305, PointerTy_28, "", label_tableswitch2_i_i);
+LoadInst* int32_307 = new LoadInst(ptr_306, "", false, label_tableswitch2_i_i);
+BinaryOperator* int32_308 = BinaryOperator::Create(Instruction::And, int32_307, const_int32_61, "", label_tableswitch2_i_i);
+LoadInst* ptr_309 = new LoadInst(const_ptr_83, "", false, label_tableswitch2_i_i);
+CastInst* int32_310 = new PtrToIntInst(ptr_309, IntegerType::get(mod->getContext(), 32), "", label_tableswitch2_i_i);
+BinaryOperator* int32_311 = BinaryOperator::Create(Instruction::Or, int32_310, int32_308, "", label_tableswitch2_i_i);
+CastInst* ptr_312 = new BitCastInst(ptr_305, PointerTy_0, "", label_tableswitch2_i_i);
+CastInst* int8_trunc = new TruncInst(int32_307, IntegerType::get(mod->getContext(), 8), "trunc", label_tableswitch2_i_i);
+BinaryOperator* int8_313 = BinaryOperator::Create(Instruction::And, int8_trunc, const_int8_82, "", label_tableswitch2_i_i);
+CastInst* int8_314 = new TruncInst(int32_311, IntegerType::get(mod->getContext(), 8), "", label_tableswitch2_i_i);
+BinaryOperator* int8_315 = BinaryOperator::Create(Instruction::Or, int8_314, int8_313, "", label_tableswitch2_i_i);
+ new StoreInst(int8_315, ptr_312, false, label_tableswitch2_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_tableswitch2_i_i);
 
 // Block tableswitch3.i.i (label_tableswitch3_i_i)
-LoadInst* ptr_314 = new LoadInst(const_ptr_80, "", false, label_tableswitch3_i_i);
-CastInst* int32_315 = new PtrToIntInst(ptr_314, IntegerType::get(mod->getContext(), 32), "", label_tableswitch3_i_i);
-BinaryOperator* int32_316 = BinaryOperator::Create(Instruction::Or, int32_315, const_int32_57, "", label_tableswitch3_i_i);
-GetElementPtrInst* ptr_317 = GetElementPtrInst::Create(ptr_287, const_int32_50, "", label_tableswitch3_i_i);
-CastInst* ptr_318 = new BitCastInst(ptr_317, PointerTy_0, "", label_tableswitch3_i_i);
-LoadInst* int8_319 = new LoadInst(ptr_318, "", false, label_tableswitch3_i_i);
-BinaryOperator* int8_320 = BinaryOperator::Create(Instruction::And, int8_319, const_int8_78, "", label_tableswitch3_i_i);
-CastInst* int8_321 = new TruncInst(int32_316, IntegerType::get(mod->getContext(), 8), "", label_tableswitch3_i_i);
-BinaryOperator* int8_322 = BinaryOperator::Create(Instruction::Or, int8_321, int8_320, "", label_tableswitch3_i_i);
- new StoreInst(int8_322, ptr_318, false, label_tableswitch3_i_i);
-LoadInst* ptr_324 = new LoadInst(const_ptr_81, "", false, label_tableswitch3_i_i);
-CastInst* int32_325 = new PtrToIntInst(ptr_287, IntegerType::get(mod->getContext(), 32), "", label_tableswitch3_i_i);
-BinaryOperator* int32_326 = BinaryOperator::Create(Instruction::And, int32_325, const_int32_82, "", label_tableswitch3_i_i);
-CastInst* ptr_327 = new IntToPtrInst(int32_326, PointerTy_25, "", label_tableswitch3_i_i);
-std::vector<Value*> ptr_328_indices;
-ptr_328_indices.push_back(const_int32_57);
-ptr_328_indices.push_back(const_int32_50);
-Instruction* ptr_328 = GetElementPtrInst::Create(ptr_324, ptr_328_indices.begin(), ptr_328_indices.end(), "", label_tableswitch3_i_i);
-LoadInst* ptr_329 = new LoadInst(ptr_328, "", false, label_tableswitch3_i_i);
-GetElementPtrInst* ptr_330 = GetElementPtrInst::Create(ptr_329, const_int32_70, "", label_tableswitch3_i_i);
-CastInst* ptr_331 = new BitCastInst(ptr_330, PointerTy_7, "", label_tableswitch3_i_i);
-LoadInst* ptr_332 = new LoadInst(ptr_331, "", false, label_tableswitch3_i_i);
-ICmpInst* int1_333 = new ICmpInst(*label_tableswitch3_i_i, ICmpInst::ICMP_EQ, ptr_332, const_ptr_52, "");
-BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_true_IFNULL_i5_i_i6_i_i, int1_333, label_tableswitch3_i_i);
+LoadInst* ptr_318 = new LoadInst(const_ptr_84, "", false, label_tableswitch3_i_i);
+CastInst* int32_319 = new PtrToIntInst(ptr_318, IntegerType::get(mod->getContext(), 32), "", label_tableswitch3_i_i);
+BinaryOperator* int32_320 = BinaryOperator::Create(Instruction::Or, int32_319, const_int32_61, "", label_tableswitch3_i_i);
+GetElementPtrInst* ptr_321 = GetElementPtrInst::Create(ptr_291, const_int32_54, "", label_tableswitch3_i_i);
+CastInst* ptr_322 = new BitCastInst(ptr_321, PointerTy_0, "", label_tableswitch3_i_i);
+LoadInst* int8_323 = new LoadInst(ptr_322, "", false, label_tableswitch3_i_i);
+BinaryOperator* int8_324 = BinaryOperator::Create(Instruction::And, int8_323, const_int8_82, "", label_tableswitch3_i_i);
+CastInst* int8_325 = new TruncInst(int32_320, IntegerType::get(mod->getContext(), 8), "", label_tableswitch3_i_i);
+BinaryOperator* int8_326 = BinaryOperator::Create(Instruction::Or, int8_325, int8_324, "", label_tableswitch3_i_i);
+ new StoreInst(int8_326, ptr_322, false, label_tableswitch3_i_i);
+LoadInst* ptr_328 = new LoadInst(const_ptr_85, "", false, label_tableswitch3_i_i);
+CastInst* int32_329 = new PtrToIntInst(ptr_291, IntegerType::get(mod->getContext(), 32), "", label_tableswitch3_i_i);
+BinaryOperator* int32_330 = BinaryOperator::Create(Instruction::And, int32_329, const_int32_86, "", label_tableswitch3_i_i);
+CastInst* ptr_331 = new IntToPtrInst(int32_330, PointerTy_29, "", label_tableswitch3_i_i);
+std::vector<Value*> ptr_332_indices;
+ptr_332_indices.push_back(const_int32_61);
+ptr_332_indices.push_back(const_int32_54);
+Instruction* ptr_332 = GetElementPtrInst::Create(ptr_328, ptr_332_indices.begin(), ptr_332_indices.end(), "", label_tableswitch3_i_i);
+LoadInst* ptr_333 = new LoadInst(ptr_332, "", false, label_tableswitch3_i_i);
+GetElementPtrInst* ptr_334 = GetElementPtrInst::Create(ptr_333, const_int32_74, "", label_tableswitch3_i_i);
+CastInst* ptr_335 = new BitCastInst(ptr_334, PointerTy_7, "", label_tableswitch3_i_i);
+LoadInst* ptr_336 = new LoadInst(ptr_335, "", false, label_tableswitch3_i_i);
+ICmpInst* int1_337 = new ICmpInst(*label_tableswitch3_i_i, ICmpInst::ICMP_EQ, ptr_336, const_ptr_56, "");
+BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_true_IFNULL_i5_i_i6_i_i, int1_337, label_tableswitch3_i_i);
 
 // Block true IF*NULL.i1.i.i3.i.i (label_true_IF_NULL_i1_i_i3_i_i)
-std::vector<Value*> ptr_335_indices;
-ptr_335_indices.push_back(const_int32_55);
-ptr_335_indices.push_back(const_int32_55);
-Instruction* ptr_335 = GetElementPtrInst::Create(ptr_327, ptr_335_indices.begin(), ptr_335_indices.end(), "", label_true_IF_NULL_i1_i_i3_i_i);
- new StoreInst(const_ptr_83, ptr_335, false, label_true_IF_NULL_i1_i_i3_i_i);
-GetElementPtrInst* ptr_337 = GetElementPtrInst::Create(ptr_329, const_int32_61, "", label_true_IF_NULL_i1_i_i3_i_i);
-CastInst* ptr_338 = new BitCastInst(ptr_337, PointerTy_29, "", label_true_IF_NULL_i1_i_i3_i_i);
-LoadInst* ptr_339 = new LoadInst(ptr_338, "", false, label_true_IF_NULL_i1_i_i3_i_i);
-LoadInst* ptr_340 = new LoadInst(const_ptr_84, "", false, label_true_IF_NULL_i1_i_i3_i_i);
-CastInst* int32_341 = new PtrToIntInst(ptr_340, IntegerType::get(mod->getContext(), 32), "", label_true_IF_NULL_i1_i_i3_i_i);
-BinaryOperator* int32_342 = BinaryOperator::Create(Instruction::Add, int32_341, int32_326, "", label_true_IF_NULL_i1_i_i3_i_i);
-CastInst* ptr_343 = new IntToPtrInst(int32_342, PointerTy_29, "", label_true_IF_NULL_i1_i_i3_i_i);
- new StoreInst(ptr_339, ptr_343, false, label_true_IF_NULL_i1_i_i3_i_i);
-LoadInst* ptr_345 = new LoadInst(ptr_338, "", false, label_true_IF_NULL_i1_i_i3_i_i);
-ICmpInst* int1_346 = new ICmpInst(*label_true_IF_NULL_i1_i_i3_i_i, ICmpInst::ICMP_EQ, ptr_345, const_ptr_76, "");
-BranchInst::Create(label_GOTO_or_IF_1_i3_i_i5_i_i, label_false_IFNE_i7_i_i8_i_i, int1_346, label_true_IF_NULL_i1_i_i3_i_i);
+std::vector<Value*> ptr_339_indices;
+ptr_339_indices.push_back(const_int32_59);
+ptr_339_indices.push_back(const_int32_59);
+Instruction* ptr_339 = GetElementPtrInst::Create(ptr_331, ptr_339_indices.begin(), ptr_339_indices.end(), "", label_true_IF_NULL_i1_i_i3_i_i);
+ new StoreInst(const_ptr_87, ptr_339, false, label_true_IF_NULL_i1_i_i3_i_i);
+GetElementPtrInst* ptr_341 = GetElementPtrInst::Create(ptr_333, const_int32_65, "", label_true_IF_NULL_i1_i_i3_i_i);
+CastInst* ptr_342 = new BitCastInst(ptr_341, PointerTy_33, "", label_true_IF_NULL_i1_i_i3_i_i);
+LoadInst* ptr_343 = new LoadInst(ptr_342, "", false, label_true_IF_NULL_i1_i_i3_i_i);
+LoadInst* ptr_344 = new LoadInst(const_ptr_88, "", false, label_true_IF_NULL_i1_i_i3_i_i);
+CastInst* int32_345 = new PtrToIntInst(ptr_344, IntegerType::get(mod->getContext(), 32), "", label_true_IF_NULL_i1_i_i3_i_i);
+BinaryOperator* int32_346 = BinaryOperator::Create(Instruction::Add, int32_345, int32_330, "", label_true_IF_NULL_i1_i_i3_i_i);
+CastInst* ptr_347 = new IntToPtrInst(int32_346, PointerTy_33, "", label_true_IF_NULL_i1_i_i3_i_i);
+ new StoreInst(ptr_343, ptr_347, false, label_true_IF_NULL_i1_i_i3_i_i);
+LoadInst* ptr_349 = new LoadInst(ptr_342, "", false, label_true_IF_NULL_i1_i_i3_i_i);
+ICmpInst* int1_350 = new ICmpInst(*label_true_IF_NULL_i1_i_i3_i_i, ICmpInst::ICMP_EQ, ptr_349, const_ptr_80, "");
+BranchInst::Create(label_GOTO_or_IF_1_i3_i_i5_i_i, label_false_IFNE_i7_i_i8_i_i, int1_350, label_true_IF_NULL_i1_i_i3_i_i);
 
 // Block GOTO or IF*1.i3.i.i5.i.i (label_GOTO_or_IF_1_i3_i_i5_i_i)
-CastInst* ptr_348 = new BitCastInst(ptr_337, PointerTy_32, "", label_GOTO_or_IF_1_i3_i_i5_i_i);
-CastInst* ptr__c_i2_i_i4_i_i = new IntToPtrInst(int32_326, PointerTy_26, ".c.i2.i.i4.i.i", label_GOTO_or_IF_1_i3_i_i5_i_i);
- new StoreInst(ptr__c_i2_i_i4_i_i, ptr_348, false, label_GOTO_or_IF_1_i3_i_i5_i_i);
-BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_true_IFNULL3_i8_i_i9_i_i, int1_333, label_GOTO_or_IF_1_i3_i_i5_i_i);
+CastInst* ptr_352 = new BitCastInst(ptr_341, PointerTy_36, "", label_GOTO_or_IF_1_i3_i_i5_i_i);
+CastInst* ptr__c_i2_i_i4_i_i = new IntToPtrInst(int32_330, PointerTy_30, ".c.i2.i.i4.i.i", label_GOTO_or_IF_1_i3_i_i5_i_i);
+ new StoreInst(ptr__c_i2_i_i4_i_i, ptr_352, false, label_GOTO_or_IF_1_i3_i_i5_i_i);
+BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_true_IFNULL3_i8_i_i9_i_i, int1_337, label_GOTO_or_IF_1_i3_i_i5_i_i);
 
 // Block true IFNULL.i5.i.i6.i.i (label_true_IFNULL_i5_i_i6_i_i)
-GetElementPtrInst* ptr_351 = GetElementPtrInst::Create(ptr_332, const_int32_61, "", label_true_IFNULL_i5_i_i6_i_i);
-CastInst* ptr_352 = new BitCastInst(ptr_351, PointerTy_24, "", label_true_IFNULL_i5_i_i6_i_i);
+GetElementPtrInst* ptr_355 = GetElementPtrInst::Create(ptr_336, const_int32_65, "", label_true_IFNULL_i5_i_i6_i_i);
+CastInst* ptr_356 = new BitCastInst(ptr_355, PointerTy_28, "", label_true_IFNULL_i5_i_i6_i_i);
 BranchInst::Create(label_bb2_i_i34_i, label_true_IFNULL_i5_i_i6_i_i);
 
 // Block bb.i.i32.i (label_bb_i_i32_i)
-Argument* fwdref_355 = new Argument(IntegerType::get(mod->getContext(), 1));
-BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_bb1_i_i33_i, fwdref_355, label_bb_i_i32_i);
+Argument* fwdref_359 = new Argument(IntegerType::get(mod->getContext(), 1));
+BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_bb1_i_i33_i, fwdref_359, label_bb_i_i32_i);
 
 // Block bb1.i.i33.i (label_bb1_i_i33_i)
-Argument* fwdref_357 = new Argument(IntegerType::get(mod->getContext(), 32));
-BinaryOperator* int32_356 = BinaryOperator::Create(Instruction::Add, fwdref_357, const_int32_50, "", label_bb1_i_i33_i);
+Argument* fwdref_361 = new Argument(IntegerType::get(mod->getContext(), 32));
+BinaryOperator* int32_360 = BinaryOperator::Create(Instruction::Add, fwdref_361, const_int32_54, "", label_bb1_i_i33_i);
 BranchInst::Create(label_bb2_i_i34_i, label_bb1_i_i33_i);
 
 // Block bb2.i.i34.i (label_bb2_i_i34_i)
-PHINode* int32_359 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_bb2_i_i34_i);
-int32_359->reserveOperandSpace(2);
-int32_359->addIncoming(const_int32_55, label_true_IFNULL_i5_i_i6_i_i);
-int32_359->addIncoming(int32_356, label_bb1_i_i33_i);
-
-ICmpInst* int1_360 = new ICmpInst(*label_bb2_i_i34_i, ICmpInst::ICMP_ULT, int32_359, const_int32_85, "");
-std::vector<Value*> void_361_params;
-void_361_params.push_back(const_int1_86);
-void_361_params.push_back(const_int1_86);
-void_361_params.push_back(const_int1_86);
-void_361_params.push_back(const_int1_86);
-void_361_params.push_back(const_int1_86);
-CallInst* void_361 = CallInst::Create(func_llvm_memory_barrier, void_361_params.begin(), void_361_params.end(), "", label_bb2_i_i34_i);
-void_361->setCallingConv(CallingConv::C);
-void_361->setTailCall(false);AttrListPtr void_361_PAL;
-void_361->setAttributes(void_361_PAL);
-
-std::vector<Value*> int32_362_params;
-int32_362_params.push_back(ptr_352);
-int32_362_params.push_back(const_int32_55);
-int32_362_params.push_back(const_int32_50);
-CallInst* int32_362 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_362_params.begin(), int32_362_params.end(), "", label_bb2_i_i34_i);
-int32_362->setCallingConv(CallingConv::C);
-int32_362->setTailCall(false);AttrListPtr int32_362_PAL;
-int32_362->setAttributes(int32_362_PAL);
-
-std::vector<Value*> void_363_params;
-void_363_params.push_back(const_int1_86);
-void_363_params.push_back(const_int1_86);
-void_363_params.push_back(const_int1_86);
-void_363_params.push_back(const_int1_86);
-void_363_params.push_back(const_int1_86);
-CallInst* void_363 = CallInst::Create(func_llvm_memory_barrier, void_363_params.begin(), void_363_params.end(), "", label_bb2_i_i34_i);
-void_363->setCallingConv(CallingConv::C);
-void_363->setTailCall(false);AttrListPtr void_363_PAL;
-void_363->setAttributes(void_363_PAL);
+PHINode* int32_363 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_bb2_i_i34_i);
+int32_363->reserveOperandSpace(2);
+int32_363->addIncoming(const_int32_59, label_true_IFNULL_i5_i_i6_i_i);
+int32_363->addIncoming(int32_360, label_bb1_i_i33_i);
+
+ICmpInst* int1_364 = new ICmpInst(*label_bb2_i_i34_i, ICmpInst::ICMP_ULT, int32_363, const_int32_89, "");
+std::vector<Value*> void_365_params;
+void_365_params.push_back(const_int1_90);
+void_365_params.push_back(const_int1_90);
+void_365_params.push_back(const_int1_90);
+void_365_params.push_back(const_int1_90);
+void_365_params.push_back(const_int1_90);
+CallInst* void_365 = CallInst::Create(func_llvm_memory_barrier, void_365_params.begin(), void_365_params.end(), "", label_bb2_i_i34_i);
+void_365->setCallingConv(CallingConv::C);
+void_365->setTailCall(false);AttrListPtr void_365_PAL;
+void_365->setAttributes(void_365_PAL);
+
+std::vector<Value*> int32_366_params;
+int32_366_params.push_back(ptr_356);
+int32_366_params.push_back(const_int32_59);
+int32_366_params.push_back(const_int32_54);
+CallInst* int32_366 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_366_params.begin(), int32_366_params.end(), "", label_bb2_i_i34_i);
+int32_366->setCallingConv(CallingConv::C);
+int32_366->setTailCall(false);AttrListPtr int32_366_PAL;
+int32_366->setAttributes(int32_366_PAL);
+
+std::vector<Value*> void_367_params;
+void_367_params.push_back(const_int1_90);
+void_367_params.push_back(const_int1_90);
+void_367_params.push_back(const_int1_90);
+void_367_params.push_back(const_int1_90);
+void_367_params.push_back(const_int1_90);
+CallInst* void_367 = CallInst::Create(func_llvm_memory_barrier, void_367_params.begin(), void_367_params.end(), "", label_bb2_i_i34_i);
+void_367->setCallingConv(CallingConv::C);
+void_367->setTailCall(false);AttrListPtr void_367_PAL;
+void_367->setAttributes(void_367_PAL);
 
-ICmpInst* int1_364 = new ICmpInst(*label_bb2_i_i34_i, ICmpInst::ICMP_EQ, int32_362, const_int32_55, "");
-BranchInst::Create(label_bb_i_i32_i, label_bb4_preheader_i_i35_i, int1_360, label_bb2_i_i34_i);
+ICmpInst* int1_368 = new ICmpInst(*label_bb2_i_i34_i, ICmpInst::ICMP_EQ, int32_366, const_int32_59, "");
+BranchInst::Create(label_bb_i_i32_i, label_bb4_preheader_i_i35_i, int1_364, label_bb2_i_i34_i);
 
 // Block bb4.preheader.i.i35.i (label_bb4_preheader_i_i35_i)
-BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_bb3_i_i36_i, int1_364, label_bb4_preheader_i_i35_i);
+BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_bb3_i_i36_i, int1_368, label_bb4_preheader_i_i35_i);
 
 // Block bb3.i.i36.i (label_bb3_i_i36_i)
-CallInst* void_367 = CallInst::Create(func__ZN3mvm6Thread5yieldEv, "", label_bb3_i_i36_i);
-void_367->setCallingConv(CallingConv::C);
-void_367->setTailCall(false);AttrListPtr void_367_PAL;
-void_367->setAttributes(void_367_PAL);
+CallInst* void_371 = CallInst::Create(func__ZN3mvm6Thread5yieldEv, "", label_bb3_i_i36_i);
+void_371->setCallingConv(CallingConv::C);
+void_371->setTailCall(false);AttrListPtr void_371_PAL;
+void_371->setAttributes(void_371_PAL);
+
+std::vector<Value*> void_372_params;
+void_372_params.push_back(const_int1_90);
+void_372_params.push_back(const_int1_90);
+void_372_params.push_back(const_int1_90);
+void_372_params.push_back(const_int1_90);
+void_372_params.push_back(const_int1_90);
+CallInst* void_372 = CallInst::Create(func_llvm_memory_barrier, void_372_params.begin(), void_372_params.end(), "", label_bb3_i_i36_i);
+void_372->setCallingConv(CallingConv::C);
+void_372->setTailCall(false);AttrListPtr void_372_PAL;
+void_372->setAttributes(void_372_PAL);
+
+std::vector<Value*> int32_373_params;
+int32_373_params.push_back(ptr_356);
+int32_373_params.push_back(const_int32_59);
+int32_373_params.push_back(const_int32_54);
+CallInst* int32_373 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_373_params.begin(), int32_373_params.end(), "", label_bb3_i_i36_i);
+int32_373->setCallingConv(CallingConv::C);
+int32_373->setTailCall(false);AttrListPtr int32_373_PAL;
+int32_373->setAttributes(int32_373_PAL);
+
+std::vector<Value*> void_374_params;
+void_374_params.push_back(const_int1_90);
+void_374_params.push_back(const_int1_90);
+void_374_params.push_back(const_int1_90);
+void_374_params.push_back(const_int1_90);
+void_374_params.push_back(const_int1_90);
+CallInst* void_374 = CallInst::Create(func_llvm_memory_barrier, void_374_params.begin(), void_374_params.end(), "", label_bb3_i_i36_i);
+void_374->setCallingConv(CallingConv::C);
+void_374->setTailCall(false);AttrListPtr void_374_PAL;
+void_374->setAttributes(void_374_PAL);
 
-std::vector<Value*> void_368_params;
-void_368_params.push_back(const_int1_86);
-void_368_params.push_back(const_int1_86);
-void_368_params.push_back(const_int1_86);
-void_368_params.push_back(const_int1_86);
-void_368_params.push_back(const_int1_86);
-CallInst* void_368 = CallInst::Create(func_llvm_memory_barrier, void_368_params.begin(), void_368_params.end(), "", label_bb3_i_i36_i);
-void_368->setCallingConv(CallingConv::C);
-void_368->setTailCall(false);AttrListPtr void_368_PAL;
-void_368->setAttributes(void_368_PAL);
-
-std::vector<Value*> int32_369_params;
-int32_369_params.push_back(ptr_352);
-int32_369_params.push_back(const_int32_55);
-int32_369_params.push_back(const_int32_50);
-CallInst* int32_369 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_369_params.begin(), int32_369_params.end(), "", label_bb3_i_i36_i);
-int32_369->setCallingConv(CallingConv::C);
-int32_369->setTailCall(false);AttrListPtr int32_369_PAL;
-int32_369->setAttributes(int32_369_PAL);
-
-std::vector<Value*> void_370_params;
-void_370_params.push_back(const_int1_86);
-void_370_params.push_back(const_int1_86);
-void_370_params.push_back(const_int1_86);
-void_370_params.push_back(const_int1_86);
-void_370_params.push_back(const_int1_86);
-CallInst* void_370 = CallInst::Create(func_llvm_memory_barrier, void_370_params.begin(), void_370_params.end(), "", label_bb3_i_i36_i);
-void_370->setCallingConv(CallingConv::C);
-void_370->setTailCall(false);AttrListPtr void_370_PAL;
-void_370->setAttributes(void_370_PAL);
-
-ICmpInst* int1_371 = new ICmpInst(*label_bb3_i_i36_i, ICmpInst::ICMP_EQ, int32_369, const_int32_55, "");
-BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_bb3_i_i36_i, int1_371, label_bb3_i_i36_i);
+ICmpInst* int1_375 = new ICmpInst(*label_bb3_i_i36_i, ICmpInst::ICMP_EQ, int32_373, const_int32_59, "");
+BranchInst::Create(label_true_IF_NULL_i1_i_i3_i_i, label_bb3_i_i36_i, int1_375, label_bb3_i_i36_i);
 
 // Block false IFNE.i7.i.i8.i.i (label_false_IFNE_i7_i_i8_i_i)
-std::vector<Value*> ptr_373_indices;
-ptr_373_indices.push_back(const_int32_55);
-ptr_373_indices.push_back(const_int32_55);
-Instruction* ptr_373 = GetElementPtrInst::Create(ptr_345, ptr_373_indices.begin(), ptr_373_indices.end(), "", label_false_IFNE_i7_i_i8_i_i);
-CastInst* ptr__c1_i6_i_i7_i_i = new IntToPtrInst(int32_326, PointerTy_26, ".c1.i6.i.i7.i.i", label_false_IFNE_i7_i_i8_i_i);
- new StoreInst(ptr__c1_i6_i_i7_i_i, ptr_373, false, label_false_IFNE_i7_i_i8_i_i);
+std::vector<Value*> ptr_377_indices;
+ptr_377_indices.push_back(const_int32_59);
+ptr_377_indices.push_back(const_int32_59);
+Instruction* ptr_377 = GetElementPtrInst::Create(ptr_349, ptr_377_indices.begin(), ptr_377_indices.end(), "", label_false_IFNE_i7_i_i8_i_i);
+CastInst* ptr__c1_i6_i_i7_i_i = new IntToPtrInst(int32_330, PointerTy_30, ".c1.i6.i.i7.i.i", label_false_IFNE_i7_i_i8_i_i);
+ new StoreInst(ptr__c1_i6_i_i7_i_i, ptr_377, false, label_false_IFNE_i7_i_i8_i_i);
 BranchInst::Create(label_GOTO_or_IF_1_i3_i_i5_i_i, label_false_IFNE_i7_i_i8_i_i);
 
 // Block true IFNULL3.i8.i.i9.i.i (label_true_IFNULL3_i8_i_i9_i_i)
-GetElementPtrInst* ptr_376 = GetElementPtrInst::Create(ptr_332, const_int32_61, "", label_true_IFNULL3_i8_i_i9_i_i);
-CastInst* ptr_377 = new BitCastInst(ptr_376, PointerTy_24, "", label_true_IFNULL3_i8_i_i9_i_i);
- new StoreInst(const_int32_55, ptr_377, false, label_true_IFNULL3_i8_i_i9_i_i);
+GetElementPtrInst* ptr_380 = GetElementPtrInst::Create(ptr_336, const_int32_65, "", label_true_IFNULL3_i8_i_i9_i_i);
+CastInst* ptr_381 = new BitCastInst(ptr_380, PointerTy_28, "", label_true_IFNULL3_i8_i_i9_i_i);
+ new StoreInst(const_int32_59, ptr_381, false, label_true_IFNULL3_i8_i_i9_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_true_IFNULL3_i8_i_i9_i_i);
 
 // Block tableswitch4.i.i (label_tableswitch4_i_i)
-LoadInst* ptr_380 = new LoadInst(const_ptr_87, "", false, label_tableswitch4_i_i);
-CastInst* int32_381 = new PtrToIntInst(ptr_380, IntegerType::get(mod->getContext(), 32), "", label_tableswitch4_i_i);
-GetElementPtrInst* ptr_382 = GetElementPtrInst::Create(ptr_287, const_int32_50, "", label_tableswitch4_i_i);
-CastInst* ptr_383 = new BitCastInst(ptr_382, PointerTy_0, "", label_tableswitch4_i_i);
-LoadInst* int8_384 = new LoadInst(ptr_383, "", false, label_tableswitch4_i_i);
-BinaryOperator* int8_385 = BinaryOperator::Create(Instruction::And, int8_384, const_int8_78, "", label_tableswitch4_i_i);
-CastInst* int8_386 = new TruncInst(int32_381, IntegerType::get(mod->getContext(), 8), "", label_tableswitch4_i_i);
-BinaryOperator* int8_387 = BinaryOperator::Create(Instruction::Or, int8_385, int8_386, "", label_tableswitch4_i_i);
- new StoreInst(int8_387, ptr_383, false, label_tableswitch4_i_i);
+LoadInst* ptr_384 = new LoadInst(const_ptr_91, "", false, label_tableswitch4_i_i);
+CastInst* int32_385 = new PtrToIntInst(ptr_384, IntegerType::get(mod->getContext(), 32), "", label_tableswitch4_i_i);
+GetElementPtrInst* ptr_386 = GetElementPtrInst::Create(ptr_291, const_int32_54, "", label_tableswitch4_i_i);
+CastInst* ptr_387 = new BitCastInst(ptr_386, PointerTy_0, "", label_tableswitch4_i_i);
+LoadInst* int8_388 = new LoadInst(ptr_387, "", false, label_tableswitch4_i_i);
+BinaryOperator* int8_389 = BinaryOperator::Create(Instruction::And, int8_388, const_int8_82, "", label_tableswitch4_i_i);
+CastInst* int8_390 = new TruncInst(int32_385, IntegerType::get(mod->getContext(), 8), "", label_tableswitch4_i_i);
+BinaryOperator* int8_391 = BinaryOperator::Create(Instruction::Or, int8_389, int8_390, "", label_tableswitch4_i_i);
+ new StoreInst(int8_391, ptr_387, false, label_tableswitch4_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_tableswitch4_i_i);
 
 // Block tableswitch5.i.i (label_tableswitch5_i_i)
-LoadInst* ptr_390 = new LoadInst(const_ptr_88, "", false, label_tableswitch5_i_i);
-CastInst* int32_391 = new PtrToIntInst(ptr_390, IntegerType::get(mod->getContext(), 32), "", label_tableswitch5_i_i);
-BinaryOperator* int32_392 = BinaryOperator::Create(Instruction::Or, int32_391, const_int32_57, "", label_tableswitch5_i_i);
-GetElementPtrInst* ptr_393 = GetElementPtrInst::Create(ptr_287, const_int32_50, "", label_tableswitch5_i_i);
-CastInst* ptr_394 = new BitCastInst(ptr_393, PointerTy_0, "", label_tableswitch5_i_i);
-LoadInst* int8_395 = new LoadInst(ptr_394, "", false, label_tableswitch5_i_i);
-BinaryOperator* int8_396 = BinaryOperator::Create(Instruction::And, int8_395, const_int8_78, "", label_tableswitch5_i_i);
-CastInst* int8_397 = new TruncInst(int32_392, IntegerType::get(mod->getContext(), 8), "", label_tableswitch5_i_i);
-BinaryOperator* int8_398 = BinaryOperator::Create(Instruction::Or, int8_397, int8_396, "", label_tableswitch5_i_i);
- new StoreInst(int8_398, ptr_394, false, label_tableswitch5_i_i);
-LoadInst* ptr_400 = new LoadInst(const_ptr_89, "", false, label_tableswitch5_i_i);
-CastInst* int32_401 = new PtrToIntInst(ptr_287, IntegerType::get(mod->getContext(), 32), "", label_tableswitch5_i_i);
-BinaryOperator* int32_402 = BinaryOperator::Create(Instruction::And, int32_401, const_int32_82, "", label_tableswitch5_i_i);
-CastInst* ptr_403 = new IntToPtrInst(int32_402, PointerTy_25, "", label_tableswitch5_i_i);
-std::vector<Value*> ptr_404_indices;
-ptr_404_indices.push_back(const_int32_57);
-ptr_404_indices.push_back(const_int32_50);
-Instruction* ptr_404 = GetElementPtrInst::Create(ptr_400, ptr_404_indices.begin(), ptr_404_indices.end(), "", label_tableswitch5_i_i);
-LoadInst* ptr_405 = new LoadInst(ptr_404, "", false, label_tableswitch5_i_i);
-GetElementPtrInst* ptr_406 = GetElementPtrInst::Create(ptr_405, const_int32_70, "", label_tableswitch5_i_i);
-CastInst* ptr_407 = new BitCastInst(ptr_406, PointerTy_7, "", label_tableswitch5_i_i);
-LoadInst* ptr_408 = new LoadInst(ptr_407, "", false, label_tableswitch5_i_i);
-ICmpInst* int1_409 = new ICmpInst(*label_tableswitch5_i_i, ICmpInst::ICMP_EQ, ptr_408, const_ptr_52, "");
-BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_true_IFNULL_i5_i_i_i_i, int1_409, label_tableswitch5_i_i);
+LoadInst* ptr_394 = new LoadInst(const_ptr_92, "", false, label_tableswitch5_i_i);
+CastInst* int32_395 = new PtrToIntInst(ptr_394, IntegerType::get(mod->getContext(), 32), "", label_tableswitch5_i_i);
+BinaryOperator* int32_396 = BinaryOperator::Create(Instruction::Or, int32_395, const_int32_61, "", label_tableswitch5_i_i);
+GetElementPtrInst* ptr_397 = GetElementPtrInst::Create(ptr_291, const_int32_54, "", label_tableswitch5_i_i);
+CastInst* ptr_398 = new BitCastInst(ptr_397, PointerTy_0, "", label_tableswitch5_i_i);
+LoadInst* int8_399 = new LoadInst(ptr_398, "", false, label_tableswitch5_i_i);
+BinaryOperator* int8_400 = BinaryOperator::Create(Instruction::And, int8_399, const_int8_82, "", label_tableswitch5_i_i);
+CastInst* int8_401 = new TruncInst(int32_396, IntegerType::get(mod->getContext(), 8), "", label_tableswitch5_i_i);
+BinaryOperator* int8_402 = BinaryOperator::Create(Instruction::Or, int8_401, int8_400, "", label_tableswitch5_i_i);
+ new StoreInst(int8_402, ptr_398, false, label_tableswitch5_i_i);
+LoadInst* ptr_404 = new LoadInst(const_ptr_93, "", false, label_tableswitch5_i_i);
+CastInst* int32_405 = new PtrToIntInst(ptr_291, IntegerType::get(mod->getContext(), 32), "", label_tableswitch5_i_i);
+BinaryOperator* int32_406 = BinaryOperator::Create(Instruction::And, int32_405, const_int32_86, "", label_tableswitch5_i_i);
+CastInst* ptr_407 = new IntToPtrInst(int32_406, PointerTy_29, "", label_tableswitch5_i_i);
+std::vector<Value*> ptr_408_indices;
+ptr_408_indices.push_back(const_int32_61);
+ptr_408_indices.push_back(const_int32_54);
+Instruction* ptr_408 = GetElementPtrInst::Create(ptr_404, ptr_408_indices.begin(), ptr_408_indices.end(), "", label_tableswitch5_i_i);
+LoadInst* ptr_409 = new LoadInst(ptr_408, "", false, label_tableswitch5_i_i);
+GetElementPtrInst* ptr_410 = GetElementPtrInst::Create(ptr_409, const_int32_74, "", label_tableswitch5_i_i);
+CastInst* ptr_411 = new BitCastInst(ptr_410, PointerTy_7, "", label_tableswitch5_i_i);
+LoadInst* ptr_412 = new LoadInst(ptr_411, "", false, label_tableswitch5_i_i);
+ICmpInst* int1_413 = new ICmpInst(*label_tableswitch5_i_i, ICmpInst::ICMP_EQ, ptr_412, const_ptr_56, "");
+BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_true_IFNULL_i5_i_i_i_i, int1_413, label_tableswitch5_i_i);
 
 // Block true IF*NULL.i1.i.i.i.i (label_true_IF_NULL_i1_i_i_i_i)
-std::vector<Value*> ptr_411_indices;
-ptr_411_indices.push_back(const_int32_55);
-ptr_411_indices.push_back(const_int32_55);
-Instruction* ptr_411 = GetElementPtrInst::Create(ptr_403, ptr_411_indices.begin(), ptr_411_indices.end(), "", label_true_IF_NULL_i1_i_i_i_i);
- new StoreInst(const_ptr_83, ptr_411, false, label_true_IF_NULL_i1_i_i_i_i);
-GetElementPtrInst* ptr_413 = GetElementPtrInst::Create(ptr_405, const_int32_61, "", label_true_IF_NULL_i1_i_i_i_i);
-CastInst* ptr_414 = new BitCastInst(ptr_413, PointerTy_29, "", label_true_IF_NULL_i1_i_i_i_i);
-LoadInst* ptr_415 = new LoadInst(ptr_414, "", false, label_true_IF_NULL_i1_i_i_i_i);
-LoadInst* ptr_416 = new LoadInst(const_ptr_84, "", false, label_true_IF_NULL_i1_i_i_i_i);
-CastInst* int32_417 = new PtrToIntInst(ptr_416, IntegerType::get(mod->getContext(), 32), "", label_true_IF_NULL_i1_i_i_i_i);
-BinaryOperator* int32_418 = BinaryOperator::Create(Instruction::Add, int32_417, int32_402, "", label_true_IF_NULL_i1_i_i_i_i);
-CastInst* ptr_419 = new IntToPtrInst(int32_418, PointerTy_29, "", label_true_IF_NULL_i1_i_i_i_i);
- new StoreInst(ptr_415, ptr_419, false, label_true_IF_NULL_i1_i_i_i_i);
-LoadInst* ptr_421 = new LoadInst(ptr_414, "", false, label_true_IF_NULL_i1_i_i_i_i);
-ICmpInst* int1_422 = new ICmpInst(*label_true_IF_NULL_i1_i_i_i_i, ICmpInst::ICMP_EQ, ptr_421, const_ptr_76, "");
-BranchInst::Create(label_GOTO_or_IF_1_i3_i_i_i_i, label_false_IFNE_i7_i_i_i_i, int1_422, label_true_IF_NULL_i1_i_i_i_i);
+std::vector<Value*> ptr_415_indices;
+ptr_415_indices.push_back(const_int32_59);
+ptr_415_indices.push_back(const_int32_59);
+Instruction* ptr_415 = GetElementPtrInst::Create(ptr_407, ptr_415_indices.begin(), ptr_415_indices.end(), "", label_true_IF_NULL_i1_i_i_i_i);
+ new StoreInst(const_ptr_87, ptr_415, false, label_true_IF_NULL_i1_i_i_i_i);
+GetElementPtrInst* ptr_417 = GetElementPtrInst::Create(ptr_409, const_int32_65, "", label_true_IF_NULL_i1_i_i_i_i);
+CastInst* ptr_418 = new BitCastInst(ptr_417, PointerTy_33, "", label_true_IF_NULL_i1_i_i_i_i);
+LoadInst* ptr_419 = new LoadInst(ptr_418, "", false, label_true_IF_NULL_i1_i_i_i_i);
+LoadInst* ptr_420 = new LoadInst(const_ptr_88, "", false, label_true_IF_NULL_i1_i_i_i_i);
+CastInst* int32_421 = new PtrToIntInst(ptr_420, IntegerType::get(mod->getContext(), 32), "", label_true_IF_NULL_i1_i_i_i_i);
+BinaryOperator* int32_422 = BinaryOperator::Create(Instruction::Add, int32_421, int32_406, "", label_true_IF_NULL_i1_i_i_i_i);
+CastInst* ptr_423 = new IntToPtrInst(int32_422, PointerTy_33, "", label_true_IF_NULL_i1_i_i_i_i);
+ new StoreInst(ptr_419, ptr_423, false, label_true_IF_NULL_i1_i_i_i_i);
+LoadInst* ptr_425 = new LoadInst(ptr_418, "", false, label_true_IF_NULL_i1_i_i_i_i);
+ICmpInst* int1_426 = new ICmpInst(*label_true_IF_NULL_i1_i_i_i_i, ICmpInst::ICMP_EQ, ptr_425, const_ptr_80, "");
+BranchInst::Create(label_GOTO_or_IF_1_i3_i_i_i_i, label_false_IFNE_i7_i_i_i_i, int1_426, label_true_IF_NULL_i1_i_i_i_i);
 
 // Block GOTO or IF*1.i3.i.i.i.i (label_GOTO_or_IF_1_i3_i_i_i_i)
-CastInst* ptr_424 = new BitCastInst(ptr_413, PointerTy_32, "", label_GOTO_or_IF_1_i3_i_i_i_i);
-CastInst* ptr__c_i2_i_i_i_i = new IntToPtrInst(int32_402, PointerTy_26, ".c.i2.i.i.i.i", label_GOTO_or_IF_1_i3_i_i_i_i);
- new StoreInst(ptr__c_i2_i_i_i_i, ptr_424, false, label_GOTO_or_IF_1_i3_i_i_i_i);
-BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_true_IFNULL3_i8_i_i_i_i, int1_409, label_GOTO_or_IF_1_i3_i_i_i_i);
+CastInst* ptr_428 = new BitCastInst(ptr_417, PointerTy_36, "", label_GOTO_or_IF_1_i3_i_i_i_i);
+CastInst* ptr__c_i2_i_i_i_i = new IntToPtrInst(int32_406, PointerTy_30, ".c.i2.i.i.i.i", label_GOTO_or_IF_1_i3_i_i_i_i);
+ new StoreInst(ptr__c_i2_i_i_i_i, ptr_428, false, label_GOTO_or_IF_1_i3_i_i_i_i);
+BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_true_IFNULL3_i8_i_i_i_i, int1_413, label_GOTO_or_IF_1_i3_i_i_i_i);
 
 // Block true IFNULL.i5.i.i.i.i (label_true_IFNULL_i5_i_i_i_i)
-GetElementPtrInst* ptr_427 = GetElementPtrInst::Create(ptr_408, const_int32_61, "", label_true_IFNULL_i5_i_i_i_i);
-CastInst* ptr_428 = new BitCastInst(ptr_427, PointerTy_24, "", label_true_IFNULL_i5_i_i_i_i);
+GetElementPtrInst* ptr_431 = GetElementPtrInst::Create(ptr_412, const_int32_65, "", label_true_IFNULL_i5_i_i_i_i);
+CastInst* ptr_432 = new BitCastInst(ptr_431, PointerTy_28, "", label_true_IFNULL_i5_i_i_i_i);
 BranchInst::Create(label_bb2_i_i_i, label_true_IFNULL_i5_i_i_i_i);
 
 // Block bb.i.i.i (label_bb_i_i_i)
-Argument* fwdref_431 = new Argument(IntegerType::get(mod->getContext(), 1));
-BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_bb1_i_i_i, fwdref_431, label_bb_i_i_i);
+Argument* fwdref_435 = new Argument(IntegerType::get(mod->getContext(), 1));
+BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_bb1_i_i_i, fwdref_435, label_bb_i_i_i);
 
 // Block bb1.i.i.i (label_bb1_i_i_i)
-Argument* fwdref_433 = new Argument(IntegerType::get(mod->getContext(), 32));
-BinaryOperator* int32_432 = BinaryOperator::Create(Instruction::Add, fwdref_433, const_int32_50, "", label_bb1_i_i_i);
+Argument* fwdref_437 = new Argument(IntegerType::get(mod->getContext(), 32));
+BinaryOperator* int32_436 = BinaryOperator::Create(Instruction::Add, fwdref_437, const_int32_54, "", label_bb1_i_i_i);
 BranchInst::Create(label_bb2_i_i_i, label_bb1_i_i_i);
 
 // Block bb2.i.i.i (label_bb2_i_i_i)
-PHINode* int32_435 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_bb2_i_i_i);
-int32_435->reserveOperandSpace(2);
-int32_435->addIncoming(const_int32_55, label_true_IFNULL_i5_i_i_i_i);
-int32_435->addIncoming(int32_432, label_bb1_i_i_i);
-
-ICmpInst* int1_436 = new ICmpInst(*label_bb2_i_i_i, ICmpInst::ICMP_ULT, int32_435, const_int32_85, "");
-std::vector<Value*> void_437_params;
-void_437_params.push_back(const_int1_86);
-void_437_params.push_back(const_int1_86);
-void_437_params.push_back(const_int1_86);
-void_437_params.push_back(const_int1_86);
-void_437_params.push_back(const_int1_86);
-CallInst* void_437 = CallInst::Create(func_llvm_memory_barrier, void_437_params.begin(), void_437_params.end(), "", label_bb2_i_i_i);
-void_437->setCallingConv(CallingConv::C);
-void_437->setTailCall(false);AttrListPtr void_437_PAL;
-void_437->setAttributes(void_437_PAL);
-
-std::vector<Value*> int32_438_params;
-int32_438_params.push_back(ptr_428);
-int32_438_params.push_back(const_int32_55);
-int32_438_params.push_back(const_int32_50);
-CallInst* int32_438 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_438_params.begin(), int32_438_params.end(), "", label_bb2_i_i_i);
-int32_438->setCallingConv(CallingConv::C);
-int32_438->setTailCall(false);AttrListPtr int32_438_PAL;
-int32_438->setAttributes(int32_438_PAL);
-
-std::vector<Value*> void_439_params;
-void_439_params.push_back(const_int1_86);
-void_439_params.push_back(const_int1_86);
-void_439_params.push_back(const_int1_86);
-void_439_params.push_back(const_int1_86);
-void_439_params.push_back(const_int1_86);
-CallInst* void_439 = CallInst::Create(func_llvm_memory_barrier, void_439_params.begin(), void_439_params.end(), "", label_bb2_i_i_i);
-void_439->setCallingConv(CallingConv::C);
-void_439->setTailCall(false);AttrListPtr void_439_PAL;
-void_439->setAttributes(void_439_PAL);
+PHINode* int32_439 = PHINode::Create(IntegerType::get(mod->getContext(), 32), "", label_bb2_i_i_i);
+int32_439->reserveOperandSpace(2);
+int32_439->addIncoming(const_int32_59, label_true_IFNULL_i5_i_i_i_i);
+int32_439->addIncoming(int32_436, label_bb1_i_i_i);
+
+ICmpInst* int1_440 = new ICmpInst(*label_bb2_i_i_i, ICmpInst::ICMP_ULT, int32_439, const_int32_89, "");
+std::vector<Value*> void_441_params;
+void_441_params.push_back(const_int1_90);
+void_441_params.push_back(const_int1_90);
+void_441_params.push_back(const_int1_90);
+void_441_params.push_back(const_int1_90);
+void_441_params.push_back(const_int1_90);
+CallInst* void_441 = CallInst::Create(func_llvm_memory_barrier, void_441_params.begin(), void_441_params.end(), "", label_bb2_i_i_i);
+void_441->setCallingConv(CallingConv::C);
+void_441->setTailCall(false);AttrListPtr void_441_PAL;
+void_441->setAttributes(void_441_PAL);
+
+std::vector<Value*> int32_442_params;
+int32_442_params.push_back(ptr_432);
+int32_442_params.push_back(const_int32_59);
+int32_442_params.push_back(const_int32_54);
+CallInst* int32_442 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_442_params.begin(), int32_442_params.end(), "", label_bb2_i_i_i);
+int32_442->setCallingConv(CallingConv::C);
+int32_442->setTailCall(false);AttrListPtr int32_442_PAL;
+int32_442->setAttributes(int32_442_PAL);
+
+std::vector<Value*> void_443_params;
+void_443_params.push_back(const_int1_90);
+void_443_params.push_back(const_int1_90);
+void_443_params.push_back(const_int1_90);
+void_443_params.push_back(const_int1_90);
+void_443_params.push_back(const_int1_90);
+CallInst* void_443 = CallInst::Create(func_llvm_memory_barrier, void_443_params.begin(), void_443_params.end(), "", label_bb2_i_i_i);
+void_443->setCallingConv(CallingConv::C);
+void_443->setTailCall(false);AttrListPtr void_443_PAL;
+void_443->setAttributes(void_443_PAL);
 
-ICmpInst* int1_440 = new ICmpInst(*label_bb2_i_i_i, ICmpInst::ICMP_EQ, int32_438, const_int32_55, "");
-BranchInst::Create(label_bb_i_i_i, label_bb4_preheader_i_i_i, int1_436, label_bb2_i_i_i);
+ICmpInst* int1_444 = new ICmpInst(*label_bb2_i_i_i, ICmpInst::ICMP_EQ, int32_442, const_int32_59, "");
+BranchInst::Create(label_bb_i_i_i, label_bb4_preheader_i_i_i, int1_440, label_bb2_i_i_i);
 
 // Block bb4.preheader.i.i.i (label_bb4_preheader_i_i_i)
-BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_bb3_i_i_i, int1_440, label_bb4_preheader_i_i_i);
+BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_bb3_i_i_i, int1_444, label_bb4_preheader_i_i_i);
 
 // Block bb3.i.i.i (label_bb3_i_i_i)
-CallInst* void_443 = CallInst::Create(func__ZN3mvm6Thread5yieldEv, "", label_bb3_i_i_i);
-void_443->setCallingConv(CallingConv::C);
-void_443->setTailCall(false);AttrListPtr void_443_PAL;
-void_443->setAttributes(void_443_PAL);
-
-std::vector<Value*> void_444_params;
-void_444_params.push_back(const_int1_86);
-void_444_params.push_back(const_int1_86);
-void_444_params.push_back(const_int1_86);
-void_444_params.push_back(const_int1_86);
-void_444_params.push_back(const_int1_86);
-CallInst* void_444 = CallInst::Create(func_llvm_memory_barrier, void_444_params.begin(), void_444_params.end(), "", label_bb3_i_i_i);
-void_444->setCallingConv(CallingConv::C);
-void_444->setTailCall(false);AttrListPtr void_444_PAL;
-void_444->setAttributes(void_444_PAL);
-
-std::vector<Value*> int32_445_params;
-int32_445_params.push_back(ptr_428);
-int32_445_params.push_back(const_int32_55);
-int32_445_params.push_back(const_int32_50);
-CallInst* int32_445 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_445_params.begin(), int32_445_params.end(), "", label_bb3_i_i_i);
-int32_445->setCallingConv(CallingConv::C);
-int32_445->setTailCall(false);AttrListPtr int32_445_PAL;
-int32_445->setAttributes(int32_445_PAL);
-
-std::vector<Value*> void_446_params;
-void_446_params.push_back(const_int1_86);
-void_446_params.push_back(const_int1_86);
-void_446_params.push_back(const_int1_86);
-void_446_params.push_back(const_int1_86);
-void_446_params.push_back(const_int1_86);
-CallInst* void_446 = CallInst::Create(func_llvm_memory_barrier, void_446_params.begin(), void_446_params.end(), "", label_bb3_i_i_i);
-void_446->setCallingConv(CallingConv::C);
-void_446->setTailCall(false);AttrListPtr void_446_PAL;
-void_446->setAttributes(void_446_PAL);
+CallInst* void_447 = CallInst::Create(func__ZN3mvm6Thread5yieldEv, "", label_bb3_i_i_i);
+void_447->setCallingConv(CallingConv::C);
+void_447->setTailCall(false);AttrListPtr void_447_PAL;
+void_447->setAttributes(void_447_PAL);
+
+std::vector<Value*> void_448_params;
+void_448_params.push_back(const_int1_90);
+void_448_params.push_back(const_int1_90);
+void_448_params.push_back(const_int1_90);
+void_448_params.push_back(const_int1_90);
+void_448_params.push_back(const_int1_90);
+CallInst* void_448 = CallInst::Create(func_llvm_memory_barrier, void_448_params.begin(), void_448_params.end(), "", label_bb3_i_i_i);
+void_448->setCallingConv(CallingConv::C);
+void_448->setTailCall(false);AttrListPtr void_448_PAL;
+void_448->setAttributes(void_448_PAL);
+
+std::vector<Value*> int32_449_params;
+int32_449_params.push_back(ptr_432);
+int32_449_params.push_back(const_int32_59);
+int32_449_params.push_back(const_int32_54);
+CallInst* int32_449 = CallInst::Create(func_llvm_atomic_cmp_swap_i32_p0i32, int32_449_params.begin(), int32_449_params.end(), "", label_bb3_i_i_i);
+int32_449->setCallingConv(CallingConv::C);
+int32_449->setTailCall(false);AttrListPtr int32_449_PAL;
+int32_449->setAttributes(int32_449_PAL);
+
+std::vector<Value*> void_450_params;
+void_450_params.push_back(const_int1_90);
+void_450_params.push_back(const_int1_90);
+void_450_params.push_back(const_int1_90);
+void_450_params.push_back(const_int1_90);
+void_450_params.push_back(const_int1_90);
+CallInst* void_450 = CallInst::Create(func_llvm_memory_barrier, void_450_params.begin(), void_450_params.end(), "", label_bb3_i_i_i);
+void_450->setCallingConv(CallingConv::C);
+void_450->setTailCall(false);AttrListPtr void_450_PAL;
+void_450->setAttributes(void_450_PAL);
 
-ICmpInst* int1_447 = new ICmpInst(*label_bb3_i_i_i, ICmpInst::ICMP_EQ, int32_445, const_int32_55, "");
-BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_bb3_i_i_i, int1_447, label_bb3_i_i_i);
+ICmpInst* int1_451 = new ICmpInst(*label_bb3_i_i_i, ICmpInst::ICMP_EQ, int32_449, const_int32_59, "");
+BranchInst::Create(label_true_IF_NULL_i1_i_i_i_i, label_bb3_i_i_i, int1_451, label_bb3_i_i_i);
 
 // Block false IFNE.i7.i.i.i.i (label_false_IFNE_i7_i_i_i_i)
-std::vector<Value*> ptr_449_indices;
-ptr_449_indices.push_back(const_int32_55);
-ptr_449_indices.push_back(const_int32_55);
-Instruction* ptr_449 = GetElementPtrInst::Create(ptr_421, ptr_449_indices.begin(), ptr_449_indices.end(), "", label_false_IFNE_i7_i_i_i_i);
-CastInst* ptr__c1_i6_i_i_i_i = new IntToPtrInst(int32_402, PointerTy_26, ".c1.i6.i.i.i.i", label_false_IFNE_i7_i_i_i_i);
- new StoreInst(ptr__c1_i6_i_i_i_i, ptr_449, false, label_false_IFNE_i7_i_i_i_i);
+std::vector<Value*> ptr_453_indices;
+ptr_453_indices.push_back(const_int32_59);
+ptr_453_indices.push_back(const_int32_59);
+Instruction* ptr_453 = GetElementPtrInst::Create(ptr_425, ptr_453_indices.begin(), ptr_453_indices.end(), "", label_false_IFNE_i7_i_i_i_i);
+CastInst* ptr__c1_i6_i_i_i_i = new IntToPtrInst(int32_406, PointerTy_30, ".c1.i6.i.i.i.i", label_false_IFNE_i7_i_i_i_i);
+ new StoreInst(ptr__c1_i6_i_i_i_i, ptr_453, false, label_false_IFNE_i7_i_i_i_i);
 BranchInst::Create(label_GOTO_or_IF_1_i3_i_i_i_i, label_false_IFNE_i7_i_i_i_i);
 
 // Block true IFNULL3.i8.i.i.i.i (label_true_IFNULL3_i8_i_i_i_i)
-GetElementPtrInst* ptr_452 = GetElementPtrInst::Create(ptr_408, const_int32_61, "", label_true_IFNULL3_i8_i_i_i_i);
-CastInst* ptr_453 = new BitCastInst(ptr_452, PointerTy_24, "", label_true_IFNULL3_i8_i_i_i_i);
- new StoreInst(const_int32_55, ptr_453, false, label_true_IFNULL3_i8_i_i_i_i);
+GetElementPtrInst* ptr_456 = GetElementPtrInst::Create(ptr_412, const_int32_65, "", label_true_IFNULL3_i8_i_i_i_i);
+CastInst* ptr_457 = new BitCastInst(ptr_456, PointerTy_28, "", label_true_IFNULL3_i8_i_i_i_i);
+ new StoreInst(const_int32_59, ptr_457, false, label_true_IFNULL3_i8_i_i_i_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_true_IFNULL3_i8_i_i_i_i);
 
 // Block false IFNE.i (label_false_IFNE_i)
-LoadInst* ptr_456 = new LoadInst(const_ptr_90, "", false, label_false_IFNE_i);
-CastInst* int32_457 = new PtrToIntInst(ptr_456, IntegerType::get(mod->getContext(), 32), "", label_false_IFNE_i);
-GetElementPtrInst* ptr_458 = GetElementPtrInst::Create(ptr_287, const_int32_50, "", label_false_IFNE_i);
-CastInst* ptr_459 = new BitCastInst(ptr_458, PointerTy_0, "", label_false_IFNE_i);
-LoadInst* int8_460 = new LoadInst(ptr_459, "", false, label_false_IFNE_i);
-BinaryOperator* int8_461 = BinaryOperator::Create(Instruction::And, int8_460, const_int8_78, "", label_false_IFNE_i);
-CastInst* int8_462 = new TruncInst(int32_457, IntegerType::get(mod->getContext(), 8), "", label_false_IFNE_i);
-BinaryOperator* int8_463 = BinaryOperator::Create(Instruction::Or, int8_461, int8_462, "", label_false_IFNE_i);
- new StoreInst(int8_463, ptr_459, false, label_false_IFNE_i);
+LoadInst* ptr_460 = new LoadInst(const_ptr_94, "", false, label_false_IFNE_i);
+CastInst* int32_461 = new PtrToIntInst(ptr_460, IntegerType::get(mod->getContext(), 32), "", label_false_IFNE_i);
+GetElementPtrInst* ptr_462 = GetElementPtrInst::Create(ptr_291, const_int32_54, "", label_false_IFNE_i);
+CastInst* ptr_463 = new BitCastInst(ptr_462, PointerTy_0, "", label_false_IFNE_i);
+LoadInst* int8_464 = new LoadInst(ptr_463, "", false, label_false_IFNE_i);
+BinaryOperator* int8_465 = BinaryOperator::Create(Instruction::And, int8_464, const_int8_82, "", label_false_IFNE_i);
+CastInst* int8_466 = new TruncInst(int32_461, IntegerType::get(mod->getContext(), 8), "", label_false_IFNE_i);
+BinaryOperator* int8_467 = BinaryOperator::Create(Instruction::Or, int8_465, int8_466, "", label_false_IFNE_i);
+ new StoreInst(int8_467, ptr_463, false, label_false_IFNE_i);
 BranchInst::Create(label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit, label_false_IFNE_i);
 
 // Block JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II.exit (label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit)
-LoadInst* ptr_466 = new LoadInst(ptr_res, "", false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit);
-CastInst* ptr_467 = new BitCastInst(ptr_466, PointerTy_0, "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit);
-ReturnInst::Create(mod->getContext(), ptr_467, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit);
+LoadInst* ptr_470 = new LoadInst(ptr_res, "", false, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit);
+CastInst* ptr_471 = new BitCastInst(ptr_470, PointerTy_0, "", label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit);
+ReturnInst::Create(mod->getContext(), ptr_471, label_JnJVM_org_mmtk_plan_marksweep_MSMutator_postAlloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II_exit);
 
 // Resolve Forward References
-fwdref_355->replaceAllUsesWith(int1_364); delete fwdref_355;
-fwdref_433->replaceAllUsesWith(int32_435); delete fwdref_433;
-fwdref_357->replaceAllUsesWith(int32_359); delete fwdref_357;
-fwdref_431->replaceAllUsesWith(int1_440); delete fwdref_431;
+fwdref_361->replaceAllUsesWith(int32_363); delete fwdref_361;
+fwdref_359->replaceAllUsesWith(int1_368); delete fwdref_359;
+fwdref_437->replaceAllUsesWith(int32_439); delete fwdref_437;
+fwdref_435->replaceAllUsesWith(int1_444); delete fwdref_435;
 return func_gcmalloc;
 }

Modified: vmkit/trunk/lib/Mvm/GCMmap2/MutatorThread.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/GCMmap2/MutatorThread.h?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/GCMmap2/MutatorThread.h (original)
+++ vmkit/trunk/lib/Mvm/GCMmap2/MutatorThread.h Tue Apr 13 11:24:13 2010
@@ -16,6 +16,8 @@
 namespace mvm {
 
 class MutatorThread : public mvm::Thread {
+public:
+  MutatorThread() : mvm::Thread() {}
 };
 
 }

Modified: vmkit/trunk/lib/Mvm/MMTk/MutatorThread.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/MMTk/MutatorThread.h?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/MMTk/MutatorThread.h (original)
+++ vmkit/trunk/lib/Mvm/MMTk/MutatorThread.h Tue Apr 13 11:24:13 2010
@@ -18,6 +18,7 @@
 
 class MutatorThread : public mvm::Thread {
 public:
+  MutatorThread() : mvm::Thread() {}
   mvm::BumpPtrAllocator Allocator;
   uintptr_t MutatorContext;
   

Modified: vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp Tue Apr 13 11:24:13 2010
@@ -25,7 +25,8 @@
 }
 
 extern "C" void Java_org_j3_mmtk_ObjectModel_writeAvailableBitsWord__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Word_2 (JavaObject* OM, JavaObject* obj, uintptr_t val) {
-  assert((val & ~mvm::GCMask) == (((uintptr_t*)obj)[1] & ~mvm::GCMask) && "GC bits do not fit");
+  // Comment the assert, it prevents MMTkInline.inc to be self-contained.
+  // assert((val & ~mvm::GCMask) == (((uintptr_t*)obj)[1] & ~mvm::GCMask) && "GC bits do not fit");
 #if defined(__PPC__)
   ((uint8_t*)obj)[7] &= ~mvm::GCBitMask;
   ((uint8_t*)obj)[7] |= val;

Modified: vmkit/trunk/tools/vmjc/vmjc.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/vmjc.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/tools/vmjc/vmjc.cpp (original)
+++ vmkit/trunk/tools/vmjc/vmjc.cpp Tue Apr 13 11:24:13 2010
@@ -108,154 +108,146 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  try {
-    cl::ParseCommandLineOptions(argc, argv, "vmkit .class -> .ll compiler\n");
-    sys::PrintStackTraceOnErrorSignal();
+  cl::ParseCommandLineOptions(argc, argv, "vmkit .class -> .ll compiler\n");
+  sys::PrintStackTraceOnErrorSignal();
 
-    std::string ErrorMessage;
+  std::string ErrorMessage;
 
     
-    if (InputFilename == "-") {
-      cl::PrintHelpMessage();
-      return 0;
-    }
+  if (InputFilename == "-") {
+    cl::PrintHelpMessage();
+    return 0;
+  }
    
-    // Disable cross-compiling for now.
-    if (false) {
-      Module* TheModule = new Module("bootstrap module",
-                                     *(new llvm::LLVMContext()));
-      if (!TargetTriple.empty())
-        TheModule->setTargetTriple(TargetTriple);
-      else
-        TheModule->setTargetTriple(mvm::MvmModule::getHostTriple());
+  // Disable cross-compiling for now.
+  if (false) {
+    Module* TheModule = new Module("bootstrap module",
+                                   *(new llvm::LLVMContext()));
+    if (!TargetTriple.empty())
+      TheModule->setTargetTriple(TargetTriple);
+    else
+      TheModule->setTargetTriple(mvm::MvmModule::getHostTriple());
 
 #if 0
-      // explicitly specified an architecture to compile for.
-      const Target *TheTarget = 0;
-      if (!MArch.empty()) {
-        for (TargetRegistry::iterator it = TargetRegistry::begin(),
-             ie = TargetRegistry::end(); it != ie; ++it) {
-          if (MArch == it->getName()) {
-            TheTarget = &*it;
-            break;
-          }
+    // explicitly specified an architecture to compile for.
+    const Target *TheTarget = 0;
+    if (!MArch.empty()) {
+      for (TargetRegistry::iterator it = TargetRegistry::begin(),
+           ie = TargetRegistry::end(); it != ie; ++it) {
+        if (MArch == it->getName()) {
+          TheTarget = &*it;
+          break;
         }
+      }
 
-        if (!TheTarget) {
-          errs() << argv[0] << ": error: invalid target '" << MArch << "'.\n";
-          return 1;
-        }
-      } else {
-        std::string Err;
-        TheTarget =
-          TargetRegistry::getClosestStaticTargetForModule(*TheModule, Err);
-        if (TheTarget == 0) {
-          errs() << argv[0] << ": error auto-selecting target for module '"
-                 << Err << "'.  Please use the -march option to explicitly "
-                 << "pick a target.\n";
-          return 1;
-        }
+      if (!TheTarget) {
+        errs() << argv[0] << ": error: invalid target '" << MArch << "'.\n";
+        return 1;
       }
+    } else {
+      std::string Err;
+      TheTarget =
+        TargetRegistry::getClosestStaticTargetForModule(*TheModule, Err);
+      if (TheTarget == 0) {
+        errs() << argv[0] << ": error auto-selecting target for module '"
+               << Err << "'.  Please use the -march option to explicitly "
+               << "pick a target.\n";
+        return 1;
+      }
+    }
 
-      std::string FeaturesStr;
-      std::auto_ptr<TargetMachine>
-        target(TheTarget->createTargetMachine(*TheModule, FeaturesStr));
-      assert(target.get() && "Could not allocate target machine!");
-      TargetMachine &Target = *target.get();
-
-      // Install information about target datalayout stuff into the module for
-      // optimizer use.
-      TheModule->setDataLayout(Target.getTargetData()->
-                               getStringRepresentation());
+    std::string FeaturesStr;
+    std::auto_ptr<TargetMachine>
+      target(TheTarget->createTargetMachine(*TheModule, FeaturesStr));
+    assert(target.get() && "Could not allocate target machine!");
+    TargetMachine &Target = *target.get();
+
+    // Install information about target datalayout stuff into the module for
+    // optimizer use.
+    TheModule->setDataLayout(Target.getTargetData()->
+                             getStringRepresentation());
 
 
-      mvm::MvmModule::initialise(CodeGenOpt::Default, TheModule, &Target);
+    mvm::MvmModule::initialise(CodeGenOpt::Default, TheModule, &Target);
 #endif
-    } else {
-      mvm::MvmModule::initialise();
-    }
+  } else {
+    mvm::MvmModule::initialise();
+  }
 
-    JavaAOTCompiler* Comp = new JavaAOTCompiler("AOT");
+  JavaAOTCompiler* Comp = new JavaAOTCompiler("AOT");
 
-    mvm::Collector::initialise();
+  mvm::Collector::initialise();
 
-    JnjvmClassLoader* JCL = mvm::VirtualMachine::initialiseJVM(Comp, false);
+  JnjvmClassLoader* JCL = mvm::VirtualMachine::initialiseJVM(Comp, false);
 
-    if (DisableExceptions) Comp->disableExceptions();
-    if (DisableStubs) Comp->generateStubs = false;
-    if (AssumeCompiled) Comp->assumeCompiled = true;
-    if (DisableCooperativeGC) Comp->disableCooperativeGC();
+  if (DisableExceptions) Comp->disableExceptions();
+  if (DisableStubs) Comp->generateStubs = false;
+  if (AssumeCompiled) Comp->assumeCompiled = true;
+  if (DisableCooperativeGC) Comp->disableCooperativeGC();
     
-    mvm::BumpPtrAllocator A;
-    Jnjvm* vm = new(A, "Bootstrap loader") Jnjvm(A, (JnjvmBootstrapLoader*)JCL);
+  mvm::BumpPtrAllocator A;
+  Jnjvm* vm = new(A, "Bootstrap loader") Jnjvm(A, (JnjvmBootstrapLoader*)JCL);
   
-    for (std::vector<std::string>::iterator i = Properties.begin(),
-         e = Properties.end(); i != e; ++i) {
+  for (std::vector<std::string>::iterator i = Properties.begin(),
+       e = Properties.end(); i != e; ++i) {
 
-      char* key = new char [(*i).size()+1];
-      strcpy(key, (*i).c_str());
-      char* value = strchr(key, '=');
-      if (!value) {
-        delete[] key;
-      } else {
-        value[0] = 0;
-        vm->addProperty(key, &value[1]);
-      }
+    char* key = new char [(*i).size()+1];
+    strcpy(key, (*i).c_str());
+    char* value = strchr(key, '=');
+    if (!value) {
+      delete[] key;
+    } else {
+      value[0] = 0;
+      vm->addProperty(key, &value[1]);
     }
+  }
 
-    Comp->clinits = &WithClinit;
-    Comp->compileFile(vm, InputFilename.c_str());
+  Comp->clinits = &WithClinit;
+  Comp->compileFile(vm, InputFilename.c_str());
 
-    if (!MainClass.empty()) {
-      Comp->generateMain(MainClass.c_str(), WithJIT);
-    }
+  if (!MainClass.empty()) {
+    Comp->generateMain(MainClass.c_str(), WithJIT);
+  }
 
-    if (PrintStats)
-      Comp->printStats();
+  if (PrintStats)
+    Comp->printStats();
 
-    // Infer the output filename if needed.
-    if (OutputFilename.empty()) {
-      if (InputFilename == "-") {
-        OutputFilename = "-";
+  // Infer the output filename if needed.
+  if (OutputFilename.empty()) {
+    if (InputFilename == "-") {
+      OutputFilename = "-";
+    } else {
+      std::string IFN = InputFilename;
+      int Len = IFN.length();
+      if (IFN[Len-3] == '.' && IFN[Len-2] == 'l' && IFN[Len-1] == 'l') {
+        // Source ends in .ll
+        OutputFilename = std::string(IFN.begin(), IFN.end()-3);
       } else {
-        std::string IFN = InputFilename;
-        int Len = IFN.length();
-        if (IFN[Len-3] == '.' && IFN[Len-2] == 'l' && IFN[Len-1] == 'l') {
-          // Source ends in .ll
-          OutputFilename = std::string(IFN.begin(), IFN.end()-3);
-        } else {
-          OutputFilename = IFN;   // Append a .bc to it
-        }   
-        OutputFilename += ".bc";
+        OutputFilename = IFN;   // Append a .bc to it
       }   
-    }
+      OutputFilename += ".bc";
+    }   
+  }
   
-    std::string ErrorInfo;
-    std::auto_ptr<raw_ostream> Out 
+  std::string ErrorInfo;
+  std::auto_ptr<raw_ostream> Out 
     (new raw_fd_ostream(OutputFilename.c_str(), ErrorInfo,
                         raw_fd_ostream::F_Binary));
-    if (!ErrorInfo.empty()) {
-      errs() << ErrorInfo << '\n';
-      return 1;
-    }
+  if (!ErrorInfo.empty()) {
+    errs() << ErrorInfo << '\n';
+    return 1;
+  }
   
   
-    // Make sure that the Out file gets unlinked from the disk if we get a
-    // SIGINT.
-    if (OutputFilename != "-")
-      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
-    if (!DisableOutput)
-      if (Force || !CheckBitcodeOutputToConsole(*Out, true))
-        WriteBitcodeToFile(Comp->getLLVMModule(), *Out);
+  // Make sure that the Out file gets unlinked from the disk if we get a
+  // SIGINT.
+  if (OutputFilename != "-")
+    sys::RemoveFileOnSignal(sys::Path(OutputFilename));
+
+  if (!DisableOutput)
+    if (Force || !CheckBitcodeOutputToConsole(*Out, true))
+      WriteBitcodeToFile(Comp->getLLVMModule(), *Out);
 
-    return 0;
-
-  } catch (const std::string& msg) {
-    errs() << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    errs() << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  return 1;
+  return 0;
 }
 

Modified: vmkit/trunk/tools/vmkit/CommandLine.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmkit/CommandLine.cpp?rev=101135&r1=101134&r2=101135&view=diff
==============================================================================
--- vmkit/trunk/tools/vmkit/CommandLine.cpp (original)
+++ vmkit/trunk/tools/vmkit/CommandLine.cpp Tue Apr 13 11:24:13 2010
@@ -167,11 +167,7 @@
       Thread::start(&tid, (int (*)(void *))startApp, thread_arg);
 #else
       VirtualMachine* VM = func(CU);
-      try {
-        VM->runApplication(argc, argv);
-      } catch(...) {
-        printf("Caught exception when running the VM");
-      }
+      VM->runApplication(argc, argv);
 #endif
     }
   }





More information about the vmkit-commits mailing list