[LLVMdev] "pure" functions"

Reid Spencer reid at x10sys.com
Sun Jun 4 10:12:22 PDT 2006


On Sun, 2006-06-04 at 11:49 -0500, Chris Lattner wrote:
> On Sun, 4 Jun 2006, Vladimir Prus wrote:
> > say I've a LLVM module with a call instruction. The called function is
> > "pure", that is it has no side-effects at all. How can I communicate this
> > to LLVM, so that the function call can be removed if the return value is
> > never used?
> 
> There isn't a way to do this from the source code yet.  However, if this 
> is a standard library function, you can add it to the end of 
> lib/Analysis/BasicAliasAnalysis.cpp.  Search of "isspace".

That's a bit of a hack. Can we not deduce "pure" functions
conservatively? Basically, anything that doesn't do any load or store
outside of its parameters and no malloc or free?  Maybe a few other
constraints. Sounds fairly easy to deduce and might be useful for
optimization.

Reid.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060604/4d6d36dd/attachment.sig>


More information about the llvm-dev mailing list