Input to this pass is the bitcode format of simple code below :
int sum_single_loop (int a){
   int su = 0, i;
   for (i=0;i<a;i++)
      su = su + i;
   return su;
}
On Mon, Feb 9, 2015 at 2:32 AM, David Blaikie <dblaikie at gmail.com>
wrote:
>
>
> On Sun, Feb 8, 2015 at 11:23 AM, Pranav Kant <pranav913 at gmail.com>
wrote:
>
>> So, you mean to say that the above implementation is correct and should
>> work fine.
>>
>
> So far as I can see - but I could be missing something.
>
>
>> I initially thought that the above way is not the correct way anymore
>> since 3.5.0 might have changed few things.
>>
>> Anyways here is my dirty code I have written for my research project
that
>> I took the above snippet from :
>>
>> https://github.com/pranavk/spatial-computing/blob/master/waves.cpp#L105
>>
>
> Someone (not necessarily me) will presumably need the
> input/command/arguments/whatever required to trigger the infinite loop in
> this code that you're seeing, as well as the code there.
>
>
>>
>>
>>
>> On Sun, Feb 8, 2015 at 10:25 PM, David Blaikie <dblaikie at
gmail.com>
>> wrote:
>>
>>> This may be difficult yo reproduce or debug without a more complete
>>> (though preferably minimal) test case.
>>> On Feb 8, 2015 8:31 AM, "Pranav Kant" <pranav913 at
gmail.com> wrote:
>>>
>>>> void Wave::init (const Function &F){
>>>>     Function::const_iterator ie = F.end();
>>>>     outs() << ie << "\n\n";
>>>>     for (Function::const_iterator I = F.begin(), IE = F.end();
I != IE;
>>>> I++, K++){
>>>>        outs() << I << "\n";
>>>>        // some manipulation with I
>>>>     }
>>>> }
>>>>
>>>> I used the above shown function in my pass in LLVM 3.4.2 and it
used to
>>>> work fine but when I am compiling this pass with 3.5.0, this is
a never
>>>> ending loop. Can someone please suggest me what can be wrong
here ?
>>>>
>>>> Upon some debugging, I found out that const_iterator I never
becomes
>>>> equal to IE, rather it goes past IE when incremented and hence
loop never
>>>> ends.
>>>>
>>>> Following is the output upon executing above code.
>>>>
>>>> 0x2e08248 <- address of ie
>>>> 0x2e16630 <- address of I initially
>>>> 0x2e08250 <- incremented I
>>>> 0x2e165e0
>>>> 0x2e16630
>>>> 0x2e08250
>>>> 0x2e165e0
>>>> 0x2e16630
>>>> 0x2e08250
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Pranav Kant,
>>>> Department of Computer Science
>>>> National Institute of Technology Hamirpur
>>>> http://pricked.in/
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Pranav Kant,
>>>> Department of Computer Science
>>>> National Institute of Technology Hamirpur
>>>> http://pricked.in/
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>>
>>
>>
>> --
>> Regards,
>> Pranav Kant,
>> Department of Computer Science
>> National Institute of Technology Hamirpur
>> http://pricked.in/
>>
>
>
-- 
Regards,
Pranav Kant,
Department of Computer Science
National Institute of Technology Hamirpur
http://pricked.in/
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20150209/0630d1dd/attachment.html>
This is a bit of a long shot, but your loop looks fine, and I noticed a bug in one of the functions you call from your loop body. Try this for WaveScalar::setLabel: - Twine twine(k); - (*succ)->setName(twine); + (*succ)->setName(Twine(k)); and see whether that makes any difference? Nick Pranav Kant wrote:> Input to this pass is the bitcode format of simple code below : > > int sum_single_loop (int a){ > int su = 0, i; > for (i=0;i<a;i++) > su = su + i; > return su; > } > > > On Mon, Feb 9, 2015 at 2:32 AM, David Blaikie <dblaikie at gmail.com > <mailto:dblaikie at gmail.com>> wrote: > > > > On Sun, Feb 8, 2015 at 11:23 AM, Pranav Kant <pranav913 at gmail.com > <mailto:pranav913 at gmail.com>> wrote: > > So, you mean to say that the above implementation is correct and > should work fine. > > > So far as I can see - but I could be missing something. > > I initially thought that the above way is not the correct way > anymore since 3.5.0 might have changed few things. > > Anyways here is my dirty code I have written for my research > project that I took the above snippet from : > > https://github.com/pranavk/spatial-computing/blob/master/waves.cpp#L105 > > > Someone (not necessarily me) will presumably need the > input/command/arguments/whatever required to trigger the infinite > loop in this code that you're seeing, as well as the code there. > > > > > On Sun, Feb 8, 2015 at 10:25 PM, David Blaikie > <dblaikie at gmail.com <mailto:dblaikie at gmail.com>> wrote: > > This may be difficult yo reproduce or debug without a more > complete (though preferably minimal) test case. > > On Feb 8, 2015 8:31 AM, "Pranav Kant" <pranav913 at gmail.com > <mailto:pranav913 at gmail.com>> wrote: > > void Wave::init (const Function &F){ > Function::const_iterator ie = F.end(); > outs() << ie << "\n\n"; > for (Function::const_iterator I = F.begin(), IE > F.end(); I != IE; I++, K++){ > outs() << I << "\n"; > // some manipulation with I > } > } > > I used the above shown function in my pass in LLVM 3.4.2 > and it used to work fine but when I am compiling this > pass with 3.5.0, this is a never ending loop. Can > someone please suggest me what can be wrong here ? > > Upon some debugging, I found out that const_iterator I > never becomes equal to IE, rather it goes past IE when > incremented and hence loop never ends. > > Following is the output upon executing above code. > > 0x2e08248 <- address of ie > 0x2e16630 <- address of I initially > 0x2e08250 <- incremented I > 0x2e165e0 > 0x2e16630 > 0x2e08250 > 0x2e165e0 > 0x2e16630 > 0x2e08250 > > > > -- > Regards, > Pranav Kant, > Department of Computer Science > National Institute of Technology Hamirpur > http://pricked.in/ > > > > -- > Regards, > Pranav Kant, > Department of Computer Science > National Institute of Technology Hamirpur > http://pricked.in/ > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> > http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > -- > Regards, > Pranav Kant, > Department of Computer Science > National Institute of Technology Hamirpur > http://pricked.in/ > > > > > > -- > Regards, > Pranav Kant, > Department of Computer Science > National Institute of Technology Hamirpur > http://pricked.in/ > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Sorry but that didn't make any difference. Loop is still infinite. On Tue, Feb 10, 2015 at 2:47 PM, Nick Lewycky <nicholas at mxc.ca> wrote:> This is a bit of a long shot, but your loop looks fine, and I noticed a > bug in one of the functions you call from your loop body. Try this for > WaveScalar::setLabel: > > - Twine twine(k); > - (*succ)->setName(twine); > + (*succ)->setName(Twine(k)); > > and see whether that makes any difference? > > Nick > > Pranav Kant wrote: > >> Input to this pass is the bitcode format of simple code below : >> >> int sum_single_loop (int a){ >> int su = 0, i; >> for (i=0;i<a;i++) >> su = su + i; >> return su; >> } >> >> >> On Mon, Feb 9, 2015 at 2:32 AM, David Blaikie <dblaikie at gmail.com >> <mailto:dblaikie at gmail.com>> wrote: >> >> >> >> On Sun, Feb 8, 2015 at 11:23 AM, Pranav Kant <pranav913 at gmail.com >> <mailto:pranav913 at gmail.com>> wrote: >> >> So, you mean to say that the above implementation is correct and >> should work fine. >> >> >> So far as I can see - but I could be missing something. >> >> I initially thought that the above way is not the correct way >> anymore since 3.5.0 might have changed few things. >> >> Anyways here is my dirty code I have written for my research >> project that I took the above snippet from : >> >> https://github.com/pranavk/spatial-computing/blob/master/ >> waves.cpp#L105 >> >> >> Someone (not necessarily me) will presumably need the >> input/command/arguments/whatever required to trigger the infinite >> loop in this code that you're seeing, as well as the code there. >> >> >> >> >> On Sun, Feb 8, 2015 at 10:25 PM, David Blaikie >> <dblaikie at gmail.com <mailto:dblaikie at gmail.com>> wrote: >> >> This may be difficult yo reproduce or debug without a more >> complete (though preferably minimal) test case. >> >> On Feb 8, 2015 8:31 AM, "Pranav Kant" <pranav913 at gmail.com >> <mailto:pranav913 at gmail.com>> wrote: >> >> void Wave::init (const Function &F){ >> Function::const_iterator ie = F.end(); >> outs() << ie << "\n\n"; >> for (Function::const_iterator I = F.begin(), IE >> F.end(); I != IE; I++, K++){ >> outs() << I << "\n"; >> // some manipulation with I >> } >> } >> >> I used the above shown function in my pass in LLVM 3.4.2 >> and it used to work fine but when I am compiling this >> pass with 3.5.0, this is a never ending loop. Can >> someone please suggest me what can be wrong here ? >> >> Upon some debugging, I found out that const_iterator I >> never becomes equal to IE, rather it goes past IE when >> incremented and hence loop never ends. >> >> Following is the output upon executing above code. >> >> 0x2e08248 <- address of ie >> 0x2e16630 <- address of I initially >> 0x2e08250 <- incremented I >> 0x2e165e0 >> 0x2e16630 >> 0x2e08250 >> 0x2e165e0 >> 0x2e16630 >> 0x2e08250 >> >> >> >> -- >> Regards, >> Pranav Kant, >> Department of Computer Science >> National Institute of Technology Hamirpur >> http://pricked.in/ >> >> >> >> -- >> Regards, >> Pranav Kant, >> Department of Computer Science >> National Institute of Technology Hamirpur >> http://pricked.in/ >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> >> http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> >> >> >> -- >> Regards, >> Pranav Kant, >> Department of Computer Science >> National Institute of Technology Hamirpur >> http://pricked.in/ >> >> >> >> >> >> -- >> Regards, >> Pranav Kant, >> Department of Computer Science >> National Institute of Technology Hamirpur >> http://pricked.in/ >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> > >-- Regards, Pranav Kant, Department of Computer Science National Institute of Technology Hamirpur http://pricked.in/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150210/58c71959/attachment.html>