Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 9a5f5d2dfdf4eac5e225a9c6c0b4313c93e999e2..3ce3c851586d33cc56bb06d3ec0c297c684f5ca2 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -597,6 +597,9 @@ PipelineCompilationJob::Status PipelineCompilationJob::CreateGraphImpl() { |
if (!info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) { |
info()->MarkAsDeoptimizationEnabled(); |
} |
+ if (info()->is_deoptimization_enabled() && FLAG_turbo_type_feedback) { |
+ info()->MarkAsTypeFeedbackEnabled(); |
+ } |
if (!info()->is_optimizing_from_bytecode()) { |
if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED; |
} |
@@ -883,6 +886,9 @@ struct TypedLoweringPhase { |
if (data->info()->shared_info()->HasBytecodeArray()) { |
typed_lowering_flags |= JSTypedLowering::kDisableBinaryOpReduction; |
} |
+ if (data->info()->is_type_feedback_enabled()) { |
+ typed_lowering_flags |= JSTypedLowering::kTypeFeedbackEnabled; |
+ } |
JSTypedLowering typed_lowering(&graph_reducer, data->info()->dependencies(), |
typed_lowering_flags, data->jsgraph(), |
temp_zone); |
@@ -947,8 +953,12 @@ struct RepresentationSelectionPhase { |
static const char* phase_name() { return "representation selection"; } |
void Run(PipelineData* data, Zone* temp_zone) { |
+ SimplifiedLowering::Flags flags = |
+ data->info()->is_type_feedback_enabled() |
+ ? SimplifiedLowering::kTypeFeedbackEnabled |
+ : SimplifiedLowering::kNoFlag; |
SimplifiedLowering lowering(data->jsgraph(), temp_zone, |
- data->source_positions()); |
+ data->source_positions(), flags); |
lowering.LowerAllNodes(); |
} |
}; |
@@ -1416,7 +1426,7 @@ bool PipelineImpl::CreateGraph() { |
// Select representations. |
Run<RepresentationSelectionPhase>(); |
- RunPrintAndVerify("Representations selected"); |
+ RunPrintAndVerify("Representations selected", true); |
} |
#ifdef DEBUG |