Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: runtime/vm/regexp_assembler.h

Issue 716163003: Use one offsets table per generated irregexp matching function. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: comments Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/regexp.cc ('k') | runtime/vm/regexp_assembler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_REGEXP_ASSEMBLER_H_ 5 #ifndef VM_REGEXP_ASSEMBLER_H_
6 #define VM_REGEXP_ASSEMBLER_H_ 6 #define VM_REGEXP_ASSEMBLER_H_
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/intermediate_language.h" 9 #include "vm/intermediate_language.h"
10 #include "vm/object.h" 10 #include "vm/object.h"
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 virtual void ClearRegisters(intptr_t reg_from, intptr_t reg_to); 326 virtual void ClearRegisters(intptr_t reg_from, intptr_t reg_to);
327 virtual void WriteStackPointerToRegister(intptr_t reg); 327 virtual void WriteStackPointerToRegister(intptr_t reg);
328 328
329 virtual void PrintBlocks(); 329 virtual void PrintBlocks();
330 330
331 GraphEntryInstr* graph_entry() const { return entry_block_; } 331 GraphEntryInstr* graph_entry() const { return entry_block_; }
332 332
333 intptr_t num_stack_locals() const { return local_id_.Count(); } 333 intptr_t num_stack_locals() const { return local_id_.Count(); }
334 intptr_t num_blocks() const { return block_id_.Count(); } 334 intptr_t num_blocks() const { return block_id_.Count(); }
335 335
336 // A table mapping block ids to block offsets, used to look up offsets 336 // Fill in the table mapping block ids to block offsets. Used to
337 // for indirect goto instructions. 337 // look up offsets for the computed indirect-goto instructions.
338 void FinalizeBlockOffsetTable(); 338 static void FinalizeBlockOffsetTable(Isolate* isolate,
339 GraphEntryInstr* graph);
339 340
340 // Fill in indirect goto successors. 341 // Fill in indirect goto successors.
341 void FinalizeIndirectGotos(); 342 void FinalizeIndirectGotos();
342 343
343 private: 344 private:
344 // Generate the contents of preset blocks. The entry block is the entry point 345 // Generate the contents of preset blocks. The entry block is the entry point
345 // of the generated code. 346 // of the generated code.
346 void GenerateEntryBlock(); 347 void GenerateEntryBlock();
347 // Performs backtracking, i.e. popping an offset from the stack and doing 348 // Performs backtracking, i.e. popping an offset from the stack and doing
348 // an indirect goto. 349 // an indirect goto.
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 IdAllocator temp_id_; 624 IdAllocator temp_id_;
624 IdAllocator arg_id_; 625 IdAllocator arg_id_;
625 IdAllocator local_id_; 626 IdAllocator local_id_;
626 IdAllocator indirect_id_; 627 IdAllocator indirect_id_;
627 }; 628 };
628 629
629 630
630 } // namespace dart 631 } // namespace dart
631 632
632 #endif // VM_REGEXP_ASSEMBLER_H_ 633 #endif // VM_REGEXP_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « runtime/vm/regexp.cc ('k') | runtime/vm/regexp_assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698