On Mar 15, 2013 10:53 PM, "Óscar Fuentes" <ofv at wanadoo.es> wrote:> > James Courtier-Dutton <james.dutton at gmail.com> writes: > > > I think this is a very simple question, and it must just be missingsomething.> > > > I am looking for find out how to assign a constant integer value to > > the variable in llvm ir. > > > > The following returns 12, and %var2 = 12. > > ; ModuleID = 't.c' > > target datalayout > >"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"> > target triple = "x86_64-pc-linux-gnu" > > > > define i32 @test() nounwind readnone { > > %var1 = xor i32 0, 0 > > %var2 = add i32 %var1, 12 > > ret i32 %var2 > > } > > > > Why can't I do?: > > ; ModuleID = 't.c' > > target datalayout > >"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"> > target triple = "x86_64-pc-linux-gnu" > > > > define i32 @test() nounwind readnone { > > %var2 = 12 > > ret i32 %var2 > > } > > > > What is the simplest way to make %var2 = 12 ? > > To add to the other response, it is important to note that your %var1, > %var2 above are not variables at all, because they can't be reassigned > (i.e. they can't appear again on the left hand of a %varX = ... > expression.) They are just names for the values corresponding to the > instructions. >Ok, maybe i asked the wrong question. Instead of using the value 12 all the way through the llvm ir text file. How do i use %friendlyName instead? I.e. The equivalent of something like #define FriendlyName 12 in C -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130316/ac535085/attachment.html>
You can't. You have to use the value 12 directly. On 16 March 2013 00:18, James Courtier-Dutton <james.dutton at gmail.com>wrote:> > On Mar 15, 2013 10:53 PM, "Óscar Fuentes" <ofv at wanadoo.es> wrote: > > > > James Courtier-Dutton <james.dutton at gmail.com> writes: > > > > > I think this is a very simple question, and it must just be missing > something. > > > > > > I am looking for find out how to assign a constant integer value to > > > the variable in llvm ir. > > > > > > The following returns 12, and %var2 = 12. > > > ; ModuleID = 't.c' > > > target datalayout > > > > "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" > > > target triple = "x86_64-pc-linux-gnu" > > > > > > define i32 @test() nounwind readnone { > > > %var1 = xor i32 0, 0 > > > %var2 = add i32 %var1, 12 > > > ret i32 %var2 > > > } > > > > > > Why can't I do?: > > > ; ModuleID = 't.c' > > > target datalayout > > > > "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" > > > target triple = "x86_64-pc-linux-gnu" > > > > > > define i32 @test() nounwind readnone { > > > %var2 = 12 > > > ret i32 %var2 > > > } > > > > > > What is the simplest way to make %var2 = 12 ? > > > > To add to the other response, it is important to note that your %var1, > > %var2 above are not variables at all, because they can't be reassigned > > (i.e. they can't appear again on the left hand of a %varX = ... > > expression.) They are just names for the values corresponding to the > > instructions. > > > > Ok, maybe i asked the wrong question. > Instead of using the value 12 all the way through the llvm ir text file. > How do i use %friendlyName instead? > I.e. The equivalent of something like > #define FriendlyName 12 > in C > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130316/0bac2d13/attachment.html>
On 3/15/2013 8:11 PM, Joey Gouly wrote:> You can't. You have to use the value 12 directly.I think something like %twelve = add i32 12, 0 would work. -Krzysztof -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
On Mar 15, 2013, at 5:18 PM, James Courtier-Dutton <james.dutton at gmail.com> wrote:> Ok, maybe i asked the wrong question. > Instead of using the value 12 all the way through the llvm ir text file. How do i use %friendlyName instead? > I.e. The equivalent of something like > #define FriendlyName 12 > in CYou can make it a constant global: @g = global i32 12, align 4 define i32 @foo() nounwind uwtable readonly ssp { %1 = load i32* @g, align 4 ret i32 %1 } -bw -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130317/6d9d11eb/attachment.html>