Mercurial > hg > truffle
comparison src/share/vm/opto/callGenerator.hpp @ 20327:411e30e5fbb8
8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by: kvn, vlivanov
author | roland |
---|---|
date | Wed, 13 Aug 2014 11:00:22 +0200 |
parents | 922c87c9aed4 |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20326:da00a41842a5 | 20327:411e30e5fbb8 |
---|---|
28 #include "compiler/compileBroker.hpp" | 28 #include "compiler/compileBroker.hpp" |
29 #include "opto/callnode.hpp" | 29 #include "opto/callnode.hpp" |
30 #include "opto/compile.hpp" | 30 #include "opto/compile.hpp" |
31 #include "opto/type.hpp" | 31 #include "opto/type.hpp" |
32 #include "runtime/deoptimization.hpp" | 32 #include "runtime/deoptimization.hpp" |
33 | |
34 class Parse; | |
35 | 33 |
36 //---------------------------CallGenerator------------------------------------- | 34 //---------------------------CallGenerator------------------------------------- |
37 // The subclasses of this class handle generation of ideal nodes for | 35 // The subclasses of this class handle generation of ideal nodes for |
38 // call sites and method entry points. | 36 // call sites and method entry points. |
39 | 37 |
110 // If the call traps, the returned map must have a control edge of top. | 108 // If the call traps, the returned map must have a control edge of top. |
111 // If the call can throw, the returned map must report has_exceptions(). | 109 // If the call can throw, the returned map must report has_exceptions(). |
112 // | 110 // |
113 // If the result is NULL, it means that this CallGenerator was unable | 111 // If the result is NULL, it means that this CallGenerator was unable |
114 // to handle the given call, and another CallGenerator should be consulted. | 112 // to handle the given call, and another CallGenerator should be consulted. |
115 virtual JVMState* generate(JVMState* jvms, Parse* parent_parser) = 0; | 113 virtual JVMState* generate(JVMState* jvms) = 0; |
116 | 114 |
117 // How to generate a call site that is inlined: | 115 // How to generate a call site that is inlined: |
118 static CallGenerator* for_inline(ciMethod* m, float expected_uses = -1); | 116 static CallGenerator* for_inline(ciMethod* m, float expected_uses = -1); |
119 // How to generate code for an on-stack replacement handler. | 117 // How to generate code for an on-stack replacement handler. |
120 static CallGenerator* for_osr(ciMethod* m, int osr_bci); | 118 static CallGenerator* for_osr(ciMethod* m, int osr_bci); |