Mercurial > hg > graal-compiler
comparison src/share/vm/interpreter/rewriter.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 | 389049f3f393 |
children | c18cbe5936b8 ab102d5d923e |
comparison
equal
deleted
inserted
replaced
1137:97125851f396 | 1138:dd57230ba8fe |
---|---|
55 int cache_index = _cp_cache_map.append(main_cpc_entry | _secondary_entry_tag); | 55 int cache_index = _cp_cache_map.append(main_cpc_entry | _secondary_entry_tag); |
56 return cache_index; | 56 return cache_index; |
57 } | 57 } |
58 | 58 |
59 // All the work goes in here: | 59 // All the work goes in here: |
60 Rewriter(instanceKlassHandle klass, TRAPS); | 60 Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, objArrayHandle methods, TRAPS); |
61 | 61 |
62 void compute_index_maps(); | 62 void compute_index_maps(); |
63 void make_constant_pool_cache(TRAPS); | 63 void make_constant_pool_cache(TRAPS); |
64 void scan_method(methodOop m); | 64 void scan_method(methodOop m); |
65 methodHandle rewrite_jsrs(methodHandle m, TRAPS); | 65 methodHandle rewrite_jsrs(methodHandle m, TRAPS); |
68 void rewrite_invokedynamic(address bcp, int offset, int cp_index); | 68 void rewrite_invokedynamic(address bcp, int offset, int cp_index); |
69 | 69 |
70 public: | 70 public: |
71 // Driver routine: | 71 // Driver routine: |
72 static void rewrite(instanceKlassHandle klass, TRAPS); | 72 static void rewrite(instanceKlassHandle klass, TRAPS); |
73 static void rewrite(instanceKlassHandle klass, constantPoolHandle cpool, objArrayHandle methods, TRAPS); | |
73 | 74 |
74 enum { | 75 enum { |
75 _secondary_entry_tag = nth_bit(30) | 76 _secondary_entry_tag = nth_bit(30) |
76 }; | 77 }; |
77 }; | 78 }; |