GBE: don't allocate grf for those bools which map to flag.
authorZhigang Gong <zhigang.gong@intel.com>
Tue, 21 Jan 2014 00:34:29 +0000 (08:34 +0800)
committerZhigang Gong <zhigang.gong@intel.com>
Sun, 26 Jan 2014 08:46:18 +0000 (16:46 +0800)
Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
backend/src/backend/gen_reg_allocation.cpp

index b42aed8..25db169 100644 (file)
@@ -484,6 +484,9 @@ namespace gbe
       if (RA.contains(reg))
         continue; // already allocated
 
+      if (ctx.sel->getRegisterFamily(reg) == ir::FAMILY_BOOL && !grfBooleans.contains(reg))
+        continue;
+
       // Case 1: the register belongs to a vector, allocate all the registers in
       // one piece
       auto it = vectorMap.find(reg);