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

Side by Side Diff: src/compiler.h

Issue 14990014: Collect type feedback in separate pass and store it in AST (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Consistent check-alive Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « src/code-stubs.h ('k') | src/compiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 // A helper class that calls the three compilation phases in 420 // A helper class that calls the three compilation phases in
421 // Crankshaft and keeps track of its state. The three phases 421 // Crankshaft and keeps track of its state. The three phases
422 // CreateGraph, OptimizeGraph and GenerateAndInstallCode can either 422 // CreateGraph, OptimizeGraph and GenerateAndInstallCode can either
423 // fail, bail-out to the full code generator or succeed. Apart from 423 // fail, bail-out to the full code generator or succeed. Apart from
424 // their return value, the status of the phase last run can be checked 424 // their return value, the status of the phase last run can be checked
425 // using last_status(). 425 // using last_status().
426 class OptimizingCompiler: public ZoneObject { 426 class OptimizingCompiler: public ZoneObject {
427 public: 427 public:
428 explicit OptimizingCompiler(CompilationInfo* info) 428 explicit OptimizingCompiler(CompilationInfo* info)
429 : info_(info), 429 : info_(info),
430 oracle_(NULL),
431 graph_builder_(NULL), 430 graph_builder_(NULL),
432 graph_(NULL), 431 graph_(NULL),
433 chunk_(NULL), 432 chunk_(NULL),
434 time_taken_to_create_graph_(0), 433 time_taken_to_create_graph_(0),
435 time_taken_to_optimize_(0), 434 time_taken_to_optimize_(0),
436 time_taken_to_codegen_(0), 435 time_taken_to_codegen_(0),
437 last_status_(FAILED) { } 436 last_status_(FAILED) { }
438 437
439 enum Status { 438 enum Status {
440 FAILED, BAILED_OUT, SUCCEEDED 439 FAILED, BAILED_OUT, SUCCEEDED
441 }; 440 };
442 441
443 MUST_USE_RESULT Status CreateGraph(); 442 MUST_USE_RESULT Status CreateGraph();
444 MUST_USE_RESULT Status OptimizeGraph(); 443 MUST_USE_RESULT Status OptimizeGraph();
445 MUST_USE_RESULT Status GenerateAndInstallCode(); 444 MUST_USE_RESULT Status GenerateAndInstallCode();
446 445
447 Status last_status() const { return last_status_; } 446 Status last_status() const { return last_status_; }
448 CompilationInfo* info() const { return info_; } 447 CompilationInfo* info() const { return info_; }
449 Isolate* isolate() const { return info()->isolate(); } 448 Isolate* isolate() const { return info()->isolate(); }
450 449
451 MUST_USE_RESULT Status AbortOptimization() { 450 MUST_USE_RESULT Status AbortOptimization() {
452 info_->AbortOptimization(); 451 info_->AbortOptimization();
453 info_->shared_info()->DisableOptimization(info_->bailout_reason()); 452 info_->shared_info()->DisableOptimization(info_->bailout_reason());
454 return SetLastStatus(BAILED_OUT); 453 return SetLastStatus(BAILED_OUT);
455 } 454 }
456 455
457 private: 456 private:
458 CompilationInfo* info_; 457 CompilationInfo* info_;
459 TypeFeedbackOracle* oracle_;
460 HOptimizedGraphBuilder* graph_builder_; 458 HOptimizedGraphBuilder* graph_builder_;
461 HGraph* graph_; 459 HGraph* graph_;
462 LChunk* chunk_; 460 LChunk* chunk_;
463 int64_t time_taken_to_create_graph_; 461 int64_t time_taken_to_create_graph_;
464 int64_t time_taken_to_optimize_; 462 int64_t time_taken_to_optimize_;
465 int64_t time_taken_to_codegen_; 463 int64_t time_taken_to_codegen_;
466 Status last_status_; 464 Status last_status_;
467 465
468 MUST_USE_RESULT Status SetLastStatus(Status status) { 466 MUST_USE_RESULT Status SetLastStatus(Status status) {
469 last_status_ = status; 467 last_status_ = status;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 552
555 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag, 553 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
556 CompilationInfo* info, 554 CompilationInfo* info,
557 Handle<SharedFunctionInfo> shared); 555 Handle<SharedFunctionInfo> shared);
558 }; 556 };
559 557
560 558
561 } } // namespace v8::internal 559 } } // namespace v8::internal
562 560
563 #endif // V8_COMPILER_H_ 561 #endif // V8_COMPILER_H_
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698