From: Tvrtko Ursulin <tvrtko.ursu...@intel.com>

Cast VM pointers before substraction to save the compiler
doing a smart one which includes multiplication.

v2: Only keep the first optimisation and prettify it. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
Cc: Chris Wilson <ch...@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_vma.h | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index 21be74c61065..e3b2b3b1e056 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -178,15 +178,23 @@ static inline void i915_vma_put(struct i915_vma *vma)
        i915_gem_object_put(vma->obj);
 }
 
+static __always_inline ptrdiff_t ptrdiff(const void *a, const void *b)
+{
+       return a - b;
+}
+
 static inline long
 i915_vma_compare(struct i915_vma *vma,
                 struct i915_address_space *vm,
                 const struct i915_ggtt_view *view)
 {
+       ptrdiff_t cmp;
+
        GEM_BUG_ON(view && !i915_is_ggtt(vm));
 
-       if (vma->vm != vm)
-               return vma->vm - vm;
+       cmp = ptrdiff(vma->vm, vm);
+       if (cmp)
+               return cmp;
 
        if (!view)
                return vma->ggtt_view.type;
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to