diff options
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r-- | compiler/optimizing/nodes.h | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index 676a9b9dd2..e0913c821c 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -4632,6 +4632,8 @@ class HInvoke : public HVariableInputSizeInstruction { bool CanBeMoved() const override { return IsIntrinsic() && !DoesAnyWrite(); } + bool CanBeNull() const override; + bool InstructionDataEquals(const HInstruction* other) const override { return intrinsic_ != Intrinsics::kNone && intrinsic_ == other->AsInvoke()->intrinsic_; } @@ -5110,28 +5112,6 @@ class HInvokeVirtual final : public HInvoke { bool IsClonable() const override { return true; } - bool CanBeNull() const override { - switch (GetIntrinsic()) { - case Intrinsics::kThreadCurrentThread: - case Intrinsics::kStringBufferAppend: - case Intrinsics::kStringBufferToString: - case Intrinsics::kStringBuilderAppendObject: - case Intrinsics::kStringBuilderAppendString: - case Intrinsics::kStringBuilderAppendCharSequence: - case Intrinsics::kStringBuilderAppendCharArray: - case Intrinsics::kStringBuilderAppendBoolean: - case Intrinsics::kStringBuilderAppendChar: - case Intrinsics::kStringBuilderAppendInt: - case Intrinsics::kStringBuilderAppendLong: - case Intrinsics::kStringBuilderAppendFloat: - case Intrinsics::kStringBuilderAppendDouble: - case Intrinsics::kStringBuilderToString: - return false; - default: - return HInvoke::CanBeNull(); - } - } - bool CanDoImplicitNullCheckOn(HInstruction* obj) const override; uint32_t GetVTableIndex() const { return vtable_index_; } |