summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/ftl/FTLState.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
commit32761a6cee1d0dee366b885b7b9c777e67885688 (patch)
treed6bec92bebfb216f4126356e55518842c2f476a1 /Source/JavaScriptCore/ftl/FTLState.h
parenta4e969f4965059196ca948db781e52f7cfebf19e (diff)
downloadWebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/JavaScriptCore/ftl/FTLState.h')
-rw-r--r--Source/JavaScriptCore/ftl/FTLState.h49
1 files changed, 17 insertions, 32 deletions
diff --git a/Source/JavaScriptCore/ftl/FTLState.h b/Source/JavaScriptCore/ftl/FTLState.h
index 023b8d34b..c82db6728 100644
--- a/Source/JavaScriptCore/ftl/FTLState.h
+++ b/Source/JavaScriptCore/ftl/FTLState.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,38 +26,20 @@
#ifndef FTLState_h
#define FTLState_h
+#include <wtf/Platform.h>
+
#if ENABLE(FTL_JIT)
-#include "B3Procedure.h"
-#include "DFGCommon.h"
#include "DFGGraph.h"
-#include "FTLAbbreviatedTypes.h"
+#include "FTLAbbreviations.h"
#include "FTLGeneratedFunction.h"
+#include "FTLInlineCacheDescriptor.h"
#include "FTLJITCode.h"
#include "FTLJITFinalizer.h"
-#include <wtf/Box.h>
+#include "FTLStackMaps.h"
#include <wtf/Noncopyable.h>
-namespace JSC {
-
-namespace B3 {
-class PatchpointValue;
-class StackSlot;
-} // namespace B3
-
-namespace FTL {
-
-class PatchpointExceptionHandle;
-
-inline bool verboseCompilationEnabled()
-{
- return DFG::verboseCompilationEnabled(DFG::FTLMode);
-}
-
-inline bool shouldDumpDisassembly()
-{
- return DFG::shouldDumpDisassembly(DFG::FTLMode);
-}
+namespace JSC { namespace FTL {
class State {
WTF_MAKE_NONCOPYABLE(State);
@@ -69,16 +51,19 @@ public:
// None of these things is owned by State. It is the responsibility of
// FTL phases to properly manage the lifecycle of the module and function.
DFG::Graph& graph;
- std::unique_ptr<B3::Procedure> proc;
- bool allocationFailed { false }; // Throw out the compilation once B3 returns.
+ LContext context;
+ LModule module;
+ LValue function;
RefPtr<JITCode> jitCode;
GeneratedFunction generatedFunction;
JITFinalizer* finalizer;
- // Top-level exception handler. Jump here if you know that you have to genericUnwind() and there
- // are no applicable catch blocks anywhere in the Graph.
- RefPtr<PatchpointExceptionHandle> defaultExceptionHandle;
- Box<CCallHelpers::Label> exceptionHandler { Box<CCallHelpers::Label>::create() };
- B3::StackSlot* capturedValue { nullptr };
+ SegmentedVector<GetByIdDescriptor> getByIds;
+ SegmentedVector<PutByIdDescriptor> putByIds;
+ Vector<CString> codeSectionNames;
+ Vector<CString> dataSectionNames;
+ RefCountedArray<LSectionWord> stackmapsSection;
+
+ void dumpState(const char* when);
};
} } // namespace JSC::FTL