[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