> Predsimplify is believed to have bugs (it results in miscompiled > programs) and certainly isn't efficient (it was written before much of > include/ADT). Finally, predsimplify is likely to go away once I or > someone else writes a proper VRP pass.Whoever does this, I strongly encourage looking into using (or at least providing optional support for) the Apron library: http://apron.cri.ensmp.fr/library/ No sense reinventing these wheels. John Regehr
On Feb 15, 2009, at 10:08 PM, John Regehr wrote:>> Predsimplify is believed to have bugs (it results in miscompiled >> programs) and certainly isn't efficient (it was written before much >> of >> include/ADT). Finally, predsimplify is likely to go away once I or >> someone else writes a proper VRP pass. > > Whoever does this, I strongly encourage looking into using (or at > least > providing optional support for) the Apron library: > > http://apron.cri.ensmp.fr/library/ > > No sense reinventing these wheels.In my experience, starting with a very simple and very cheap approach will get most of the benefit. For those who really want to eliminate every check possible, a more expensive approach can be used on top of it. If someone is interested in array bound check elimination, I'd suggest starting with the ABCD (array bounds check elimination on deman) paper. I believe that vmkit would hugely benefit from this as well. -Chris
Hi Chris,> In my experience, starting with a very simple and very cheap approach > will get most of the benefit. For those who really want to eliminate > every check possible, a more expensive approach can be used on top of > it. If someone is interested in array bound check elimination, I'd > suggest starting with the ABCD (array bounds check elimination on > deman) paper. I believe that vmkit would hugely benefit from this as > well.Ada would also benefit I think: all array accesses are checked. Ciao, Duncan.
Chris do you have a sense for how the definedness of signed overflow in LLVM would play out in the context of bounds check elimination? That is, would it cause lots of failure to eliminate checks that could be seen to be unnecessary at the C level? John On Sun, 15 Feb 2009, Chris Lattner wrote:> > On Feb 15, 2009, at 10:08 PM, John Regehr wrote: > >>> Predsimplify is believed to have bugs (it results in miscompiled >>> programs) and certainly isn't efficient (it was written before much >>> of >>> include/ADT). Finally, predsimplify is likely to go away once I or >>> someone else writes a proper VRP pass. >> >> Whoever does this, I strongly encourage looking into using (or at >> least >> providing optional support for) the Apron library: >> >> http://apron.cri.ensmp.fr/library/ >> >> No sense reinventing these wheels. > > In my experience, starting with a very simple and very cheap approach > will get most of the benefit. For those who really want to eliminate > every check possible, a more expensive approach can be used on top of > it. If someone is interested in array bound check elimination, I'd > suggest starting with the ABCD (array bounds check elimination on > deman) paper. I believe that vmkit would hugely benefit from this as > well. > > -Chris > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >