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

Unified Diff: runtime/vm/intermediate_language.h

Issue 14846022: Use the constant pool for all constants, not just null. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/flow_graph_optimizer.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language.h
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
index bdd20cefb6483d96ca2ad0f863f66bdd9fdfb4f0..923009867878d09d11cb66089f559614bc6e4e02 100644
--- a/runtime/vm/intermediate_language.h
+++ b/runtime/vm/intermediate_language.h
@@ -22,8 +22,8 @@ class ComparisonInstr;
class ControlInstruction;
class Definition;
class Environment;
+class FlowGraph;
class FlowGraphCompiler;
-class FlowGraphOptimizer;
class FlowGraphVisitor;
class Instruction;
class LocalVariable;
@@ -766,7 +766,7 @@ FOR_EACH_INSTRUCTION(INSTRUCTION_TYPE_CHECK)
// Returns a replacement for the instruction or NULL if the instruction can
// be eliminated. By default returns the this instruction which means no
// change.
- virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph);
// Insert this instruction before 'next' after use lists are computed.
// Instructions cannot be inserted before a block entry or any other
@@ -1551,7 +1551,7 @@ class Definition : public Instruction {
// Definitions can be canonicalized only into definitions to ensure
// this check statically we override base Canonicalize with a Canonicalize
// returning Definition (return type is covariant).
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
static const intptr_t kReplacementMarker = -2;
@@ -1963,7 +1963,7 @@ class BranchInstr : public ControlInstruction {
void ReplaceWith(ComparisonInstr* other,
ForwardInstructionIterator* ignored);
- virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph);
virtual void PrintTo(BufferFormatter* f) const;
@@ -2306,7 +2306,7 @@ class ConstantInstr : public TemplateDefinition<0> {
DECLARE_INSTRUCTION(Constant)
virtual CompileType ComputeType() const;
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
const Object& value() const { return value_; }
@@ -2365,7 +2365,7 @@ class AssertAssignableInstr : public TemplateDefinition<3> {
virtual bool CanDeoptimize() const { return true; }
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
virtual bool AllowsCSE() const { return true; }
virtual EffectSet Effects() const { return EffectSet::None(); }
@@ -2398,7 +2398,7 @@ class AssertBooleanInstr : public TemplateDefinition<1> {
virtual bool CanDeoptimize() const { return true; }
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
virtual bool AllowsCSE() const { return true; }
virtual EffectSet Effects() const { return EffectSet::None(); }
@@ -2707,7 +2707,7 @@ class StrictCompareInstr : public ComparisonInstr {
virtual bool CanDeoptimize() const { return false; }
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
virtual void EmitBranchCode(FlowGraphCompiler* compiler,
BranchInstr* branch);
@@ -3164,7 +3164,7 @@ class GuardFieldInstr : public TemplateInstruction<1> {
virtual bool CanDeoptimize() const { return true; }
- virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph);
virtual void PrintOperandsTo(BufferFormatter* f) const;
@@ -3712,7 +3712,7 @@ class LoadFieldInstr : public TemplateDefinition<1> {
bool IsImmutableLengthLoad() const;
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
static MethodRecognizer::Kind RecognizedKindFromArrayCid(intptr_t cid);
@@ -3995,7 +3995,7 @@ class CheckEitherNonSmiInstr : public TemplateInstruction<2> {
virtual bool CanDeoptimize() const { return true; }
- virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph);
virtual bool AllowsCSE() const { return true; }
virtual EffectSet Effects() const { return EffectSet::None(); }
@@ -4030,7 +4030,7 @@ class BoxDoubleInstr : public TemplateDefinition<1> {
virtual EffectSet Dependencies() const { return EffectSet::None(); }
virtual bool AttributesEqual(Instruction* other) const { return true; }
- Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ Definition* Canonicalize(FlowGraph* flow_graph);
private:
DISALLOW_COPY_AND_ASSIGN(BoxDoubleInstr);
@@ -4147,7 +4147,7 @@ class UnboxDoubleInstr : public TemplateDefinition<1> {
virtual EffectSet Dependencies() const { return EffectSet::None(); }
virtual bool AttributesEqual(Instruction* other) const { return true; }
- Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ Definition* Canonicalize(FlowGraph* flow_graph);
private:
DISALLOW_COPY_AND_ASSIGN(UnboxDoubleInstr);
@@ -4324,7 +4324,7 @@ class BinaryDoubleOpInstr : public TemplateDefinition<2> {
DECLARE_INSTRUCTION(BinaryDoubleOp)
virtual CompileType ComputeType() const;
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
virtual bool AllowsCSE() const { return true; }
virtual EffectSet Effects() const { return EffectSet::None(); }
@@ -5011,7 +5011,7 @@ class BinaryMintOpInstr : public TemplateDefinition<2> {
return deopt_id_;
}
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
DECLARE_INSTRUCTION(BinaryMintOp)
virtual CompileType ComputeType() const;
@@ -5183,7 +5183,7 @@ class BinarySmiOpInstr : public TemplateDefinition<2> {
virtual void InferRange();
- virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Definition* Canonicalize(FlowGraph* flow_graph);
// Returns true if right is a non-zero Smi constant which absolute value is
// a power of two.
@@ -5472,7 +5472,7 @@ class CheckClassInstr : public TemplateInstruction<1> {
const ICData& unary_checks() const { return unary_checks_; }
- virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph);
virtual void PrintOperandsTo(BufferFormatter* f) const;
@@ -5510,7 +5510,7 @@ class CheckSmiInstr : public TemplateInstruction<1> {
virtual bool CanDeoptimize() const { return true; }
- virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
+ virtual Instruction* Canonicalize(FlowGraph* flow_graph);
virtual bool AllowsCSE() const { return true; }
virtual EffectSet Effects() const { return EffectSet::None(); }
« no previous file with comments | « runtime/vm/flow_graph_optimizer.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698