[PATCH] [Statepoints] Support for "patchable" statepoints.

Sanjoy Das sanjoy at playingwithpointers.com
Mon May 11 17:35:19 PDT 2015


================
Comment at: docs/Statepoints.rst:145
@@ -144,3 +144,3 @@
          gc "statepoint-example" {
-    %0 = call i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* @foo, i32 0, i32 0, i32 0, i8 addrspace(1)* %obj)
+    %0 = call i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, (void ()* @foo, i32 0, i32 0, i32 0, i8 addrspace(1)* %obj)
     %obj.relocated = call coldcc i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(i32 %0, i32 4, i32 4)
----------------
pgavlin wrote:
> Still one extra `(` before `void ()* @foo, ...`
Thanks, will fix.

================
Comment at: lib/IR/Verifier.cpp:3410-3411
@@ -3386,4 +3409,4 @@
 
     // gc_relocate does not need to be the same type as the relocated pointer.
     // It can casted to the correct type later if it's desired
     break;
----------------
pgavlin wrote:
> An assertion that the result type remains a pointer would be helpful. This assert certainly helped me find and correct a few calls to gc.relocate that I hadn't fixed up when I was adjusting things for the GC transition change.
This came in via a different change by Chen, I'll ask him to take a look.

http://reviews.llvm.org/D9546

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list