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

Side by Side Diff: src/compiler/pipeline.cc

Issue 1914943002: [turbofan] Run effect linearizer even for asm functions. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « src/compiler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/pipeline.h" 5 #include "src/compiler/pipeline.h"
6 6
7 #include <fstream> // NOLINT(readability/streams) 7 #include <fstream> // NOLINT(readability/streams)
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "src/base/adapters.h" 10 #include "src/base/adapters.h"
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 if (!FLAG_always_opt) { 495 if (!FLAG_always_opt) {
496 info()->MarkAsBailoutOnUninitialized(); 496 info()->MarkAsBailoutOnUninitialized();
497 } 497 }
498 if (FLAG_native_context_specialization) { 498 if (FLAG_native_context_specialization) {
499 info()->MarkAsNativeContextSpecializing(); 499 info()->MarkAsNativeContextSpecializing();
500 } 500 }
501 } 501 }
502 if (!info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) { 502 if (!info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) {
503 info()->MarkAsDeoptimizationEnabled(); 503 info()->MarkAsDeoptimizationEnabled();
504 } 504 }
505 if (!info()->shared_info()->asm_function()) {
506 info()->MarkAsEffectSchedulingEnabled();
507 }
508
509 if (!info()->shared_info()->HasBytecodeArray()) { 505 if (!info()->shared_info()->HasBytecodeArray()) {
510 if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED; 506 if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED;
511 } 507 }
512 508
513 Pipeline pipeline(info()); 509 Pipeline pipeline(info());
514 pipeline.GenerateCode(); 510 pipeline.GenerateCode();
515 if (isolate()->has_pending_exception()) return FAILED; // Stack overflowed. 511 if (isolate()->has_pending_exception()) return FAILED; // Stack overflowed.
516 if (info()->code().is_null()) return AbortOptimization(kGraphBuildingFailed); 512 if (info()->code().is_null()) return AbortOptimization(kGraphBuildingFailed);
517 513
518 return SUCCEEDED; 514 return SUCCEEDED;
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 } 1272 }
1277 1273
1278 // Select representations. 1274 // Select representations.
1279 Run<RepresentationSelectionPhase>(); 1275 Run<RepresentationSelectionPhase>();
1280 RunPrintAndVerify("Representations selected"); 1276 RunPrintAndVerify("Representations selected");
1281 1277
1282 // Run early optimization pass. 1278 // Run early optimization pass.
1283 Run<EarlyOptimizationPhase>(); 1279 Run<EarlyOptimizationPhase>();
1284 RunPrintAndVerify("Early optimized"); 1280 RunPrintAndVerify("Early optimized");
1285 1281
1286 if (info()->is_effect_scheduling_enabled()) { 1282 Run<EffectControlLinearizationPhase>();
1287 Run<EffectControlLinearizationPhase>(); 1283 RunPrintAndVerify("Effect and control linearized");
1288 RunPrintAndVerify("Effect and control linearized");
1289 }
1290 1284
1291 Run<BranchEliminationPhase>(); 1285 Run<BranchEliminationPhase>();
1292 RunPrintAndVerify("Branch conditions eliminated"); 1286 RunPrintAndVerify("Branch conditions eliminated");
1293 1287
1294 // Optimize control flow. 1288 // Optimize control flow.
1295 if (FLAG_turbo_cf_optimization) { 1289 if (FLAG_turbo_cf_optimization) {
1296 Run<ControlFlowOptimizationPhase>(); 1290 Run<ControlFlowOptimizationPhase>();
1297 RunPrintAndVerify("Control flow optimized"); 1291 RunPrintAndVerify("Control flow optimized");
1298 } 1292 }
1299 1293
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
1597 } 1591 }
1598 1592
1599 data->DeleteRegisterAllocationZone(); 1593 data->DeleteRegisterAllocationZone();
1600 } 1594 }
1601 1595
1602 Isolate* Pipeline::isolate() const { return info()->isolate(); } 1596 Isolate* Pipeline::isolate() const { return info()->isolate(); }
1603 1597
1604 } // namespace compiler 1598 } // namespace compiler
1605 } // namespace internal 1599 } // namespace internal
1606 } // namespace v8 1600 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698