[PATCH] D14665: Support literal structs in mangled intrinsics.

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 24 14:08:40 PST 2015


reames accepted this revision.
reames added a comment.
This revision is now accepted and ready to land.

The new literal struct naming rules seem fine, but the change in non-literal structs is not.  Unless you have a strong motivation for it, I'd prefer to see that portion of the change reverted.


================
Comment at: lib/IR/Function.cpp:493
@@ +492,3 @@
+    } else {
+      Result += "s_" + STyp->getName().str();
+    }
----------------
I'm not sure the change in serialization is acceptable here.  This will silently break previously valid code.  Is there a reason why the nesting scheme needs to apply to non-literal structs?  I think you can leave the old code in place for non-literal structures and just add the nesting for the new case.  

================
Comment at: test/CodeGen/Generic/overloaded-intrinsic-name.ll:47
@@ -46,3 +46,3 @@
        %tok = call i32 (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, %struct.test* %v)
-       %v-new = call %struct.test* @llvm.experimental.gc.relocate.p0struct.test(i32 %tok,  i32 7, i32 7)
+       %v-new = call %struct.test* @llvm.experimental.gc.relocate.p0s_struct.tests(i32 %tok,  i32 7, i32 7)
        ret %struct.test* %v-new
----------------
This is the change I'm concerned about.


http://reviews.llvm.org/D14665





More information about the llvm-commits mailing list