i965/fs: Move region_contained_in to the IR header and fix for non-VGRF files.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 2 Sep 2016 03:03:44 +0000 (20:03 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 14 Sep 2016 21:50:57 +0000 (14:50 -0700)
Also changed the argument names since 'src' and 'dst' don't make that
much sense outside of the context of copy propagation.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
src/mesa/drivers/dri/i965/brw_ir_fs.h

index 80ad4b4adc681320ae05424865b21a3ece40ae02..e4e6816e0e46d312ffc58c49fc3f2947214004fb 100644 (file)
@@ -332,20 +332,6 @@ can_take_stride(fs_inst *inst, unsigned arg, unsigned stride,
    return true;
 }
 
-/**
- * Check that the register region read by src [src.offset,
- * src.offset + size_read[ is fully contained inside the register
- * region written by dst [dst.offset, dst.offset + size_written[.
- */
-static inline bool
-region_contained_in(const fs_reg &src, unsigned size_read,
-                    const fs_reg &dst, unsigned size_written)
-{
-   return src.file == dst.file && src.nr == dst.nr &&
-          src.offset >= dst.offset &&
-          src.offset + size_read <= dst.offset + size_written;
-}
-
 bool
 fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry)
 {
index e8e25b98c58ba441a8fd633f406bd0e6703da49f..84d7d5edd01ae377db0ad2bc2e373f6136d7dfd4 100644 (file)
@@ -228,6 +228,19 @@ regions_overlap(const fs_reg &r, unsigned dr, const fs_reg &s, unsigned ds)
    }
 }
 
+/**
+ * Check that the register region given by r [r.offset, r.offset + dr[
+ * is fully contained inside the register region given by s
+ * [s.offset, s.offset + ds[.
+ */
+static inline bool
+region_contained_in(const fs_reg &r, unsigned dr, const fs_reg &s, unsigned ds)
+{
+   return reg_space(r) == reg_space(s) &&
+          reg_offset(r) >= reg_offset(s) &&
+          reg_offset(r) + dr <= reg_offset(s) + ds;
+}
+
 /**
  * Return whether the given register region is n-periodic, i.e. whether the
  * original region remains invariant after shifting it by \p n scalar