gcc/
2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
PR target/64149
* config/arm/arm.option: Remove lra option and arm_lra_flag variable.
* config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flag,
replace the conditional with it's true branch.
* config/arm/arm.c (TARGET_LRA_P): Set to hook_bool_void_true.
(arm_lra_p): Remove.
gcc/testsuite/
2015-01-20 matthewhew Wahab <matthew.wahab@arm.com>
PR target/64149
* gcc.target/arm/armthumb1-far-jump-3.c: Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219884
138bc75d-0d04-0410-961f-
82ee72b054a4
+2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
+
+ PR target/64149
+ * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
+ * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
+ replace the conditional with it's true branch.
+ * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
+ (arm_lra_p): Remove.
+
2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
* config/visium/visium.h (LIB_SPEC): Adjust in default case.
/* Forward function declarations. */
static bool arm_const_not_ok_for_debug_p (rtx);
-static bool arm_lra_p (void);
static bool arm_needs_doubleword_align (machine_mode, const_tree);
static int arm_compute_static_chain_stack_bytes (void);
static arm_stack_offsets *arm_get_frame_offsets (void);
#define TARGET_LEGITIMIZE_ADDRESS arm_legitimize_address
#undef TARGET_LRA_P
-#define TARGET_LRA_P arm_lra_p
+#define TARGET_LRA_P hook_bool_void_true
#undef TARGET_ATTRIBUTE_TABLE
#define TARGET_ATTRIBUTE_TABLE arm_attribute_table
}
}
-/* Return true if we use LRA instead of reload pass. */
-static bool
-arm_lra_p (void)
-{
- return arm_lra_flag;
-}
-
/* Return true if mode/type need doubleword alignment. */
static bool
arm_needs_doubleword_align (machine_mode mode, const_tree type)
/* For the Thumb the high registers cannot be used as base registers
when addressing quantities in QI or HI mode; if we don't know the
mode, then we must be conservative. */
-#define MODE_BASE_REG_CLASS(MODE) \
- (arm_lra_flag \
- ? (TARGET_32BIT ? CORE_REGS \
- : GET_MODE_SIZE (MODE) >= 4 ? BASE_REGS \
- : LO_REGS) \
- : ((TARGET_ARM || (TARGET_THUMB2 && !optimize_size)) ? CORE_REGS \
- : ((MODE) == SImode) ? BASE_REGS \
- : LO_REGS))
+#define MODE_BASE_REG_CLASS(MODE) \
+ (TARGET_32BIT ? CORE_REGS \
+ : GET_MODE_SIZE (MODE) >= 4 ? BASE_REGS \
+ : LO_REGS)
/* For Thumb we can not support SP+reg addressing, so we return LO_REGS
instead of BASE_REGS. */
Target RejectNegative Joined Enum(arm_fpu) Var(arm_fpu_index)
Specify the name of the target floating point hardware/format
-mlra
-Target Report Var(arm_lra_flag) Init(1) Save
-Use LRA instead of reload (transitional)
-
mhard-float
Target RejectNegative Alias(mfloat-abi=, hard) Undocumented
+2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
+ PR target/64149
+ * gcc.target/arm/thumb1-far-farjump-3.c: Remove.
+
2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
PR bootstrap/64676
+++ /dev/null
-/* Catch reload ICE on target thumb1 with far jump optimization.
- * It is also a valid case for non-thumb1 target. */
-
-/* Add -mno-lra option as it is only reproducable with reload. It will
- be removed after reload is completely removed. */
-/* { dg-options "-mno-lra -fomit-frame-pointer" } */
-/* { dg-do compile } */
-
-#define C 2
-#define A 4
-#define RGB (C | A)
-#define GRAY (A)
-
-typedef unsigned long uint_32;
-typedef unsigned char byte;
-typedef byte * bytep;
-
-typedef struct ss
-{
- uint_32 w;
- uint_32 r;
- byte c;
- byte b;
- byte p;
-} info;
-
-typedef info * infop;
-
-void
-foo(infop info, bytep row)
-{
- uint_32 iw = info->w;
- if (info->c == RGB)
- {
- if (info->b == 8)
- {
- bytep sp = row + info->r;
- bytep dp = sp;
- byte save;
- uint_32 i;
-
- for (i = 0; i < iw; i++)
- {
- save = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = save;
- }
- }
-
- else
- {
- bytep sp = row + info->r;
- bytep dp = sp;
- byte save[2];
- uint_32 i;
-
- for (i = 0; i < iw; i++)
- {
- save[0] = *(--sp);
- save[1] = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = save[0];
- *(--dp) = save[1];
- }
- }
- }
- else if (info->c == GRAY)
- {
- if (info->b == 8)
- {
- bytep sp = row + info->r;
- bytep dp = sp;
- byte save;
- uint_32 i;
-
- for (i = 0; i < iw; i++)
- {
- save = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = save;
- }
- }
- else
- {
- bytep sp = row + info->r;
- bytep dp = sp;
- byte save[2];
- uint_32 i;
-
- for (i = 0; i < iw; i++)
- {
- save[0] = *(--sp);
- save[1] = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = *(--sp);
- *(--dp) = save[0];
- *(--dp) = save[1];
- }
- }
- }
-}