LogicalOperator has a Vec of operands now instead of just rhs and lhs. The operandsVec is converted to a Vec of ValueRefs and passed to the MLIRBuildLogic*Op C functions as a ptr and len like the argv and argc of *Call. When converting to MLIR Operations though, the variadics are removed and instead a chain of LogicalAndOp or LogicalOrOp are constructed, so that the operation can continue to subclass BinaryOperator.
Fixes #603
Changelog
Bug Fixes
LogicalOperator
has aVec
ofoperands
now instead of justrhs
andlhs
. Theoperands
Vec
is converted to aVec
ofValueRef
s and passed to theMLIRBuildLogic*Op
C functions as aptr
andlen
like theargv
andargc
of*Call
. When converting to MLIROperation
s though, the variadics are removed and instead a chain ofLogicalAndOp
orLogicalOrOp
are constructed, so that the operation can continue to subclassBinaryOperator
.