mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8057038: Speculative traps not robust when compilation and class unloading are concurrent
Speculative traps can be removed from MDO while being copied by compiler Reviewed-by: kvn, iveresov
This commit is contained in:
parent
dc2c903e43
commit
a2d18a0238
4 changed files with 63 additions and 34 deletions
|
@ -410,6 +410,9 @@ private:
|
|||
// Area dedicated to parameters. NULL if no parameter profiling for
|
||||
// this method.
|
||||
DataLayout* _parameters;
|
||||
int parameters_size() const {
|
||||
return _parameters == NULL ? 0 : parameters_type_data()->size_in_bytes();
|
||||
}
|
||||
|
||||
ciMethodData(MethodData* md);
|
||||
ciMethodData();
|
||||
|
@ -461,9 +464,6 @@ private:
|
|||
address data_base() const {
|
||||
return (address) _data;
|
||||
}
|
||||
DataLayout* limit_data_position() const {
|
||||
return (DataLayout*)((address)data_base() + _data_size);
|
||||
}
|
||||
|
||||
void load_extra_data();
|
||||
ciProfileData* bci_to_extra_data(int bci, ciMethod* m, bool& two_free_slots);
|
||||
|
@ -524,7 +524,9 @@ public:
|
|||
ciProfileData* next_data(ciProfileData* current);
|
||||
bool is_valid(ciProfileData* current) { return current != NULL; }
|
||||
|
||||
DataLayout* extra_data_base() const { return limit_data_position(); }
|
||||
DataLayout* extra_data_base() const { return data_layout_at(data_size()); }
|
||||
DataLayout* args_data_limit() const { return data_layout_at(data_size() + extra_data_size() -
|
||||
parameters_size()); }
|
||||
|
||||
// Get the data at an arbitrary bci, or NULL if there is none. If m
|
||||
// is not NULL look for a SpeculativeTrapData if any first.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue