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

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

Issue 10536145: Fuse comparisons that are used by branches together. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 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_IA32_H_ 5 #ifndef VM_FLOW_GRAPH_COMPILER_IA32_H_
6 #define VM_FLOW_GRAPH_COMPILER_IA32_H_ 6 #define VM_FLOW_GRAPH_COMPILER_IA32_H_
7 7
8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ 8 #ifndef VM_FLOW_GRAPH_COMPILER_H_
9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_ia32.h. 9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_ia32.h.
10 #endif 10 #endif
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 Register reg3 = kNoRegister); 169 Register reg3 = kNoRegister);
170 170
171 void FinalizeExceptionHandlers(const Code& code); 171 void FinalizeExceptionHandlers(const Code& code);
172 void FinalizePcDescriptors(const Code& code); 172 void FinalizePcDescriptors(const Code& code);
173 void FinalizeStackmaps(const Code& code); 173 void FinalizeStackmaps(const Code& code);
174 void FinalizeVarDescriptors(const Code& code); 174 void FinalizeVarDescriptors(const Code& code);
175 void FinalizeComments(const Code& code); 175 void FinalizeComments(const Code& code);
176 176
177 static const int kLocalsOffsetFromFP = (-1 * kWordSize); 177 static const int kLocalsOffsetFromFP = (-1 * kWordSize);
178 178
179 const Bool& true_value() const { return true_value_; }
180 const Bool& false_value() const { return false_value_; }
181
179 private: 182 private:
180 friend class DeoptimizationStub; 183 friend class DeoptimizationStub;
181 184
182 void GenerateDeferredCode(); 185 void GenerateDeferredCode();
183 186
184 void CopyParameters(); 187 void CopyParameters();
185 virtual void EmitInstructionPrologue(Instruction* instr); 188 virtual void EmitInstructionPrologue(Instruction* instr);
186 189
187 virtual void GenerateInlinedGetter(intptr_t offset); 190 virtual void GenerateInlinedGetter(intptr_t offset);
188 virtual void GenerateInlinedSetter(intptr_t offset); 191 virtual void GenerateInlinedSetter(intptr_t offset);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 // for convenience. This is not the block's index in the block order, 259 // for convenience. This is not the block's index in the block order,
257 // which is reverse postorder. 260 // which is reverse postorder.
258 BlockEntryInstr* current_block_; 261 BlockEntryInstr* current_block_;
259 ExceptionHandlerList* exception_handlers_list_; 262 ExceptionHandlerList* exception_handlers_list_;
260 DescriptorList* pc_descriptors_list_; 263 DescriptorList* pc_descriptors_list_;
261 StackmapBuilder* stackmap_builder_; 264 StackmapBuilder* stackmap_builder_;
262 GrowableArray<BlockInfo*> block_info_; 265 GrowableArray<BlockInfo*> block_info_;
263 GrowableArray<DeoptimizationStub*> deopt_stubs_; 266 GrowableArray<DeoptimizationStub*> deopt_stubs_;
264 const bool is_optimizing_; 267 const bool is_optimizing_;
265 268
269 const Bool& true_value_;
270 const Bool& false_value_;
srdjan 2012/06/13 15:29:35 I find the name 'true_value' ambiguous as it does
Vyacheslav Egorov (Google) 2012/06/13 16:23:43 Done.
271
266 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); 272 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
267 }; 273 };
268 274
269 275
270 class DeoptimizationStub : public ZoneAllocated { 276 class DeoptimizationStub : public ZoneAllocated {
271 public: 277 public:
272 DeoptimizationStub(intptr_t deopt_id, 278 DeoptimizationStub(intptr_t deopt_id,
273 intptr_t deopt_token_index, 279 intptr_t deopt_token_index,
274 intptr_t try_index, 280 intptr_t try_index,
275 DeoptReasonId reason) 281 DeoptReasonId reason)
(...skipping 18 matching lines...) Expand all
294 GrowableArray<Register> registers_; 300 GrowableArray<Register> registers_;
295 Label entry_label_; 301 Label entry_label_;
296 302
297 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub); 303 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub);
298 }; 304 };
299 305
300 306
301 } // namespace dart 307 } // namespace dart
302 308
303 #endif // VM_FLOW_GRAPH_COMPILER_IA32_H_ 309 #endif // VM_FLOW_GRAPH_COMPILER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698