Mercurial > hg > CbC > CbC_gcc
diff gcc/target.h @ 63:b7f97abdc517 gcc-4.6-20100522
update gcc from gcc-4.5.0 to gcc-4.6
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 24 May 2010 12:47:05 +0900 |
parents | 77e2b8dfacca |
children | f6334be47118 |
line wrap: on
line diff
--- a/gcc/target.h Fri Feb 12 23:41:23 2010 +0900 +++ b/gcc/target.h Mon May 24 12:47:05 2010 +0900 @@ -1,5 +1,5 @@ /* Data structure definitions for a generic GCC target. - Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it @@ -97,6 +97,9 @@ /* This is defined in ddg.h . */ struct ddg; +/* This is defined in cfgloop.h . */ +struct loop; + /* Assembler instructions for creating various kinds of integer object. */ struct asm_int_op @@ -235,6 +238,18 @@ translation unit. */ void (*file_end) (void); + /* Output any boilerplate text needed at the beginning of an + LTO output stream. */ + void (*lto_start) (void); + + /* Output any boilerplate text needed at the end of an + LTO output stream. */ + void (*lto_end) (void); + + /* Output any boilerplace text needed at the end of a + translation unit before debug and unwind info is emitted. */ + void (*code_end) (void); + /* Output an assembler pseudo-op to declare a library function name external. */ void (*external_libcall) (rtx); @@ -467,11 +482,11 @@ /* Returns a code for builtin that realizes vectorized version of function, or NULL_TREE if not available. */ - tree (* builtin_vectorized_function) (unsigned, tree, tree); + tree (* builtin_vectorized_function) (tree, tree, tree); - /* Returns a code for builtin that realizes vectorized version of - conversion, or NULL_TREE if not available. */ - tree (* builtin_conversion) (unsigned, tree); + /* Returns a function declaration for a builtin that realizes the + vector conversion, or NULL_TREE if not available. */ + tree (* builtin_conversion) (unsigned, tree, tree); /* Target builtin that implements vector widening multiplication. builtin_mul_widen_eve computes the element-by-element products @@ -542,6 +557,10 @@ Ignored if NULL. */ const struct attribute_spec *attribute_table; + /* Return true iff attribute NAME expects a plain identifier as its first + argument. */ + bool (*attribute_takes_identifier_p) (const_tree name); + /* Return zero if the attributes on TYPE1 and TYPE2 are incompatible, one if they are compatible and two if they are nearly compatible (which causes a warning to be generated). */ @@ -597,7 +616,7 @@ tree decl, void *params); /* Fold a target-specific builtin. */ - tree (* fold_builtin) (tree fndecl, tree arglist, bool ignore); + tree (* fold_builtin) (tree fndecl, int nargs, tree *argp, bool ignore); /* Returns a code for a target-specific builtin that implements reciprocal of the function, or NULL_TREE if not available. */ @@ -633,6 +652,9 @@ /* Return true if the target supports conditional execution. */ bool (* have_conditional_execution) (void); + /* Return a new value for loop unroll size. */ + unsigned (* loop_unroll_adjust) (unsigned nunroll, struct loop *loop); + /* True if the constant X cannot be placed in the constant pool. */ bool (* cannot_force_const_mem) (rtx); @@ -641,6 +663,10 @@ /* True if X is considered to be commutative. */ bool (* commutative_p) (const_rtx, int); + + /* True if ADDR is an address-expression whose effect depends + on the mode of the memory reference it is used in. */ + bool (* mode_dependent_address_p) (const_rtx addr); /* Given an invalid address X for a given machine mode, try machine-specific ways to make it legitimate. Return X or an invalid address on failure. */ @@ -752,6 +778,12 @@ for further details. */ bool (* vector_mode_supported_p) (enum machine_mode mode); + /* True for MODE if the target expects that registers in this mode will + be allocated to registers in a small register class. The compiler is + allowed to use registers explicitly used in the rtl as spill registers + but it should prevent extending the lifetime of these registers. */ + bool (* small_register_classes_for_mode_p) (enum machine_mode mode); + /* Compute a (partial) cost for rtx X. Return true if the complete cost has been computed, and false if subexpressions should be scanned. In either case, *TOTAL contains the cost result. */ @@ -958,6 +990,10 @@ calling the function FN_NAME. */ rtx (*libcall_value) (enum machine_mode, const_rtx); + /* Return true if REGNO is a possible register number for + a function value as seen by the caller. */ + bool (*function_value_regno_p) (const unsigned int); + /* Return an rtx for the argument pointer incoming to the current function. */ rtx (*internal_arg_pointer) (void); @@ -1021,7 +1057,7 @@ /* Return the class for a secondary reload, and fill in extra information. */ enum reg_class (*secondary_reload) (bool, rtx, enum reg_class, enum machine_mode, - struct secondary_reload_info *); + secondary_reload_info *); /* This target hook allows the backend to perform additional processing while initializing for variable expansion. */