[llvm-dev] Linker issue

Ryan Taylor via llvm-dev llvm-dev at lists.llvm.org
Tue May 14 06:54:38 PDT 2019


Some background: We have an issue with in loop values being correctly
marked uniform but the out of loop uses can be non-uniform. Currently the
out of loop users are not marked as divergent because the in loop value is
uniform inside the loop. We have gotten around this problem for the moment
by applying LCSSA which inserts a PHI in the loop exit for the in loop
uniform value that allows the divergent info to be passed onto isel.

The LCSSA is being inserted into XXXDAGToDAGISel class but this causes a
pass scheduling conflict with StackProtector. So what we've done is try to
preserve StackProtector in LCSSA, the issue is that the linker fails in
Debug build (but not Release build).

StackProtector lies in CodeGen while LCSSA lies in Tranforms/Utils.

Matt had mentioned to me that you can't refer to a preserved pass if it's
not on the same library and that it might make sense to move the transform
IDs into a separate library. We need a way to mark transforms/analyses as
preserved without depending on linking the transform itself.

Thanks,

Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190514/058eda13/attachment.html>


More information about the llvm-dev mailing list