[llvm-dev] Signed or unsigned EQ/NEQ
James Courtier-Dutton via llvm-dev
llvm-dev at lists.llvm.org
Sat Nov 18 05:28:04 PST 2017
I am writing a decompiler. For this, i need to do type inference
propagation. EQ/NEQ do not provide any indication of type. So the only
solution is to infer it from other uses of the same registers.
I think you will have to do the same.
Also, there are problem edge cases. What if one register is signed and the
other is unsigned?
On 17 Nov 2017 21:12, "Dounia Khaldi via llvm-dev" <llvm-dev at lists.llvm.org>
> In one of the loop transformations I am developing, I need to convert eq
> and neq loop latch condition into less than or greater than depending on
> the control flow.
> The problem is that CmpInst::ICMP_EQ and CmpInst::ICMP_NE are neither
> signed nor unsigned in LLVM. Also, I did not find a way to find out if the
> integer operands of the CmpInst are signed or unsigned. Apparently, LLVM
> does not distinguish in its type system between signed and unsigned
> variables. So, I am not able to generate the appropriate signed or unsigned
> ICMP_(S|U)LT or ICMP_(S|U)GT.
> Do you have a solution for this?
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev