Mercurial > hg > graal-jvmci-8
comparison src/share/vm/ci/ciEnv.hpp @ 1138:dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Tue, 05 Jan 2010 15:21:25 +0100 |
parents | 97125851f396 |
children | 4ce7240d622c |
comparison
equal
deleted
inserted
replaced
1137:97125851f396 | 1138:dd57230ba8fe |
---|---|
119 ciKlass* get_klass_by_name(ciKlass* accessing_klass, | 119 ciKlass* get_klass_by_name(ciKlass* accessing_klass, |
120 ciSymbol* klass_name, | 120 ciSymbol* klass_name, |
121 bool require_local); | 121 bool require_local); |
122 | 122 |
123 // Constant pool access. | 123 // Constant pool access. |
124 ciKlass* get_klass_by_index(ciInstanceKlass* loading_klass, | 124 ciKlass* get_klass_by_index(constantPoolHandle cpool, |
125 int klass_index, | 125 int klass_index, |
126 bool& is_accessible); | 126 bool& is_accessible, |
127 ciConstant get_constant_by_index(ciInstanceKlass* loading_klass, | 127 ciInstanceKlass* loading_klass); |
128 int constant_index); | 128 ciConstant get_constant_by_index(constantPoolHandle cpool, |
129 int constant_index, | |
130 ciInstanceKlass* accessor); | |
129 bool is_unresolved_string(ciInstanceKlass* loading_klass, | 131 bool is_unresolved_string(ciInstanceKlass* loading_klass, |
130 int constant_index) const; | 132 int constant_index) const; |
131 bool is_unresolved_klass(ciInstanceKlass* loading_klass, | 133 bool is_unresolved_klass(ciInstanceKlass* loading_klass, |
132 int constant_index) const; | 134 int constant_index) const; |
133 ciField* get_field_by_index(ciInstanceKlass* loading_klass, | 135 ciField* get_field_by_index(ciInstanceKlass* loading_klass, |
134 int field_index); | 136 int field_index); |
135 ciMethod* get_method_by_index(ciInstanceKlass* loading_klass, | 137 ciMethod* get_method_by_index(constantPoolHandle cpool, |
136 int method_index, Bytecodes::Code bc); | 138 int method_index, Bytecodes::Code bc, |
139 ciInstanceKlass* loading_klass); | |
137 | 140 |
138 // Implementation methods for loading and constant pool access. | 141 // Implementation methods for loading and constant pool access. |
139 ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass, | 142 ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass, |
140 ciSymbol* klass_name, | 143 ciSymbol* klass_name, |
141 bool require_local); | 144 bool require_local); |
142 ciKlass* get_klass_by_index_impl(ciInstanceKlass* loading_klass, | 145 ciKlass* get_klass_by_index_impl(constantPoolHandle cpool, |
143 int klass_index, | 146 int klass_index, |
144 bool& is_accessible); | 147 bool& is_accessible, |
145 ciConstant get_constant_by_index_impl(ciInstanceKlass* loading_klass, | 148 ciInstanceKlass* loading_klass); |
146 int constant_index); | 149 ciConstant get_constant_by_index_impl(constantPoolHandle cpool, |
150 int constant_index, | |
151 ciInstanceKlass* loading_klass); | |
147 bool is_unresolved_string_impl (instanceKlass* loading_klass, | 152 bool is_unresolved_string_impl (instanceKlass* loading_klass, |
148 int constant_index) const; | 153 int constant_index) const; |
149 bool is_unresolved_klass_impl (instanceKlass* loading_klass, | 154 bool is_unresolved_klass_impl (instanceKlass* loading_klass, |
150 int constant_index) const; | 155 int constant_index) const; |
151 ciField* get_field_by_index_impl(ciInstanceKlass* loading_klass, | 156 ciField* get_field_by_index_impl(ciInstanceKlass* loading_klass, |
152 int field_index); | 157 int field_index); |
153 ciMethod* get_method_by_index_impl(ciInstanceKlass* loading_klass, | 158 ciMethod* get_method_by_index_impl(constantPoolHandle cpool, |
154 int method_index, Bytecodes::Code bc); | 159 int method_index, Bytecodes::Code bc, |
155 ciMethod* get_fake_invokedynamic_method_impl(ciInstanceKlass* accessor, | 160 ciInstanceKlass* loading_klass); |
161 ciMethod* get_fake_invokedynamic_method_impl(constantPoolHandle cpool, | |
156 int index, Bytecodes::Code bc); | 162 int index, Bytecodes::Code bc); |
157 | 163 |
158 // Helper methods | 164 // Helper methods |
159 bool check_klass_accessibility(ciKlass* accessing_klass, | 165 bool check_klass_accessibility(ciKlass* accessing_klass, |
160 klassOop resolved_klassOop); | 166 klassOop resolved_klassOop); |