[llvm-commits] Patch for handling multiple values in ExpandIntegerOperand

sanjiv gupta sanjiv.gupta at microchip.com
Fri Nov 7 23:52:26 PST 2008


On Fri, 2008-10-31 at 12:55 +0100, Duncan Sands wrote:
> 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.
Duncan,

Our target needs this.  I can take this up if we make a decision on
precisely what needs to be done.

TIA
- Sanjiv





More information about the llvm-commits mailing list