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

Side by Side Diff: runtime/vm/flow_graph_inliner.cc

Issue 878243002: Cleanup: use const reference for ParsedFunction where possible. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 10 months 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/flow_graph_compiler.cc ('k') | runtime/vm/intermediate_language.h » ('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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 #include "vm/flow_graph_inliner.h" 5 #include "vm/flow_graph_inliner.h"
6 6
7 #include "vm/block_scheduler.h" 7 #include "vm/block_scheduler.h"
8 #include "vm/compiler.h" 8 #include "vm/compiler.h"
9 #include "vm/flags.h" 9 #include "vm/flags.h"
10 #include "vm/flow_graph.h" 10 #include "vm/flow_graph.h"
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 } 679 }
680 680
681 // Load IC data for the callee. 681 // Load IC data for the callee.
682 ZoneGrowableArray<const ICData*>* ic_data_array = 682 ZoneGrowableArray<const ICData*>* ic_data_array =
683 new(Z) ZoneGrowableArray<const ICData*>(); 683 new(Z) ZoneGrowableArray<const ICData*>();
684 function.RestoreICDataMap(ic_data_array); 684 function.RestoreICDataMap(ic_data_array);
685 685
686 // Build the callee graph. 686 // Build the callee graph.
687 InlineExitCollector* exit_collector = 687 InlineExitCollector* exit_collector =
688 new(Z) InlineExitCollector(caller_graph_, call); 688 new(Z) InlineExitCollector(caller_graph_, call);
689 FlowGraphBuilder builder(parsed_function, 689 FlowGraphBuilder builder(*parsed_function,
690 *ic_data_array, 690 *ic_data_array,
691 exit_collector, 691 exit_collector,
692 Isolate::kNoDeoptId); 692 Isolate::kNoDeoptId);
693 builder.SetInitialBlockId(caller_graph_->max_block_id()); 693 builder.SetInitialBlockId(caller_graph_->max_block_id());
694 FlowGraph* callee_graph; 694 FlowGraph* callee_graph;
695 { 695 {
696 TimerScope timer(FLAG_compiler_stats, 696 TimerScope timer(FLAG_compiler_stats,
697 &CompilerStats::graphinliner_build_timer, 697 &CompilerStats::graphinliner_build_timer,
698 isolate()); 698 isolate());
699 callee_graph = builder.BuildGraph(); 699 callee_graph = builder.BuildGraph();
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
1465 ReturnInstr* result = 1465 ReturnInstr* result =
1466 new(Z) ReturnInstr(call_->instance_call()->token_pos(), 1466 new(Z) ReturnInstr(call_->instance_call()->token_pos(),
1467 new(Z) Value(last)); 1467 new(Z) Value(last));
1468 owner_->caller_graph()->AppendTo( 1468 owner_->caller_graph()->AppendTo(
1469 last, 1469 last,
1470 result, 1470 result,
1471 call_->env(), // Return can become deoptimization target. 1471 call_->env(), // Return can become deoptimization target.
1472 FlowGraph::kEffect); 1472 FlowGraph::kEffect);
1473 entry->set_last_instruction(result); 1473 entry->set_last_instruction(result);
1474 exit_collector->AddExit(result); 1474 exit_collector->AddExit(result);
1475 ParsedFunction* temp_parsed_function =
1476 new ParsedFunction(Thread::Current(), target);
1475 GraphEntryInstr* graph_entry = 1477 GraphEntryInstr* graph_entry =
1476 new(Z) GraphEntryInstr(NULL, // No parsed function. 1478 new(Z) GraphEntryInstr(*temp_parsed_function,
1477 entry, 1479 entry,
1478 Isolate::kNoDeoptId); // No OSR id. 1480 Isolate::kNoDeoptId); // No OSR id.
1479 // Update polymorphic inliner state. 1481 // Update polymorphic inliner state.
1480 inlined_entries_.Add(graph_entry); 1482 inlined_entries_.Add(graph_entry);
1481 exit_collector_->Union(exit_collector); 1483 exit_collector_->Union(exit_collector);
1482 return true; 1484 return true;
1483 } 1485 }
1484 return false; 1486 return false;
1485 } 1487 }
1486 1488
1487 1489
1488 // Build a DAG to dispatch to the inlined function bodies. Load the class 1490 // Build a DAG to dispatch to the inlined function bodies. Load the class
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1826 1828
1827 1829
1828 intptr_t FlowGraphInliner::NextInlineId(const Function& function) { 1830 intptr_t FlowGraphInliner::NextInlineId(const Function& function) {
1829 const intptr_t id = inline_id_to_function_->length(); 1831 const intptr_t id = inline_id_to_function_->length();
1830 inline_id_to_function_->Add(&function); 1832 inline_id_to_function_->Add(&function);
1831 return id; 1833 return id;
1832 } 1834 }
1833 1835
1834 1836
1835 } // namespace dart 1837 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_compiler.cc ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698