diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
commit | 32761a6cee1d0dee366b885b7b9c777e67885688 (patch) | |
tree | d6bec92bebfb216f4126356e55518842c2f476a1 /Source/JavaScriptCore/ftl/FTLState.h | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-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.h | 49 |
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 |