Lines Matching defs:fnspec
49 - fnspec_summary holds fnspec strings for call. This is
80 #include "attr-fnspec.h"
95 /* We record fnspec specifiers for call edges since they depends on actual
101 char *fnspec;
104 : fnspec (NULL)
110 free (fnspec);
114 /* Summary holding fnspec string for a given call. */
127 dst->fnspec = xstrdup (src->fnspec);
542 fprintf (out, "%*sCall %s->%s fnspec: %s\n", depth, "",
544 fsum->fnspec);
1418 /* Return access mode for argument I of call STMT with FNSPEC. */
1421 modref_access_analysis::get_access_for_fnspec (gcall *call, attr_fnspec &fnspec,
1428 if (!fnspec.arg_specified_p (i))
1430 else if (fnspec.arg_max_access_size_given_by_arg_p (i, &size_arg))
1432 else if (fnspec.arg_access_size_given_by_type_p (i))
1455 /* Apply side effects of call STMT to CUR_SUMMARY using FNSPEC.
1480 attr_fnspec fnspec = gimple_call_fnspec (call);
1482 if (!fnspec.known_p ())
1485 fprintf (dump_file, " Builtin with no fnspec: %s\n",
1507 /* Process fnspec. */
1508 if (fnspec.global_memory_read_p ())
1520 else if (!fnspec.arg_specified_p (i)
1521 || fnspec.arg_maybe_read_p (i))
1533 modref_access_node a = get_access_for_fnspec (call, fnspec, i, map);
1545 if (fnspec.global_memory_written_p ())
1557 else if (!fnspec.arg_specified_p (i)
1558 || fnspec.arg_maybe_written_p (i))
1570 modref_access_node a = get_access_for_fnspec (call, fnspec, i, map);
1579 if (fnspec.errno_maybe_written_p () && flag_errno_math)
1819 attr_fnspec fnspec = gimple_call_fnspec (as_a <gcall *>(stmt));
1821 if (fnspec.known_p ()
1822 && (!fnspec.global_memory_read_p ()
1823 || !fnspec.global_memory_written_p ()))
1829 fnspec_summaries->get_create (e)->fnspec
1830 = xstrdup (fnspec.get_str ());
1832 fprintf (dump_file, " Recorded fnspec %s\n",
1833 fnspec.get_str ());
2953 attr_fnspec fnspec (attr
2984 int attr_flags = fnspec.arg_eaf_flags (parm_index);
2989 " Flags for param %i combined with fnspec flags:",
3794 bp_pack_string (ob, &bp, sum->fnspec, true);
3803 bp_pack_string (ob, &bp, sum->fnspec, true);
3954 sum->fnspec = xstrdup (bp_unpack_string (data_in, &bp));
3963 sum->fnspec = xstrdup (bp_unpack_string (data_in, &bp));
4395 like builtins we create fnspec for because the type match is checked
4396 at fnspec creation time. */
4408 /* Return access mode for argument I of call E with FNSPEC. */
4411 get_access_for_fnspec (cgraph_edge *e, attr_fnspec &fnspec,
4417 if (!fnspec.arg_specified_p (i))
4419 else if (fnspec.arg_max_access_size_given_by_arg_p (i, &size_arg))
4431 else if (fnspec.arg_access_size_given_by_type_p (i))
4555 attr_fnspec fnspec (fnspec_sum->fnspec);
4557 gcc_checking_assert (fnspec.known_p ());
4558 if (fnspec.global_memory_read_p ())
4567 else if (!fnspec.arg_specified_p (i)
4568 || fnspec.arg_maybe_read_p (i))
4581 get_access_for_fnspec (e, fnspec, i, map), false);
4585 get_access_for_fnspec (e, fnspec, i, map), false);
4590 else if (fnspec.global_memory_written_p ())
4599 else if (!fnspec.arg_specified_p (i)
4600 || fnspec.arg_maybe_written_p (i))
4613 get_access_for_fnspec (e, fnspec, i, map), false);
4617 get_access_for_fnspec (e, fnspec, i, map), false);
4620 if (fnspec.errno_maybe_written_p () && flag_errno_math)
5009 attr_fnspec fnspec (fnspec_sum->fnspec);
5010 implicit_flags |= fnspec.arg_eaf_flags (arg);
5073 attr_fnspec fnspec (fnspec_sum->fnspec);
5074 implicit_flags |= fnspec.arg_eaf_flags (ee->arg);