+2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/arm/arm.c (arm_unwind_emit): Use
+ crtl->all_throwers_are_sibcalls instead of
+ cfun->all_throwers_are_sibcalls.
+ (arm_output_fn_unwind): Likewise.
+ * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
+ instead of cfun->uses_pic_offset_table.
+ (frv_expand_prologue): Likewise.
+ (frv_frame_pointer_required): Likewise.
+ (frv_expand_fdpic_call): Likewise.
+ (frv_emit_movsi): Likewise.
+ * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
+ cfun->returns_pcc_struct instead of
+ current_function_returns_pcc_struct.
+ * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
+ instead of cfun->calls_eh_return.
+ (m32c_pushm_popm): Likewise.
+ * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
+ "extern" declaration.
+
2008-04-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/21636
if (!(flag_unwind_tables || crtl->uses_eh_lsda)
&& (TREE_NOTHROW (current_function_decl)
- || cfun->all_throwers_are_sibcalls))
+ || crtl->all_throwers_are_sibcalls))
return;
if (GET_CODE (insn) == NOTE || !RTX_FRAME_RELATED_P (insn))
the frame annotations. */
if (!(flag_unwind_tables || crtl->uses_eh_lsda)
&& (TREE_NOTHROW (current_function_decl)
- || cfun->all_throwers_are_sibcalls))
+ || crtl->all_throwers_are_sibcalls))
fputs("\t.cantunwind\n", f);
fputs ("\t.fnend\n", f);
|| (crtl->calls_eh_return
&& (regno >= FIRST_EH_REGNUM && regno <= LAST_EH_REGNUM))
|| (!TARGET_FDPIC && flag_pic
- && cfun->uses_pic_offset_table && regno == PIC_REGNO))
+ && crtl->uses_pic_offset_table && regno == PIC_REGNO))
{
info_ptr->save_p[regno] = REG_SAVE_1WORD;
size_1word += UNITS_PER_WORD;
|| cfun->machine->frame_needed
|| (TARGET_LINKED_FP && frame_pointer_needed)
|| (!TARGET_FDPIC && flag_pic
- && cfun->uses_pic_offset_table))
+ && crtl->uses_pic_offset_table))
{
info_ptr->save_p[LR_REGNO] = REG_SAVE_1WORD;
size_1word += UNITS_PER_WORD;
emit_insn (gen_blockage ());
/* Set up pic register/small data register for this function. */
- if (!TARGET_FDPIC && flag_pic && cfun->uses_pic_offset_table)
+ if (!TARGET_FDPIC && flag_pic && crtl->uses_pic_offset_table)
emit_insn (gen_pic_prologue (gen_rtx_REG (Pmode, PIC_REGNO),
gen_rtx_REG (Pmode, LR_REGNO),
gen_rtx_REG (SImode, OFFSET_REGNO)));
if (!current_function_sp_is_unchanging)
return TRUE;
- if (!TARGET_FDPIC && flag_pic && cfun->uses_pic_offset_table)
+ if (!TARGET_FDPIC && flag_pic && crtl->uses_pic_offset_table)
return TRUE;
if (profile_flag)
x = gen_symGOTOFF2reg (dest, addr, OUR_FDPIC_REG,
GEN_INT (R_FRV_FUNCDESC_GOTOFF12));
emit_insn (x);
- cfun->uses_pic_offset_table = TRUE;
+ crtl->uses_pic_offset_table = TRUE;
addr = dest;
}
else if (GET_CODE (addr) == SYMBOL_REF)
gen_rtx_REG (Pmode, base_regno),
GEN_INT (R_FRV_GPREL12)));
if (base_regno == PIC_REGNO)
- cfun->uses_pic_offset_table = TRUE;
+ crtl->uses_pic_offset_table = TRUE;
return TRUE;
}
break;
}
emit_insn (x);
- cfun->uses_pic_offset_table = TRUE;
+ crtl->uses_pic_offset_table = TRUE;
return TRUE;
}
/* If struct value address is treated as the first argument. */
if (aggregate_value_p (DECL_RESULT (fndecl), fndecl)
- && ! current_function_returns_pcc_struct
+ && !cfun->returns_pcc_struct
&& targetm.calls.struct_value_rtx (TREE_TYPE (fndecl), 1) == 0)
{
tree type = build_pointer_type (fntype);
{
if (fixed_regs[regno])
return 0;
- if (cfun->calls_eh_return)
+ if (crtl->calls_eh_return)
return 1;
if (regno == FP_REGNO)
return 0;
if (crtl->return_rtx
&& GET_CODE (crtl->return_rtx) == PARALLEL
- && !(cfun->calls_eh_return || cfun->machine->is_interrupt))
+ && !(crtl->calls_eh_return || cfun->machine->is_interrupt))
{
rtx exp = XVECEXP (crtl->return_rtx, 0, 0);
rtx rv = XEXP (exp, 0);
#include "xtensa-config.h"
/* Standard GCC variables that we reference. */
-extern int cfun->calls_alloca;
extern int optimize;
/* External variables defined in xtensa.c. */