mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens Reviewed-by: kvn, never, jrose, twisti
This commit is contained in:
parent
f2ea22a547
commit
ae00753bf7
29 changed files with 465 additions and 241 deletions
|
@ -763,3 +763,16 @@ class BuildCutout: public PreserveJVMState {
|
|||
BuildCutout(GraphKit* kit, Node* p, float prob, float cnt = COUNT_UNKNOWN);
|
||||
~BuildCutout();
|
||||
};
|
||||
|
||||
// Helper class to preserve the original _reexecute bit and _sp and restore
|
||||
// them back
|
||||
class PreserveReexecuteState: public StackObj {
|
||||
protected:
|
||||
GraphKit* _kit;
|
||||
uint _sp;
|
||||
JVMState::ReexecuteState _reexecute;
|
||||
|
||||
public:
|
||||
PreserveReexecuteState(GraphKit* kit);
|
||||
~PreserveReexecuteState();
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue