-
Notifications
You must be signed in to change notification settings - Fork 61
Stacked Borrows: Incompatibilities with LLVM noalias #86
Copy link
Copy link
Closed
Labels
A-aliasing-modelTopic: Related to the aliasing model (e.g. Stacked/Tree Borrows)Topic: Related to the aliasing model (e.g. Stacked/Tree Borrows)A-optimizationCategory: Discussing optimizations we might (not) want to supportCategory: Discussing optimizations we might (not) want to supportA-provenanceTopic: Related to when which values have which provenance (but not which alias restrictions follow)Topic: Related to when which values have which provenance (but not which alias restrictions follow)C-open-questionCategory: An open question that we should revisitCategory: An open question that we should revisit
Metadata
Metadata
Assignees
Labels
A-aliasing-modelTopic: Related to the aliasing model (e.g. Stacked/Tree Borrows)Topic: Related to the aliasing model (e.g. Stacked/Tree Borrows)A-optimizationCategory: Discussing optimizations we might (not) want to supportCategory: Discussing optimizations we might (not) want to supportA-provenanceTopic: Related to when which values have which provenance (but not which alias restrictions follow)Topic: Related to when which values have which provenance (but not which alias restrictions follow)C-open-questionCategory: An open question that we should revisitCategory: An open question that we should revisit
Type
Fields
Give feedbackNo fields configured for issues without a type.
There are programs that are accepted by Stacked Borrows and conflict with LLVM noalias. @arielb1 had the following example in this long discussion on Zulip:
On a high level, the problem is that create a raw reference is like a "broadcast" that lets every raw pointer now access this location, whereas LLVM only lets newly created raw pointers be used for that.