FTL should allow LLVM to allocate data sections with alignment > 8
[WebKit.git] / Source / JavaScriptCore / ftl / FTLState.h
index cef0fe3..68da23f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 
 #if ENABLE(FTL_JIT)
 
+#include "DFGCommon.h"
 #include "DFGGraph.h"
 #include "FTLAbbreviations.h"
 #include "FTLGeneratedFunction.h"
+#include "FTLInlineCacheDescriptor.h"
 #include "FTLJITCode.h"
 #include "FTLJITFinalizer.h"
-#include "FTLOSRExitCompilationInfo.h"
+#include "FTLJSCall.h"
+#include "FTLStackMaps.h"
 #include <wtf/Noncopyable.h>
 
 namespace JSC { namespace FTL {
 
+inline bool verboseCompilationEnabled()
+{
+    return DFG::verboseCompilationEnabled(DFG::FTLMode);
+}
+
+inline bool showDisassembly()
+{
+    return DFG::shouldShowDisassembly(DFG::FTLMode);
+}
+
 class State {
     WTF_MAKE_NONCOPYABLE(State);
     
@@ -54,9 +67,19 @@ public:
     LModule module;
     LValue function;
     RefPtr<JITCode> jitCode;
-    Vector<OSRExitCompilationInfo> osrExit;
     GeneratedFunction generatedFunction;
     JITFinalizer* finalizer;
+    unsigned handleStackOverflowExceptionStackmapID;
+    unsigned handleExceptionStackmapID;
+    unsigned capturedStackmapID;
+    SegmentedVector<GetByIdDescriptor> getByIds;
+    SegmentedVector<PutByIdDescriptor> putByIds;
+    Vector<JSCall> jsCalls;
+    Vector<CString> codeSectionNames;
+    Vector<CString> dataSectionNames;
+    void* compactUnwind;
+    size_t compactUnwindSize;
+    RefPtr<DataSection> stackmapsSection;
     
     void dumpState(const char* when);
 };