/* 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
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);
/* Returns a code for builtin that realizes vectorized version of
function, or NULL_TREE if not available. */
- tree (* builtin_vectorized_function) (tree, tree, tree);
+ tree (* builtin_vectorized_function) (unsigned, tree, 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);
+ /* Returns a code for builtin that realizes vectorized version of
+ conversion, or NULL_TREE if not available. */
+ tree (* builtin_conversion) (unsigned, tree);
/* Target builtin that implements vector widening multiplication.
builtin_mul_widen_eve computes the element-by-element products
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). */
tree decl, void *params);
/* Fold a target-specific builtin. */
- tree (* fold_builtin) (tree fndecl, int nargs, tree *argp, bool ignore);
+ tree (* fold_builtin) (tree fndecl, tree arglist, bool ignore);
/* Returns a code for a target-specific builtin that implements
reciprocal of the function, or NULL_TREE if not available. */
/* 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);
/* 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. */
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. */
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);