diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-29 15:47:54 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-29 15:47:54 +0000 |
commit | 81bdf64f2035b8979549fc533915ea17d429dc9f (patch) | |
tree | 69e2b47b22500339535d6f5f37e3fca2350d4f3a /gcc/target.h | |
parent | 7f1c23c2e7981438c251121d85cf5d807b9a4f5d (diff) | |
download | gcc-81bdf64f2035b8979549fc533915ea17d429dc9f.tar.gz |
2008-07-29 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r138226 [after tuple merge into trunk]
some compiler probe stuff are missing
* gcc/compiler-probe.h: more gimple, less tree
* gcc/compiler-probe.c: incomplete merge.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@138247 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/gcc/target.h b/gcc/target.h index d1642ef9497..331cc53d8f4 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -707,8 +707,8 @@ struct gcc_target void (* expand_builtin_va_start) (tree valist, rtx nextarg); /* Gimplifies a VA_ARG_EXPR. */ - tree (* gimplify_va_arg_expr) (tree valist, tree type, tree *pre_p, - tree *post_p); + tree (* gimplify_va_arg_expr) (tree valist, tree type, gimple_seq *pre_p, + gimple_seq *post_p); /* Validity-checking routines for PCH files, target-specific. get_pch_validity returns a pointer to the data to be stored, @@ -754,10 +754,9 @@ struct gcc_target void (* dwarf_handle_frame_unspec) (const char *, rtx, int); /* Perform architecture specific checking of statements gimplified - from VA_ARG_EXPR. LHS is left hand side of MODIFY_EXPR, RHS - is right hand side. Returns true if the statements doesn't need - to be checked for va_list references. */ - bool (* stdarg_optimize_hook) (struct stdarg_info *ai, const_tree lhs, const_tree rhs); + from VA_ARG_EXPR. STMT is the statement. Returns true if the statement + doesn't need to be checked for va_list references. */ + bool (* stdarg_optimize_hook) (struct stdarg_info *ai, const_gimple stmt); /* This target hook allows the operating system to override the DECL that represents the external variable that contains the stack @@ -963,6 +962,40 @@ struct gcc_target bool debug_form_tls_address; } emutls; + struct target_option_hooks { + /* Function to validate the attribute((option(...))) strings or NULL. If + the option is validated, it is assumed that DECL_FUNCTION_SPECIFIC will + be filled in in the function decl node. */ + bool (*valid_attribute_p) (tree, tree, tree, int); + + /* Function to save any extra target state in the target options + structure. */ + void (*save) (struct cl_target_option *); + + /* Function to restore any extra target state from the target options + structure. */ + void (*restore) (struct cl_target_option *); + + /* Function to print any extra target state from the target options + structure. */ + void (*print) (FILE *, int, struct cl_target_option *); + + /* Function to parse arguments to be validated for #pragma option, and to + change the state if the options are valid. If the arguments are NULL, + use the default target options. Return true if the options are valid, + and set the current state. */ + bool (*pragma_parse) (tree); + + /* Function to determine if one function can inline another function. */ + bool (*can_inline_p) (tree, tree); + + /* Whether the cold attribute changes the optimization level. */ + bool cold_attribute_sets_optimization; + + /* Whether the hot attribute changes the optimization level. */ + bool hot_attribute_sets_optimization; + } target_option; + /* For targets that need to mark extra registers as live on entry to the function, they should define this target hook and set their bits in the bitmap passed in. */ |