/* Loop versioning pass.
- Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ Copyright (C) 2018-2020 Free Software Foundation, Inc.
This file is part of GCC.
#include "omp-general.h"
#include "predict.h"
#include "tree-into-ssa.h"
-#include "params.h"
namespace {
loop_versioning::max_insns_for_loop (class loop *loop)
{
return (loop->inner
- ? PARAM_VALUE (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS)
- : PARAM_VALUE (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS));
+ ? param_loop_versioning_max_outer_insns
+ : param_loop_versioning_max_inner_insns);
}
/* Return true if for cost reasons we should avoid versioning any loop
where nothing in the way "x" and "y" are set gives a hint as to
whether "i" iterates over the innermost dimension of the array.
- In these situations it seems reasonable to assume the the
+ In these situations it seems reasonable to assume the
programmer has nested the loops appropriately (although of course
there are examples like GEMM in which this assumption doesn't hold
for all accesses in the loop).
continue;
}
}
+ if (CONVERT_EXPR_CODE_P (code))
+ {
+ tree op1 = gimple_assign_rhs1 (assign);
+ address->terms[i].expr = strip_casts (op1);
+ continue;
+ }
}
i += 1;
}
EXECUTE_IF_SET_IN_BITMAP (&li.unity_names, 0, i, bi)
{
tree name = ssa_name (i);
- value_range *vr = vrs->get_value_range (name);
+ const value_range_equiv *vr = vrs->get_value_range (name);
if (vr && !vr->may_contain_p (build_one_cst (TREE_TYPE (name))))
{
if (dump_enabled_p ())