[llvm-dev] ArrayBoundChecks in SafeCode-llvm37

John Criswell via llvm-dev llvm-dev at lists.llvm.org
Thu Apr 28 16:41:00 PDT 2016

On 4/27/16 12:00 PM, Syed Rafiul Hussain via llvm-dev wrote:
> Hi,
> I am wondering if anyone could run ArrayBoundChecks located in
> SafeCode-llvm37 (https://github.com/jtcriswell/safecode-llvm37) on
> llvm-3.8?

As the 3.7 port isn't complete, I would guess that the answer is no.

Within that directory, which pass do you need?  The 
BreakConstantGEPs.cpp pass would be easy to get working with LLVM 3.8 
(note: in general, I don't recommend using this pass, but there are rare 
situations for which it is needed).

ArrayBoundsCheckLocal would probably be easy. ArrayBoundsCheckStruct 
should be easy if you have DSA updated to LLVM 3.8.

The omega-based static array bounds checking code has long bitroted, and 
it's design could use significant improvement.  That code executed the 
omega program for every array it checked.  A more efficient 
implementation would link the constraint solver in as a library and 
query it via a function call.

If you can explain in more detail what you need, I can provide advice on 
what I think your best path forward will be.


John Criswell

> Thanks.
> Syed

John Criswell
Assistant Professor
Department of Computer Science, University of Rochester

More information about the llvm-dev mailing list