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/dfg/DFGCommonData.h | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz |
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGCommonData.h')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGCommonData.h | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGCommonData.h b/Source/JavaScriptCore/dfg/DFGCommonData.h index bf4f94fcc..17c5cce11 100644 --- a/Source/JavaScriptCore/dfg/DFGCommonData.h +++ b/Source/JavaScriptCore/dfg/DFGCommonData.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2015 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,24 +26,23 @@ #ifndef DFGCommonData_h #define DFGCommonData_h +#include <wtf/Platform.h> + #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 <wtf/Bag.h> #include <wtf/Noncopyable.h> namespace JSC { class CodeBlock; class Identifier; -class TrackedReferences; namespace DFG { @@ -74,15 +73,13 @@ class CommonData { public: CommonData() : isStillValid(true) + , machineCaptureStart(std::numeric_limits<int>::max()) , frameRegisterCount(std::numeric_limits<unsigned>::max()) , requiredRegisterCountForExit(std::numeric_limits<unsigned>::max()) { } void notifyCompilingStructureTransition(Plan&, CodeBlock*, Node*); - CallSiteIndex addCodeOrigin(CodeOrigin); - CallSiteIndex addUniqueCallSiteIndex(CodeOrigin); - CallSiteIndex lastCallSite() const; - void removeCallSiteIndex(CallSiteIndex); + unsigned addCodeOrigin(CodeOrigin codeOrigin); void shrinkToFit(); @@ -92,21 +89,15 @@ public: { return std::max(frameRegisterCount, requiredRegisterCountForExit); } - - void validateReferences(const TrackedReferences&); - - static ptrdiff_t frameRegisterCountOffset() { return OBJECT_OFFSETOF(CommonData, frameRegisterCount); } - RefPtr<InlineCallFrameSet> inlineCallFrames; + OwnPtr<InlineCallFrameSet> inlineCallFrames; Vector<CodeOrigin, 0, UnsafeVectorOverflow> codeOrigins; Vector<Identifier> dfgIdentifiers; Vector<WeakReferenceTransition> transitions; Vector<WriteBarrier<JSCell>> weakReferences; - Vector<WriteBarrier<Structure>> weakStructureReferences; - Bag<CodeBlockJettisoningWatchpoint> watchpoints; - Bag<AdaptiveStructureWatchpoint> adaptiveStructureWatchpoints; - Bag<AdaptiveInferredPropertyValueWatchpoint> adaptiveInferredPropertyValueWatchpoints; + SegmentedVector<CodeBlockJettisoningWatchpoint, 1, 0> watchpoints; + SegmentedVector<ProfiledCodeBlockJettisoningWatchpoint, 1, 0> profiledWatchpoints; Vector<JumpReplacement> jumpReplacements; RefPtr<Profiler::Compilation> compilation; @@ -114,16 +105,11 @@ public: bool allTransitionsHaveBeenMarked; // Initialized and used on every GC. bool isStillValid; -#if USE(JSVALUE32_64) - std::unique_ptr<Bag<double>> doubleConstants; -#endif + int machineCaptureStart; + std::unique_ptr<SlowArgument[]> slowArguments; unsigned frameRegisterCount; unsigned requiredRegisterCountForExit; - -private: - HashSet<unsigned, WTF::IntHash<unsigned>, WTF::UnsignedWithZeroKeyHashTraits<unsigned>> callSiteIndexFreeList; - }; } } // namespace JSC::DFG |