Hi, I want to call/add some functions(that defined in another file) on top of some functions, and reflect the same changes in object file. No, I am not looking for contractor. Thanks, Deepika On Tue, Feb 9, 2016 at 7:04 PM, mats petersson <mats at planetcatfish.com> wrote:> What is the condition for adding this code? > > What have you tried so far? [Or are you looking for a contractor that can > write code for you - I'm not sure this is quite the right place for that, > but there are probably some people like that on this mailing list] > > -- > Mats > > On 9 February 2016 at 09:34, Sandeep Kumar Singh via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi, >> >> I want to edit LLVM generated IR file, like as given below, >> >> Original LLVM IR file, >> @.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in >> one_11\0A\00", align 1 >> >> ; Function Attrs: nounwind >> define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 { >> entry: >> %ivar1.addr = alloca i32, align 4 >> %ivar2.addr = alloca i32, align 4 >> %isum = alloca i32, align 4 >> store i32 %ivar1, i32* %ivar1.addr, align 4 >> store i32 %ivar2, i32* %ivar2.addr, align 4 >> store i32 0, i32* %isum, align 4 >> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x >> i8]* @.str, i32 0, i32 0)) #1 >> %0 = load i32* %ivar1.addr, align 4 >> %1 = load i32* %ivar2.addr, align 4 >> %call1 = call i32 @one_11(i32 %0, i32 %1) >> store i32 %call1, i32* %isum, align 4 >> %2 = load i32* %isum, align 4 >> ret i32 %2 >> } >> >> Modified LLVM IR file, >> @.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in >> one_11\0A\00", align 1 >> @.str3 = private unnamed_addr constant [17 x i8] c"\0AI am in >> one_12\0A\00", align 1 >> >> ; Function Attrs: nounwind >> define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 { >> entry: >> %ivar1.addr = alloca i32, align 4 >> %ivar2.addr = alloca i32, align 4 >> %isum = alloca i32, align 4 >> store i32 %ivar1, i32* %ivar1.addr, align 4 >> store i32 %ivar2, i32* %ivar2.addr, align 4 >> store i32 0, i32* %isum, align 4 >> %call1 = call i32 @one_12(i32 %0, i32 %1) <=>> store i32 %call1, i32* %isum, align <=>> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x >> i8]* @.str, i32 0, i32 0)) #1 >> %0 = load i32* %ivar1.addr, align 4 >> %1 = load i32* %ivar2.addr, align 4 >> %call2 = call i32 @one_11(i32 %0, i32 %1) <=>> store i32 %call2, i32* %isum, align 4 <=>> %2 = load i32* %isum, align 4 >> ret i32 %2 >> } >> >> With llc tool, I want to generate object file for modified llvm ir file >> and it should call function >> first "one_12"" and then function "one_11". >> >> Can someone please tell me how I can do my above requirement. >> >> Thanks in advance, >> Deepika >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >-- Thanks and Regards, Sandeep Kumar Singh -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160210/9c39424b/attachment.html>
So how do you know what you want to modify (conceptually)? Have you got a IR pass that you are working on, or are you asking for links/suggestions on how to start on one? -- Mats On 10 February 2016 at 04:04, Sandeep Kumar Singh <deepdondo007 at gmail.com> wrote:> Hi, > > I want to call/add some functions(that defined in another file) on top of > some functions, and reflect the same changes in object file. > No, I am not looking for contractor. > > Thanks, > Deepika > > On Tue, Feb 9, 2016 at 7:04 PM, mats petersson <mats at planetcatfish.com> > wrote: > >> What is the condition for adding this code? >> >> What have you tried so far? [Or are you looking for a contractor that can >> write code for you - I'm not sure this is quite the right place for that, >> but there are probably some people like that on this mailing list] >> >> -- >> Mats >> >> On 9 February 2016 at 09:34, Sandeep Kumar Singh via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >>> Hi, >>> >>> I want to edit LLVM generated IR file, like as given below, >>> >>> Original LLVM IR file, >>> @.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in >>> one_11\0A\00", align 1 >>> >>> ; Function Attrs: nounwind >>> define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 { >>> entry: >>> %ivar1.addr = alloca i32, align 4 >>> %ivar2.addr = alloca i32, align 4 >>> %isum = alloca i32, align 4 >>> store i32 %ivar1, i32* %ivar1.addr, align 4 >>> store i32 %ivar2, i32* %ivar2.addr, align 4 >>> store i32 0, i32* %isum, align 4 >>> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x >>> i8]* @.str, i32 0, i32 0)) #1 >>> %0 = load i32* %ivar1.addr, align 4 >>> %1 = load i32* %ivar2.addr, align 4 >>> %call1 = call i32 @one_11(i32 %0, i32 %1) >>> store i32 %call1, i32* %isum, align 4 >>> %2 = load i32* %isum, align 4 >>> ret i32 %2 >>> } >>> >>> Modified LLVM IR file, >>> @.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in >>> one_11\0A\00", align 1 >>> @.str3 = private unnamed_addr constant [17 x i8] c"\0AI am in >>> one_12\0A\00", align 1 >>> >>> ; Function Attrs: nounwind >>> define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 { >>> entry: >>> %ivar1.addr = alloca i32, align 4 >>> %ivar2.addr = alloca i32, align 4 >>> %isum = alloca i32, align 4 >>> store i32 %ivar1, i32* %ivar1.addr, align 4 >>> store i32 %ivar2, i32* %ivar2.addr, align 4 >>> store i32 0, i32* %isum, align 4 >>> %call1 = call i32 @one_12(i32 %0, i32 %1) <=>>> store i32 %call1, i32* %isum, align <=>>> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x >>> i8]* @.str, i32 0, i32 0)) #1 >>> %0 = load i32* %ivar1.addr, align 4 >>> %1 = load i32* %ivar2.addr, align 4 >>> %call2 = call i32 @one_11(i32 %0, i32 %1) <=>>> store i32 %call2, i32* %isum, align 4 <=>>> %2 = load i32* %isum, align 4 >>> ret i32 %2 >>> } >>> >>> With llc tool, I want to generate object file for modified llvm ir file >>> and it should call function >>> first "one_12"" and then function "one_11". >>> >>> Can someone please tell me how I can do my above requirement. >>> >>> Thanks in advance, >>> Deepika >>> >>> _______________________________________________ >>> LLVM Developers mailing list >>> llvm-dev at lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>> >>> >> > > > -- > > Thanks and Regards, > Sandeep Kumar Singh >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160210/cfd2f52d/attachment.html>
Hi, Yes I am looking for IR pass that will do insert call of functions that defined in another file. Links/suggestions that guide me to start for adding IR pass will help me so much. Regards, Deepika On Wed, Feb 10, 2016 at 1:03 PM, mats petersson <mats at planetcatfish.com> wrote:> So how do you know what you want to modify (conceptually)? > > Have you got a IR pass that you are working on, or are you asking for > links/suggestions on how to start on one? > > -- > Mats > > On 10 February 2016 at 04:04, Sandeep Kumar Singh <deepdondo007 at gmail.com> > wrote: > >> Hi, >> >> I want to call/add some functions(that defined in another file) on top of >> some functions, and reflect the same changes in object file. >> No, I am not looking for contractor. >> >> Thanks, >> Deepika >> >> On Tue, Feb 9, 2016 at 7:04 PM, mats petersson <mats at planetcatfish.com> >> wrote: >> >>> What is the condition for adding this code? >>> >>> What have you tried so far? [Or are you looking for a contractor that >>> can write code for you - I'm not sure this is quite the right place for >>> that, but there are probably some people like that on this mailing list] >>> >>> -- >>> Mats >>> >>> On 9 February 2016 at 09:34, Sandeep Kumar Singh via llvm-dev < >>> llvm-dev at lists.llvm.org> wrote: >>> >>>> Hi, >>>> >>>> I want to edit LLVM generated IR file, like as given below, >>>> >>>> Original LLVM IR file, >>>> @.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in >>>> one_11\0A\00", align 1 >>>> >>>> ; Function Attrs: nounwind >>>> define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 { >>>> entry: >>>> %ivar1.addr = alloca i32, align 4 >>>> %ivar2.addr = alloca i32, align 4 >>>> %isum = alloca i32, align 4 >>>> store i32 %ivar1, i32* %ivar1.addr, align 4 >>>> store i32 %ivar2, i32* %ivar2.addr, align 4 >>>> store i32 0, i32* %isum, align 4 >>>> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 >>>> x i8]* @.str, i32 0, i32 0)) #1 >>>> %0 = load i32* %ivar1.addr, align 4 >>>> %1 = load i32* %ivar2.addr, align 4 >>>> %call1 = call i32 @one_11(i32 %0, i32 %1) >>>> store i32 %call1, i32* %isum, align 4 >>>> %2 = load i32* %isum, align 4 >>>> ret i32 %2 >>>> } >>>> >>>> Modified LLVM IR file, >>>> @.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in >>>> one_11\0A\00", align 1 >>>> @.str3 = private unnamed_addr constant [17 x i8] c"\0AI am in >>>> one_12\0A\00", align 1 >>>> >>>> ; Function Attrs: nounwind >>>> define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 { >>>> entry: >>>> %ivar1.addr = alloca i32, align 4 >>>> %ivar2.addr = alloca i32, align 4 >>>> %isum = alloca i32, align 4 >>>> store i32 %ivar1, i32* %ivar1.addr, align 4 >>>> store i32 %ivar2, i32* %ivar2.addr, align 4 >>>> store i32 0, i32* %isum, align 4 >>>> %call1 = call i32 @one_12(i32 %0, i32 %1) <=>>>> store i32 %call1, i32* %isum, align <=>>>> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 >>>> x i8]* @.str, i32 0, i32 0)) #1 >>>> %0 = load i32* %ivar1.addr, align 4 >>>> %1 = load i32* %ivar2.addr, align 4 >>>> %call2 = call i32 @one_11(i32 %0, i32 %1) <=>>>> store i32 %call2, i32* %isum, align 4 <=>>>> %2 = load i32* %isum, align 4 >>>> ret i32 %2 >>>> } >>>> >>>> With llc tool, I want to generate object file for modified llvm ir file >>>> and it should call function >>>> first "one_12"" and then function "one_11". >>>> >>>> Can someone please tell me how I can do my above requirement. >>>> >>>> Thanks in advance, >>>> Deepika >>>> >>>> _______________________________________________ >>>> LLVM Developers mailing list >>>> llvm-dev at lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>>> >>>> >>> >> >> >> -- >> >> Thanks and Regards, >> Sandeep Kumar Singh >> > >-- Thanks and Regards, Sandeep Kumar Singh -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160210/49c57a02/attachment.html>