===================================================================
@@ -62,6 +62,7 @@ static rtx vax_function_arg (cumulative_
static void vax_function_arg_advance (cumulative_args_t,
const function_arg_info &);
static rtx vax_struct_value_rtx (tree, int);
+static bool vax_lra_p (void);
static void vax_asm_trampoline_template (FILE *);
static void vax_trampoline_init (rtx, tree, rtx);
static poly_int64 vax_return_pops_args (tree, tree, poly_int64);
@@ -114,7 +115,7 @@ static HOST_WIDE_INT vax_starting_frame_
#define TARGET_STRUCT_VALUE_RTX vax_struct_value_rtx
#undef TARGET_LRA_P
-#define TARGET_LRA_P hook_bool_void_false
+#define TARGET_LRA_P vax_lra_p
#undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P vax_legitimate_address_p
@@ -1221,6 +1222,14 @@ vax_struct_value_rtx (tree fntype ATTRIB
return gen_rtx_REG (Pmode, VAX_STRUCT_VALUE_REGNUM);
}
+/* Return true if we use LRA instead of reload pass. */
+
+static bool
+vax_lra_p (void)
+{
+ return TARGET_LRA;
+}
+
/* Output integer move instructions. */
bool
===================================================================
@@ -42,6 +42,10 @@ munix
Target RejectNegative Mask(UNIX_ASM)
Generate code for UNIX assembler.
+mlra
+Target Mask(LRA)
+Enable Local Register Allocation.
+
mvaxc-alignment
Target RejectNegative Mask(VAXC_ALIGNMENT)
Use VAXC structure conventions.
===================================================================
@@ -1364,7 +1364,7 @@ See RS/6000 and PowerPC Options.
-mbig-switch}
@emph{VAX Options}
-@gccoptlist{-mg -mgnu -munix}
+@gccoptlist{-mg -mgnu -munix -mlra}
@emph{Visium Options}
@gccoptlist{-mdebug -msim -mfpu -mno-fpu -mhard-float -msoft-float @gol
@@ -30523,6 +30523,13 @@ GNU assembler is being used.
@item -mg
@opindex mg
Output code for G-format floating-point numbers instead of D-format.
+
+@item -mlra
+@itemx -mno-lra
+@opindex mlra
+@opindex mno-lra
+Enable Local Register Allocation. This is still experimental for the VAX,
+so by default the compiler uses standard reload.
@end table
@node Visium Options