Changeset 153295 in webkit for trunk/Source/JavaScriptCore/dfg/DFGAtTailAbstractState.h
- Timestamp:
- Jul 24, 2013, 9:05:31 PM (12 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGAtTailAbstractState.h
r153294 r153295 24 24 */ 25 25 26 #ifndef DFG BasicBlockInlines_h27 #define DFG BasicBlockInlines_h26 #ifndef DFGAtTailAbstractState_h 27 #define DFGAtTailAbstractState_h 28 28 29 #include <wtf/Platform.h> 30 31 #if ENABLE(DFG_JIT) 32 33 #include "DFGAbstractValue.h" 29 34 #include "DFGBasicBlock.h" 30 35 #include "DFGGraph.h" 31 36 32 #if ENABLE(DFG_JIT) 37 namespace JSC { namespace DFG { 33 38 34 namespace JSC { namespace DFG { 39 class AtTailAbstractState { 40 public: 41 AtTailAbstractState(); 42 43 ~AtTailAbstractState(); 44 45 void initializeTo(BasicBlock* block) 46 { 47 m_block = block; 48 } 49 50 void createValueForNode(Node*); 51 AbstractValue& forNode(Node*); 52 AbstractValue& forNode(Edge edge) { return forNode(edge.node()); } 53 Operands<AbstractValue>& variables() { return m_block->valuesAtTail; } 54 55 BasicBlock* block() const { return m_block; } 56 57 bool isValid() { return m_block->cfaDidFinish; } 58 59 void setDidClobber(bool) { } 60 void setIsValid(bool isValid) { m_block->cfaDidFinish = isValid; } 61 void setBranchDirection(BranchDirection) { } 62 void setFoundConstants(bool) { } 63 bool haveStructures() const { return true; } // It's always safe to return true. 64 void setHaveStructures(bool) { } 35 65 36 #define DFG_DEFINE_APPEND_NODE(templatePre, templatePost, typeParams, valueParamsComma, valueParams, valueArgs) \ 37 templatePre typeParams templatePost inline Node* BasicBlock::appendNode(Graph& graph, SpeculatedType type valueParamsComma valueParams) \ 38 { \ 39 Node* result = graph.addNode(type valueParamsComma valueArgs); \ 40 append(result); \ 41 return result; \ 42 } 43 DFG_VARIADIC_TEMPLATE_FUNCTION(DFG_DEFINE_APPEND_NODE) 44 #undef DFG_DEFINE_APPEND_NODE 45 46 #define DFG_DEFINE_APPEND_NODE(templatePre, templatePost, typeParams, valueParamsComma, valueParams, valueArgs) \ 47 templatePre typeParams templatePost inline Node* BasicBlock::appendNonTerminal(Graph& graph, SpeculatedType type valueParamsComma valueParams) \ 48 { \ 49 Node* result = graph.addNode(type valueParamsComma valueArgs); \ 50 append(last()); \ 51 at(size() - 2) = result; \ 52 return result; \ 53 } 54 DFG_VARIADIC_TEMPLATE_FUNCTION(DFG_DEFINE_APPEND_NODE) 55 #undef DFG_DEFINE_APPEND_NODE 66 private: 67 BasicBlock* m_block; 68 }; 56 69 57 70 } } // namespace JSC::DFG … … 59 72 #endif // ENABLE(DFG_JIT) 60 73 61 #endif // DFG BasicBlockInlines_h74 #endif // DFGAtTailAbstractState_h 62 75
Note:
See TracChangeset
for help on using the changeset viewer.