aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/CodeGen/X86/2011-03-08-Sched-crash.ll1915
1 files changed, 8 insertions, 1907 deletions
diff --git a/test/CodeGen/X86/2011-03-08-Sched-crash.ll b/test/CodeGen/X86/2011-03-08-Sched-crash.ll
index 22b3114726..6329ae670e 100644
--- a/test/CodeGen/X86/2011-03-08-Sched-crash.ll
+++ b/test/CodeGen/X86/2011-03-08-Sched-crash.ll
@@ -1,1733 +1,12 @@
; RUN: llc < %s
-; ModuleID = 'bugpoint-reduced-simplified.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
target triple = "i386-apple-darwin9.0.0"
-%0 = type { %"class.JSC::ExecutablePool"**, i32, i32, %2 }
-%1 = type { %"class.js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry"*, i32, i32, %2 }
-%2 = type { %"union.js::AlignedStorage<16>::U" }
-%3 = type { i16* }
-%4 = type { %5 }
-%5 = type { %6, %6 }
-%6 = type { %struct.JSString* }
-%7 = type { %"struct.js::gc::ArenaHeader" }
-%8 = type { double }
-%9 = type { %7, %10 }
-%10 = type { [4072 x %"union.js::gc::ThingOrCell"] }
-%11 = type { %"struct.js::Shape"* }
-%12 = type { i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*)* }
-%13 = type { i32 (%struct.JSContext*, %struct.JSObject*, i32, i32, %"class.js::Value"*)* }
-%14 = type { %"class.js::KidsPointer" }
-%15 = type { %struct.JSObject* }
-%16 = type { %"class.JSC::ExecutablePool"**, i32, i32, %"class.js::Value" }
-%17 = type { %"struct.js::VMSideExit"**, i32, i32, %"class.nanojit::Allocator"* }
-%18 = type { %"class.js::Value"*, i32, i32, %"class.nanojit::Allocator"* }
-%19 = type { %"struct.js::Shape"**, i32, i32, %"class.nanojit::Allocator"* }
-%20 = type { %"class.nanojit::CodeList"* }
-%21 = type { %"class.nanojit::Allocator"*, i32, %22** }
-%22 = type opaque
-%23 = type { %"class.nanojit::Allocator"*, i32, %24** }
-%24 = type opaque
-%25 = type { %"class.nanojit::Allocator"*, i32, %26** }
-%26 = type opaque
-%27 = type { %"class.nanojit::Allocator"*, i32, %28** }
-%28 = type opaque
-%29 = type { %30 }
-%30 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::FrameInfo *const, js::HashSet<js::FrameInfo *, js::FrameInfoCache::HashPolicy, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%31 = type { i8**, i32, i32, %"class.nanojit::Allocator"* }
-%32 = type { %33 }
-%33 = type { [4 x i8], i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::Entry, js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::MapHashPolicy, js::ContextAllocPolicy>::Entry"* }
-%34 = type { [4 x i8], i32*, i32, i32, %"class.js::Value" }
-%35 = type { [4 x i8], i8*, i32, i32, %36 }
-%36 = type { %"union.js::AlignedStorage<256>::U" }
-%37 = type { %struct.JSScript* }
-%38 = type { i16*, i32, i32, %"class.nanojit::Allocator"* }
-%39 = type { %40 }
-%40 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%41 = type { %42 }
-%42 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%43 = type { %44 }
-%44 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<JSScript *const, js::HashSet<JSScript *, js::DefaultHasher<JSScript *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%45 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<js::Value, js::Value, js::WrapperHasher, js::SystemAllocPolicy>::Entry, js::HashMap<js::Value, js::Value, js::WrapperHasher, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%46 = type { i8*, i8*, i8* }
-%47 = type { %48 }
-%48 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::EmptyShape *const, js::HashSet<js::EmptyShape *, js::DefaultHasher<js::EmptyShape *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%49 = type { %50 }
-%50 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<JSFunction *, JSString *, js::DefaultHasher<JSFunction *>, js::SystemAllocPolicy>::Entry, js::HashMap<JSFunction *, JSString *, js::DefaultHasher<JSFunction *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%51 = type { %struct.JSCompartment**, i32, i32, %"class.js::Value" }
-%52 = type { %53 }
-%53 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::gc::Chunk *const, js::HashSet<js::gc::Chunk *, js::GCChunkHasher, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%54 = type { %55 }
-%55 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<void *, js::RootInfo, js::DefaultHasher<void *>, js::SystemAllocPolicy>::Entry, js::HashMap<void *, js::RootInfo, js::DefaultHasher<void *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%56 = type { %57 }
-%57 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<void *, unsigned int, js::GCPtrHasher, js::SystemAllocPolicy>::Entry, js::HashMap<void *, unsigned int, js::GCPtrHasher, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%58 = type { i32 (%struct.JSContext*, i32, %"class.js::Value"*)*, %"struct.js::Class"*, %struct.JSNativeTraceInfo* }
-%59 = type { [18 x i32] }
-%60 = type { i8***, i32, i32, %61 }
-%61 = type { %"union.js::AlignedStorage<64>::U" }
-%62 = type { %63 }
-%63 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<js::HashMap<void *, JSThread *, js::DefaultHasher<void *>, js::SystemAllocPolicy>::Entry, js::HashMap<void *, JSThread *, js::DefaultHasher<void *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%64 = type { %65 }
-%65 = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<const unsigned long, js::HashSet<unsigned long, js::AtomHasher, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%66 = type { %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom* }
-%67 = type { %"struct.js::SlotMap::SlotInfo"*, i32, i32, %"class.nanojit::Allocator"* }
-%68 = type { %struct.JSXMLElemVar }
-%69 = type { [36 x i8], [38 x i8], [72 x i8] }
-%70 = type { [41 x i8] }
-%71 = type { [38 x i8] }
-%72 = type { [7 x i8], [15 x i8] }
-%73 = type { [8 x i8], [12 x i8], [16 x i8], [21 x i8], [26 x i8], [31 x i8], [36 x i8], [41 x i8], [46 x i8] }
-%74 = type { [7 x i8], [7 x i8], [7 x i8], [7 x i8], [7 x i8], [7 x i8], [7 x i8], [7 x i8], [7 x i8] }
-%75 = type { [4 x i8] }
-%76 = type { [5 x i8] }
-%77 = type { i32, void ()* }
-%78 = type { i8*, i32, i32, %"class.nanojit::Allocator"* }
-%79 = type { i32*, i32, i32, %"class.nanojit::Allocator"* }
-%80 = type { i32, i1 }
-%class.DSTOffsetCache = type { i64, i64, i64, i64, i64, i64 }
-%"class.JSC::ExecutableAllocator" = type { %0 }
-%"class.JSC::ExecutablePool" = type { i32, i8, i32, i8*, i8*, %1 }
-%"class.JSC::MacroAssemblerCodePtr" = type { i8* }
-%"class.JSC::MacroAssemblerCodeRef" = type { %"class.JSC::MacroAssemblerCodePtr", %"class.JSC::ExecutablePool"*, i32 }
-%"class.avmplus::AvmConsole" = type { i8 }
-%"class.avmplus::AvmCore" = type { %"class.avmplus::AvmInterpreter", %"class.avmplus::AvmConsole" }
-%"class.avmplus::AvmInterpreter" = type { %"class.avmplus::AvmConsole", %"class.avmplus::AvmConsole"* }
-%"class.avmplus::BitSet" = type { i32, i32* }
-%"class.js::AutoGCRooter" = type { %"class.js::AutoGCRooter"*, i32, %struct.JSContext* }
-%"class.js::AutoIdRooter" = type { [12 x i8], i32 }
-%"class.js::AutoIdVector" = type { [60 x i8] }
-%"class.js::AutoValueRooter" = type { [12 x i8], [4 x i8], %"class.js::Value" }
-%"class.js::Bindings" = type { %"struct.js::Shape"*, i16, i16, i16 }
-%"class.js::BoxArg" = type { %"class.js::TraceRecorder"*, %"struct.js::tjit::Address" }
-%"class.js::CaptureTypesVisitor" = type { %struct.JSContext*, i8*, i8*, %"class.js::Oracle"* }
-%"class.js::ClearSlotsVisitor" = type { %"class.js::Tracker"* }
-%"class.js::ContextAllocPolicy" = type { %struct.JSContext* }
-%"class.js::DefaultSlotMap" = type { [28 x i8] }
-%"class.js::DetermineTypesVisitor" = type { %"class.js::TraceRecorder"*, i8* }
-%"class.js::DtoaCache" = type { double, i32, %struct.JSString* }
-%"class.js::FlushNativeStackFrameVisitor" = type { %struct.JSContext*, i8*, i8*, double* }
-%"class.js::FrameInfoCache" = type { %29, %"class.js::VMAllocator"* }
-%"class.js::GCChunkAllocator" = type { i32 (...)** }
-%"class.js::GCHelperThread" = type { %struct.PRThread*, %struct.PRCondVar*, %struct.PRCondVar*, i8, i8, %60, i8**, i8** }
-%"class.js::HashMap" = type { %45 }
-%"class.js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::Entry" = type { %"class.nanojit::LIns"*, %struct.JSObject* }
-%"class.js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry" = type { i8*, %"class.js::LoopProfile"* }
-%"class.js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry" = type { i8*, i32 }
-%"class.js::HashMap<void *, JSThread *, js::DefaultHasher<void *>, js::SystemAllocPolicy>::Entry" = type { i8*, %struct.JSThread* }
-%"class.js::HashSet" = type { %"class.js::detail::HashTable" }
-%"class.js::ImportBoxedStackSlotVisitor" = type { %"class.js::TraceRecorder"*, %"class.nanojit::LIns"*, i32, i8*, %struct.JSStackFrame* }
-%"class.js::KidsPointer" = type { i32 }
-%"class.js::LoopProfile" = type { %"struct.js::TraceMonitor"*, %struct.JSScript*, %struct.JSStackFrame*, i8*, i8*, i32, i8, i8, i8, i8, i8, [11 x i32], i32, [11 x i32], i32, double, double, i8, i8, [8 x %"struct.js::LoopProfile::InnerLoop"], i32, [8 x %"struct.js::LoopProfile::InnerLoop"], i32, [6 x %"struct.js::LoopProfile::StackValue"], i32 }
-%"class.js::MathCache" = type { [4096 x %"struct.js::MathCache::Entry"] }
-%"class.js::NativeIterCache" = type { [256 x %struct.JSObject*], %struct.JSObject* }
-%"class.js::Oracle" = type { %"class.avmplus::BitSet", %"class.avmplus::BitSet", %"class.avmplus::BitSet", %"class.avmplus::BitSet" }
-%"class.js::PropertyCache" = type { [4096 x %"struct.js::PropertyCacheEntry"], i32 }
-%"class.js::PropertyTree" = type { %struct.JSCompartment*, %struct.JSArenaPool, %"struct.js::Shape"* }
-%"class.js::Queue" = type { %"struct.js::TreeFragment"**, i32, i32, %"class.nanojit::Allocator"* }
-%"class.js::SlotMap" = type { i32 (...)**, %"class.js::TraceRecorder"*, %struct.JSContext*, %67 }
-%"class.js::StackSegment" = type { %struct.JSContext*, %"class.js::StackSegment"*, %"class.js::StackSegment"*, %struct.JSStackFrame*, %struct.JSFrameRegs*, %struct.JSObject*, i8, i8* }
-%"class.js::StackSpace" = type { %"class.js::Value"*, %"class.js::Value"*, %"class.js::StackSegment"*, %"class.js::Value"* }
-%"class.js::TraceRecorder" = type { %struct.JSContext*, %"struct.js::TraceMonitor"*, %"class.js::Oracle"*, %"class.js::VMFragment"*, %"struct.js::TreeFragment"*, %struct.JSObject*, %struct.JSScript*, i8*, i32, %"struct.js::VMSideExit"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, i32, i32, %"class.js::TypeMap", %"class.nanojit::LirBuffer"*, %"struct.js::VMAllocator::Mark", i32, %"class.js::Tracker", %"class.js::Tracker", %"class.js::Value"*, i32, %struct.JSAtom**, %"class.js::Value"*, %"class.nanojit::LIns"*, %31, i8, %"class.js::Queue", %32, i32, i8, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %struct.JSSpecializedNative*, %"class.js::Value"*, %"class.nanojit::LIns"*, %34, i8, %struct.JSSpecializedNative, %35, %"class.js::tjit::Writer" }
-%"class.js::Tracker" = type { %"struct.js::Tracker::TrackerPage"* }
-%"class.js::TypeMap" = type { [16 x i8], %"class.js::Oracle"* }
-%"class.js::VMAllocator" = type { [12 x i8], i8, i32, i8*, i32, i32 }
-%"class.js::VMFragment" = type { [28 x i8], %"struct.js::TreeFragment"* }
-%"class.js::Value" = type { %"union.js::AlignedStorage<1>::U" }
-%"class.js::Vector" = type { %struct.JSGenerator**, i32, i32, %"class.js::Value" }
-%"class.js::detail::HashTable" = type { i32, i32, i32, i32, i32, %"class.js::detail::HashTable<JSObject *const, js::HashSet<JSObject *, js::DefaultHasher<JSObject *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%"class.js::detail::HashTable<JSObject *const, js::HashSet<JSObject *, js::DefaultHasher<JSObject *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<JSScript *const, js::HashSet<JSScript *, js::DefaultHasher<JSScript *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::AddPtr" = type { [4 x i8], i32 }
-%"class.js::detail::HashTable<JSScript *const, js::HashSet<JSScript *, js::DefaultHasher<JSScript *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry" = type { i32, %struct.JSScript* }
-%"class.js::detail::HashTable<JSScript *const, js::HashSet<JSScript *, js::DefaultHasher<JSScript *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Ptr" = type { %"class.js::detail::HashTable<JSScript *const, js::HashSet<JSScript *, js::DefaultHasher<JSScript *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%"class.js::detail::HashTable<const unsigned long, js::HashSet<unsigned long, js::AtomHasher, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<js::EmptyShape *const, js::HashSet<js::EmptyShape *, js::DefaultHasher<js::EmptyShape *>, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<js::FrameInfo *const, js::HashSet<js::FrameInfo *, js::FrameInfoCache::HashPolicy, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry" = type { i32, %"struct.js::FrameInfo"* }
-%"class.js::detail::HashTable<js::FrameInfo *const, js::HashSet<js::FrameInfo *, js::FrameInfoCache::HashPolicy, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Ptr" = type { %"class.js::detail::HashTable<js::FrameInfo *const, js::HashSet<js::FrameInfo *, js::FrameInfoCache::HashPolicy, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry"* }
-%"class.js::detail::HashTable<js::HashMap<JSFunction *, JSString *, js::DefaultHasher<JSFunction *>, js::SystemAllocPolicy>::Entry, js::HashMap<JSFunction *, JSString *, js::DefaultHasher<JSFunction *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<js::HashMap<js::Value, js::Value, js::WrapperHasher, js::SystemAllocPolicy>::Entry, js::HashMap<js::Value, js::Value, js::WrapperHasher, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::Entry, js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::MapHashPolicy, js::ContextAllocPolicy>::Entry" = type { i32, %"class.js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::Entry" }
-%"class.js::detail::HashTable<js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::Entry, js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::MapHashPolicy, js::ContextAllocPolicy>::Ptr" = type { %"class.js::detail::HashTable<js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::Entry, js::HashMap<nanojit::LIns *, JSObject *, js::DefaultHasher<nanojit::LIns *>, js::ContextAllocPolicy>::MapHashPolicy, js::ContextAllocPolicy>::Entry"* }
-%"class.js::detail::HashTable<js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type { i32, %"class.js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry" }
-%"class.js::detail::HashTable<js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Ptr" = type { %"class.js::detail::HashTable<js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, js::LoopProfile *, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%"class.js::detail::HashTable<js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type { i32, %"class.js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry" }
-%"class.js::detail::HashTable<js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Ptr" = type { %"class.js::detail::HashTable<js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry, js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry"* }
-%"class.js::detail::HashTable<js::HashMap<void *, JSThread *, js::DefaultHasher<void *>, js::SystemAllocPolicy>::Entry, js::HashMap<void *, JSThread *, js::DefaultHasher<void *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type { i32, %"class.js::HashMap<void *, JSThread *, js::DefaultHasher<void *>, js::SystemAllocPolicy>::Entry" }
-%"class.js::detail::HashTable<js::HashMap<void *, js::RootInfo, js::DefaultHasher<void *>, js::SystemAllocPolicy>::Entry, js::HashMap<void *, js::RootInfo, js::DefaultHasher<void *>, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<js::HashMap<void *, unsigned int, js::GCPtrHasher, js::SystemAllocPolicy>::Entry, js::HashMap<void *, unsigned int, js::GCPtrHasher, js::SystemAllocPolicy>::MapHashPolicy, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::detail::HashTable<js::gc::Chunk *const, js::HashSet<js::gc::Chunk *, js::GCChunkHasher, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::Entry" = type opaque
-%"class.js::mjit::JaegerCompartment" = type { %"class.JSC::ExecutableAllocator"*, %"struct.js::mjit::Trampolines", %"struct.js::VMFrame"* }
-%"class.js::tjit::Writer" = type { %"class.nanojit::Allocator"*, %"class.nanojit::LirBuffer"*, %"class.nanojit::LirFilter"*, %"class.nanojit::CseFilter"*, %"class.nanojit::LogControl"* }
-%"class.nanojit::AR" = type { i32, [4096 x %"class.nanojit::LIns"*] }
-%"class.nanojit::Allocator" = type { %"class.nanojit::Allocator::Chunk"*, i8*, i8* }
-%"class.nanojit::Allocator::Chunk" = type { %"class.nanojit::Allocator::Chunk"*, [1 x i64] }
-%"class.nanojit::Assembler" = type { %"class.nanojit::Allocator"*, %"class.nanojit::CodeAlloc"*, %"class.nanojit::Allocator"*, %"class.nanojit::Fragment"*, %21, %23, %"class.nanojit::LabelStateMap", %"class.js::GCChunkAllocator"*, %27, %"class.nanojit::CodeList"*, i8, [3 x i8], i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, %"class.nanojit::LIns"*, %"class.nanojit::AR", %"class.nanojit::RegAlloc", i32, %"struct.nanojit::Config"* }
-%"class.nanojit::BitSet" = type { %"class.nanojit::Allocator"*, i32, i64* }
-%"class.nanojit::CodeAlloc" = type { %"class.nanojit::CodeList"*, %"class.nanojit::CodeList"*, i32, i32, i32 }
-%"class.nanojit::CodeList" = type { %"class.nanojit::CodeList"*, %"class.nanojit::CodeList"*, %"class.nanojit::CodeList"*, i8, i8, %20, [1 x i8] }
-%"class.nanojit::CseFilter" = type { [8 x i8], [8 x %"class.nanojit::LIns"**], [8 x i32], [8 x i32], [8 x %struct.JSObjectMap], i8, i8, i8, i8, [34 x %"class.nanojit::LIns"**], [34 x i32], [34 x i32], i32, %"class.nanojit::Allocator"*, %"class.nanojit::HashMap", i8, i8 }
-%"class.nanojit::Fragment" = type { %"class.nanojit::LirBuffer"*, %"class.nanojit::LIns"*, i8*, i32, i8*, i8*, i32 }
-%"class.nanojit::HashMap" = type { %"class.nanojit::Allocator"*, i32, %"class.nanojit::Seq"** }
-%"class.nanojit::LIns" = type { %"class.JSC::MacroAssemblerCodePtr" }
-%"class.nanojit::LInsC" = type { %"class.nanojit::LIns"**, %"struct.nanojit::CallInfo"*, %"class.nanojit::LIns" }
-%"class.nanojit::LInsI" = type { i32, %"class.nanojit::LIns" }
-%"class.nanojit::LInsOp2" = type { %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns" }
-%"class.nanojit::LInsOp3" = type { %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns" }
-%"class.nanojit::LInsQorD" = type { i32, i32, %"class.nanojit::LIns" }
-%"class.nanojit::LInsSt" = type { i16, i8, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns" }
-%"class.nanojit::LabelStateMap" = type { %"class.nanojit::Allocator"*, %25 }
-%"class.nanojit::LirBuffer" = type { %"class.js::KidsPointer", i32, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, %"class.nanojit::LIns"*, [4 x %"class.nanojit::LIns"*], %"class.nanojit::Allocator"*, i32, i32 }
-%"class.nanojit::LirFilter" = type { i32 (...)**, %"class.nanojit::LirFilter"* }
-%"class.nanojit::LogControl" = type { i32 (...)**, i32 }
-%"class.nanojit::RegAlloc" = type { [17 x %"class.nanojit::LIns"*], [17 x i32], i32, i32, i32 }
-%"class.nanojit::Seq" = type opaque
-%"class.nanojit::StackFilter" = type { [8 x i8], %"class.nanojit::LIns"*, %"class.nanojit::BitSet", i32 }
-%struct.DtoaState = type opaque
-%struct.JSArena = type { %struct.JSArena*, i32, i32, i32 }
-%struct.JSArenaPool = type { %struct.JSArena, %struct.JSArena*, i32, i32, i32* }
-%struct.JSArgumentFormatMap = type { i8*, i32, i32 (%struct.JSContext*, i8*, i32, i64**, i8**)*, %struct.JSArgumentFormatMap* }
-%struct.JSAtom = type { [16 x i8] }
-%struct.JSAtomMap = type { %struct.JSAtom**, i32 }
-%struct.JSAtomState = type { %64, %struct.JSThinLock, %struct.JSAtom*, [2 x %struct.JSAtom*], [8 x %struct.JSAtom*], %struct.JSAtom*, [39 x %struct.JSAtom*], %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %struct.JSAtom*, %66 }
-%struct.JSCListStr = type { %struct.JSCListStr*, %struct.JSCListStr* }
-%struct.JSCodeSpec = type { i8, i8, i8, i8, i32 }
-%struct.JSCompartment = type { %struct.JSRuntime*, %struct.JSPrincipals*, %"struct.js::gc::Chunk"*, [11 x %"struct.js::gc::ArenaList"], %"struct.js::gc::FreeLists", i32, i32, i32, %"struct.js::TraceMonitor", [64 x %struct.JSScript*], i8*, i8, %"class.js::HashMap", %"class.js::mjit::JaegerCompartment"*, %"class.js::PropertyTree", %"struct.js::EmptyShape"*, %"struct.js::EmptyShape"*, %"struct.js::EmptyShape"*, %"struct.js::EmptyShape"*, %"struct.js::EmptyShape"*, %"struct.js::EmptyShape"*, %47, i8, %struct.JSCListStr, %"class.JSC::ExecutableAllocator"*, %"class.js::NativeIterCache", %49, %"class.js::DtoaCache", %"class.js::MathCache"*, i8, %39 }
-%struct.JSContext = type { %struct.JSCListStr, i32, i32, i8, i32, %"class.js::Value", i32, %struct.JSLocaleCallbacks*, %struct.JSDHashTable*, i8, i32, i32, %struct.JSRuntime*, %struct.JSCompartment*, %struct.JSFrameRegs*, %struct.JSArenaPool, %struct.JSArenaPool, %struct.JSObject*, %struct.JSSharpObjectMap, %"class.js::HashSet", %struct.JSArgumentFormatMap*, i8*, void (%struct.JSContext*, i8*, %struct.JSErrorReport*)*, i32 (%struct.JSContext*)*, i32, i8*, i8*, %"class.js::StackSegment"*, %struct.JSThread*, i32, %struct.JSCListStr, %"class.js::AutoGCRooter"*, %struct.JSDebugHooks*, %struct.JSSecurityCallbacks*, i32, i64, [4 x i8], %"class.js::Value", i8, i8, i8, %class.DSTOffsetCache, %struct.JSObject*, %"class.js::Vector", %"class.js::GCHelperThread"* }
-%struct.JSDHashTable = type { %struct.JSDHashTableOps*, i8*, i16, i8, i8, i32, i32, i32, i32, i8* }
-%struct.JSDHashTableOps = type { i8* (%struct.JSDHashTable*, i32)*, void (%struct.JSDHashTable*, i8*)*, i32 (%struct.JSDHashTable*, i8*)*, i32 (%struct.JSDHashTable*, %"class.js::KidsPointer"*, i8*)*, void (%struct.JSDHashTable*, %"class.js::KidsPointer"*, %"class.js::KidsPointer"*)*, void (%struct.JSDHashTable*, %"class.js::KidsPointer"*)*, void (%struct.JSDHashTable*)*, i32 (%struct.JSDHashTable*, %"class.js::KidsPointer"*, i8*)* }
-%struct.JSDebugHooks = type { i32 (%struct.JSContext*, %struct.JSScript*, i8*, i64*, i8*)*, i8*, void (%struct.JSContext*, i8*, i32, %struct.JSScript*, %struct.JSFunction*, i8*)*, i8*, void (%struct.JSContext*, %struct.JSScript*, i8*)*, i8*, i32 (%struct.JSContext*, %struct.JSScript*, i8*, i64*, i8*)*, i8*, void (i8*, i32, i16*, i32, i8**, i8*)*, i8*, i8* (%struct.JSContext*, %struct.JSStackFrame*, i32, i32*, i8*)*, i8*, i8* (%struct.JSContext*, %struct.JSStackFrame*, i32, i32*, i8*)*, i8*, i32 (%struct.JSContext*, %struct.JSScript*, i8*, i64*, i8*)*, i8*, i32 (%struct.JSContext*, i8*, %struct.JSErrorReport*, i8*)*, i8* }
-%struct.JSErrorFormatString = type { i8*, i16, i16 }
-%struct.JSErrorReport = type { i8*, i32, i8*, i8*, i16*, i16*, i32, i32, i16*, i16** }
-%struct.JSFatLock = type opaque
-%struct.JSFrameRegs = type { %"class.js::Value"*, i8*, %struct.JSStackFrame* }
-%struct.JSFunction = type { [56 x i8], i16, i16, %"union.JSFunction::U", %struct.JSAtom*, [4 x i8] }
-%struct.JSGSNCache = type { i8*, %struct.JSDHashTable }
-%struct.JSGenerator = type { %struct.JSObject*, i32, %struct.JSFrameRegs, %struct.JSObject*, %struct.JSStackFrame*, [4 x i8], [1 x %"class.js::Value"] }
-%struct.JSHashAllocOps = type { i8* (i8*, i32)*, void (i8*, i8*, i32)*, %struct.JSHashEntry* (i8*, i8*)*, void (i8*, %struct.JSHashEntry*, i32)* }
-%struct.JSHashEntry = type { %struct.JSHashEntry*, i32, i8*, i8* }
-%struct.JSHashTable = type { %struct.JSHashEntry**, i32, i32, i32 (i8*)*, i32 (i8*, i8*)*, i32 (i8*, i8*)*, %struct.JSHashAllocOps*, i8* }
-%struct.JSLocaleCallbacks = type { i32 (%struct.JSContext*, %struct.JSString*, i64*)*, i32 (%struct.JSContext*, %struct.JSString*, i64*)*, i32 (%struct.JSContext*, %struct.JSString*, %struct.JSString*, i64*)*, i32 (%struct.JSContext*, i8*, i64*)*, %struct.JSErrorFormatString* (i8*, i8*, i32)* }
-%struct.JSNativeTraceInfo = type { i32 (%struct.JSContext*, i32, %"class.js::Value"*)*, %struct.JSSpecializedNative* }
-%struct.JSObject = type { %11, %"struct.js::Class"*, i32, i32, %"struct.js::EmptyShape"**, %struct.JSObject*, %struct.JSObject*, i8*, i32, %"class.js::Value"* }
-%struct.JSObjectMap = type { i32, i32 }
-%struct.JSPendingProxyOperation = type { %struct.JSPendingProxyOperation*, %struct.JSObject* }
-%struct.JSPrincipals = type { i8*, i8* (%struct.JSContext*, %struct.JSPrincipals*)*, i32 (%struct.JSContext*, %struct.JSPrincipals*)*, i32, void (%struct.JSContext*, %struct.JSPrincipals*)*, i32 (%struct.JSPrincipals*, %struct.JSPrincipals*)* }
-%struct.JSProperty = type opaque
-%struct.JSRuntime = type { %struct.JSCompartment*, i8, %51, i32, i32 (%struct.JSContext*, i32)*, i32 (%struct.JSContext*, %struct.JSCompartment*, i32)*, void (i8*, i32)*, i8*, i32, %52, %54, %56, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"struct.js::GCMarker"*, i32, i64, i32, i8, %struct.JSCompartment*, %struct.JSCompartment*, i8, i8, i8, i8, i32 (%struct.JSContext*, i32)*, i32, %"class.js::GCChunkAllocator"*, void (%struct.JSTracer*, i8*)*, i8*, %"class.js::Value", %"class.js::Value", %"class.js::Value", %struct.JSAtom*, %struct.JSCListStr, %struct.JSDebugHooks, i32, %struct.JSCListStr, %struct.JSCListStr, i8*, %struct.PRLock*, %struct.PRCondVar*, %struct.PRCondVar*, i32, %struct.JSThread*, %"class.js::GCHelperThread", %struct.PRLock*, %struct.PRCondVar*, %struct.PRLock*, %62, i32, %struct.JSSecurityCallbacks*, %struct.JSStructuredCloneCallbacks*, i32, %struct.JSHashTable*, %struct.JSCListStr, %struct.PRLock*, i8*, i8*, i8*, %struct.JSObject*, %struct.JSObject*, i32, i32, %struct.JSAtomState, %struct.JSObject* (%struct.JSContext*, %struct.JSObject*, %struct.JSObject*, %struct.JSObject*, i32)*, %struct.JSObject* (%struct.JSContext*, %struct.JSObject*, %struct.JSObject*, i32)*, i32, i32, [4 x i8] }
-%struct.JSScript = type { %struct.JSCListStr, i8*, i32, i16, i32, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8*, %struct.JSAtomMap, %struct.JSCompartment*, i8*, i32, i16, i16, i16, i16, %"class.js::Bindings", %struct.JSPrincipals*, %15, i32*, i8*, i8*, %"struct.js::mjit::JITScript"*, %"struct.js::mjit::JITScript"* }
-%struct.JSSecurityCallbacks = type { i32 (%struct.JSContext*, %struct.JSObject*, i32, i32, i64*)*, i32 (%struct.JSXDRState*, %struct.JSPrincipals**)*, %struct.JSPrincipals* (%struct.JSContext*, %struct.JSObject*)*, i32 (%struct.JSContext*)* }
-%struct.JSSharpObjectMap = type { i32, i32, %struct.JSHashTable* }
-%struct.JSSpecializedNative = type { %"struct.nanojit::CallInfo"*, i8*, i8*, i32 }
-%struct.JSStackFrame = type { i32, %37, %"class.js::KidsPointer", %struct.JSObject*, %struct.JSStackFrame*, i8*, %"class.js::Value", i8*, i8*, i8*, i8* }
-%struct.JSString = type { i32, %3, %4 }
-%struct.JSStructuredCloneCallbacks = type { %struct.JSObject* (%struct.JSContext*, %struct.JSStructuredCloneReader*, i32, i32, i8*)*, i32 (%struct.JSContext*, %struct.JSStructuredCloneWriter*, %struct.JSObject*, i8*)*, void (%struct.JSContext*, i32)* }
-%struct.JSStructuredCloneReader = type opaque
-%struct.JSStructuredCloneWriter = type opaque
-%struct.JSThinLock = type { i32, %struct.JSFatLock* }
-%struct.JSThread = type { %struct.JSCListStr, i8*, i32, %struct.JSThreadData }
-%struct.JSThreadData = type { i32, %struct.JSCompartment*, %struct.JSCompartment*, %struct.JSCompartment*, i32, %"class.js::StackSpace", i8, %struct.JSGSNCache, %"class.js::PropertyCache", i32, %struct.DtoaState*, i32*, %struct.JSPendingProxyOperation*, %"struct.js::ConservativeGCThreadData" }
-%struct.JSTracer = type { %struct.JSContext*, void (%struct.JSTracer*, i8*, i32)*, void (%struct.JSTracer*, i8*, i32)*, i8*, i32 }
-%struct.JSUpvarArray = type { %"class.js::KidsPointer"*, i32 }
-%struct.JSXDRState = type opaque
-%struct.JSXML = type { %struct.JSObject*, i8*, %struct.JSXML*, %struct.JSObject*, i32, i32, %68 }
-%struct.JSXMLArray = type { i32, i32, i8**, %struct.JSXMLArrayCursor* }
-%struct.JSXMLArrayCursor = type { %struct.JSXMLArray*, i32, %struct.JSXMLArrayCursor*, %struct.JSXMLArrayCursor**, i8* }
-%struct.JSXMLElemVar = type { %struct.JSXMLArray, %struct.JSXMLArray, %struct.JSXMLArray }
-%struct.PRCondVar = type opaque
-%struct.PRLock = type opaque
-%struct.PRThread = type opaque
-%struct.anon = type { [36 x i8], [38 x i8] }
-%"struct.js::ArgumentsData" = type { %"class.js::Value", [1 x %"class.js::Value"] }
-%"struct.js::Class" = type { i8*, i32, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, %struct.JSObject*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*)*, void (%struct.JSContext*, %struct.JSObject*)*, void ()*, i32 (%struct.JSContext*, %struct.JSObject*, i32, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, i32, %"class.js::Value"*)*, i32 (%struct.JSXDRState*, %struct.JSObject**)*, i32 (%struct.JSContext*, %struct.JSObject*, %"class.js::Value"*, i32*)*, i32 (%struct.JSContext*, %struct.JSObject*, i8*)*, %"struct.js::ClassExtension", %"struct.js::ObjectOps", [8 x i8] }
-%"struct.js::ClassExtension" = type { i32 (%struct.JSContext*, %struct.JSObject*, %"class.js::Value"*, i32*)*, %struct.JSObject* (%struct.JSContext*, %struct.JSObject*)*, %struct.JSObject* (%struct.JSContext*, %struct.JSObject*)*, %struct.JSObject* (%struct.JSContext*, %struct.JSObject*, i32)*, i8* }
-%"struct.js::ConservativeGCThreadData" = type { i32*, %59, i32 }
-%"struct.js::CountSlotsVisitor" = type { i32, i8, i8* }
-%"struct.js::EmptyShape" = type { [40 x i8] }
-%"struct.js::FrameInfo" = type { %struct.JSObject*, i8*, i8*, i32, i32, i32, i32 }
-%"struct.js::GCMarker" = type { [20 x i8], i32, i32, %9* }
-%"struct.js::GlobalState" = type { %struct.JSObject*, i32, %38* }
-%"struct.js::LinkableFragment" = type { [32 x i8], i32, %"class.js::TypeMap", i32, i32, %38* }
-%"struct.js::LoopProfile::InnerLoop" = type { %struct.JSStackFrame*, i8*, i8*, i32 }
-%"struct.js::LoopProfile::StackValue" = type { i8, i8, i32 }
-%"struct.js::MathCache::Entry" = type { double, double (double)*, double }
-%"struct.js::ObjectOps" = type { i32 (%struct.JSContext*, %struct.JSObject*, i32, %struct.JSObject**, %struct.JSProperty**)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, i32, %"class.js::Value"*)*, i32)*, i32 (%struct.JSContext*, %struct.JSObject*, %struct.JSObject*, i32, %"class.js::Value"*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*, i32)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, i32*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, i32*)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*, i32)*, i32 (%struct.JSContext*, %struct.JSObject*, i32, %"class.js::Value"*, i32*)*, i32 (%struct.JSContext*, %struct.JSObject*)*, void (%struct.JSTracer*, %struct.JSObject*)*, i32 (%struct.JSContext*, %struct.JSObject*, i8*, %"class.js::AutoIdVector"*)*, %struct.JSObject* (%struct.JSContext*, %struct.JSObject*)*, void (%struct.JSContext*, %struct.JSObject*)* }
-%"struct.js::PICTable" = type { [32 x %"struct.js::PICTableEntry"], i32 }
-%"struct.js::PICTableEntry" = type { i32, i32, i32 }
-%"struct.js::PropertyCacheEntry" = type { i8*, i32, i32, %"class.js::KidsPointer" }
-%"struct.js::PropertyTable" = type { i32, i32, i32, i32, %"struct.js::Shape"** }
-%"struct.js::Shape" = type { [8 x i8], %"class.js::KidsPointer", i32, %12, %13, i32, i8, i8, i16, %"struct.js::Shape"*, %14 }
-%"struct.js::SlotMap::SlotInfo" = type { i8*, i8, i32, i8 }
-%"struct.js::TraceMonitor" = type { %struct.JSContext*, %"struct.js::TracerState"*, %"struct.js::VMSideExit"*, i32, %"struct.js::TraceNativeStorage"*, %"class.js::VMAllocator"*, %"class.js::VMAllocator"*, %"class.js::VMAllocator"*, %"class.nanojit::CodeAlloc"*, %"class.nanojit::Assembler"*, %"class.js::FrameInfoCache"*, i32, %"class.js::Oracle"*, %"class.js::TraceRecorder"*, %"class.js::LoopProfile"*, [4 x %"struct.js::GlobalState"], [512 x %"struct.js::TreeFragment"*], %39*, %41*, i32, i32, %"class.js::TypeMap"*, %43 }
-%"struct.js::TraceNativeStorage" = type { [8193 x double], [500 x %"struct.js::FrameInfo"*] }
-%"struct.js::TraceRecorder::NameResult" = type { i8, [7 x i8], %"class.js::Value", %struct.JSObject*, %"class.nanojit::LIns"*, %"struct.js::Shape"*, [4 x i8] }
-%"struct.js::TracerState" = type { %struct.JSContext*, %"struct.js::TraceMonitor"*, double*, double*, double*, %"struct.js::FrameInfo"**, i8*, %"struct.js::FrameInfo"**, i8*, %"struct.js::VMSideExit"*, %"struct.js::VMSideExit"*, i8*, %"struct.js::VMSideExit"*, %"struct.js::TreeFragment"*, i32*, %"struct.js::VMSideExit"**, %"struct.js::VMSideExit"*, i64, %"struct.js::TracerState"*, i32, double*, i32, %"class.js::Value"* }
-%"struct.js::Tracker::TrackerPage" = type { %"struct.js::Tracker::TrackerPage"*, i32, [1024 x %"class.nanojit::LIns"*] }
-%"struct.js::TreeFragment" = type { [68 x i8], %"struct.js::TreeFragment"*, %"struct.js::TreeFragment"*, %"struct.js::TreeFragment"*, %struct.JSObject*, i32, i32, %"class.js::Queue", %"class.js::Queue", %struct.JSScript*, %"struct.js::UnstableExit"*, %17, i32, i32, %18, %19, i32, i32, i32 }
-%"struct.js::TypedArray" = type { %"class.js::HashMap<unsigned char *, unsigned long, js::DefaultHasher<unsigned char *>, js::SystemAllocPolicy>::Entry"*, %struct.JSObject*, i32, i32, i32, i32, i8* }
-%"struct.js::UnstableExit" = type { %"class.js::VMFragment"*, %"struct.js::VMSideExit"*, %"struct.js::UnstableExit"* }
-%"struct.js::VMAllocator::Mark" = type { %"class.js::VMAllocator"*, i8, %"class.nanojit::Allocator::Chunk"*, i8*, i8*, i32 }
-%"struct.js::VMFrame" = type { %"union.js::VMFrame::Arguments", %"struct.js::VMFrame"*, i8*, %struct.JSFrameRegs, %struct.JSContext*, %"class.js::Value"*, %struct.JSStackFrame*, i8*, i8*, i8*, i8*, i8* }
-%"struct.js::VMSideExit" = type { [16 x i8], i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-%"struct.js::gc::Arena" = type { %7, %"struct.js::gc::Things" }
-%"struct.js::gc::ArenaBitmap" = type { [16 x i32] }
-%"struct.js::gc::ArenaHeader" = type { %struct.JSCompartment*, %"struct.js::gc::Arena"*, %"struct.js::gc::FreeCell"*, i32, i8, i32 }
-%"struct.js::gc::ArenaList" = type { %"struct.js::gc::Arena"*, %"struct.js::gc::Arena"* }
-%"struct.js::gc::Chunk" = type { [251 x %"struct.js::gc::Arena"], [251 x %"struct.js::gc::ArenaBitmap"], [251 x %"struct.js::gc::MarkingDelay"], %"struct.js::gc::ChunkInfo" }
-%"struct.js::gc::ChunkInfo" = type { %"struct.js::gc::Chunk"*, %struct.JSRuntime*, %"struct.js::gc::EmptyArenaLists", i32, i32 }
-%"struct.js::gc::EmptyArenaLists" = type { %"struct.js::gc::Arena"*, [11 x %"struct.js::gc::Arena"*] }
-%"struct.js::gc::FreeCell" = type { %8 }
-%"struct.js::gc::FreeLists" = type { [11 x %"struct.js::gc::FreeCell"**] }
-%"struct.js::gc::MarkingDelay" = type { %9*, i32, i32 }
-%"struct.js::gc::Things" = type { [509 x %"union.js::gc::ThingOrCell"] }
-%"struct.js::mjit::JITScript" = type { %"class.JSC::MacroAssemblerCodeRef", i8*, i8*, i8*, [4 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, %16 }
-%"struct.js::mjit::Trampolines" = type { void ()*, %"class.JSC::ExecutablePool"* }
-%"struct.js::tjit::Address" = type { %"class.nanojit::LIns"*, i32, i32 }
-%"struct.nanojit::CallInfo" = type { i32, [4 x i8], i32 }
-%"struct.nanojit::Config" = type { i8, i8, i8, i8 }
-%"struct.nanojit::GuardRecord" = type { i8*, %"struct.nanojit::GuardRecord"*, %"struct.nanojit::SideExit"* }
-%"struct.nanojit::Interval" = type { i64, i64, i8 }
-%"struct.nanojit::SideExit" = type { %"struct.nanojit::GuardRecord"*, %"class.nanojit::Fragment"*, %"class.nanojit::Fragment"*, %"struct.nanojit::SwitchInfo"* }
-%"struct.nanojit::SwitchInfo" = type { i8**, i32, i32 }
-%"union.JSFunction::U" = type { %58 }
-%"union.js::AlignedStorage<16>::U" = type { i64, [8 x i8] }
-%"union.js::AlignedStorage<1>::U" = type { i64 }
-%"union.js::AlignedStorage<256>::U" = type { i64, [248 x i8] }
-%"union.js::AlignedStorage<64>::U" = type { i64, [56 x i8] }
-%"union.js::VMFrame::Arguments" = type { %46 }
-%"union.js::gc::ThingOrCell" = type { %"struct.js::gc::FreeCell" }
+%0 = type { i32, i1 }
-@_ZN7nanojitL9SavedRegsE = external global i32, align 4
-@_ZN7nanojitL7XmmRegsE = external global i32, align 4
-@_ZN7nanojitL7x87RegsE = external global i32, align 4
-@_ZN7nanojitL6FpRegsE = external global i32, align 4
-@_ZL16equality_imacros = external global %struct.anon, align 1
-@_ZL14binary_imacros = external global %69, align 1
-@_ZL11add_imacros = external global %69, align 1
-@_ZL13unary_imacros = external global %70, align 1
-@_ZL12call_imacros = external global %71, align 1
-@_ZL11new_imacros = external global %71, align 1
-@js_opcode2extra = external global [244 x i8], align 1
-@_ZL15incelem_imacros = external global %72, align 1
-@_ZL15decelem_imacros = external global %72, align 1
-@_ZL16funapply_imacros = external global %73, align 1
-@_ZL15funcall_imacros = external global %74, align 1
-@_ZL15getprop_imacros = external global %75, align 1
-@_ZL16callprop_imacros = external global %76, align 1
-@_ZL19getthisprop_imacros = external global %75, align 1
-@.str = external constant [46 x i8]
-@.str6 = external constant [51 x i8]
-@_ZL17js_IntToString_ci = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL6s_coreE = external global %"class.avmplus::AvmCore", align 4
-@_ZN2jsL31did_we_check_processor_featuresE.b = external global i1
-@_ZN2js13LogControllerE = external global %"class.nanojit::LogControl", align 8
-@__dso_handle = external global i8*
-@.str10 = external constant [48 x i8]
-@.str11 = external constant [44 x i8]
-@_ZN7avmplus7AvmCore6configE = external global %"struct.nanojit::Config"
-@js_CodeSpec = external global [0 x %struct.JSCodeSpec]
-@_ZN2jsL16GetClosureVar_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL16GetClosureArg_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_dmod_ci = external global %"struct.nanojit::CallInfo"
-@js_UnboxDouble_ci = external global %"struct.nanojit::CallInfo"
-@js_UnboxInt32_ci = external global %"struct.nanojit::CallInfo"
-@js_StringToNumber_ci = external global %"struct.nanojit::CallInfo"
-@js_StringToInt32_ci = external global %"struct.nanojit::CallInfo"
-@js_DoubleToInt32_ci = external global %"struct.nanojit::CallInfo"
-@js_DoubleToUint32_ci = external global %"struct.nanojit::CallInfo"
-@js_NumberToString_ci = external global %"struct.nanojit::CallInfo"
-@js_BooleanIntToString_ci = external global %"struct.nanojit::CallInfo"
-@js_EqualStringsOnTrace_ci = external global %"struct.nanojit::CallInfo"
-@js_NaN = external global double
-@js_CompareStringsOnTrace_ci = external global %"struct.nanojit::CallInfo"
-@_ZN7nanojit8retTypesE = external constant [0 x i32]
-@js_FunctionClass = external global %"struct.js::Class"
-@js_ArrayClass = external global %"struct.js::Class"
-@js_PutArgumentsOnTrace_ci = external global %"struct.nanojit::CallInfo"
-@js_PutCallObjectOnTrace_ci = external global %"struct.nanojit::CallInfo"
-@js_CreateCallObjectOnTrace_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL16functionProbe_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_NewArgumentsOnTrace_ci = external global %"struct.nanojit::CallInfo"
-@js_ConcatStrings_ci = external global %"struct.nanojit::CallInfo"
-@js_String_tn_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2js21NewDenseEmptyArray_ciE = external global %"struct.nanojit::CallInfo"
-@_ZN2js27NewDenseUnallocatedArray_ciE = external global %"struct.nanojit::CallInfo"
-@_ZN2js25NewDenseAllocatedArray_ciE = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL19ceilReturningInt_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL20floorReturningInt_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL20roundReturningInt_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_ObjectClass = external global %"struct.js::Class"
-@_ZN2jsL15DeleteIntKey_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL15DeleteStrKey_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_TypeOfObject_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL21MethodWriteBarrier_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_AddAtomProperty_ci = external global %"struct.nanojit::CallInfo"
-@js_AddProperty_ci = external global %"struct.nanojit::CallInfo"
-@js_SetCallArg_ci = external global %"struct.nanojit::CallInfo"
-@js_SetCallVar_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL20GetPropertyByName_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL21GetPropertyByIndex_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL18GetPropertyById_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL30GetPropertyWithNativeGetter_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_Flatten_ci = external global %"struct.nanojit::CallInfo"
-@_ZN8JSString15unitStringTableE = external global [0 x %struct.JSString]
-@_ZN2jsL20SetPropertyByName_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL21InitPropertyByName_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL21SetPropertyByIndex_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL22InitPropertyByIndex_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_TypedArray_uint8_clamp_double_ci = external global %"struct.nanojit::CallInfo"
-@js_EnsureDenseArrayCapacity_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL21GetUpvarArgOnTrace_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL21GetUpvarVarOnTrace_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL23GetUpvarStackOnTrace_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_CreateThisFromTrace_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL21funapply_imacro_tableE = external constant [9 x i8*], align 4
-@_ZN2jsL20funcall_imacro_tableE = external constant [9 x i8*], align 4
-@_ZN2jsL20MethodReadBarrier_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_InitializerObject_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL19ObjectToIterator_ciE = external global %"struct.nanojit::CallInfo", align 4
-@_ZN2jsL15IteratorMore_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_IteratorClass = external global %"struct.js::Class"
-@_ZN2jsL16CloseIterator_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_HasNamedPropertyInt32_ci = external global %"struct.nanojit::CallInfo"
-@js_HasNamedProperty_ci = external global %"struct.nanojit::CallInfo"
-@_ZN2jsL21HasInstanceOnTrace_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_NewNullClosure_ci = external global %"struct.nanojit::CallInfo"
-@js_CloneFunctionObject_ci = external global %"struct.nanojit::CallInfo"
-@js_AllocFlatClosure_ci = external global %"struct.nanojit::CallInfo"
-@js_CloneRegExpObject_ci = external global %"struct.nanojit::CallInfo"
-@js_ArrayCompPush_tn_ci = external global %"struct.nanojit::CallInfo"
-@js_SlowArrayClass = external global %"struct.js::Class"
-@_ZN2jsL13js_Unbrand_ciE = external global %"struct.nanojit::CallInfo", align 4
-@js_DateClass = external global %"struct.js::Class"
-@js_BooleanClass = external global %"struct.js::Class"
-@js_StringClass = external global %"struct.js::Class"
-@js_NumberClass = external global %"struct.js::Class"
-@js_CallClass = external global %"struct.js::Class"
-@js_BlockClass = external global %"struct.js::Class"
-@js_DeclEnvClass = external global %"struct.js::Class"
-@js_ArgumentsClass = external global %"struct.js::Class"
-@js_RegExpClass = external global %"struct.js::Class"
-@js_XMLClass = external global %"struct.js::Class"
-@_ZN2js20StrictArgumentsClassE = external global %"struct.js::Class"
-@_ZN11JSObjectMap15sharedNonNativeE = external global %struct.JSObjectMap
-@.str456 = external constant [15 x i8]
-@.str457 = external constant [5 x i8]
-@.str458 = external constant [2 x i8]
-@.str459 = external constant [4 x i8]
-@_ZTVN2js14DefaultSlotMapE = external constant [6 x i8*]
-@_ZTVN2js7SlotMapE = external constant [6 x i8*]
-@_ZN7nanojit8repKindsE = external constant [0 x i8]
-@_ZZN2js2gc23GetFinalizableTraceKindEmE3map = external constant [11 x i8], align 1
-@_ZN8JSString18hundredStringTableE = external global [0 x %struct.JSString]
-@_ZN8JSString18length2StringTableE = external global [0 x %struct.JSString]
-@_ZTVN7nanojit10LogControlE = external constant [4 x i8*]
-@llvm.global_ctors = external global [1 x %77]
-@.memset_pattern = external constant [2 x i64], align 16
+declare %0 @llvm.umul.with.overflow.i32(i32, i32) nounwind readnone
-declare hidden i8* @_Z17