rename Arg to Ptr

This makes almost all existing code read more clearly.

Change-Id: I314331d9aa2ecb4664557efc7972e1a820afc250
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/352085
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/src/core/SkVM.cpp b/src/core/SkVM.cpp
index c6cbe0d..97bb733 100644
--- a/src/core/SkVM.cpp
+++ b/src/core/SkVM.cpp
@@ -191,10 +191,9 @@
         static void write(SkWStream* o, Op op) {
             o->writeText(name(op));
         }
-        static void write(SkWStream* o, Arg a) {
-            write(o, "arg(");
-            o->writeDecAsText(a.ix);
-            write(o, ")");
+        static void write(SkWStream* o, Ptr p) {
+            write(o, "ptr");
+            o->writeDecAsText(p.ix);
         }
         static void write(SkWStream* o, V v) {
             write(o, "v");
@@ -237,25 +236,25 @@
         switch (op) {
             case Op::assert_true: write(o, op, V{x}, V{y}); break;
 
-            case Op::store8:   write(o, op, Arg{immy}   , V{x}                 ); break;
-            case Op::store16:  write(o, op, Arg{immy}   , V{x}                 ); break;
-            case Op::store32:  write(o, op, Arg{immy}   , V{x}                 ); break;
-            case Op::store64:  write(o, op, Arg{immz}   , V{x},V{y}            ); break;
-            case Op::store128: write(o, op, Arg{immz>>1}, V{x},V{y},Hex{immz&1}); break;
+            case Op::store8:   write(o, op, Ptr{immy}   , V{x}                 ); break;
+            case Op::store16:  write(o, op, Ptr{immy}   , V{x}                 ); break;
+            case Op::store32:  write(o, op, Ptr{immy}   , V{x}                 ); break;
+            case Op::store64:  write(o, op, Ptr{immz}   , V{x},V{y}            ); break;
+            case Op::store128: write(o, op, Ptr{immz>>1}, V{x},V{y},Hex{immz&1}); break;
 
             case Op::index: write(o, V{id}, "=", op); break;
 
-            case Op::load8:   write(o, V{id}, "=", op, Arg{immy}); break;
-            case Op::load16:  write(o, V{id}, "=", op, Arg{immy}); break;
-            case Op::load32:  write(o, V{id}, "=", op, Arg{immy}); break;
-            case Op::load64:  write(o, V{id}, "=", op, Arg{immy}, Hex{immz}); break;
-            case Op::load128: write(o, V{id}, "=", op, Arg{immy}, Hex{immz}); break;
+            case Op::load8:   write(o, V{id}, "=", op, Ptr{immy}); break;
+            case Op::load16:  write(o, V{id}, "=", op, Ptr{immy}); break;
+            case Op::load32:  write(o, V{id}, "=", op, Ptr{immy}); break;
+            case Op::load64:  write(o, V{id}, "=", op, Ptr{immy}, Hex{immz}); break;
+            case Op::load128: write(o, V{id}, "=", op, Ptr{immy}, Hex{immz}); break;
 
-            case Op::gather8:  write(o, V{id}, "=", op, Arg{immy}, Hex{immz}, V{x}); break;
-            case Op::gather16: write(o, V{id}, "=", op, Arg{immy}, Hex{immz}, V{x}); break;
-            case Op::gather32: write(o, V{id}, "=", op, Arg{immy}, Hex{immz}, V{x}); break;
+            case Op::gather8:  write(o, V{id}, "=", op, Ptr{immy}, Hex{immz}, V{x}); break;
+            case Op::gather16: write(o, V{id}, "=", op, Ptr{immy}, Hex{immz}, V{x}); break;
+            case Op::gather32: write(o, V{id}, "=", op, Ptr{immy}, Hex{immz}, V{x}); break;
 
-            case Op::uniform32: write(o, V{id}, "=", op, Arg{immy}, Hex{immz}); break;
+            case Op::uniform32: write(o, V{id}, "=", op, Ptr{immy}, Hex{immz}); break;
 
             case Op::splat: write(o, V{id}, "=", op, Splat{immy}); break;
 
@@ -349,25 +348,25 @@
             switch (op) {
                 case Op::assert_true: write(o, op, R{x}, R{y}); break;
 
-                case Op::store8:   write(o, op, Arg{immy}   , R{x}                   ); break;
-                case Op::store16:  write(o, op, Arg{immy}   , R{x}                   ); break;
-                case Op::store32:  write(o, op, Arg{immy}   , R{x}                   ); break;
-                case Op::store64:  write(o, op, Arg{immz}   , R{x}, R{y}             ); break;
-                case Op::store128: write(o, op, Arg{immz>>1}, R{x}, R{y}, Hex{immz&1}); break;
+                case Op::store8:   write(o, op, Ptr{immy}   , R{x}                   ); break;
+                case Op::store16:  write(o, op, Ptr{immy}   , R{x}                   ); break;
+                case Op::store32:  write(o, op, Ptr{immy}   , R{x}                   ); break;
+                case Op::store64:  write(o, op, Ptr{immz}   , R{x}, R{y}             ); break;
+                case Op::store128: write(o, op, Ptr{immz>>1}, R{x}, R{y}, Hex{immz&1}); break;
 
                 case Op::index: write(o, R{d}, "=", op); break;
 
-                case Op::load8:   write(o, R{d}, "=", op, Arg{immy}); break;
-                case Op::load16:  write(o, R{d}, "=", op, Arg{immy}); break;
-                case Op::load32:  write(o, R{d}, "=", op, Arg{immy}); break;
-                case Op::load64:  write(o, R{d}, "=", op, Arg{immy}, Hex{immz}); break;
-                case Op::load128: write(o, R{d}, "=", op, Arg{immy}, Hex{immz}); break;
+                case Op::load8:   write(o, R{d}, "=", op, Ptr{immy}); break;
+                case Op::load16:  write(o, R{d}, "=", op, Ptr{immy}); break;
+                case Op::load32:  write(o, R{d}, "=", op, Ptr{immy}); break;
+                case Op::load64:  write(o, R{d}, "=", op, Ptr{immy}, Hex{immz}); break;
+                case Op::load128: write(o, R{d}, "=", op, Ptr{immy}, Hex{immz}); break;
 
-                case Op::gather8:  write(o, R{d}, "=", op, Arg{immy}, Hex{immz}, R{x}); break;
-                case Op::gather16: write(o, R{d}, "=", op, Arg{immy}, Hex{immz}, R{x}); break;
-                case Op::gather32: write(o, R{d}, "=", op, Arg{immy}, Hex{immz}, R{x}); break;
+                case Op::gather8:  write(o, R{d}, "=", op, Ptr{immy}, Hex{immz}, R{x}); break;
+                case Op::gather16: write(o, R{d}, "=", op, Ptr{immy}, Hex{immz}, R{x}); break;
+                case Op::gather32: write(o, R{d}, "=", op, Ptr{immy}, Hex{immz}, R{x}); break;
 
-                case Op::uniform32: write(o, R{d}, "=", op, Arg{immy}, Hex{immz}); break;
+                case Op::uniform32: write(o, R{d}, "=", op, Ptr{immy}, Hex{immz}); break;
 
                 case Op::splat:     write(o, R{d}, "=", op, Splat{immy}); break;
 
@@ -576,7 +575,7 @@
         return false;
     }
 
-    Arg Builder::arg(int stride) {
+    Ptr Builder::arg(int stride) {
         int ix = (int)fStrides.size();
         fStrides.push_back(stride);
         return {ix};
@@ -590,39 +589,39 @@
     #endif
     }
 
-    void Builder::store8 (Arg ptr, I32 val) { (void)push(Op::store8 , val.id,NA,NA, ptr.ix); }
-    void Builder::store16(Arg ptr, I32 val) { (void)push(Op::store16, val.id,NA,NA, ptr.ix); }
-    void Builder::store32(Arg ptr, I32 val) { (void)push(Op::store32, val.id,NA,NA, ptr.ix); }
-    void Builder::store64(Arg ptr, I32 lo, I32 hi) {
+    void Builder::store8 (Ptr ptr, I32 val) { (void)push(Op::store8 , val.id,NA,NA, ptr.ix); }
+    void Builder::store16(Ptr ptr, I32 val) { (void)push(Op::store16, val.id,NA,NA, ptr.ix); }
+    void Builder::store32(Ptr ptr, I32 val) { (void)push(Op::store32, val.id,NA,NA, ptr.ix); }
+    void Builder::store64(Ptr ptr, I32 lo, I32 hi) {
         (void)push(Op::store64, lo.id,hi.id,NA, NA,ptr.ix);
     }
-    void Builder::store128(Arg ptr, I32 lo, I32 hi, int lane) {
+    void Builder::store128(Ptr ptr, I32 lo, I32 hi, int lane) {
         (void)push(Op::store128, lo.id,hi.id,NA, NA,(ptr.ix<<1)|(lane&1));
     }
 
     I32 Builder::index() { return {this, push(Op::index , NA,NA,NA,0) }; }
 
-    I32 Builder::load8 (Arg ptr) { return {this, push(Op::load8 , NA,NA,NA, ptr.ix) }; }
-    I32 Builder::load16(Arg ptr) { return {this, push(Op::load16, NA,NA,NA, ptr.ix) }; }
-    I32 Builder::load32(Arg ptr) { return {this, push(Op::load32, NA,NA,NA, ptr.ix) }; }
-    I32 Builder::load64(Arg ptr, int lane) {
+    I32 Builder::load8 (Ptr ptr) { return {this, push(Op::load8 , NA,NA,NA, ptr.ix) }; }
+    I32 Builder::load16(Ptr ptr) { return {this, push(Op::load16, NA,NA,NA, ptr.ix) }; }
+    I32 Builder::load32(Ptr ptr) { return {this, push(Op::load32, NA,NA,NA, ptr.ix) }; }
+    I32 Builder::load64(Ptr ptr, int lane) {
         return {this, push(Op::load64 , NA,NA,NA, ptr.ix,lane) };
     }
-    I32 Builder::load128(Arg ptr, int lane) {
+    I32 Builder::load128(Ptr ptr, int lane) {
         return {this, push(Op::load128, NA,NA,NA, ptr.ix,lane) };
     }
 
-    I32 Builder::gather8 (Arg ptr, int offset, I32 index) {
+    I32 Builder::gather8 (Ptr ptr, int offset, I32 index) {
         return {this, push(Op::gather8 , index.id,NA,NA, ptr.ix,offset)};
     }
-    I32 Builder::gather16(Arg ptr, int offset, I32 index) {
+    I32 Builder::gather16(Ptr ptr, int offset, I32 index) {
         return {this, push(Op::gather16, index.id,NA,NA, ptr.ix,offset)};
     }
-    I32 Builder::gather32(Arg ptr, int offset, I32 index) {
+    I32 Builder::gather32(Ptr ptr, int offset, I32 index) {
         return {this, push(Op::gather32, index.id,NA,NA, ptr.ix,offset)};
     }
 
-    I32 Builder::uniform32(Arg ptr, int offset) {
+    I32 Builder::uniform32(Ptr ptr, int offset) {
         return {this, push(Op::uniform32, NA,NA,NA, ptr.ix, offset)};
     }
 
@@ -1140,7 +1139,7 @@
     #endif
     }
 
-    Color Builder::load(PixelFormat f, Arg ptr) {
+    Color Builder::load(PixelFormat f, Ptr ptr) {
         switch (byte_size(f)) {
             case 1: return unpack(f, load8 (ptr));
             case 2: return unpack(f, load16(ptr));
@@ -1171,7 +1170,7 @@
         return {};
     }
 
-    Color Builder::gather(PixelFormat f, Arg ptr, int offset, I32 index) {
+    Color Builder::gather(PixelFormat f, Ptr ptr, int offset, I32 index) {
         switch (byte_size(f)) {
             case 1: return unpack(f, gather8 (ptr, offset, index));
             case 2: return unpack(f, gather16(ptr, offset, index));
@@ -1220,7 +1219,7 @@
         return packed;
     }
 
-    bool Builder::store(PixelFormat f, Arg ptr, Color c) {
+    bool Builder::store(PixelFormat f, Ptr ptr, Color c) {
         // Detect a grayscale PixelFormat: r,g,b bit counts and shifts all equal.
         if (f.r_bits  == f.g_bits  && f.g_bits  == f.b_bits &&
             f.r_shift == f.g_shift && f.g_shift == f.b_shift) {
diff --git a/src/core/SkVM.h b/src/core/SkVM.h
index 3158160..6963d40 100644
--- a/src/core/SkVM.h
+++ b/src/core/SkVM.h
@@ -471,7 +471,7 @@
     // NA meaning none, n/a, null, nil, etc.
     static const Val NA = -1;
 
-    struct Arg { int ix; };
+    struct Ptr { int ix; };
 
     // 32-bit signed integer (with both signed sra() and unsigned/logical shr() available).
     // Think "int" or "int32_t".
@@ -574,14 +574,14 @@
     };
 
     struct Uniform {
-        Arg ptr;
+        Ptr ptr;
         int offset;
     };
     struct Uniforms {
-        Arg              base;
+        Ptr              base;
         std::vector<int> buf;
 
-        explicit Uniforms(int init) : base(Arg{0}), buf(init) {}
+        explicit Uniforms(int init) : base(Ptr{0}), buf(init) {}
 
         Uniform push(int val) {
             buf.push_back(val);
@@ -653,14 +653,14 @@
 
         // Declare an argument with given stride (use stride=0 for uniforms).
         // TODO: different types for varying and uniforms?
-        Arg arg(int stride);
+        Ptr arg(int stride);
 
         // Convenience arg() wrappers for most common strides, sizeof(T) and 0.
         template <typename T>
-        Arg varying() { return this->arg(sizeof(T)); }
-        Arg uniform() { return this->arg(0); }
+        Ptr varying() { return this->arg(sizeof(T)); }
+        Ptr uniform() { return this->arg(0); }
 
-        // TODO: allow uniform (i.e. Arg) offsets to store* and load*?
+        // TODO: allow uniform (i.e. Ptr) offsets to store* and load*?
         // TODO: sign extension (signed types) for <32-bit loads?
         // TODO: unsigned integer operations where relevant (just comparisons?)?
 
@@ -672,36 +672,36 @@
         // TODO: Half asserts?
 
         // Store {8,16,32,64,128}-bit varying.
-        void store8  (Arg ptr, I32 val);
-        void store16 (Arg ptr, I32 val);
-        void store32 (Arg ptr, I32 val);
-        void storeF  (Arg ptr, F32 val) { store32(ptr, pun_to_I32(val)); }
-        void store64 (Arg ptr, I32 lo, I32 hi);            // *ptr = lo|(hi<<32)
-        void store128(Arg ptr, I32 lo, I32 hi, int lane);  // 64-bit lane 0-1 at ptr = lo|(hi<<32).
+        void store8  (Ptr ptr, I32 val);
+        void store16 (Ptr ptr, I32 val);
+        void store32 (Ptr ptr, I32 val);
+        void storeF  (Ptr ptr, F32 val) { store32(ptr, pun_to_I32(val)); }
+        void store64 (Ptr ptr, I32 lo, I32 hi);            // *ptr = lo|(hi<<32)
+        void store128(Ptr ptr, I32 lo, I32 hi, int lane);  // 64-bit lane 0-1 at ptr = lo|(hi<<32).
 
         // Returns varying {n, n-1, n-2, ..., 1}, where n is the argument to Program::eval().
         I32 index();
 
         // Load {8,16,32,64,128}-bit varying.
-        I32 load8  (Arg ptr);
-        I32 load16 (Arg ptr);
-        I32 load32 (Arg ptr);
-        F32 loadF  (Arg ptr) { return pun_to_F32(load32(ptr)); }
-        I32 load64 (Arg ptr, int lane);  // Load 32-bit lane 0-1 of  64-bit value.
-        I32 load128(Arg ptr, int lane);  // Load 32-bit lane 0-3 of 128-bit value.
+        I32 load8  (Ptr ptr);
+        I32 load16 (Ptr ptr);
+        I32 load32 (Ptr ptr);
+        F32 loadF  (Ptr ptr) { return pun_to_F32(load32(ptr)); }
+        I32 load64 (Ptr ptr, int lane);  // Load 32-bit lane 0-1 of  64-bit value.
+        I32 load128(Ptr ptr, int lane);  // Load 32-bit lane 0-3 of 128-bit value.
 
         // Load i32/f32 uniform with byte-count offset.
-        I32 uniform32(Arg ptr, int offset);
-        F32 uniformF (Arg ptr, int offset) { return pun_to_F32(uniform32(ptr,offset)); }
+        I32 uniform32(Ptr ptr, int offset);
+        F32 uniformF (Ptr ptr, int offset) { return pun_to_F32(uniform32(ptr,offset)); }
 
         // Push and load this color as a uniform.
         Color uniformColor(SkColor4f, Uniforms*);
 
         // Gather u8,u16,i32 with varying element-count index from *(ptr + byte-count offset).
-        I32 gather8 (Arg ptr, int offset, I32 index);
-        I32 gather16(Arg ptr, int offset, I32 index);
-        I32 gather32(Arg ptr, int offset, I32 index);
-        F32 gatherF (Arg ptr, int offset, I32 index) {
+        I32 gather8 (Ptr ptr, int offset, I32 index);
+        I32 gather16(Ptr ptr, int offset, I32 index);
+        I32 gather32(Ptr ptr, int offset, I32 index);
+        F32 gatherF (Ptr ptr, int offset, I32 index) {
             return pun_to_F32(gather32(ptr, offset, index));
         }
 
@@ -868,9 +868,9 @@
         F32 from_unorm(int bits, I32);   // E.g. from_unorm(8, x) -> x * (1/255.0f)
         I32   to_unorm(int bits, F32);   // E.g.   to_unorm(8, x) -> round(x * 255)
 
-        Color   load(PixelFormat, Arg ptr);
-        bool   store(PixelFormat, Arg ptr, Color);
-        Color gather(PixelFormat, Arg ptr, int offset, I32 index);
+        Color   load(PixelFormat, Ptr ptr);
+        bool   store(PixelFormat, Ptr ptr, Color);
+        Color gather(PixelFormat, Ptr ptr, int offset, I32 index);
         Color gather(PixelFormat f, Uniform u, I32 index) {
             return gather(f, u.ptr, u.offset, index);
         }
@@ -1137,17 +1137,17 @@
     static inline void assert_true(I32 cond, F32 debug) { cond->assert_true(cond,debug); }
     static inline void assert_true(I32 cond)            { cond->assert_true(cond); }
 
-    static inline void store8  (Arg ptr, I32 val)                { val->store8  (ptr, val); }
-    static inline void store16 (Arg ptr, I32 val)                { val->store16 (ptr, val); }
-    static inline void store32 (Arg ptr, I32 val)                { val->store32 (ptr, val); }
-    static inline void storeF  (Arg ptr, F32 val)                { val->storeF  (ptr, val); }
-    static inline void store64 (Arg ptr, I32 lo, I32 hi)         { lo ->store64 (ptr, lo,hi); }
-    static inline void store128(Arg ptr, I32 lo, I32 hi, int ix) { lo ->store128(ptr, lo,hi, ix); }
+    static inline void store8  (Ptr ptr, I32 val)                { val->store8  (ptr, val); }
+    static inline void store16 (Ptr ptr, I32 val)                { val->store16 (ptr, val); }
+    static inline void store32 (Ptr ptr, I32 val)                { val->store32 (ptr, val); }
+    static inline void storeF  (Ptr ptr, F32 val)                { val->storeF  (ptr, val); }
+    static inline void store64 (Ptr ptr, I32 lo, I32 hi)         { lo ->store64 (ptr, lo,hi); }
+    static inline void store128(Ptr ptr, I32 lo, I32 hi, int ix) { lo ->store128(ptr, lo,hi, ix); }
 
-    static inline I32 gather8 (Arg ptr, int off, I32 ix) { return ix->gather8 (ptr, off, ix); }
-    static inline I32 gather16(Arg ptr, int off, I32 ix) { return ix->gather16(ptr, off, ix); }
-    static inline I32 gather32(Arg ptr, int off, I32 ix) { return ix->gather32(ptr, off, ix); }
-    static inline F32 gatherF (Arg ptr, int off, I32 ix) { return ix->gatherF (ptr, off, ix); }
+    static inline I32 gather8 (Ptr ptr, int off, I32 ix) { return ix->gather8 (ptr, off, ix); }
+    static inline I32 gather16(Ptr ptr, int off, I32 ix) { return ix->gather16(ptr, off, ix); }
+    static inline I32 gather32(Ptr ptr, int off, I32 ix) { return ix->gather32(ptr, off, ix); }
+    static inline F32 gatherF (Ptr ptr, int off, I32 ix) { return ix->gatherF (ptr, off, ix); }
 
     static inline I32 gather8 (Uniform u, I32 ix) { return ix->gather8 (u, ix); }
     static inline I32 gather16(Uniform u, I32 ix) { return ix->gather16(u, ix); }
@@ -1232,8 +1232,8 @@
     static inline F32 from_unorm(int bits, I32 x) { return x->from_unorm(bits,x); }
     static inline I32   to_unorm(int bits, F32 x) { return x->  to_unorm(bits,x); }
 
-    static inline bool store(PixelFormat f, Arg p, Color c) { return c->store(f,p,c); }
-    static inline Color gather(PixelFormat f, Arg p, int off, I32 ix) {
+    static inline bool store(PixelFormat f, Ptr p, Color c) { return c->store(f,p,c); }
+    static inline Color gather(PixelFormat f, Ptr p, int off, I32 ix) {
         return ix->gather(f,p,off,ix);
     }
     static inline Color gather(PixelFormat f, Uniform u, I32 ix) {
diff --git a/src/core/SkVMBlitter.cpp b/src/core/SkVMBlitter.cpp
index 0602851..1d90b89 100644
--- a/src/core/SkVMBlitter.cpp
+++ b/src/core/SkVMBlitter.cpp
@@ -191,7 +191,7 @@
                               skvm::Uniforms* uniforms, SkArenaAlloc* alloc) {
         // First two arguments are always uniforms and the destination buffer.
         uniforms->base    = p->uniform();
-        skvm::Arg dst_ptr = p->arg(SkColorTypeBytesPerPixel(params.dst.colorType()));
+        skvm::Ptr dst_ptr = p->arg(SkColorTypeBytesPerPixel(params.dst.colorType()));
         // A SpriteShader (in this file) may next use one argument as its varying source.
         // Subsequent arguments depend on params.coverage:
         //    - Full:      (no more arguments)
diff --git a/src/core/SkVM_fwd.h b/src/core/SkVM_fwd.h
index 5a26e9e..678a815 100644
--- a/src/core/SkVM_fwd.h
+++ b/src/core/SkVM_fwd.h
@@ -12,7 +12,7 @@
     class Assembler;
     class Builder;
     class Program;
-    struct Arg;
+    struct Ptr;
     struct I32;
     struct F32;
     struct Half;
diff --git a/src/sksl/SkSLVMGenerator.cpp b/src/sksl/SkSLVMGenerator.cpp
index 2f8a399..a264102 100644
--- a/src/sksl/SkSLVMGenerator.cpp
+++ b/src/sksl/SkSLVMGenerator.cpp
@@ -1395,10 +1395,10 @@
     SkVMSignature ignored,
                   *signature = outSignature ? outSignature : &ignored;
 
-    skvm::Arg uniforms = b->uniform();
+    skvm::Ptr uniforms = b->uniform();
     (void)uniforms;
 
-    std::vector<skvm::Arg> argPtrs;
+    std::vector<skvm::Ptr> argPtrs;
     std::vector<skvm::Val> argVals;
 
     for (const Variable* p : function.declaration().parameters()) {
@@ -1410,7 +1410,7 @@
         }
     }
 
-    std::vector<skvm::Arg> returnPtrs;
+    std::vector<skvm::Ptr> returnPtrs;
     std::vector<skvm::Val> returnVals;
 
     signature->fReturnSlots = slot_count(function.declaration().returnType());
diff --git a/tests/SkVMTest.cpp b/tests/SkVMTest.cpp
index a206fae..fccaaf7 100644
--- a/tests/SkVMTest.cpp
+++ b/tests/SkVMTest.cpp
@@ -24,7 +24,7 @@
 DEF_TEST(SkVM_eliminate_dead_code, r) {
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<int>();
+        skvm::Ptr arg = b.varying<int>();
         skvm::I32 l = b.load32(arg);
         skvm::I32 a = b.add(l, l);
         b.add(a, b.splat(7));
@@ -99,7 +99,7 @@
 
     // buf[i] += 1
     skvm::Builder b;
-    skvm::Arg arg = b.varying<int>();
+    skvm::Ptr arg = b.varying<int>();
     b.store32(arg,
               b.add(b.splat(1),
                     b.load32(arg)));
@@ -125,7 +125,7 @@
 DEF_TEST(SkVM_gather32, r) {
     skvm::Builder b;
     {
-        skvm::Arg uniforms = b.uniform(),
+        skvm::Ptr uniforms = b.uniform(),
                   buf      = b.varying<int>();
         skvm::I32 x = b.load32(buf);
         b.store32(buf, b.gather32(uniforms,0, b.bit_and(x, b.splat(7))));
@@ -173,7 +173,7 @@
 DEF_TEST(SkVM_gathers, r) {
     skvm::Builder b;
     {
-        skvm::Arg uniforms = b.uniform(),
+        skvm::Ptr uniforms = b.uniform(),
                   buf32    = b.varying<int>(),
                   buf16    = b.varying<uint16_t>(),
                   buf8     = b.varying<uint8_t>();
@@ -231,7 +231,7 @@
 DEF_TEST(SkVM_gathers2, r) {
     skvm::Builder b;
     {
-        skvm::Arg uniforms = b.uniform(),
+        skvm::Ptr uniforms = b.uniform(),
                   buf32    = b.varying<int>(),
                   buf16    = b.varying<uint16_t>(),
                   buf8     = b.varying<uint8_t>();
@@ -280,7 +280,7 @@
 DEF_TEST(SkVM_bitops, r) {
     skvm::Builder b;
     {
-        skvm::Arg ptr = b.varying<int>();
+        skvm::Ptr ptr = b.varying<int>();
 
         skvm::I32 x = b.load32(ptr);
 
@@ -306,7 +306,7 @@
 DEF_TEST(SkVM_select_is_NaN, r) {
     skvm::Builder b;
     {
-        skvm::Arg src = b.varying<float>(),
+        skvm::Ptr src = b.varying<float>(),
                   dst = b.varying<float>();
 
         skvm::F32 x = b.loadF(src);
@@ -338,7 +338,7 @@
 DEF_TEST(SkVM_f32, r) {
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<float>();
+        skvm::Ptr arg = b.varying<float>();
 
         skvm::F32 x = b.loadF(arg),
                   y = b.add(x,x),   // y = 2x
@@ -448,7 +448,7 @@
 
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<int>();
+        skvm::Ptr arg = b.varying<int>();
 
         skvm::F32 x = b.to_F32(b.load32(arg)),
                   y = b.mad(x,x,x),   // x is needed in the future, so r[x] != r[y].
@@ -474,7 +474,7 @@
     // Create a pattern that can be peepholed into an Op::fms_f32.
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<int>();
+        skvm::Ptr arg = b.varying<int>();
 
         skvm::F32 x = b.to_F32(b.load32(arg)),
                   v = b.sub(b.mul(x, b.splat(2.0f)),
@@ -496,7 +496,7 @@
     // Create a pattern that can be peepholed into an Op::fnma_f32.
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<int>();
+        skvm::Ptr arg = b.varying<int>();
 
         skvm::F32 x = b.to_F32(b.load32(arg)),
                   v = b.sub(b.splat(1.0f),
@@ -517,7 +517,7 @@
 DEF_TEST(SkVM_madder, r) {
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<float>();
+        skvm::Ptr arg = b.varying<float>();
 
         skvm::F32 x = b.loadF(arg),
                   y = b.mad(x,x,x),   // x is needed in the future, so r[x] != r[y].
@@ -539,7 +539,7 @@
 DEF_TEST(SkVM_floor, r) {
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<float>();
+        skvm::Ptr arg = b.varying<float>();
         b.storeF(arg, b.floor(b.loadF(arg)));
     }
 
@@ -556,8 +556,8 @@
 DEF_TEST(SkVM_round, r) {
     skvm::Builder b;
     {
-        skvm::Arg src = b.varying<float>();
-        skvm::Arg dst = b.varying<int>();
+        skvm::Ptr src = b.varying<float>();
+        skvm::Ptr dst = b.varying<int>();
         b.store32(dst, b.round(b.loadF(src)));
     }
 
@@ -578,9 +578,9 @@
 DEF_TEST(SkVM_min, r) {
     skvm::Builder b;
     {
-        skvm::Arg src1 = b.varying<float>();
-        skvm::Arg src2 = b.varying<float>();
-        skvm::Arg dst = b.varying<float>();
+        skvm::Ptr src1 = b.varying<float>();
+        skvm::Ptr src2 = b.varying<float>();
+        skvm::Ptr dst = b.varying<float>();
 
         b.storeF(dst, b.min(b.loadF(src1), b.loadF(src2)));
     }
@@ -600,9 +600,9 @@
 DEF_TEST(SkVM_max, r) {
     skvm::Builder b;
     {
-        skvm::Arg src1 = b.varying<float>();
-        skvm::Arg src2 = b.varying<float>();
-        skvm::Arg dst = b.varying<float>();
+        skvm::Ptr src1 = b.varying<float>();
+        skvm::Ptr src2 = b.varying<float>();
+        skvm::Ptr dst = b.varying<float>();
 
         b.storeF(dst, b.max(b.loadF(src1), b.loadF(src2)));
     }
@@ -624,7 +624,7 @@
     // The JIT will try again without hoisting, and that'll just need 2 registers.
     skvm::Builder b;
     {
-        skvm::Arg arg = b.varying<int>();
+        skvm::Ptr arg = b.varying<int>();
         skvm::I32 x = b.load32(arg);
         for (int i = 0; i < 32; i++) {
             x = b.add(x, b.splat(i));
@@ -644,7 +644,7 @@
 DEF_TEST(SkVM_select, r) {
     skvm::Builder b;
     {
-        skvm::Arg buf = b.varying<int>();
+        skvm::Ptr buf = b.varying<int>();
 
         skvm::I32 x = b.load32(buf);
 
@@ -676,7 +676,7 @@
         //     y = *Y
         //     *X = y
         // but this reordering does not produce the same results and is invalid.
-        skvm::Arg X = b.varying<int>(),
+        skvm::Ptr X = b.varying<int>(),
                   Y = b.varying<int>();
 
         skvm::I32 x = b.load32(X),
@@ -701,7 +701,7 @@
     // Exercise a somewhat arbitrary set of new ops.
     skvm::Builder b;
     {
-        skvm::Arg buf      = b.varying<int16_t>(),
+        skvm::Ptr buf      = b.varying<int16_t>(),
                   uniforms = b.uniform();
 
         skvm::I32 x = b.load16(buf);
@@ -1869,7 +1869,7 @@
 DEF_TEST(SkVM_approx_math, r) {
     auto eval = [](int N, float values[], auto fn) {
         skvm::Builder b;
-        skvm::Arg inout  = b.varying<float>();
+        skvm::Ptr inout  = b.varying<float>();
 
         b.storeF(inout, fn(&b, b.loadF(inout)));
 
@@ -1927,7 +1927,7 @@
 
     auto test = [r](float arg, float expected, float tolerance, auto prog) {
         skvm::Builder b;
-        skvm::Arg inout  = b.varying<float>();
+        skvm::Ptr inout  = b.varying<float>();
         b.storeF(inout, prog(b.loadF(inout)));
         float actual = arg;
         b.done().eval(1, &actual);
@@ -1943,9 +1943,9 @@
 
     auto test2 = [r](float arg0, float arg1, float expected, float tolerance, auto prog) {
         skvm::Builder b;
-        skvm::Arg in0  = b.varying<float>();
-        skvm::Arg in1  = b.varying<float>();
-        skvm::Arg out  = b.varying<float>();
+        skvm::Ptr in0  = b.varying<float>();
+        skvm::Ptr in1  = b.varying<float>();
+        skvm::Ptr out  = b.varying<float>();
         b.storeF(out, prog(b.loadF(in0), b.loadF(in1)));
         float actual;
         b.done().eval(1, &arg0, &arg1, &actual);
@@ -2052,7 +2052,7 @@
     {
         skvm::Builder b;
         {
-            skvm::Arg src = b.varying<float>(),
+            skvm::Ptr src = b.varying<float>(),
                        mn = b.varying<float>(),
                        mx = b.varying<float>();
 
@@ -2081,7 +2081,7 @@
     for (int i = 0; i < 8; i++) {
         skvm::Builder b;
         {
-            skvm::Arg src = b.varying<float>(),
+            skvm::Ptr src = b.varying<float>(),
                        mn = b.varying<float>(),
                        mx = b.varying<float>();
 
@@ -2106,7 +2106,7 @@
     for (int i = 0; i < 8; i++) {
         skvm::Builder b;
         {
-            skvm::Arg src = b.varying<float>(),
+            skvm::Ptr src = b.varying<float>(),
                        mn = b.varying<float>(),
                        mx = b.varying<float>();
 
@@ -2135,7 +2135,7 @@
                         -4.0f,-0.5f,-1.0f,-2.0f};
     {
         skvm::Builder b;
-        skvm::Arg src = b.varying<uint16_t>(),
+        skvm::Ptr src = b.varying<uint16_t>(),
                   dst = b.varying<float>();
         b.storeF(dst, b.from_fp16(b.load16(src)));
 
@@ -2149,7 +2149,7 @@
     }
     {
         skvm::Builder b;
-        skvm::Arg src = b.varying<float>(),
+        skvm::Ptr src = b.varying<float>(),
                   dst = b.varying<uint16_t>();
         b.store16(dst, b.to_fp16(b.loadF(src)));
 
@@ -2177,7 +2177,7 @@
     {
         skvm::Builder b;
         {
-            skvm::Arg wide = b.varying<uint64_t>(),
+            skvm::Ptr wide = b.varying<uint64_t>(),
                         lo = b.varying<int>(),
                         hi = b.varying<int>();
             b.store32(lo, b.load64(wide, 0));
@@ -2196,7 +2196,7 @@
     {
         skvm::Builder b;
         {
-            skvm::Arg wide = b.varying<uint64_t>(),
+            skvm::Ptr wide = b.varying<uint64_t>(),
                         lo = b.varying<int>(),
                         hi = b.varying<int>();
             b.store64(wide, b.load32(lo), b.load32(hi));
@@ -2227,7 +2227,7 @@
     {  // Convert RGBA F32 to RGBA 8888, testing 128-bit loads.
         skvm::Builder b;
         {
-            skvm::Arg dst = b.arg( 4),
+            skvm::Ptr dst = b.arg( 4),
                       src = b.arg(16);
 
             skvm::Color c = b.load(rgba_ffff, src);
@@ -2246,7 +2246,7 @@
     {  // Convert RGBA 8888 to RGBA F32, testing 128-bit stores.
         skvm::Builder b;
         {
-            skvm::Arg dst = b.arg(16),
+            skvm::Ptr dst = b.arg(16),
                       src = b.arg( 4);
 
             skvm::Color c = b.load(rgba_8888, src);
@@ -2266,7 +2266,7 @@
 DEF_TEST(SkVM_is_NaN_is_finite, r) {
     skvm::Builder b;
     {
-        skvm::Arg src = b.varying<float>(),
+        skvm::Ptr src = b.varying<float>(),
                   nan = b.varying<int>(),
                   fin = b.varying<int>();
         b.store32(nan, is_NaN   (b.loadF(src)));
@@ -2291,7 +2291,7 @@
     // Test we can handle at least six arguments.
     skvm::Builder b;
     {
-        skvm::Arg dst = b.varying<float>(),
+        skvm::Ptr dst = b.varying<float>(),
                     A = b.varying<float>(),
                     B = b.varying<float>(),
                     C = b.varying<float>(),
@@ -2321,7 +2321,7 @@
     // originally with a bad arm64 implementation of pack().
     skvm::Builder p;
     {
-        skvm::Arg uniforms = p.uniform(),
+        skvm::Ptr uniforms = p.uniform(),
                   dst      = p.varying<uint16_t>();
 
         skvm::I32 r = round(p.uniformF(uniforms, 8) * 15),
@@ -2380,7 +2380,7 @@
     // First a typical gather scenario with varying index.
     {
         skvm::Builder b;
-        skvm::Arg uniforms = b.uniform(),
+        skvm::Ptr uniforms = b.uniform(),
                   buf      = b.varying<int>();
         skvm::I32 ix = b.load32(buf);
         b.store32(buf, b.gather32(uniforms,0, ix));
@@ -2400,7 +2400,7 @@
     // Now the same but with a uniform index instead.
     {
         skvm::Builder b;
-        skvm::Arg uniforms = b.uniform(),
+        skvm::Ptr uniforms = b.uniform(),
                   buf      = b.varying<int>();
         skvm::I32 ix = b.uniform32(uniforms,8);
         b.store32(buf, b.gather32(uniforms,0, ix));
@@ -2427,7 +2427,7 @@
     constexpr int K = 2;
     skvm::Builder b;
     {
-        skvm::Arg buf = b.varying<int>();
+        skvm::Ptr buf = b.varying<int>();
         for (int i = 0; i < K; i++) {
             b.store32(buf, b.load32(buf) + 1);
         }
@@ -2448,7 +2448,7 @@
     // will invalidate the first store, meaning we do need to reissue that store operation.
     skvm::Builder b;
     {
-        skvm::Arg buf = b.varying<int>();
+        skvm::Ptr buf = b.varying<int>();
         b.store32(buf, b.splat(4));
         b.store32(buf, b.splat(5));
         b.store32(buf, b.splat(4));   // If we dedup'd, we'd skip this store.
diff --git a/tests/sksl/runtime/golden/ConversionConstructors.skvm b/tests/sksl/runtime/golden/ConversionConstructors.skvm
index 6d409a0..9acce0d 100644
--- a/tests/sksl/runtime/golden/ConversionConstructors.skvm
+++ b/tests/sksl/runtime/golden/ConversionConstructors.skvm
@@ -1,7 +1,7 @@
 8 registers, 22 instructions:
-0	r0 = uniform32 arg(0) 4
-1	r1 = uniform32 arg(0) 8
-2	r2 = uniform32 arg(0) C
+0	r0 = uniform32 ptr0 4
+1	r1 = uniform32 ptr0 8
+2	r2 = uniform32 ptr0 C
 3	r3 = splat FFFFFFFF (nan)
 4	r4 = splat 0 (0)
 5	r5 = neq_f32 r0 r4
@@ -18,7 +18,7 @@
 16	r0 = to_f32 r0
 17	r0 = mul_f32 r7 r0
 loop:
-18	    store32 arg(1) r0
-19	    store32 arg(2) r0
-20	    store32 arg(3) r0
-21	    store32 arg(4) r0
+18	    store32 ptr1 r0
+19	    store32 ptr2 r0
+20	    store32 ptr3 r0
+21	    store32 ptr4 r0
diff --git a/tests/sksl/runtime/golden/SampleWithConstantMatrix.skvm b/tests/sksl/runtime/golden/SampleWithConstantMatrix.skvm
index 215a11d..b5afd46 100644
--- a/tests/sksl/runtime/golden/SampleWithConstantMatrix.skvm
+++ b/tests/sksl/runtime/golden/SampleWithConstantMatrix.skvm
@@ -1,6 +1,6 @@
 13 registers, 35 instructions:
-0	r0 = uniform32 arg(0) 0
-1	r1 = uniform32 arg(0) C
+0	r0 = uniform32 ptr0 0
+1	r1 = uniform32 ptr0 C
 2	r2 = splat 0 (0)
 3	r3 = splat 40000000 (2)
 4	r4 = splat 3F800000 (1)
@@ -24,14 +24,14 @@
 21	    r9 = mul_i32 r9 r1
 22	    r9 = add_i32 r10 r9
 23	    r9 = shl_i32 r9 2
-24	    r10 = gather32 arg(0) 4 r9
+24	    r10 = gather32 ptr0 4 r9
 25	    r11 = add_i32 r9 r6
-26	    r11 = gather32 arg(0) 4 r11
+26	    r11 = gather32 ptr0 4 r11
 27	    r12 = add_i32 r9 r7
-28	    r12 = gather32 arg(0) 4 r12
+28	    r12 = gather32 ptr0 4 r12
 29	    r9 = add_i32 r9 r8
-30	    r9 = gather32 arg(0) 4 r9
-31	    store32 arg(1) r10
-32	    store32 arg(2) r11
-33	    store32 arg(3) r12
-34	    store32 arg(4) r9
+30	    r9 = gather32 ptr0 4 r9
+31	    store32 ptr1 r10
+32	    store32 ptr2 r11
+33	    store32 ptr3 r12
+34	    store32 ptr4 r9
diff --git a/tests/sksl/runtime/golden/SampleWithExplicitCoord.skvm b/tests/sksl/runtime/golden/SampleWithExplicitCoord.skvm
index 5b5f2d4..5f4ffb5 100644
--- a/tests/sksl/runtime/golden/SampleWithExplicitCoord.skvm
+++ b/tests/sksl/runtime/golden/SampleWithExplicitCoord.skvm
@@ -1,6 +1,6 @@
 9 registers, 22 instructions:
-0	r0 = uniform32 arg(0) 0
-1	r1 = uniform32 arg(0) C
+0	r0 = uniform32 ptr0 0
+1	r1 = uniform32 ptr0 C
 2	r0 = trunc r0
 3	r2 = splat 1 (1.4012985e-45)
 4	r3 = splat 2 (2.8025969e-45)
@@ -11,14 +11,14 @@
 8	    r5 = mul_i32 r5 r1
 9	    r5 = add_i32 r0 r5
 10	    r5 = shl_i32 r5 2
-11	    r6 = gather32 arg(0) 4 r5
+11	    r6 = gather32 ptr0 4 r5
 12	    r7 = add_i32 r5 r2
-13	    r7 = gather32 arg(0) 4 r7
+13	    r7 = gather32 ptr0 4 r7
 14	    r8 = add_i32 r5 r3
-15	    r8 = gather32 arg(0) 4 r8
+15	    r8 = gather32 ptr0 4 r8
 16	    r5 = add_i32 r5 r4
-17	    r5 = gather32 arg(0) 4 r5
-18	    store32 arg(1) r6
-19	    store32 arg(2) r7
-20	    store32 arg(3) r8
-21	    store32 arg(4) r5
+17	    r5 = gather32 ptr0 4 r5
+18	    store32 ptr1 r6
+19	    store32 ptr2 r7
+20	    store32 ptr3 r8
+21	    store32 ptr4 r5
diff --git a/tests/sksl/runtime/golden/SampleWithUniformMatrix.skvm b/tests/sksl/runtime/golden/SampleWithUniformMatrix.skvm
index 3bdf007..e7987c7 100644
--- a/tests/sksl/runtime/golden/SampleWithUniformMatrix.skvm
+++ b/tests/sksl/runtime/golden/SampleWithUniformMatrix.skvm
@@ -1,15 +1,15 @@
 18 registers, 47 instructions:
-0	r0 = uniform32 arg(0) 0
-1	r1 = uniform32 arg(0) C
-2	r2 = uniform32 arg(0) 10
-3	r3 = uniform32 arg(0) 14
-4	r4 = uniform32 arg(0) 18
-5	r5 = uniform32 arg(0) 1C
-6	r6 = uniform32 arg(0) 20
-7	r7 = uniform32 arg(0) 24
-8	r8 = uniform32 arg(0) 28
-9	r9 = uniform32 arg(0) 2C
-10	r10 = uniform32 arg(0) 30
+0	r0 = uniform32 ptr0 0
+1	r1 = uniform32 ptr0 C
+2	r2 = uniform32 ptr0 10
+3	r3 = uniform32 ptr0 14
+4	r4 = uniform32 ptr0 18
+5	r5 = uniform32 ptr0 1C
+6	r6 = uniform32 ptr0 20
+7	r7 = uniform32 ptr0 24
+8	r8 = uniform32 ptr0 28
+9	r9 = uniform32 ptr0 2C
+10	r10 = uniform32 ptr0 30
 11	r5 = mul_f32 r5 r0
 12	r6 = mul_f32 r6 r0
 13	r0 = mul_f32 r7 r0
@@ -36,14 +36,14 @@
 33	    r14 = mul_i32 r14 r1
 34	    r14 = add_i32 r15 r14
 35	    r14 = shl_i32 r14 2
-36	    r15 = gather32 arg(0) 4 r14
+36	    r15 = gather32 ptr0 4 r14
 37	    r16 = add_i32 r14 r11
-38	    r16 = gather32 arg(0) 4 r16
+38	    r16 = gather32 ptr0 4 r16
 39	    r17 = add_i32 r14 r12
-40	    r17 = gather32 arg(0) 4 r17
+40	    r17 = gather32 ptr0 4 r17
 41	    r14 = add_i32 r14 r13
-42	    r14 = gather32 arg(0) 4 r14
-43	    store32 arg(1) r15
-44	    store32 arg(2) r16
-45	    store32 arg(3) r17
-46	    store32 arg(4) r14
+42	    r14 = gather32 ptr0 4 r14
+43	    store32 ptr1 r15
+44	    store32 ptr2 r16
+45	    store32 ptr3 r17
+46	    store32 ptr4 r14
diff --git a/tests/sksl/runtime/golden/SampleWithVariableMatrix.skvm b/tests/sksl/runtime/golden/SampleWithVariableMatrix.skvm
index 8b7a423..7b26e3e 100644
--- a/tests/sksl/runtime/golden/SampleWithVariableMatrix.skvm
+++ b/tests/sksl/runtime/golden/SampleWithVariableMatrix.skvm
@@ -1,6 +1,6 @@
 12 registers, 33 instructions:
-0	r0 = uniform32 arg(0) 0
-1	r1 = uniform32 arg(0) C
+0	r0 = uniform32 ptr0 0
+1	r1 = uniform32 ptr0 C
 2	r2 = splat 0 (0)
 3	r3 = splat 3F800000 (1)
 4	r4 = mul_f32 r2 r0
@@ -22,14 +22,14 @@
 19	    r8 = mul_i32 r8 r1
 20	    r8 = add_i32 r9 r8
 21	    r8 = shl_i32 r8 2
-22	    r9 = gather32 arg(0) 4 r8
+22	    r9 = gather32 ptr0 4 r8
 23	    r10 = add_i32 r8 r5
-24	    r10 = gather32 arg(0) 4 r10
+24	    r10 = gather32 ptr0 4 r10
 25	    r11 = add_i32 r8 r6
-26	    r11 = gather32 arg(0) 4 r11
+26	    r11 = gather32 ptr0 4 r11
 27	    r8 = add_i32 r8 r7
-28	    r8 = gather32 arg(0) 4 r8
-29	    store32 arg(1) r9
-30	    store32 arg(2) r10
-31	    store32 arg(3) r11
-32	    store32 arg(4) r8
+28	    r8 = gather32 ptr0 4 r8
+29	    store32 ptr1 r9
+30	    store32 ptr2 r10
+31	    store32 ptr3 r11
+32	    store32 ptr4 r8