Index: runtime/vm/compiler.cc |
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc |
index e4d046eac32f27c8cc50261182cdb7955fb7a5df..6e7923f510701c6574c8cd040fbb1b3545986165 100644 |
--- a/runtime/vm/compiler.cc |
+++ b/runtime/vm/compiler.cc |
@@ -17,6 +17,7 @@ |
#include "vm/flow_graph_builder.h" |
#include "vm/flow_graph_compiler.h" |
#include "vm/flow_graph_optimizer.h" |
+#include "vm/il_printer.h" |
#include "vm/longjump.h" |
#include "vm/object.h" |
#include "vm/object_store.h" |
@@ -168,13 +169,8 @@ static bool CompileParsedFunctionHelper( |
if (use_ssa) { |
// Perform register allocation on the SSA graph. |
- FlowGraphAllocator allocator(graph_builder.postorder_block_entries(), |
- graph_builder.current_ssa_temp_index()); |
- allocator.ResolveConstraints(); |
- allocator.AnalyzeLiveness(); |
- |
- // Temporary bailout until we support code generation from SSA form. |
- graph_builder.Bailout("No SSA code generation support."); |
+ FlowGraphAllocator allocator(block_order, &graph_builder); |
+ allocator.AllocateRegisters(); |
} |
} |
} |
@@ -186,8 +182,12 @@ static bool CompileParsedFunctionHelper( |
is_leaf = analyzer.is_leaf(); |
} |
Assembler assembler; |
- FlowGraphCompiler graph_compiler(&assembler, parsed_function, |
- block_order, optimized, is_leaf); |
+ FlowGraphCompiler graph_compiler(&assembler, |
+ parsed_function, |
+ block_order, |
+ optimized, |
+ optimized && use_ssa, |
+ is_leaf); |
{ |
TimerScope timer(FLAG_compiler_stats, |
&CompilerStats::graphcompiler_timer, |