LLVM, I am trying to equate two dsnodes across call boundries. On the Caller side we have an operand of form: sbyte * getelementptr ([20 x sbyte]* %.LC0, long 0, long 0) using getNodeForValue() yields a NULL pointer. On the Callee, the parameter is of form: sbyte * S and getNodeForValue works fine. Is there something special that must be done to access DNodes accessed using GEP? Thanks, Dave
> I am trying to equate two dsnodes across call boundries. On the Caller > side we have an operand of form: > sbyte * getelementptr ([20 x sbyte]* %.LC0, long 0, long 0) > using getNodeForValue() yields a NULL pointer.This wierd device is a "constantexpr": the object is actually a subclass of Constant (because it evaluates to a link time constant), so I think the node is getting elided. Vikram just checked in a fix that will probably fix this, he can provide details... -Chris -- http://llvm.cs.uiuc.edu/ http://www.nondot.org/~sabre/Projects/
I am not seeing this fix in the csil tree.... On Fri, 6 Dec 2002, Chris Lattner wrote:> > I am trying to equate two dsnodes across call boundries. On the Caller > > side we have an operand of form: > > sbyte * getelementptr ([20 x sbyte]* %.LC0, long 0, long 0) > > using getNodeForValue() yields a NULL pointer. > > This wierd device is a "constantexpr": the object is actually a subclass > of Constant (because it evaluates to a link time constant), so I think the > node is getting elided. Vikram just checked in a fix that will probably > fix this, he can provide details... > > -Chris > >