[llvm-commits] Specification for Run-time Checks

Santosh Nagarakatte santosh.nagarakatte at gmail.com
Wed May 16 10:13:22 PDT 2012


John,

>
> I can see how the fastlscheck is useful since it can reduce the
> instrumentation that SoftBound needs to add.  Additionally, the
> pool_register optimizations may be indirectly useful.  If an optimization
> removes a pool_register call for an object, then all of the checks on that
> object can find the bounds of that object without any further
> instrumentation.  SoftBound may be able to take advantage of that.
>


Yes pool_register optimization looks like a good optimization to have.
Is there any documentation of current pool register optimizations.


> I would also argue that lscheck is useful.  The lscheck essentially tells a
> tool where a load/store check must be performed.  Optimizations can remove
> them or hoist them out of loops.  Once that is done, SoftBound can add the
> instrumentation to propagate bounds information and then replace the lscheck
> with the code that checks to see if the pointer is within bounds.
>
> Do you think these ideas will work, or are there problems with them (e.g.,
> would doing things this way make SoftBound more complicated?)?
>

Apart from the checks, SoftBound's overheads are primarily with
propagation. I don't think lscheck/fastlscheck should necessarily
complicate SoftBound

>> Additionally softboundcets would want to pass extra identifier
>> metadata with fastlscheck.
>
> Is this for the CETS instrumentation?  Can a SoftBound-specific pass easily
> enhance the fastlscheck with the needed information?
>

Yes SoftBoundCETS does lock and key checking, needs identifier
metadata with each check.

Thanks
Santosh

-- 
Santosh G Nagarakatte,
PhD Student,
Computer and Information Science Department
University of Pennsylvania,
Philadelphia-19104
http://www.cis.upenn.edu/~santoshn




More information about the llvm-commits mailing list