osprey-gcc-4.2.0/gcc/builtins.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "machmode.h"
#include "real.h"
#include "rtl.h"
#include "tree.h"
#include "tree-gimple.h"
#include "flags.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "except.h"
#include "function.h"
#include "insn-config.h"
#include "expr.h"
#include "optabs.h"
#include "libfuncs.h"
#include "recog.h"
#include "output.h"
#include "typeclass.h"
#include "toplev.h"
#include "predict.h"
#include "tm_p.h"
#include "target.h"
#include "langhooks.h"
#include "basic-block.h"
#include "tree-mudflap.h"
#include "builtins.def"

Include dependency graph for builtins.c:

Go to the source code of this file.

Defines

#define PAD_VARARGS_DOWN   BYTES_BIG_ENDIAN
#define DEF_BUILTIN(X, N, C, T, LT, B, F, NA, AT, IM, COND)   #X,
#define CASE_MATHFN(BUILT_IN_MATHFN)
#define POWI_MAX_MULTS   (2*HOST_BITS_PER_WIDE_INT-2)
#define POWI_TABLE_SIZE   256
#define POWI_WINDOW_SIZE   3
#define HAVE_movstr   0
#define CODE_FOR_movstr   CODE_FOR_nothing

Functions/Subroutines

static int get_pointer_alignment (tree, unsigned int)
static const char * c_getstr (tree)
static rtx c_readstr (const char *, enum machine_mode)
static int target_char_cast (tree, char *)
static rtx get_memory_rtx (tree, tree)
static int apply_args_size (void)
static int apply_result_size (void)
static void expand_builtin_update_setjmp_buf (rtx)
static void expand_builtin_prefetch (tree)
static rtx expand_builtin_apply_args (void)
static rtx expand_builtin_apply_args_1 (void)
static rtx expand_builtin_apply (rtx, rtx, rtx)
static void expand_builtin_return (rtx)
static enum type_class type_to_class (tree)
static rtx expand_builtin_classify_type (tree)
static void expand_errno_check (tree, rtx)
static rtx expand_builtin_mathfn (tree, rtx, rtx)
static rtx expand_builtin_mathfn_2 (tree, rtx, rtx)
static rtx expand_builtin_mathfn_3 (tree, rtx, rtx)
static rtx expand_builtin_sincos (tree)
static rtx expand_builtin_int_roundingfn (tree, rtx, rtx)
static rtx expand_builtin_args_info (tree)
static rtx expand_builtin_next_arg (void)
static rtx expand_builtin_va_start (tree)
static rtx expand_builtin_va_end (tree)
static rtx expand_builtin_va_copy (tree)
static rtx expand_builtin_memcmp (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_strcmp (tree, rtx, enum machine_mode)
static rtx expand_builtin_strncmp (tree, rtx, enum machine_mode)
static rtx builtin_memcpy_read_str (void *, HOST_WIDE_INT, enum machine_mode)
static rtx expand_builtin_strcat (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_strncat (tree, rtx, enum machine_mode)
static rtx expand_builtin_strspn (tree, rtx, enum machine_mode)
static rtx expand_builtin_strcspn (tree, rtx, enum machine_mode)
static rtx expand_builtin_memcpy (tree, rtx, enum machine_mode)
static rtx expand_builtin_mempcpy (tree, tree, rtx, enum machine_mode, int)
static rtx expand_builtin_memmove (tree, tree, rtx, enum machine_mode, tree)
static rtx expand_builtin_bcopy (tree)
static rtx expand_builtin_strcpy (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_stpcpy (tree, rtx, enum machine_mode)
static rtx builtin_strncpy_read_str (void *, HOST_WIDE_INT, enum machine_mode)
static rtx expand_builtin_strncpy (tree, rtx, enum machine_mode)
static rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode)
static rtx builtin_memset_gen_str (void *, HOST_WIDE_INT, enum machine_mode)
static rtx expand_builtin_memset (tree, rtx, enum machine_mode, tree)
static rtx expand_builtin_bzero (tree)
static rtx expand_builtin_strlen (tree, rtx, enum machine_mode)
static rtx expand_builtin_strstr (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_strpbrk (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_strchr (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_strrchr (tree, tree, rtx, enum machine_mode)
static rtx expand_builtin_alloca (tree, rtx)
static rtx expand_builtin_unop (enum machine_mode, tree, rtx, rtx, optab)
static rtx expand_builtin_frame_address (tree, tree)
static rtx expand_builtin_fputs (tree, rtx, bool)
static rtx expand_builtin_printf (tree, rtx, enum machine_mode, bool)
static rtx expand_builtin_fprintf (tree, rtx, enum machine_mode, bool)
static rtx expand_builtin_sprintf (tree, rtx, enum machine_mode)
static tree stabilize_va_list (tree, int)
static rtx expand_builtin_expect (tree, rtx)
static tree fold_builtin_constant_p (tree)
static tree fold_builtin_classify_type (tree)
static tree fold_builtin_strlen (tree)
static tree fold_builtin_inf (tree, int)
static tree fold_builtin_nan (tree, tree, int)
static int validate_arglist (tree,...)
static bool integer_valued_real_p (tree)
static tree fold_trunc_transparent_mathfn (tree, tree)
static bool readonly_data_expr (tree)
static rtx expand_builtin_fabs (tree, rtx, rtx)
static rtx expand_builtin_signbit (tree, rtx)
static tree fold_builtin_sqrt (tree, tree)
static tree fold_builtin_cbrt (tree, tree)
static tree fold_builtin_pow (tree, tree, tree)
static tree fold_builtin_powi (tree, tree, tree)
static tree fold_builtin_sin (tree)
static tree fold_builtin_cos (tree, tree, tree)
static tree fold_builtin_tan (tree)
static tree fold_builtin_atan (tree, tree)
static tree fold_builtin_trunc (tree, tree)
static tree fold_builtin_floor (tree, tree)
static tree fold_builtin_ceil (tree, tree)
static tree fold_builtin_round (tree, tree)
static tree fold_builtin_int_roundingfn (tree, tree)
static tree fold_builtin_bitop (tree, tree)
static tree fold_builtin_memory_op (tree, tree, bool, int)
static tree fold_builtin_strchr (tree, tree)
static tree fold_builtin_memcmp (tree)
static tree fold_builtin_strcmp (tree)
static tree fold_builtin_strncmp (tree)
static tree fold_builtin_signbit (tree, tree)
static tree fold_builtin_copysign (tree, tree, tree)
static tree fold_builtin_isascii (tree)
static tree fold_builtin_toascii (tree)
static tree fold_builtin_isdigit (tree)
static tree fold_builtin_fabs (tree, tree)
static tree fold_builtin_abs (tree, tree)
static tree fold_builtin_unordered_cmp (tree, tree, enum tree_code, enum tree_code)
static tree fold_builtin_1 (tree, tree, bool)
static tree fold_builtin_strpbrk (tree, tree)
static tree fold_builtin_strstr (tree, tree)
static tree fold_builtin_strrchr (tree, tree)
static tree fold_builtin_strcat (tree)
static tree fold_builtin_strncat (tree)
static tree fold_builtin_strspn (tree)
static tree fold_builtin_strcspn (tree)
static tree fold_builtin_sprintf (tree, int)
static rtx expand_builtin_object_size (tree)
static rtx expand_builtin_memory_chk (tree, rtx, enum machine_mode, enum built_in_function)
static void maybe_emit_chk_warning (tree, enum built_in_function)
static void maybe_emit_sprintf_chk_warning (tree, enum built_in_function)
static tree fold_builtin_object_size (tree)
static tree fold_builtin_strcat_chk (tree, tree)
static tree fold_builtin_strncat_chk (tree, tree)
static tree fold_builtin_sprintf_chk (tree, enum built_in_function)
static tree fold_builtin_printf (tree, tree, bool, enum built_in_function)
static tree fold_builtin_fprintf (tree, tree, bool, enum built_in_function)
static bool init_target_chars (void)
static bool called_as_built_in (tree node)
tree c_strlen (tree src, int only_value)
static tree builtin_save_expr (tree exp)
static rtx expand_builtin_return_addr (enum built_in_function fndecl_code, int count)
void expand_builtin_setjmp_setup (rtx buf_addr, rtx receiver_label)
void expand_builtin_setjmp_receiver (rtx receiver_label ATTRIBUTE_UNUSED)
static void expand_builtin_longjmp (rtx buf_addr, rtx value)
static rtx expand_builtin_nonlocal_goto (tree arglist)
tree mathfn_built_in (tree type, enum built_in_function fn)
static int powi_lookup_cost (unsigned HOST_WIDE_INT n, bool *cache)
static int powi_cost (HOST_WIDE_INT n)
static rtx expand_powi_1 (enum machine_mode mode, unsigned HOST_WIDE_INT n, rtx *cache)
static rtx expand_powi (rtx x, enum machine_mode mode, HOST_WIDE_INT n)
static rtx expand_builtin_pow (tree exp, rtx target, rtx subtarget)
static rtx expand_builtin_powi (tree exp, rtx target, rtx subtarget)
static rtx expand_movstr (tree dest, tree src, rtx target, int endp)
static rtx builtin_memset_read_str (void *data, HOST_WIDE_INT offset ATTRIBUTE_UNUSED, enum machine_mode mode)
static rtx builtin_memset_gen_str (void *data, HOST_WIDE_INT offset ATTRIBUTE_UNUSED, enum machine_mode mode)
static rtx expand_builtin_memcmp (tree exp ATTRIBUTE_UNUSED, tree arglist, rtx target, enum machine_mode mode)
rtx expand_builtin_saveregs (void)
tree std_build_builtin_va_list (void)
void std_expand_builtin_va_start (tree valist, rtx nextarg)
tree std_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p)
tree build_va_arg_indirect_ref (tree addr)
static tree dummy_object (tree type)
enum gimplify_status gimplify_va_arg_expr (tree *expr_p, tree *pre_p, tree *post_p)
rtx expand_builtin_expect_jump (tree exp, rtx if_false_label, rtx if_true_label)
void expand_builtin_trap (void)
static rtx expand_builtin_copysign (tree arglist, rtx target, rtx subtarget)
tree build_string_literal (int len, const char *str)
static rtx expand_builtin_profile_func (bool exitp)
static rtx round_trampoline_addr (rtx tramp)
static rtx expand_builtin_init_trampoline (tree arglist)
static rtx expand_builtin_adjust_trampoline (tree arglist)
static rtx expand_builtin_fork_or_exec (tree fn, tree arglist, rtx target, int ignore)
static enum machine_mode get_builtin_sync_mode (int fcode_diff)
static rtx get_builtin_sync_mem (tree loc, enum machine_mode mode)
static rtx expand_builtin_sync_operation (enum machine_mode mode, tree arglist, enum rtx_code code, bool after, rtx target, bool ignore)
static rtx expand_builtin_compare_and_swap (enum machine_mode mode, tree arglist, bool is_bool, rtx target)
static rtx expand_builtin_lock_test_and_set (enum machine_mode mode, tree arglist, rtx target)
static void expand_builtin_synchronize (void)
static void expand_builtin_lock_release (enum machine_mode mode, tree arglist)
rtx expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode, int ignore)
enum built_in_function builtin_mathfn_code (tree t)
static tree fold_builtin_expect (tree arglist)
static tree fold_fixed_mathfn (tree fndecl, tree arglist)
static tree fold_builtin_cabs (tree arglist, tree type, tree fndecl)
static bool real_dconstp (tree expr, const REAL_VALUE_TYPE *value)
static tree fold_builtin_logarithm (tree fndecl, tree arglist, const REAL_VALUE_TYPE *value)
static tree fold_builtin_powi (tree fndecl ATTRIBUTE_UNUSED, tree arglist, tree type)
static tree fold_builtin_exponent (tree fndecl, tree arglist, const REAL_VALUE_TYPE *value)
static bool var_decl_component_p (tree var)
static tree fold_builtin_memset (tree arglist, tree type, bool ignore)
static tree fold_builtin_bzero (tree arglist, bool ignore)
static tree fold_builtin_bcopy (tree arglist, bool ignore)
tree fold_builtin_strcpy (tree fndecl, tree arglist, tree len)
tree fold_builtin_strncpy (tree fndecl, tree arglist, tree slen)
static tree fold_builtin_classify (tree fndecl, tree arglist, int builtin_index)
tree fold_builtin (tree fndecl, tree arglist, bool ignore)
tree build_function_call_expr (tree fn, tree arglist)
rtx default_expand_builtin (tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED, rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
tree fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len)
bool fold_builtin_next_arg (tree arglist)
tree fold_builtin_memory_chk (tree fndecl, tree arglist, tree maxlen, bool ignore, enum built_in_function fcode)
tree fold_builtin_stxcpy_chk (tree fndecl, tree arglist, tree maxlen, bool ignore, enum built_in_function fcode)
tree fold_builtin_strncpy_chk (tree arglist, tree maxlen)
tree fold_builtin_snprintf_chk (tree arglist, tree maxlen, enum built_in_function fcode)

Variables

const char *const built_in_class_names [4] = {"NOT_BUILT_IN", "BUILT_IN_FRONTEND", "BUILT_IN_MD", "BUILT_IN_NORMAL"}
const char * built_in_names [(int) END_BUILTINS]
tree built_in_decls [(int) END_BUILTINS]
tree implicit_built_in_decls [(int) END_BUILTINS]
static unsigned HOST_WIDE_INT target_newline
static unsigned HOST_WIDE_INT target_percent
static unsigned HOST_WIDE_INT target_c
static unsigned HOST_WIDE_INT target_s
static char target_percent_c [3]
static char target_percent_s [3]
static char target_percent_s_newline [4]
static HOST_WIDE_INT setjmp_alias_set = -1
static enum machine_mode apply_args_mode [FIRST_PSEUDO_REGISTER]
static enum machine_mode apply_result_mode [FIRST_PSEUDO_REGISTER]
static int apply_args_reg_offset [FIRST_PSEUDO_REGISTER]
static const unsigned char powi_table [POWI_TABLE_SIZE]


Define Documentation

#define CASE_MATHFN ( BUILT_IN_MATHFN   ) 

Value:

case BUILT_IN_MATHFN: case BUILT_IN_MATHFN##F: case BUILT_IN_MATHFN##L: \
  fcode = BUILT_IN_MATHFN; fcodef = BUILT_IN_MATHFN##F ; \
  fcodel = BUILT_IN_MATHFN##L ; break;

Definition at line 1623 of file builtins.c.

#define CODE_FOR_movstr   CODE_FOR_nothing

Definition at line 3106 of file builtins.c.

#define DEF_BUILTIN ( X,
N,
C,
T,
LT,
B,
F,
NA,
AT,
IM,
COND   )     #X,

Definition at line 59 of file builtins.c.

#define HAVE_movstr   0

Definition at line 3105 of file builtins.c.

#define PAD_VARARGS_DOWN   BYTES_BIG_ENDIAN

Definition at line 52 of file builtins.c.

#define POWI_MAX_MULTS   (2*HOST_BITS_PER_WIDE_INT-2)

Definition at line 2327 of file builtins.c.

#define POWI_TABLE_SIZE   256

Definition at line 2334 of file builtins.c.

#define POWI_WINDOW_SIZE   3

Definition at line 2339 of file builtins.c.


Function Documentation

static int apply_args_size ( void   )  [static]

static int apply_result_size ( void   )  [static]

tree build_function_call_expr ( tree  fn,
tree  arglist 
)

Definition at line 9201 of file builtins.c.

References build1, build3, build_pointer_type(), fold(), fold_build3, NULL_TREE, and TREE_TYPE.

tree build_string_literal ( int  len,
const char *  str 
)

tree build_va_arg_indirect_ref ( tree  addr  ) 

Definition at line 4333 of file builtins.c.

References build_fold_indirect_ref(), and mf_mark().

enum built_in_function builtin_mathfn_code ( tree  t  ) 

static rtx builtin_memcpy_read_str ( void data,
HOST_WIDE_INT  offset,
enum machine_mode  mode 
) [static]

Definition at line 2810 of file builtins.c.

References c_readstr(), gcc_assert, GET_MODE_SIZE, HOST_WIDE_INT, str, and strlen().

static rtx builtin_memset_gen_str ( void data,
HOST_WIDE_INT offset  ATTRIBUTE_UNUSED,
enum machine_mode  mode 
) [static]

static rtx builtin_memset_gen_str ( void ,
HOST_WIDE_INT  ,
enum  machine_mode 
) [static]

static rtx builtin_memset_read_str ( void data,
HOST_WIDE_INT offset  ATTRIBUTE_UNUSED,
enum machine_mode  mode 
) [static]

Definition at line 3367 of file builtins.c.

References alloca, c, c_readstr(), GET_MODE_SIZE, memset, and p.

static rtx builtin_memset_read_str ( void ,
HOST_WIDE_INT  ,
enum  machine_mode 
) [static]

static tree builtin_save_expr ( tree  exp  )  [static]

Definition at line 520 of file builtins.c.

References save_expr(), TREE_ADDRESSABLE, TREE_CODE, and TREE_STATIC.

static rtx builtin_strncpy_read_str ( void data,
HOST_WIDE_INT  offset,
enum machine_mode  mode 
) [static]

Definition at line 3290 of file builtins.c.

References c_readstr(), const0_rtx, HOST_WIDE_INT, str, and strlen().

static const char * c_getstr ( tree  src  )  [static]

static rtx c_readstr ( const char *  str,
enum machine_mode  mode 
) [static]

tree c_strlen ( tree  src,
int  only_value 
)

static bool called_as_built_in ( tree  node  )  [static]

Definition at line 212 of file builtins.c.

References DECL_NAME, IDENTIFIER_POINTER, and strncmp().

Referenced by expand_builtin().

rtx default_expand_builtin ( tree exp  ATTRIBUTE_UNUSED,
rtx target  ATTRIBUTE_UNUSED,
rtx subtarget  ATTRIBUTE_UNUSED,
enum machine_mode mode  ATTRIBUTE_UNUSED,
int ignore  ATTRIBUTE_UNUSED 
)

Definition at line 9268 of file builtins.c.

References NULL_RTX.

static tree dummy_object ( tree  type  )  [static]

Definition at line 4347 of file builtins.c.

References build1, build_int_cst(), and build_pointer_type().

rtx expand_builtin ( tree  exp,
rtx  target,
rtx  subtarget,
enum machine_mode  mode,
int  ignore 
)

Definition at line 5646 of file builtins.c.

References abort, AGGREGATE_TYPE_P, AND, boolean_type_node, BUILT_IN_MD, called_as_built_in(), CALLED_AS_BUILT_IN, CASE_FLT_FN, CASE_INT_FN, clz_optab, const0_rtx, const1_rtx, ctz_optab, current_function_decl, DECL_ASSEMBLER_NAME_SET_P, DECL_BUILT_IN_CLASS, DECL_FUNCTION_CODE, DECL_IS_PURE, DECL_NAME, DECL_RESULT, DECL_RTL, emit_queue(), error(), gcc_target::expand_builtin, expand_builtin_adjust_trampoline(), expand_builtin_alloca(), expand_builtin_apply(), expand_builtin_apply_args(), expand_builtin_args_info(), expand_builtin_bcopy(), expand_builtin_bzero(), expand_builtin_classify_type(), expand_builtin_compare_and_swap(), expand_builtin_constant_p(), expand_builtin_copysign(), expand_builtin_dwarf_sp_column(), expand_builtin_eh_return(), expand_builtin_eh_return_data_regno(), expand_builtin_expect(), expand_builtin_extend_pointer(), expand_builtin_extract_return_addr(), expand_builtin_fabs(), expand_builtin_ffs(), expand_builtin_fork_or_exec(), expand_builtin_fprintf(), expand_builtin_fputs(), expand_builtin_frame_address(), expand_builtin_frob_return_addr(), expand_builtin_init_dwarf_reg_sizes(), expand_builtin_init_trampoline(), expand_builtin_int_roundingfn(), expand_builtin_lock_release(), expand_builtin_lock_test_and_set(), expand_builtin_longjmp(), expand_builtin_mathfn(), expand_builtin_mathfn_2(), expand_builtin_mathfn_3(), expand_builtin_memcmp(), expand_builtin_memcpy(), expand_builtin_memmove(), expand_builtin_memory_chk(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_next_arg(), expand_builtin_nonlocal_goto(), expand_builtin_object_size(), expand_builtin_pow(), expand_builtin_powi(), expand_builtin_prefetch(), expand_builtin_printf(), expand_builtin_profile_func(), expand_builtin_return(), expand_builtin_saveregs(), expand_builtin_setjmp(), expand_builtin_setjmp_receiver(), expand_builtin_setjmp_setup(), expand_builtin_signbit(), expand_builtin_sincos(), expand_builtin_sprintf(), expand_builtin_stpcpy(), expand_builtin_strcat(), expand_builtin_strchr(), expand_builtin_strcmp(), expand_builtin_strcpy(), expand_builtin_strcspn(), expand_builtin_strlen(), expand_builtin_strncat(), expand_builtin_strncmp(), expand_builtin_strncpy(), expand_builtin_strpbrk(), expand_builtin_strrchr(), expand_builtin_strspn(), expand_builtin_strstr(), expand_builtin_sync_operation(), expand_builtin_synchronize(), expand_builtin_trap(), expand_builtin_unop(), expand_builtin_unwind_init(), expand_builtin_update_setjmp_buf(), expand_builtin_va_copy(), expand_builtin_va_end(), expand_builtin_va_start(), expand_call(), expand_expr(), EXPAND_NORMAL, expand_normal(), expand_stack_restore(), expand_stack_save(), ffs_optab, flag_unsafe_math_optimizations, fold_builtin_next_arg(), FORCED_LABEL, gcc_unreachable, gen_reg_rtx(), gen_rtx_EXPR_LIST, get_builtin_sync_mode(), get_callee_fndecl(), GET_CODE, i, IDENTIFIER_POINTER, label_rtx(), maybe_emit_chk_warning(), maybe_emit_sprintf_chk_warning(), MEM, MEM_P, MINUS, nonlocal_goto_handler_labels, NOT, NULL_RTX, optimize, parity_optab, PLUS, popcount_optab, register_operand(), remove_node_from_expr_list(), targetm, TREE_CHAIN, TREE_OPERAND, TREE_READONLY, TREE_THIS_VOLATILE, TREE_TYPE, TREE_VALUE, TYPE_MODE, validate_arglist(), virtual_cfa_rtx, XEXP, and XOR.

static rtx expand_builtin_adjust_trampoline ( tree  arglist  )  [static]

static rtx expand_builtin_alloca ( tree  arglist,
rtx  target 
) [static]

static rtx expand_builtin_apply ( rtx  function,
rtx  arguments,
rtx  argsize 
) [static]

static rtx expand_builtin_apply_args ( void   )  [static]

static rtx expand_builtin_apply_args_1 ( void   )  [static]

static rtx expand_builtin_args_info ( tree  arglist  )  [static]

static rtx expand_builtin_bcopy ( tree  exp  )  [static]

static rtx expand_builtin_bzero ( tree  exp  )  [static]

static rtx expand_builtin_classify_type ( tree  arglist  )  [static]

Definition at line 1612 of file builtins.c.

References GEN_INT, no_type_class, TREE_TYPE, TREE_VALUE, and type_to_class().

static rtx expand_builtin_compare_and_swap ( enum machine_mode  mode,
tree  arglist,
bool  is_bool,
rtx  target 
) [static]

static rtx expand_builtin_copysign ( tree  arglist,
rtx  target,
rtx  subtarget 
) [static]

static rtx expand_builtin_expect ( tree  arglist,
rtx  target 
) [static]

rtx expand_builtin_expect_jump ( tree  exp,
rtx  if_false_label,
rtx  if_true_label 
)

static rtx expand_builtin_fabs ( tree  arglist,
rtx  target,
rtx  subtarget 
) [static]

static rtx expand_builtin_fork_or_exec ( tree  fn,
tree  arglist,
rtx  target,
int  ignore 
) [static]

static rtx expand_builtin_fprintf ( tree  exp,
rtx  target,
enum machine_mode  mode,
bool  unlocked 
) [static]

static rtx expand_builtin_fputs ( tree  arglist,
rtx  target,
bool  unlocked 
) [static]

static rtx expand_builtin_frame_address ( tree  fndecl,
tree  arglist 
) [static]

static rtx expand_builtin_init_trampoline ( tree  arglist  )  [static]

static rtx expand_builtin_int_roundingfn ( tree  exp,
rtx  target,
rtx  subtarget 
) [static]

static void expand_builtin_lock_release ( enum machine_mode  mode,
tree  arglist 
) [static]

static rtx expand_builtin_lock_test_and_set ( enum machine_mode  mode,
tree  arglist,
rtx  target 
) [static]

static void expand_builtin_longjmp ( rtx  buf_addr,
rtx  value 
) [static]

static rtx expand_builtin_mathfn ( tree  exp,
rtx  target,
rtx  subtarget 
) [static]

static rtx expand_builtin_mathfn_2 ( tree  exp,
rtx  target,
rtx  subtarget 
) [static]

static rtx expand_builtin_mathfn_3 ( tree  exp,
rtx  target,
rtx  subtarget 
) [static]

static rtx expand_builtin_memcmp ( tree exp  ATTRIBUTE_UNUSED,
tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_memcmp ( tree  ,
tree  ,
rtx  ,
enum  machine_mode 
) [static]

static rtx expand_builtin_memcpy ( tree  exp,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_memmove ( tree  arglist,
tree  type,
rtx  target,
enum machine_mode  mode,
tree  orig_exp 
) [static]

static rtx expand_builtin_memory_chk ( tree  exp,
rtx  target,
enum machine_mode  mode,
enum built_in_function  fcode 
) [static]

static rtx expand_builtin_mempcpy ( tree  arglist,
tree  type,
rtx  target,
enum machine_mode  mode,
int  endp 
) [static]

static rtx expand_builtin_memset ( tree  arglist,
rtx  target,
enum machine_mode  mode,
tree  orig_exp 
) [static]

static rtx expand_builtin_next_arg ( void   )  [static]

static rtx expand_builtin_nonlocal_goto ( tree  arglist  )  [static]

rtx expand_builtin_object_size ( tree  exp  )  [static]

static rtx expand_builtin_pow ( tree  exp,
rtx  target,
rtx  subtarget 
) [static]

static rtx expand_builtin_powi ( tree  exp,
rtx  target,
rtx  subtarget 
) [static]

static void expand_builtin_prefetch ( tree  arglist  )  [static]

static rtx expand_builtin_printf ( tree  exp,
rtx  target,
enum machine_mode  mode,
bool  unlocked 
) [static]

static rtx expand_builtin_profile_func ( bool  exitp  )  [static]

static void expand_builtin_return ( rtx  result  )  [static]

static rtx expand_builtin_return_addr ( enum built_in_function  fndecl_code,
int  count 
) [static]

rtx expand_builtin_saveregs ( void   ) 

void expand_builtin_setjmp_receiver ( rtx receiver_label  ATTRIBUTE_UNUSED  ) 

void expand_builtin_setjmp_setup ( rtx  buf_addr,
rtx  receiver_label 
)

static rtx expand_builtin_signbit ( tree  exp,
rtx  target 
) [static]

static rtx expand_builtin_sincos ( tree  exp  )  [static]

static rtx expand_builtin_sprintf ( tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_stpcpy ( tree  exp,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_strcat ( tree  fndecl,
tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_strchr ( tree  arglist,
tree  type,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 2760 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strchr(), and validate_arglist().

static rtx expand_builtin_strcmp ( tree  exp,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_strcpy ( tree  fndecl,
tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_strcspn ( tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 4052 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strcspn(), and validate_arglist().

static rtx expand_builtin_strlen ( tree  arglist,
rtx  target,
enum machine_mode  target_mode 
) [static]

static rtx expand_builtin_strncat ( tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 4019 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strncat(), and validate_arglist().

static rtx expand_builtin_strncmp ( tree  exp,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_strncpy ( tree  exp,
rtx  target,
enum machine_mode  mode 
) [static]

static rtx expand_builtin_strpbrk ( tree  arglist,
tree  type,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 2794 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strpbrk(), and validate_arglist().

static rtx expand_builtin_strrchr ( tree  arglist,
tree  type,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 2778 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strrchr(), and validate_arglist().

static rtx expand_builtin_strspn ( tree  arglist,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 4036 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strspn(), and validate_arglist().

static rtx expand_builtin_strstr ( tree  arglist,
tree  type,
rtx  target,
enum machine_mode  mode 
) [static]

Definition at line 2744 of file builtins.c.

References expand_expr(), EXPAND_NORMAL, fold_builtin_strstr(), and validate_arglist().

static rtx expand_builtin_sync_operation ( enum machine_mode  mode,
tree  arglist,
enum rtx_code  code,
bool  after,
rtx  target,
bool  ignore 
) [static]

static void expand_builtin_synchronize ( void   )  [static]

void expand_builtin_trap ( void   ) 

static rtx expand_builtin_unop ( enum machine_mode  target_mode,
tree  arglist,
rtx  target,
rtx  subtarget,
optab  op_optab 
) [static]

static void expand_builtin_update_setjmp_buf ( rtx  buf_addr  )  [static]

static rtx expand_builtin_va_copy ( tree  arglist  )  [static]

static rtx expand_builtin_va_end ( tree  arglist  )  [static]

Definition at line 4455 of file builtins.c.

References const0_rtx, expand_expr(), EXPAND_NORMAL, TREE_SIDE_EFFECTS, and TREE_VALUE.

static rtx expand_builtin_va_start ( tree  arglist  )  [static]

static void expand_errno_check ( tree  exp,
rtx  target 
) [static]

static rtx expand_movstr ( tree  dest,
tree  src,
rtx  target,
int  endp 
) [static]

static rtx expand_powi ( rtx  x,
enum machine_mode  mode,
HOST_WIDE_INT  n 
) [static]

static rtx expand_powi_1 ( enum machine_mode  mode,
unsigned HOST_WIDE_INT  n,
rtx cache 
) [static]

tree fold_builtin ( tree  fndecl,
tree  arglist,
bool  ignore 
)

Definition at line 9186 of file builtins.c.

References build1, exp, fold_builtin_1(), TREE_NO_WARNING, and TREE_TYPE.

static tree fold_builtin_1 ( tree  fndecl,
tree  arglist,
bool  ignore 
) [static]

Definition at line 8853 of file builtins.c.

References BUILT_IN_MD, CASE_FLT_FN, CASE_INT_FN, COMPLEX_TYPE, dconst10, dconst2, dconste, DECL_BUILT_IN_CLASS, DECL_FUNCTION_CODE, fold_build1, gcc_target::fold_builtin, fold_builtin_abs(), fold_builtin_atan(), fold_builtin_bcopy(), fold_builtin_bitop(), fold_builtin_bzero(), fold_builtin_cabs(), fold_builtin_cbrt(), fold_builtin_ceil(), fold_builtin_classify(), fold_builtin_classify_type(), fold_builtin_constant_p(), fold_builtin_copysign(), fold_builtin_cos(), fold_builtin_expect(), fold_builtin_exponent(), fold_builtin_fabs(), fold_builtin_floor(), fold_builtin_fprintf(), fold_builtin_fputs(), fold_builtin_inf(), fold_builtin_int_roundingfn(), fold_builtin_isascii(), fold_builtin_isdigit(), fold_builtin_logarithm(), fold_builtin_memcmp(), fold_builtin_memory_chk(), fold_builtin_memory_op(), fold_builtin_memset(), fold_builtin_nan(), fold_builtin_object_size(), fold_builtin_pow(), fold_builtin_powi(), fold_builtin_printf(), fold_builtin_round(), fold_builtin_signbit(), fold_builtin_sin(), fold_builtin_snprintf_chk(), fold_builtin_sprintf(), fold_builtin_sprintf_chk(), fold_builtin_sqrt(), fold_builtin_strcat(), fold_builtin_strcat_chk(), fold_builtin_strchr(), fold_builtin_strcmp(), fold_builtin_strcpy(), fold_builtin_strcspn(), fold_builtin_strlen(), fold_builtin_strncat(), fold_builtin_strncat_chk(), fold_builtin_strncmp(), fold_builtin_strncpy(), fold_builtin_strncpy_chk(), fold_builtin_strpbrk(), fold_builtin_strrchr(), fold_builtin_strspn(), fold_builtin_strstr(), fold_builtin_stxcpy_chk(), fold_builtin_tan(), fold_builtin_toascii(), fold_builtin_trunc(), fold_builtin_unordered_cmp(), fold_fixed_mathfn(), fold_trunc_transparent_mathfn(), integer_zero_node, non_lvalue(), NULL_TREE, optimize, targetm, TREE_TYPE, TREE_VALUE, val, and validate_arglist().

static tree fold_builtin_abs ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_atan ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_bcopy ( tree  arglist,
bool  ignore 
) [static]

static tree fold_builtin_bitop ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_bzero ( tree  arglist,
bool  ignore 
) [static]

static tree fold_builtin_cabs ( tree  arglist,
tree  type,
tree  fndecl 
) [static]

static tree fold_builtin_cbrt ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_ceil ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_classify ( tree  fndecl,
tree  arglist,
int  builtin_index 
) [static]

static tree fold_builtin_classify_type ( tree  arglist  )  [static]

Definition at line 6648 of file builtins.c.

References build_int_cst(), no_type_class, NULL_TREE, TREE_TYPE, TREE_VALUE, and type_to_class().

static tree fold_builtin_constant_p ( tree  arglist  )  [static]

static tree fold_builtin_copysign ( tree  fndecl,
tree  arglist,
tree  type 
) [static]

static tree fold_builtin_cos ( tree  arglist,
tree  type,
tree  fndecl 
) [static]

static tree fold_builtin_expect ( tree  arglist  )  [static]

Definition at line 6613 of file builtins.c.

References DECL_P, DECL_WEAK, STRIP_NOPS, TREE_CODE, TREE_INVARIANT, TREE_OPERAND, and TREE_VALUE.

static tree fold_builtin_exponent ( tree  fndecl,
tree  arglist,
const REAL_VALUE_TYPE *  value 
) [static]

static tree fold_builtin_fabs ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_floor ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_fprintf ( tree  fndecl,
tree  arglist,
bool  ignore,
enum built_in_function  fcode 
) [static]

tree fold_builtin_fputs ( tree  arglist,
bool  ignore,
bool  unlocked,
tree  len 
)

static tree fold_builtin_inf ( tree  type,
int  warn 
) [static]

static tree fold_builtin_int_roundingfn ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_isascii ( tree  arglist  )  [static]

static tree fold_builtin_isdigit ( tree  arglist  )  [static]

static tree fold_builtin_logarithm ( tree  fndecl,
tree  arglist,
const REAL_VALUE_TYPE *  value 
) [static]

static tree fold_builtin_memcmp ( tree  arglist  )  [static]

tree fold_builtin_memory_chk ( tree  fndecl,
tree  arglist,
tree  maxlen,
bool  ignore,
enum built_in_function  fcode 
)

static tree fold_builtin_memory_op ( tree  arglist,
tree  type,
bool  ignore,
int  endp 
) [static]

static tree fold_builtin_memset ( tree  arglist,
tree  type,
bool  ignore 
) [static]

static tree fold_builtin_nan ( tree  arglist,
tree  type,
int  quiet 
) [static]

bool fold_builtin_next_arg ( tree  arglist  ) 

tree fold_builtin_object_size ( tree  arglist  )  [static]

static tree fold_builtin_pow ( tree  fndecl,
tree  arglist,
tree  type 
) [static]

static tree fold_builtin_powi ( tree fndecl  ATTRIBUTE_UNUSED,
tree  arglist,
tree  type 
) [static]

static tree fold_builtin_powi ( tree  ,
tree  ,
tree   
) [static]

static tree fold_builtin_printf ( tree  fndecl,
tree  arglist,
bool  ignore,
enum built_in_function  fcode 
) [static]

static tree fold_builtin_round ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_signbit ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_sin ( tree  arglist  )  [static]

Definition at line 7179 of file builtins.c.

References NULL_TREE, real_zerop(), TREE_VALUE, and validate_arglist().

tree fold_builtin_snprintf_chk ( tree  arglist,
tree  maxlen,
enum built_in_function  fcode 
)

static tree fold_builtin_sprintf ( tree  arglist,
int  ignored 
) [static]

static tree fold_builtin_sprintf_chk ( tree  arglist,
enum built_in_function  fcode 
) [static]

static tree fold_builtin_sqrt ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_strcat ( tree  arglist  )  [static]

Definition at line 9575 of file builtins.c.

References c_getstr(), dst, p, src, TREE_CHAIN, TREE_VALUE, and validate_arglist().

static tree fold_builtin_strcat_chk ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_strchr ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_strcmp ( tree  arglist  )  [static]

tree fold_builtin_strcpy ( tree  fndecl,
tree  arglist,
tree  len 
)

static tree fold_builtin_strcspn ( tree  arglist  )  [static]

static tree fold_builtin_strlen ( tree  arglist  )  [static]

static tree fold_builtin_strncat ( tree  arglist  )  [static]

static tree fold_builtin_strncat_chk ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_strncmp ( tree  arglist  )  [static]

tree fold_builtin_strncpy ( tree  fndecl,
tree  arglist,
tree  slen 
)

tree fold_builtin_strncpy_chk ( tree  arglist,
tree  maxlen 
)

static tree fold_builtin_strpbrk ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_strrchr ( tree  arglist,
tree  type 
) [static]

static tree fold_builtin_strspn ( tree  arglist  )  [static]

static tree fold_builtin_strstr ( tree  arglist,
tree  type 
) [static]

tree fold_builtin_stxcpy_chk ( tree  fndecl,
tree  arglist,
tree  maxlen,
bool  ignore,
enum built_in_function  fcode 
)

static tree fold_builtin_tan ( tree  arglist  )  [static]

static tree fold_builtin_toascii ( tree  arglist  )  [static]

static tree fold_builtin_trunc ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_builtin_unordered_cmp ( tree  fndecl,
tree  arglist,
enum tree_code  unordered_code,
enum tree_code  ordered_code 
) [static]

static tree fold_fixed_mathfn ( tree  fndecl,
tree  arglist 
) [static]

static tree fold_trunc_transparent_mathfn ( tree  fndecl,
tree  arglist 
) [static]

static rtx get_builtin_sync_mem ( tree  loc,
enum machine_mode  mode 
) [static]

static enum machine_mode get_builtin_sync_mode ( int  fcode_diff  )  [inline, static]

Definition at line 5452 of file builtins.c.

References BITS_PER_UNIT, mode_for_size(), and MODE_INT.

Referenced by expand_builtin().

static rtx get_memory_rtx ( tree  exp,
tree  len 
) [static]

static int get_pointer_alignment ( tree  exp,
unsigned int  max_align 
) [static]

enum gimplify_status gimplify_va_arg_expr ( tree expr_p,
tree pre_p,
tree post_p 
)

static bool init_target_chars ( void   )  [static]

static bool integer_valued_real_p ( tree  t  )  [static]

tree mathfn_built_in ( tree  type,
enum built_in_function  fn 
)

static void maybe_emit_chk_warning ( tree  exp,
enum built_in_function  fcode 
) [static]

static void maybe_emit_sprintf_chk_warning ( tree  exp,
enum built_in_function  fcode 
) [static]

static int powi_cost ( HOST_WIDE_INT  n  )  [static]

Definition at line 2408 of file builtins.c.

References digit, HOST_WIDE_INT, memset, powi_lookup_cost(), POWI_TABLE_SIZE, POWI_WINDOW_SIZE, and val.

static int powi_lookup_cost ( unsigned HOST_WIDE_INT  n,
bool cache 
) [static]

Definition at line 2391 of file builtins.c.

References powi_lookup_cost().

static bool readonly_data_expr ( tree  exp  )  [static]

static bool real_dconstp ( tree  expr,
const REAL_VALUE_TYPE *  value 
) [static]

static rtx round_trampoline_addr ( rtx  tramp  )  [static]

static tree stabilize_va_list ( tree  valist,
int  needs_lvalue 
) [static]

tree std_build_builtin_va_list ( void   ) 

Definition at line 4191 of file builtins.c.

References ptr_type_node.

void std_expand_builtin_va_start ( tree  valist,
rtx  nextarg 
)

tree std_gimplify_va_arg_expr ( tree  valist,
tree  type,
tree pre_p,
tree post_p 
)

static int target_char_cast ( tree  cst,
char *  p 
) [static]

static enum type_class type_to_class ( tree  type  )  [static]

static int validate_arglist ( tree  arglist,
  ... 
) [static]

Definition at line 9216 of file builtins.c.

References end, POINTER_TYPE_P, TREE_CHAIN, TREE_CODE, TREE_TYPE, TREE_VALUE, va_arg, va_end, and va_start.

static bool var_decl_component_p ( tree  var  )  [static]

Definition at line 7922 of file builtins.c.

References handled_component_p(), SSA_VAR_P, and TREE_OPERAND.

Referenced by fold_builtin_memory_op(), and fold_builtin_memset().


Variable Documentation

enum machine_mode apply_args_mode[FIRST_PSEUDO_REGISTER] [static]

Definition at line 1143 of file builtins.c.

int apply_args_reg_offset[FIRST_PSEUDO_REGISTER] [static]

Definition at line 1156 of file builtins.c.

enum machine_mode apply_result_mode[FIRST_PSEUDO_REGISTER] [static]

Definition at line 1150 of file builtins.c.

const char* const built_in_class_names[4] = {"NOT_BUILT_IN", "BUILT_IN_FRONTEND", "BUILT_IN_MD", "BUILT_IN_NORMAL"}

Definition at line 57 of file builtins.c.

tree built_in_decls[(int) END_BUILTINS]

Definition at line 68 of file builtins.c.

const char* built_in_names[(int) END_BUILTINS]

Definition at line 60 of file builtins.c.

tree implicit_built_in_decls[(int) END_BUILTINS]

Definition at line 72 of file builtins.c.

const unsigned char powi_table[POWI_TABLE_SIZE] [static]

Definition at line 2348 of file builtins.c.

HOST_WIDE_INT setjmp_alias_set = -1 [static]

Definition at line 615 of file builtins.c.

unsigned HOST_WIDE_INT target_c [static]

Definition at line 202 of file builtins.c.

Referenced by init_target_chars().

unsigned HOST_WIDE_INT target_newline [static]

Definition at line 200 of file builtins.c.

Referenced by expand_builtin_printf(), fold_builtin_printf(), and init_target_chars().

unsigned HOST_WIDE_INT target_percent [static]

char target_percent_c[3] [static]

char target_percent_s[3] [static]

char target_percent_s_newline[4] [static]

Definition at line 206 of file builtins.c.

Referenced by expand_builtin_printf(), fold_builtin_printf(), and init_target_chars().

unsigned HOST_WIDE_INT target_s [static]

Definition at line 203 of file builtins.c.

Referenced by init_target_chars().


Generated on Wed Apr 8 15:12:00 2009 for Open64 by  doxygen 1.5.6