function, or NULL_TREE if not available. */
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
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). */
/* 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);