Commit bbf7ce11 by Rafael Avila de Espindola Committed by Rafael Espindola

builtins.c (is_builtin_name): New.

2009-04-02  Rafael Avila de Espindola  <espindola@google.com>

	* builtins.c (is_builtin_name): New.
	(called_as_built_in): Use is_builtin_name.
	* tree.h (is_builtin_name): New.
	* varasm.c (incorporeal_function_p): Use is_builtin_name

From-SVN: r145444
parent 47e4dfcf
2009-04-02 Rafael Avila de Espindola <espindola@google.com>
* builtins.c (is_builtin_name): New.
(called_as_built_in): Use is_builtin_name.
* tree.h (is_builtin_name): New.
* varasm.c (incorporeal_function_p): Use is_builtin_name
2009-04-02 Andrew Stubbs <ams@codesourcery.com>
* config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
......
......@@ -241,13 +241,9 @@ static tree do_mpfr_bessel_n (tree, tree, tree,
static tree do_mpfr_remquo (tree, tree, tree);
static tree do_mpfr_lgamma_r (tree, tree, tree);
/* Return true if NODE should be considered for inline expansion regardless
of the optimization level. This means whenever a function is invoked with
its "internal" name, which normally contains the prefix "__builtin". */
static bool called_as_built_in (tree node)
bool
is_builtin_name (const char *name)
{
const char *name = IDENTIFIER_POINTER (DECL_NAME (node));
if (strncmp (name, "__builtin_", 10) == 0)
return true;
if (strncmp (name, "__sync_", 7) == 0)
......@@ -255,6 +251,20 @@ static bool called_as_built_in (tree node)
return false;
}
/* Return true if NODE should be considered for inline expansion regardless
of the optimization level. This means whenever a function is invoked with
its "internal" name, which normally contains the prefix "__builtin". */
static bool
called_as_built_in (tree node)
{
/* Note that we must use DECL_NAME, not DECL_ASSEMBLER_NAME_SET_P since
we want the name used to call the function, not the name it
will have. */
const char *name = IDENTIFIER_POINTER (DECL_NAME (node));
return is_builtin_name (name);
}
/* Return the alignment in bits of EXP, an object.
Don't return more than MAX_ALIGN no matter what, ALIGN is the inital
guessed alignment e.g. from type alignment. */
......
......@@ -4896,6 +4896,7 @@ extern tree build_string_literal (int, const char *);
extern bool validate_arglist (const_tree, ...);
extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode);
extern int get_pointer_alignment (tree, unsigned int);
extern bool is_builtin_name(const char*);
extern int get_object_alignment (tree, unsigned int, unsigned int);
extern tree fold_call_stmt (gimple, bool);
extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function);
......
......@@ -2256,7 +2256,7 @@ incorporeal_function_p (tree decl)
return true;
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
if (strncmp (name, "__builtin_", strlen ("__builtin_")) == 0)
if (is_builtin_name (name))
return true;
}
return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment