diff options
author | Richard Guenther <rguenther@suse.de> | 2009-10-09 22:31:53 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-10-09 22:31:53 +0000 |
commit | e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2 (patch) | |
tree | 8ac7173644937212b4dfddf787410b0ecfa43674 /gcc/target.h | |
parent | d0a9804e353b33d339e20f0aa2bd458a4ff08649 (diff) | |
download | gcc-e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2.zip gcc-e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2.tar.gz gcc-e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2.tar.bz2 |
re PR lto/41638 (Back-end builtins are mishandled)
2009-10-09 Richard Guenther <rguenther@suse.de>
PR lto/41638
* target-def.h (TARGET_BUILTIN_DECL): Define.
(TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
* target.h (struct gcc_target): Add builtin_decl target hook.
* doc/tm.texi (TARGET_BUILTIN_DECL): Document.
* lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
target builtins.
* lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
not gcc_unreachable.
(lto_output_builtin_tree): Sorry if the target does not support
streaming target builtins.
* config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
(rs6000_builtin_decl): New function.
* config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
(ix86_builtin_decl): New function.
From-SVN: r152606
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h index f964b69..c65063c 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -562,6 +562,12 @@ struct gcc_target /* Set up target-specific built-in functions. */ void (* init_builtins) (void); + /* Initialize (if INITIALIZE_P is true) and return the target-specific + built-in function decl for CODE. + Return NULL if that is not possible. Return error_mark_node if CODE + is outside of the range of valid target builtin function codes. */ + tree (* builtin_decl) (unsigned code, bool initialize_p); + /* Expand a target-specific builtin. */ rtx (* expand_builtin) (tree exp, rtx target, rtx subtarget, enum machine_mode mode, int ignore); |