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);