drm/i915: Optimise VMA lookup slightly
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.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/1481639847-9214-1-git-send-email-tvrtko.ursulin@linux.intel.com
This commit is contained in:
parent
2ee7dc497e
commit
2bf0d26706
|
@ -178,15 +178,23 @@ static inline void i915_vma_put(struct i915_vma *vma)
|
||||||
i915_gem_object_put(vma->obj);
|
i915_gem_object_put(vma->obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __always_inline ptrdiff_t ptrdiff(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
return a - b;
|
||||||
|
}
|
||||||
|
|
||||||
static inline long
|
static inline long
|
||||||
i915_vma_compare(struct i915_vma *vma,
|
i915_vma_compare(struct i915_vma *vma,
|
||||||
struct i915_address_space *vm,
|
struct i915_address_space *vm,
|
||||||
const struct i915_ggtt_view *view)
|
const struct i915_ggtt_view *view)
|
||||||
{
|
{
|
||||||
|
ptrdiff_t cmp;
|
||||||
|
|
||||||
GEM_BUG_ON(view && !i915_is_ggtt(vm));
|
GEM_BUG_ON(view && !i915_is_ggtt(vm));
|
||||||
|
|
||||||
if (vma->vm != vm)
|
cmp = ptrdiff(vma->vm, vm);
|
||||||
return vma->vm - vm;
|
if (cmp)
|
||||||
|
return cmp;
|
||||||
|
|
||||||
if (!view)
|
if (!view)
|
||||||
return vma->ggtt_view.type;
|
return vma->ggtt_view.type;
|
||||||
|
|
Loading…
Reference in New Issue