[LLVMdev] Assignment instruction.

Tobias Nurmiranta spyck at lysator.liu.se
Mon Jul 12 07:26:01 PDT 2004


Hi again,

Which optimization/flag to "opt" should I use to optimize away these
alloca's? In most cases it is more convenient for me to use SSA-registers,
but for example if-statements and some others, it is nicer to use alloca.
Thanks for the advice.
,	Tobias

On Thu, 17 Jun 2004, Chris Lattner wrote:
> On Thu, 17 Jun 2004, Tobias Nurmiranta wrote:
> >
> > Thanks for the fast reply. I'll do as you suggested, and create my own
> > identity instructions with "add" for int's and "getelementptr" for
> > pointers.
>
> Another thing to point out is that this might only be happening because
> your front-end is attempting to generate SSA.  In general, we don't
> recommend that front-ends bother with generating code in SSA form: it's
> needless effort and duplicates functionality in the optimizer.
>
> In particular, consider making all user variables into stack memory
> objects with the alloca instruction.  If you do this, copies are simply
> loads and stores to memory, which don't require any special handling:
>
> in:
>
>   int X = 4;
> ...
>   X = 5;
> ...
>   = X
>
>   %X = alloca int    ;; in the entry bb for the function
> ...
>   store int 4, int* %X
> ...
>   store int 5, int* %X
> ...
>   ... = load int* %X
>
> This makes it really easy for a front-end to generate code, doesn't have
> problems with copies, and the optimizer will construct SSA (and nice clean
> code) for you.  :)
>
> -Chris




More information about the llvm-dev mailing list