Conversation
5371521 to
7fa33df
Compare
f55ab8b to
d7c0ded
Compare
lpw25
left a comment
There was a problem hiding this comment.
I read through most of the changes to the back and middle-end, but I actually think it would be better to take those out since they can't really be tested in this PR. Better to have a PR that obviously doesn't change compilation, and then later change compilation when we have operations that require those changes.
|
This PR is now rebased, and stripped off most middle-end and back-end changes. |
|
After refactoring, most of issues are addressed. . However, because of the big changes, I'm not sure if some of those are addressed in the ideal way. Therefore, I left those comments open. Could you take another look and let me know @lpw25 |
lpw25
left a comment
There was a problem hiding this comment.
Some comments on recent changes. I'm also going to push some changes directly for the parts of uniqueness_analysis.ml I haven't yet reviewed.
lpw25
left a comment
There was a problem hiding this comment.
Some final suggestions, but I think this is probably good to go.
|
This has now been merged in the other repo. |
This PR is a simplified version of #116 where overwrite (
{overwrite_ x with ...}) is removed. Theoverwritefeature requires changes in the middle-end and back-end which is easily unsafe if not done right. This PR doesn't includeoverwriteand should be easier to review and merge. Moreover, most of the race-freedom guarantee we aim to provide doesn't rely on overwriting anyway.This PR still touches the middle and back-end because
alloc_modetolocality_mode. Nowalloc_modecontains two axes:localityanduniqueness.uniquenessaxis is passed through, because they might be needed even in middle and back-end.Currently we only use it to disable constant-lifting for
uniquevalues in multiple stages in the pipeline.