[LLVMdev] Type Legalizer - Load handling problem

sanjiv gupta sanjiv.gupta at microchip.com
Mon Sep 1 10:41:52 PDT 2008


On Mon, 2008-09-01 at 15:53 +0200, Duncan Sands wrote:
> > > That said, it looks like it is done this way because no-one needed
> > > anything more.  It could easily be changed to handle the case of any
> > > number of return values.
> > > 
> > Why not use ReplaceNodeWith ?
> 
> I just took a look and it isn't that simple.  This code is used
> for example to replace
>   i32 = truncate 0x2374b48
> with the first result of
>   i32,ch = load 0x2356390, 0x2357188, 0x2356b88 <0x236ee80:0> alignment=4
> This works fine right now.  It fails with ReplaceNodeWith because the
> number of results differs.  It could be made to work by using a MergeValues
> node to produce a node with one result out of the load, and similarly for
> the other examples of this kind of thing.
> 
I think we will have to go that way since I may want to replace a "store" node also
(A store node does not produce any results). In this case ReplaceNodeWith () is my only way out.

Thanks,
Sanjiv





More information about the llvm-dev mailing list