| 2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR driver/33772 |
| * collect2.c (SHLIB_SUFFIX): Define if not defined. |
| (write_c_file_stat): Use SHLIB_SUFFIX. |
| * som.h (SHLIB_SUFFIX): Define. |
| * doc/tm.texi (SHLIB_SUFFIX): Document. |
| |
| 2007-12-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3". |
| ("*sse_rsqrtv4sf2"): Export. |
| ("*sse_sqrtv4sf2"): Ditto. |
| * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR, |
| IX86_BUILTIN_SQRTPS_NR]: New constants. |
| (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use |
| CODE_FOR_sse_divv4sf3. |
| [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2. |
| [IX86_BUILTIN_SQRTPS_NR]: New. |
| [IX86_BUILTIN_RSQRTPS_NR]: Ditto. |
| (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and |
| __builtin_ia32_sqrtps_nr. |
| (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to |
| IX86_BUILTIN_SQRTPS_NR. |
| (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to |
| IX86_BUILTIN_RSQRTPS_NR. |
| |
| 2007-12-27 Brian Dessent <brian@dessent.net> |
| |
| * doc/invoke.texi (Optimize Options): Add missing opindex for |
| -fno-toplevel-reorder. |
| |
| 2007-12-27 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/34591 |
| * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip |
| stmts (including reduction stmts) that are not live. |
| |
| 2007-12-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/34281 |
| * config/arm/arm.c (arm_setup_incoming_varargs): If last named |
| argument needs double word alignment and cum->nregs is odd, account |
| for the inserted padding. |
| |
| PR debug/34535 |
| * tree-mudflap.c (mf_make_builtin): Make decl artificial |
| and don't emit debug info for it. |
| |
| 2007-12-26 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 |
| and AT90USB162 devices from 'avr5' to 'avr35' architecture. |
| (ASM_SPEC): Add 'avr35' architecture. |
| * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 |
| devices from 'avr5' to 'avr35' architecture. |
| (avr_arch_types): Add "avr23" entries. |
| (avr_arch): Add 'ARCH_AVR35'. |
| * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'. |
| (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5' |
| to 'avr35' architecture. |
| |
| 2007-12-22 David Daney <ddaney@avtrex.com> |
| |
| * doc/install.texi (disable-libgcj-bc): Document new option. |
| |
| 2007-12-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in |
| mask selection. |
| |
| PR target/34525 |
| * pa.c (legitimize_pic_address): Emit insn to load function label |
| forced to memory. |
| |
| 2007-12-21 Andrew Pinski <pinskia@gmail.com> |
| Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/8835 |
| * config/mcore/mcore.c (mcore_function_value): Call promote_mode |
| instead of PROMOTE_MODE. |
| |
| 2007-12-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo. |
| |
| 2007-12-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-data-ref.c (signed_type_for_types): New. |
| (affine_fn_op): Use signed_type_for_types and signed_type_for instead |
| of long_integer_type_node. |
| (analyze_ziv_subscript): Same. |
| (analyze_siv_subscript_cst_affine): Same. |
| (analyze_miv_subscript): Same. |
| (omega_setup_subscript): Same. |
| |
| 2007-12-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with |
| separate gen_*_si and gen_*_di calls. Pass pic_offset_table_rtx |
| as the first argument. |
| * config/mips/mips.md (loadgp_newabi, loadgp_absolute) |
| (loadgp_rtp): Rename to... |
| (loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>): |
| ...these. Add modes to all operands. Add the target register |
| as an operand. Combine loadgp_rtp<mode> with its splitter. |
| |
| 2007-12-20 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.md (fix_return_addr): Remove. |
| * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New. |
| (xtensa_trampoline_template): New. |
| * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h. |
| (xtensa_return_addr): Expand to standard Xtensa insns instead of |
| fix_return_addr. Get high bits from a local label. |
| (xtensa_trampoline_template): New function with code moved from |
| TRAMPOLINE_TEMPLATE in xtensa.h. Use L32R instead of CALL0 except |
| when using CONST16 or absolute-mode literals. |
| (xtensa_initialize_trampoline): New function with code moved from |
| INITIALIZE_TRAMPOLINE in xtensa.h. Use different offsets depending |
| on which trampoline version is used. |
| * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment. |
| * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define. |
| (MIN_FRAME_SIZE): Moved to xtensa.c. |
| (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template. |
| (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes. |
| (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline. |
| * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define. |
| (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3 |
| helper when not using the CALL0 ABI. Change .Lmul_mulsi3 to match. |
| * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise. |
| * config/xtensa/ieee754-sf.S (__mulsf3): Likewise. |
| |
| 2007-12-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/34459 |
| * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if |
| USE_STMT not only stores into the same object as STMT, but might |
| read it too. |
| |
| 2007-12-19 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/34413 |
| * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript, |
| analyze_siv_subscript_cst_affine, analyze_miv_subscript, |
| omega_setup_subscript): Use long_integer_type_node instead of |
| integer_type_node. |
| |
| 2007-12-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/34525 |
| * pa.c (legitimize_pic_address): Force function labels into memory. |
| |
| 2007-12-19 Zdenek Dvorak <ook@ucw.cz> |
| |
| * omp-low.c (build_omp_regions_1): Recognition of combined parallels |
| moved ... |
| (expand_omp): ... here. |
| |
| 2007-12-19 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/34355 |
| * tree-parloops.c (take_address_of): Handle expresions |
| instead of just variables. |
| (eliminate_local_variables_1): Force whole invariant |
| address to ssa name. |
| |
| 2007-12-19 Alexander Monakov <amonakov@ispras.ru> |
| Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (generate_reg_moves): Insert the reg-moves |
| right before the notes which precedes the insn, if they exists. |
| (loop_canon_p): Add dump info. |
| (sms_schedule): Likewise. |
| |
| 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter. |
| * emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the |
| rtl's register attributes when the parameter is true. |
| * function.c (assign_parms_unsplit_complex, assign_parms) |
| (expand_function_start): Update calls to set_decl_incoming_rtl. |
| |
| 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * rtl.def (SUBREG): Update comments. |
| * rtl.h (reg_attrs): Be explicit about the type of offset used. |
| (set_reg_attrs_from_mem): Rename to... |
| (set_reg_attrs_from_value): ...this. |
| (adjust_reg_mode, byte_lowpart_offset): Declare. |
| * emit-rtl.c (byte_lowpart_offset): New function. |
| (update_reg_offset): Remove special offset handling for big-endian |
| targets. |
| (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the |
| offset parameter is added to REG_OFFSET. |
| (adjust_reg_mode): New function. |
| (set_reg_attrs_for_mem): Rename to... |
| (set_reg_attrs_for_value): ...this and generalize to all values. |
| If the register is a lowpart of the value, adjust the offset |
| accordingly. |
| (set_reg_attrs_for_parm): Update after the above renaming. |
| (set_reg_attrs_for_decl_rtl): New function, split out from |
| set_decl_incoming_rtl. Set the offset of plain REGs to the |
| offset of the REG's mode from the decl's. Assert that all |
| subregs are lowparts and handle their inner registers in the |
| same way as plain REGs. |
| (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl. |
| (subreg_lowpart_offset): Explicitly say that the returned offset |
| is a SUBREG_BYTE. |
| * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode |
| instead of PUT_MODE. |
| * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset. |
| * config/ia64/ia64.c (ia64_expand_load_address): Likewise. |
| * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value. |
| * reload.c (find_reloads_subreg_address): Call set_mem_offset |
| when offseting a MEM. |
| * var-tracking.c (offset_valid_for_tracked_p): Delete. |
| (mode_for_reg_attrs): Replace with... |
| (track_loc_p): ...this new function. Return the mode and offset |
| to the caller, checking that the latter is valid. If the rtx is |
| a paradoxical lowpart of the decl, use the decl's mode instead. |
| Do the same when storing to a register that contains the entire decl. |
| (var_lowpart): Use byte_lowpart_offset rather than |
| subreg_lowpart_offset when adjusting the offset attribute. |
| (count_uses, add_uses, add_stores): Use track_reg_p instead of |
| REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p, |
| offset_valid_for_tracked_p and mode_for_reg_attrs. Generate |
| lowparts for MEMs as well as REGs. |
| (vt_add_function_parameters): When obtaining the information from |
| the decl_rtl, adjust the offset to match incoming. Use track_loc_p |
| and var_lowpart. |
| |
| 2007-12-18 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/34123 |
| * lambda-code.c (can_duplicate_iv): New. |
| (cannot_convert_modify_to_perfect_nest): New. |
| (cannot_convert_bb_to_perfect_nest): New. |
| (can_convert_to_perfect_nest): Split up. |
| |
| 2007-12-18 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation |
| instead of .set push and .set pop. |
| |
| 2007-12-18 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/33474 |
| * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find |
| the SET. |
| |
| 2007-12-18 Razya Ladelsky <razya@il.ibm.com> |
| |
| * tree-parloops.c (reduiction_info): Change documentation of |
| reduction_initial field. |
| (initialize_reductions): Remove creation of reduction_initial variable. |
| (create_loads_for_reductions): don't join reduction_initial to |
| the loaded value. |
| |
| 2007-12-18 Kaz Kylheku <kaz@zeugmasystems.com> |
| |
| PR rtl-optimization/34456 |
| * resource.c (mark_set_resources): Use regs_invalidated_by_call |
| rather than call_used_regs and global_regs. |
| |
| 2007-12-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/34490 |
| * simplify-rtx.c (simplify_const_relational_operation): If !sign, |
| don't reduce mmin/mmax using num_sign_bit_copies. |
| |
| 2007-12-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * doc/install.texi: Change recommended MPFR from 2.2.1 -> 2.3.0. |
| |
| 2007-12-17 Andreas Schwab <schwab@suse.de> |
| |
| * doc/invoke.texi (Warning Options): Use @itemx. |
| |
| 2007-12-17 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * tree-vectorizer.h (verbosity_levels): Add new verbosity level |
| REPORT_COST. |
| * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change |
| verbosity level to REPORT_COST. |
| (vect_model_reduction_cost): Likewise. |
| (vect_model_induction_cost): Likewise. |
| (vect_model_simple_cost): likewise. |
| (vect_model_store_cost): likewise. |
| (vect_model_load_cost): likewise. |
| (conservative_cost_threshold): Likewise. Remove print. |
| |
| 2007-12-17 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos. |
| |
| 2007-12-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/34506 |
| * c-parser.c (c_parser_omp_all_clauses): Accept optional comma |
| in between clauses. |
| |
| 2007-12-17 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/34445 |
| * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip |
| stmts (including live stmts) that are not relevant. |
| |
| 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| PR target/34025 |
| * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS). |
| * config/i386/t-crtfm: Likewise. |
| |
| 2007-12-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define. |
| |
| 2007-12-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * tree-vect-transform.c (conservative_cost_threshold): Add missing |
| space to "not vectorized" message. |
| |
| 2007-12-16 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR rtl-optimization/34415 |
| * df.h (DF_LR_IN, DF_LR_OUT): Update comments. |
| * resource.c (mark_target_live_regs): Use DF_LR_IN rather than |
| df_get_live_in. Don't handle pseudos. |
| |
| 2007-12-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/34003 |
| * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl. |
| * config/pa/pa.c (pa_encode_section_info): If !first, preserve |
| SYMBOL_FLAG_REFERENCED flag. |
| |
| 2007-12-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree.c (type_hash_add): Fix whitespace. |
| |
| 2007-12-15 Hans-Peter Nilsson <hp@axis.com> |
| |
| Add CRIS v32 support. Fix -mcc-init. |
| * config.gcc: Make crisv32-* have cpu_type cris. Handle |
| crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none |
| but without multilibs and with target_cpu_default=32. |
| (crisv32-*-linux*): Handle as cris-*-linux*. Set |
| target_cpu_default to 32 and 10 accordingly. |
| * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro. |
| (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME. |
| Change regno_dir and regno only if !TARGET_V32. |
| (cris_conditional_register_usage): If TARGET_V32, set |
| reg_alloc_order as per REG_ALLOC_ORDER_V32 and make |
| CRIS_ACR_REGNUM non-fixed. |
| (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM. |
| (cris_print_operand) <case 'Z', case 'u'>: New cases. |
| <case REG of case 'H'>: Allow for CRIS_SRP_REGNUM. |
| (cris_reload_address_legitimized): Always return false for TARGET_V32. |
| (cris_register_move_cost): New function, guts from |
| REGISTER_MOVE_COST adjusted for CRIS v32. |
| (cris_normal_notice_update_cc): New function split out from... |
| (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for |
| TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV, |
| CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW |
| for CC_NOOV32 and TARGET_V32. |
| (cris_simple_epilogue): Always return false for TARGET_V32 if |
| cris_return_address_on_stack yields true. |
| (cris_cc0_user_requires_cmp): New function. |
| (cris_valid_pic_const): Add argument ANY_OPERAND. All callers |
| changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL. |
| (cris_asm_output_case_end): New function, guts from |
| ASM_OUTPUT_CASE_END adjusted for CRIS v32. |
| (cris_override_options): Adjust for CRIS v32. Mask out |
| TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32. |
| (cris_asm_output_mi_thunk, cris_expand_epilogue) |
| (cris_gen_movem_load, cris_emit_movem_store) |
| (cris_expand_pic_call_address, cris_asm_output_symbol_ref) |
| (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust |
| for CRIS v32. |
| (cris_split_movdx): Copy re-used MEM. |
| * config/cris/t-elfmulti: Add multilib v32 for -march=v32. |
| * config/cris/predicates.md |
| ("cris_general_operand_or_pic_source"): New predicate. |
| ("cris_general_operand_or_plt_symbol"): Replace by... |
| ("cris_nonmemory_operand_or_callable_symbol"): New predicate. |
| * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for |
| presence and contents. |
| (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for |
| v32, 0 otherwise. |
| (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC, |
| CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT. |
| (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH. |
| * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents. |
| (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT) |
| (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros. |
| (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use |
| CRIS_DEFAULT_TUNE. |
| (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT. |
| (ASM_SPEC): Add sanity-check erroring out when both -march= and |
| -mcpu= are specified. Pass on either as --march=v32. |
| (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are |
| specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION. |
| (CRIS_CPU_V32): New macro. |
| [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE. |
| [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default |
| TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition. |
| Define v32-adjusted TARGET_DEFAULT. |
| (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from |
| CRIS_CPU_BASE. |
| (TARGET_V32): New macro. |
| (REG_ALLOC_ORDER_V32): New macro. |
| (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes |
| into CRIS_ACR_REGNUM. |
| (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS |
| and SPEC_GENNONACR_REGS. |
| (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes. |
| (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM. |
| (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC |
| GENNONACR_REGS, BASE_REG_CLASS otherwise. |
| (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS. |
| (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC |
| for CRIS_ACR_REGNUM. |
| (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred. |
| (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO. |
| (EXTRA_CONSTRAINT): New constraint 'U'. |
| (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE) |
| (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32. |
| (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM. |
| (SIMPLE_ADDRESS_P): Remove. |
| (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant |
| SIMPLE_ADDRESS_P. Make one chained if-else, finishing as |
| non-match after BASE_OR_AUTOINCR_P for TARGET_V32. |
| (REGISTER_MOVE_COST): Just call the new function |
| cris_register_move_cost. |
| (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to |
| cris_rel_symbol. All users changed. |
| (REGISTER_NAMES): Replace "pc" with "acr". |
| (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15. |
| (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence. |
| (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax. |
| (ASM_OUTPUT_CASE_END): Just call the new function |
| cris_asm_output_case_end. |
| * gcc/config/cris/cris.md: Group related constants together, with |
| comments local. |
| (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL) |
| (CRIS_UNSPEC_CASESI): New constants. |
| (CRIS_UNSPEC_PLT): Remove constant. |
| (CRIS_ACR_REGNUM): New constant. |
| ("slottable"): New attr alternatives "has_return_slot" and |
| "has_call_slot". |
| ("cc"): New attr alternatives "noov32" and "rev". |
| ((eq_attr "slottable" "has_call_slot")) |
| ((eq_attr "slottable" "has_return_slot")): New define_delays. |
| ("movdi", "movsi"): Adjust operands for CRIS v32. |
| ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3") |
| ("indirect_jump"): Ditto. Make define_expand. |
| ("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp") |
| ("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32") |
| ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32") |
| ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32") |
| ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32") |
| ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32") |
| ("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32") |
| ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32") |
| ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32") |
| ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32") |
| ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32") |
| ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns, |
| for the corresponding standard name. |
| ("tst<mode>"): Limit to BW and make define_expand. |
| ("tstsi"): Make separate insn, adjusting for CRIS v32. |
| ("*cmp_swapext<mode>"): Adjust for v32. Specify "rev" for attr "cc". |
| ("cmpsi", "cmp<mode>"): Remove special cases for zero. Specify |
| attr "cc". |
| ("*btst"): Don't match for TARGET_CCINIT. Replace test of |
| register with compatible "cmpq 0". Specify attr "cc". |
| ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and |
| define_split. |
| (define_split for DI move): Match CRIS v32 only. |
| ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32. |
| ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32") |
| ("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32") |
| ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32") |
| ("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32") |
| ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns. |
| ("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand. |
| ("sub<mode>3"): Ditto subsi3, subhi3 and subqi3. |
| ("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3. |
| ("*extopqihi_non_v32"): Replace "*extopqihi". |
| ("*extop<mode>si_non_v32"): Replace "*extop<mode>si". |
| ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make |
| non-v32 only. |
| ("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap". |
| ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi". |
| ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi". |
| ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart". |
| ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart". |
| ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from |
| "cris_general_operand_or_plt_symbol" to "general_operand". |
| ("*expanded_call_value_non_v32") Ditto "*expanded_call_value". |
| ("*casesi_adds_w", "mstep_shift", "mstep_mul") |
| ("*expanded_call_side", "*expanded_call_value_side") |
| (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped) |
| (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz) |
| (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only. |
| ("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3") |
| ("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3") |
| ("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2") |
| ("cris_swap_bits"): Specify "noov32" for attr "cc". |
| ("<su>mulsi3_highpart"): Ditto. Correct operand 0 to register_operand. |
| ("andqi3"): Make define_expand. |
| ("*return_expanded"): For attr "slottable", change from "has_slot" |
| to "has_return_slot". |
| ("cris_casesi_non_v32"): New pattern, old contents of "casesi". |
| ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32". |
| (moversideqi, movemsideqi, mover2side): Require |
| TARGET_SIDE_EFFECT_PREFIXES. |
| (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT |
| to CRIS_UNSPEC_PLT_GOTREL. |
| * config/cris/cris-protos.h (cris_register_move_cost) |
| (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare. |
| |
| 2007-12-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/7081 |
| * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h. |
| (is_type_die): Cover interface types. |
| (class_or_namespace_scope_p): Cover interface and class types. |
| (record_type_tag): New. |
| (gen_inlined_structure_type_die): Use it. |
| (gen_struct_or_union_type_die): Likewise. |
| (prune_unused_types_walk): Cover interface types. |
| * langhooks.h (classify_record): New enum. |
| (classify_record): New member in struct langhooks_for_types. |
| * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New. |
| (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust. |
| |
| 2007-12-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| * dwarf2out.c (reference_to_unused): Don't emit strings in |
| initializers just because of debug information. |
| * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs. |
| |
| 2007-12-15 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace |
| print_loop_ir with print_loops. |
| * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num, |
| print_loops, print_loops_bb): Declare. |
| * tree-cfg.c (print_loops_bb): New. |
| (print_loop): Print header, latch, bounds, estimation of iterations. |
| (print_loop_and_siblings): New. |
| (print_loop_ir): Renamed print_loops. |
| (debug_loop_ir): Renamed debug_loops. |
| (debug_loop, debug_loop_num): New. |
| |
| 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment. |
| |
| 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| * toplev.c (process_options): Fix typo in warning. |
| |
| 2007-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/29978 |
| * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU |
| DImode comparisons against constant with all 1's in the lower word. |
| |
| 2007-12-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand |
| constraint for operand 2. Use nonimm_not_xmm0_operand constraint |
| for operand 4. Update arguments in the call to |
| gen_sse4_2_pcmpestr_cconly. |
| (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn |
| template accordingly. |
| (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2. |
| Use nonimm_not_xmm0_operand constraint for operand 3. Update |
| arguments in the call to gen_sse4_2_pcmpistr_cconly. |
| (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn |
| template accordingly. |
| |
| 2007-12-14 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34462 |
| * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add |
| parameter to say whether to unlink immediate uses. |
| * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not |
| mark the artificial stmt as modified. Unlink immediate uses |
| only if requested. |
| * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller. |
| * tree-ssa-pre.c (insert_fake_stores): Likewise. |
| |
| 2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR middle-end/33088 |
| * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment. |
| * tree-complex.c (init_dont_simulate_again): Return true if there are |
| uninitialized loads generated by gimplify_modify_expr_complex_part. |
| * tree-gimple.c (is_gimple_reg_type): Return false for complex types |
| if not optimizing. |
| * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from... |
| (warn_uninit): ...here. Use ssa_undefined_value_p. |
| * tree-ssa-pre.c (is_undefined_value): Delete. |
| (phi_translate_1): Use ssa_undefined_value_p. |
| (add_to_exp_gen): Likewise. |
| (make_values_for_stmt): Likewise. |
| * tree-flow.h (ssa_undefined_value_p): Declare. |
| |
| 2007-12-13 Andrew Pinski <pinskia@gmail.com> |
| David Daney <ddaney@avtrex.com> |
| |
| PR bootstrap/34144 |
| * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING |
| is disabled. |
| |
| 2007-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/32636 |
| * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx |
| regno in entry_block_defs even if HAVE_prologue && epilogue_completed. |
| |
| 2007-12-13 Uros Bizjak <ubizjak@gmail.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR target/34435 |
| * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16, |
| _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16, |
| _mm_shuffle_epi32): Cast non-constant input values to either __m64, |
| __m128, __m128i or __m128d in a macro version of the intrinsic. |
| Cast constant input values to int. |
| * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto. |
| * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16, |
| _mm_roti_epi32, _mm_roti_epi64): Ditto. |
| * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd, |
| _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8, |
| _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32, |
| _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri, |
| _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro, |
| _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro, |
| _mm_cmpestrs, _mm_cmpestrz): Ditto. |
| * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto. |
| * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw, |
| _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto. |
| * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd, |
| _mm_round_ps, _mm_round_ss): Ditto. |
| |
| 2007-12-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34450 |
| * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param. |
| * invoke.texi (sccvn-max-scc-size): Document. |
| * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency. |
| * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false |
| on error. |
| * tree-ssa-sccvn.c (params.h): Include. |
| (DFS): Return true if all went well, return false as soon as |
| a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE. |
| (run_scc_vn): Return true if all went well, return false if |
| we aborted during DFS. |
| * tree-ssa-pre.c (execute_pre): Check if SCCVN finished |
| successfully, otherwise bail out. |
| |
| 2007-12-13 Olga Golovanevsky <olga@il.ibm.com> |
| |
| * ipa-struct-reorg.c (is_candidate): Print information to dump |
| file when the type is initialized. |
| (get_stmt_accesses): Likewise when a structure has bitfields |
| or field access is too complicate. |
| (safe_cond_expr_check): Likewise for unsafe condition expressions. |
| (exclude_cold_structs): Likewise for cold structures. |
| (collect_structures): Suppress redundant print when there are |
| no structures to transform. |
| (do_reorg): Print to dump file a number of structures that |
| will be transformed. |
| (dump_new_types): Print a number of new types to replace |
| an original structure type. |
| |
| 2007-12-13 Olga Golovanevsky <olga@il.ibm.com> |
| |
| * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg |
| option and struct-reorg-cold-struct-ratio parameter. |
| |
| 2007-12-13 Torbjorn Granlund <tege@swox.com> |
| |
| * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for |
| ZERO_EXTEND when computing costs for widening multiplication. |
| |
| 2007-12-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/30192 |
| * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on |
| exit when using hard FPA. |
| * config/arm/ieee754-df.S (floatdidf): Likewise. |
| |
| 2007-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/30589 |
| * doc/install.texi: Document that for MinGW only runtime 3.12 and |
| later is supported. |
| |
| 2007-12-12 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE. |
| |
| 2007-12-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/32901 |
| * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we |
| are assigning from a constant constructor. |
| Fix wrapping in function comment. |
| |
| 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.c (s390_O_constraint_str): Limit the range |
| for 'On' to -4G+1..-1. |
| * config/s390/constraints.md: Adjust comment accordingly. |
| |
| 2007-12-11 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx |
| for SPE saves. |
| |
| 2007-12-11 Kai Tietz <kai.tietz@onevision.com> |
| |
| * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit |
| target same as 32-bit. |
| |
| 2007-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/34371 |
| * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged |
| field. |
| (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field. |
| * tree-vectorizer.c (set_prologue_iterations, |
| slpeel_tree_peel_loop_to_edge): Call unshare_expr on |
| LOOP_VINFO_NITERS_UNCHANGED before using it. |
| |
| 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR target/34403 |
| * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large. |
| (ix86_expand_setmem): Likewise. |
| |
| 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR rtl-optimization/34302 |
| * auto-inc-dec.c (attempt_change): Change place where move is |
| inserted. |
| |
| 2007-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For |
| Fortran multi-dimensional arrays use DW_AT_ordering |
| DW_ORD_col_major. |
| |
| 2007-12-10 Paolo Bonzini <bonzini@gnu.org> |
| |
| PR target/32086 |
| * config/i386/i386.c (override_options): Enable -fvect-cost-model. |
| |
| 2007-12-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_function_regparm): Do not check global_regs |
| array, registers that are members of global_regs are also members of |
| fixed_regs array. Use REGPARM_MAX to check that no regparm hard |
| register is taken by a fixed register variable. Check up to and |
| including DI_REG when adjusting regparm value due to fixed regs usage. |
| (rep_prefix_usable): Check fixed_regs array, not global_regs array for |
| available hard registers. |
| (ix86_expand_strlen): Ditto. |
| * config/i386/i386.md (strmov): Ditto. |
| (cmpstrnsi): Ditto. |
| |
| 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * genopinit.c: Include tm_p.h in generated file. |
| |
| * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL |
| to extract the integer from operands[2]. |
| (vec_setv2di_internal): Likewise. |
| |
| * config/arm/arm.c (arm_size_return_regs): Make return type unsigned. |
| (arm_init_neon_builtins): Move code after declarations. |
| |
| 2007-12-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| * reload.c (find_reloads_address_1): To properly mark as an |
| autoincdec, pass X for non-NULL OUT in call to push_reload for |
| autoincdec which can't be trivially used as an address. |
| |
| 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com> |
| Hans-Peter Nilsson <hp@axis.com> |
| |
| * caller-save.c (insert_one_insn): If inserting before a call_insn |
| then the registers containing the arguments of the call are |
| live_throughout in the new insn. |
| |
| 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/32889 |
| PR target/34091 |
| * pa.md: Consolidate HImode and QImode move patterns into one pattern |
| each, eliminating floating-point alternatives. |
| * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p): |
| Declare functions. |
| * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here. |
| * pa.c (pa_secondary_reload): Use an intermediate general register |
| for copies to/from floating-point register classes. Simplify code |
| SHIFT_REGS class. Provide additional comments. |
| (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions. |
| * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p. |
| (SECONDARY_MEMORY_NEEDED): Delete define. |
| (INT14_OK_STRICT): Define. |
| (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using |
| soft float. |
| (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise. |
| (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for |
| SFmode and DFmode. |
| (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection. |
| Align DImode offsets when generating 64-bit code. |
| * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. |
| (CANNOT_CHANGE_MODE_CLASS): Define. |
| * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. |
| (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class. |
| |
| 2007-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/22244 |
| * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. |
| * langhooks.h (struct array_descr_info): Forward declaration. |
| (struct lang_hooks_for_types): Add get_array_descr_info field. |
| * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New. |
| (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2 |
| compatibility. |
| * dwarf2out.h (struct array_descr_info): New type. |
| * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to |
| DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size. |
| (descr_info_loc, add_descr_info_field, gen_descr_array_type_die): |
| New functions. |
| (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info |
| and gen_descr_array_type_die. |
| |
| 2007-12-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34391 |
| * tree-vect-transform.c (vect_setup_realignment): Mark new |
| symbols for renaming. |
| |
| 2007-12-07 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. |
| (ASM_OUTPUT_DWARF_PCREL): Define. |
| |
| 2007-12-07 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34382 |
| * opts.c (common_handle_option): Handle OPT_fforce_addr. |
| |
| 2007-12-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win. |
| (LEGITIMIZE_RELOAD_ADDRESS): Same. |
| |
| 2007-12-07 Samuel Tardieu <sam@rfc1149.net> |
| |
| PR ada/29157 |
| * doc/install.texi: Explain how to check for a clean environment when |
| building GNAT. |
| |
| 2007-12-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree-profile.c (gcov_type_tmp_var): New global variable. |
| (tree_gen_edge_profiler): Use a single shared variable decl per |
| function for edge counter incrementing. |
| (tree_profiling): Re-set the shared variable. |
| |
| 2007-12-06 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (xtensa_va_start): Add prototype. |
| |
| 2007-12-06 Tom Tromey <tromey@redhat.com> |
| |
| PR c/29172 |
| * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache. |
| |
| 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_function_ok_for_sibcall): Check |
| targetm.binds_local_p as well as DECL_EXTERNAL. |
| |
| 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition. |
| (set_prologue_iterations): New. Set the prologue iterations to total |
| number of scalar iterations if the cost model check indicates that |
| scalar code should be generated. |
| (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for |
| generating the cost condition for epilog. Call |
| set_prologue_iterations to generate cost condition for prolog. |
| (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED. |
| * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New. |
| (slpeel_tree_peel_loop_to_edge): Update declaration. |
| (set_prologue_iterations): New declaration. |
| * tree-vect-analyze.c (vect_analyze_loop_form): Update |
| LOOP_VINFO_NITERS_UNCHANGED. |
| * tree-vect-transform.c |
| (vect_estimate_min_profitable_iters): Add new parameter and |
| code to check if run time cost model test is needed. |
| Remove code that adds builtin vectorization cost to scalar |
| outside cost for the run time cost model test. If run time |
| cost model test is needed add the appropriate guard cost to |
| the scalar outside cost. The guard cost depends on whether |
| the guard is generated at versioning or at prolog generation |
| or at epilog generation. Change cost model equation to include |
| scalar outside cost. |
| (conservative_cost_threshold): New. Return the less conservative |
| profitability threshold between the cost model threshold and the |
| user defined vectorization threshold. |
| (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold. |
| (vect_do_peeling_for_alignment): Same. |
| (vect_loop_versioning): Same. |
| (vect_create_cond_for_align_checks): ANDs the cost model condition |
| with the alignment condition. |
| (vect_transform_loop): Call loop versioning only when there is a |
| misalignment or an aliasing problem. |
| |
| 2007-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/20983 |
| * tree-ssa-ccp.c (optimize_stdarg_builtin): New function. |
| (execute_fold_all_builtins): Call it for BUILT_IN_VA_START, |
| BUILT_IN_VA_COPY and BUILT_IN_VA_END. |
| |
| * target.h (struct ggc_target): Add expand_builtin_va_start hook. |
| * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| (TARGET_INITIALIZER): Add it. |
| * builtins.c (expand_builtin_va_start): Use |
| targetm.expand_builtin_va_start hook instead of |
| EXPAND_BUILTIN_VA_START macro. |
| * alpha/alpha.c (alpha_va_start): Made static. |
| (override_options): Clear targetm.expand_builtin_va_start if |
| TARGET_UNICOSMK. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove. |
| * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove. |
| * alpha/alpha-protos.h (alpha_va_start): Remove prototype. |
| * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove. |
| * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| (xtensa_va_start): Made static. |
| * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype. |
| * pa/pa-protos.h (hppa_va_start): Remove prototype. |
| * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove. |
| * pa/pa.c (hppa_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype. |
| * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove. |
| * i386/i386.c (override_options): Clear |
| targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI. |
| (ix86_va_start): Made static. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove. |
| * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes. |
| * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype. |
| * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove. |
| * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype. |
| * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| (rs6000_override_options): Clear targetm.expand_builtin_va_start if |
| DEFAULT_ABI != ABI_V4. |
| * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove. |
| * spu/spu.c (spu_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove. |
| * spu/spu-protos.h spu_va_start): Remove prototype. |
| * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove. |
| * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start): |
| Remove prototype. |
| * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * s390/s390-protos.h (s390_va_start): Remove prototype. |
| * s390/s390.c (s390_va_start): Made static. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove. |
| * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove. |
| * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype. |
| * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * arc/arc.c (arc_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove. |
| * arc/arc-protos.h (arc_va_start): Remove prototype. |
| * mt/mt-protos.h (mt_va_start): Remove prototype. |
| * sparc/sparc.c (sparc_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * sparc/sparc-protos.h (sparc_va_start): Remove prototype. |
| * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove. |
| * sh/sh.c (sh_va_start): Made static, add prototype. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| * sh/sh-protos.h (sh_va_start): Remove prototype. |
| * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove. |
| * mips/mips-protos.h (mips_va_start): Remove prototype. |
| * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove. |
| * mips/mips.c (mips_va_start): Made static. |
| (TARGET_EXPAND_BUILTIN_VA_START): Define. |
| |
| 2007-12-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when |
| "flag_tree_parallelize_loops > 1". |
| |
| 2007-12-06 Zdenek Dvorak <ook@ucw.cz> |
| Dorit Nuzman <dorit@il.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/34005 |
| * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR. |
| * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr. |
| (gimplify_pure_cond_expr): New function. |
| (generic_expr_could_trap_p): New function. |
| (gimplify_cond_expr): Call gimplify_pure_cond_expr. |
| (force_gimple_operand): Initialize new field allow_rhs_cond_expr. |
| |
| 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.c (s390_emit_stack_tie): New function. |
| (s390_emit_prologue): Emit a stack tie when writing to the |
| f8-f15 stack slots. |
| * config/s390/s390.md ("stack_tie"): New insn definition. |
| |
| 2007-12-06 Ben Elliston <bje@au.ibm.com> |
| |
| * SERVICE: Remove. |
| * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item. |
| |
| 2007-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/34337 |
| * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize |
| number of bits set in C1 if a mode mask for some mode can be used |
| instead. |
| |
| 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo |
| fixes. |
| |
| 2007-12-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34138 |
| * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): |
| Do not forward propagate addresses if that changes volatileness of |
| the pointed-to type. |
| |
| 2007-12-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/34312 |
| * config/i386/i386.c (ix86_function_regparm): Also check for fixed |
| registers when checking that regparm registers are available. |
| Lower regparm value due to fixed registers usage in addition to |
| global regs usage. |
| |
| 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| * sparseset.c: Include config.h and system.h before sparseset.h. |
| * sparseset.h: Remove inclusion of system.h. |
| |
| 2007-12-05 Jakub Jelinek <jakub@redhat.com> |
| Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * optabs.c (init_insn_codes): New function. |
| (new_optab): Delete. |
| (init_optab, init_optabv): Don't call new_optab. |
| (init_convert_optab): Don't clear the insn codes. |
| (init_optabs): Call init_insn_codes. |
| |
| 2007-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (optimize_omp_library_calls): New function. |
| (expand_omp_parallel): Call it if optimizing. |
| |
| PR middle-end/34134 |
| * stmt.c (expand_stack_restore): Call expand_normal on var to get |
| rtx for it instead of assuming it will be a VAR_DECL. |
| |
| 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * c-parser (c_parser_statement_after_labels): Move error from here... |
| (c_parser_label): ... to here. Check that the declaration is not |
| actually just another label. |
| |
| 2007-12-04 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34334 |
| PR middle-end/34222 |
| * tree-ssa-operands.c (get_addr_dereference_operands): If we |
| fall back to using the SMTs aliases, make sure to add virtual |
| operands for the SMT itself. |
| (create_ssa_artificial_load_stmt): Fix typo. Make sure to also |
| clear the loaded and stored symbols bitmaps. |
| |
| 2007-12-04 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default. |
| |
| 2007-12-04 Ben Elliston <bje@au.ibm.com> |
| |
| * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c. |
| |
| 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com> |
| |
| PR middle-end/33713 |
| * doc/invoke.texi: Remove -fforce-addr documentation. |
| * expr.c (emit_move_insn): Remove use of flag_force_addr. |
| (expand_expr_real_1): Same. |
| (do_tablejump): Same. |
| Call memory_address instead of memory_address_noforce. |
| * expr.h (memory_address_noforce): Remove prototype. |
| * explow.c (memory_address): Remove support for flag_force_addr. |
| (validize_mem): Same. |
| (memory_address_noforce): Remove. |
| * common.opt: Add dummy documentation for -fforce-addr. |
| * combine.c (can_combine_p): Remove -fforce-addr comment. |
| * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of |
| flag_force_addr. |
| * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment |
| relating to memory_address_noforce. |
| * testsuite/gcc.c-torture/compile/20050802-1.c: Remove. |
| * testsuite/gcc.c-torture/compile/20011113-1.c: Remove. |
| |
| 2007-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this |
| with !ctx->is_nested. |
| (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts |
| even if !ctx->is_nested. |
| (lower_copyprivate_clauses, lower_send_clauses, |
| lower_send_shared_vars): Call lookup_decl_in_outer_ctx |
| unconditionally. |
| |
| PR middle-end/29749 |
| * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize |
| (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1)) |
| and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)). |
| (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize |
| (X & C2) << C1 into (X << C1) & (C2 << C1) and |
| (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further |
| optimizations. |
| |
| PR tree-optimization/33453 |
| * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR |
| for pointer addition. |
| * tree-parloops.c (canonicalize_loop_ivs): Likewise. |
| (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to |
| var_copy. |
| |
| 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as |
| necessary. |
| |
| 2007-12-03 Razya Ladelsky <razya@il.ibm.com> |
| |
| * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation. |
| |
| 2007-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/34317 |
| * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop. |
| * common.opt (ftree-store-copy-prop): Use the same help text as for |
| other nop switches. |
| |
| 2007-12-02 Ayal Zaks <zaks@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (calculate_must_precede_follow, |
| try_scheduling_node_in_cycle): New functions. |
| (sms_schedule_by_order): Call the new functions. |
| (ps_insn_find_column): Use must_follow and must_precede only if |
| they are not NULL. |
| (ps_insn_advance_column): Likewise. |
| |
| 2007-12-02 Ayal Zaks <zaks@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (get_sched_window): Fix the direction of the |
| scheduling window and add dump info. |
| |
| 2007-12-02 Samuel Tardieu <sam@rfc1149.net> |
| |
| * config/sh/sh.md (cmpgeusi_t): Fix condition. |
| |
| 2007-11-30 Jan Hubicka <jh@suse.cz> |
| |
| * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag. |
| |
| 2007-11-30 Seongbae Park <seongbae.park@gmail.com> |
| |
| PR rtl-optimization/34171 |
| * cfgrtl.c (update_bb_for_insn_chain): New function, |
| refactored from update_bb_for_insn. |
| (update_bb_for_insn): Call update_bb_for_insn. |
| (rtl_merge_blocks, try_redirect_by_replacing_jump): |
| Replace a loop with update_bb_for_insn_chain call. |
| (cfg_layout_merge_blocks): Add a call to |
| update_bb_for_insn_chain. Replace the for loop |
| with a call to update_bb_for_insn_chain. |
| |
| 2007-11-30 Ben Elliston <bje@au.ibm.com> |
| |
| * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default. |
| |
| 2007-11-29 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/34244 |
| * tree-vrp.c (adjust_range_with_scev): Clear scev cache. |
| (record_numbers_of_iterations): New function. |
| (execute_vrp): Cache the numbers of iterations of loops. |
| * tree-scalar-evolution.c (scev_reset_except_niters): New function. |
| (scev_reset): Use scev_reset_except_niters. |
| * tree-scalar-evolution.h (scev_reset_except_niters): Declare. |
| |
| 2007-11-29 Jan Hubicka <jh@suse.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33434 |
| * tree-inline.c (setup_one_parameter): If the value passed to |
| a parameter is never used, don't set it up. |
| |
| 2007-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/32130 |
| * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak. |
| * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise. |
| |
| 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi> |
| |
| * Makefile.in: Use separate vpath lines for each path. |
| |
| 2007-11-29 Ben Elliston <bje@au.ibm.com> |
| |
| * SERVICE: Update URL. |
| |
| 2007-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/34140 |
| * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than |
| loop->header has virtual phi nodes. |
| |
| 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/32406 |
| * builtins.c (expand_builtin_nonlocal_goto): Also emit a use |
| of GP register, if valid and fixed. |
| |
| Revert: |
| 2007-06-21 David Daney <ddaney@avtrex.com> |
| |
| PR target/32406 |
| * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER |
| to UNSPEC_NONLOCAL_GOTO_RECEIVER globally. |
| (exception_receiver): Renamed to ... |
| (nonlocal_goto_receiver): ... this. |
| |
| 2007-11-27 H.J. Lu <hongjiu.lu@intel.com> |
| Joey Ye <joey.ye@intel.com> |
| |
| PR target/34001 |
| * config/i386/i386.c (function_arg_32): Don't pass aggregate |
| arguments in ECX/EDX for fastcall. |
| |
| 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline |
| asm to macro. |
| * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise. |
| * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise. |
| |
| 2007-11-28 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/aix64.opt (maix64): Add Negative(maix32). |
| (maix32): Add Negative(maix64). |
| |
| 2007-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/34016 |
| * tree-ssa-loop.c (pass_linear_transform): Add |
| TODO_update_ssa_only_virtuals to todo_flags_finish. |
| |
| 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add atmega32hvb. |
| * config/avr/avr.h (LINK_SPEC): Likewise. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/34225 |
| * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume |
| MEM_SIZE is set on all MEMs. |
| |
| 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.opt (mhard-float): Add the option to be |
| overridden. That was missing in my last patch. |
| |
| 2007-11-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34241 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure |
| to only delete real conversion chains. |
| |
| 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float, |
| mhard-float, mlong-double-64, mlong-double-128): Add the |
| option to be overridden. |
| |
| 2007-11-27 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_1): Verify the argument types |
| of BUILT_IN_ISNORMAL. |
| (fold_builtin_n): Verify the number of arguments to variadic |
| built-in functions. |
| |
| 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro. |
| * doc/invoke.texi (Blackfin Options): Document the effects. |
| |
| 2007-11-27 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/sysv4.opt (m32): Add Negative(m64). |
| (m64): Add Negative(m32). |
| * config/rs6000/darwin.opt (m32): Add Negative(m64). |
| (m64): Add Negative(m32). |
| |
| 2007-11-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo. |
| |
| 2007-11-26 Michael Meissner <michael.meissner@amd.com> |
| |
| PR target/34077 |
| * config/i386/i386.c (ix86_expand_movmem): If the copy size is a |
| constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode |
| to get the mode for loading a pseudo register with a count rather |
| than duplicating code. |
| |
| 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add atmega1284p. |
| * config/avr/avr.h (LINK_SPEC): Likewise. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * c-common.c (conversion_warning): Use get_unwidened instead of |
| get_narrower. |
| |
| 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR c/23722 |
| * c-parser.c (struct c_parser): New bit in_if_block. |
| (c_parser_compound_statement_nostart): Handle unexpected 'else' |
| keyword. |
| (c_parser_statement_after_labels): Set in_if_block to false while |
| parsing. |
| (c_parser_if_body): Don't call c_parser_statement_after_labels if |
| a semicolon is found, just consume it. Don't call |
| c_parser_statement_after_labels if an open brace is found, call |
| c_parser_compound_statement instead. |
| (c_parser_else_body): New. |
| (c_parser_if_statement): Set in_if_block to true when parsing the |
| body of the 'if' statement. Use c_parser_else_body. |
| |
| 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| PR c++/34081 |
| * c-decl.c (store_parm_decls): Pass 'false' for the new |
| allocate_struct_function parameter. |
| * cgraphunit.c (cgraph_build_static_cdtor): Likewise. |
| * tree-parloops.c (create_loop_fn): Likewise. |
| * function.c (push_function_context_to, push_struct_function, |
| init_function_start): Likewise. |
| (allocate_struct_function): Add boolean parameter. |
| * tree.h (allocate_struct_function): Add boolean parameter. |
| * function.h (struct function): Move returns_struct and |
| returns_pcc_struct to the end of the structure definiton. |
| |
| 2007-11-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/34215 |
| * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if |
| virtual registers are already instantiated. |
| (truncxf<mode>2): Ditto. |
| (floatsi<mode>2): Ditto. |
| (floatdisf2): Ditto. |
| (floatdidf2): Ditto. |
| |
| 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/34174 |
| * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy |
| the address before it is clobbered. |
| |
| 2007-11-26 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.md: (call_internal): Remove mode on |
| operand 0 in order to match UNPSEC'ed calls generated in PIC mode. |
| (call_value_internal): Remove mode on operands 0 and 1 in order to |
| match UNPSEC'ed calls generated in PIC mode. |
| (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between |
| two insns. |
| |
| 2007-11-26 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34233 |
| * builtins.c (expand_builtin_pow): Use expand_expr to expand |
| the result of build_call_expr. |
| |
| 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| PR middle-end/34085 |
| * bb-reorder.c (insert_section_boundary_note): Clear |
| BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS. |
| |
| 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma. |
| |
| 2007-11-26 Alexandre Oliva <aoliva@redhat.com> |
| |
| * dwarf2asm.c (splay_tree_compare_strings): New function. |
| (dw2_force_const_mem): Use it. |
| |
| 2007-11-26 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree.c (type_hash_add): Don't violate strict aliasing rules. |
| |
| 2007-11-26 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR c/27898 |
| * c-typeck.c (tagged_types_tu_compatible_p): Enable exact |
| matches between anonymous union fields. |
| |
| 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-live.c (remove_unused_scope_block_p): Drop |
| declarations and blocks only after inlining. Check that |
| non-empty blocks are not dropped. |
| * tree-inline.c (expand_call_inline): Check that functions are |
| not inlined too late. |
| |
| 2007-11-26 Ben Elliston <bje@au.ibm.com> |
| |
| * unwind-dw2-fde.c: Fix comment typo. |
| * unwind-generic.h: Likewise, fix comment typos. |
| |
| 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * tree-sra.c (scalarize_use): Adjust the vpos argument to |
| sra_explode_bitfield_assignment in cases where the type is |
| wider than the bitfield. |
| |
| 2007-11-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (struct tree_block): Move locus member next to flags. |
| * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN. |
| (SCOPE_LIST_CONCAT): Likewise. |
| (pop_scope): Likewise. |
| * function.c (instantiate_decls_1): Likewise. |
| (setjmp_vars_warning): Likewise. |
| * emit-rtl.c (set_used_decls): Likewise. |
| * tree-inline.c (add_lexical_block): Likewise. |
| |
| 2007-11-24 Hans-Peter Nilsson <hp@axis.com> |
| |
| * rtlanal.c (label_is_jump_target_p): Return true for a matching |
| REG_LABEL_TARGET. |
| * reorg.c (fill_slots_from_thread): Correct last change to use |
| NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and |
| decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0). |
| * jump.c (mark_jump_label_1): Add comment for last change |
| regarding JUMP_LABEL setting. |
| * gcse.c (add_label_notes): Remove conditional that the label is |
| mentioned in insn before adding regnote. |
| * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a |
| single_set insn only feeding a label to a jump through a |
| register that dies there. |
| |
| 2007-11-23 Dirk Mueller <dmueller@suse.de> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34197 |
| * tree-vrp.c (check_array_ref): Move check for valid location.. |
| (check_array_bounds) here. Use EXPR_HAS_LOCATION(). |
| |
| 2007-11-23 Hans-Peter Nilsson <hp@axis.com> |
| |
| * reload.c (find_reloads_address_1) <autoincdec cases>: |
| Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code. |
| |
| 2007-11-23 Richard Guenther <rguenther@suse.de> |
| Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/34176 |
| * alloc-pool.h (empty_alloc_pool): Declare. |
| * alloc-pool.c (empty_alloc_pool): New function. |
| * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the |
| valid table if a lookup from the optimistic table failed. |
| (vn_unary_op_lookup): Likewise. |
| (vn_binary_op_lookup): Likewise. |
| (vn_phi_lookup): Likewise. |
| (process_scc): Clear optimistic tables before every iteration. |
| |
| 2007-11-23 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks. |
| (merge_alias_info): Do verification only if checking is |
| enabled. Merge flow-sensitive alias information in simple cases. |
| * tree-ssa-operands.c (get_addr_dereference_operands): Also |
| complain about missing NMTs. |
| |
| 2007-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/34198 |
| * c-common.c (conversion_warning): For INTEGER_TYPE to |
| INTEGER_TYPE conversions call get_narrower on expr to avoid |
| spurious warnings from binop shortening or when the implicit |
| conversion can't change the value. |
| |
| 2007-11-22 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/14050 |
| * c-decl.c (set_array_declarator_inner): Don't give error for |
| static or type qualifiers in abstract declarator. Remove |
| abstract_p parameter. |
| * c-tree.h (set_array_declarator_inner): Update prototype. |
| * c-parser.c (c_parser_direct_declarator_inner): Update call to |
| set_array_declarator_inner. |
| * doc/standards.texi: Update for C99 TC3. |
| |
| 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate |
| line in my edit of the last change. |
| |
| 2007-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/33947 |
| * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW |
| and TREE_READONLY on the fn decl rather than passing a chain |
| of attributes. |
| |
| 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially. |
| |
| 2007-11-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking |
| of ix86_arch and ix86_tune into a switch statement. |
| (enum processor_type): Default PROCESSOR_I386 to 0. |
| * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead |
| of "ix86_tune == PROCESSOR_K6". |
| (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into |
| a switch statement. |
| |
| 2007-11-22 Tom Tromey <tromey@redhat.com> |
| |
| * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to |
| avoid writing into string allocated by ggc_alloc_string. |
| |
| 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/34155 |
| * config/sh/sh.md (binary_sf_op): Remove. |
| (binary_sf_op0, binary_sf_op1): New define_insn_and_split. |
| * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0 |
| and gen_binary_sf_op1. |
| |
| 2007-11-21 Hans-Peter Nilsson <hp@axis.com> |
| |
| * regclass.c (init_reg_autoinc): Fix typo preventing test of |
| secondary output reload when setting forbidden_inc_dec_class. |
| |
| 2007-11-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34148 |
| * tree-ssa-structalias.c (create_variable_info_for): Do not use |
| field-sensitive PTA for single-element structures. |
| * tree-ssa-alias.c (create_overlap_variables_for): Do not create |
| SFTs for single-element structures. |
| |
| 2007-11-20 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34154 |
| * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead |
| of the signed INT_CST_LT. |
| * stmt.c (expand_case): Likewise. |
| (estimate_case_costs): Likewise. |
| |
| 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * read-rtl.c (fatal_expected_char): Print EOF as text rather that |
| its binary representation. |
| |
| 2007-11-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_virtual_operand): Consistently prune |
| accesses. |
| |
| 2007-11-20 Thiemo Seufer <ths@mips.com> |
| |
| * config/mips/mips.c (mips_file_start): Add support for |
| flagging 32-bit code with -mfp64 floating-point. |
| |
| 2007-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/34146 |
| * c-gimplify.c (optimize_compound_literals_in_ctor): New function. |
| (c_gimplify_expr): Use it. |
| |
| 2007-11-20 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu_mfcio.h: Fix typo. |
| |
| 2007-11-20 Ben Elliston <bje@au.ibm.com> |
| |
| * unwind.inc: Comment that unwind-sjlj.c includes this file. |
| |
| 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/mfc_tag_release.c: New file. |
| * config/spu/mfc_multi_tag_release.c: Likewise. |
| * config/spu/mfc_multi_tag_reserve.c: Likewise. |
| * config/spu/mfc_tag_release.c: Likewise. |
| * config/spu/mfc_tag_reserve.c: Likewise. |
| * config/spu/mfc_tag_table.c: Likewise. |
| * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them. |
| (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2. |
| * config/spu/spu_mfcio.h: Avoid <stdint.h>. |
| (uint64_t): Typedef if __IN_LIBGCC2 is defined. |
| (MFC_TAG_INVALID, MFC_TAG_VALID): New macros. |
| (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve, |
| mfc_multi_tag_release): Likewise. |
| (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve, |
| __mfc_multi_tag_release): Declare. |
| |
| 2007-11-19 Jason Merrill <jason@redhat.com> |
| |
| PR debug/28834, debug/29436, c/32326 |
| * tree.c (build_type_attribute_qual_variant): Refuse to make |
| a distinct copy of a struct/enum type. Use build_distinct_type_copy. |
| * doc/extend.texi (Type Attributes): Don't encourage people to add |
| attributes to struct/enum types in a typedef. Fix |
| transparent_union example. |
| |
| * tree-inline.c (remap_type_1): Remove code that's redundant with |
| remap_type. |
| (build_duplicate_type): Set id.copy_decl. |
| * c-common.c (handle_transparent_union_attribute): Simplify logic. |
| |
| 2007-11-19 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (invalid_e500_subreg, |
| rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p, |
| rs6000_legitimize_address, rs6000_legitimize_reload_address, |
| rs6000_legitimate_address, function_arg_advance, |
| spe_build_register_parallel, rs6000_spe_function_arg, |
| rs6000_split_multireg_move, spe_func_has_64bit_regs_p, |
| emit_frame_save, gen_frame_mem_offset, rs6000_function_value, |
| rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and |
| TDmode similarly to DFmode and TFmode. |
| * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK, |
| DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise. |
| |
| 2007-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stor-layout.c (lang_adjust_rli): Delete. |
| (set_lang_adjust_rli): Likewise. |
| (layout_type): Do not call lang_adjust_rli hook. |
| * tree.h (set_lang_adjust_rli): Delete. |
| |
| 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (must_save_p): New function, mostly broken out of |
| n_dregs_to_save and n_pregs_to_save. |
| (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE; |
| all callers changed. |
| (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be |
| able to save single D/P registers that aren't saved by the push/pop |
| multiple insns. |
| |
| 2007-11-19 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34099 |
| * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR, |
| MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED |
| if only one operand is undefined. |
| |
| 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR tree-optimization/34036 |
| * opts.c (set_fast_math_flags): Do not set flags in common |
| with set_unsafe_math_optimizations_flags, invoke it directly. |
| (set_unsafe_math_optimizations_flags): Unset flag_trapping_math |
| and flag_signed_zeros. |
| * toplev.c (process_options): Force flag_associative_math to 0 and |
| warn, if it is set and either flag_trapping_math or flag_signed_zeros |
| is set too. |
| * doc/invoke.texi (Optimize Options): Document the new behavior |
| of -funsafe-math-optimizations, that -fassociative-math requires |
| both -fno-signed-zeros and -fno-trapping-math and make it clear |
| that -fno-trapping-math requires -fno-signaling-nans. Refactor |
| documentation of -ffast-math. |
| |
| 2007-11-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/34132 |
| * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note |
| and insn. |
| |
| PR middle-end/33335 |
| * optabs.h (optab_table): Change type to struct optab from optab. |
| (convert_optab_table): Similarly. |
| Adjust all _optab macros to expand to addresses of optab_table |
| resp. convert_optab_table elements rather than the values of the |
| elements. |
| * optabs.c (optab_table): Change typype to struct optab from optab. |
| If compiled by recent GCC, initialize all the insn_code fields in |
| the array using designated range initializers. |
| (convert_optab_table): Similarly. |
| (convert_optab_libfunc, optab_libfunc, set_optab_libfunc, |
| set_conv_libfunc): Into libfunc_entry's optab field store index within |
| optab_table resp. convert_optab_table array instead of difference |
| between two separately malloced addresses. |
| (new_optab): Add op argument, don't return anything. Initialize |
| just the insn_code field in handlers array and only when needed. |
| (init_optab, init_optabv): Add op argument, don't return anything. |
| Adjust new_optab caller. |
| (new_convert_optab): Removed. |
| (init_convert_optab): Add op argument, don't return anything, don't |
| call new_convert_optab. If needed, initialize insn_code field in |
| handlers array. |
| (init_optabs): Adjust init_optab, init_optabv and init_convert_optab |
| callers. |
| (debug_optab_libfuncs): Adjust uses of optab_table and |
| convert_optab_table arrays. |
| |
| 2007-11-18 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34127 |
| * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): |
| Make code match up the comments, require compatibility of the |
| pointed-to types. |
| |
| 2007-11-17 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34130 |
| * fold-const.c (extract_muldiv_1): Do not move negative |
| constants inside ABS_EXPR. |
| |
| 2007-11-16 Ian Lance Taylor <iant@google.com> |
| |
| * collect2.c (dump_file): If a demangled symbol is followed by a |
| space, make sure we output at least one space. |
| |
| 2007-11-16 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34030 |
| * fold-const.c (fold_binary): Use correct types for folding |
| 1 << X & Y to Y >> X & 1. |
| |
| 2007-11-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33870 |
| * tree.h (struct tree_memory_tag): Add base_for_components flag. |
| (struct tree_struct_field_tag): Remove nesting_level field. |
| (SFT_NESTING_LEVEL): Remove. |
| (SFT_BASE_FOR_COMPONENTS_P): Add. |
| * tree-flow.h (struct fieldoff): Remove nesting_level field. Add |
| base_for_components flag. |
| (push_fields_onto_fieldstack): Remove nesting_level parameter. |
| * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components |
| parameter. |
| (create_overlap_variables_for): Deal with it. |
| * tree-dfa.c (dump_subvars_for): Likewise. |
| (dump_variable): Likewise. |
| * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise. |
| Set base_for_components for first elements of sub-structures. |
| (create_variable_info_for): Handle base_for_components. |
| (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for |
| pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set. |
| * tree-ssa-operands.c (ref_nesting_level): Remove. |
| (add_vars_for_offset): Remove full_ref parameter, always add |
| the offset of the pointed-to SFT. |
| (add_virtual_operand): Adjust for changed signature of |
| add_vars_for_offset. |
| |
| 2007-11-16 Sa Liu <saliu@de.ibm.com> |
| |
| * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined |
| floatunssidf2 and floatunsdidf2. |
| |
| 2007-11-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34113 |
| * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): |
| Use correct conversion direction for checking type compatibility. |
| |
| 2007-11-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/34099 |
| * tree-ssa-ccp.c (likely_value): Use a whitelist for operators |
| that produce UNDEFINED result if at least one of its operands |
| is UNDEFINED. By default the result is only UNDEFINED if all |
| operands are UNDEFINED. |
| |
| 2007-11-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/30460 |
| * gcc.c (init_spec): Don't initialize asm_debug here... |
| (main): ... but here. |
| |
| 2007-11-07 Tom Tromey <tromey@redhat.com> |
| |
| * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. |
| * tree-parloops.c (create_loop_fn): Use set_cfun. |
| * gengtype.c (open_base_files): Emit #undef cfun. |
| * ipa-struct-reorg.c (do_reorg_1): Use set_cfun. |
| * function.h (cfun): New define. |
| * function.c: Undefine cfun. |
| |
| 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add attiny88. |
| * config/avr/avr.h (LINK_SPEC): Likewise. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/23848 |
| * tree-ssa-ccp.c (optimize_stack_restore): New function. |
| (execute_fold_all_builtins): Call optimize_stack_restore for |
| BUILT_IN_STACK_RESTORE. |
| |
| 2007-11-15 Paolo Bonzini <bonzini@gnu.org> |
| |
| * fwprop.c (try_fwprop_subst): Skip profitability check for forward |
| propagation into an address; that's done in should_replace_address. |
| |
| 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu-protos.h (legitimate_const): Remove prototype. |
| * config/spu/spu.c (legitimate_const): Remove. |
| (classify_immediate): Inline call to legitimate_const. |
| (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT |
| for any constant, not just -512 .. 511. |
| |
| 2007-11-15 Sa Liu <saliu@de.ibm.com> |
| |
| * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL |
| condition from HONOR_NANS test. |
| * config/spu/spu.md (ceq_df): Always generate comparison code |
| inline, including checks for NaNs and infinities. |
| (cgt_df): Likewise. |
| (cgt_v2df): Likewise. |
| (cmpdf): Make this expander unconditional. |
| |
| 2007-11-15 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (create_overlap_variables_for): Make sure |
| to only create SFTs if we also create variable infos for PTA. |
| * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs. |
| |
| 2007-11-15 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to |
| type for TBAA pruning. |
| (find_what_p_points_to): Call set_uids_in_ptset with the original |
| pointer, not the decl of the solution we collapsed to. |
| |
| 2007-11-14 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA |
| to find sigcontext. |
| |
| 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR target/33923 |
| * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes |
| for registers in BR_REGS class. |
| |
| 2007-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/34088 |
| * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if |
| init_ssa_operands has not been called for cfun. |
| |
| 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR tree-optimization/34046 |
| * cfg.c (update_bb_profile_for_threading): Avoid the division for the |
| scaling if the old probability is greater than the new base. |
| |
| 2007-11-14 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove |
| unused edges after loop duplication. |
| |
| 2007-11-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ... |
| (enum target_cpu_default): ... this enum. |
| (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ... |
| * config/i386/i386.c (override_options): ... here. |
| * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use |
| TARGET_CPU_DEFAULT_i486. |
| |
| 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * global.c (rest_of_handle_global_alloc): Fix comment typos. |
| * config/sh/sh.c (sh_rtx_costs): Likewise. |
| * ChangeLog: Likewise. |
| |
| 2007-11-13 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-chrec.h (build_polynomial_chrec): RHS of a chrec |
| should not be of pointer type. |
| |
| 2007-11-13 Michael Meissner <michael.meissner@amd.com> |
| |
| * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line. |
| |
| 2007-11-13 Sterling Augustine <sterling@tensilica.com> |
| Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/unwind-dw2-xtensa.c: New. |
| * config/xtensa/unwind-dw2-xtensa.h: New. |
| * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove. |
| (DWARF2_UNWIND_INFO): Remove. |
| (DWARF_FRAME_REGISTERS): Define. |
| (EH_RETURN_DATA_REGNO): Define. |
| * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define. |
| (eh_return): New. |
| * config/xtensa/t-xtensa (LIB2ADDEH): Define. |
| |
| 2007-11-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi: Fix description of -fsched-stalled-insns=0, |
| -fsched-stalled-insns. |
| |
| PR tree-optimization/34063 |
| * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument |
| as first chrec_fold_plus operand rather than second. |
| |
| 2007-11-13 Diego Novillo <dnovillo@google.com> |
| |
| PR tree-optimization/33870 |
| * tree.h (strcut tree_memory_tag): Add field unpartitionable. |
| Remove field in_nested_struct. |
| (struct tree_struct_field_tag): Add field nesting_level. |
| (sft_in_nested_struct): Remove. |
| (sft_nesting_level): Define. |
| (sft_unpartitionable_p): Define. |
| * tree-ssa-alias.c (mem_sym_score): If mp->var is not |
| partitionable, return long_max. |
| (compute_memory_partitions): Do not partition sfts marked |
| unpartitionable. |
| (create_sft): Add argument nesting_level. Set |
| sft_nesting_level with it. Update all users. |
| (create_overlap_variables_for): Show nesting level. |
| * tree-dfa.c (dump_subvars_for): Likewise. |
| (dump_variable): Likewise. Show whether the sft is |
| partitionable or not. |
| * tree-flow.h (struct fieldoff): Remove field in_nested_struct. |
| Add field nesting_level. |
| * tree-ssa-structalias.c (struct variable_info): Remove |
| field in_nested_struct. |
| (push_fields_onto_fieldstack): Add argument nesting_level. |
| Update all users. Update documentation. Update pair->nesting_level |
| with nesting_level. Make recursive calls with nesting_level + 1. |
| (set_uids_in_ptset): If an sft is added to the points-to set, |
| mark it as unpartitionable. |
| * tree-ssa-operands.c (ref_nesting_level): New. |
| (add_vars_for_offset): Call it. Add argument full_ref. Update |
| callers. If var is inside a nested structure and the nesting level |
| of full_ref is lower than the nesting level of var, |
| adjust offset by the offset of var. |
| |
| 2007-11-13 Victor Kaplansky <victork@il.ibm.com> |
| |
| PR tree-optimization/32582 |
| * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize |
| |
| 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| * doc/extend.texi (dllimport): Document that pointers to dllimport'd |
| functions can be used as constant. |
| |
| 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/34035 |
| * cse.c (cse_cfg_altered): New global variable. |
| (cse_jumps_altered): Make boolean. |
| (recorded_label_ref): Likewise. |
| (cse_insn): Adjust for above changes. |
| (cse_extended_basic_block): Likewise. Set cse_cfg_altered |
| if dead edges have been purged. |
| (cse_main): Change return value specification and adjust code. |
| (rest_of_handle_cse): Adjust for above change. |
| (rest_of_handle_cse2): Likewise. |
| * gcse.c (rest_of_handle_gcse): Likewise. |
| |
| 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> |
| Michael Meissner <michael.meissner@amd.com> |
| |
| * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to |
| get the appropriate suffix for the coms* instruction. |
| (sse5_pcmov_<mode>): Restrict operands of pcmov |
| for scalar case to be only xmm registers and not memory. |
| |
| * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand |
| constraints to follow the mnemonics for the pcmov instruction |
| |
| 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/34042 |
| * config/mips/mips.c (mips_return_fpr_single): New function. |
| (mips_function_value): Use it when returning single-field |
| aggregates in FPRs. |
| (mips_expand_call): Handle the PARALLELs created by |
| mips_return_fpr_single. |
| |
| 2007-11-12 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34070 |
| * fold-const.c (fold_binary): If testing for non-negative |
| operands with tree_expr_nonnegative_warnv_p make sure to |
| use op0 which has all (sign) conversions retained. |
| |
| 2007-11-12 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/34027 |
| * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m. |
| (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR. |
| |
| 2007-11-12 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/33953 |
| * tree-vect-transform.c (vectorizable_operation): In case of SLP, |
| allocate vec_oprnds1 according to the number of created vector |
| statements. In case of shift with scalar argument, store scalar |
| operand for every vector statement to be created for the SLP node. |
| Fix a comment. |
| |
| 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com> |
| |
| * gcse.c (CUID_INSN): Remove. |
| (cuid_insn): Ditto. |
| (alloc_gcse_mem): Don't allocate cuid_insn. |
| (free_gcse_mem): Don't free cuid_insn. |
| |
| 2007-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/34020 |
| * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared |
| nops. |
| |
| PR middle-end/34018 |
| * tree-inline.h (copy_body_data): Add regimplify field. |
| * tree-inline.c (copy_body_r): Set id->regimplify to true |
| if an TREE_INVARIANT ADDR_EXPR is no longer invariant after |
| substitutions. |
| (copy_bb): Clear id->regimplify before walk_tree, if it is |
| set afterwards, regimplify the whole statement. |
| |
| PR tree-optimization/33680 |
| * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt |
| if the added cast involves variable length types. |
| |
| 2007-11-09 Alexander Monakov <amonakov@ispras.ru> |
| Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER |
| instead of TRUE_BARRIER for jumps. Add register dependencies |
| even when reg_pending_barrier is set. |
| |
| 2007-11-09 Alexander Monakov <amonakov@ispras.ru> |
| |
| * haifa-sched.c (haifa_classify_insn): Rename to ... |
| (haifa_classify_rtx): ... this. Improve handling of COND_EXECs, |
| handle PARALLELs by recursing. Use it ... |
| (haifa_classify_insn): ... here. Reimplement. |
| |
| 2007-11-09 Richard Guenther <rguenther@suse.de> |
| |
| * bitmap.h (bitmap_single_bit_set_p): Declare. |
| * bitmap.c (bitmap_single_bit_set_p): New function. |
| * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it. |
| (maybe_create_global_var): Use bitmap_empty_p. |
| |
| 2007-11-09 Paolo Bonzini <bonzini@gnu.org> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/34012 |
| * fwprop.c (try_fwprop_subst): Do not replace if the new |
| SET_SRC has a higher cost than the old one. |
| |
| 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/33732 |
| * reload.c (push_reload): Check that the REG_DEAD note was referring |
| to a hardreg or to a pseudo that has been assigned exactly one hardreg |
| before considering it in order to select the reload register. |
| (combine_reloads): Likewise. |
| (find_dummy_reload): Likewise. |
| |
| 2007-11-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD. |
| (struct ptr_info_def): Likewise. |
| (enum escape_type): Also use bit zero. |
| |
| 2007-11-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33604 |
| * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): |
| Disregard changes in CV qualifiers of pointed to types for |
| forward propagating ADDR_EXPRs. |
| * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original |
| expression. |
| |
| 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * dse.c (find_shift_sequence): Always choose an integer mode for |
| new_mode. |
| (replace_read): Require both the read and store mode to be |
| integer ones. Remove a then-redundant FLOAT_P check. |
| |
| 2007-11-08 Richard Guenther <rguenther@suse.de> |
| |
| * tree-dfa.c (remove_referenced_var): If removing a |
| variable which has subvars, also remove those from |
| the referenced vars. Do not create a variable annotation. |
| |
| 2007-11-08 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first |
| argument for gen_entry calls. |
| * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute. |
| (entry): Use the new attribute value. Remove unused first operand. |
| |
| 2007-11-08 Tom Tromey <tromey@redhat.com> |
| |
| * c-parser.c (c_parser_translation_unit): Use location in error. |
| (c_parser_external_declaration): Likewise. |
| (c_parser_declaration_or_fndef): Likewise. |
| (c_parser_enum_specifier): Likewise. |
| (c_parser_struct_or_union_specifier): Likewise. |
| (c_parser_struct_declaration): Likewise. |
| (c_parser_typeof_specifier): Likewise. |
| (c_parser_parms_list_declarator): Likewise. |
| (c_parser_asm_string_literal): Likewise. |
| (c_parser_braced_init): Likewise. |
| (c_parser_initelt): Likewise. |
| (c_parser_compound_statement_nostart): Likewise. |
| (c_parser_statement_after_labels): Likewise. |
| (c_parser_do_statement): Likewise. |
| (c_parser_asm_statement): Likewise. |
| (c_parser_conditional_expression): Likewise. |
| (c_parser_unary_expression): Likewise. |
| (c_parser_sizeof_expression): Likewise. |
| (c_parser_postfix_expression): Likewise. |
| (c_parser_postfix_expression_after_paren_type): Likewise. |
| (c_parser_objc_class_instance_variables): Likewise. |
| (c_parser_objc_method_definition): Likewise. |
| (c_parser_objc_methodprotolist): Likewise. |
| (c_parser_pragma): Likewise. |
| (c_parser_omp_clause_num_threads): Likewise. |
| (c_parser_omp_clause_schedule): Likewise. |
| (c_parser_omp_all_clauses): Likewise. |
| (c_parser_omp_sections_scope): Likewise. |
| (c_parser_label): Use location of label, not colon. |
| |
| 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| PR target/33774 |
| * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if |
| IN_TARGET_LIBS. |
| |
| 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/33826 |
| * ipa-pure-const.c (static_execute): Added code to keep recursive |
| functions from being marked as pure or const. |
| * ipa-utils.c (searchc): Fixed comment. |
| |
| 2007-11-08 Tom Tromey <tromey@redhat.com> |
| |
| * common.opt (fshow-column): Default to 0. |
| * configure: Rebuilt. |
| * configure.ac (--enable-mapped-location): Default to 'yes'. |
| |
| 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * common.opt: Add pointer to doc/options.texi. |
| * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const, |
| -fipa-reference): Add or correct doc. Sorted options list for -Os |
| -O, -O2. |
| |
| 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| PR target/16350 |
| * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT. |
| * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on |
| TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS. |
| (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT. |
| (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler. |
| * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according |
| to TARGET_BIG_ENDIAN_DEFAULT. |
| (SUBTARGET_EXTRA_LINK_SPEC): Likewise. |
| * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according |
| to TARGET_BIG_ENDIAN_DEFAULT. |
| |
| 2007-11-07 Diego Novillo <dnovillo@google.com> |
| |
| * tree.h (struct tree_struct_field_tag): Move field |
| in_nested_struct ... |
| (struct tree_memory_tag): ... here. |
| |
| 2007-11-07 Diego Novillo <dnovillo@google.com> |
| |
| PR 33870 |
| * tree.h (struct tree_struct_field_tag): Add field in_nested_struct. |
| (SFT_IN_NESTED_STRUCT): Define. |
| * tree-dfa.c (dump_subvars_for): Show offset of each sub-var. |
| * tree-flow.h (struct fieldoff): Add field in_nested_struct. |
| * tree-ssa-structalias.c (struct variable_info): Likewise. |
| (push_fields_onto_fieldstack): If OFFSET is positive, |
| set in_nested_struct. |
| (create_variable_info_for): Copy setting of |
| in_nested_struct from the field offset object. |
| (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the |
| variable info object. |
| * tree-ssa-operands.c (add_vars_for_offset): If VAR |
| belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR). |
| |
| 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/33737 |
| * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of |
| target block after computing the probabilities of outgoing edges. |
| Cap the frequency to BB_FREQ_MAX. |
| * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and |
| frequency of the basic block if it has been reused. |
| |
| 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/33822 |
| * rtl.h (REG_OFFSET): Fix comment. |
| * var-tracking.c (INT_MEM_OFFSET): New macro. |
| (var_mem_set): Use it. |
| (var_mem_delete_and_set): Likewise. |
| (var_mem_delete): Likewise. |
| (same_variable_part_p): Likewise. |
| (vt_get_decl_and_offset): Likewise. |
| (offset_valid_for_tracked_p): New predicate. |
| (count_uses): Do not track locations with invalid offsets. |
| (add_uses): Likewise. |
| (add_stores): Likewise. |
| |
| 2007-11-07 Tom Tromey <tromey@redhat.com> |
| |
| * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H) |
| (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H). |
| |
| 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru> |
| Andrey Belevantsev <abel@ispras.ru> |
| |
| * modulo-sched.c (sms_order_nodes, permute_partial_schedule, |
| generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes. |
| (calculate_order_params, sms_order_nodes): New parameter pmax_asap. |
| Save calculated max_asap in it. |
| (sms_schedule): Calculate maxii using max_asap. |
| |
| 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp |
| with -mhard-dfp/-mno-hard-dfp. |
| |
| 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/33670 |
| * haifa-sched.c (check_sched_flags): Remove. |
| (sched_init): Don't call it. |
| |
| 2007-11-06 Diego Novillo <dnovillo@google.com> |
| |
| * tree-flow.h (struct fieldoff): Reformat comment. Document fields. |
| * tree-ssa-operands.c: Tidy top-level comments. |
| (add_vop): Likewise. |
| (add_vars_for_offset): Tidy parameter formatting.. |
| (get_addr_dereference_operands): Likewise. |
| (get_indirect_ref_operands): Likewise. |
| (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat. |
| <OMP_ATOMIC_STORE>: Likewise. |
| |
| 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32787 |
| * config/i386/driver-i386.c: Test for __GNUC__ instead of |
| GCC_VERSION which is always defined. |
| |
| 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR target/30961 |
| * reload.c (find_reloads): Also check in_reg when handling a |
| simple move with an input reload and a destination of a hard |
| register. |
| |
| 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes. |
| (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, |
| TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL, |
| TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, |
| TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine. |
| (m68k_sched_attr_type2): New function. |
| (sched_adjust_cost_state): New static variable. |
| (m68k_sched_adjust_cost): New static function implementing |
| scheduler hook. |
| (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code): |
| New static variables. |
| (m68k_sched_variable_issue): New static function implementing |
| scheduler hook. |
| (sched_dump_class_def, sched_dump_class_func_t): New typedefs. |
| (sched_dump_split_class): New static function. |
| (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static |
| variables. |
| (sched_dump_dfa_class, m68k_sched_dump): New static function. |
| (m68k_sched_md_init_global, m68k_sched_md_finish_global, |
| m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle, |
| m68k_sched_dfa_post_advance_cycle): New static functions implementing |
| scheduler hooks. |
| |
| * config/m68k/m68k.h (m68k_sched_attr_type2): Declare. |
| (CPU_UNITS_QUERY): Define. |
| |
| * config/m68k/cf.md: New file. |
| * config/m68k/m68.md (cf.md): New include. |
| |
| 2007-11-06 Tom Tromey <tromey@redhat.com> |
| |
| PR c++/32256 |
| PR c++/32368 |
| * function.c (saved_in_system_header): New global. |
| (push_cfun): Save in_system_header. |
| (pop_cfun): Restore in_system_header. |
| (push_struct_function): Save in_system_header. |
| |
| 2007-11-06 Douglas Gregor <doug.gregor@gmail.com> |
| |
| PR c++/33977 |
| PR c++/33886 |
| * c-common.c (c_build_qualified_type): Moved to c-typeck.c. |
| (complete_array_type): Set canonical type appropriately. |
| * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The |
| C and C++ front ends now have different versions of this function, |
| because the C++ version needs to maintain canonical types here. |
| |
| 2007-11-04 Razya Ladelsky <razya@il.ibm.com> |
| |
| * tree-parloops.c (reduction_info): Remove reduction_init field. |
| (initialize_reductions): Remove creation of the reduction_init variable. |
| (struct data_arg): Remove. |
| (add_field_for_reduction, create_stores_for_reduction): New functions. |
| (add_field_for_name): Remove reduction handling. |
| (separate_decls_in_loop): Call add_field_for_reduction, |
| create_stores_for_reduction. |
| |
| 2007-11-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33458 |
| * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates |
| !is_gimple_val PHI argument, gimplify it and insert it on edge. |
| |
| PR tree-optimization/33993 |
| * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector |
| rather than build_constructor_from_list if all list values are |
| constants. |
| (get_initial_def_for_induction): Use build_vector instead of |
| build_constructor_from_list. |
| |
| 2007-11-05 Mark Mitchell <mark@codesourcery.com> |
| |
| PR target/33579 |
| * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P. |
| (DECL_FINI_PRIORITY): Likewise. |
| * tree.c (decl_init_priority_lookup): Remove assert. |
| (decl_fini_priority_insert): Likewise. |
| * cgraphunit.c (static_ctors): Make it a VEC. |
| (static_dtors): Likewise. |
| (record_cdtor_fn): Adjust accordingly. |
| (build_cdtor): Generate multiple functions for each initialization |
| priority. |
| (compare_ctor): New function. |
| (compare_dtor): Likewise. |
| (cgraph_build_cdtor_fns): Sort the functions by priority before |
| calling build_cdtor. |
| (cgraph_build_static_cdtor): Put the priority in the function's name. |
| |
| 2007-11-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/32632 |
| * common.opt: Add shared and pie. |
| |
| 2007-11-05 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not |
| replace references to virtual_stack_vars_rtx in goto_handler. |
| |
| 2007-11-05 Paul Brook <paul@codesourcery.com> |
| |
| * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs. |
| * config/arm/arm.c (arm_lang_output_object_attributes_hook): New. |
| (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call |
| arm_lang_output_object_attributes_hook. |
| * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare. |
| (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init. |
| * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add |
| prototype. |
| * config/arm/t-arm.c (arm.o): New rule. |
| * config/arm/arm-c.c: New file. |
| |
| 2007-11-05 Nick Clifton <nickc@redhat.com> |
| Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/32540 |
| PR tree-optimization/33922 |
| * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH. |
| * tree-ssa-pre.c: Include params.h. |
| (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH |
| to limit the maximum length of the PA set for a given block. |
| * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c |
| * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter. |
| |
| 2007-11-05 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI, |
| __fixunssfDI): Make return type unsigned. |
| * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI, |
| __fixunssfDI): Make return type unsigned. |
| |
| 2007-11-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33856 |
| * tree-data-ref.c (get_references_in_stmt): Don't add |
| REFERENCE_CLASS_P trees to references vector if get_base_address |
| returns NULL on them. |
| |
| 2007-11-05 Alexandre Oliva <aoliva@redhat.com> |
| |
| * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum. |
| |
| 2007-11-04 Andrew Pinski <pinskia@gmail.com> |
| |
| PR middle-end/32931 |
| * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type |
| for TRUTH_NOT_EXPR to type. |
| |
| 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez. |
| |
| 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR fortran/10220 |
| * dwarf2out.c (add_calling_convention_attribute): Change |
| second argument. Set calling convention to DW_CC_program for |
| Fortran main program. |
| (gen_subprogram_die): Adjust to new prototype for |
| add_calling_convention_attribute. |
| |
| 2007-11-03 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/33987 |
| * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert. |
| Fix indentation. |
| (vectorizable_reduction): Add type check. |
| |
| 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR c/29062 |
| * c-parser.c (c_parser_statement_after_labels): Error if a |
| declaration is parsed after a label. |
| |
| 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| PR debug/33921 |
| * reorg.c (emit_delay_sequence): Do not clear the locator on |
| the jump instruction. |
| |
| 2007-11-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/33670 |
| * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the |
| current sched region. |
| |
| 2007-11-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/ia64/ia64.c (struct reg_write_state): Change into |
| unsigned short bitfields rather than unsigned int, decrease |
| first_pred to just 10 bits. |
| (rws_insn): Change into a bitmap or if not ENABLE_CHECKING |
| into two char array. |
| (rws_insn_set, rws_insn_test): New functions. |
| (in_safe_group_barrier): New variable. |
| (rws_update): Remove first argument, always set rws_sum array. |
| (rws_access_regno): Use rws_insn_set macro. Only call rws_update |
| or update rws_sum if !in_safe_group_barrier, adjust rws_update args. |
| (rtx_needs_barrier): Use rws_insn_test macro. |
| (safe_group_barrier_needed): Don't save/restore rws_sum array, |
| instead set/clear in_safe_group_barrier flag. |
| |
| 2007-11-02 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a |
| REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack |
| pointer or frame pointer. |
| * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete. |
| (MUST_USE_SJLJ_EXCEPTIONS): Define. |
| (DWARF2_UNWIND_INFO): Define. |
| (INCOMING_RETURN_ADDR_RTX): Define. |
| (DWARF_FRAME_RETURN_COLUMN): Define. |
| |
| 2007-11-02 Tom Tromey <tromey@redhat.com> |
| |
| * varpool.c (dump_varpool): Use 'next', not 'next_needed' when |
| traversing pool. |
| |
| 2007-11-02 Diego Novillo <dnovillo@google.com> |
| |
| * langhooks.h (struct lang_hooks_for_callgraph): Remove third |
| argument from function pointer ANALYZE_EXPR. Update all users. |
| * cgraph.c (debug_cgraph_node): New. |
| (debug_cgraph): New. |
| |
| 2007-11-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/33648 |
| * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of |
| the newly created basic block. |
| |
| 2007-11-01 Richard Guenther <rguenther@suse.de> |
| |
| * ggc-page.c (extra_order_size_tab): Add bitmap_head size. |
| |
| 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com> |
| |
| PR rtl-optimization/33828 |
| * gcse.c (compute_code_hoist_vbeinout): Fix order of computation |
| of VBEIN and VBEOUT. |
| |
| 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks. |
| * sched-rgn.c (compute_trg_info): Zero 'el' local variable. |
| * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable. |
| |
| 2007-11-01 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * gcc.c (getenv_spec_function): Escape the environment variable's |
| value. |
| |
| 2007-11-01 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps, |
| show that CSE means common subexpression elimination. Change wording |
| for -fsee and define LCM. Remove capitalization of optimizations |
| for -ftree-reassoc, -ftree-pre, and -ftree-fre. |
| |
| 2007-11-01 Janis Johnson <janis187@us.ibm.com> |
| |
| PR testsuite/25352 |
| * doc/sourcebuild.texi (Test Directives): Document that xfail |
| has no effect for dg-do except when dg-do-what is "run". |
| |
| 2007-11-01 Tom Tromey <tromey@redhat.com> |
| |
| * c-decl.c (grokdeclarator): Set decl source locations. |
| * c-parser.c (c_parser_enum_specifier): Set location. |
| (c_parser_struct_or_union_specifier): Likewise. |
| |
| 2007-11-01 Tom Tromey <tromey@redhat.com> |
| |
| * print-tree.c (print_node): Print column number. |
| |
| 2007-11-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/33537 |
| * dwarf2out.c (gen_formal_parameter_die, gen_variable_die, |
| gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type |
| rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl). |
| |
| PR rtl-optimization/33673 |
| * gcse.c (cprop_jump): If a conditional jump has been optimized |
| into unconditional jump, make the remaining normal edge fallthru |
| and delete the jump insn. |
| |
| 2007-11-01 Ben Elliston <bje@au.ibm.com> |
| |
| * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment. |
| (set_mem_attrs_from_reg): Likewise. |
| |
| 2007-11-01 Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/33961 |
| * tree-ssa-phiopt.c (struct name_to_bb.store): New member. |
| (name_to_bb_hash, name_to_bb_eq): Consider and check it. |
| (add_or_mark_expr): New argument 'store', using it to search |
| the hash table. |
| (nt_init_block): Adjust calls to add_or_mark_expr. |
| |
| 2007-10-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/31507 |
| * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints |
| for the first push_operand. |
| |
| 2007-10-31 Revital Eres <eres@il.ibm.com> |
| |
| * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf, |
| reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf, |
| vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf, |
| movmisalignv2sf, vcondv2sf): New. |
| (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF, |
| UNSPEC_EXTODD_V2SF): Define new constants. |
| * config/rs6000/rs6000-protos.h (paired_expand_vector_move, |
| paired_emit_vector_cond_expr): New. |
| * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define. |
| * config/rs6000/rs6000.c (paired_expand_vector_move, |
| paired_emit_vector_cond_expr, paired_emit_vector_compare): |
| New functions. |
| * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option. |
| |
| 2007-10-31 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/32377 |
| * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it |
| work also for unknown number of iterations. |
| (analyze_subscript_affine_affine): Clean up. Don't fail when the |
| number of iterations is not known. |
| |
| 2007-10-31 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33779 |
| * fold-const.c (extract_muldiv_1): Make sure to not introduce |
| new undefined integer overflow. |
| (fold_binary): Avoid useless conversion. |
| |
| 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/33948 |
| * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check. |
| |
| 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp. |
| |
| * config/s390/s390.c: (override_options): Replace |
| -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp. |
| * config/s390/s390.opt: Likewise. |
| * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT |
| definition. |
| |
| 2007-10-30 Janis Johnson <janis187@us.ibm.com> |
| |
| * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops. |
| |
| 2007-10-30 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of |
| optimization options. |
| (Optimize Options): Add -fdce and -fdse to the list of optimizations |
| enabled by -O. Document -fdce and -fdse. |
| |
| 2007-10-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/33709 |
| * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR, |
| convert second operand of COMPOUND_EXPR to the original type of |
| that argument. |
| |
| 2007-10-30 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_vars_for_offset): Fix exit test |
| of loop adding SFTs as virtual operands. |
| |
| 2007-10-30 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies. |
| |
| 2007-10-29 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/32893 |
| * tree-vectorize.c (vect_can_force_dr_alignment_p): Check |
| STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY. |
| |
| 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and |
| x86_64 versions. |
| (sub_ddmmss): Likewise. |
| (umul_ppmm): Likewise. |
| (udiv_qrnnd): Likewise. |
| |
| 2007-10-29 Janis Johnson <janis187@us.ibm.com> |
| |
| PR testsuite/24841 |
| * doc/sourcebuild.texi (Test Directives): Document that dg-require |
| directives must come before dg-additional-sources. |
| |
| 2007-10-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33723 |
| * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or |
| MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source. |
| |
| 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR tree-optimization/33614 |
| * gimplify.c (gimplify_init_constructor): Gimplify vector constructors |
| if they can't be reduced to VECTOR_CSTs and aren't legitimate |
| initializer constants. |
| |
| 2007-10-29 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33870 |
| * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter. |
| (add_virtual_operand): Do not recurse into MPTs looking for pointed-to |
| SFTs. |
| |
| 2007-10-29 Richard Guenther <rguenther@suse.de> |
| |
| * passes.c (init_optimization_passes): Exchange store_copy_prop |
| with copy_prop. |
| * tree-pass.h (pass_store_copy_prop): Remove. |
| * tree-ssa-copy.c (do_store_copy_prop): Remove. |
| (stmt_may_generate-copy): Do not handle store_copy_prop. |
| (get_copy_of_val): Likewise. |
| (set_copy_of_val): Likewise. |
| (copy_prop_visit_assignment): Likewise. |
| (copy_prop_visit_stmt): Likewise. |
| (copy_prop_visit_phi_node): Likewise. |
| (init_copy_prop): Likewise. |
| (execute_copy_prop): Likewise. |
| (do_copy_prop): Remove. |
| (gate_store_copy_prop): Likewise. |
| (store_copy_prop): Likewise. |
| (pass_store_copy_prop): Likewise. |
| (pass_copy_prop): Call execute_copy_prop. |
| * opts.c (decode_options): Do not set flag_tree_store_copy_prop. |
| * common.opt (ftree-store-copy-prop): Mark obsolete. |
| * doc/invoke.texi (ftree-store-copy-prop): Remove documentation. |
| |
| 2007-10-29 Ian Lance Taylor <iant@google.com> |
| |
| * ifcvt.c (noce_can_store_speculate_p): New static function. |
| (noce_process_if_block): Call it. |
| (if_convert): Remove recompute_dominance parameter. Change all |
| callers. |
| |
| 2007-10-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow-inline.h (get_subvar_at): Use binary search. |
| (get_first_overlapping_subvar): New function to binary search |
| for the first overlapping subvar. |
| * tree-ssa-operands.c (add_vars_for_offset): Strip down to |
| just handle adding subvars for a pointed-to subvar. Optimize |
| and use get_first_overlapping_subvar. |
| (add_vars_for_bitmap): Fold into single caller. |
| (add_virtual_operand): Streamline, inherit add_vars_for_bitmap |
| and non pointed-to bits of add_vars_for_offset. |
| |
| 2007-10-29 Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem. |
| |
| 2007-10-29 Razya Ladelsky <razya@il.ibm.com> |
| Zdenek Dvorak <ook@ucw.cz> |
| |
| OMP_ATOMIC Changes, |
| reduction support for automatic parallelization. |
| |
| * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD, |
| OMP_ATOMIC_STORE. |
| * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o |
| * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD |
| and OMP_ATOMIC_STORE. |
| * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. |
| * gimple-low.c (lower_stmt): Same. |
| * gimplify.c (gimplify_expr): Same. |
| (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline, |
| gimplify_omp_atomic_mutex): Remove. |
| (gimplify_omp_atomic): Change it to simply gimplify the |
| statement instead of expanding it. |
| * omp-low.c: Add includes to optabs.h, cfgloop.h. |
| (expand_omp_atomic, expand_omp_atomic_pipeline, |
| goa_stabilize_expr, expand_omp_atomic_mutex, |
| expand_omp_atomic_fetch_op): New functions to implement |
| expansion of OMP_ATOMIC. |
| (expand_omp, build_omp_regions_1): Add support for |
| OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE. |
| * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD, |
| OMP_ATOMIC_STORE. |
| * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD, |
| OMP_ATOMIC_STORE. |
| * tree-parloops.c: add include to tree-vectorizer.h. |
| (reduction_info): New structure for reduction. |
| (reduction_list): New list to represent list of reductions per loop. |
| (struct data_arg): New helper structure for reduction. |
| (reduction_info_hash, reduction_info_eq, reduction_phi, |
| initialize_reductions, create_call_for_reduction, |
| create_phi_for_local_result, create_call_for_reduction_1, |
| create_loads_for_reductions, create_final_loads_for_reduction): |
| New functions. |
| (loop_parallel_p): Identify reductions, add reduction_list parameter. |
| (separate_decls_in_loop_name): Support reduction variables. |
| (separate_decls_in_loop): Add reduction_list and ld_st_data arguments, |
| call create_loads_for_reduction for each reduction. |
| (canonicalize_loop_ivs): Identify reductions, add reduction_list |
| parameter. |
| (transform_to_exit_first_loop): Add reduction support, add |
| reduction_list parameter. |
| (gen_parallel_loop): Add reduction_list parameter. Add call |
| separate_decls_in_loop with |
| the new argument. Traverse reductions and call |
| initialize_reductions, create_call_for_reduction. |
| (parallelize_loops): Create and delete the reduction list. |
| (add_field_for_name): Change use of data parameter. Add fields for |
| reductions. |
| * tree-vectorizer.h (vect_analyze_loop_form): Add declaration. |
| * tree-vect-analyze.c (vect_analyze_loop_form): export it. |
| * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. |
| * tree-inline.c (estimate_num_insns_1): add cases for |
| OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. |
| * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. |
| * tree-ssa-operands.c (get_addr_dereference_operands): |
| New function. Subroutine of get_indirect_ref_operands. |
| (get_indirect_ref_operands): Call get_addr_dereference_operands. |
| (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. |
| |
| |
| 2007-10-29 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.c: Include df.h. |
| (cris_address_cost): Add gcc_assert for canonicalization |
| assumptions. For PLUS with MULT or register, correct |
| test for register in other arm. Tweak comments. |
| |
| 2007-10-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_vars_for_offset): Add parameter |
| telling if the var is to be treated as points-to location. |
| (add_vars_for_bitmap): Pass true to add_vars_for_offset. |
| (add_virtual_operand): Only recurse into MPTs if aliases |
| is from a NMT. |
| |
| 2007-10-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up. |
| (add_vars_for_bitmap): Do not recurse further. Only add vars |
| for pointed-to SFTs. |
| (add_virtual_operand): Re-instantiate loop to add operands for |
| aliases. Recurse into MPTs. |
| (get_indirect_ref_operands): If we fall back to use a pointers |
| SMT, make sure to not prune based on the access offset and size. |
| |
| 2007-10-28 Andrew Pinski <pinskia@gmail.com> |
| |
| PR tree-opt/33589 |
| * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup |
| the eh information on the statement. |
| |
| 2007-10-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (subvar_t): Make it a VEC. |
| (struct subvar): Remove. |
| (struct var_ann_d): Use VEC(tree,gc) to store subvars. |
| * tree-flow-inline.h (get_subvar_at): Adjust iterators over |
| variable subvars. |
| * tree-into-ssa.c (mark_sym_for_renaming): Likewise. |
| * tree-nrv.c (dest_safe_for_nrv_p): Likewise. |
| * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise. |
| (set_initial_properties): Likewise. |
| (setup_pointers_and_addressables): Likewise. |
| (new_type_alias): Likewise. |
| (create_overlap_variables_for): Likewise. |
| * tree-dfa.c (dump_subvars_for): Likewise. |
| * tree-ssa-operands.c (add_vars_for_offset): Likewise. |
| (get_expr_operands): Likewise. |
| (add_to_addressable_set): Likewise. |
| * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. |
| |
| 2007-10-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/33920 |
| * tree-if-conv.c (tree_if_conversion): Force predicate of single |
| successor bb to true when predecessor bb has NULL predicate. |
| (find_phi_replacement_condition): Assert that tmp_cond is non-null. |
| |
| 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.md: Add combiner patterns for DImode extensions |
| of HImode and QImode truncations. Reformat HImode <- QImode pattern |
| for consistency. |
| |
| 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/33895 |
| * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED. |
| |
| 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * dce.c (delete_unmarked_insns): Just delete the RETVAL and |
| LIBCALL notes if they are about to be moved to the same insn. |
| |
| 2007-10-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33870 |
| * tree-ssa-operands.c (add_vars_for_offset): Reduce code |
| duplication. Remove redundant call to access_can_touch_variable. |
| (add_vars_for_bitmap): New helper for recursing over MPT contents. |
| (add_virtual_operand): Use it. |
| |
| 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR fortran/31608 |
| * pa.h (ASM_PN_FORMAT): Delete define. |
| |
| 2007-10-26 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/invoke.texi (Option Summary, optimizations): Remove |
| -fbounds-check. Add -fassociative-math, -freciprocal-math, |
| -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to |
| -fsplit-wide-types to match later entry. Break up a long line. |
| (Option Summary, code gen options) Add -fno-stack-limit. Add |
| missing @gol to the end of a line. |
| (Optimization Options): Remove -fbounds-check, which is also |
| documented under Code Generation Options. Remove =n from |
| index entry for -ftree-parallelize-loops. Change -fno-cprop-registers |
| to -fcprop-registers to match other options, and say when it is |
| enabled rather than disabled. Remove extra index entry for |
| -fno-cx-limited-range. Add index entries for -fstack-protector |
| and -fstack-protector-all. |
| (Code Gen Options): Add index entry for -ftls-model. |
| |
| 2007-10-26 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.c (avr_OS_task_function_p): Add new function. |
| (avr_regs_to_save): Handle functions with 'OS_task' attribute. |
| (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue, |
| expand_epilogue, output_movhi): Don't handle 'main' function. |
| (avr_attribute_table): Add 'OS_task' function attribute. |
| * config/avr/avr.h (machine_function): Remove 'is_main' field, add |
| 'is_OS_task' field. |
| * config/avr/avr.md (return_from_main_epilogue): Remove insn. |
| (return_from_epilogue, return_from_interrupt_epilogue): Don't handle |
| 'main' function. |
| * config/avr/avr.opt (minit-stack): Remove. |
| |
| 2007-10-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-nested.c (get_trampoline_type): Fix thinko. |
| |
| 2007-10-26 Douglas Gregor <doug.gregor@gmail.com> |
| |
| PR c++/33601 |
| * tree.c (build_offset_type): Build canonical type based on the |
| TYPE_MAIN_VARIANT of the base type. |
| |
| 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * reorg.c (emit_delay_sequence): Move insn locator from the |
| first insn to the sequence. |
| |
| 2007-10-26 Samuel Tardieu <sam@rfc1149.net> |
| |
| * ipa-pure-const.c (check_decl): Return immediately when |
| pure_const_state has been set to IPA_NEITHER. |
| |
| 2007-10-25 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/33833 |
| * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR |
| and convert init to sizetype in inner_base construction. |
| |
| 2007-10-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (mem_sym_stats): Remove. |
| (dump_mem_sym_stats_for_var): Declare. |
| * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var. |
| (mem_sym_stats): Move ... |
| * tree-ssa-alias.c (mem_sym_stats): ... here and make it static. |
| (mem_sym_score): Rename from ... |
| (pscore): ... this. Remove. |
| (dump_mem_sym_stats_for_var): New function. Dump the score, but |
| not the frequencies. |
| (compare_mp_info_entries): Make sort stable by disambiguating |
| on DECL_UID. |
| |
| 2007-10-25 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/33866 |
| * tree-vect-transform.c (vectorizable_store): Check operands of all |
| the stmts in the group of strided accesses. Get def stmt type for each |
| store in the group and pass it to vect_get_vec_def_for_stmt_copy (). |
| |
| 2007-10-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/constraints.md (Y0): Rename register constraint to Yz. |
| (Yt): Rename register constraint to Y2. |
| * config/i386/sse.md: Use renamed register constraints. |
| * config/i386/mmx.md: Ditto. |
| * config/i386/i386.md: Ditto. |
| |
| 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint. |
| |
| 2007-10-24 Chao-ying Fu <fu@mips.com> |
| |
| * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or |
| DW_ATE_signed_fixed to describe FIXED_POINT_TYPE. |
| |
| 2007-10-24 Samuel Tardieu <sam@rfc1149.net> |
| Olga Golovanevsky <olga@il.ibm.com> |
| |
| * ipa-struct-reorg.c (replace_field_acc): Make it clear to |
| the compiler that wr.wrap and wr.domain are initialized in |
| any case. |
| |
| 2007-10-24 Samuel Tardieu <sam@rfc1149.net> |
| |
| * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC |
| to print gcov_type values. |
| |
| 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.h: Do not include progmem_section definition when |
| building with IN_TARGET_LIBS. |
| |
| 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/33755 |
| * config/mips/mips.c (mips_lo_sum_offset): New structure. |
| (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq) |
| (mips_lo_sum_offset_lookup, mips_record_lo_sum) |
| (mips_orphaned_high_part_p: New functions. |
| (mips_avoid_hazard): Don't check INSN_P here. |
| (mips_avoid_hazards): Rename to... |
| (mips_reorg_process_insns): ...this. Cope with |
| !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations, |
| or turn them into nops. |
| (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to |
| dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns. |
| (mips_set_mips16_mode): Don't set flag_delayed_branch here. |
| (mips_override_options): Set flag_delayed_branch to 0. |
| |
| 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe |
| MIPS-specific implementation details. |
| (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro. |
| (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise. |
| (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD |
| for targets with movmemsi. |
| (MOVE_BY_PIECES_P): Define. |
| * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete. |
| (mips_block_move_loop): Add a bytes_per_iter argument. |
| (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT. |
| Update call to mips_block_move_loop. |
| |
| 2007-10-24 Michael Matz <matz@suse.de> |
| |
| PR debug/33868 |
| * var-tracking.c (variable_union): Don't break after one loop |
| iteration but only when a difference is found. |
| (dump_variable): Also print DECL_UID. |
| |
| 2007-10-24 Olga Golovanevsky <olga@il.ibm.com> |
| |
| * ipa-type-escape.h: Expose function |
| is_array_access_through_pointer_and_index. |
| * ipa-type-escape.c |
| (is_array_access_through_pointer_and_index): |
| Add three new parameters. Add support of |
| POINTER_PLUS_EXPR tree code. |
| |
| 2007-10-24 Olga Golovanevsky <olga@il.ibm.com> |
| |
| * ipa-struct-reorg.c, ipa-struct-reorg.h: New files. |
| * tree-pass.h: Add pass_ipa_struct_reorg. |
| * common.opt: Add ipa-struct-reorg flag. |
| * Makefile.in: Add ipa-strcut-reorg.o compilation. |
| * passes.c: Add pass pass_ipa_struct_reorg. |
| * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO. |
| * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO. |
| |
| 2007-10-24 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/33804 |
| * tree-vect-transform.c (vectorizable_operation): Remove the |
| checks that the vectorization is worthwhile from the transformation |
| phase. |
| |
| 2007-10-24 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vect-analyze.c (vect_build_slp_tree): Return false if |
| vectype cannot be determined for the scalar type. |
| (vect_analyze_slp_instance): Likewise. |
| * tree-vect-transform.c (vect_model_reduction_cost): Change the |
| return type to bool. Return false if vectype cannot be determined |
| for the scalar type. |
| (vect_get_constant_vectors): Return false if vectype cannot be |
| determined for the scalar type. |
| (get_initial_def_for_induction, vect_get_vec_def_for_operand, |
| get_initial_def_for_reduction, vect_create_epilog_for_reduction, |
| vectorizable_reduction): Likewise. |
| |
| 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org> |
| |
| * config.gcc: For a FreeBSD target, parse the value of ${target} |
| to determine the value of FBSD_MAJOR, instead of adding an |
| explicit check for every possible FreeBSD major version. |
| |
| 2007-10-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/33846 |
| * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes. |
| |
| 2007-10-23 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/33860 |
| * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow |
| interleaved accesses in case the dr is inside the inner-loop during |
| outer-loop vectorization. |
| |
| 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry. |
| Document MEM_POINTER. Replace mentions of "integrated" |
| field with "return_val". Delete outdated stuff. |
| |
| 2007-10-23 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_override_options): Set |
| rs6000_altivec_abi on AIX. |
| (conditional_register_usage): Set VR20:31 fixed on AIX. |
| |
| 2007-10-23 Richard Guenther <rguenther@suse.de> |
| |
| * alias.c (get_alias_set): For INDIRECT_REFs, deal with |
| SSA_NAME pointers. |
| |
| 2007-10-22 Seongbae Park <seongbae.park@gmail.com> |
| David S. Miller <davem@davemloft.net> |
| |
| * df-scan.c (df_get_call_refs): Mark global registers as both a |
| DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF. |
| |
| 2007-10-22 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/33834 |
| PR tree-optimization/33835 |
| * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE |
| stmts need to be checked for success seperately. |
| * tree-vect-transform.c (vectorizable_call, vectorizable_conversion): |
| Remove the check that stmt is not LIVE. |
| (vectorizable_assignment, vectorizable_induction): Likewise. |
| (vectorizable_operation, vectorizable_type_demotion): Likewise. |
| (vectorizable_type_promotion, vectorizable_load, vectorizable_store): |
| Likewise. |
| (vectorizable_live_operation): Check that op is not NULL. |
| |
| 2007-10-22 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/invoke.texi (Optimization Options): In the summary, show |
| that the value for options -falign-jumps, -falign-labels, |
| -falign-loops, -falign-functions, -fsched-stalled-insns, and |
| -fsched-stalled-insns-dep is optional. In the summary, show that |
| -fsched-stalled-insns takes an optional argument and that |
| -fparallelize-loops takes an argument. Add opindex for several |
| optimization options, and fix typos in the opindex commands for |
| several others. In the descriptions for -fsched-stalled-insns |
| and -fsched-stalled-insns-dep, show the options with and without |
| values. |
| |
| 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never |
| produced. |
| * config/avr/avr.h (LINK_SPEC): Likewise. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/33644 |
| * cfgcleanup.c: Do not include dce.h. |
| * cfgrtl.c (delete_insn_chain_and_edges): Resurrect. |
| * combine.c (distribute_notes): Delete REG_LIBCALL_ID case. |
| * dce.c (something_changed): Delete. |
| (libcall_dead_p): New predicate. |
| (delete_unmarked_insns): Use it to delete dead libcalls. |
| Deal with REG_LIBCALL and REG_RETVAL notes. |
| (prescan_libcall_for_dce): New function. |
| (prescan_insns_for_dce): Use it to deal with libcalls. |
| (mark_reg_dependencies): Do nothing special for libcalls. |
| (dce_process_block): Likewise. |
| (fast_dce): Delete unused local variable. |
| (run_fast_dce): Do not return a value. |
| * dce.h (struct df): Delete. |
| (run_fast_dce): Adjust prototype. |
| * optabs.c (libcall_id): Delete. |
| (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes. |
| (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes. |
| * reload1.c (reload): Delete REG_LIBCALL_ID case. |
| * rtl.h (delete_insn_chain_and_edges): Resurrect prototype. |
| * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL |
| notes instead of REG_LIBCALL_ID notes. |
| * reg-notes.def (LIBCALL_ID): Delete. |
| * Makefile.in (see.o): Add dce.h dependency. |
| (cfgcleanup.o): Remove dce.h dependency. |
| |
| 2007-10-22 Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/33855 |
| * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE |
| and VECTOR_TYPE. |
| |
| 2007-10-22 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/33854 |
| * tree-vect-analyze.c (vect_determine_vectorization_factor): Add |
| FLOAT_EXPR to the list of promotion operations. |
| |
| 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/29473 |
| PR target/29493 |
| * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax. |
| (print_reg): Print register prefix only with AT&T asm syntax. |
| Support pc_rtx for RIP register. |
| (print_operand_address): Use print_reg()'s pc_rtx support for RIP |
| relative addressing. Always print segment register prefix with AT&T |
| asm syntax and never with Intel asm syntax. |
| (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. |
| Fix prefix for 16-byte XFmode operands. |
| (output_addr_const_extra): Support Intel asm syntax. |
| (x86_file_start): Don't use register prefix with Intel asm syntax. |
| * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo. |
| ("return_internal_long"): Fix Intel asm syntax output. |
| ("set_got_rex64"): Support Intel asm syntax. |
| ("set_rip_rex64"): Likewise. |
| ("set_got_offset_rex64"): Likewise. |
| ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm |
| syntax. |
| ("*tls_global_dynamic_64"): Likewise. |
| ("*tls_local_dynamic_base_64"): Likewise. |
| ("*load_tp_si")("*load_tp_di"): Likewise. |
| ("*add_tp_si")("*add_tp_di"): Likewise. |
| ("*tls_dynamic_lea_64"): Likewise. |
| ("*sibcall_value_1_rex64_v"): Likewise. |
| ("stack_tls_protect_set_si"): Likewise. |
| ("stack_tls_protect_set_di"): Likewise. |
| ("stack_tls_protect_test_si"): Likewise. |
| ("stack_tls_protect_test_di"): Likewise. |
| * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm |
| syntax output. |
| ("*movv2sf_internal_rex64"): Likewise. |
| * config/i386/cpuid.h (__cpuid): Support Intel asm syntax. |
| (__get_cpuid_max): Likewise. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give |
| the STRICT_P argument type "bool" rather than "int". |
| (mips_legitimate_address_p): Likewise. |
| (fp_register_operand, lo_operand): Delete. |
| (mips_subword): Give the HIGH_P argument type "bool" rather than "int". |
| (mips_emit_scc): Rename to... |
| (mips_expand_scc): ...this. |
| (gen_conditional_branch): Rename to... |
| (mips_expand_conditional_branch): ...this. |
| (gen_conditional_move): Rename to... |
| (mips_expand_conditional_move): ...this. |
| (mips_gen_conditional_trap): Rename to... |
| (mips_expand_conditional_trap): ...this and take an rtx code instead |
| of an operands array. |
| (mips_expand_call): Give the SIBCALL_P argument type "bool" |
| rather than "int". |
| (mips_emit_fcc_reload): Rename to... |
| (mips_expand_fcc_reload): ...this. |
| (init_cumulative_args): Rename to... |
| (mips_init_cumulative_args): ...this and remove the libname argument. |
| (function_arg_advance): Rename to... |
| (mips_function_arg_advance): ...this. |
| (function_arg): Rename to... |
| (mips_function_arg): ...this and use "rtx" instead of |
| "struct rtx_def *". |
| (function_arg_boundary): Rename to... |
| (mips_function_arg_boundary): ...this. |
| (mips_expand_unaligned_load): Rename to... |
| (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH |
| and BITPOS arguments type "HOST_WIDE_INT". |
| (mips_expand_unaligned_store): Rename to... |
| (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH |
| and BITPOS arguments type "HOST_WIDE_INT". |
| (override_options): Rename to... |
| (mips_override_options): ...this. |
| (print_operand): Rename to... |
| (mips_print_operand): ...this. |
| (print_operand_address): Rename to... |
| (mips_print_operand_address): ...this. |
| (mips_output_ascii): Remove the PREFIX argument. |
| (mips_expand_epilogue): Give the SIBCALL_P argument type "bool" |
| rather than "int". |
| (mips_can_use_return_insn): Return a "bool" rather than an "int". |
| (mips_function_value): Remove the FUNC argument. Use "rtx" instead |
| of "struct rtx_def *". |
| (mips_secondary_reload_class): Give the IN_P argument type "bool" |
| rather than "int". |
| (build_mips16_call_stub): Delete. |
| (mips_store_data_bypass_p): Return a "bool" rather than an "int". |
| (mips_use_ins_ext_p): Give the second and third arguments type |
| "HOST_WIDE_INT" rather than "rtx". |
| * config/mips/mips.h: Update after the above changes. Tweak comments |
| and formatting. |
| (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument. |
| (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. |
| (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the |
| element type from "char" to "bool". |
| (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely) |
| (mips_cpu_info_table): Delete. |
| * config/mips/mips.md: Update after the above changes. Tweak some |
| formatting. |
| * config/mips/mips-ps-3d.md: Likewise. |
| * config/mips/mips.c: Tweak comments and formatting. |
| Use NULL-like macros rather than 0 in various places. |
| (mips_section_threshold): Rename to... |
| (mips_small_data_threshold): ...this and give it an unsigned type. |
| (num_source_filenames): Remove explicit initialization. |
| (sdb_label_count): Likewise. |
| (sym_lineno): Delete. |
| (set_noat): Make static. |
| (mips_branch_likely): Likewise, and give it type "bool". |
| (mips_isa_info): Rename to... |
| (mips_isa_option_info): ...this. |
| (mips_flag_delayed_branch): Rename to... |
| (mips_base_delayed_branch): ...this. |
| (mips_split_addresses): Delete. |
| (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the |
| element type from "char" to "bool". |
| (mips_regno_to_class): Add an explicit array size. |
| (mips16_flipper): Change from type "int" to type "bool". |
| (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check. |
| (mips_tls_operand_p): Rename to... |
| (mips_tls_symbol_p): ...this. |
| (mips_global_symbol_p): Remove redundant "const". |
| (mips_offset_within_alignment_p): Simplify. |
| (mips_regno_mode_ok_for_base_p): Change the name of the last argument |
| to STRICT_P and give it type bool. |
| (mips_valid_base_register_p): Likewise. |
| (mips_classify_address): Likewise. |
| (mips_legitimate_address_p): Likewise. |
| (mips16_unextended_reference_p): Take the offset as an |
| "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify. |
| (mips_const_insns): Use IN_RANGE. |
| (mips_force_temporary): Remove an unnecessary copy_rtx. |
| (mips16_gp_pseudo_reg): Simplify. |
| (mips_split_symbol): Remove an unnecessary copy_rtx. |
| (mips_legitimize_tls_address): Only create registers if we need them. |
| (mips_legitimize_address): Use mips_split_plus. |
| (mips_move_integer): Swap DEST and TEMP arguments. Rename local |
| variable COST to NUM_OPS. |
| (mips_legitimize_move): Use gen_lowpart. |
| (mips_rewrite_small_data): Rename the OP parameter to PATTERN. |
| (m16_check_op): Use IN_RANGE. |
| (mips_subword): Give the HIGH_P argument type "bool" rather than "int". |
| (mips_split_doubleword_move): Pass booleans to mips_subword. |
| (mips_output_move): Store the mode in a local variable. |
| Explicitly assert that this function does not deal with |
| MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of |
| cases more consistent. |
| (mips_relational_operand_ok_p): Rename to... |
| (mips_int_order_operand_ok_p): ...this. |
| (mips_canonicalize_comparison): Rename to... |
| (mips_canonicalize_int_order_test): ...this. |
| (mips_emit_int_relational): Rename to... |
| (mips_emit_int_order_test): ...this. Store the mode in a local |
| variable. |
| (mips_reverse_fp_cond_p): Rename to... |
| (mips_reversed_fp_cond): ...this. |
| (mips_emit_compare): Make the order of the statements more consistent. |
| (mips_emit_scc): Rename to... |
| (mips_expand_scc): ...this. |
| (gen_conditional_branch): Rename to... |
| (mips_expand_conditional_branch): ...this. |
| (gen_conditional_move): Rename to... |
| (mips_expand_conditional_move): ...this. Build the condition |
| separately from the main pattern. |
| (mips_gen_conditional_trap): Rename to... |
| (mips_expand_conditional_trap): ...this and take an rtx code instead |
| of an operands array. Simplify. |
| (init_cumulative_args): Rename to... |
| (mips_init_cumulative_args): ...this. Use memset rather than a |
| copy from a zeroed static. Use prototype_p and stdarg_p. |
| (mips_arg_info): Rename to... |
| (mips_get_arg_info): ...this and put the INFO argument first. |
| (function_arg): Rename to... |
| (mips_function_arg): ...this and use "rtx" instead of |
| "struct rtx_def *". Only split structures into chunks if |
| TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on |
| a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a |
| comparison with REAL_TYPE. Rename local variable REG to REGNO |
| and make it unsigned. |
| (function_arg_advance): Rename to... |
| (mips_function_arg_advance): ...this. |
| (function_arg_boundary): Rename to... |
| (mips_function_arg_boundary): ...this. |
| (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison |
| with MODE_INT. |
| (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a |
| comparison with REAL_TYPE. |
| (mips_function_value): Remove the FUNC argument. Rename local |
| variable UNSIGNEDP to UNSIGNED_P. |
| (mips_return_in_memory): Use IN_RANGE. |
| (mips_setup_incoming_varargs): Pass a boolean rather than an int |
| to FUNCTION_ARG_ADVANCE. |
| (mips_gimplify_va_arg_expr): Rename local variable INDIRECT |
| to INDIRECT_P. Remove a redundant mips_abi check. Only calculate |
| SIZE and RSIZE if needed. |
| (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool" |
| rather than "int". |
| (build_mips16_function_stub): Rename to... |
| (mips16_build_function_stub): ...this. |
| (build_mips16_call_stub): Rename to... |
| (mips16_build_call_stub): ...this. Make static, and return a |
| "bool" rather than an "int". Rename the ARG_SIZE argument to |
| ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give |
| it type "bool". Use "jr" rather than "j". Use XNEW. Simplify. |
| (mips_load_call_address): Give the SIBCALL_P argument type "bool" |
| rather than "int". |
| (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs |
| are not sibling ones. |
| (mips_emit_fcc_reload): Rename to... |
| (mips_expand_fcc_reload): ...this. |
| (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type |
| "HOST_WIDE_INT". |
| (mips_expand_unaligned_load): Rename to... |
| (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH |
| and BITPOS arguments type "HOST_WIDE_INT". Remove redundant |
| SUBREG_BYTE check. |
| (mips_expand_unaligned_store): Rename to... |
| (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH |
| and BITPOS arguments type "HOST_WIDE_INT". |
| (mips_use_ins_ext_p): Rename second and third arguments to WIDTH |
| and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx". |
| Use IN_RANGE. |
| (mips_init_split_addresses): Replace with... |
| (mips_split_addresses_p): ...this new function. |
| (mips_init_relocs): Check mips_split_addresses_p () rather than |
| mips_split_addresses. Always initialize mips_split_p with booleans. |
| (print_operand_reloc): Rename to... |
| (mips_print_operand_reloc): ...this. Use a gcc_assert rather than |
| a fatal_error. |
| (print_operand): Rename to... |
| (mips_print_operand): ...this. |
| (print_operand_address): Rename to... |
| (mips_print_operand_address): ...this. Use GP_REG_FIRST. |
| (mips_in_small_data_p): Simplify. |
| (mips_output_ascii): Remove the PREFIX argument and "register" |
| keywords. Use the STRING parameter directly and cast to |
| "unsigned char". |
| (mips16e_collect_argument_save_p): Use IN_RANGE. |
| (mips_function_has_gp_insn): Simplify. |
| (mips_set_return_address): Use BITSET_P. |
| (mips_restore_gp): Use a separate statement to pick the base |
| register. |
| (mips_output_function_prologue): Use a local FRAME variable. |
| (mips_save_reg): Pass booleans to mips_subword. |
| (mips_expand_prologue): Use a local FRAME variable. Use |
| cprestore_size to detect when .cprestore is needed. |
| (mips_restore_reg): Use GP_REG_FIRST. |
| (mips_expand_epilogue): Give the SIBCALL_P argument type "bool" |
| rather than "int". Use local FRAME and REGNO variables. |
| (mips_can_use_return_insn): Return a "bool" rather than an "int". |
| (mips_secondary_reload_class): Give the IN_P argument type "bool" |
| rather than "int". |
| (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN. |
| (mips_store_data_bypass_p): Return a "bool" rather than an "int". |
| (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P. |
| (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P. |
| (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P. |
| (builtin_description): Rename to... |
| (mips_builtin_description): ...this. |
| (mips_bdesc): Rename to... |
| (mips_ps_bdesc): ...this. |
| (sb1_bdesc): Rename to... |
| (mips_sb1_bdesc): ...this. |
| (dsp_bdesc): Rename to... |
| (mips_dsp_bdesc): ...this. |
| (dsp_32only_bdesc): Rename to... |
| (mips_dsp_32only_bdesc): ...this. |
| (bdesc_map): Rename to... |
| (mips_bdesc_map): ...this. |
| (bdesc_arrays): Rename to... |
| (mips_bdesc_arrays): ...this. |
| (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO. |
| Tweak error message. |
| (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P. |
| Rename local variables I and J to OPNO and ARGNO respectively. |
| Assert that the number of arguments is no more than the number of |
| input operands. |
| (mips_expand_builtin_compare): Use an array of arguments rather |
| than an array of operands. Assert that the number of operands is |
| as expected. |
| (add_constant): Rename to... |
| (mips16_add_constant): ...this. Use XNEW. |
| (dump_constants_1): Rename to... |
| (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P. |
| (dump_constants): Rename to... |
| (mips16_emit_constants): ...this. |
| (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO. |
| (mips_set_mips16_mode): Don't call mips_init_split_addresses. |
| Assign mips16_p to was_mips16_p. |
| (mips_parse_cpu): Tweak warning message. |
| (override_options): Rename to... |
| (mips_override_options): ...this. Move the mips_cost initialization |
| out of the "shared with GAS" block. Quote option names in error |
| messages. |
| (mips_conditional_register_usage): Make local variable REGNO unsigned. |
| (mips_order_regs_for_local_alloc): Remove register keyword. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * system.h (IN_RANGE): Cast each argument individually. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float |
| MIPS16 code unless using o32 or o64. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_cannot_change_mode_class): Don't check |
| for modes smaller than 4 bytes. |
| * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove |
| FPR alternatives. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips-protos.h (mips_output_aligned_bss): Delete. |
| * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete. |
| (ASM_OUTPUT_ALIGNED_BSS): Delete. |
| * config/mips/mips.c (mips_output_aligned_bss): Delete. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid |
| sibling calls to "mips16" functions if the function satisfies |
| const_call_insn_operand. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_va_start): Fix types in calls |
| to build_int_cst. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals |
| if ISA_HAS_FP4. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro. |
| * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1 |
| instead of checking mips_isa. |
| |
| 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * doc/invoke.texi (-mpaired-single): Don't say that the option |
| requires 64-bit code. |
| * config/mips/mips-protos.h (mips_modes_tieable_p): Declare. |
| * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro. |
| (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for |
| V2SF if ISA_MIPS32R2. |
| (MODES_TIEABLE_P): Use mips_modes_tieable_p. |
| * config/mips/mips.c (mips_rtx_costs): Pass a mode argument |
| to ISA_HAS_NMADD_NMSUB. |
| (mips_split_doubleword_move): Handle V2SF. |
| (mips_modes_tieable_p): New function. |
| (override_options): Report a warning rather than an error when |
| -mpaired-single is used on ISAs that don't support it; use |
| ISA_HAS_PAIRED_SINGLE to check that case. |
| * config/mips/mips.md (MOVE64): New mode iterator. Replace DI |
| and DF move splitters with a single MOVE64 splitter, thereby adding |
| a V2SF splitter too. |
| (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF. |
| Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator. |
| (HALFMODE): Add V2SF. |
| (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>) |
| (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB. |
| (movv2sf_hardfloat_64bit): Tweak ordering of conditions. |
| (movv2sf_hardfloat_32bit): New pattern. |
| (load_low<mode>, load_high<mode>, store_word<mode>): Remove |
| TARGET_DOUBLE_FLOAT conditions. |
| |
| 2007-10-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point |
| saved CR2 offset to low 32 bits of regs->ccr rather than the whole |
| 64-bit register in 64-bit libgcc. |
| |
| 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b. |
| * config/avr/avr.h (LINK_SPEC): Likewise. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror= |
| and -Wfatal-errors together. |
| |
| 2007-10-20 Alan Modra <amodra@bigpond.net.au> |
| |
| PR target/33812 |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16 |
| change for vrsave, ie restore after frame pop. |
| |
| 2007-10-19 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/niagara2.md: Fix copyright notice. |
| |
| 2007-10-19 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/23820 |
| PR tree-optimization/24309 |
| PR tree-optimization/33766 |
| * testsuite/gcc.dg/tree-ssa/pr23820.c: New. |
| * testsuite/gcc.dg/tree-ssa/pr24309.c: New. |
| * testsuite/gcc.dg/tree-ssa/pr33766.c: New. |
| * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed. |
| * tree-loop-linear.c (perfect_loop_nest_depth): New. |
| (linear_transform_loops): Use perfect_loop_nest_depth. |
| * lambda-code.c (perfect_nest_p): Outer loops in perfect nests |
| should have a single condition: their exit. |
| |
| 2007-10-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33816 |
| PR middle-end/32921 |
| * stor-layout.c (layout_type): Assert that aggregates do not |
| have their alias sets set. |
| * alias.c (get_alias_set): Return alias set zero for incomplete |
| types, return the alias set of the element for incomplete array |
| types, but do not remember these. |
| |
| 2007-10-19 Richard Guenther <rguenther@suse.de> |
| |
| Revert |
| 2007-10-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32921 |
| * tree.c (build_array_type): Do not re-layout unbound array |
| types. |
| |
| 2007-10-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32921 |
| * tree.c (build_array_type): Do not re-layout unbound array types. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_canonicalize_comparison): Check |
| mips_relational_operand_ok_p before trying to rewrite the test. |
| Only calculate PLUS_ONE if needed. |
| (mips_emit_int_relational): Don't call mips_relational_operand_ok_p |
| here. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR |
| calculation. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that |
| the call uses the incoming value of $2. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem |
| rather then gen_rtx_MEM. |
| (mips_setup_incoming_varargs): Use gen_frame_mem rather than |
| gen_rtx_MEM. |
| (mips_set_return_address): Likewise. |
| (mips_restore_gp): Likewise. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (gpr_mode): Delete. |
| (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD |
| instead of gpr_mode. |
| (mips_for_each_saved_reg): Likewise. |
| (mips_expand_prologue, mips_expand_epilogue): Likewise. |
| (override_options): Don't initialize gpr_mode. |
| * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD |
| case last. |
| (mips_class_max_nregs): Calculate the smallest consituent register |
| size and use that to determine an upper bound on the number of |
| registers. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips16_copy_fpr_return_value): New function, |
| split out from... |
| (mips_expand_epilogue): ...here. |
| (mips_mdebug_abi_name): New function, split out from... |
| (mips_file_start): ...here. |
| (mips_hard_regno_mode_ok_p): New function, split out from... |
| (override_options): ...here. |
| (mips_expand_builtin_1): New function, split out from... |
| (mips_expand_buitin): ...here. Abort if we don't recognize |
| the function. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (build_mips16_function_stub): Load the |
| target address into $1 before transfering the arguments. |
| Don't use ".set noreorder". |
| (build_mips16_call_stub): Likewise. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_output_32bit_xfer): New function. |
| (mips_output_64bit_xfer): Likewise. |
| (mips16_fp_args): Rename to... |
| (mips_output_args_xfer): ...this and replace the FROM_FP_P argument |
| with a DIRECTION argument. Use mips_output_32bit_xfer and |
| mips_output_64bit_xfer. |
| (build_mips16_function_stub): Update accordingly. |
| (mips16_fpret_double): Delete. |
| (build_mips16_call_stub): Update after above changes. |
| Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead |
| of mips16_fpret_double. Use GP_REG_RETURN. |
| |
| 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and |
| use asm_out_file instead. |
| (build_mips16_function_stub): Likewise. |
| (build_mips16_call_stub, mips_output_function_prologue): Update |
| accordingly. |
| |
| 2007-10-18 David S. Miller <davem@davemloft.net> |
| |
| Add Niagara-2 support. |
| * doc/invoke.texi: Document -m{cpu,tune}=niagara2. |
| * config.gcc: Add niagara2 to cpu and tune lists for sparc. |
| * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2. |
| (include): Add inclusion of niagara2.md |
| * config/sparc/sparc.c (niagara2_costs): New. |
| (sparc_override_options): Add niagara2 entry to cpu_default[] |
| and cpu_table[]. Set align_functions to 32 on Niagara2. Use |
| niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for |
| PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE. |
| (sparc_initialize_trampoline): Handle niagara2 like niagara. |
| (sparc64_initialize_trampoline): Likewise. |
| (sparc_use_sched_lookahead): Likewise. |
| (sparc_issue_rate): Likewise. |
| * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and |
| mcpu=niagara2 |
| * config/sparc/sparc.h (TARGET_CPU_niagara2): Define. |
| ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for |
| TARGET_CPU_niagara2. |
| (PROCESSOR_NIAGARA2): New. |
| (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2. |
| (BRANCH_COST): Likewise. |
| * config/sparc/linux64.h: Handle TARGET_CPU_niagara2. |
| * config/sparc/sol2.h: Likewise. |
| * config/sparc/niagara2.md: New file. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and |
| and fp_reg_size. |
| (mips_compute_frame_info): Remove associated code. |
| (mips16e_build_save_restore): Check num_fp instead of fp_reg_size. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips-protos.h (compute_frame_size): Delete. |
| * config/mips/mips.h: Update comments. |
| * config/mips/mips.c (mips_frame_info): Remove initialized. |
| (compute_frame_size): Rename to... |
| (mips_compute_frame_info): ...this and make static. Remove the |
| SIZE argument and return no value. Remove the setting of initialized. |
| Update rest of file accordingly. |
| (mips_set_return_address): Don't call compute_frame_size. |
| (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31). |
| Don't call compute_frame_size. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips-protos.h (mips_frame_pointer_required): Declare. |
| * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use |
| mips_hard_frame_pointer_required. |
| (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for |
| large MIPS16 frames. |
| * config/mips/mips.c (mips_frame_pointer_required): New function. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset |
| and hard_frame_pointer_offset. |
| (mips_debugger_offset): Use hard_frame_pointer_offset. |
| (mips16e_collect_argument_save_p): Likewise. |
| (compute_frame_size): Initialize arg_pointer_offset and |
| hard_frame_pointer_offset. |
| (mips_initial_elimination_offset): Use them. |
| (mips_output_function_prologue): Use hard_frame_pointer_offset. |
| (mips_expand_prologue, mips_expand_epilogue): Likewise. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl |
| profiling code. |
| * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type |
| "unsigned int" rather than "int" and put them with the other |
| register-related fields. Put expanded comments above fields |
| rather than to their right. |
| (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument |
| with a NUM_REGS_PTR argument. |
| (mips16e_save_restore_pattern_p): Update accordingly. |
| (compute_frame_size): Clarify frame diagram. Rewrite. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips-ftypes.def: New file. |
| * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2) |
| (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros. |
| (mips_function_type): Redefine using mips-ftypes.def. |
| (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names. |
| (mips_builtin_vector_type): New function. |
| (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI) |
| (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF) |
| (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1) |
| (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New |
| macros. |
| (mips_build_function_type): New function. |
| (mips_init_builtins): Use it to create types lazily. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (set_volatile): Delete. |
| * config/mips/mips.c (set_volatile): Delete. |
| (mips_print_operand_punctuation): New function, split out from |
| print_operand. Remove '%{', '%}', '%~', '%&' and '%!'. |
| Use the same character ordering in the code and the comments. |
| Use a recursive call to handle '*'. Abort on unknown characters. |
| (mips_init_print_operand_punct): New function, split out from |
| override_options. |
| (mips_print_int_branch_condition): New function, split out from |
| print_operand. Use GET_RTX_NAME. Use output_operand_lossage |
| to report unexpected codes. |
| (mips_print_float_branch_condition): New function, split out from |
| print_operand. Use output_operand_lossage to report unexpected codes. |
| (print_operand): Rework to use a case statement. Use the |
| same letter ordering in the code and the comments. Use |
| output_operand_lossage to report unexpected codes and |
| reverse_condition to handle inverted branch conditions. |
| (override_options): Use mips_init_print_operand_punct. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h: Move variable declarations to end of file and |
| enclose them all in #ifndef USED_FOR_TARGET. |
| * config/mips/mips.c: Reorder functions into more logical groups, |
| and so that callees appear before callers. Put the targetm |
| initializer at the end of the file. Remove forward static |
| declarations where possible. |
| (mips_init_builtins): Add "static" to definition. |
| (mips_expand_builtin, mips_mode_rep_extended): Likewise. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete. |
| (TARGET_MAX_ANCHOR_OFFSET): Delete. |
| (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS. |
| (mips_set_mips16_mode): Initialize min_anchor_offset and |
| max_anchor_offset directly to constants. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c: Delete trailing whitespace. |
| |
| 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO. |
| (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY, |
| and pick the first. |
| * config/mips/mips.md (load_call<mode>): Don't make the unspec |
| depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO. |
| |
| 2007-10-18 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new |
| reg_offset variable to calculate register locations. |
| |
| 2007-10-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa.c (uid_ssaname_map_eq): New function. |
| (uid_ssaname_map_has): Likewise. |
| (init_tree_ssa): Allocate default_defs as uid_ssaname map. |
| * tree-flow.h (struct gimple_df): Make default_defs a |
| uid_ssaname map. |
| * tree-dfa.c (gimple_default_def): Deal with it. |
| (set_default_def): Likewise. |
| |
| 2007-10-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (struct gimple_df): Make referenced_vars |
| a uid_decl_map. |
| (uid_decl_map_eq): Declare. |
| (uid_decl_map_hash): Likewise. |
| * tree-ssa.c (uid_decl_map_eq): New function. |
| (uid_decl_map_hash): Likewise. |
| (init_tree_ssa): Make referenced_vars a uid_decl_map. |
| * tree-flow-inline.h (first_referenced_var): Deal with |
| the referenced_vars representation change. |
| (next_referenced_var): Likewise. |
| * tree-dfa.c (referenced_var_lookup): Likewise. |
| (referenced_var_check_and_insert): Likewise. |
| (remove_referenced_var): Likewise. |
| |
| 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * config/mips/mips.c (mips_dwarf_register_span): New. |
| (TARGET_DWARF_REGISTER_SPAN): Define. |
| |
| 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn> |
| |
| * config.gcc : update score-*-elf(extra_objs). |
| * config/score/mac.md : Remove. |
| * config/score/misc.md : Remove. |
| * config/score/score7.md : Remove. |
| * config/score/score-mdaux.h : Remove. |
| * config/score/score-mdaux.c : Remove. |
| * config/score/score-version.h : Remove. |
| * config/score/score-generic.md : New. |
| * config/score/score3.h : New. |
| * config/score/score3.c : New. |
| * config/score/score7.h : New. |
| * config/score/score7.c : New. |
| * config/score/mul-div.S : add flush_cache score3 support. |
| * config/score/elf.h : Fix some typos. |
| * config/score/score.md : merge score3 and score7 pattern. |
| * config/score/score.c : use to seperate which target it used. |
| * config/score/score.h : use to seperate the target macro. |
| * config/score/score.opt : remove -mmac option , add -mscore3, |
| -mscore3d and -march OPTION support. |
| |
| 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * cfgexpand.c (expand_stack_vars): Add checking to make sure |
| that the offset of a variable is not greater than the size |
| of the paritition. |
| |
| 2007-10-17 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, |
| atmega88p, atmega168p and atmega328p devices. |
| * config/avr/avr.h (LINK_SPEC): (Ditto.). |
| (CRT_BINUTILS_SPECS): (Ditto.). |
| * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). |
| |
| 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'. |
| * ddg.c: Ditto. |
| * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING. |
| * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'. |
| (print_insn): Move declaration to ... |
| * rtl.h (print_insn): ... here. |
| |
| 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type, |
| m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem, |
| m68k_sched_branch_type): Move declarations to ... |
| * config/m68/m68k-protos.h: ... here. |
| |
| 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * genattrtab.c (main): Rearrange output of insn-attrtab.c headers. |
| |
| 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add attiny48. |
| * config/avr/avr.h (LINK_SPEC): Likewise. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add attiny43u. |
| * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-10-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/33794 |
| * reg-stack.c (move_for_stack_reg): Swap input argument of |
| UNSPEC_TAN insn to the top of the stack. |
| |
| 2007-10-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32961 |
| * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128, |
| IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128, |
| IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128, |
| IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require |
| immediate shift value. |
| * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32, |
| _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, |
| _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument. |
| Remove macros for !__OPTIMIZE__ case. |
| |
| 2007-10-17 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-structalias.c (rewrite_constraints): Don't test for |
| directness anymore. |
| (perform_var_substitution): Only DFS from real nodes. Don't test |
| for directness. |
| (unite_pointer_equivalences): Fix broken test. |
| |
| 2007-10-17 Alan Modra <amodra@bigpond.net.au> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct |
| altivec sp_offset. Rearrange sp_offset assignments to |
| correspond to stack adjustments. Use frame_reg_rtx for |
| SPE register restores. Correct SPE stack adjustment. |
| |
| 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * builtins.c (gimplify_va_arg_expr): Use inform for help message. |
| * toplev.c (check_global_declaration_1): Use appropriate warning |
| option instead of unnamed warning. |
| * stor-layout.c (layout_decl): Likewise. |
| * c-typeck.c (build_conditional_expr): Likewise. |
| (build_compound_expr): Fix wrong comment. |
| (build_binary_op): Use appropriate warning option instead of |
| unnamed warning. |
| * cfgexpand.c (tree_expand_cfg): Likewise. |
| * tree-optimize.c (tree_rest_of_compilation): Likewise. |
| * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise. |
| (execute_warn_function_return): Likewise. |
| * stmt.c (warn_if_unused_value): Likewise. |
| |
| 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316. |
| * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for |
| similar devices. |
| (CRT_BINUTILS_SPECS): Likewsie. |
| * config/avr/t-avr (MULTILIB_MATCHES): Likewise. |
| |
| 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com> |
| |
| PR target/33594 |
| * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define. |
| |
| 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * dce.c (init_dce): Only initialize the obstacks for the fast pass. |
| (fini_dce): Only release them for the fast pass. |
| (end_ud_dce): Delete. |
| (rest_of_handle_ud_dce): Do not modify df_in_progress. |
| Call fini_dce instead of end_ud_dce. |
| (rest_of_handle_fast_dce): Do not modify df_in_progress. |
| (run_fast_df_dce): Reset df_in_progress to false on exit. |
| |
| 2007-10-16 Paolo Bonzini <bonzini@gnu.org> |
| Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * target.h (unspec_may_trap_p): New target hook. |
| * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro. |
| * targhooks.c (default_unspec_may_trap_p): Default implementation of |
| the hook. |
| * targhooks.h (default_unspec_may_trap_p): Declare it. |
| * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook. |
| * rtlanal.c (may_trap_p_1): Use new hook. Make global. |
| * rtl.h (may_trap_p_1): Declare. |
| |
| * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to |
| override default hook implementation. |
| (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the |
| hook. |
| |
| 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Wextra): Move it just after Wall, list the |
| options enabled by Wextra and mention Wuninitialized. |
| |
| 2007-10-15 Nigel Stephens <nigel@mips.com> |
| |
| * config/mips/mips.h (LOCAL_ALIGNMENT): Define. |
| |
| 2007-10-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33136 |
| * opts.c (decode_options): Don't enable flag_ipa_type_escape. |
| |
| 2007-10-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR tree-optimization/33735 |
| PR tree-optimization/33572 |
| * tree-inline.c (update_ssa_across_abnormal_edges): Revert |
| 2007-10-09's change. |
| * except.c (duplicate_eh_regions): Don't look for prev_try |
| beyond ERT_ALLOWED_EXCEPTIONS with an empty list. |
| |
| 2007-10-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/33706 |
| * tree-inline.c (copy_bb): Use bsi_replace to replace a |
| __builtin_va_arg_pack-containing call stmt. |
| |
| 2007-10-15 Razya Ladelsky <razya@il.ibm.com> |
| |
| * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole |
| program flag. |
| |
| 2007-10-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33619 |
| * tree-ssa-ter.c (is_replaceable_p): Return false for all |
| calls. |
| |
| 2007-10-15 David Edelsohn <edelsohn@gnu.org> |
| |
| * config.gcc (powerpc-ibm-aix5*): Install altivec.h. |
| |
| 2007-10-15 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (extract_array_ref): Remove. |
| (fold_comparison): Handle POINTER_PLUS_EXPR with the |
| generic address expression comparison folding. Remove |
| the folding that used extract_array_ref. |
| |
| 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| PR target/33133 |
| * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if |
| speculation type of insn can be changed before trying to do that. |
| |
| 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * dse.c (struct insn_info): Add 'frame_read' field. |
| (scan_insn): For the call to a const function, set frame_read if |
| reload has been run. |
| If the insn reads the frame, kill the frame related stores. |
| (scan_reads_nospill): Likewise. |
| |
| 2007-10-14 Jason Merrill <jason@redhat.com> |
| |
| * tree-eh.c (optimize_double_finally): Don't assume that the |
| cleanup we're duplicating is only one statement. |
| |
| 2007-10-14 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c, |
| config/i386/i386.md, config/i386/sse.md, function.c, jump.c, |
| modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c, |
| tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c, |
| tree-vect-transform.c: Fix comment typos. |
| * doc/extend.texi: Fix a typo. |
| |
| * c-common.h: Remove the prototype for c_expand_body. |
| * c-tree.h: Remove the prototype for c_disregard_inline_limits. |
| * tree.h: Remove the prototype for fold_build_call_expr. |
| |
| * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): |
| Remove. |
| * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn. |
| |
| 2007-10-13 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/aix53.h: New file. |
| * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0. |
| (TARGET_ALTIVEC_ABI): Same. |
| * config/rs6000/aix.h (TARGET_ALTIVEC): Delete. |
| (TARGET_ALTIVEC_ABI): Delete. |
| * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new |
| stanza defaulting to aix5.3. |
| |
| 2007-10-12 Nathan Froyd <froydnj@codesourcery.com> |
| |
<
|