summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py
diff options
context:
space:
mode:
authorSilviu Baranga <silviu.baranga@arm.com>2016-04-25 09:27:16 +0000
committerSilviu Baranga <silviu.baranga@arm.com>2016-04-25 09:27:16 +0000
commit795c629ec93cfa4da558df3231c1309fbe6883be (patch)
treeb41c451865a0d8d0698edc33c905f0d09c9573bf /lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py
parenta44d44cb2ea8264c905d65e8bb1c94f3abbfac3d (diff)
downloadbcm5719-llvm-795c629ec93cfa4da558df3231c1309fbe6883be.tar.gz
bcm5719-llvm-795c629ec93cfa4da558df3231c1309fbe6883be.zip
[SCEV] Improve the run-time checking of the NoWrap predicate
Summary: This implements a new method of run-time checking the NoWrap SCEV predicates, which should be easier to optimize and nicer for targets that don't correctly handle multiplication/addition of large integer types (like i128). If the AddRec is {a,+,b} and the backedge taken count is c, the idea is to check that |b| * c doesn't have unsigned overflow, and depending on the sign of b, that: a + |b| * c >= a (b >= 0) or a - |b| * c <= a (b <= 0) where the comparisons above are signed or unsigned, depending on the flag that we're checking. The advantage of doing this is that we avoid extending to a larger type and we avoid the multiplication of large types (multiplying i128 can be expensive). Reviewers: sanjoy Subscribers: llvm-commits, mzolotukhin Differential Revision: http://reviews.llvm.org/D19266 llvm-svn: 267389
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud