[PATCH] D39388: [RS4GC] Strip off invariant.start because memory locations arent invariant

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 31 09:02:30 PDT 2017


anna added a comment.

In https://reviews.llvm.org/D39388#911770, @dneilson wrote:

> Is is possible to also remove the corresponding invariant.end calls to the removed invariant.start calls? This patch will leave orphaned calls to invariant.end sitting around in the IR that have no corresponding start.


Yes, we could remove it (which was what I initially did), but I didn't see any benefit for doing so. It would be special casing just one type of use of invariant.start. As testcase points out, we can have any instruction using invariant.start, and we cannot just remove those uses, because those uses may have other uses...

Just to be clear: having orphaned invariant.end is perfectly valid IR. On the other hand, as an IR cleanup, that's a good thing to do, especially because invariant.end cannot have any uses. I'll update the patch with special casing invariant.end


https://reviews.llvm.org/D39388





More information about the llvm-commits mailing list