Paul Hancock via llvm-dev
2016-Mar-16 02:34 UTC
[llvm-dev] IRBuilder Assignment ( '=' ) operator?
However I need the standard assignment operator so I can assign the value of a temporary to that of another temporary, or to create a new temporary from an existing one. - Paul ________________________________________ From: Tim Northover <t.p.northover at gmail.com> Sent: 16 March 2016 13:11 To: Paul Hancock Cc: llvm-dev at lists.llvm.org Subject: Re: [llvm-dev] IRBuilder Assignment ( '=' ) operator? Hi Paul, On 15 March 2016 at 17:59, Paul Hancock via llvm-dev <llvm-dev at lists.llvm.org> wrote:> In my code assembly system I have the various LH-RH operators, ADD, ADDF, > SUB, etc, using CreateAdd, CreateFAdd, etc, however I cant seem to locate > the correct function/s for the assignment operator.The assignment is automatic. The pointer you get back from CreateAdd can be used directly in other instructions. When this is transcribed to the textual IR, LLVM will put in the appropriate assignments (so it won't try to assign a store to anything for example, because it doesn't produce a value that can be used elsewhere). The Name parameter you pass to CreateAdd determines what variable will be assigned, otherwise an incrementing number will be used (%1, %2, ...). Cheers. Tim.
David Blaikie via llvm-dev
2016-Mar-16 03:12 UTC
[llvm-dev] IRBuilder Assignment ( '=' ) operator?
Usual rules: Look at the IR Clang produces for some C code you're curious about On Tue, Mar 15, 2016 at 7:34 PM, Paul Hancock via llvm-dev < llvm-dev at lists.llvm.org> wrote:> However I need the standard assignment operator so I can assign the value > of a temporary to that of another temporary, or to create a new temporary > from an existing one. > > - Paul > > ________________________________________ > From: Tim Northover <t.p.northover at gmail.com> > Sent: 16 March 2016 13:11 > To: Paul Hancock > Cc: llvm-dev at lists.llvm.org > Subject: Re: [llvm-dev] IRBuilder Assignment ( '=' ) operator? > > Hi Paul, > > On 15 March 2016 at 17:59, Paul Hancock via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > In my code assembly system I have the various LH-RH operators, ADD, ADDF, > > SUB, etc, using CreateAdd, CreateFAdd, etc, however I cant seem to locate > > the correct function/s for the assignment operator. > > The assignment is automatic. The pointer you get back from CreateAdd > can be used directly in other instructions. When this is transcribed > to the textual IR, LLVM will put in the appropriate assignments (so it > won't try to assign a store to anything for example, because it > doesn't produce a value that can be used elsewhere). > > The Name parameter you pass to CreateAdd determines what variable will > be assigned, otherwise an incrementing number will be used (%1, %2, > ...). > > Cheers. > > Tim. > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160315/e5b5c40e/attachment-0001.html>
Jeremy Lakeman via llvm-dev
2016-Mar-16 03:24 UTC
[llvm-dev] IRBuilder Assignment ( '=' ) operator?
There is a store operation if you want the value on the stack or heap, but there is no assignment operator in IR. CreateAdd returns an Instruction which represents both the operation and the result value. Value's are immutable and can be used as input arguments to any Instruction further down the control flow. The other thing you might need to research is the Phi Instruction. Which gives you a way to specify how the value in this basic block will be different based on how we reached this block in the control flow of the function. On Wed, Mar 16, 2016 at 1:04 PM, Paul Hancock via llvm-dev < llvm-dev at lists.llvm.org> wrote:> However I need the standard assignment operator so I can assign the value > of a temporary to that of another temporary, or to create a new temporary > from an existing one. > > - Paul > > ________________________________________ > From: Tim Northover <t.p.northover at gmail.com> > Sent: 16 March 2016 13:11 > To: Paul Hancock > Cc: llvm-dev at lists.llvm.org > Subject: Re: [llvm-dev] IRBuilder Assignment ( '=' ) operator? > > Hi Paul, > > On 15 March 2016 at 17:59, Paul Hancock via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > In my code assembly system I have the various LH-RH operators, ADD, ADDF, > > SUB, etc, using CreateAdd, CreateFAdd, etc, however I cant seem to locate > > the correct function/s for the assignment operator. > > The assignment is automatic. The pointer you get back from CreateAdd > can be used directly in other instructions. When this is transcribed > to the textual IR, LLVM will put in the appropriate assignments (so it > won't try to assign a store to anything for example, because it > doesn't produce a value that can be used elsewhere). > > The Name parameter you pass to CreateAdd determines what variable will > be assigned, otherwise an incrementing number will be used (%1, %2, > ...). > > Cheers. > > Tim. > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160316/d32272f4/attachment.html>
Paul Hancock via llvm-dev
2016-Mar-16 05:10 UTC
[llvm-dev] IRBuilder Assignment ( '=' ) operator?
I partially worked out that to do an assign I will need to manually assign a temporary first and then load data into it, which also means I'll need to set up a temporaries list in my code assembler as allocations must be done before anything else? or is it fine to allocate a variable mid-way through a function and the compiler will manage it? With that as well, if I had a function that loads a value from a pointer and then stores this value to multiple destinations, would it be ideal to store the value in an allocated temporary? would the load be called for each store if I don't allocate a temporary or will the load be called only the one time? - Paul ________________________________ From: jeremy at lakeman.me <jeremy at lakeman.me> on behalf of Jeremy Lakeman <Jeremy.Lakeman at gmail.com> Sent: 16 March 2016 14:24 To: Paul Hancock Cc: llvm-dev at lists.llvm.org Subject: Re: [llvm-dev] IRBuilder Assignment ( '=' ) operator? There is a store operation if you want the value on the stack or heap, but there is no assignment operator in IR. CreateAdd returns an Instruction which represents both the operation and the result value. Value's are immutable and can be used as input arguments to any Instruction further down the control flow. The other thing you might need to research is the Phi Instruction. Which gives you a way to specify how the value in this basic block will be different based on how we reached this block in the control flow of the function. On Wed, Mar 16, 2016 at 1:04 PM, Paul Hancock via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: However I need the standard assignment operator so I can assign the value of a temporary to that of another temporary, or to create a new temporary from an existing one. - Paul ________________________________________ From: Tim Northover <t.p.northover at gmail.com<mailto:t.p.northover at gmail.com>> Sent: 16 March 2016 13:11 To: Paul Hancock Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] IRBuilder Assignment ( '=' ) operator? Hi Paul, On 15 March 2016 at 17:59, Paul Hancock via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:> In my code assembly system I have the various LH-RH operators, ADD, ADDF, > SUB, etc, using CreateAdd, CreateFAdd, etc, however I cant seem to locate > the correct function/s for the assignment operator.The assignment is automatic. The pointer you get back from CreateAdd can be used directly in other instructions. When this is transcribed to the textual IR, LLVM will put in the appropriate assignments (so it won't try to assign a store to anything for example, because it doesn't produce a value that can be used elsewhere). The Name parameter you pass to CreateAdd determines what variable will be assigned, otherwise an incrementing number will be used (%1, %2, ...). Cheers. Tim. _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160316/c4bea44d/attachment.html>