Hi, I want to profile each loop in order to collect execution time. Currently I inserted following timer instructions into LLVM IR Version3.4 and successfully got the results. before loop: In C: int t1=clock(); Equilavent IR: %t1 = alloca i32, align 4 %t2 = alloca i32, align 4 %1 = call i64 @clock() #3 %2 = trunc i64 %1 to i32 store i32 %2, i32* %t1, align 4 After loop: In C: int t2=clock(); printf("%f\n",((float)t2-t1)/CLOCKS_PER_SEC); Equivalent IR: %3 = call i64 @clock() #3 %4 = trunc i64 %3 to i32 store i32 %4, i32* %t2, align 4 %5 = load i32* %t2, align 4 %6 = sitofp i32 %5 to float %7 = load i32* %t1, align 4 %8 = sitofp i32 %7 to float %9 = fsub float %6, %8 %10 = fdiv float %9, 1.000000e+06 %11 = fpext float %10 to double %12 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), double %11) I want to do the same in LLVM4.0. I tried inserted these got error. -- Regards Shalini -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170706/22a66dbc/attachment.html>
Would probably help a whole lot if you explained what error you are getting... -- Mats On 6 July 2017 at 11:07, SHALINI JAIN via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hi, > > I want to profile each loop in order to collect execution time. Currently > I inserted following timer instructions into LLVM IR Version3.4 and > successfully got the results. > > before loop: > In C: > int t1=clock(); > > Equilavent IR: > %t1 = alloca i32, align 4 > %t2 = alloca i32, align 4 > %1 = call i64 @clock() #3 > %2 = trunc i64 %1 to i32 > store i32 %2, i32* %t1, align 4 > > After loop: > In C: > int t2=clock(); > printf("%f\n",((float)t2-t1)/CLOCKS_PER_SEC); > > Equivalent IR: > %3 = call i64 @clock() #3 > %4 = trunc i64 %3 to i32 > store i32 %4, i32* %t2, align 4 > %5 = load i32* %t2, align 4 > %6 = sitofp i32 %5 to float > %7 = load i32* %t1, align 4 > %8 = sitofp i32 %7 to float > %9 = fsub float %6, %8 > %10 = fdiv float %9, 1.000000e+06 > %11 = fpext float %10 to double > %12 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* > @.str, i32 0, i32 0), double %11) > > > I want to do the same in LLVM4.0. I tried inserted these got error. > > -- > Regards > Shalini > > _______________________________________________ > 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/20170706/05714c04/attachment.html>
On Thu, Jul 6, 2017, at 12:11 PM, mats petersson via llvm-dev wrote:> Would probably help a whole lot if you explained what error you are > getting...Also, this might be useful: https://github.com/llvm-mirror/polly/blob/master/lib/CodeGen/PerfMonitor.cpp Best, Tobias> > -- > Mats > > On 6 July 2017 at 11:07, SHALINI JAIN via llvm-dev > <llvm-dev at lists.llvm.org> > wrote: > > > Hi, > > > > I want to profile each loop in order to collect execution time. Currently > > I inserted following timer instructions into LLVM IR Version3.4 and > > successfully got the results. > > > > before loop: > > In C: > > int t1=clock(); > > > > Equilavent IR: > > %t1 = alloca i32, align 4 > > %t2 = alloca i32, align 4 > > %1 = call i64 @clock() #3 > > %2 = trunc i64 %1 to i32 > > store i32 %2, i32* %t1, align 4 > > > > After loop: > > In C: > > int t2=clock(); > > printf("%f\n",((float)t2-t1)/CLOCKS_PER_SEC); > > > > Equivalent IR: > > %3 = call i64 @clock() #3 > > %4 = trunc i64 %3 to i32 > > store i32 %4, i32* %t2, align 4 > > %5 = load i32* %t2, align 4 > > %6 = sitofp i32 %5 to float > > %7 = load i32* %t1, align 4 > > %8 = sitofp i32 %7 to float > > %9 = fsub float %6, %8 > > %10 = fdiv float %9, 1.000000e+06 > > %11 = fpext float %10 to double > > %12 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* > > @.str, i32 0, i32 0), double %11) > > > > > > I want to do the same in LLVM4.0. I tried inserted these got error. > > > > -- > > Regards > > Shalini > > > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev