[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)

Arnaud Allard de Grandmaison Arnaud.AllardDeGrandMaison at dibcom.com
Mon Nov 15 08:44:10 PST 2010


Here is the needed patch.

Beside the basic-aa pass, it is also needed to set the attributes on the extern declaration.

--
Arnaud de Grandmaison

-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Rob Pieke
Sent: Monday, November 15, 2010 5:40 PM
To: Duncan Sands
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)

Still no luck after switching to:

        theFPM->add( new llvm::TargetData( *theExecutionEngine->getTargetData() ) );
        theFPM->add( llvm::createBasicAliasAnalysisPass() );
        theFPM->add( llvm::createInstructionCombiningPass() );
        theFPM->add( llvm::createReassociatePass() );
        theFPM->add( llvm::createGVNPass() );
        theFPM->add( llvm::createCFGSimplificationPass() );

Based on output from "llvm-ld -version" and "clang -v" I'm using:

  llvm version 2.9svn
  clang version 2.9 (trunk 118171)



> -----Original Message-----
> From: Duncan Sands [mailto:baldrick at free.fr]
> Sent: Monday, November 15, 2010 4:32 PM
> To: Rob Pieke
> Cc: llvmdev at cs.uiuc.edu; Dan Gohman
> Subject: Re: [LLVMdev] Optimization of calls to functions without side
> effects (from Kaleidoscope example)
>
> Hi Rob,
>
> > I'm using the gvn pass, not sure about basic-aa.
>
> if you are using LLVM from svn then you need to specify the basic-aa
> analysis,
> otherwise gvn won't unify calls to readonly/readnone functions.  This
> is new
> behaviour introduced by Dan; probably the tutorial should be updated.
>
> Ciao,
>
> Duncan.


_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

CONFIDENTIAL NOTICE: The contents of this message, including any attachments, are confidential and are intended solely for the use of the person or entity to whom the message was addressed. If you are not the intended recipient of this message, please be advised that any dissemination, distribution, or use of the contents of this message is strictly prohibited. If you received this message in error, please notify the sender. Please also permanently delete all copies of the original message and any attached documentation. Thank you.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Kaleidoscope-Ch4.patch
Type: application/octet-stream
Size: 1391 bytes
Desc: Kaleidoscope-Ch4.patch
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101115/878c70ef/attachment.obj>


More information about the llvm-dev mailing list