On Mon, 29 May 2017, Yuri Gribov wrote:

> This improve VRP handling for bitfield comparisons added by previous patch.
> 
> -I

+is_masked_range_test (tree name, tree valt, enum tree_code cond_code, 
bool is_else_edge,
+                     tree *new_name,

long line

+  wide_int mask = maskt,
+    inv_mask = ~mask,
+    val = valt;  // Assume VALT is INTEGER_CST

indent is off here, please use separate declarations:

  wide_int mask = maskt;
  wide_int inv_mask = ~mask;
...

+//  bool is_range = (cond_code == EQ_EXPR) ^ is_else_edge;
+  bool is_range = cond_code == EQ_EXPR;
+

do not leave dead code around.

+  if (is_range)
+    {
+      *low_code = val == min ? (enum tree_code) 0 : GE_EXPR;
+      *high_code = val == max ? (enum tree_code) 0 : LE_EXPR;
+    }

please use ERROR_MARK here instead of (enum tree_code) 0.

+       {
+         if (low_code)

and check with != ERROR_MARK here.

+      if (is_masked_range_test (name, val, comp_code, is_else_edge, 
&name, &low, &low_code, &high, &high_code))
+       {

long line again.

Otherwise looks ok.

Thanks,
Richard.

Reply via email to