From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/JavaScriptCore/dfg/DFGCommonData.h | 42 +++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) (limited to 'Source/JavaScriptCore/dfg/DFGCommonData.h') diff --git a/Source/JavaScriptCore/dfg/DFGCommonData.h b/Source/JavaScriptCore/dfg/DFGCommonData.h index 17c5cce11..e58a2ebe6 100644 --- a/Source/JavaScriptCore/dfg/DFGCommonData.h +++ b/Source/JavaScriptCore/dfg/DFGCommonData.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013, 2015 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -23,26 +23,26 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef DFGCommonData_h -#define DFGCommonData_h - -#include +#pragma once #if ENABLE(DFG_JIT) #include "CodeBlockJettisoningWatchpoint.h" +#include "DFGAdaptiveInferredPropertyValueWatchpoint.h" +#include "DFGAdaptiveStructureWatchpoint.h" #include "DFGJumpReplacement.h" #include "InlineCallFrameSet.h" #include "JSCell.h" -#include "ProfiledCodeBlockJettisoningWatchpoint.h" #include "ProfilerCompilation.h" #include "SymbolTable.h" +#include #include namespace JSC { class CodeBlock; class Identifier; +class TrackedReferences; namespace DFG { @@ -73,13 +73,15 @@ class CommonData { public: CommonData() : isStillValid(true) - , machineCaptureStart(std::numeric_limits::max()) , frameRegisterCount(std::numeric_limits::max()) , requiredRegisterCountForExit(std::numeric_limits::max()) { } void notifyCompilingStructureTransition(Plan&, CodeBlock*, Node*); - unsigned addCodeOrigin(CodeOrigin codeOrigin); + CallSiteIndex addCodeOrigin(CodeOrigin); + CallSiteIndex addUniqueCallSiteIndex(CodeOrigin); + CallSiteIndex lastCallSite() const; + void removeCallSiteIndex(CallSiteIndex); void shrinkToFit(); @@ -89,15 +91,21 @@ public: { return std::max(frameRegisterCount, requiredRegisterCountForExit); } + + void validateReferences(const TrackedReferences&); - OwnPtr inlineCallFrames; + static ptrdiff_t frameRegisterCountOffset() { return OBJECT_OFFSETOF(CommonData, frameRegisterCount); } + + RefPtr inlineCallFrames; Vector codeOrigins; Vector dfgIdentifiers; Vector transitions; Vector> weakReferences; - SegmentedVector watchpoints; - SegmentedVector profiledWatchpoints; + Vector> weakStructureReferences; + Bag watchpoints; + Bag adaptiveStructureWatchpoints; + Bag adaptiveInferredPropertyValueWatchpoints; Vector jumpReplacements; RefPtr compilation; @@ -105,16 +113,18 @@ public: bool allTransitionsHaveBeenMarked; // Initialized and used on every GC. bool isStillValid; - int machineCaptureStart; - std::unique_ptr slowArguments; +#if USE(JSVALUE32_64) + std::unique_ptr> doubleConstants; +#endif unsigned frameRegisterCount; unsigned requiredRegisterCountForExit; + +private: + HashSet, WTF::UnsignedWithZeroKeyHashTraits> callSiteIndexFreeList; + }; } } // namespace JSC::DFG #endif // ENABLE(DFG_JIT) - -#endif // DFGCommonData_h - -- cgit v1.2.1