bool overlap_op_by_pieces;
unsigned int fusible_ops;
const struct cpu_vector_cost *vec_costs;
- const char *function_align = nullptr;
- const char *jump_align = nullptr;
- const char *loop_align = nullptr;
+ const char *function_align;
+ const char *jump_align;
+ const char *loop_align;
};
false, /* overlap_op_by_pieces */
RISCV_FUSE_NOTHING, /* fusible_ops */
NULL, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for Sifive 7 Series. */
false, /* overlap_op_by_pieces */
RISCV_FUSE_NOTHING, /* fusible_ops */
NULL, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for Sifive p400 Series. */
false, /* overlap_op_by_pieces */
RISCV_FUSE_LUI_ADDI | RISCV_FUSE_AUIPC_ADDI, /* fusible_ops */
&generic_vector_cost, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for Sifive p600 Series. */
false, /* overlap_op_by_pieces */
RISCV_FUSE_LUI_ADDI | RISCV_FUSE_AUIPC_ADDI, /* fusible_ops */
&generic_vector_cost, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for T-HEAD c906. */
false, /* overlap_op_by_pieces */
RISCV_FUSE_NOTHING, /* fusible_ops */
NULL, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for xiangshan nanhu. */
false, /* overlap_op_by_pieces */
RISCV_FUSE_ZEXTW | RISCV_FUSE_ZEXTH, /* fusible_ops */
NULL, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for a generic ooo profile. */
true, /* overlap_op_by_pieces */
RISCV_FUSE_NOTHING, /* fusible_ops */
&generic_vector_cost, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
/* Costs to use when optimizing for size. */
false, /* overlap_op_by_pieces */
RISCV_FUSE_NOTHING, /* fusible_ops */
NULL, /* vector cost */
+ NULL, /* function_align */
+ NULL, /* jump_align */
+ NULL, /* loop_align */
};
static bool riscv_avoid_shrink_wrapping_separate ();