| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32. |
| 6 #if defined(TARGET_ARCH_IA32) | 6 #if defined(TARGET_ARCH_IA32) |
| 7 | 7 |
| 8 #include "vm/opt_code_generator.h" | 8 #include "vm/opt_code_generator.h" |
| 9 | 9 |
| 10 #include "vm/assembler_macros.h" | 10 #include "vm/assembler_macros.h" |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 GrowableArray<const LocalVariable*> locals_; | 234 GrowableArray<const LocalVariable*> locals_; |
| 235 | 235 |
| 236 DISALLOW_COPY_AND_ASSIGN(ClassesForLocals); | 236 DISALLOW_COPY_AND_ASSIGN(ClassesForLocals); |
| 237 }; | 237 }; |
| 238 | 238 |
| 239 | 239 |
| 240 OptimizingCodeGenerator::OptimizingCodeGenerator( | 240 OptimizingCodeGenerator::OptimizingCodeGenerator( |
| 241 Assembler* assembler, const ParsedFunction& parsed_function) | 241 Assembler* assembler, const ParsedFunction& parsed_function) |
| 242 : CodeGenerator(assembler, parsed_function), | 242 : CodeGenerator(assembler, parsed_function), |
| 243 deoptimization_blobs_(4), | 243 deoptimization_blobs_(4), |
| 244 classes_for_locals_(new ClassesForLocals()), | 244 classes_for_locals_(NULL), |
| 245 smi_class_(Class::ZoneHandle(Isolate::Current()->object_store() | 245 smi_class_(Class::ZoneHandle(Isolate::Current()->object_store() |
| 246 ->smi_class())), | 246 ->smi_class())), |
| 247 double_class_(Class::ZoneHandle(Isolate::Current()->object_store() | 247 double_class_(Class::ZoneHandle(Isolate::Current()->object_store() |
| 248 ->double_class())), | 248 ->double_class())), |
| 249 growable_object_array_class_(Class::ZoneHandle(Isolate::Current() | 249 growable_object_array_class_(Class::ZoneHandle(Isolate::Current() |
| 250 ->object_store()->growable_object_array_class())) { | 250 ->object_store()->growable_object_array_class())) { |
| 251 ASSERT(parsed_function.function().is_optimizable()); | 251 ASSERT(parsed_function.function().is_optimizable()); |
| 252 } | 252 } |
| 253 | 253 |
| 254 | 254 |
| 255 void OptimizingCodeGenerator::InitGenerator() { |
| 256 CodeGenerator::InitGenerator(); |
| 257 classes_for_locals_ = new ClassesForLocals(); |
| 258 } |
| 259 |
| 260 |
| 255 DeoptimizationBlob* | 261 DeoptimizationBlob* |
| 256 OptimizingCodeGenerator::AddDeoptimizationBlob(AstNode* node, | 262 OptimizingCodeGenerator::AddDeoptimizationBlob(AstNode* node, |
| 257 DeoptReasonId reason_id) { | 263 DeoptReasonId reason_id) { |
| 258 DeoptimizationBlob* d = new DeoptimizationBlob(node, reason_id); | 264 DeoptimizationBlob* d = new DeoptimizationBlob(node, reason_id); |
| 259 deoptimization_blobs_.Add(d); | 265 deoptimization_blobs_.Add(d); |
| 260 return d; | 266 return d; |
| 261 } | 267 } |
| 262 | 268 |
| 263 | 269 |
| 264 DeoptimizationBlob* | 270 DeoptimizationBlob* |
| (...skipping 2648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2913 } | 2919 } |
| 2914 } | 2920 } |
| 2915 // TODO(srdjan): Implement unary kSUB (negate) Mint. | 2921 // TODO(srdjan): Implement unary kSUB (negate) Mint. |
| 2916 CodeGenerator::VisitUnaryOpNode(node); | 2922 CodeGenerator::VisitUnaryOpNode(node); |
| 2917 } | 2923 } |
| 2918 | 2924 |
| 2919 | 2925 |
| 2920 } // namespace dart | 2926 } // namespace dart |
| 2921 | 2927 |
| 2922 #endif // defined TARGET_ARCH_IA32 | 2928 #endif // defined TARGET_ARCH_IA32 |
| OLD | NEW |