[llvm-commits] Patch for handling multiple values in ExpandIntegerOperand
Duncan Sands
baldrick at free.fr
Fri Oct 31 04:55:53 PDT 2008
Hi,
> The code routine in question here is DAG::getNode(), which returns an
> SDValue. When it sees that the Operand of the TRUNCATE:i8
> (adde:i8,flag) has same value, it simply returns the first value of
> Operand. I don't think that we can/want to change the return type of
> getNode().
excellent point.
> Probably you are referring to change the return types of functions like:
>
> SDValue DAGTypeLegalizer::ExpandIntOp_TRUNCATE(SDNode *N)
>
> to SDNode *.
>
...
> // Return Merge_Values if the number of values of N and Res do not
> match. ???
>
> is my understanding correct?
Yes, but as you point out that is not reliable. This also means that
the ReplaceNodeResults (target lowering) routines are potentially broken.
I think that means that target lowering needs access to ReplaceValueWith,
and that ReplaceNodeWith should probably be removed.
Ciao,
Dncan.
More information about the llvm-commits
mailing list