diff --git a/doc/index.rst b/doc/index.rst
index d862a8acd0cb258bfd1e9623bd5cef895871f6b1..b77bbb16f413defe5010c75d28464051553b4486 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -25,18 +25,18 @@ Want to try out loopy?
 
 There's no need to go through :ref:`installation` if you'd just like to get a
 feel for what loopy is.  Instead, you may
-`download a self-contained Linux binary <https://gitlab.tiker.net/inducer/loopy/builds/36708/artifacts/browse/build-helpers/>`_.
+`download a self-contained Linux binary <https://gitlab.tiker.net/inducer/loopy/-/jobs/66778/artifacts/browse/build-helpers/>`_.
 This is purposefully built on an ancient Linux distribution, so it should work
 on most versions of Linux that are currently out there.
 
 Once you have the binary, do the following::
 
     chmod +x ./loopy-centos6
-    ./loopy-centos6 --target=opencl hello-loopy-lp.py
-    ./loopy-centos6 --target=cuda hello-loopy-lp.py
-    ./loopy-centos6 --target=ispc hello-loopy-lp.py
+    ./loopy-centos6 --target=opencl hello-loopy.loopy
+    ./loopy-centos6 --target=cuda hello-loopy.loopy
+    ./loopy-centos6 --target=ispc hello-loopy.loopy
 
-Grab the example here: :download:`examples/python/hello-loopy.py <../examples/python/hello-loopy-lp.py>`.
+Grab the example here: :download:`examples/python/hello-loopy.loopy <../examples/python/hello-loopy.loopy>`.
 
 You may also donwload the most recent version by going to the `list of builds
 <https://gitlab.tiker.net/inducer/loopy/builds>`_, clicking on the newest one
diff --git a/doc/ref_kernel.rst b/doc/ref_kernel.rst
index d3bbfb0ea1373bce0fb6a99386bc188c7ffc3c4e..46063310917fe4c111bac96a5a15c7c588974617 100644
--- a/doc/ref_kernel.rst
+++ b/doc/ref_kernel.rst
@@ -406,7 +406,7 @@ Arguments
     :members:
     :undoc-members:
 
-.. autoclass:: GlobalArg
+.. autoclass:: ArrayArg
     :members:
     :undoc-members:
 
@@ -595,7 +595,7 @@ Do not create :class:`LoopKernel` objects directly. Instead, refer to
 Implementation Detail: The Base Array
 -------------------------------------
 
-All array-like data in :mod:`loopy` (such as :class:`GlobalArg` and
+All array-like data in :mod:`loopy` (such as :class:`ArrayArg` and
 :class:`TemporaryVariable`) derive from single, shared base array type,
 described next.
 
diff --git a/doc/tutorial.rst b/doc/tutorial.rst
index ce0677147db249498c8174d8d164b262781e84c2..db99f6ca0420908fc0c512952b7f20d52c207fef 100644
--- a/doc/tutorial.rst
+++ b/doc/tutorial.rst
@@ -1361,7 +1361,7 @@ code-generation however additional implementation may be required for custom
 functions.  The full lists of available functions may be found in a the
 :class:`TargetBase` implementation (e.g. :class:`CudaTarget`)
 
-Custom user functions may be represented using the method described in :ref:`_functions`
+Custom user functions may be represented using the method described in :ref:`functions`
 
 
 Data-dependent control flow
diff --git a/examples/python/hello-loopy.loopy b/examples/python/hello-loopy.loopy
index 0ba44d6eccb18236ac13e17ca747318af3962634..7f79730985119096daf3bbdd31ff17a2c0e7ab2c 100644
--- a/examples/python/hello-loopy.loopy
+++ b/examples/python/hello-loopy.loopy
@@ -1,7 +1,7 @@
 # This is a version of hello-loopy.py that can be run through
 # a loopy binary using
 #
-# ./loopy --lang=loopy hello-loopy-lp.py -
+# ./loopy --lang=loopy hello-loopy.loopy -
 
 knl = lp.make_kernel(
         "{ [i]: 0<=i<n }",
diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py
index 6b0033808c616829e60615b92849fa6353751a82..e3342d0f9d0cac2ef3c4e3d56423ce4b4ba0ac8a 100644
--- a/loopy/kernel/__init__.py
+++ b/loopy/kernel/__init__.py
@@ -142,7 +142,7 @@ class LoopKernel(ImmutableRecordWithoutPickling):
     .. note::
 
         This data structure and its attributes should be considered immutable,
-        even if it contains mutable data types. See :method:`copy` for an easy
+        even if it contains mutable data types. See :meth:`copy` for an easy
         way of producing a modified copy.
 
     .. attribute:: domains
diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py
index 7130e815c5f6c200ffac2fc6af9c684f2764c992..3588f38af13479b127208c25735f1046eaa82706 100644
--- a/loopy/kernel/array.py
+++ b/loopy/kernel/array.py
@@ -549,15 +549,15 @@ class ArrayBase(ImmutableRecord):
     .. attribute :: name
 
     .. attribute :: dtype
-        the :class:`loopy.loopytype` of the array.
-        if this is *none*, :mod:`loopy` will try to continue without
-        knowing the type of this array, where the idea is that precise
-        knowledge of the type will become available at invocation time.
-        :class:`loopy.compiledkernel` (and thereby
-        :meth:`loopy.loopkernel.__call__`) automatically add this type
-        information based on invocation arguments.
-
-        note that some transformations, such as :func:`loopy.add_padding`
+
+        The :class:`loopy.types.LoopyType` of the array. If this is *None*,
+        :mod:`loopy` will try to continue without knowing the type of this
+        array, where the idea is that precise knowledge of the type will become
+        available at invocation time.  Calling the kernel
+        (via :meth:`loopy.LoopKernel.__call__`)
+        automatically adds this type information based on invocation arguments.
+
+        Note that some transformations, such as :func:`loopy.add_padding`
         cannot be performed without knowledge of the exact *dtype*.
 
     .. attribute :: shape
diff --git a/loopy/kernel/data.py b/loopy/kernel/data.py
index ddc4dd79b518c4fe16e883926176ac5a9e94d837..8103029dc5f86896b4e08dd9e277b81b01e9ca27 100644
--- a/loopy/kernel/data.py
+++ b/loopy/kernel/data.py
@@ -49,7 +49,7 @@ from warnings import warn
 class auto(object):  # noqa
     """A generic placeholder object for something that should be automatically
     determined.  See, for example, the *shape* or *strides* argument of
-    :class:`GlobalArg`.
+    :class:`ArrayArg`.
     """
 
 
diff --git a/loopy/transform/add_barrier.py b/loopy/transform/add_barrier.py
index cfbbd56e906c5e622debcd82bd5368aa3b1fb34c..a20a798cfa35c64c0cbd7097b41824dda2a35a84 100644
--- a/loopy/transform/add_barrier.py
+++ b/loopy/transform/add_barrier.py
@@ -44,15 +44,15 @@ def add_barrier(knl, insn_before="", insn_after="", id_based_on=None,
     be any inputs that are understood by :func:`loopy.match.parse_match`.
 
     :arg insn_before: String expression that specifies the instruction(s)
-    before the barrier which is to be added
+        before the barrier which is to be added
     :arg insn_after: String expression that specifies the instruction(s) after
-    the barrier which is to be added
+        the barrier which is to be added
     :arg id: String on which the id of the barrier would be based on.
     :arg tags: The tag of the group to which the barrier must be added
     :arg synchronization_kind: Kind of barrier to be added. May be "global" or
-    "local"
+        "local"
     :arg kind: Type of memory to be synchronied. May be "global" or "local". Ignored
-    for "global" bariers.  If not supplied, defaults to :arg:`synchronization_kind`
+        for "global" bariers.  If not supplied, defaults to *synchronization_kind*
     """
 
     if mem_kind is None:
diff --git a/loopy/transform/batch.py b/loopy/transform/batch.py
index f0b9814c43698a64af23f1555a27e910ef89762e..f6568918d30f33d4c7103e40d02bdc40c38dfa1b 100644
--- a/loopy/transform/batch.py
+++ b/loopy/transform/batch.py
@@ -106,6 +106,7 @@ def to_batched(knl, nbatches, batch_varying_args, batch_iname_prefix="ibatch",
         sequential=False):
     """Takes in a kernel that carries out an operation and returns a kernel
     that carries out a batch of these operations.
+
     .. note::
        For temporaries in a kernel that are private or read only
        globals and if `sequential=True`, loopy does not does not batch these
diff --git a/loopy/transform/buffer.py b/loopy/transform/buffer.py
index 801da4c13057edb089d9e9cba098ba41e9919ed6..63d3a40fb6c6967cac5e6149d5cf51bb7c2efbb9 100644
--- a/loopy/transform/buffer.py
+++ b/loopy/transform/buffer.py
@@ -160,7 +160,7 @@ def buffer_array(kernel, var_name, buffer_inames, init_expression=None,
         matching contexts.  See :func:`loopy.match.parse_stack_match`
         for syntax.
     :arg temporary_scope: If given, override the choice of
-    :class:`AddressSpace` for the created temporary.
+        :class:`AddressSpace` for the created temporary.
     :arg default_tag: The default :ref:`iname-tags` to be assigned to the
         inames used for fetching and storing
     :arg fetch_bounding_box: If the access footprint is non-convex
diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py
index ad1da3e7e67d9d609f51bfed4db7141d14e508dd..83598dcc26646261703ce9b24fecebdd8a975774 100644
--- a/loopy/transform/iname.py
+++ b/loopy/transform/iname.py
@@ -66,8 +66,6 @@ __doc__ = """
 
 .. autofunction:: affine_map_inames
 
-.. autofunction:: realize_ilp
-
 .. autofunction:: find_unused_axis_tag
 
 .. autofunction:: make_reduction_inames_unique