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

Side by Side Diff: runtime/vm/flow_graph_compiler.h

Issue 10823131: Add deopt info to code object and print it (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 4 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_FLOW_GRAPH_COMPILER_H_ 5 #ifndef VM_FLOW_GRAPH_COMPILER_H_
6 #define VM_FLOW_GRAPH_COMPILER_H_ 6 #define VM_FLOW_GRAPH_COMPILER_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/assembler_macros.h" 10 #include "vm/assembler_macros.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 try_index_(try_index), 148 try_index_(try_index),
149 reason_(reason), 149 reason_(reason),
150 registers_(2), 150 registers_(2),
151 deoptimization_env_(NULL), 151 deoptimization_env_(NULL),
152 entry_label_() {} 152 entry_label_() {}
153 153
154 void Push(Register reg) { registers_.Add(reg); } 154 void Push(Register reg) { registers_.Add(reg); }
155 Label* entry_label() { return &entry_label_; } 155 Label* entry_label() { return &entry_label_; }
156 156
157 // Implementation is in architecture specific file. 157 // Implementation is in architecture specific file.
158 void GenerateCode(FlowGraphCompiler* compiler); 158 void GenerateCode(FlowGraphCompiler* compiler, intptr_t stub_ix);
159 159
160 void set_deoptimization_env(Environment* env) { 160 void set_deoptimization_env(Environment* env) {
161 deoptimization_env_ = env; 161 deoptimization_env_ = env;
162 } 162 }
163 163
164 RawDeoptInfo* CreateDeoptInfo(FlowGraphCompiler* compiler);
165
164 private: 166 private:
165 const intptr_t deopt_id_; 167 const intptr_t deopt_id_;
166 const intptr_t deopt_token_pos_; 168 const intptr_t deopt_token_pos_;
167 const intptr_t try_index_; 169 const intptr_t try_index_;
168 const DeoptReasonId reason_; 170 const DeoptReasonId reason_;
169 GrowableArray<Register> registers_; 171 GrowableArray<Register> registers_;
170 const Environment* deoptimization_env_; 172 const Environment* deoptimization_env_;
171 Label entry_label_; 173 Label entry_label_;
172 174
173 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub); 175 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub);
174 }; 176 };
175 177
176 } // namespace dart 178 } // namespace dart
177 179
178 #if defined(TARGET_ARCH_IA32) 180 #if defined(TARGET_ARCH_IA32)
179 #include "vm/flow_graph_compiler_ia32.h" 181 #include "vm/flow_graph_compiler_ia32.h"
180 #elif defined(TARGET_ARCH_X64) 182 #elif defined(TARGET_ARCH_X64)
181 #include "vm/flow_graph_compiler_x64.h" 183 #include "vm/flow_graph_compiler_x64.h"
182 #elif defined(TARGET_ARCH_ARM) 184 #elif defined(TARGET_ARCH_ARM)
183 #include "vm/flow_graph_compiler_arm.h" 185 #include "vm/flow_graph_compiler_arm.h"
184 #else 186 #else
185 #error Unknown architecture. 187 #error Unknown architecture.
186 #endif 188 #endif
187 189
188 #endif // VM_FLOW_GRAPH_COMPILER_H_ 190 #endif // VM_FLOW_GRAPH_COMPILER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698