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

Side by Side Diff: src/hydrogen.h

Issue 1317383002: Crankshaft is now able to compile top level code even if there is a ScriptContext. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebasing Created 5 years, 3 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/full-codegen/x64/full-codegen-x64.cc ('k') | src/hydrogen.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 // 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 #ifndef V8_HYDROGEN_H_ 5 #ifndef V8_HYDROGEN_H_
6 #define V8_HYDROGEN_H_ 6 #define V8_HYDROGEN_H_
7 7
8 #include "src/accessors.h" 8 #include "src/accessors.h"
9 #include "src/allocation.h" 9 #include "src/allocation.h"
10 #include "src/ast.h" 10 #include "src/ast.h"
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 606
607 HValue* ExpressionStackAt(int index_from_top) const { 607 HValue* ExpressionStackAt(int index_from_top) const {
608 int index = length() - index_from_top - 1; 608 int index = length() - index_from_top - 1;
609 DCHECK(HasExpressionAt(index)); 609 DCHECK(HasExpressionAt(index));
610 return values_[index]; 610 return values_[index];
611 } 611 }
612 612
613 void SetExpressionStackAt(int index_from_top, HValue* value); 613 void SetExpressionStackAt(int index_from_top, HValue* value);
614 HValue* RemoveExpressionStackAt(int index_from_top); 614 HValue* RemoveExpressionStackAt(int index_from_top);
615 615
616 void Print() const;
617
616 HEnvironment* Copy() const; 618 HEnvironment* Copy() const;
617 HEnvironment* CopyWithoutHistory() const; 619 HEnvironment* CopyWithoutHistory() const;
618 HEnvironment* CopyAsLoopHeader(HBasicBlock* block) const; 620 HEnvironment* CopyAsLoopHeader(HBasicBlock* block) const;
619 621
620 // Create an "inlined version" of this environment, where the original 622 // Create an "inlined version" of this environment, where the original
621 // environment is the outer environment but the top expression stack 623 // environment is the outer environment but the top expression stack
622 // elements are moved to an inner environment as parameters. 624 // elements are moved to an inner environment as parameters.
623 HEnvironment* CopyForInlining(Handle<JSFunction> target, 625 HEnvironment* CopyForInlining(Handle<JSFunction> target,
624 int arguments, 626 int arguments,
625 FunctionLiteral* function, 627 FunctionLiteral* function,
(...skipping 1393 matching lines...) Expand 10 before | Expand all | Expand 10 after
2019 2021
2020 template<> 2022 template<>
2021 inline HInstruction* HGraphBuilder::AddUncasted<HCallRuntime>( 2023 inline HInstruction* HGraphBuilder::AddUncasted<HCallRuntime>(
2022 Handle<String> name, 2024 Handle<String> name,
2023 const Runtime::Function* c_function, 2025 const Runtime::Function* c_function,
2024 int argument_count) { 2026 int argument_count) {
2025 return Add<HCallRuntime>(c_function, argument_count); 2027 return Add<HCallRuntime>(c_function, argument_count);
2026 } 2028 }
2027 2029
2028 2030
2029 template<> 2031 template <>
2032 inline HParameter* HGraphBuilder::New<HParameter>(unsigned index) {
2033 return HParameter::New(isolate(), zone(), nullptr, index);
2034 }
2035
2036
2037 template <>
2038 inline HParameter* HGraphBuilder::New<HParameter>(
2039 unsigned index, HParameter::ParameterKind kind) {
2040 return HParameter::New(isolate(), zone(), nullptr, index, kind);
2041 }
2042
2043
2044 template <>
2045 inline HParameter* HGraphBuilder::New<HParameter>(
2046 unsigned index, HParameter::ParameterKind kind, Representation r) {
2047 return HParameter::New(isolate(), zone(), nullptr, index, kind, r);
2048 }
2049
2050
2051 template <>
2052 inline HPrologue* HGraphBuilder::New<HPrologue>() {
2053 return HPrologue::New(zone());
2054 }
2055
2056
2057 template <>
2030 inline HContext* HGraphBuilder::New<HContext>() { 2058 inline HContext* HGraphBuilder::New<HContext>() {
2031 return HContext::New(zone()); 2059 return HContext::New(zone());
2032 } 2060 }
2033 2061
2034 2062
2035 template<>
2036 inline HInstruction* HGraphBuilder::NewUncasted<HContext>() {
2037 return New<HContext>();
2038 }
2039
2040 class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor { 2063 class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor {
2041 public: 2064 public:
2042 // A class encapsulating (lazily-allocated) break and continue blocks for 2065 // A class encapsulating (lazily-allocated) break and continue blocks for
2043 // a breakable statement. Separated from BreakAndContinueScope so that it 2066 // a breakable statement. Separated from BreakAndContinueScope so that it
2044 // can have a separate lifetime. 2067 // can have a separate lifetime.
2045 class BreakAndContinueInfo final BASE_EMBEDDED { 2068 class BreakAndContinueInfo final BASE_EMBEDDED {
2046 public: 2069 public:
2047 explicit BreakAndContinueInfo(BreakableStatement* target, 2070 explicit BreakAndContinueInfo(BreakableStatement* target,
2048 Scope* scope, 2071 Scope* scope,
2049 int drop_extra = 0) 2072 int drop_extra = 0)
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
3042 } 3065 }
3043 3066
3044 private: 3067 private:
3045 HGraphBuilder* builder_; 3068 HGraphBuilder* builder_;
3046 }; 3069 };
3047 3070
3048 3071
3049 } } // namespace v8::internal 3072 } } // namespace v8::internal
3050 3073
3051 #endif // V8_HYDROGEN_H_ 3074 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/full-codegen/x64/full-codegen-x64.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698