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

Side by Side Diff: src/crankshaft/hydrogen.h

Issue 1769463002: Allow Crankshaft to tolerate certain do-expressions (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Missed comment. Created 4 years, 9 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/bailout-reason.h ('k') | src/crankshaft/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_CRANKSHAFT_HYDROGEN_H_ 5 #ifndef V8_CRANKSHAFT_HYDROGEN_H_
6 #define V8_CRANKSHAFT_HYDROGEN_H_ 6 #define V8_CRANKSHAFT_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/ast.h" 10 #include "src/ast/ast.h"
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 877
878 HArgumentsElements* arguments_elements() { return arguments_elements_; } 878 HArgumentsElements* arguments_elements() { return arguments_elements_; }
879 void set_arguments_elements(HArgumentsElements* arguments_elements) { 879 void set_arguments_elements(HArgumentsElements* arguments_elements) {
880 arguments_elements_ = arguments_elements; 880 arguments_elements_ = arguments_elements;
881 } 881 }
882 882
883 bool arguments_pushed() { return arguments_elements() != NULL; } 883 bool arguments_pushed() { return arguments_elements() != NULL; }
884 884
885 int inlining_id() const { return inlining_id_; } 885 int inlining_id() const { return inlining_id_; }
886 886
887 void IncrementInDoExpressionScope() { do_expression_scope_count_++; }
888 void DecrementInDoExpressionScope() { do_expression_scope_count_--; }
889 bool IsInsideDoExpressionScope() { return do_expression_scope_count_ > 0; }
890
887 private: 891 private:
888 HOptimizedGraphBuilder* owner_; 892 HOptimizedGraphBuilder* owner_;
889 893
890 CompilationInfo* compilation_info_; 894 CompilationInfo* compilation_info_;
891 895
892 // During function inlining, expression context of the call being 896 // During function inlining, expression context of the call being
893 // inlined. NULL when not inlining. 897 // inlined. NULL when not inlining.
894 AstContext* call_context_; 898 AstContext* call_context_;
895 899
896 // The kind of call which is currently being inlined. 900 // The kind of call which is currently being inlined.
(...skipping 12 matching lines...) Expand all
909 // When inlining HEnterInlined instruction corresponding to the function 913 // When inlining HEnterInlined instruction corresponding to the function
910 // entry. 914 // entry.
911 HEnterInlined* entry_; 915 HEnterInlined* entry_;
912 916
913 HArgumentsObject* arguments_object_; 917 HArgumentsObject* arguments_object_;
914 HArgumentsElements* arguments_elements_; 918 HArgumentsElements* arguments_elements_;
915 919
916 int inlining_id_; 920 int inlining_id_;
917 SourcePosition outer_source_position_; 921 SourcePosition outer_source_position_;
918 922
923 int do_expression_scope_count_;
924
919 FunctionState* outer_; 925 FunctionState* outer_;
920 }; 926 };
921 927
922 928
923 class HIfContinuation final { 929 class HIfContinuation final {
924 public: 930 public:
925 HIfContinuation() 931 HIfContinuation()
926 : continuation_captured_(false), 932 : continuation_captured_(false),
927 true_branch_(NULL), 933 true_branch_(NULL),
928 false_branch_(NULL) {} 934 false_branch_(NULL) {}
(...skipping 2089 matching lines...) Expand 10 before | Expand all | Expand 10 after
3018 builder_->graph()->IncrementInNoSideEffectsScope(); 3024 builder_->graph()->IncrementInNoSideEffectsScope();
3019 } 3025 }
3020 ~NoObservableSideEffectsScope() { 3026 ~NoObservableSideEffectsScope() {
3021 builder_->graph()->DecrementInNoSideEffectsScope(); 3027 builder_->graph()->DecrementInNoSideEffectsScope();
3022 } 3028 }
3023 3029
3024 private: 3030 private:
3025 HGraphBuilder* builder_; 3031 HGraphBuilder* builder_;
3026 }; 3032 };
3027 3033
3034 class DoExpressionScope final {
3035 public:
3036 explicit DoExpressionScope(HOptimizedGraphBuilder* builder)
3037 : builder_(builder) {
3038 builder_->function_state()->IncrementInDoExpressionScope();
3039 }
3040 ~DoExpressionScope() {
3041 builder_->function_state()->DecrementInDoExpressionScope();
3042 }
3043
3044 private:
3045 HOptimizedGraphBuilder* builder_;
3046 };
3028 3047
3029 } // namespace internal 3048 } // namespace internal
3030 } // namespace v8 3049 } // namespace v8
3031 3050
3032 #endif // V8_CRANKSHAFT_HYDROGEN_H_ 3051 #endif // V8_CRANKSHAFT_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/bailout-reason.h ('k') | src/crankshaft/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698