mirror of git://gcc.gnu.org/git/gcc.git
re PR rtl-optimization/60663 (Errors out on valid inline asm)
PR rtl-optimization/60663 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case, avoid 0 cost. From-SVN: r209419
This commit is contained in:
parent
9ffc6d0bc2
commit
98a2fdfba6
|
|
@ -1,3 +1,9 @@
|
||||||
|
2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/60663
|
||||||
|
* config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
|
||||||
|
avoid 0 cost.
|
||||||
|
|
||||||
2014-04-15 Richard Biener <rguenther@suse.de>
|
2014-04-15 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
* lto-streamer.h (LTO_major_version): Bump to 4.
|
* lto-streamer.h (LTO_major_version): Bump to 4.
|
||||||
|
|
|
||||||
|
|
@ -10670,10 +10670,16 @@ arm_new_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case ASM_OPERANDS:
|
case ASM_OPERANDS:
|
||||||
/* Just a guess. Cost one insn per input. */
|
{
|
||||||
*cost = COSTS_N_INSNS (ASM_OPERANDS_INPUT_LENGTH (x));
|
/* Just a guess. Guess number of instructions in the asm
|
||||||
return true;
|
plus one insn per input. Always a minimum of COSTS_N_INSNS (1)
|
||||||
|
though (see PR60663). */
|
||||||
|
int asm_length = MAX (1, asm_str_count (ASM_OPERANDS_TEMPLATE (x)));
|
||||||
|
int num_operands = ASM_OPERANDS_INPUT_LENGTH (x);
|
||||||
|
|
||||||
|
*cost = COSTS_N_INSNS (asm_length + num_operands);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
if (mode != VOIDmode)
|
if (mode != VOIDmode)
|
||||||
*cost = COSTS_N_INSNS (ARM_NUM_REGS (mode));
|
*cost = COSTS_N_INSNS (ARM_NUM_REGS (mode));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue