Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unbreak the !unconditionally_dereferenceable LLVM patch #655

Closed
whitequark opened this issue Jan 16, 2017 · 5 comments
Closed

Unbreak the !unconditionally_dereferenceable LLVM patch #655

whitequark opened this issue Jan 16, 2017 · 5 comments

Comments

@whitequark
Copy link
Contributor

See the discussion in https://reviews.llvm.org/D18738. Sanjoy Das is convinced that it is unsound. Although I am not quite as convinced his approach is cleaner and could be merged upstream.

@whitequark
Copy link
Contributor Author

Triage: the upstream still cannot agree on the desired semantics for a feature like this: https://reviews.llvm.org/D20116. I am now more convinced that the patch we have is, in fact, unsound.

@whitequark
Copy link
Contributor Author

D20116 is in.

@jordens
Copy link
Member

jordens commented May 11, 2017

@whitequark is this now merely a consolidation/upstreaming thing or should/would the semantics change?

@whitequark
Copy link
Contributor Author

@jordens The upstreamed patch is the equivalent of our patch but for function calls rather than loads and it is immediately useless to us in its current form. (It might be useful for other things, not sure yet.) However the argument that allowed it to get in can be used when revisiting !unconditionally_dereferenceable and we should do that.

@whitequark
Copy link
Contributor Author

Per correspondence with LLVM developers, the patch is broken by design and cannot be fixed (and likely can lead to miscompilations already). We'll have to find some other way of improving the performance of the loops it was used to speed up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants