Commit 08e931f3 by Richard Sandiford Committed by Richard Sandiford

defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.

gcc/
	* defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
	* expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
	* expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
	* lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
	(simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.

From-SVN: r192992
parent 63cf7260
2012-10-30 Richard Sandiford <rdsandiford@googlemail.com>
* defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
* expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
* expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
* lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
(simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.
2012-10-30 Jan Hubicka <jh@suse.cz>
* ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup.
......@@ -1218,6 +1218,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define ATTRIBUTE_ALIGNED_VALUE BIGGEST_ALIGNMENT
#endif
#ifndef SLOW_UNALIGNED_ACCESS
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT
#endif
/* For most ports anything that evaluates to a constant symbolic
or integer value is acceptable as a constant address. */
#ifndef CONSTANT_ADDRESS_P
......
......@@ -69,11 +69,6 @@ static rtx expand_sdiv_pow2 (enum machine_mode, rtx, HOST_WIDE_INT);
/* Test whether a value is zero of a power of two. */
#define EXACT_POWER_OF_2_OR_ZERO_P(x) (((x) & ((x) - 1)) == 0)
#ifndef SLOW_UNALIGNED_ACCESS
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT
#endif
/* Reduce conditional compilation elsewhere. */
#ifndef HAVE_insv
#define HAVE_insv 0
......
......@@ -190,12 +190,6 @@ static void write_complex_part (rtx, rtx, bool);
< (unsigned int) MOVE_RATIO (optimize_insn_for_speed_p ()))
#endif
/* SLOW_UNALIGNED_ACCESS is nonzero if unaligned accesses are very slow. */
#ifndef SLOW_UNALIGNED_ACCESS
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT
#endif
/* This is run to set up which modes can be used
directly in memory and to initialize the block move optab. It is run
at the beginning of compilation and when the target is reinitialized. */
......
......@@ -1107,10 +1107,6 @@ process_addr_reg (rtx *loc, rtx *before, rtx *after, enum reg_class cl)
return true;
}
#ifndef SLOW_UNALIGNED_ACCESS
#define SLOW_UNALIGNED_ACCESS(mode, align) 0
#endif
/* Make reloads for subreg in operand NOP with internal subreg mode
REG_MODE, add new reloads for further processing. Return true if
any reload was generated. */
......@@ -1134,8 +1130,7 @@ simplify_operand_subreg (int nop, enum machine_mode reg_mode)
address might violate the necessary alignment or the access might
be slow. So take this into consideration. */
if ((MEM_P (reg)
&& ((! STRICT_ALIGNMENT
&& ! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (reg)))
&& (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (reg))
|| MEM_ALIGN (reg) >= GET_MODE_ALIGNMENT (mode)))
|| (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER))
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment