This is a follow-up to D76145.

DW_OP_LLVM_convert is used to do sign- and zero extensions in

DIExpressions. When using DWARFv5, that LLVM operation is translated

into DWARFv5's DW_OP_convert operation.

DWARFv5 section 2.5.1.4 specifies the following for arithmetical and

logical operations:

"Operands of an operation with two operands must have the same type,

either the same base type or the generic type."

So when we have used DW_OP_LLVM_convert in an expression, we need to

make sure that any arithmetical and logical operations operating on that

element have operands of the same type. As we currently don't have a

good interface for detecting what type is on top of the stack, and we

add arithmetical and logical operations, e.g. appending expressions like

{DW_OP_constu 1, DW_OP_plus}, in many places, this patch attempts to

alleviate such cases by introduced a new operation,

DW_OP_LLVM_convert_generic, which converts the top of the stack back to

the generic type.

This operation is appended to the sign/zero extension expression that

DIExpression::getExtOps() produces.