retdec
|
A converter from LLVM fcmp instruction to expression in BIR. More...
#include <llvm_fcmp_converter.h>
Public Member Functions | |
LLVMFCmpConverter ()=default | |
~LLVMFCmpConverter ()=default | |
ShPtr< Expression > | convertToExpression (ShPtr< Expression > op1, ShPtr< Expression > op2, unsigned predicate) |
Converts the given LLVM fcmp instruction inst into an expression in BIR. More... | |
Options | |
void | setOptionStrictFPUSemantics (bool strict=true) |
Enables/disables the use of strict FPU semantics. More... | |
Private Member Functions | |
ShPtr< Expression > | getExprIsNotQNAN (ShPtr< Expression > op) const |
Returns expression which determines if given Expression op is not a QNAN. More... | |
ShPtr< Expression > | getExprIsQNAN (ShPtr< Expression > op) const |
Returns expression which determines if given Expression op is a QNAN. More... | |
template<class T > | |
ShPtr< Expression > | getOrdFCmpExpr (ShPtr< Expression > op1, ShPtr< Expression > op2) const |
Returns logical expression which represents a comparison of two float operands op1 and op2, when both operands are not a QNAN. More... | |
template<class T > | |
ShPtr< Expression > | getUnordFCmpExpr (ShPtr< Expression > op1, ShPtr< Expression > op2) const |
Returns logical expression which represents a comparison of two float operands op1 and op2, when either operand can be a QNAN. More... | |
![]() | |
NonCopyable (const NonCopyable &)=delete | |
NonCopyable & | operator= (const NonCopyable &)=delete |
NonCopyable ()=default | |
~NonCopyable ()=default | |
Private Attributes | |
bool | optionStrictFPUSemantics = false |
Use strict FPU semantics? More... | |
A converter from LLVM fcmp instruction to expression in BIR.
|
default |
|
default |
ShPtr< Expression > retdec::llvmir2hll::LLVMFCmpConverter::convertToExpression | ( | ShPtr< Expression > | op1, |
ShPtr< Expression > | op2, | ||
unsigned | predicate | ||
) |
Converts the given LLVM fcmp instruction inst into an expression in BIR.
[in] | op1 | Already converted first operand as expression in BIR. |
[in] | op2 | Already converted second operand as expression in BIR. |
[in] | predicate | Given fcmp predicate. |
|
private |
Returns expression which determines if given Expression op is not a QNAN.
|
private |
Returns expression which determines if given Expression op is a QNAN.
|
private |
Returns logical expression which represents a comparison of two float operands op1 and op2, when both operands are not a QNAN.
T | Class that represents a comparison operator in BIR. |
|
private |
Returns logical expression which represents a comparison of two float operands op1 and op2, when either operand can be a QNAN.
T | Class that represents a comparison operator in BIR. |
void retdec::llvmir2hll::LLVMFCmpConverter::setOptionStrictFPUSemantics | ( | bool | strict = true | ) |
Enables/disables the use of strict FPU semantics.
[in] | strict | If true , enables the use of strict FPU semantics. If false , disables the use of strict FPU semantics. |
|
private |
Use strict FPU semantics?