revamp BoundsChecking considerably:
authorNuno Lopes <nunoplopes@sapo.pt>
Thu, 31 May 2012 22:45:40 +0000 (22:45 +0000)
committerNuno Lopes <nunoplopes@sapo.pt>
Thu, 31 May 2012 22:45:40 +0000 (22:45 +0000)
commit0463cce55da6fb534566a5e9e0696d63b5bce236
treee0c30b8e300b98b5244bb87f5baab34f5480f1fd
parent91a8ad71aa5d08e37a8a4ed364d0dae720d8ea7c
revamp BoundsChecking considerably:
 - compute size & offset at the same time. The side-effects of this are that we now support negative GEPs. It's now approaching a phase that it can be reused by other passes (e.g., lowering of the objectsize intrinsic)
 - use APInt throughout to handle wrap-arounds
 - add support for PHI instrumentation
 - add a cache (required for recursive PHIs anyway)
 - remove hoisting support for now, since it was wrong in a few cases

sorry for the churn here.. tests will follow soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157775 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/BoundsChecking.cpp
test/Transforms/BoundsChecking/simple.ll