equal
deleted
inserted
replaced
100 void set_start_node() { _start_node = true; } |
100 void set_start_node() { _start_node = true; } |
101 }; |
101 }; |
102 |
102 |
103 |
103 |
104 // This is shared state to be used by the PhiResolver so the operand |
104 // This is shared state to be used by the PhiResolver so the operand |
105 // arrays don't have to be reallocated for reach resolution. |
105 // arrays don't have to be reallocated for each resolution. |
106 class PhiResolverState: public CompilationResourceObj { |
106 class PhiResolverState: public CompilationResourceObj { |
107 friend class PhiResolver; |
107 friend class PhiResolver; |
108 |
108 |
109 private: |
109 private: |
110 NodeList _virtual_operands; // Nodes where the operand is a virtual register |
110 NodeList _virtual_operands; // Nodes where the operand is a virtual register |
112 NodeList _vreg_table; // Mapping from virtual register to Node |
112 NodeList _vreg_table; // Mapping from virtual register to Node |
113 |
113 |
114 public: |
114 public: |
115 PhiResolverState() {} |
115 PhiResolverState() {} |
116 |
116 |
117 void reset(int max_vregs); |
117 void reset(); |
118 }; |
118 }; |
119 |
119 |
120 |
120 |
121 // class used to move value of phi operand to phi function |
121 // class used to move value of phi operand to phi function |
122 class PhiResolver: public CompilationResourceObj { |
122 class PhiResolver: public CompilationResourceObj { |
144 LIRGenerator* gen() { |
144 LIRGenerator* gen() { |
145 return _gen; |
145 return _gen; |
146 } |
146 } |
147 |
147 |
148 public: |
148 public: |
149 PhiResolver(LIRGenerator* _lir_gen, int max_vregs); |
149 PhiResolver(LIRGenerator* _lir_gen); |
150 ~PhiResolver(); |
150 ~PhiResolver(); |
151 |
151 |
152 void move(LIR_Opr src, LIR_Opr dest); |
152 void move(LIR_Opr src, LIR_Opr dest); |
153 }; |
153 }; |
154 |
154 |