Domagoj Babic
2007-Aug-29 18:39 UTC
[LLVMdev] constructing 'for' statement from LLVM bitcode
Seung, On 8/25/07, Chris Lattner <sabre at nondot.org> wrote:> Ok. Note that LLVM can represent irreducible loops. You can handle > this through code duplication. > -ChrisIf you are willing to invest more effort into a more complicated analysis, in many cases you can even avoid code duplication. See this paper for details: @inproceedings{erosa94taming, author = {Ana M. Erosa and Laurie J. Hendren}, title = {Taming Control Flow: A Structured Approach to Eliminating Goto Statements.}, booktitle = {ICCL}, year = {1994}, pages = {229--240}, } Cheers, -- Domagoj Babic http://www.domagoj.info/ http://www.calysto.org/
Daniel Berlin
2007-Aug-30 21:07 UTC
[LLVMdev] constructing 'for' statement from LLVM bitcode
On 8/29/07, Domagoj Babic <babic.domagoj at gmail.com> wrote:> Seung, > > On 8/25/07, Chris Lattner <sabre at nondot.org> wrote: > > Ok. Note that LLVM can represent irreducible loops. You can handle > > this through code duplication. > > -Chris > > > If you are willing to invest more effort into a more complicated analysis, > in many cases you can even avoid code duplication. See this paper for > details:We implemented this in GCC early on in the days of GIMPLE, and while theoretically it removes code duplication, in practice it made the code take significantly more space and run slower. :)> > @inproceedings{erosa94taming, > author = {Ana M. Erosa and > Laurie J. Hendren}, > title = {Taming Control Flow: A Structured Approach to Eliminating > Goto Statements.}, > booktitle = {ICCL}, > year = {1994}, > pages = {229--240}, > } > > Cheers, > > -- > Domagoj Babic > > http://www.domagoj.info/ > http://www.calysto.org/ > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Domagoj Babic
2007-Aug-30 21:53 UTC
[LLVMdev] constructing 'for' statement from LLVM bitcode
Daniel, On 8/30/07, Daniel Berlin <dberlin at dberlin.org> wrote:> On 8/29/07, Domagoj Babic <babic.domagoj at gmail.com> wrote: > > Seung, > > > > On 8/25/07, Chris Lattner <sabre at nondot.org> wrote: > > > Ok. Note that LLVM can represent irreducible loops. You can handle > > > this through code duplication. > > > -Chris > > > > > > If you are willing to invest more effort into a more complicated analysis, > > in many cases you can even avoid code duplication. See this paper for > > details: > > We implemented this in GCC early on in the days of GIMPLE, and while > theoretically it removes code duplication, in practice it made the > code take significantly more space and run slower. :)This is good to know, I've never implemented it myself. I'm a bit surprised that the code took significantly more space. Cheers, -- Domagoj Babic http://www.domagoj.info/ http://www.calysto.org/
Apparently Analagous Threads
- [LLVMdev] constructing 'for' statement from LLVM bitcode
- [LLVMdev] constructing 'for' statement from LLVM bitcode
- [LLVMdev] constructing 'for' statement from LLVM bitcode
- [LLVMdev] constructing 'for' statement from LLVM bitcode
- NULL ptr dereferences found with Calysto static checker