[turbofan] Ensure stackcheck flags do something.

While the intention is to eventually do away with
FLAG_turbo_loop_stackcheck and FLAG_turbo_preprocess_range,
they are useful for the interim we are still testing and
benchmarking the feature.

Review URL: https://codereview.chromium.org/1314163003

Cr-Commit-Position: refs/heads/master@{#30399}
This commit is contained in:
mtrofin 2015-08-26 21:41:21 -07:00 committed by Commit bot
parent e2b3edbf31
commit 283d413729
2 changed files with 7 additions and 3 deletions

View File

@ -2932,7 +2932,7 @@ void AstGraphBuilder::VisitInScope(Statement* stmt, Scope* s, Node* context) {
void AstGraphBuilder::VisitIterationBody(IterationStatement* stmt,
LoopBuilder* loop) {
ControlScopeForIteration scope(this, stmt, loop);
if (FLAG_turbo_loop_stackcheck) {
if (FLAG_turbo_loop_stackcheck || !info()->shared_info()->asm_function()) {
Node* node = NewNode(javascript()->StackCheck());
PrepareFrameState(node, stmt->StackCheckId());
}

View File

@ -1360,13 +1360,17 @@ void Pipeline::AllocateRegisters(const RegisterConfiguration* config,
CHECK(!data->register_allocation_data()->ExistsUseWithoutDefinition());
}
Run<SplinterLiveRangesPhase>();
if (FLAG_turbo_preprocess_ranges) {
Run<SplinterLiveRangesPhase>();
}
// TODO(mtrofin): re-enable greedy once we have bots for range preprocessing.
Run<AllocateGeneralRegistersPhase<LinearScanAllocator>>();
Run<AllocateDoubleRegistersPhase<LinearScanAllocator>>();
Run<MergeSplintersPhase>();
if (FLAG_turbo_preprocess_ranges) {
Run<MergeSplintersPhase>();
}
if (FLAG_turbo_frame_elision) {
Run<LocateSpillSlotsPhase>();