File tree 2 files changed +9
-3
lines changed
2 files changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -6623,6 +6623,15 @@ void Function::SetIsOptimizable(bool value) const {
6623
6623
}
6624
6624
6625
6625
bool Function::CanBeInlined() const {
6626
+ // Our force-optimized functions cannot deoptimize to an unoptimized frame.
6627
+ // If the instructions of the force-optimized function body get moved via
6628
+ // code motion, we might attempt do deoptimize a frame where the force-
6629
+ // optimized function has only partially finished. Since force-optimized
6630
+ // functions cannot deoptimize to unoptimized frames we prevent them from
6631
+ // being inlined (for now).
6632
+ if (ForceOptimize()) {
6633
+ return false;
6634
+ }
6626
6635
#if defined(PRODUCT)
6627
6636
return is_inlinable() && !is_external() && !is_generated_body();
6628
6637
#else
Original file line number Diff line number Diff line change @@ -5292,9 +5292,6 @@ class Code : public Object {
5292
5292
return ForceOptimizedBit::decode (raw_ptr ()->state_bits_ );
5293
5293
}
5294
5294
void set_is_force_optimized (bool value) const ;
5295
- static bool IsForceOptimized (RawCode* code) {
5296
- return Code::ForceOptimizedBit::decode (code->ptr ()->state_bits_ );
5297
- }
5298
5295
5299
5296
bool is_alive () const { return AliveBit::decode (raw_ptr ()->state_bits_ ); }
5300
5297
void set_is_alive (bool value) const ;
You can’t perform that action at this time.
0 commit comments