[PATCH] D113238: [llvm-profgen] Fix index out of bounds error while using ip.advance
Lei Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 4 22:25:12 PDT 2021
wlei added inline comments.
================
Comment at: llvm/tools/llvm-profgen/ProfileGenerator.cpp:388
// can be Addr1+1 to Addr2-1. We should ignore such range.
while (IP.Address <= RangeEnd) {
uint64_t Offset = Binary->virtualAddrToOffset(IP.Address);
----------------
wenlei wrote:
> Before the loop, `RangeBegin <= RangeEnd` should be guaranteed, right? Would this look cleaner?
>
> ```
> do {
>
> ...
> } while (IP.advance() && IP.Address <= RangeEnd);
>
> ```
Seems not guaranteed, see the comments:
```
// Disjoint ranges may have range in the middle of two instr,
// e.g. If Instr1 at Addr1, and Instr2 at Addr2, disjoint range
// can be Addr1+1 to Addr2-1. We should ignore such range.
if (IP.Address > RangeEnd)
continue;
```
or change to ?
```
if (IP.Address > RangeEnd)
continue;
do {
...
} while (IP.advance() && IP.Address <= RangeEnd);
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113238/new/
https://reviews.llvm.org/D113238
More information about the llvm-commits
mailing list