+
+ /// getUnderlyingObject - This method strips off any GEP address adjustments
+ /// and pointer casts from the specified value, returning the original object
+ /// being addressed. Note that the returned value has pointer type if the
+ /// specified value does.
+ Value *getUnderlyingObject();
+ const Value *getUnderlyingObject() const {
+ return const_cast<Value*>(this)->getUnderlyingObject();
+ }