/* Any of the corresponding pointers for querying alias oracle. */
tree ptr;
/* Statement for delayed length computation. */
- gimple stmt;
+ gimple *stmt;
/* Pointer to '\0' if known, if NULL, it can be computed as
ptr + length. */
tree endptr;
*x = '\0' store that could be removed if it is immediately overwritten. */
struct laststmt_struct
{
- gimple stmt;
+ gimple *stmt;
tree len;
int stridx;
} laststmt;
HOST_WIDE_INT off = 0;
for (i = 0; i < 5; i++)
{
- gimple def_stmt = SSA_NAME_DEF_STMT (e);
+ gimple *def_stmt = SSA_NAME_DEF_STMT (e);
if (!is_gimple_assign (def_stmt)
|| gimple_assign_rhs_code (def_stmt) != POINTER_PLUS_EXPR)
return 0;
if (si->stmt)
{
- gimple stmt = si->stmt, lenstmt;
+ gimple *stmt = si->stmt, *lenstmt;
bool with_bounds = gimple_call_with_bounds_p (stmt);
tree callee, lhs, fn, tem;
location_t loc;
might change due to stores in stmt. */
static bool
-maybe_invalidate (gimple stmt)
+maybe_invalidate (gimple *stmt)
{
strinfo si;
unsigned int i;
return;
while (1)
{
- gimple stmt = SSA_NAME_DEF_STMT (ptr);
+ gimple *stmt = SSA_NAME_DEF_STMT (ptr);
if (!is_gimple_assign (stmt))
return;
ptr = gimple_assign_rhs1 (stmt);
strinfo. */
static void
-adjust_last_stmt (strinfo si, gimple stmt, bool is_strcat)
+adjust_last_stmt (strinfo si, gimple *stmt, bool is_strcat)
{
tree vuse, callee, len;
struct laststmt_struct last = laststmt;
}
else if (TREE_CODE (len) == SSA_NAME)
{
- gimple def_stmt = SSA_NAME_DEF_STMT (len);
+ gimple *def_stmt = SSA_NAME_DEF_STMT (len);
if (!is_gimple_assign (def_stmt)
|| gimple_assign_rhs_code (def_stmt) != PLUS_EXPR
|| gimple_assign_rhs1 (def_stmt) != last.len
{
int idx;
tree src;
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
tree lhs = gimple_call_lhs (stmt);
if (lhs == NULL_TREE)
{
int idx;
tree src;
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
tree lhs = gimple_call_lhs (stmt);
bool with_bounds = gimple_call_with_bounds_p (stmt);
int idx, didx;
tree src, dst, srclen, len, lhs, args, type, fn, oldlen;
bool success;
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
strinfo si, dsi, olddsi, zsi;
location_t loc;
bool with_bounds = gimple_call_with_bounds_p (stmt);
{
int idx, didx;
tree src, dst, len, lhs, oldlen, newlen;
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
strinfo si, dsi, olddsi;
bool with_bounds = gimple_call_with_bounds_p (stmt);
if (idx > 0)
{
- gimple def_stmt;
+ gimple *def_stmt;
/* Handle memcpy (x, y, l) where l is strlen (y) + 1. */
si = get_strinfo (idx);
int idx, didx;
tree src, dst, srclen, dstlen, len, lhs, args, type, fn, objsz, endptr;
bool success;
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
strinfo si, dsi;
location_t loc;
bool with_bounds = gimple_call_with_bounds_p (stmt);
static void
handle_builtin_malloc (enum built_in_function bcode, gimple_stmt_iterator *gsi)
{
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
tree lhs = gimple_call_lhs (stmt);
gcc_assert (get_stridx (lhs) == 0);
int idx = new_stridx (lhs);
static bool
handle_builtin_memset (gimple_stmt_iterator *gsi)
{
- gimple stmt2 = gsi_stmt (*gsi);
+ gimple *stmt2 = gsi_stmt (*gsi);
if (!integer_zerop (gimple_call_arg (stmt2, 1)))
return true;
tree ptr = gimple_call_arg (stmt2, 0);
strinfo si1 = get_strinfo (idx1);
if (!si1)
return true;
- gimple stmt1 = si1->stmt;
+ gimple *stmt1 = si1->stmt;
if (!stmt1 || !is_gimple_call (stmt1))
return true;
tree callee1 = gimple_call_fndecl (stmt1);
unlink_stmt_vdef (stmt2);
if (lhs)
{
- gimple assign = gimple_build_assign (lhs, ptr);
+ gimple *assign = gimple_build_assign (lhs, ptr);
gsi_replace (gsi, assign, false);
}
else
static void
handle_pointer_plus (gimple_stmt_iterator *gsi)
{
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
tree lhs = gimple_assign_lhs (stmt), off;
int idx = get_stridx (gimple_assign_rhs1 (stmt));
strinfo si, zsi;
zsi = zero_length_string (lhs, si);
else if (TREE_CODE (off) == SSA_NAME)
{
- gimple def_stmt = SSA_NAME_DEF_STMT (off);
+ gimple *def_stmt = SSA_NAME_DEF_STMT (off);
if (gimple_assign_single_p (def_stmt)
&& operand_equal_p (si->length, gimple_assign_rhs1 (def_stmt), 0))
zsi = zero_length_string (lhs, si);
{
int idx = -1;
strinfo si = NULL;
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
tree ssaname = NULL_TREE, lhs = gimple_assign_lhs (stmt);
if (TREE_CODE (lhs) == MEM_REF
static bool
strlen_optimize_stmt (gimple_stmt_iterator *gsi)
{
- gimple stmt = gsi_stmt (*gsi);
+ gimple *stmt = gsi_stmt (*gsi);
if (is_gimple_call (stmt))
{
been invalidated. */
static void
-do_invalidate (basic_block dombb, gimple phi, bitmap visited, int *count)
+do_invalidate (basic_block dombb, gimple *phi, bitmap visited, int *count)
{
unsigned int i, n = gimple_phi_num_args (phi);
for (i = 0; i < n; i++)
{
tree vuse = gimple_phi_arg_def (phi, i);
- gimple stmt = SSA_NAME_DEF_STMT (vuse);
+ gimple *stmt = SSA_NAME_DEF_STMT (vuse);
basic_block bb = gimple_bb (stmt);
if (bb == NULL
|| bb == dombb