steakhal added a subscriber: tomasz-kaminski-sonarsource.
steakhal added a comment.

In D148355#4279866 <https://reviews.llvm.org/D148355#4279866>, @donat.nagy 
wrote:

> @steakhal Thanks for the background information!
>
> I didn't know about D86874 <https://reviews.llvm.org/D86874> so I indeed 
> ended up with something very similar to it. I reviewed D88359 
> <https://reviews.llvm.org/D88359> and I knew that it's a completely general 
> solution of this issue, but I felt that it's too complicated and wanted to 
> create a patch with shorter code than that.
>
> I really like the "use zero instead of negative numbers" trick in the 
> SonarSource patch; if you would upload that for a review, I'd strongly 
> support merging it.
>
> Another alternative is that I'm working on a new version of my patch, which 
> would eliminate the code duplication between the underflow and overflow 
> checks (by introducing a single function compareValueToThreshold that 
> performs offset simplification when needed, handles the unsigned-vs-negative 
> case, calls evalBinOpNN and invokes state->assume). This would be equivalent 
> to the SonarSource patch (it handles unsigned-vs-negative comparison on "both 
> sides") with the added independent benefit of simplifying the codebase. 
> However, I can also do this code simplification as a separate patch after 
> merging the SonarSource solution for the bug.
>
> Which solution would you prefer (upstream the solution used by SonarSource + 
> separate code quality improvement or the combined 
> refactor-and-check-before-evalBinOpNN variant that I could implement)?

Right now I don't have the bandwidth for upstreaming our version, and it seems 
like you already picked up the subject, so it's probably less intrusive for 
you. But I should speak for my self I know.
So, you can update this revision to our version, or modify or inspire by our 
version. Anything you want.
The only thing is, if the patch, in the end, is sufficiently similar to ours, I 
think we should add credit to the original author, who is I think 
@tomasz-kaminski-sonarsource (`Tomasz Kamiński 
<tomasz.kamin...@sonarsource.com>`).

I can help to review and do measurements at scale but I don't think I can 
contribute in other ways.

And on the note of doing refinement followup patches. If those are NFC 
(non-function changes), then those should be separated from semantic changes 
for sure.
Pure NFC changes make validation much easier, equally so the review process. If 
not, then it's up to you how you think it's the easiest to review the patch set.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D148355

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to