diff options
author | George Burgess IV <george.burgess.iv@gmail.com> | 2018-10-09 03:18:56 +0000 |
---|---|---|
committer | George Burgess IV <george.burgess.iv@gmail.com> | 2018-10-09 03:18:56 +0000 |
commit | f96e618017c3ca74934a7e8ef941e346c31e5092 (patch) | |
tree | ba7f2f9e89bb75256b5cd5fde4e1c077dc46e472 /llvm/lib/Analysis/CFGPrinter.cpp | |
parent | fefc42c9bbf44e755f213f494f263a52cbe12913 (diff) | |
download | bcm5719-llvm-f96e618017c3ca74934a7e8ef941e346c31e5092.tar.gz bcm5719-llvm-f96e618017c3ca74934a7e8ef941e346c31e5092.zip |
Make LocationSize a proper Optional type; NFC
This is the second in a series of changes intended to make
https://reviews.llvm.org/D44748 more easily reviewable. Please see that
patch for more context. The first change being r344012.
Since I was requested to do all of this with post-commit review, this is
about as small as I can make this patch.
This patch makes LocationSize into an actual type that wraps a uint64_t;
users are required to call getValue() in order to get the size now. If
the LocationSize has an Unknown size (e.g. if LocSize ==
MemoryLocation::UnknownSize), getValue() will assert.
This also adds DenseMap specializations for LocationInfo, which required
taking two more values from the set of values LocationInfo can
represent. Hence, heavy users of multi-exabyte arrays or structs may
observe slightly lower-quality code as a result of this change.
The intent is for getValue()s to be very close to a corresponding
hasValue() (which is often spelled `!= MemoryLocation::UnknownSize`).
Sadly, small diff context appears to crop that out sometimes, and the
last change in DSE does require a bit of nonlocal reasoning about
control-flow. :/
This also removes an assert, since it's now redundant with the assert in
getValue().
llvm-svn: 344013
Diffstat (limited to 'llvm/lib/Analysis/CFGPrinter.cpp')
0 files changed, 0 insertions, 0 deletions