Chromium Code Reviews

Side by Side Diff: src/hydrogen.cc

Issue 1024823002: Fix OOM bug 3976. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add test from bug Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/hydrogen.h" 5 #include "src/hydrogen.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
(...skipping 3338 matching lines...)
3349 function_state_(NULL), 3349 function_state_(NULL),
3350 initial_function_state_(this, info, NORMAL_RETURN, 0), 3350 initial_function_state_(this, info, NORMAL_RETURN, 0),
3351 ast_context_(NULL), 3351 ast_context_(NULL),
3352 break_scope_(NULL), 3352 break_scope_(NULL),
3353 inlined_count_(0), 3353 inlined_count_(0),
3354 globals_(10, info->zone()), 3354 globals_(10, info->zone()),
3355 osr_(new(info->zone()) HOsrBuilder(this)) { 3355 osr_(new(info->zone()) HOsrBuilder(this)) {
3356 // This is not initialized in the initializer list because the 3356 // This is not initialized in the initializer list because the
3357 // constructor for the initial state relies on function_state_ == NULL 3357 // constructor for the initial state relies on function_state_ == NULL
3358 // to know it's the initial state. 3358 // to know it's the initial state.
3359 function_state_= &initial_function_state_; 3359 function_state_ = &initial_function_state_;
ulan 2015/03/20 10:56:54 Nit: this probably belongs to another CL, but I am
Erik Corry 2015/03/20 11:39:23 git cl won't let me omit this change for some reas
3360 InitializeAstVisitor(info->zone()); 3360 InitializeAstVisitor(info->zone());
3361 if (FLAG_hydrogen_track_positions) { 3361 if (FLAG_hydrogen_track_positions) {
3362 SetSourcePosition(info->shared_info()->start_position()); 3362 SetSourcePosition(info->shared_info()->start_position());
3363 } 3363 }
3364 } 3364 }
3365 3365
3366 3366
3367 HBasicBlock* HOptimizedGraphBuilder::CreateJoin(HBasicBlock* first, 3367 HBasicBlock* HOptimizedGraphBuilder::CreateJoin(HBasicBlock* first,
3368 HBasicBlock* second, 3368 HBasicBlock* second,
3369 BailoutId join_id) { 3369 BailoutId join_id) {
(...skipping 6952 matching lines...)
10322 shr = HShr::cast(left); 10322 shr = HShr::cast(left);
10323 } else { 10323 } else {
10324 return false; 10324 return false;
10325 } 10325 }
10326 if (shl->left() != shr->left()) return false; 10326 if (shl->left() != shr->left()) return false;
10327 10327
10328 if (!ShiftAmountsAllowReplaceByRotate(shl->right(), shr->right()) && 10328 if (!ShiftAmountsAllowReplaceByRotate(shl->right(), shr->right()) &&
10329 !ShiftAmountsAllowReplaceByRotate(shr->right(), shl->right())) { 10329 !ShiftAmountsAllowReplaceByRotate(shr->right(), shl->right())) {
10330 return false; 10330 return false;
10331 } 10331 }
10332 *operand= shr->left(); 10332 *operand = shr->left();
10333 *shift_amount = shr->right(); 10333 *shift_amount = shr->right();
10334 return true; 10334 return true;
10335 } 10335 }
10336 10336
10337 10337
10338 bool CanBeZero(HValue* right) { 10338 bool CanBeZero(HValue* right) {
10339 if (right->IsConstant()) { 10339 if (right->IsConstant()) {
10340 HConstant* right_const = HConstant::cast(right); 10340 HConstant* right_const = HConstant::cast(right);
10341 if (right_const->HasInteger32Value() && 10341 if (right_const->HasInteger32Value() &&
10342 (right_const->Integer32Value() & 0x1f) != 0) { 10342 (right_const->Integer32Value() & 0x1f) != 0) {
(...skipping 2396 matching lines...)
12739 if (ShouldProduceTraceOutput()) { 12739 if (ShouldProduceTraceOutput()) {
12740 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 12740 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
12741 } 12741 }
12742 12742
12743 #ifdef DEBUG 12743 #ifdef DEBUG
12744 graph_->Verify(false); // No full verify. 12744 graph_->Verify(false); // No full verify.
12745 #endif 12745 #endif
12746 } 12746 }
12747 12747
12748 } } // namespace v8::internal 12748 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine