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

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

Issue 1950553002: VM: Remove PushTempInstr, simplify SSA renaming. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: addressed comments Created 4 years, 7 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 | « runtime/vm/flow_graph_type_propagator.cc ('k') | runtime/vm/intermediate_language.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 (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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_INTERMEDIATE_LANGUAGE_H_ 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_
6 #define VM_INTERMEDIATE_LANGUAGE_H_ 6 #define VM_INTERMEDIATE_LANGUAGE_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/ast.h" 9 #include "vm/ast.h"
10 #include "vm/growable_array.h" 10 #include "vm/growable_array.h"
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 M(IndirectGoto) \ 447 M(IndirectGoto) \
448 M(Branch) \ 448 M(Branch) \
449 M(AssertAssignable) \ 449 M(AssertAssignable) \
450 M(AssertBoolean) \ 450 M(AssertBoolean) \
451 M(CurrentContext) \ 451 M(CurrentContext) \
452 M(ClosureCall) \ 452 M(ClosureCall) \
453 M(InstanceCall) \ 453 M(InstanceCall) \
454 M(PolymorphicInstanceCall) \ 454 M(PolymorphicInstanceCall) \
455 M(StaticCall) \ 455 M(StaticCall) \
456 M(LoadLocal) \ 456 M(LoadLocal) \
457 M(PushTemp) \
458 M(DropTemps) \ 457 M(DropTemps) \
459 M(StoreLocal) \ 458 M(StoreLocal) \
460 M(StrictCompare) \ 459 M(StrictCompare) \
461 M(EqualityCompare) \ 460 M(EqualityCompare) \
462 M(RelationalOp) \ 461 M(RelationalOp) \
463 M(NativeCall) \ 462 M(NativeCall) \
464 M(DebugStepCheck) \ 463 M(DebugStepCheck) \
465 M(LoadIndexed) \ 464 M(LoadIndexed) \
466 M(LoadCodeUnits) \ 465 M(LoadCodeUnits) \
467 M(StoreIndexed) \ 466 M(StoreIndexed) \
(...skipping 2893 matching lines...) Expand 10 before | Expand all | Expand 10 after
3361 3360
3362 private: 3361 private:
3363 const LocalVariable& local_; 3362 const LocalVariable& local_;
3364 bool is_last_; 3363 bool is_last_;
3365 const TokenPosition token_pos_; 3364 const TokenPosition token_pos_;
3366 3365
3367 DISALLOW_COPY_AND_ASSIGN(LoadLocalInstr); 3366 DISALLOW_COPY_AND_ASSIGN(LoadLocalInstr);
3368 }; 3367 };
3369 3368
3370 3369
3371 class PushTempInstr : public TemplateDefinition<1, NoThrow> {
3372 public:
3373 explicit PushTempInstr(Value* value) {
3374 SetInputAt(0, value);
3375 }
3376
3377 DECLARE_INSTRUCTION(PushTemp)
3378
3379 Value* value() const { return inputs_[0]; }
3380
3381 virtual CompileType ComputeType() const;
3382
3383 virtual bool CanDeoptimize() const { return false; }
3384
3385 virtual EffectSet Effects() const {
3386 UNREACHABLE(); // Eliminated by SSA construction.
3387 return EffectSet::None();
3388 }
3389
3390 virtual TokenPosition token_pos() const {
3391 return TokenPosition::kTempMove;
3392 }
3393
3394 private:
3395 DISALLOW_COPY_AND_ASSIGN(PushTempInstr);
3396 };
3397
3398
3399 class DropTempsInstr : public Definition { 3370 class DropTempsInstr : public Definition {
3400 public: 3371 public:
3401 DropTempsInstr(intptr_t num_temps, Value* value) 3372 DropTempsInstr(intptr_t num_temps, Value* value)
3402 : num_temps_(num_temps), value_(NULL) { 3373 : num_temps_(num_temps), value_(NULL) {
3403 if (value != NULL) { 3374 if (value != NULL) {
3404 SetInputAt(0, value); 3375 SetInputAt(0, value);
3405 } 3376 }
3406 } 3377 }
3407 3378
3408 DECLARE_INSTRUCTION(DropTemps) 3379 DECLARE_INSTRUCTION(DropTemps)
(...skipping 4880 matching lines...) Expand 10 before | Expand all | Expand 10 after
8289 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ 8260 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \
8290 UNIMPLEMENTED(); \ 8261 UNIMPLEMENTED(); \
8291 return NULL; \ 8262 return NULL; \
8292 } \ 8263 } \
8293 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } 8264 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); }
8294 8265
8295 8266
8296 } // namespace dart 8267 } // namespace dart
8297 8268
8298 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 8269 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_type_propagator.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698