[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