[PATCH] D69332: Implement the Waymarking as an independent utility

Ehud Katz via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 20 09:08:12 PST 2019


ekatz added a comment.

In D69332#1753407 <https://reviews.llvm.org/D69332#1753407>, @foad wrote:

> I agree with @craig.topper that improving the algorithm and separating the algorithm from Use //should// be two different patches. Personally I am much more interested in the former than the latter.
>
> Have you seen bug 6809 and read this thread: http://lists.llvm.org/pipermail/llvm-dev/2014-April/072326.html ?
>
> Have you done any kind of profiling or measurement of your improved algorithm?


How do you and @craig.topper suggest I should separate it into 2 patches?
As I've explained, I can't separate the improvement of the algorithm from the one in the patch. I would have to re-design, re-write, re-test everything.
The only thing I can think of, is separate it into 2 patches: 1 for the utility, and 1 for changing Use, to use the utility. I can do that, but, correct me if I'm wrong, that is not what you suggested.

Regarding PR6809, I've seen it, and read everything regarding all the suggestions (including others) for improving the Waymarking algorithm.
I am not certain that my algorithm is better than the ones suggested (although it may be, or even about the same). What drove me into my improvement is just the dangling bit of the STOP tag, which could be used with the bits data, and not have to be alone (seemed like a waste).
Regarding the improvement of the number of bits used (for 64-bit), that was actually asked for a very long time, but in any case I wanted to generalize it (using templates) for any number of bits, and any location they may be in any type of data (not only pointer).

I do not think we get much (if any) REAL performance improvement (I tested), but only THEORETICAL improvement; but as explained above, this is not the reason for change. At least we don't get a slow down. ;)

The solution I propose is the one I am using on my personal project. I work with it for more than a year, now. Just thought to share it (plus - I added tests and updated the docs as needed).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69332/new/

https://reviews.llvm.org/D69332





More information about the llvm-commits mailing list