2010-12-02 Bernd Schmidt <email address hidden>
Issue #10089
gcc/
* expr.c (store_field): Avoid a direct store if the mode is larger
than the size of the bit field.
* stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
treat non-volatile bit fields like volatile ones.
* toplev.c (process_options): Disallow combination of
-fstrict-volatile-bitfields and ABI versions less than 2.
* config/arm/arm.c (arm_option_override): Don't enable
flag_strict_volatile_bitfields if the ABI version is less than 2.
* config/h8300/h8300.c (h8300_option_override): Likewise.
* config/rx/rx.c (rx_option_override): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/sh/sh.c (sh_option_override): Likewise.
gcc/testsuite/
* gcc.target/arm/volatile-bitfields-4.c: New test.
* c-c++-common/abi-bf.c: New test.
2010-11-26 Tom de Vries <email address hidden>
gcc/
* gcc/ee.c: New file.
* gcc/tree-pass.h (pass_ee): Declare.
* gcc/opts.c (decode_options): Set flag_ee at -O2.
* gcc/timevar.def (TV_EE): New timevar.
* gcc/common.opt (fextension-elimination): New option.
* gcc/Makefile.in (ee.o): New rule.
* gcc/passes.c (pass_ee): Add it.
* gcc/testsuite/gcc.dg/extend-4.c: New test.
* gcc/testsuite/gcc.dg/extend-1.c: New test.
* gcc/testsuite/gcc.dg/extend-2.c: New test.
* gcc/testsuite/gcc.dg/extend-2-64.c: New test.
* gcc/testsuite/gcc.dg/extend-3.c: New test.
2010-11-24 Maxim Kuvyrkov <email address hidden>
gcc/
* loop-iv.c (get_biv_step): Workaround loop analysis ICE.
2010-11-25 Andrew Stubbs <email address hidden>
Backport from mainline:
2010-10-28 Andrew Stubbs <email address hidden>
gcc/
* config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
constants in thumb2.
2010-11-24 Chung-Lin Tang <email address hidden>
2010-07-08 Ramana Radhakrishnan <email address hidden>
PR bootstrap/44768
* cfgexpand.c (estimated_stack_frame_size): Make self-contained
with respect to current_function_decl. Pass decl of the function.
* tree-inline.h (estimated_stack_frame_size): Adjust prototype.
* ipa-inline.c (compute_inline_parameters): Pass decl to
estimated_stack_frame_size.
2010-11-16 Chung-Lin Tang <email address hidden>
2010-07-21 Richard Henderson <email address hidden>
gcc/
* config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
comparison for avoiding xmm register saves. Emit the xmm register
saves explicitly.
* config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
(UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
(sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
Remove patterns and the associated splitters.
2010-07-22 Richard Henderson <email address hidden>
gcc/
PR target/45027
* config/i386/i386.c (setup_incoming_varargs_64): Force the use
of V4SFmode for the SSE saves; increase stack alignment if needed.
2010-11-16 Chung-Lin Tang <email address hidden>
Re-merge, backport from mainline:
2010-07-15 Bernd Schmidt <email address hidden>
gcc/
* postreload.c (last_label_ruid, first_index_reg, last_index_reg):
New static variables.
(reload_combine_recognize_pattern): New static function, broken out
of reload_combine.
(reload_combine): Use it. Only initialize first_index_reg and
last_index_reg once.
2010-07-17 Bernd Schmidt <email address hidden>
PR target/42235
gcc/
* postreload.c (reload_cse_move2add): Return bool, true if anything.
changed. All callers changed.
(move2add_use_add2_insn): Likewise.
(move2add_use_add3_insn): Likewise.
(reload_cse_regs): If reload_cse_move2add changed anything, rerun
reload_combine.
(RELOAD_COMBINE_MAX_USES): Bump to 16.
(last_jump_ruid): New static variable.
(struct reg_use): New members CONTAINING_MEM and RUID.
(reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
(reload_combine_split_one_ruid, reload_combine_split_ruids,
reload_combine_purge_insn_uses, reload_combine_closest_single_use
reload_combine_purge_reg_uses_after_ruid,
reload_combine_recognize_const_pattern): New static functions.
(reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
is true for our reg and that we have available index regs.
(reload_combine_note_use): New args RUID and CONTAINING_MEM. All
callers changed. Use them to initialize fields in struct reg_use.
(reload_combine): Initialize last_jump_ruid. Be careful when to
take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
Call reload_combine_recognize_const_pattern.
(reload_combine_note_store): Update REAL_STORE_RUID field.
gcc/testsuite/
* gcc.target/arm/pr42235.c: New test.
2010-07-19 Bernd Schmidt <email address hidden>
gcc/
* postreload.c (reload_combine_closest_single_use): Ignore the
number of uses for DEBUG_INSNs.
(fixup_debug_insns): New static function.
(reload_combine_recognize_const_pattern): Use it. Don't let the
main loop be affected by DEBUG_INSNs.
Really disallow moving adds past a jump insn.
(reload_combine_recognize_pattern): Don't update use_ruid here.
(reload_combine_note_use): Do it here.
(reload_combine): Use control_flow_insn_p rather than JUMP_P.
2010-07-20 Bernd Schmidt <email address hidden>
gcc/
* postreload.c (fixup_debug_insns): Remove arg REGNO. New args
FROM and TO. All callers changed. Don't look for tracked uses,
just scan the RTL for DEBUG_INSNs and substitute.
(reload_combine_recognize_pattern): Call fixup_debug_insns.
(reload_combine): Ignore DEBUG_INSNs.
2010-07-22 Bernd Schmidt <email address hidden>
PR bootstrap/44970
PR middle-end/45009
gcc/
* postreload.c: Include "target.h".
(reload_combine_closest_single_use): Don't take DEBUG_INSNs
into account.
(fixup_debug_insns): Don't copy the rtx.
(reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
Don't copy when replacing. Call fixup_debug_insns in the case where
we merged one add with another.
(reload_combine_recognize_pattern): Fail if there aren't any uses.
Try harder to determine whether we're picking a valid index register.
Don't set store_ruid for an insn we're going to scan in the
next iteration.
(reload_combine): Remove unused code.
(reload_combine_note_use): When updating use information for
an old insn, ignore a use that occurs after store_ruid.
* Makefile.in (postreload.o): Update dependencies.
2010-07-27 Bernd Schmidt <email address hidden>
gcc/
* postreload.c (reload_combine_recognize_const_pattern): Move test
for limiting the insn movement to the right scope.
2010-07-27 Bernd Schmidt <email address hidden>
gcc/
* postreload.c (try_replace_in_use): New static function.
(reload_combine_recognize_const_pattern): Use it here. Allow
substituting into a final add insn, and substituting into a memory
reference in an insn that sets the reg.
2010-11-26 Andrew Stubbs <email address hidden>
Merge from FSF 4.5 branch r167157 (pre 4.5.2).
2010-11-24 Richard Sandiford <email address hidden>
Launchpad #618684
Backport from mainline:
2010-04-10 Bernd Schmidt <email address hidden>
* reload1.c (eliminate_regs_in_insn): Don't restore an operand
if doing so would replace the entire pattern.
2010-11-24 Maxim Kuvyrkov <email address hidden>
gcc/
* combine.c (subst, combine_simlify_rtx): Add new argument, use it
to track processing of conditionals. Update all callers.
(try_combine, simplify_if_then_else): Update.
2010-11-08 Yao Qi <email address hidden>
Backport from mainline:
gcc/
2010-08-02 Bernd Schmidt <email address hidden>
* config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
if statement which adds extra costs to frame-related
expressions.
2010-11-3 Chung-Lin Tang <email address hidden>
Backport from mainline:
2010-11-02 Chung-Lin Tang <email address hidden>
gcc/
* Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
explicitly disable stack protection when building libgcc.
(CRTSTUFF_CFLAGS): Same, for crtbegin/end.
2010-10-29 Julian Brown <email address hidden>
Launchpad #629671
gcc/
* config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
from CORE_REGS and GENERAL_REGS classes.
* config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of final
constraint for register preferencing.
2010-11-03 Nathan Froyd <email address hidden>
Issue #10002
gcc/
* config/arm/arm.c (arm_legitimate_index_p): Split
VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases. Permit
slightly larger constants in the latter case.
(thumb2_legitimate_index_p): Likewise.