[LLVMdev] SSI and ABCD for LLVM

Vikram S. Adve vadve at cs.uiuc.edu
Sat Jun 6 11:31:11 PDT 2009

On Jun 5, 2009, at 9:26 AM, Mai, Haohui wrote:

> By static array bounds checking, I mean eliminating array bounds  
> checking
> which can be proved ``safe'' at compile-time.

Even though SAFECode does have such a pass, there are some tradeoffs  
with the current version:

1. It uses an external solver (Omega), which is one more dependence  
for LLVM in general.  I don't have a problem with this myself but some  
users may.

2. The existing algorithm for propagating constraints (inequalities)  
on variables is interprocedural (good) and inefficient (bad).

ABCD has different tradeoffs.  IIRC, ABCD doesn't use an external  
solver, though only because it only handles simple sets of  
inequalities.  The original ABCD algorithm is also intraprocedural,  
which seems extremely limiting in practice.  Is there any plan of  
extending this to work interprocedurally?

Associate Professor, Computer Science
University of Illinois at Urbana-Champaign

More information about the llvm-dev mailing list