Remove generic comparison IR ops
Summary: Now that all the type-specific comparison IR ops have been added,
remove the generic comparison IR ops. Since the type-specific comparison IR ops
only compare two operands of the same type, IR-gen is now responsible for
emitting the right set of type conversions to convert mixed-type comparisons to
same-type comparisons.
However, string-int comparisons are special and cannot be easily represented in
the IR directly. Therefore, add a set of string-int comparison IR ops. In
addition, add new IR opcodes "IsCol", "HasToString", and "ThrowInvalidOperation"
to support all the necessary semantics for comparing collections and supporting
object-string comparisons.
Add additional cases to all_type_comparison_test.php, namely testing for
comparing NANs and special XmlNode cases.
Reviewed By: @ottoni
Differential Revision:
D2375339