[PATCH] Split the calling convention and statepoint flags operand to STATEPOINT into two separate operands.

Pat Gavlin pagavlin at microsoft.com
Tue May 12 07:59:27 PDT 2015


I did, yes.Nearly all of the code that would be sensitive to operand indices is in StackMap.{c,h}, and it is very good about using accessors and/or symbolic offsets.


================
Comment at: include/llvm/CodeGen/StackMaps.h:100
@@ -98,1 +99,3 @@
 
+  enum {
+    CCOffset = 1,
----------------
reames wrote:
> Why two enums?  I suspect there's a semantic difference, possibly a name or comment is appropriate?
There is a semantic difference:
- {NCallArgsPos, CallTargetPos} are absolute offsets from the start of the argument list
- {CCOfset, FlagsOffset, NumVMSArgsOffset} are relative offsets from the start of the meta-args

I'll add a comment to that effect.

================
Comment at: test/CodeGen/X86/statepoint-allocas.ll:75
@@ -74,2 +74,3 @@
 ; CHECK: .short	0
-; CHECK: .short	3
+; CHECK: .short	4
+; SmallConstant (0)
----------------
reames wrote:
> With this change, you're changing the public format.  Thus, we need to update: http://llvm.org/docs/Statepoints.html#stack-map-format
> 
> Having said that, it looks like the documentation never included the flags at all.  Oops.  Can you add entries for both calling convention and flags?
Will do.

http://reviews.llvm.org/D9623

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






More information about the llvm-commits mailing list