Assume a call is expensive when it mismatches
authorRichard Biener <rguenther@suse.de>
Wed, 13 Apr 2022 13:43:01 +0000 (15:43 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 2 May 2022 12:58:51 +0000 (14:58 +0200)
This makes sure to not consider calls to builtin decls with
mismatching arguments as inexpensive.

2022-04-13  Richard Biener  <rguenther@suse.de>

* tree-scalar-evolution.cc (expression_expensive_p):
Never consider mismatched calls as cheap.

gcc/tree-scalar-evolution.cc

index 4415726..b53d7aa 100644 (file)
@@ -3420,12 +3420,15 @@ expression_expensive_p (tree expr, hash_map<tree, uint64_t> &cache,
                  break;
              return true;
            }
+         break;
+
        default:
+         if (cfn == CFN_LAST
+             || !is_inexpensive_builtin (get_callee_fndecl (expr)))
+           return true;
          break;
        }
 
-      if (!is_inexpensive_builtin (get_callee_fndecl (expr)))
-       return true;
       FOR_EACH_CALL_EXPR_ARG (arg, iter, expr)
        if (expression_expensive_p (arg, cache, op_cost))
          return true;