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

Side by Side Diff: src/hydrogen.h

Issue 66693002: Do not add values to HGraph in Lithium. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 HConstant* GetConstantUndefined(); 345 HConstant* GetConstantUndefined();
346 HConstant* GetConstant0(); 346 HConstant* GetConstant0();
347 HConstant* GetConstant1(); 347 HConstant* GetConstant1();
348 HConstant* GetConstantMinus1(); 348 HConstant* GetConstantMinus1();
349 HConstant* GetConstantTrue(); 349 HConstant* GetConstantTrue();
350 HConstant* GetConstantFalse(); 350 HConstant* GetConstantFalse();
351 HConstant* GetConstantHole(); 351 HConstant* GetConstantHole();
352 HConstant* GetConstantNull(); 352 HConstant* GetConstantNull();
353 HConstant* GetInvalidContext(); 353 HConstant* GetInvalidContext();
354 354
355 bool IsConstantUndefined(HConstant* constant);
356 bool IsConstant0(HConstant* constant);
357 bool IsConstant1(HConstant* constant);
358 bool IsConstantMinus1(HConstant* constant);
359 bool IsConstantTrue(HConstant* constant);
360 bool IsConstantFalse(HConstant* constant);
361 bool IsConstantHole(HConstant* constant);
362 bool IsConstantNull(HConstant* constant);
355 bool IsStandardConstant(HConstant* constant); 363 bool IsStandardConstant(HConstant* constant);
356 364
357 HBasicBlock* CreateBasicBlock(); 365 HBasicBlock* CreateBasicBlock();
358 HArgumentsObject* GetArgumentsObject() const { 366 HArgumentsObject* GetArgumentsObject() const {
359 return arguments_object_.get(); 367 return arguments_object_.get();
360 } 368 }
361 369
362 void SetArgumentsObject(HArgumentsObject* object) { 370 void SetArgumentsObject(HArgumentsObject* object) {
363 arguments_object_.set(object); 371 arguments_object_.set(object);
364 } 372 }
365 373
366 int GetMaximumValueID() const { return values_.length(); } 374 int GetMaximumValueID() const { return values_.length(); }
367 int GetNextBlockID() { return next_block_id_++; } 375 int GetNextBlockID() { return next_block_id_++; }
368 int GetNextValueID(HValue* value) { 376 int GetNextValueID(HValue* value) {
377 ASSERT(!disallow_adding_new_values_);
369 values_.Add(value, zone()); 378 values_.Add(value, zone());
370 return values_.length() - 1; 379 return values_.length() - 1;
371 } 380 }
372 HValue* LookupValue(int id) const { 381 HValue* LookupValue(int id) const {
373 if (id >= 0 && id < values_.length()) return values_[id]; 382 if (id >= 0 && id < values_.length()) return values_[id];
374 return NULL; 383 return NULL;
375 } 384 }
385 void DisallowAddingNewValues() {
386 disallow_adding_new_values_ = true;
387 }
376 388
377 bool Optimize(BailoutReason* bailout_reason); 389 bool Optimize(BailoutReason* bailout_reason);
378 390
379 #ifdef DEBUG 391 #ifdef DEBUG
380 void Verify(bool do_full_verify) const; 392 void Verify(bool do_full_verify) const;
381 #endif 393 #endif
382 394
383 bool has_osr() { 395 bool has_osr() {
384 return osr_ != NULL; 396 return osr_ != NULL;
385 } 397 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 504
493 CompilationInfo* info_; 505 CompilationInfo* info_;
494 Zone* zone_; 506 Zone* zone_;
495 507
496 bool is_recursive_; 508 bool is_recursive_;
497 bool use_optimistic_licm_; 509 bool use_optimistic_licm_;
498 bool depends_on_empty_array_proto_elements_; 510 bool depends_on_empty_array_proto_elements_;
499 int type_change_checksum_; 511 int type_change_checksum_;
500 int maximum_environment_size_; 512 int maximum_environment_size_;
501 int no_side_effects_scope_count_; 513 int no_side_effects_scope_count_;
514 bool disallow_adding_new_values_;
502 515
503 DISALLOW_COPY_AND_ASSIGN(HGraph); 516 DISALLOW_COPY_AND_ASSIGN(HGraph);
504 }; 517 };
505 518
506 519
507 Zone* HBasicBlock::zone() const { return graph_->zone(); } 520 Zone* HBasicBlock::zone() const { return graph_->zone(); }
508 521
509 522
510 // Type of stack frame an environment might refer to. 523 // Type of stack frame an environment might refer to.
511 enum FrameType { 524 enum FrameType {
(...skipping 1971 matching lines...) Expand 10 before | Expand all | Expand 10 after
2483 } 2496 }
2484 2497
2485 private: 2498 private:
2486 HGraphBuilder* builder_; 2499 HGraphBuilder* builder_;
2487 }; 2500 };
2488 2501
2489 2502
2490 } } // namespace v8::internal 2503 } } // namespace v8::internal
2491 2504
2492 #endif // V8_HYDROGEN_H_ 2505 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/hydrogen.cc » ('j') | src/lithium.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698