Changeset 153215 in webkit for trunk/Source/JavaScriptCore/dfg/DFGAbstractState.h
- Timestamp:
- Jul 24, 2013, 9:02:17 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGAbstractState.h
r153213 r153215 94 94 }; 95 95 96 enum ExecutionMode {97 // If we encounter a contradiction, assume that this might just98 // be because we haven't converged yet.99 StillConverging,100 101 // If we encounter a contradition, assume that this contradiction102 // is real and report it to the profiling infrastructure as if it103 // happened at run time.104 AfterConvergence,105 106 // Assume that there cannot be any contradictions other than107 // ForceOSRExit because we have already cleaned the graph.108 CleanFiltration109 };110 111 96 AbstractState(Graph&); 112 97 … … 192 177 // This is guaranteed to be equivalent to doing: 193 178 // 194 // if (state.startExecuting(index , executionMode)) {179 // if (state.startExecuting(index)) { 195 180 // state.executeEdges(index); 196 181 // result = state.executeEffects(index); 197 182 // } else 198 183 // result = true; 199 bool execute(unsigned indexInBlock , ExecutionMode);184 bool execute(unsigned indexInBlock); 200 185 201 186 // Indicate the start of execution of the node. It resets any state in the node, … … 205 190 // analysis concluded that the node can exit, you should probably set that 206 191 // information aside prior to calling startExecuting(). 207 bool startExecuting(Node* , ExecutionMode);208 bool startExecuting(unsigned indexInBlock , ExecutionMode);192 bool startExecuting(Node*); 193 bool startExecuting(unsigned indexInBlock); 209 194 210 195 // Abstractly execute the edges of the given node. This runs filterEdgeByUse() … … 248 233 249 234 template<typename T> 250 FiltrationResult filter(T node, const StructureSet& set , ExitKind exitKind)251 { 252 return filter(forNode(node), set , exitKind);235 FiltrationResult filter(T node, const StructureSet& set) 236 { 237 return filter(forNode(node), set); 253 238 } 254 239 255 240 template<typename T> 256 FiltrationResult filterArrayModes( 257 T node, ArrayModes arrayModes, ExitKind exitKind = BadIndexingType) 258 { 259 return filterArrayModes(forNode(node), arrayModes, exitKind); 241 FiltrationResult filterArrayModes(T node, ArrayModes arrayModes) 242 { 243 return filterArrayModes(forNode(node), arrayModes); 260 244 } 261 245 262 246 template<typename T> 263 FiltrationResult filter(T node, SpeculatedType type , ExitKind exitKind = BadType)264 { 265 return filter(forNode(node), type , exitKind);247 FiltrationResult filter(T node, SpeculatedType type) 248 { 249 return filter(forNode(node), type); 266 250 } 267 251 268 252 template<typename T> 269 FiltrationResult filterByValue(T node, JSValue value, ExitKind exitKind) 270 { 271 return filterByValue(forNode(node), value, exitKind); 272 } 273 274 FiltrationResult filter(AbstractValue&, const StructureSet&, ExitKind); 275 FiltrationResult filterArrayModes(AbstractValue&, ArrayModes, ExitKind = BadIndexingType); 276 FiltrationResult filter(AbstractValue&, SpeculatedType, ExitKind = BadType); 277 FiltrationResult filterByValue(AbstractValue&, JSValue, ExitKind); 278 279 void bail(ExitKind); 253 FiltrationResult filterByValue(T node, JSValue value) 254 { 255 return filterByValue(forNode(node), value); 256 } 257 258 FiltrationResult filter(AbstractValue&, const StructureSet&); 259 FiltrationResult filterArrayModes(AbstractValue&, ArrayModes); 260 FiltrationResult filter(AbstractValue&, SpeculatedType); 261 FiltrationResult filterByValue(AbstractValue&, JSValue); 280 262 281 263 private: … … 333 315 BasicBlock* m_block; 334 316 Node* m_currentNode; 335 ExecutionMode m_executionMode;336 317 337 318 bool m_haveStructures;
Note:
See TracChangeset
for help on using the changeset viewer.