| 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> |
| |
| * config/i386/i386.md (SI_REG, DI_REG): New constants. |
| (strmov): Use defined constants. |
| (cmpstrnsi): Likewise. |
| * config/i386/i386.c (decide_alg): Use defined constants. |
| (ix86_expand_strlen): Likewise. |
| |
| 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition. |
| * var-tracking.c (micro_operation_def): Update comment on u.loc. |
| (mode_for_reg_attrs, var_lowpart): New functions. |
| (add_uses): Consider recording a lowpart of LOC for MO_USE. |
| (add_stores): Likewise MO_SET and MO_COPY. If the source of a set |
| or copy is known, set LOC to the SET that performs the set, instead |
| of the destination. |
| (find_src_status, find_src_set_src): Remove LOC parameter. |
| Replace INSN with the source value. |
| (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when |
| handling MO_SET and MO_COPY. Update the calls to find_src_status |
| and find_src_set_src. |
| |
| 2007-10-12 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR 11001 |
| * config/i386/i386.md (strmov): Check for esi and edi usage. |
| * config/i386/i386.c (decide_alg): Check whether we can use a |
| rep prefix and adjust algorithm choice accordingly. |
| (ix86_expand_strlen): Check for eax, ecx, and edi usage. |
| |
| 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc. |
| |
| 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * global.c (build_insn_chain): Formatting fixes. |
| |
| 2007-10-12 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): For |
| combining both operands require either both have single uses |
| or combining to a constant. |
| |
| 2007-10-12 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/26198 |
| * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from |
| a rhs with side-effects or which is a load. |
| (forward_propagate_into_cond): Also try combining both operands. |
| |
| 2007-10-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/33742 |
| * tree-vect-transform.c (vectorizable_operation): Return false |
| if get_vectype_for_scalar_type for scalar_dest can't be determined. |
| (vectorizable_call): Same for rhs_type and lhs_type. |
| |
| 2007-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/33645 |
| * tree-ssa-live.c (mark_all_vars_used): Add data argument, |
| pass it to walk_tree. |
| (mark_all_vars_used_1): Pass data through to mark_all_vars_used. |
| When calling set_is_used on a VAR_DECL, if data is not NULL and |
| its DECL_UID is in the bitmap, call mark_all_vars_used on its |
| DECL_INITIAL after clearing the bit in bitmap. |
| (remove_unused_locals): Adjust mark_all_vars_used callers. |
| Instead of removing unused global vars from unexpanded_var_list |
| immediately record them in bitmap, call mark_all_vars_used on |
| all used global vars from unexpanded_var_list and only purge |
| global vars that weren't found used even during that step. |
| |
| 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * gthr-posix.h (__gthread_active_init): Create detached instead of |
| joinable thread when testing whether threads are active on hppa-hpux. |
| * gthr-posix95.h (__gthread_active_init): Likewise. |
| |
| 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/33676 |
| * global.c (build_insn_chain): Include insn that occur between |
| basic blocks. |
| |
| 2007-10-11 Tom Tromey <tromey@redhat.com> |
| |
| * gengtype-yacc.y: Delete. |
| |
| 2007-10-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants. |
| * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32, |
| function_value_32, function_value_64, function_value_ms_64, |
| setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call, |
| legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk): |
| Use new constants. |
| |
| 2007-10-11 Richard Guenther <rguenther@suse.de> |
| |
| * gcse.c (hash_scan_set): If the next nonnote insn is in |
| a different basic block insert the set. |
| |
| 2007-10-11 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33724 |
| * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function. |
| (verify_gimple_expr): Use it to verify pointer-to types for |
| ADDR_EXPRs. |
| |
| 2007-10-11 Richard Guenther <rguenther@suse.de> |
| |
| PR c/33726 |
| * c-typeck.c (build_array_ref): Do not strip qualifiers from |
| the array element type. |
| |
| 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/33638 |
| * dse.c (struct insn_info): Remove 'stack_read' field, |
| add 'stack_pointer_based' field. |
| (record_store): For a store with non-constant base, record |
| whether it is stack pointer based. |
| (scan_insn): For the call to a const function, remove stack |
| pointer based stores from the list of local active stores. |
| (scan_reads_nospill): Delete code dealing with const functions. |
| |
| 2007-10-10 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables |
| to HOST_WIDE_INT. |
| (conflict_p, set_conflict, set_conflicts): Likewise. |
| * global.c (global_alloc): Likewise. |
| * ra.h: Update prototypes. |
| |
| 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com> |
| |
| * opth-gen.awk: Fixed generation of comment stating the origin |
| of options.h |
| |
| 2007-10-10 Kazu Hirata <kazu@codesourcery.com> |
| |
| Revert: |
| 2007-10-09 Kazu Hirata <kazu@codesourcery.com> |
| * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' |
| and '%}', respectively. |
| |
| Revert: |
| 2007-10-09 Kazu Hirata <kazu@codesourcery.com> |
| * config/m68k/m68k.c (print_operand): Handle '{' and '}'. |
| * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{' |
| and '}'. |
| * config/m68k/m68k.md: Replace '{' with '%{' where '{' is |
| meant to be output. |
| |
| Revert: |
| 2007-10-07 Kazu Hirata <kazu@codesourcery.com> |
| * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly |
| syntax for ASSEMBLER_DIALECT. |
| * config/m68k/m68k.h (ASSEMBLER_DIALECT): New. |
| |
| 2007-10-10 Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (check_nodes_order): Dump the final order of |
| the nodes. |
| (get_sched_window): Add dump info. |
| (calculate_order_params): Dump order params of the nodes. |
| |
| 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/33669 |
| * ra-conflict.c (record_one_conflict_between_regnos, |
| set_conflicts_for_earlyclobber, global_conflicts): Improved logging. |
| (global_conflicts): Enhanced incorrect check. |
| |
| 2007-10-09 Geoffrey Keating <geoffk@apple.com> |
| |
| * dwarf2out.c (output_call_frame_info): FDEs are always emitted |
| if flag_exceptions is not set. |
| * config/darwin.c (darwin_emit_unwind_label): Rewrite to use |
| assemble_name rather than incorrectly emulating it. |
| |
| * doc/extend.texi (Deprecated Features): Mention that <? and >? and |
| friends are removed from G++. |
| |
| 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * c-opts.c (c_common_handle_option): -Wnontemplate-friend, |
| -Wwrite-strings and -Wmultichar are enabled by default, so Wall |
| enabling them is redundant. Don't check two times for |
| c_dialect_cxx. |
| |
| 2007-10-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * ra-conflict.c (record_one_conflict_between_regnos): Revert |
| the last change. |
| (set_conflicts_for_earlyclobber): Likewise. |
| (global_conflicts): Likewise. |
| |
| 2007-10-09 Kazu Hirata <kazu@codesourcery.com> |
| |
| * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' |
| and '%}', respectively. |
| |
| 2007-10-09 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (print_operand): Handle '{' and '}'. |
| * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{' |
| and '}'. |
| * config/m68k/m68k.md: Replace '{' with '%{' where '{' is |
| meant to be output. |
| |
| 2007-10-09 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33692 |
| * gimplify.c (canonicalize_component_ref): Honor qualifiers |
| of referenced structure and component. |
| |
| 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/33669 |
| * ra-conflict.c (record_one_conflict_between_regnos, |
| set_conflicts_for_earlyclobber, global_conflicts): Improved logging. |
| (global_conflicts): Removed incorrect check. |
| |
| 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR tree-optimization/33615 |
| * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt |
| if the statement might throw. Fix formatting. |
| |
| 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR tree-optimization/33615 |
| * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE |
| if the rhs might throw. |
| |
| 2007-10-09 Jan Hubicka <jh@suse.cz> |
| |
| * invoke.texi (align-threshold, align-loop-iterations): Document. |
| * final.c: Include cfgloop.h, params.h |
| (compute_alignments): Dump decisions and compare them with loop |
| structure; honor given parameters. |
| (pass_compute_alignments): New dump file. |
| * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New. |
| * Makefile.in (final.o): Add dependency on cfgloop.h and params.h |
| |
| 2007-10-09 James E. Wilson <wilson@specifix.com> |
| |
| PR tree-optimization/33655 |
| PR middle-end/22156 |
| * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST, |
| convert it to bitsizetype before size_binop call. |
| |
| 2007-10-09 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR tree-optimization/33572 |
| * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate |
| the absence of a corresponding edge from the exit block. |
| |
| 2007-10-09 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/22156 |
| * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for |
| bit-field layout. |
| (sra_build_assignment): Likewise. Set up mask depending on |
| precision, not type. |
| (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow |
| computing bit masks. |
| (sra_build_elt_assignment): Don't view-convert from signed to |
| unsigned. |
| (sra_explode_bitfield_assignment): Use bit-field type if |
| possible. Use BYTES_BIG_ENDIAN. |
| |
| 2007-10-08 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/22156 |
| * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether |
| the original stmt can throw. |
| (sra_build_bf_assignment): Fix type mismatch when applying negated |
| mask. |
| |
| 2007-10-08 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register |
| '#pragma mark' to be executed at preprocessing time. |
| |
| 2007-10-08 Ollie Wild <aaw@google.com> |
| |
| * varasm.c (compare_constant): Removed call to |
| lang_hooks.expand_constant. |
| (copy_constants): Removed call to lang_hooks.expand_constant. |
| (compute_reloc_for_constant): Removed call to |
| lang_hooks.expand_constant. |
| (output_addressed_constants): Removed call to |
| lang_hooks.expand_constant. |
| (constructor_static_from_elts_p): Removed call to |
| lang_hooks.expand_constant. |
| (output_constant): Removed calls to lang_hooks.expand_constant. |
| * langhooks.h (struct lang_hooks): Removed field expand_constant. |
| * langhooks-def.h (lhd_return_tree): Removed. |
| (LANG_HOOKS_EXPAND_CONSTANT): Removed. |
| (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. |
| * langhooks.c (lhd_return_tree): Removed. |
| |
| 2007-10-08 Mark Shinwell <shinwell@codesourcery.com> |
| |
| * combine.c (setup_incoming_promotions): Ensure that |
| arguments that have not undergone mode promotions do not |
| incorrectly get marked as being sign- or zero-extended. |
| |
| 2007-10-08 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33693 |
| PR middle-end/33695 |
| PR middle-end/33697 |
| * fold-const.c (fold_binary): Use correct types in folding |
| of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B) |
| and building of RROTATE_EXPR. |
| |
| 2007-10-08 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33691 |
| PR middle-end/33694 |
| PR middle-end/33696 |
| * fold-const.c (fold_binary): Use the correct types when |
| folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2). |
| (fold_binary): Use the correct types when folding |
| (-A) - B to (-B) - A. |
| (fold_unary): Use the correct types when folding ~(X). |
| |
| 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Wall): fix formatting issues. |
| |
| 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Canonicalize |
| truncated shift counts. |
| |
| 2007-10-07 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly |
| syntax for ASSEMBLER_DIALECT. |
| * config/m68k/m68k.h (ASSEMBLER_DIALECT): New. |
| |
| 2007-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| Nathan Froyd <froydnj@codesourcery.com> |
| |
| * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO |
| when determining whether to record INCOMING_RETURN_ADDR_RTX. |
| |
| 2007-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| Revert: |
| 2007-02-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. |
| * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on |
| the function, temporarily point the debug interface to the null one. |
| |
| 2007-10-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR tree-optimization/33655 |
| PR middle-end/22156 |
| * tree-sra.c (bitfield_overlaps_p): Handle array and complex elements. |
| |
| 2007-10-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR tree-optimization/33572 |
| * tree-cfg.c (verify_stmts): Check for missing PHI defs. |
| * tree-inline.c (update_ssa_across_eh_edges): Renamed to... |
| (update_ssa_across_abnormal_edges): ... this. Set slots in the |
| return PHI node. |
| (copy_edges_for_bb): Handle nonlocal label edges. |
| (make_nonlocal_label_edges): Deleted. |
| (optimize_inline_calls): Don't call it. |
| |
| 2007-10-05 Hans-Peter Nilsson <hp@axis.com> |
| |
| * gthr-single.h: Revert last change. |
| |
| 2007-10-05 Michael Matz <matz@suse.de> |
| |
| PR middle-end/33667 |
| * lower-subreg.c (decompose_multiword_subregs): Use |
| validate_unshare_change(). |
| |
| 2007-10-05 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * ra-conflict.c: Include "sparseset.h". |
| (conflicts): Change to HOST_WIDEST_FAST_INT. |
| (allocnos_live): Redefine variable as a sparseset. |
| (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): |
| Delete macros. |
| (allocno_row_words): Removed global variable. |
| (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables. |
| (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines. |
| (conflict_p, set_conflict_p, set_conflicts_p): New functions. |
| (record_one_conflict_between_regnos): Cache allocno values and reuse. |
| Use set_conflict_p. |
| (record_one_conflict): Update uses of allocnos_live to use |
| the sparseset routines. Use set_conflicts_p. |
| (mark_reg_store): Likewise. |
| (set_reg_in_live): Likewise. |
| (global_conflicts): Update uses of allocnos_live. |
| Use the new adjacency list to visit an allocno's neighbors |
| rather than iterating over all possible allocnos. |
| Call set_conflicts_p to setup conflicts rather than adding |
| them manually. |
| * global.c: Comments updated. |
| (CONFLICTP): Delete define. |
| (regno_compare): New function. Add prototype. |
| (global_alloc): Sort the allocno to regno mapping according to |
| which basic blocks the regnos are referenced in. Modify the |
| conflict bit matrix to a compressed triangular bitmatrix. |
| Only allocate the conflict bit matrix and adjacency lists if |
| we are actually going to allocate something. |
| (expand_preferences): Use conflict_p. Update uses of allocnos_live. |
| (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an |
| allocno's neighbors rather than iterating over all possible allocnos. |
| (mirror_conflicts): Removed function. |
| (dump_conflicts): Iterate over regnos rather than allocnos so |
| that all dump output will be sorted by regno number. |
| Use the FOR_EACH_CONFLICT macro. |
| * ra.h: Comments updated. |
| (conflicts): Update prototype to HOST_WIDEST_FAST_INT. |
| (partial_bitnum, max_bitnum, adjacency, adjacency_pool): |
| Add prototypes. |
| (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines. |
| (adjacency_list_d, adjacency_iterator_d): New types. |
| (add_neighbor, adjacency_iter_init, adjacency_iter_done, |
| adjacency_iter_next, regno_basic_block): New static inline functions. |
| (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define. |
| (conflict_p): Add function prototype. |
| * sparseset.h, sparseset.c: New files. |
| * Makefile.in (OBJS-common): Add sparseset.o. |
| (sparseset.o): New rule. |
| |
| 2007-10-05 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33666 |
| * fold-const.c (fold_unary): Do not fold (long long)(int)ptr |
| to (long long)ptr. |
| |
| 2007-10-05 Michael Matz <matz@suse.de> |
| |
| PR inline-asm/33600 |
| * function.c (match_asm_constraints_1): Check for input |
| being used in the outputs. |
| |
| 2007-10-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF. |
| |
| 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/33635 |
| * config/mips/mips.c (mips_register_move_cost): Rewrite to use |
| subset checks. Make the cost of FPR -> FPR moves depend on |
| mips_mode_ok_for_mov_fmt_p. |
| |
| 2007-10-04 Doug Kwan <dougkwan@google.com> |
| |
| * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait, |
| __gthread_cond_wait_recursive): Add to extend interface for POSIX |
| conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify |
| support of conditional variables. |
| * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait, |
| __gthread_cond_wait_recursive): Add to extend interface for POSIX |
| conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify |
| support of conditional variables. |
| * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait, |
| __gthread_cond_wait_recursive): Add to extend interface for POSIX |
| conditional variables. |
| * gthr.h: Update comments to document new interface. |
| |
| 2007-10-04 Geoffrey Keating <geoffk@apple.com> |
| |
| * cgraphunit.c (cgraph_build_static_cdtor): Don't set DECL_IGNORED_P. |
| |
| 2007-10-04 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P. |
| |
| 2007-10-04 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33641 |
| * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR |
| does not need to be of INTEGER_TYPE. |
| (verify_gimple_2): New function split out from ... |
| (verify_gimple_1): ... here. ICE if there was an error during |
| verification. |
| |
| 2007-10-04 Michael Matz <matz@suse.de> |
| |
| PR rtl-optimization/33653 |
| * dce.c (deletable_insn_p_1): Use volatile_refs_p(). |
| * dse.c (scan_insn): Same. |
| |
| 2007-10-04 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config.gcc: Remove USE_GAS for m68k targets. |
| |
| 2007-10-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33627 |
| * tree-gimple.h (canonicalize_cond_expr_cond): Declare. |
| * tree-gimple.c (canonicalize_cond_expr_cond): New function, |
| split out from ... |
| * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here. |
| * tree-ssa-ifcombine.c (ifcombine_iforif): Use it. |
| |
| 2007-10-04 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.c (commands_in_file, commands_in_prologues, |
| commands_in_epilogues): Remove variables. |
| (avr_file_start): Remove unneded initializations of commands_in_file, |
| commands_in_prologues and commands_in_epilogues variables. |
| (avr_file_end): Remove dead code. |
| |
| 2007-10-04 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if |
| MOTOROLA is to true. |
| |
| 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR target/33635 |
| * config/mips/mips-protos.h (mips_split_64bit_move): Rename to... |
| (mips_split_doubleword_move): ...this. |
| * config/mips/mips.c (mips_subword): Extend to handle 64-bit words; |
| use natural endianness for multi-format FPR values. |
| (mips_split_64bit_move): Rename to... |
| (mips_split_doubleword_move): ...this and extend to 64-bit words. |
| Use move_doubleword_fpr* patterns for moves involving FPRs. |
| (mips_save_reg): Update the call to mips_split_64bit_move. |
| (mips_secondary_reload_class): Return NO_REGS for any reload of a |
| nonzero constant into an FPR if the constant can be forced to memory. |
| * config/mips/mips.md: Update the splitter calls to |
| mips_split_64bit_move. |
| (UNSPEC_LOAD_DF_LOW): Rename to... |
| (UNSPEC_LOAD_LOW): ...this. |
| (UNSPEC_LOAD_DF_HIGH): Rename to... |
| (UNSPEC_LOAD_HIGH): ...this. |
| (UNSPEC_STORE_DF_HIGH): Rename to... |
| (UNSPEC_STORE_WORD): ...this. |
| (SPLITF): New mode iterator. |
| (HALFMODE): New mode attribute. |
| (movtf): New expander. |
| (*movtf_internal): New define_insn_and_split. |
| (move_doubleword_fpr<mode>): New expander. |
| (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace |
| with... |
| (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>) |
| (mfhc1<mode>): ...these more general patterns. |
| |
| 2007-10-03 Alexandre Oliva <aoliva@redhat.com> |
| |
| * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end. |
| |
| 2007-10-03 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gcse.c (hash_scan_set): Insert set in insn before note at |
| the end of basic block. |
| |
| 2007-10-03 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/33576 |
| * testsuite/gcc.dg/tree-ssa/pr33576.c: New. |
| * tree-loop-linear.c (linear_transform_loops): Call remove_iv. |
| * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter. |
| (remove_iv): Declared. |
| * lambda-code.c (remove_iv): Not static. |
| (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs. |
| Don't remove ivs there, save ivs in the buffer. |
| |
| 2007-10-03 Jason Merrill <jason@redhat.com> |
| |
| PR c++/15764 |
| * tree-eh.c (same_handler_p): New fn. |
| (optimize_double_finally): New fn. |
| (refactor_eh_r): New fn. |
| (refactor_eh): New fn. |
| (pass_refactor_eh): New pass. |
| * tree-pass.h: Declare it. |
| * passes.c (init_optimization_passes): Add it. |
| |
| 2007-10-03 Doug Kwan <dougkwan@google.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR debug/31899 |
| * dwarf2out.c (reference_to_unused): Disable sanity checking, |
| be conservative instead. |
| |
| 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR fortran/26682 |
| * doc/invoke.texi (-fwhole-program): Document that Fortran |
| doesn't support this option. |
| |
| 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| PR middle-end/33617 |
| * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to expand_expr. |
| |
| 2007-10-02 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare |
| against constant zero. |
| * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero |
| operand. |
| |
| 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * ra-conflict.c: New file. |
| * ra.h: New file. |
| * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE |
| usage to DF_LIVE usage. |
| (reload): Remove reference to df_get_live_top. |
| * rtlanal.c (subreg_nregs_with_regno): New function. |
| * df-scan.c (df_def_record_1, df_uses_record): Add code to set |
| DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags. |
| (df_has_eh_preds): Removed. |
| (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect, |
| df_exit_block_uses_collect): Changed call from df_has_eh_preds to |
| bb_has_eh_pred. |
| * global.c (allocno, max_allocno, conflicts, allocno_row_words, |
| reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h |
| (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c. |
| (regs_set, record_one_conflict, record_conflicts, mark_reg_store, |
| mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted. |
| (global_alloc): Turn off rescanning insns after call to |
| global_conflicts and added call to set_preferences. |
| (global_conflicts): Moved to ra-alloc.c. |
| (set_preferences_1, set_preferences): New function. |
| (mirror_conflicts): Changed types for various variables. |
| (mark_elimination): Change DF_RA_LIVE |
| usage to DF_LIVE usage. |
| (build_insn_chain): Rewritten from scratch and made local. |
| (print_insn_chain, print_insn_chains): New functions. |
| (dump_conflicts): Do not print conflicts for fixed_regs. |
| (rest_of_handle_global_alloc): Turn off insn rescanning. |
| * hard-reg-set.h: Fixed comment. |
| * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE |
| usage to DF_LIVE usage and delete refs to TOP sets. |
| (block_alloc): Mark regs as live if they are in the artificial |
| defs at top of block. |
| (find_stack_regs): New function. |
| (rest_of_handle_local_alloc): Changed urec problem to live |
| problem and do not turn off df rescanning. |
| * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN, |
| DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec, |
| df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed. |
| (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered. |
| (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New |
| fields in df_ref_flags. The rest have been renumbered. |
| * init-regs.c (initialize_uninitialized_regs): Enhanced debugging |
| at -O1. |
| * rtl.h (subreg_nregs_with_regno): New function. |
| * df-problems.c: (df_get_live_out, df_get_live_in, |
| df_get_live_top): Removed reference to DF_RA_LIVE. |
| (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info, |
| df_live_alloc, df_live_reset, df_live_local_finalize, |
| df_live_free): Make top set only if different from in set. |
| (df_lr_top_dump, df_live_top_dump): Only print top set if |
| different from in set. |
| (df_lr_bb_local_compute): Removed unnecessary check. |
| (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, |
| df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, |
| df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber, |
| df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, |
| df_urec_local_compute, df_urec_init, df_urec_local_finalize, |
| df_urec_confluence_n, df_urec_transfer_function, df_urec_free, |
| df_urec_top_dump, df_urec_bottom_dump, problem_UREC, |
| df_urec_add_problem): Removed. |
| (df_simulate_fixup_sets): Changed call from df_has_eh_preds to |
| bb_has_eh_pred. |
| * Makefile.in (ra-conflict.o, ra.h): New dependencies. |
| * basic_block.h (bb_has_abnormal_pred): New function. |
| * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE |
| usage to DF_LIVE usage. |
| |
| 2007-10-02 Revital Eres <eres@il.ibm.com> |
| |
| * config/rs6000/predicates.md (easy_vector_constant): Return false |
| for 750CL paired vectors. |
| * config/rs6000/paired.md (movv2sf_paired): Fix move of easy |
| vector constant. |
| (vec_initv2sf): Add new description. |
| (vconcatsf): Likewise. |
| * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init. |
| * config/rs6000/rs6000.c (paired_expand_vector_init): New function. |
| |
| 2007-10-01 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after |
| sinking the last stmt in a BB. |
| |
| 2007-10-01 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/22156 |
| * tree-sra.c (struct sra_elt): Add in_bitfld_block. |
| (sra_hash_tree): Handle BIT_FIELD_REFs. |
| (sra_elt_hash): Don't hash bitfld blocks. |
| (sra_elt_eq): Skip them in parent compares as well. Handle |
| BIT_FIELD_REFs. |
| (build_element_name_1): Handle BIT_FIELD_REFs. |
| (instantiate_element): Propagate nowarn from parents. Create |
| BIT_FIELD_REF for variables that are widened by scalarization. |
| Gimple-zero-initialize all bit-field variables that are not |
| part of parameters that are going to be scalarized on entry. |
| (instantiate_missing_elements_1): Return the sra_elt. |
| (canon_type_for_field): New. |
| (try_instantiate_multiple_fields): New. Infer widest possible |
| access mode from decl or member type, but clip it at word |
| size, and only widen it if a field crosses an alignment boundary. |
| (instantiate_missing_elements): Use them. |
| (generate_one_element_ref): Handle BIT_FIELD_REFs. |
| (scalar_bitfield_p): New. |
| (sra_build_assignment): Optimize assignments from scalarizable |
| BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift counts. |
| (REPLDUP): New. |
| (sra_build_bf_assignment): New. Optimize assignments to |
| scalarizable BIT_FIELD_REFs. |
| (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF |
| assignments to full variables. |
| (generate_copy_inout): Use the new macros and functions. |
| (generate_element_copy): Likewise. Handle bitfld differences. |
| (generate_element_zero): Don't recurse for blocks. Use |
| sra_build_elt_assignment. |
| (generate_one_element_init): Take elt instead of var. Use |
| sra_build_elt_assignment. |
| (generate_element_init_1): Adjust. |
| (bitfield_overlap_info): New struct. |
| (bitfield_overlaps_p): New. |
| (sra_explode_bitfield_assignment): New. Adjust widened |
| variables to account for endianness. |
| (sra_sync_for_bitfield_assignment): New. |
| (scalarize_use): Re-expand assignment to/from scalarized |
| BIT_FIELD_REFs. Explode or sync needed members for |
| BIT_FIELD_REFs accesses or assignments. Use REPLDUP. |
| (scalarize_copy): Use REPLDUP. |
| (scalarize_ldst): Move assert before dereference. Adjust EH handling. |
| (dump_sra_elt_name): Handle BIT_FIELD_REFs. |
| |
| 2007-10-01 Paolo Bonzini <bonzini@gnu.org> |
| |
| * simplify-rtx.c (comparison_result, simplify_relational_operation_1): |
| Rename CR_* constants to CMP_*. Fix spacing. |
| |
| 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR other/33585 |
| * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs |
| to be processed with the special script doc/install.texi2html. |
| |
| 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Wall): List the options enabled by Wall. |
| (Wstrict-aliasing): Add missing @option. |
| |
| 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset |
| rather than gen_lowpart to change a register from DImode to DFmode. |
| (mips_cannot_change_mode_class): Only allow FPRs to change mode if |
| both FROM and TO are integer modes that are no bigger than 4 bytes. |
| (mips_mode_ok_for_mov_fmt_p): New function. |
| (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P. |
| (mips_secondary_reload_class): Tweak formatting and comments. |
| Use reg_class_subset_p instead of direct comparisons with |
| classes. Only allow direct FPR<->FPR moves for modes that |
| satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores |
| for 4- and 8-byte types. Handle reloads in which X is an FPR. |
| * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative. |
| (*movdi_64bit): Likewise. |
| (*movsi_internal): Likewise. |
| (*movhi_internal): Likewise. |
| (*movqi_internal): Likewise. |
| |
| 2007-09-30 Diego Novillo <dnovillo@google.com> |
| |
| PR 33593 |
| * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may |
| throw an exception. |
| |
| 2007-09-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/33597 |
| * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler |
| for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode. |
| |
| 2007-09-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p () |
| instead of variants of (!reload_in_progress && !reload_completed). |
| (x86_expand_vector_move): Ditto. |
| |
| 2007-09-28 Ollie Wild <aaw@google.com> |
| |
| Revert |
| 2007-09-27 Ollie Wild <aaw@google.com> |
| |
| * varasm.c (compare_constant): Removed call to |
| lang_hooks.expand_constant. |
| (copy_constants): Removed call to lang_hooks.expand_constant. |
| (compute_reloc_for_constant): Removed call to |
| lang_hooks.expand_constant. |
| (output_addressed_constants): Removed call to |
| lang_hooks.expand_constant. |
| (constructor_static_from_elts_p): Removed call to |
| lang_hooks.expand_constant. |
| (output_constant): Removed calls to lang_hooks.expand_constant. |
| * langhooks.h (struct lang_hooks): Removed field expand_constant. |
| * langhooks-def.h (lhd_return_tree): Removed. |
| (LANG_HOOKS_EXPAND_CONSTANT): Removed. |
| (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. |
| * langhooks.c (lhd_return_tree): Removed. |
| |
| 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR target/33347 |
| * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second |
| argument to gen_selb. |
| |
| 2007-09-28 Chao-ying Fu <fu@mips.com> |
| |
| * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section. |
| * doc/libgcc.texi (Fixed-point fractional library routines): |
| Fix typos for neg and cmp functions. |
| |
| 2007-09-28 Michael Matz <matz@suse.de> |
| |
| PR rtl-optimization/33552 |
| * function.c (match_asm_constraints_1): Check for overlap in |
| inputs and replace all occurences. |
| |
| 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (override_options): Fix comment typo. |
| |
| 2007-09-28 Jie Zhang <jie.zhang@analog.com> |
| |
| * config.gcc (bfin*-linux-uclibc*): Set extra_parts |
| to "crtbegin.o crtbeginS.o crtend.o crtendS.o". |
| * config/bfin/t-bfin-linux (crti.o): Don't build. |
| (crtn.o): Likewise. |
| (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o. |
| * config/bfin/t-bfin-uclinux (crti.o): Don't build. |
| (crtn.o): Likewise. |
| (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o. |
| |
| 2007-09-27 Ollie Wild <aaw@google.com> |
| |
| * varasm.c (compare_constant): Removed call to |
| lang_hooks.expand_constant. |
| (copy_constants): Removed call to lang_hooks.expand_constant. |
| (compute_reloc_for_constant): Removed call to |
| lang_hooks.expand_constant. |
| (output_addressed_constants): Removed call to |
| lang_hooks.expand_constant. |
| (constructor_static_from_elts_p): Removed call to |
| lang_hooks.expand_constant. |
| (output_constant): Removed calls to lang_hooks.expand_constant. |
| * langhooks.h (struct lang_hooks): Removed field expand_constant. |
| * langhooks-def.h (lhd_return_tree): Removed. |
| (LANG_HOOKS_EXPAND_CONSTANT): Removed. |
| (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. |
| * langhooks.c (lhd_return_tree): Removed. |
| |
| 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/33436 |
| * expr.c (emit_group_load_1): Split constant double when destination |
| length is half source length. |
| |
| 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro. |
| (mips_cpu_info): Add tune_flags. |
| (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check. |
| * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields. |
| Remove end marker. |
| (override_options): Remove deprecation code. Use branch-likely |
| instructions for optimize_size or if the tuning flags do not |
| suggest otherwise. Tweak warning. |
| (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE. |
| |
| 2007-09-27 Matthias Klose <doko@ubuntu.com> |
| |
| * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the |
| multilib osdirname if it exists. |
| * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise. |
| |
| 2007-09-27 Ian Lance Taylor <iant@google.com> |
| |
| PR tree-optimization/33565 |
| * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on |
| assignments of comparisons. |
| * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt |
| parameter. Change caller. Defer overflow warnings around call to |
| fold_binary. |
| * fold-const.c (fold_undefer_overflow_warnings): Don't warn if |
| TREE_NO_WARNING is set on the statement. |
| * tree-ssa-forwprop.c |
| (tree_ssa_forward_propagate_single_use_vars): Don't test |
| TREE_NO_WARNING when calling fold_undefer_overflow_warnings. |
| * tree-cfg.c (fold_cond_expr_cond): Likewise. |
| |
| 2007-09-27 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not |
| reduce offset by units of 0x10000 for SPE vector modes or modes |
| used with E500 double instructions. |
| |
| 2007-09-04 Paolo Bonzini <bonzini@gnu.org> |
| |
| * simplify-rtx.c (comparison_result): New. |
| (simplify_const_relational_operation): Use it instead of the five |
| "equal|op[01]ltu?" variables; consequently remove redundant "else"s. |
| Improve bounds-checking optimizations; remove subsumed POPCOUNT |
| optimizations. Extract nonzero_address_p optimizations into a |
| separate "if" together with optimizations where op1 is const0_rtx. |
| Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for |
| floating-point arguments too when appropriate. Hoist test for ABS |
| outside the final switch statement. |
| * cse.c (fold_rtx): Don't look for an IOR equivalent of |
| folded_arg0 if we found a constant equivalent. Remove |
| transformations done in simplify-rtx.c for "op0 RELOP op0". |
| |
| 2007-09-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.c (expand_builtin, expand_builtin_object_size, |
| expand_builtin_memory_chk, maybe_emit_chk_warning, |
| maybe_emit_sprintf_chk_warning): Use new %K format string specifier |
| for diagnostics. |
| * expr.c (expand_expr_real_1): Likewise. |
| * langhooks-def.h (struct diagnostic_info): Add forward decl. |
| (lhd_print_error_function): Add third argument. |
| * langhooks.h (struct diagnostic_info): Add forward decl. |
| (struct lang_hooks): Add third argument to print_error_function. |
| * diagnostic.h (diagnostic_info): Add abstract_origin field. |
| (diagnostic_last_function_changed, diagnostic_set_last_function): Add |
| second argument. |
| (diagnostic_report_current_function): Likewise. |
| * toplev.c (announce_function): Pass NULL as second argument to |
| diagnostic_set_last_function. |
| * diagnostic.c (diagnostic_report_current_function): Add second |
| argument, pass it as third argument to lang_hooks.print_error_function. |
| (default_diagnostic_starter): Pass DIAGNOSTIC as second argument |
| to diagnostic_report_current_function. |
| (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin |
| and message.abstract_origin. |
| (verbatim): Initialize abstract_origin. |
| * pretty-print.h (text_info): Add abstract_origin field. |
| * pretty-print.c (pp_base_format): Handle %K. |
| * langhooks.c (lhd_print_error_function): Add third argument. If |
| diagnostic->abstract_origin, print virtual backtrace. |
| * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, |
| gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K. |
| (init_dynamic_diag_info): Likewise. |
| |
| 2007-09-26 David Daney <ddaney@avtrex.com> |
| |
| PR target/33479 |
| * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>, |
| sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>, |
| sync_old_nand<mode>, sync_new_nand<mode>, |
| sync_lock_test_and_set<mode>): Fix '&' constraint modifiers. |
| Update length attributes. |
| (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>, |
| sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update |
| length attributes. |
| * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, |
| MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, |
| MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add |
| post-loop sync. |
| |
| 2007-09-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33563 |
| * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ... |
| (get_kill_of_stmt_lhs): ... this. Re-structure. Handle |
| aggregate stores. |
| (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of |
| get_use_of_stmt_lhs. |
| |
| 2007-09-26 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/25309 |
| * c-common.c (complete_array_type): Diagnose too-large arrays and |
| set type to error_mark_node. |
| |
| 2007-09-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/30375 |
| PR tree-optimization/33560 |
| * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses |
| with calls. |
| |
| Revert |
| 2006-05-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-dse.c (aggregate_vardecl_d): New. |
| (dse_global_data): Add aggregate_vardecl field. |
| (dse_possible_dead_store_p): New. |
| Add prev_defvar variable. |
| Allow immediate uses and previous immediate uses to differ |
| if they are setting different parts of the whole. |
| (get_aggregate_vardecl): New. |
| (dse_record_partial_aggregate_store): New. |
| (dse_whole_aggregate_clobbered_p): New. |
| (dse_partial_kill_p): New. |
| Call dse_maybe_record_aggregate_store(). |
| When checking whether a STMT and its USE_STMT refer to the |
| same memory address, check also for partial kills that clobber |
| the whole. |
| Move some variable definitions to the block where they are used. |
| (aggregate_vardecl_hash): New. |
| (aggregate_vardecl_eq): New. |
| (aggregate_vardecl_free): New. |
| (aggregate_whole_store_p): New. |
| (tree_ssa_dse): Initialize and free aggregate_vardecl. |
| Mark which aggregate stores we care about. |
| |
| 2007-09-25 DJ Delorie <dj@redhat.com> |
| |
| PR target/33551 |
| * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of XINT. |
| |
| 2007-09-25 Michael Meissner <michael.meissner@amd.com> |
| |
| PR target/33524 |
| * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call |
| gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di |
| for vector int32 -> int64 conversions. Don't write beyond the end |
| of the allocated vector for int32 -> int64 conversions. |
| |
| 2007-09-25 Revital Eres <eres@il.ibm.com> |
| |
| * config/rs6000/paired.h (paired_sel): New. |
| * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4. |
| (rs6000_expand_ternop_builtin): Pass zero const_double operand |
| when expanding selv2sf. |
| * config/rs6000/rs6000.h (rs6000_builtins): Add |
| PAIRED_BUILTIN_SELV2SF4. |
| |
| 2007-09-25 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/32295 |
| * c-typeck.c (default_conversion): Call require_complete_type |
| before perform_integral_promotions. |
| (build_unary_op): Call require_complete_type except for ADDR_EXPR. |
| (build_c_cast): Call require_complete_type except for casts to |
| void types. |
| (convert_for_assignment): Call require_complete_type. |
| |
| 2007-09-25 Revital Eres <eres@il.ibm.com> |
| |
| * config/spu/spu.md: Fix doloop pattern. |
| |
| 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (expand_prologue_reg_save, |
| expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs |
| and ASTAT moved here... |
| (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue): |
| ... from here. New argument ALL; callers changed. |
| (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions. |
| (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that |
| have the "saveall" attribute. |
| |
| 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define |
| bogus target macro. |
| (INCOMING_REGNO, OUTGOING_REGNO): Define. |
| * config/mmix/mmix.c (mmix_opposite_regno): New function. |
| * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype. |
| |
| * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate |
| with REG_P tests before REGNO access. |
| |
| 2007-09-24 DJ Delorie <dj@redhat.com> |
| |
| PR target/31482 |
| * config/m32c/cond.md (stzx_reversed_<mode>): Add an output |
| constraint. |
| (movqicc_<code>_<mode>): Likewise. |
| (movhicc_<code>_<mode>): Likewise. |
| |
| 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/33184 |
| * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address |
| register for reload. |
| |
| 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net> |
| |
| PR c++/14688 |
| * config/i386/i386.c (ix86_comp_type_attributes): Check |
| METHOD_TYPE too. |
| |
| 2007-09-24 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use |
| "move.l %a4,%a4" to produce nops. |
| * config/m68k/m68k.c (override_options): Reset align options, |
| if neccessary align macro isn't avaible. |
| |
| 2007-09-24 Roman Zippel <zippel@linux-m68k.org> |
| |
| config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New. |
| |
| 2007-09-24 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave |
| the basic block. |
| * config/m68k/m68k.md (movsi_m68k): Allow certain constant when |
| reload is completed. |
| (peephole pattern): Convert most of them to RTL peephole pattern. |
| |
| 2007-09-24 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.c (notice_update_cc): Recognize fp compare |
| (moved from fp compare patterns). |
| * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf): |
| Cleanup predicates to relieve reload. |
| (conditional_trap): Reject conditional trap with fp condition. |
| * config/m68k/predicates.md (fp_src_operand): New, reject |
| certain constants early. |
| |
| 2007-09-24 Roman Zippel <zippel@linux-m68k.org> |
| |
| * final.c (final_scan_insn): Remove accidentally duplicated code. |
| |
| 2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU. |
| Allow --with-tune=cell and --with-cpu=cell. |
| |
| 2007-09-24 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare. |
| * config/rs6000/rs6000.opt (swdiv): Change option to ... |
| (recip): this. |
| * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New |
| function. |
| (TARGET_BUILTIN_RECIPROCAL): Use it. |
| (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf. |
| (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf. |
| (rs6000_emit_swrsqrtsf): New. |
| * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and |
| rsqrtf. |
| * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define. |
| (divsf3): Remove swdiv support. |
| (recipsf3): New. |
| (rsqrtsf2): New. |
| (rsqrt_internal1): New. |
| (divdf3): Remove swdiv support. |
| (reciptdf3): New. |
| |
| 2007-09-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/33506 |
| * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq |
| field. |
| * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ. |
| * tree.c (type_hash_eq): For FUNCTION_TYPE use |
| lang_hooks.type.type_hash_eq in addition to generic tests. |
| |
| 2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com> |
| Ramana Radhakrishnan <ramana@hercules.pun.celunite.com> |
| |
| * tree-inline.h (eni_weights): Add field target_builtin_cost to |
| reflect the cost per call to a target specific builtin. |
| * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a |
| call to a target specific builtin, then use target_builtin_call_cost. |
| (init_inline_once): Initialize target_builtin_call_cost field. |
| |
| 2007-09-24 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR middle-end/33472 |
| * config/i386/i386.c (return_in_memory_ms_64): Handle return types for |
| complex types. |
| |
| 2007-09-23 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * configure.ac (ld_vers): Support GNU linker version xx.xx.* |
| * configure: Regenerated. |
| |
| 2007-09-23 Ollie Wild <aaw@google.com> |
| |
| * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer |
| operand. |
| (get_pointer_modulus_and_residue): New function. |
| |
| 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets, |
| combine an SC return value into a single register. |
| |
| 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * opth-gen.awk (target_flags_explicit): Declare. |
| * toplev.h (target_flags_explicit): Delete declaration. |
| * toplev.c (target_flags): Likewise. |
| * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete. |
| (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags. |
| Never return true for TARGET_MIPS16. |
| * config/mips/mips.c (mips_llsc): Delete. |
| (mips_handle_option): Remove -mllsc handling. |
| (mips_strip_unspec_address): Tweak comment. |
| * config/mips/mips.opt (mllsc): Use a target mask. |
| |
| 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to |
| word_mode as well as Pmode. |
| |
| 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * function.c (assign_parm_setup_block): Explicitly convert BLKmode |
| parameters from word_mode to the subword type if such a truncation |
| is not a no-op. |
| |
| 2007-09-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above. |
| * configure: Regenerated. |
| |
| 2007-09-23 Jan Hubicka <jh@suse.cz> |
| |
| * params.def (INLINE_CALL_COST): Set to 12. |
| * invoke.texi (inline-call-cost): Update default value. |
| |
| 2007-09-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/alpha/alpha.md (movti): Use operand_subword for the split. |
| |
| 2007-09-23 Ayal Zaks <zaks@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (doloop_register_get): Rewrite the loop which |
| checks whether the count_reg is found outside the control part. |
| |
| 2007-09-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl |
| instead of checking CALL_EXPR_FN directly to test for builtins. |
| If error or warning attributes are present, print |
| error resp. warning. |
| * c-common.c (handle_error_attribute): New function. |
| (c_common_attribute_table): Add error and warning |
| attributes. |
| * doc/extend.texi: Document error and warning attributes. |
| |
| * tree.h (block_nonartificial_location): New prototype. |
| * tree.c (block_nonartificial_location): New function. |
| * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial |
| if artificial attribute is present on abstract inline decl. |
| * c-common.c (handle_artificial_attribute): New function. |
| (c_common_attribute_table): Add artificial attribute. |
| * final.c (override_filename, override_linenum): New variables. |
| (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename |
| and override_linenum if inside of a block inlined from |
| __attribute__((__artificial__)) function. |
| (notice_source_line): Honor override_filename and override_linenum. |
| * doc/extend.texi: Document __attribute__((__artificial__)). |
| * config/i386/emmintrin.h: Add __artificial__ attribute to |
| all __always_inline__ functions. |
| * config/i386/mmintrin.h: Likewise. |
| * config/i386/tmmintrin.h: Likewise. |
| * config/i386/mm3dnow.h: Likewise. |
| * config/i386/pmmintrin.h: Likewise. |
| * config/i386/ammintrin.h: Likewise. |
| * config/i386/xmmintrin.h: Likewise. |
| * config/i386/smmintrin.h: Likewise. |
| * config/i386/bmmintrin.h: Likewise. |
| * config/i386/mmintrin-common.h: Likewise. |
| |
| PR middle-end/28755 |
| * expr.c (expand_constructor): New function. |
| (expand_expr_real_1) <case CONSTRUCTOR>: Call it. |
| (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is |
| CONSTRUCTOR. |
| |
| 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (dump_constants_1): Generalize to include |
| fractional and accumulator modes. |
| |
| 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros. |
| * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP |
| flags for MIPS16. |
| (override_options): Check TARGET_HARD_FLOAT_ABI instead of |
| TARGET_HARD_FLOAT when testing whether -mpaired-single is |
| supported. |
| (mips_conditional_register_usage): Check ISA_HAS_DSP instead of |
| TARGET_DSP. |
| * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of |
| TARGET_DSPR2. |
| * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF. |
| (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require |
| TARGET_HARD_FLOAT. |
| (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check |
| ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2. |
| * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP |
| throughout. |
| * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and |
| TARGET_HAS_DSPR2. |
| * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2 |
| instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2. |
| * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns. |
| |
| 2007-09-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/19407 |
| * attribs.c (lookup_attribute_spec): Split out... |
| (decl_attributes): From here. |
| * tree.h: Declare it. |
| |
| 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * doc/sourcebuild.texi: Document dg-add-options mips16_attribute. |
| |
| 2007-09-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-inline.c (remap_type_1): Correctly chain variants. |
| |
| 2007-09-22 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33146 |
| * fold-const.c (fold_binary): Use the original tree for negating. |
| * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer |
| also changes "sign". |
| |
| 2007-09-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/32325 |
| * except.c (finish_eh_generation): Call commit_edge_insertions if |
| there are insns queued on the entry edge. |
| * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on |
| the entry edge. |
| |
| 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document. |
| |
| 2007-09-19 Michael Meissner <michael.meissner@amd.com> |
| |
| * config/i386/i386.c: Delete trailing whitespace. |
| * config/i386/i386.h: Ditto. |
| * config/i386/bmmintrin.h: Ditto. |
| * config/i386/sync.md: Ditto. |
| * config/i386/ppro.md: Ditto. |
| * config/i386/mmx.md: Ditto. |
| * config/i386/constraints.md: Ditto. |
| * config/i386/sse.md: Ditto. |
| * config/i386/athlon.md: Ditto. |
| * config/i386/i386.md: Ditto. |
| |
| 2007-09-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33508 |
| * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid |
| quadratic loop by keeping a bitmap of variables we have |
| to clobber all subvariables for. |
| (set_initial_properties): Likewise. |
| |
| 2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete. |
| |
| 2007-09-20 Nigel Stephens <nigel@mips.com> |
| Chao-ying Fu <fu@mips.com> |
| |
| * c-decl.c (finish_declspecs): When _Sat is used without |
| _Fract or _Accum, set the default type to cts_fract. |
| This avoids a warning of "type defaults to int". |
| |
| 2007-09-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool |
| bit-fields wider than one bit. |
| |
| 2007-09-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/33316 |
| * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL |
| DECL_NAME. |
| * dbxout.c (dbxout_type): Likewise. |
| |
| PR c/33238 |
| PR c/27301 |
| * gimplify.c (gimplify_vla_decl): New function. |
| (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl. |
| Call it. |
| (gimplify_target_expr): Handle variable length TARGET_EXPRs. |
| |
| 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * doc/invoke.texi (-minterlink-mips16): Document. |
| * config/mips/mips.opt (minterlink-mips16): New option. |
| * config/mips/mips.c (mips_function_ok_for_sibcall): Handle |
| -minterlink-mips16 |
| |
| 2007-09-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/extend.texi (Attribute Syntax): Remove old speculative |
| future direction. |
| |
| 2007-09-20 Mark Shinwell <shinwell@codesourcery.com> |
| |
| * combine.c: Include cgraph.h. |
| (setup_incoming_promotions): Rework to allow more aggressive |
| elimination of sign extensions when all call sites of the |
| current function are known to lie within the current unit. |
| |
| 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * dse.c (find_shift_sequence): No-op rework of control flow. |
| |
| 2007-09-19 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (build_mips16_call_stub): Tidy. Fix second |
| GPR for DCmode on 64-bit targets. Remove redundant fallback. |
| |
| 2007-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * cfgexpand.c (dump_stack_var_partition): Use the correct |
| index for the offset. |
| |
| 2007-09-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/sde.h: Switch to GPLv3. |
| |
| 2007-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (decide_block_copy): Decide if there are groups. |
| |
| 2007-09-19 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.c (output_move_himode): Remove jump table |
| recognition. |
| config/m68k/m68k.md (lea): Likewise. |
| * config/m68k/m68k.c (print_operand_address): Use simple pc |
| relative addressing. |
| |
| 2007-09-19 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument. |
| * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument |
| default definition. |
| (asm_insn_count): Pass template as second argument to it. |
| * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. |
| * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. |
| * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. |
| * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. |
| * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. |
| (sh_insn_length_adjustment): Pass template as second argument to it. |
| * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro. |
| |
| * config/bfin/bfin.md (define_asm_attributes): New. |
| |
| 2007-09-19 Jie Zhang <jie.zhang@analog.com> |
| |
| * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h |
| to tm_file. |
| * config/bfin/print-sysroot-suffix.sh: New. |
| * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove. |
| (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, |
| MULTILIB_EXCEPTIONS): Redefine with new multilibs. |
| * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove. |
| (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, |
| MULTILIB_EXCEPTIONS): Redefine with new multilibs. |
| * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove. |
| (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, |
| MULTILIB_EXCEPTIONS): Redefine with new multilibs. |
| (linux-sysroot-suffix.h): New target. |
| * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask. |
| (mspecld-anomaly): Likewise. |
| * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from |
| (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525, |
| BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542, |
| BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549. |
| (bfin_si_revision): Declare. |
| (bfin_workarounds): Declare. |
| (WA_SPECULATIVE_LOADS): Define. |
| (ENABLE_WA_SPECULATIVE_LOADS): Define. |
| (WA_SPECULATIVE_SYNCS): Define. |
| (ENABLE_WA_SPECULATIVE_SYNCS): Define. |
| * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o. |
| (LIB_SPEC): Add %s to the linker scripts. |
| Use proper linker script for bf522, bf525, bf527, |
| bf538, bf539, bf542, bf544, bf548, and bf549. |
| * config/bfin/bfin.c (bfin_si_revision): Define. |
| (bfin_workarounds): Define. |
| (struct bfin_cpu): New. |
| (bfin_cpus): New. |
| (bfin_handle_option): Handle silicon revision part of -mcpu option. |
| (override_options): Set bfin_workarounds. |
| (length_for_loop): Replace TARGET_CSYNC_ANOMALY with |
| ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with |
| ENABLE_WA_SPECULATIVE_LOADS. |
| (bfin_reorg): Likewise. |
| * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define |
| macros for bf522, bf525, bf527, bf538, bf539, |
| bf542, bf544, bf548, and bf549. |
| Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed. |
| Don't define __ID_SHARED_LIB__ when -msep-data. |
| (TARGET_DEFAULT): Define as 0. |
| (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option. |
| * doc/invoke.texi (Blackfin Options): Document silicon |
| revision part of -mcpu option and it now accepts bf522, bf525, |
| bf527, bf538, bf539, bf542, bf544, bf548, and bf549. |
| |
| 2007-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (memory_modified_1): Deconstify. |
| (memory_modified_in_insn_p): Don't use const_note_stores. |
| * rtl.h (const_note_stores): Delete. |
| * rtlanal.c (const_note_stores): Likewise. |
| |
| 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * dse.c (find_shift_sequence): Temporarily revert to forbidding |
| word shifts. |
| |
| 2007-09-18 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/33388 |
| PR target/33397 |
| * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO(). |
| (addsi_small_int): Likewise. |
| (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison. |
| (one_cmplsi2): Likewise. |
| (negsi2): Delete. |
| (enter_func): Expand insn using hard_frame_pointer_rtx and |
| stack_pointer_rtx. |
| (*enter_func): New. |
| * config/fr30/fr30.c (fr30_expand_prologue): Check for |
| hard_frame_pointer_rtx instead of using REGNO() check. |
| Properly sign extend GEN_INT() argument. |
| |
| 2007-09-18 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.c (override_options): Remove USE_GAS, |
| use %. syntax. |
| (output_dbcc_and_branch, output_scc_di): Replace all jbcc |
| alternatives with just jcc. |
| * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di, |
| bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev, |
| bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si, |
| dbge_hi, dbge_si): Likewise. |
| |
| 2007-09-18 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered, |
| bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev, |
| bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev, |
| bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev, |
| bunlt_rev, bltgt_rev): Replace all fbcc with fjcc. |
| |
| 2007-09-18 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k-devices.def (51qe): New device. |
| * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit. Add it |
| to all uses of FL_FOR_isa_c for compatibility. |
| (all_microarchs): Add cfv1 microarchitecture. |
| (m68k_handle_option): Handle m51qe option. |
| * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE. |
| (TUNE_CFV1): New macro. |
| (enum uarch_type): Add ucfv1. |
| * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture. |
| |
| 2007-09-18 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/31863 |
| * tree-ssa-structalias.c (create_variable_info_for): Always |
| free the fieldstack. |
| |
| 2007-09-18 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * opts.c (decode_options): Enable vectorization under -O3. |
| |
| 2007-09-18 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33340 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to |
| SSA_NAMEs that occur in abnormal PHI nodes. |
| |
| 2007-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p): |
| Don't use const_get_call_expr_in. |
| * tree-gimple.c (const_get_call_expr_in): Delete. |
| * tree-gimple.h (const_get_call_expr_in): Likewise. |
| |
| 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * df-scan.c (df_notes_rescan): Do nothing if the instruction does |
| not yet have a basic block. |
| * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN. |
| |
| 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_file_start): Add ".previous" directives |
| to both ".section"s. |
| |
| 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_output_mi_thunk): Use |
| mips_function_ok_for_sibcall and const_call_insn_operand |
| to determine if a direct sibcall is allowed. Use |
| mips_classify_symbol to determine a global pointer is needed. |
| |
| 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand. |
| |
| 2007-09-17 Chao-ying Fu <fu@mips.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * config/fixed-bit.h: New file. |
| * config/fixed-bit.c: New file. |
| * doc/libgcc.texi (Fixed-point fractional library routines): New node. |
| |
| 2007-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * c-format.h (format_kind_info): Add alloc_char field. |
| * c-format.c (scanf_flag_specs): Add 'm'. |
| (scanf_flag_pairs): Add 'a', 'm' pair. |
| (scan_char_table): Allow 'm' modifier for c, s, [, C and S. |
| (format_types_orig): Add alloc_char fields. |
| (check_format_info_main): Rename aflag to alloc_flag. |
| Handle fki->alloc_char. modifier after width and before length |
| modifiers. Move FMT_FLAG_SCANF_A_KLUDGE handling before |
| length modifiers as well. |
| * config/sol2-c.c (solaris_format_types): Add alloc_char field. |
| |
| PR middle-end/33423 |
| * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs |
| returned by build_call_expr. |
| |
| 2007-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return |
| NULL for variable-sized records too. |
| (sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too. |
| |
| 2007-09-17 Tom Tromey <tromey@redhat.com> |
| |
| * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC. |
| (c_builtin_function): Likewise. |
| (grokdeclarator): Likewise. |
| |
| 2007-09-17 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR rtl-optimization/26449 |
| * loop-invariant.c (move_invariant_reg): Do not use force_operand. |
| (seq_insns_valid_p): Removed. |
| |
| 2007-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-nomudflap.c (gate_mudflap): New static function. |
| (pass_mudflap_1): Use it as gate function. |
| (pass_mudflap_2): Likewise. |
| |
| 2007-09-17 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/33348 |
| PR target/33406 |
| * loop-invariant.c (move_invariant_reg): Unshare sequence. |
| |
| 2007-09-17 Victor Kaplansky <victork@il.ibm.com> |
| |
| PR tree-optimization/33319 |
| * tree-vect-analyze.c (vect_same_range_drs): New. |
| (vect_vfa_range_equal): New. |
| (vect_is_duplicate_ddr): Removed. |
| (vect_mark_for_runtime_alias_test): Do not perform marking when |
| optimizing for size or max_param for alias checking is zero. |
| Move the function before vect_analyze_data_ref_dependence. |
| (vect_analyze_data_ref_dependence): Add call to |
| vect_mark_for_runtime_alias_test in two cases when dependence |
| is not clear. |
| (vect_analyze_data_ref_dependences): Do not call to |
| vect_mark_for_runtime_alias_test. |
| (vect_prune_runtime_alias_test_list): New. |
| (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list. |
| * tree-vect-transform.c (vect_estimate_min_profitable_iters): |
| Update vec_outside_cost. |
| (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT. |
| (vect_create_cond_for_alias_checks): Build the base address of data |
| reference from DR_GROUP_FIRST_DR. |
| (vect_loop_versioning): New. |
| (vect_transform_loop): Add a call to vect_loop_versioning. |
| Remove factored out code. |
| |
| 2007-09-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/33273 |
| * expr.c (store_expr): Call adjust_address to change mode of dest_mem |
| to BLKmode. |
| |
| 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * dse.c (find_shift_sequence): Allow word as well as subword shifts. |
| Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set. |
| Fix the call to insn_rtx_cost. Skip access sizes that require a |
| real truncation of the store register. Use convert_move instead |
| of gen_lowpart when narrowing the result. |
| (replace_read): Use convert_move instead of gen_lowpart when |
| narrowing the store rhs. |
| |
| 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.md (SHORT): Fix long line. |
| (SUBDI): New mode iterator. Extend the shift-and-truncate insns |
| to QImode and HImode. |
| |
| 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define. |
| |
| 2007-09-15 Zdenek Dvorak <ook@ucw.cz> |
| |
| * tree-parloops.c: New file. |
| * tree-ssa-operands.h (free_stmt_operands): Declare. |
| * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic |
| block. |
| * tree-pass.h (pass_parallelize_loops): Declare. |
| * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for |
| virtual operands. |
| (build_omp_regions_1): Allow analysing just a single OMP region and |
| its subregions. |
| ( build_omp_regions_root, omp_expand_local): New functions. |
| (build_omp_regions): Add argument to build_omp_regions_1 call. |
| * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when |
| autoparallelization is run. |
| * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New. |
| * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops, |
| pass_parallelize_loops): New. |
| * common.opt (ftree-parallelize-loops): New. |
| * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail, |
| parallelize_loops): Declare. |
| (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed. |
| * Makefile.in (tree-parloops.o): Added. |
| * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail): |
| New functions. |
| (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge. |
| (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for |
| one extra edge as well. |
| (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy. |
| Use VEC_free to free doms vector. |
| (move_block_to_fn): Update loop info. Remove phi nodes for virtual |
| operands. Recompute operand caches in the new function. |
| (move_sese_region_to_fn): Update loop info. |
| * passes.c (init_optimization_passes): Add pass_parallelize_loops. |
| * tree-ssa-operands.c (free_stmt_operands): New function. |
| |
| * doc/passes.texi: Document autoparallelization. |
| * doc/invoke.texi (-ftree-parallelize-loops): New option. |
| |
| 2007-09-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/33062 |
| * pa.c (function_value): Use GET_MODE_BITSIZE instead of |
| TYPE_PRECISION. |
| |
| 2007-09-15 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if |
| the VEC is not NULL. |
| (vectorizable_type_demotion, vectorizable_type_promotion): Check that |
| get_vectype_for_scalar_type succeeded. |
| (vectorizable_conversion): Likewise. |
| |
| 2007-09-14 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.md (*floatdi<mode>2_i387): Guard against |
| TARGET_64BIT. |
| |
| 2007-09-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/33438 |
| * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary |
| register when operands[2] equals operands[1]. |
| (remainderxf3): Ditto. |
| |
| 2007-09-14 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document. |
| * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. |
| (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to declaration. |
| (_Unwind_ForcedUnwind): Likewise. |
| (_Unwind_Resume): Likewise. |
| (_Unwind_Resume_or_Rethrow): Likewise. |
| (_Unwind_Backtrace): Likewise. |
| (_Unwind_SjLj_RaiseException): Likewise. |
| (_Unwind_SjLj_ForcedUnwind): Likewise. |
| (_Unwind_SjLj_Resume): Likewise. |
| (_Unwind_SjLj_Resume_or_Rethrow): Likewise. |
| * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE |
| to definition. |
| (_Unwind_ForcedUnwind): Likewise. |
| (_Unwind_Resume): Likewise. |
| (_Unwind_Resume_or_Rethrow): Likewise. |
| (_Unwind_Backtrace): Likewise. |
| * unwind-compat.c (_Unwind_Backtrace): Likewise. |
| (_Unwind_ForcedUnwind): Likewise. |
| (_Unwind_RaiseException): Likewise. |
| (_Unwind_Resume): Likewise. |
| (_Unwind_Resume_or_Rethrow): Likewise. |
| |
| * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force |
| nomips16 mode when IN_LIBGCC2 with hard float. |
| |
| 2007-09-14 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/sdemtk.opt: Update to GPLv3. |
| * config/mips/sdemtk.h: Likewise. |
| |
| 2007-09-14 Nigel Stephens <nigel@mips.com> |
| |
| * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set |
| MIPS_ISA_DEFAULT appropriately. Don't make soft-float the default |
| for mipsisa32-*-linux*. |
| |
| 2007-09-14 Nigel Stephens <nigel@mips.com> |
| David Ung <davidu@mips.com> |
| Thiemo Seufer <ths@mips.com> |
| Richard Sandiford <richard@codesourcery.com> |
| |
| * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries. |
| * configure.ac: Add a mipssde threading type. |
| * configure: Regenerate. |
| * config/mips/sdemtk.h: New file. |
| * config/mips/t-sdemtk: Likewise. |
| * config/mips/sdemtk.opt: Likewise. |
| * gthr-mipssde.h: Likewise. |
| * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h. |
| * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro. |
| (MIPS_ICACHE_SYNC): New macro, split from ... |
| * config/mips/mips.md (clear_cache): ...here. |
| * config/mips/mips.c (mips_save_reg_p): Check |
| MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions. |
| (build_mips16_function_stub): Use targetm.strip_name_encoding. |
| (build_mips16_call_stub): Likewise. |
| |
| 2007-09-14 Richard Sandiford <richard@codesourcery.com> |
| |
| * Makefile.in (stmp-int-hdrs): Depend on fixinc_list. |
| |
| 2007-09-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/32337 |
| * config/ia64/ia64.c (find_gr_spill): Don't decrement |
| current_frame_info.n_local_regs. Don't return emitted local regs. |
| (ia64_compute_frame_size): Improve unwind hack to put |
| RP, PFS, FP in that order by allowing some of the registers |
| been already emitted, as long as they are emitted to the |
| desired register. |
| |
| 2007-09-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx, |
| vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats, |
| vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics. |
| |
| 2007-09-13 Eric Christopher <echristo@apple.com> |
| Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * dse.c (find_shift_sequence): New function. |
| (replace_read): Add case to remove read if it requires shift. |
| * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment. |
| |
| 2007-09-13 Tom Tromey <tromey@redhat.com> |
| |
| * c-common.c (fname_as_string): Update. |
| * c-parser.c (c_parser) <lex_untranslated_string>: New field. |
| (c_lex_one_token): Update. Add 'parser' argument. |
| (c_parser_simple_asm_expr): Update. |
| (c_parser_attributes): Update. |
| (c_parser_asm_statement): Update. |
| (c_parser_asm_operands): Update. |
| (c_parser_peek_token): Update. |
| (c_parser_peek_2nd_token): Update. |
| * c-lex.c (c_lex_string_translate): Remove. |
| (c_lex_return_raw_strings): Likewise. |
| (c_lex_with_flags): Added 'lex_flags' argument. |
| (lex_string): Added 'translate' argument. |
| * c-pragma.h (c_lex_with_flags): Update. |
| (c_lex_string_translate, c_lex_return_raw_strings): Remove. |
| (C_LEX_STRING_NO_TRANSLATE): New define. |
| (C_LEX_RAW_STRINGS): Likewise. |
| |
| 2007-09-13 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| From Jie Zhang: |
| * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES, |
| BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40, |
| BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU. |
| (bfin_init_builtins): Initialize __builtin_bfin_ones, |
| __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16, |
| __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32, |
| __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub, |
| __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40, |
| __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16. |
| (bdesc_1arg): Add __builtin_bfin_ones. |
| (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40, |
| __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40, |
| and __builtin_bfin_csqu_fr16. |
| * config/bfin/bfin.md (UNSPEC_ONES): New constant. |
| (ones): New define_insn. |
| (ssaddhi3_parts): New define_insn. |
| (sssubhi3_parts): New define_insn. |
| (flag_mulhi_parts): New define_insn. |
| |
| 2007-09-13 Seongbae Park <seongbae.park@gmail.com> |
| |
| * common.opt (femit-class-debug-always): Turn off by default. |
| |
| 2007-09-13 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns. |
| * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them. |
| |
| 2007-09-13 James E. Wilson <wilson@specifix.com> |
| |
| PR tree-optimization/33389 |
| * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true, |
| then set build_loads before returning. |
| |
| 2007-09-13 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with |
| {d}addiu and a negative immediate such that it works with MIPS16 |
| instructions. |
| |
| 2007-09-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/33418 |
| * configure.ac (ld_vers): Support Linux linker. |
| * configure: Regenerated. |
| |
| 2007-09-13 Richard Sandiford <richard@codesourcery.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete. |
| (SYMBOL_REF_MIPS16_FUNC_P): Delete. |
| * config/mips/mips.c (mips_attribute_table): Turn mips16 and |
| nomips16 into decl attributes. |
| (TARGET_INSERT_ATTRIBUTES): Override. |
| (TARGET_MERGE_DECL_ATTRIBUTES): Likewise. |
| (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true. |
| (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of... |
| (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions. |
| (mips_comp_type_attributes): Remove mips16 and nomips16 handling. |
| (mips_use_mips16_mode_p): Reimplement as a function that takes |
| a decl and considers only decl attributes. If the decl is nested |
| function, use its parent attributes. |
| (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p |
| instead of SYMBOL_REF_MIPS16_FUNC_P. |
| (mips_set_mips16_mode): Move call to sorry here from old |
| mips_use_mips16_mode_p. |
| (mflip_mips16_entry): New structure. |
| (mflip_mips16_htab): New variable. |
| (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions. |
| (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise. |
| (mips_merge_decl_attributes): New function. |
| (mips_set_current_function): Reinstate call to mips_set_mips16_mode. |
| Use mips_use_mips16_mode_p. |
| (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of |
| SYMBOL_REF_MIPS16_FUNC_P. |
| (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC. |
| |
| 2007-09-13 Richard Sandiford <richard@codesourcery.com> |
| |
| * c-parser.c (c_parser_struct_declaration): Check for a null return. |
| |
| 2007-09-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR driver/33309 |
| * gcc.c (xputenv): Make argument const, and use CONST_CAST. |
| |
| 2007-09-12 Michael Meissner <michael.meissner@amd.com> |
| Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> |
| Tony Linthicum <tony.linthicum@amd.com> |
| |
| * tree.h (function_args_iterator): New type to iterate over |
| function arguments. |
| (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over |
| function arguments providing a pointer to the argument. |
| (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over |
| function arguments providing the argument. |
| (function_args_iter_init): Inline function to initialize |
| function_args_iterator. |
| (function_args_iter_cond_ptr): Inline function to return the next |
| pointer to hold the argument. |
| (function_args_iter_cond): Inline function to return the next |
| argument. |
| (function_args_iter_cond_next): Advance the function args iterator. |
| (stdarg_p): New function, return true if variable argument function. |
| (prototype_p): New function, return true if function is prototyped. |
| (function_args_count): New function, count the number of arguments |
| of a function. |
| |
| * tree.c (stdarg_p): New function, return true if variable |
| argument function. |
| (prototype_p): New function, return true if function is prototyped. |
| |
| * config/i386/i386.h (TARGET_SSE5): New macro for SSE5. |
| (TARGET_ROUND): New macro for the round/ptest instructions which |
| are shared between SSE4.1 and SSE5. |
| (OPTION_MASK_ISA_ROUND): Ditto. |
| (OPTION_ISA_ROUND): Ditto. |
| (TARGET_FUSED_MADD): New macro for -mfused-madd swtich. |
| (TARGET_CPU_CPP_BUILTINS): Add SSE5 support. |
| |
| * config/i386/i386.opt (-msse5): New switch for SSE5 support. |
| (-mfused-madd): New switch to give users control over whether the |
| compiler optimizes to use the multiply/add SSE5 instructions. |
| |
| * config/i386/i386.c (m_AMD_MULTIPLE): Rename from |
| m_ATHLON_K8_AMDFAM10, and change all uses. |
| (enum pta_flags): Add PTA_SSE5. |
| (ix86_handle_option): Turn off 3dnow if -msse5. |
| (override_options): Add SSE5 support. |
| (print_operand): %Y prints comparison codes for SSE5 com/pcom |
| instructions. |
| (ix86_expand_sse_movcc): Add SSE5 support. |
| (ix86_expand_sse5_unpack): New function to use pperm to unpack a |
| vector type to the next largest size. |
| (ix86_expand_sse5_pack): New function to use pperm to pack a |
| vector type to the next smallest size. |
| (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic. |
| (IX86_BUILTIN_FMADDSD): Ditto. |
| (IX86_BUILTIN_FMADDPS): Ditto. |
| (IX86_BUILTIN_FMADDPD): Ditto. |
| (IX86_BUILTIN_FMSUBSS): Ditto. |
| (IX86_BUILTIN_FMSUBSD): Ditto. |
| (IX86_BUILTIN_FMSUBPS): Ditto. |
| (IX86_BUILTIN_FMSUBPD): Ditto. |
| (IX86_BUILTIN_FNMADDSS): Ditto. |
| (IX86_BUILTIN_FNMADDSD): Ditto. |
| (IX86_BUILTIN_FNMADDPS): Ditto. |
| (IX86_BUILTIN_FNMADDPD): Ditto. |
| (IX86_BUILTIN_FNMSUBSS): Ditto. |
| (IX86_BUILTIN_FNMSUBSD): Ditto. |
| (IX86_BUILTIN_FNMSUBPS): Ditto. |
| (IX86_BUILTIN_FNMSUBPD): Ditto. |
| (IX86_BUILTIN_PCMOV_V2DI): Ditto. |
| (IX86_BUILTIN_PCMOV_V4SI): Ditto. |
| (IX86_BUILTIN_PCMOV_V8HI): Ditto. |
| (IX86_BUILTIN_PCMOV_V16QI): Ditto. |
| (IX86_BUILTIN_PCMOV_V4SF): Ditto. |
| (IX86_BUILTIN_PCMOV_V2DF): Ditto. |
| (IX86_BUILTIN_PPERM): Ditto. |
| (IX86_BUILTIN_PERMPS): Ditto. |
| (IX86_BUILTIN_PERMPD): Ditto. |
| (IX86_BUILTIN_PMACSSWW): Ditto. |
| (IX86_BUILTIN_PMACSWW): Ditto. |
| (IX86_BUILTIN_PMACSSWD): Ditto. |
| (IX86_BUILTIN_PMACSWD): Ditto. |
| (IX86_BUILTIN_PMACSSDD): Ditto. |
| (IX86_BUILTIN_PMACSDD): Ditto. |
| (IX86_BUILTIN_PMACSSDQL): Ditto. |
| (IX86_BUILTIN_PMACSSDQH): Ditto. |
| (IX86_BUILTIN_PMACSDQL): Ditto. |
| (IX86_BUILTIN_PMACSDQH): Ditto. |
| (IX86_BUILTIN_PMADCSSWD): Ditto. |
| (IX86_BUILTIN_PMADCSWD): Ditto. |
| (IX86_BUILTIN_PHADDBW): Ditto. |
| (IX86_BUILTIN_PHADDBD): Ditto. |
| (IX86_BUILTIN_PHADDBQ): Ditto. |
| (IX86_BUILTIN_PHADDWD): Ditto. |
| (IX86_BUILTIN_PHADDWQ): Ditto. |
| (IX86_BUILTIN_PHADDDQ): Ditto. |
| (IX86_BUILTIN_PHADDUBW): Ditto. |
| (IX86_BUILTIN_PHADDUBD): Ditto. |
| (IX86_BUILTIN_PHADDUBQ): Ditto. |
| (IX86_BUILTIN_PHADDUWD): Ditto. |
| (IX86_BUILTIN_PHADDUWQ): Ditto. |
| (IX86_BUILTIN_PHADDUDQ): Ditto. |
| (IX86_BUILTIN_PHSUBBW): Ditto. |
| (IX86_BUILTIN_PHSUBWD): Ditto. |
| (IX86_BUILTIN_PHSUBDQ): Ditto. |
| (IX86_BUILTIN_PROTB): Ditto. |
| (IX86_BUILTIN_PROTW): Ditto. |
| (IX86_BUILTIN_PROTD): Ditto. |
| (IX86_BUILTIN_PROTQ): Ditto. |
| (IX86_BUILTIN_PROTB_IMM): Ditto. |
| (IX86_BUILTIN_PROTW_IMM): Ditto. |
| (IX86_BUILTIN_PROTD_IMM): Ditto. |
| (IX86_BUILTIN_PROTQ_IMM): Ditto. |
| (IX86_BUILTIN_PSHLB): Ditto. |
| (IX86_BUILTIN_PSHLW): Ditto. |
| (IX86_BUILTIN_PSHLD): Ditto. |
| (IX86_BUILTIN_PSHLQ): Ditto. |
| (IX86_BUILTIN_PSHAB): Ditto. |
| (IX86_BUILTIN_PSHAW): Ditto. |
| (IX86_BUILTIN_PSHAD): Ditto. |
| (IX86_BUILTIN_PSHAQ): Ditto. |
| (IX86_BUILTIN_FRCZSS): Ditto. |
| (IX86_BUILTIN_FRCZSD): Ditto. |
| (IX86_BUILTIN_FRCZPS): Ditto. |
| (IX86_BUILTIN_FRCZPD): Ditto. |
| (IX86_BUILTIN_CVTPH2PS): Ditto. |
| (IX86_BUILTIN_CVTPS2PH): Ditto. |
| (IX86_BUILTIN_COMEQSS): Ditto. |
| (IX86_BUILTIN_COMNESS): Ditto. |
| (IX86_BUILTIN_COMLTSS): Ditto. |
| (IX86_BUILTIN_COMLESS): Ditto. |
| (IX86_BUILTIN_COMGTSS): Ditto. |
| (IX86_BUILTIN_COMGESS): Ditto. |
| (IX86_BUILTIN_COMUEQSS): Ditto. |
| (IX86_BUILTIN_COMUNESS): Ditto. |
| (IX86_BUILTIN_COMULTSS): Ditto. |
| (IX86_BUILTIN_COMULESS): Ditto. |
| (IX86_BUILTIN_COMUGTSS): Ditto. |
| (IX86_BUILTIN_COMUGESS): Ditto. |
| (IX86_BUILTIN_COMORDSS): Ditto. |
| (IX86_BUILTIN_COMUNORDSS): Ditto. |
| (IX86_BUILTIN_COMFALSESS): Ditto. |
| (IX86_BUILTIN_COMTRUESS): Ditto. |
| (IX86_BUILTIN_COMEQSD): Ditto. |
| (IX86_BUILTIN_COMNESD): Ditto. |
| (IX86_BUILTIN_COMLTSD): Ditto. |
| (IX86_BUILTIN_COMLESD): Ditto. |
| (IX86_BUILTIN_COMGTSD): Ditto. |
| (IX86_BUILTIN_COMGESD): Ditto. |
| (IX86_BUILTIN_COMUEQSD): Ditto. |
| (IX86_BUILTIN_COMUNESD): Ditto. |
| (IX86_BUILTIN_COMULTSD): Ditto. |
| (IX86_BUILTIN_COMULESD): Ditto. |
| (IX86_BUILTIN_COMUGTSD): Ditto. |
| (IX86_BUILTIN_COMUGESD): Ditto. |
| (IX86_BUILTIN_COMORDSD): Ditto. |
| (IX86_BUILTIN_COMUNORDSD): Ditto. |
| (IX86_BUILTIN_COMFALSESD): Ditto. |
| (IX86_BUILTIN_COMTRUESD): Ditto. |
| (IX86_BUILTIN_COMEQPS): Ditto. |
| (IX86_BUILTIN_COMNEPS): Ditto. |
| (IX86_BUILTIN_COMLTPS): Ditto. |
| (IX86_BUILTIN_COMLEPS): Ditto. |
| (IX86_BUILTIN_COMGTPS): Ditto. |
| (IX86_BUILTIN_COMGEPS): Ditto. |
| (IX86_BUILTIN_COMUEQPS): Ditto. |
| (IX86_BUILTIN_COMUNEPS): Ditto. |
| (IX86_BUILTIN_COMULTPS): Ditto. |
| (IX86_BUILTIN_COMULEPS): Ditto. |
| (IX86_BUILTIN_COMUGTPS): Ditto. |
| (IX86_BUILTIN_COMUGEPS): Ditto. |
| (IX86_BUILTIN_COMORDPS): Ditto. |
| (IX86_BUILTIN_COMUNORDPS): Ditto. |
| (IX86_BUILTIN_COMFALSEPS): Ditto. |
| (IX86_BUILTIN_COMTRUEPS): Ditto. |
| (IX86_BUILTIN_COMEQPD): Ditto. |
| (IX86_BUILTIN_COMNEPD): Ditto. |
| (IX86_BUILTIN_COMLTPD): Ditto. |
| (IX86_BUILTIN_COMLEPD): Ditto. |
| (IX86_BUILTIN_COMGTPD): Ditto. |
| (IX86_BUILTIN_COMGEPD): Ditto. |
| (IX86_BUILTIN_COMUEQPD): Ditto. |
| (IX86_BUILTIN_COMUNEPD): Ditto. |
| (IX86_BUILTIN_COMULTPD): Ditto. |
| (IX86_BUILTIN_COMULEPD): Ditto. |
| (IX86_BUILTIN_COMUGTPD): Ditto. |
| (IX86_BUILTIN_COMUGEPD): Ditto. |
| (IX86_BUILTIN_COMORDPD): Ditto. |
| (IX86_BUILTIN_COMUNORDPD): Ditto. |
| (IX86_BUILTIN_COMFALSEPD): Ditto. |
| (IX86_BUILTIN_COMTRUEPD): Ditto. |
| (IX86_BUILTIN_PCOMEQUB): Ditto. |
| (IX86_BUILTIN_PCOMNEUB): Ditto. |
| (IX86_BUILTIN_PCOMLTUB): Ditto. |
| (IX86_BUILTIN_PCOMLEUB): Ditto. |
| (IX86_BUILTIN_PCOMGTUB): Ditto. |
| (IX86_BUILTIN_PCOMGEUB): Ditto. |
| (IX86_BUILTIN_PCOMFALSEUB): Ditto. |
| (IX86_BUILTIN_PCOMTRUEUB): Ditto. |
| (IX86_BUILTIN_PCOMEQUW): Ditto. |
| (IX86_BUILTIN_PCOMNEUW): Ditto. |
| (IX86_BUILTIN_PCOMLTUW): Ditto. |
| (IX86_BUILTIN_PCOMLEUW): Ditto. |
| (IX86_BUILTIN_PCOMGTUW): Ditto. |
| (IX86_BUILTIN_PCOMGEUW): Ditto. |
| (IX86_BUILTIN_PCOMFALSEUW): Ditto. |
| (IX86_BUILTIN_PCOMTRUEUW): Ditto. |
| (IX86_BUILTIN_PCOMEQUD): Ditto. |
| (IX86_BUILTIN_PCOMNEUD): Ditto. |
| (IX86_BUILTIN_PCOMLTUD): Ditto. |
| (IX86_BUILTIN_PCOMLEUD): Ditto. |
| (IX86_BUILTIN_PCOMGTUD): Ditto. |
| (IX86_BUILTIN_PCOMGEUD): Ditto. |
| (IX86_BUILTIN_PCOMFALSEUD): Ditto. |
| (IX86_BUILTIN_PCOMTRUEUD): Ditto. |
| (IX86_BUILTIN_PCOMEQUQ): Ditto. |
| (IX86_BUILTIN_PCOMNEUQ): Ditto. |
| (IX86_BUILTIN_PCOMLTUQ): Ditto. |
| (IX86_BUILTIN_PCOMLEUQ): Ditto. |
| (IX86_BUILTIN_PCOMGTUQ): Ditto. |
| (IX86_BUILTIN_PCOMGEUQ): Ditto. |
| (IX86_BUILTIN_PCOMFALSEUQ): Ditto. |
| (IX86_BUILTIN_PCOMTRUEUQ): Ditto. |
| (IX86_BUILTIN_PCOMEQB): Ditto. |
| (IX86_BUILTIN_PCOMNEB): Ditto. |
| (IX86_BUILTIN_PCOMLTB): Ditto. |
| (IX86_BUILTIN_PCOMLEB): Ditto. |
| (IX86_BUILTIN_PCOMGTB): Ditto. |
| (IX86_BUILTIN_PCOMGEB): Ditto. |
| (IX86_BUILTIN_PCOMFALSEB): Ditto. |
| (IX86_BUILTIN_PCOMTRUEB): Ditto. |
| (IX86_BUILTIN_PCOMEQW): Ditto. |
| (IX86_BUILTIN_PCOMNEW): Ditto. |
| (IX86_BUILTIN_PCOMLTW): Ditto. |
| (IX86_BUILTIN_PCOMLEW): Ditto. |
| (IX86_BUILTIN_PCOMGTW): Ditto. |
| (IX86_BUILTIN_PCOMGEW): Ditto. |
| (IX86_BUILTIN_PCOMFALSEW): Ditto. |
| (IX86_BUILTIN_PCOMTRUEW): Ditto. |
| (IX86_BUILTIN_PCOMEQD): Ditto. |
| (IX86_BUILTIN_PCOMNED): Ditto. |
| (IX86_BUILTIN_PCOMLTD): Ditto. |
| (IX86_BUILTIN_PCOMLED): Ditto. |
| (IX86_BUILTIN_PCOMGTD): Ditto. |
| (IX86_BUILTIN_PCOMGED): Ditto. |
| (IX86_BUILTIN_PCOMFALSED): Ditto. |
| (IX86_BUILTIN_PCOMTRUED): Ditto. |
| (IX86_BUILTIN_PCOMEQQ): Ditto. |
| (IX86_BUILTIN_PCOMNEQ): Ditto. |
| (IX86_BUILTIN_PCOMLTQ): Ditto. |
| (IX86_BUILTIN_PCOMLEQ): Ditto. |
| (IX86_BUILTIN_PCOMGTQ): Ditto. |
| (IX86_BUILTIN_PCOMGEQ): Ditto. |
| (IX86_BUILTIN_PCOMFALSEQ): Ditto. |
| (IX86_BUILTIN_PCOMTRUEQ): Ditto. |
| (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to |
| OPTION_MASK_ISA_ROUND for instructions that are shared between |
| SSE4.1 and SSE5. |
| (bdesc_2arg): Ditto. |
| (bdesc_sse_3arg): Ditto. |
| (enum multi_arg_type): New enum for describing the various SSE5 |
| intrinsic argument types. |
| (bdesc_multi_arg): New table for SSE5 intrinsics. |
| (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support. |
| (ix86_expand_multi_arg_builtin): New function for creating SSE5 |
| intrinsics. |
| (ix86_expand_builtin): Add SSE5 intrinsic support. |
| (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4 |
| operand instructions. |
| (ix86_expand_sse5_multiple_memory): New function to split the |
| second memory reference from SSE5 instructions. |
| (type_has_variadic_args_p): Delete in favor of stdarg_p. |
| (ix86_return_pops_args): Use stdarg_p to determine if the function |
| has variable arguments. |
| (ix86_setup_incoming_varargs): Ditto. |
| (x86_this_parameter): Ditto. |
| |
| * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add |
| declaration. |
| (ix86_expand_sse5_pack): Ditto. |
| (ix86_sse5_valid_op_p): Ditto. |
| (ix86_expand_sse5_multiple_memory): Ditto. |
| |
| * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC |
| constant for SSE5 support. |
| (UNSPEC_SSE5_UNSIGNED_CMP): Ditto. |
| (UNSPEC_SSE5_TRUEFALSE): Ditto. |
| (UNSPEC_SSE5_PERMUTE): Ditto. |
| (UNSPEC_SSE5_ASHIFT): Ditto. |
| (UNSPEC_SSE5_LSHIFT): Ditto. |
| (UNSPEC_FRCZ): Ditto. |
| (UNSPEC_CVTPH2PS): Ditto. |
| (UNSPEC_CVTPS2PH): Ditto. |
| (PCOM_FALSE): Add new constant for true/false SSE5 comparisons. |
| (PCOM_TRUE): Ditto. |
| (COM_FALSE_S): Ditto. |
| (COM_FALSE_P): Ditto. |
| (COM_TRUE_S): Ditto. |
| (COM_TRUE_P): Ditto. |
| (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types. |
| (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg |
| types. |
| (memory attribute): Ditto. |
| (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. |
| Use SSE4_1_ROUND_* constants instead of hard coded numbers. |
| (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. |
| (floor<mode>2): Ditto. |
| (ceil<mode>2): Ditto. |
| (btrunc<mode>2): Ditto. |
| (nearbyintdf2): Ditto. |
| (nearbyintsf2): Ditto. |
| (sse_setccsf): Disable if SSE5. |
| (sse_setccdf): Ditto. |
| (sse5_setcc<mode>): New support for SSE5 conditional move. |
| (sse5_pcmov_<mode>): Ditto. |
| |
| * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5. |
| (SSEMODEF4): Ditto. |
| (SSEMODEF2P): Ditto. |
| (ssemodesuffixf4): New mode attribute for SSE5. |
| (ssemodesuffixf2s): Ditto. |
| (ssemodesuffixf2c): Ditto. |
| (sserotatemax): Ditto. |
| (ssescalarmode): Ditto. |
| (sse_maskcmpv4sf3): Disable if SSE5. |
| (sse_maskcmpv2df3): Ditto. |
| (sse_vmmaskcmpv4sf3): Ditto. |
| (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add |
| instructions. |
| (sse5_vmfmadd<mode>4): Ditto. |
| (sse5_fmsub<mode>4): Ditto. |
| (sse5_vmfmsub<mode>4): Ditto. |
| (sse5_fnmadd<mode>4): Ditto. |
| (sse5_vmfnmadd<mode>4): Ditto. |
| (sse5_fnmsub<mode>4): Ditto. |
| (sse5_vmfnmsub<mode>4): Ditto. |
| (sse5i_fmadd<mode>4): Ditto. |
| (sse5i_fmsub<mode>4): Ditto. |
| (sse5i_fnmadd<mode>4): Ditto. |
| (sse5i_fnmsub<mode>4): Ditto. |
| (sse5i_vmfmadd<mode>4): Ditto. |
| (sse5i_vmfmsub<mode>4): Ditto. |
| (sse5i_vmfnmadd<mode>4): Ditto. |
| (sse5i_vmfnmsub<mode>4): Ditto. |
| (mulv16qi3): Add SSE5 support. |
| (mulv4si3): Ditto. |
| (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5. |
| (sse2_mulv4si3): Disable if SSE5. |
| (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1. |
| (sse4_1_roundps): Ditto. |
| (sse4_1_roundsd): Ditto. |
| (sse4_1_roundss): Ditto. |
| (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will |
| be generated. |
| (sse_maskcmpsf3): Ditto. |
| (sse_vmmaskcmpv4sf3): Ditto. |
| (sse2_maskcmpv2df3): Ditto. |
| (sse2_maskcmpdf3): Ditto. |
| (sse2_vmmaskcmpv2df3): Ditto. |
| (sse2_eq<mode>3): Ditto. |
| (sse2_gt<mode>3): Ditto. |
| (sse5_pcmov_<mode>): Add SSE5 support. |
| (vec_unpacku_hi_v16qi): Ditto. |
| (vec_unpacks_hi_v16qi): Ditto. |
| (vec_unpacku_lo_v16qi): Ditto. |
| (vec_unpacks_lo_v16qi): Ditto. |
| (vec_unpacku_hi_v8hi): Ditto. |
| (vec_unpacks_hi_v8hi): Ditto. |
| (vec_unpacku_lo_v8hi): Ditto. |
| (vec_unpacks_lo_v8hi): Ditto. |
| (vec_unpacku_hi_v4si): Ditto. |
| (vec_unpacks_hi_v4si): Ditto. |
| (vec_unpacku_lo_v4si): Ditto. |
| (vec_unpacks_lo_v4si): Ditto. |
| (sse5_pmacsww): New SSE5 intrinsic insn. |
| (sse5_pmacssww): Ditto. |
| (sse5_pmacsdd): Ditto. |
| (sse5_pmacssdd): Ditto. |
| (sse5_pmacssdql): Ditto. |
| (sse5_pmacssdqh): Ditto. |
| (sse5_pmacsdqh): Ditto. |
| (sse5_pmacsswd): Ditto. |
| (sse5_pmacswd): Ditto. |
| (sse5_pmadcsswd): Ditto. |
| (sse5_pmadcswd): Ditto. |
| (sse5_pcmov_<move>): Conditional move support on SSE5. |
| (sse5_phaddbw): New SSE5 intrinsic insn. |
| (sse5_phaddbd): Ditto. |
| (sse5_phaddbq): Ditto. |
| (sse5_phaddwd): Ditto. |
| (sse5_phaddwq): Ditto. |
| (sse5_phadddq): Ditto. |
| (sse5_phaddubw): Ditto. |
| (sse5_phaddubd): Ditto. |
| (sse5_phaddubq): Ditto. |
| (sse5_phadduwd): Ditto. |
| (sse5_phadduwq): Ditto. |
| (sse5_phaddudq): Ditto. |
| (sse5_phsubbw): Ditto. |
| (sse5_phsubwd): Ditto. |
| (sse5_phsubdq): Ditto. |
| (sse5_pperm): Ditto. |
| (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5. |
| (sse5_pperm_zero_v16qi_v8hi): Ditto. |
| (sse5_pperm_sign_v8hi_v4si): Ditto. |
| (sse5_pperm_zero_v8hi_v4si): Ditto. |
| (sse5_pperm_sign_v4si_v2di): Ditto. |
| (sse5_pperm_sign_v4si_v2di): Ditto. |
| (sse5_pperm_pack_v2di_v4si): Ditto. |
| (sse5_pperm_pack_v4si_v8hi): Ditto. |
| (sse5_pperm_pack_v8hi_v16qi): Ditto. |
| (sse5_perm<mode>): New SSE5 intrinsic insn. |
| (rotl<mode>3): Ditto. |
| (sse5_rotl<mode>3): Ditto. |
| (sse5_ashl<mode>3): Ditto. |
| (sse5_lshl<mode>3): Ditto. |
| (sse5_frcz<mode>2): Ditto. |
| (sse5s_frcz<mode>2): Ditto. |
| (sse5_cvtph2ps): Ditto. |
| (sse5_cvtps2ph): Ditto. |
| (sse5_vmmaskcmp<mode>3): Ditto. |
| (sse5_com_tf<mode>3): Ditto. |
| (sse5_maskcmp<mode>3): Ditto. |
| (sse5_maskcmp_uns<mode>3): Ditto. |
| (sse5_maskcmp_uns2<mode>3): Ditto. |
| (sse5_pcom_tf<mode>3): Ditto. |
| |
| * config/i386/predicates.md (const_0_to_31_operand): New predicate |
| to match 0..31. |
| (sse5_comparison_float_operator): New predicate to match the |
| comparison operators supported by the SSE5 com instruction. |
| (ix86_comparison_int_operator): New predicate to match just the |
| signed int comparisons. |
| (ix86_comparison_uns_operator): New predicate to match just the |
| unsigned int comparisons. |
| |
| * doc/invoke.texi (-msse5): Add documentation. |
| (-mfused-madd): Ditto. |
| |
| * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics. |
| |
| * config.gcc (i[34567]86-*-*): Include bmmintrin.h and |
| mmintrin-common.h. |
| (x86_64-*-*): Ditto. |
| |
| * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit. |
| |
| * config/i386/bmmintrin.h: New file, provide common x86 compiler |
| intrinisics for SSE5. |
| |
| * config/i386/smmintrin.h: Move instructions shared with SSE5 to |
| mmintrin-common.h. |
| |
| * config/i386/mmintrin-common.h: New file, to contain common |
| instructions between SSE4.1 and SSE5. |
| |
| * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use |
| FOREACH_FUNCTION_ARGS to iterate over the argument list. |
| (gen_regparm_prefix): Ditto. |
| |
| * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use |
| FOREACH_FUNCTION_ARGS to iterate over the argument list. Use |
| prototype_p to determine if a function is prototyped. |
| |
| 2007-09-12 Janis Johnson <janis187@us.ibm.com> |
| |
| * config/dfp-bit.c (dfp_conversion_exception): New function. |
| (DFP_TO_DFP) Add new variants to use direct conversions in decNumber. |
| (DFP_TO_INT): Ditto. |
| (INT_TO_DFP): Ditto. |
| * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New. |
| |
| 2007-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/32338 |
| * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage |
| before sp restoration even when total_size is 0, but |
| frame_pointer_needed. |
| |
| 2007-09-12 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy. |
| (xtensa_copy_incoming_a7): Use start_sequence instead of |
| push_to_sequence. Stash insns in vararg_a7_copy for builtin_saveregs. |
| (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start |
| of the saveregs sequence. |
| |
| 2007-09-12 Richard Sandiford <richard@codesourcery.com> |
| |
| * c-tree.h (grokfield): Add a "tree *" argument. |
| * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes. |
| Chain nested decl attributes to it. Don't call decl_attributes here. |
| (groktypename): Pass grokdeclarator a pointer to the attribute list. |
| (start_decl, grokparm, push_parm_decl, start_function): Likewise. |
| (grokfield): Take a pointer to the decl's attributes and pass |
| it to grokdeclarator. |
| * c-parser.c (c_parser_struct_declaration): Update the calls to |
| grokfield. Call decl_attributes for anonymous struct and union |
| fields. |
| |
| 2007-09-12 Jan Hubicka <jh@suse.cz> |
| |
| * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. |
| |
| 2007-09-12 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/32377 |
| * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish |
| between positive and negative dependence distance using DDR_REVERSED_P. |
| |
| 2007-09-12 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/33373 |
| * tree-vect-analyze (vect_determine_vectorization_factor): Call |
| TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. |
| |
| 2007-09-12 Jan Hubicka <jh@suse.cz> |
| |
| PR target/33393 |
| * config/i386/i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): |
| Disable for !SSE_MATH |
| |
| 2007-09-12 Christian Bruel <christian.bruel@st.com> |
| |
| * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs. |
| * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. |
| |
| 2007-09-12 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector |
| for oprnd1 if not required. |
| (vectorizable_operation): Use scalar operand in SLP in case of |
| shift with scalar argument. |
| |
| 2007-09-12 Ira Rosen <irar@il.ibm.com> |
| |
| * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and |
| minimum to 1. |
| |
| 2007-09-11 James E. Wilson <wilson@specifix.com> |
| |
| * defaults.h (DWARF2_UNWIND_INFO): Don't define if |
| TARGET_UNWIND_INFO is defined. |
| * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef |
| after definition. |
| |
| 2007-09-12 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (calc_live_regs): Use |
| current_function_saves_all_registers instead of |
| current_function_has_nonlocal_label. |
| (sh_allocate_initial_value): Likewise. |
| (sh_get_pr_initial_val): Likewise. |
| * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise. |
| * config/sh/sh.md (load_ra): Likewise. |
| |
| 2007-09-12 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc. |
| |
| PR target/33360 |
| * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in |
| GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation. |
| |
| 2007-09-12 Sa Liu <saliu@de.ibm.com> |
| |
| * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as |
| operands to DFmode GE or LE compares. |
| |
| 2007-09-12 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS, |
| REG_CLASS_NAMES): Add P0REGS. |
| (REGNO_REG_CLASS): Return it where appropriate. |
| (REG_CLASS_FROM_CONSTRAINT): Add 'qA'. |
| (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled. |
| * doc/md.texi (Blackfin family): Document 'q' constraints. |
| |
| 2007-09-11 Steve Kenton <skenton@ou.edu> |
| |
| * pa/linux-unwind.h: Guard with inhibit_libc. |
| * pa/hpux-unwind.h: Likewise. |
| |
| 2007-09-11 David Daney <ddaney@avtrex.com> |
| |
| * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options. |
| * doc/install.texi: Document new --with-llsc and --without-llsc |
| options. |
| * config.gcc: Handle --with-llsc and --without-llsc configure options. |
| * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction |
| in %| and %- operand codes. Depend on GENERATE_SYNC instead of |
| ISA_HAS_SYNC. |
| (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>, |
| sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, |
| sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, |
| sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, |
| sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on |
| GENERATE_LL_SC instead of ISA_HAS_LL_SC. |
| * config/mips/mips.opt (mllsc): New option. |
| * config/mips/mips.c (mips_llsc): Define variable. |
| (mips_handle_option): Handle mllsc option. |
| (override_options): Set mips_print_operand_punct for '|' and '-'. |
| (print_operand): Add new %| and %- operand codes. |
| * config/mips/mips.h (mips_llsc_setting): New enum type. |
| (mips_llsc): Declare. |
| (OPTION_DEFAULT_SPECS): Add llsc handling. |
| (GENERATE_SYNC): New macro. |
| (GENERATE_LL_SC): New macro. |
| (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, |
| MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, |
| MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions |
| in %| and %- operand codes. |
| |
| 2007-09-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with |
| TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P. |
| |
| 2007-09-11 Jason Merrill <jason@redhat.com> |
| |
| PR middle-end/27945 |
| * stor-layout.c (layout_decl): Do pack variable size fields. |
| |
| 2007-09-11 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/predicates.md (movsi_const0_operand, |
| non_symbolic_call_operand): New predicates. |
| |
| * config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac): |
| New constraints. |
| * doc/md.texi (Constraints for Particular Machines: Motorola 680x0): |
| Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ, |
| CW, CZ, CS, Ap and Ac. |
| |
| * config/m68k/m68k.md (UNSPEC_IB): New constant. |
| (constraints.md): New include. |
| (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access, |
| opx_mem, opy_mem, op_mem, guess, split): New attributes. |
| (movdf_internal): Name pattern. Fix to use alternatives. Add split. |
| Specify attributes. |
| (pushdi): Add split. |
| (tstsi_internal): Name pattern. Fix to use alternatives. Specify |
| attributes. Split tstsi_internal_68020_cf from it. |
| (tstsi_internal_68020_cf): New pattern. |
| (tsthi_internal, tstqi_internal): Name pattern. Specify attributes. |
| (tst<mode>_cf): Specify attributea. |
| (cmpsi_cf): Name pattern. Specify attributes. |
| (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute. |
| (pushexthisi_const): Fix to use alternatives. Specify |
| attributes. |
| (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60 |
| from it. Fix to use alternatives. Specify attributes. |
| (movsi_const0_68040_10, movsi_const0_68040_60): New patterns. |
| (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify |
| attributes. |
| (movsf_cf_soft): Specify attributes. |
| (movdf_cf_soft): Add split. |
| (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4, |
| cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, |
| 68k_extendqisi2, truncdfsf2_cf): Specify attributes. |
| (truncdfsf2_68881): Name pattern. Specify attributes. |
| (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf, |
| floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf, |
| fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32): |
| Specify attributes. |
| (addsi3_5200): Fix to use alternatives. Specify attributes. |
| Add splits. |
| (add<mode>3_cf, subdi_dishl32): Specify attributes. |
| (subsi3): Add alternative for subq.l. Specify attributes. |
| (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes. |
| (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify |
| attributes. |
| (umulhisi3): Specify attributes. |
| (mulhisisi3_z): Name pattern. Specify attributes. |
| (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200, |
| sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32, |
| subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3, |
| bsetmemqi): Specify attributes. |
| (bsetmemqi_ext): Name pattern. Specify attributes. |
| (bclrmemqi): Specify attributes. |
| (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes. |
| (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify |
| attributes. |
| (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name |
| pattern. Specify attributes. |
| (jump): Specify attributes. |
| (tablejump_internal): Name pattern. Specify attributes. |
| (call_value): Split into non_symbolic_call_value, |
| symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use |
| alternatives. Specify attributes. |
| (non_symbolic_call_value, symbolic_call_value_jsr, |
| symbolic_call_value_bsr): New patterns. |
| (nop, return, unlink, indirect_jump): Specify attributes. |
| (trap): Fix condition. Specify attributes. |
| (ib): New pattern. |
| |
| * config/m68k/m68k.c (m68k_symbolic_call_var): New variable. |
| (override_options): Initialize it. Initialize m68k_sched_cpu. |
| (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h. |
| (const_method): Make global, rename to m68k_const_method. |
| (const_int_cost, output_move_const_into_data_reg): Update. |
| (output_move_double): Parametrize to emit rtl code, rename to |
| handle_move_double. |
| (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi, |
| emit_movsi): New static functions. |
| (output_move_double): New function with semantics of old |
| output_move_double. |
| (m68k_emit_move_double): New function. |
| (m68k_sched_cpu): New variable. |
| (attr_op_type): New enum. |
| (sched_guess_p): New variable. |
| (sched_address_type, sched_operand_type, sched_attr_op_type): |
| New static functions. |
| (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, |
| m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions. |
| (sched_branch_type): New static variable. |
| (m68k_sched_branch_type): New function. |
| * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum. |
| (m68k_symbolic_call_var): Declare. |
| (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c. |
| (m68k_const_method, m68k_emit_move_double, 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): |
| Declare. |
| |
| 2007-09-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin. |
| * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue |
| error if __builtin_va_arg_pack_len () wasn't optimized out during |
| inlining. |
| * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len () |
| with the number of inline's anonymous arguments. |
| * doc/extend.texi: Document __builtin_va_arg_pack_len (). |
| |
| 2007-09-11 Zdenek Dvorak <ook@ucw.cz> |
| |
| * fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var. |
| |
| 2007-09-11 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.h (ix86_tune_indices): Add |
| X86_TUNE_INTER_UNIT_CONVERSIONS. |
| (TARGET_INTER_UNIT_CONVERSIONS): New. |
| * config/i386/i386.md (floatsi expanders): Remove redundant check |
| for SImode source; offload to memory when asked for. |
| (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse |
| floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): |
| Update conditions; |
| (floatsisf2_mixed_memory, floatsisf2_sse_memory, |
| floatsidf2_mixed_memory, floatsidf2_sse_memory |
| floatdisf2_mixed_memory, floatsisf2_sse_memory, |
| floatsidf2_mixed_memory, floatsidf2_sse_memory): New. |
| |
| 2007-09-11 Jan Hubicka <jh@suse.cz> |
| |
| * toplev.c (process_options): all frontends now do unit-at-a-time. |
| * cgraphunit.c: update comments. |
| (cgraph_expand_function): call passmanager dirrectly; emit thunks. |
| * c-decl.c (finish_function): use cgraph_add_new_function. |
| * function.c (expand_function_end): We are always unit-at-a-time. |
| |
| 2007-09-11 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor |
| settings for MIPS16. |
| (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p. |
| |
| 2007-09-11 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of |
| SYMBOL_FORCE_TO_MEM constants. |
| (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands. |
| (mips16_rewrite_pool_refs_info): New structure. |
| (mips16_rewrite_pool_constant): New function, split out from... |
| (mips16_rewrite_pool_refs): ...here. Take a pointer to a |
| mips16_rewrite_pool_refs_info structure rather than a pointer |
| to a constant pool. Force force_to_mem_operands into memory. |
| (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs. |
| * config/mips/predicates.md (force_to_mem_operand): New predicate. |
| * config/mips/constraints.md (kf): New constraint. |
| * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative. |
| (*movsi_mips16): Likewise. |
| |
| 2007-09-11 Richard Sandiford <richard@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| David Ung <davidu@mips.com> |
| |
| * config/mips/mips.h (CONSTANT_POOL_COST): Move to... |
| * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16. |
| (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost) |
| (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost) |
| (mips_zero_extend_cost): New functions. |
| (mips_rtx_costs): Treat COMPARE constants as having zero cost. |
| Use the new functions. Tweak many cost estimates, both here |
| and in the new subroutines. Return false when the cost of the |
| operands has not been calculated. Check for *clear_upper32. |
| Check for floating-point multiply-add, reciprocal and rsqrt |
| patterns. Handle comparison and rotation codes. |
| |
| 2007-09-11 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't |
| override default. |
| * config/i386/i386.c (get_dllimport_decl): Don't strip |
| FASTCALL_PREFIX. |
| |
| 2007-09-10 Janis Johnson <janis187@us.ibm.com> |
| |
| PR c/30013 |
| * config/dfp-bit.c: Don't skip TFmode conversions; move strto* |
| declarations to top. |
| (DFP_TO_BFP): Use for either XFmode or TFmode. |
| (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast |
| of BFP_VIA_TYPE. |
| * config/dfp-bit.h: Include float.h. |
| (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long |
| double is one of these modes, rather than using LIBGCC_HAS_*F_MODE |
| which doesn't mean the same thing. |
| (BFP_KIND): Use 4 to mean TFmode. |
| (BFP_FMT): Specify the number of decimal digits based on the |
| number of mantissa digits. |
| (BFP_VIA_TYPE): Binary float type to use as cast for sprintf. |
| (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants. |
| (STR_TO_BFP): Use strtold for XFmode or TFmode. |
| (TFtype): Define if TFmode is supported. |
| * doc/libgcc.texi (Decimal float library routines): Document |
| TF conversion functions. |
| |
| 2007-09-10 Chao-ying Fu <fu@mips.com> |
| |
| * config/mips/mips.c (mips_scalar_mode_supported_p): Declare. |
| (TARGET_SCALAR_MODE_SUPPORTED_P): Define. |
| (mips_emit_compare): Process fixed-point modes. |
| (mips_pad_arg_upward): Support fixed-point types. |
| (override_options): Allow fixed-point modes in accumulators. |
| (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers. |
| (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode, |
| V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP. |
| (mips_scalar_mode_supported_p): New function to accept fixed-point |
| modes if the width is not greater than two BITS_PER_WORD. |
| * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE, |
| LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, |
| SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, |
| LONG_LONG_ACCUM_TYPE_SIZE): Define. |
| * config/mips/mips.md ("d"): Update mode attribute for fixed-point |
| modes. |
| ("IMODE"): New mode attribute. |
| (mips-fixed.md): Include. |
| * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT, |
| ACCUM, UACCUM. |
| * config/mips/mips-fixed.md: New file. |
| |
| 2007-09-11 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.md: Formatting fixes. |
| |
| 2007-09-10 Janis Johnson <janis187@us.ibm.com> |
| |
| * config/dfp-bit.c (dfp_unary_func): Delete. |
| (dfp_unary_op): Delete. |
| (dfp_binary_op): Use decFloat functions instead of decNumber |
| functions for binary operations. |
| (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation. |
| (dnn_binary_op): Call dfp_binary_op with decFloat rather than |
| DFP_C_TYPE. |
| (dfp_compare_op): Use decFloat functions insteadof decNumber |
| functions for comparisons. |
| (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation. |
| (dnn_binary_op): Call dfp_compare_op with decFloat rather than |
| DFP_C_TYPE. |
| (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for |
| call to dxx_binary_op and decFloat function. |
| (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for |
| calls to dxx_binary_op and decFloat function. |
| * config/dfp-bit.h: Include decFloat header files. |
| (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD, |
| DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE, |
| DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN, |
| DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths. |
| |
| 2007-09-10 Harsha Jagasia <harsha.jagasia@amd.com> |
| Jan Sjodin <jan.sjodin@amd.com> |
| |
| * tree-vect-analyze.c (vect_analyze_operations): Change |
| comparison of loop iterations with threshold to less than |
| or equal to instead of less than. Reduce |
| min_scalar_loop_bound by one. |
| * tree-vect-transform.c (vect_estimate_min_profitable_iters): |
| Change prologue and epilogue iterations estimate to vf/2, |
| when unknown at compile-time. Change versioning guard |
| cost to taken_branch_cost. If peeling for alignment is |
| unknown at compile-time, change peel guard costs to one |
| taken branch and one not-taken branch per peeled loop. |
| If peeling for alignment is known but number of scalar loop |
| iterations is unknown at compile-time, change peel guard |
| costs to one taken branch per peeled loop. Change the cost |
| model equation to consider vector iterations as the loop |
| iterations less the prologue and epilogue iterations. |
| Change outside vector cost check to less than or equal to |
| zero instead of equal to zero. |
| (vect_do_peeling_for_loop_bound): Reduce |
| min_scalar_loop_bound by one. |
| * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and |
| TARG_COND_NOT_TAKEN_BRANCH_COST. |
| * config/i386/i386.h (processor_costs): Add |
| scalar_stmt_cost, scalar_load_cost, scalar_store_cost, |
| vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost, |
| vec_align_load_cost, vect_unalign_load_cost, |
| vec_store_cost, cond_taken_branch_cost, |
| cond_not_taken_branch_cost. |
| Define macros for x86 costs. |
| * config/i386/i386.c: |
| (size_cost): Set scalar_stmt_cost, scalar_load_cost, |
| scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost, |
| scalar_to_vec_cost, vec_align_load_cost, |
| vect_unalign_load_cost, vec_store_cost, |
| cond_taken_branch_cost, cond_not_taken_branch_cost to one. |
| (i386_cost, i486_cost, pentium_cost, pentiumpro_cost, |
| geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, |
| core2_cost, generic64_cost, generic32_cost): Set to default |
| untuned costs. |
| (k8_cost, amdfam10_cost): Costs for vectorization tuned. |
| (x86_builtin_vectorization_cost): New. |
| |
| 2007-09-10 Janis Johnson <janis187@us.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * dfp.c: Include decimal128Local.h; |
| (dfp_byte_swap): Remove. |
| (encode_decimal32, decode_decimal32): Don't handle endianness. |
| (encode_decimal64, decode_decimal64): Ditto. |
| (encode_decimal128, decode_decimal128): Ditto. |
| * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto. |
| (__swap64): Remove. |
| (host_to_ieee_64, ieee_to_host_64): Don't handle endianness. |
| (__swap128): Remove |
| (host_to_ieee_128, ieee_to_host_128): Don't handle endianness. |
| * Makefile.in (DECNUM_H): Add decimal128Local.h. |
| |
| 2007-09-10 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in |
| define_constants. |
| (memory_barrier): Rewrote as an insn that clobbers memory. |
| |
| 2007-09-10 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips_global_pointer): Check |
| call_really_used_regs instead of call_used_regs. |
| (mips_save_reg_p): Likewise. Save all call-saved registers |
| if current_function_saves_all_registers. Fix indentation. |
| No longer treat $18 as a special case. |
| (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT. |
| |
| 2007-09-10 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro. |
| * config/mips/mips.c (mips_cpu_info_table): Mention it in the |
| the introductory comment. |
| (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete. |
| (override_options): Don't test for it. |
| * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete. |
| (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC. |
| * config/mips/vr.h: As for config/mips/sde.h. |
| |
| 2007-09-10 Trevor Smigiel <trevor_smigiel@playstation.sony.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * target.h (struct gcc_target.sched): New field: sms_res_mii. |
| (struct ddg): Define. |
| * target-def.h (TARGET_SCHED_SMS_RES_MII): Define. |
| (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII. |
| * config/spu/spu.c: Include ddg.h. |
| (TARGET_SCHED_SMS_RES_MII): Define. |
| (spu_sms_res_mii): New function to calculate mii. |
| * modulo-sched (res_MII): Use it. |
| * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII. |
| |
| 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.c (s390_dump_pool): Create copy of constant |
| pool entries since they might hold values that must not be shared. |
| |
| 2007-09-10 Robert Kidd <rkidd@crhc.uiuc.edu> |
| |
| * bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to |
| RTL level tracer pass. |
| * passes.c (init_optimization_passes): Move pass_tracer from |
| after pass_rtl_ifcvt to after pass_dce. |
| * tracer.c: Update copyright. |
| (layout_superblocks): Remove function. |
| (mark_bb_seen): New. |
| (bb_seen_p): New. |
| (count_insns): Change to estimate instructions in a Tree-SSA |
| statement. |
| (find_trace): Use bb_seen_p. |
| (tail_duplicate): Use bb_seen_p. Call add_phi_args_after_copy |
| after duplicate_block. |
| (tracer): Change prototype to match that of a pass execute |
| callback. |
| (gate_tracer): Rename from gate_handle_tracer. |
| (rest_of_handle_tracer): Remove function. |
| * rtl.h: Remove prototype for tracer. |
| * testsuite/gcc.dg/tree-prof/tracer-1.c: New. |
| |
| 2007-09-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/33369 |
| * config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode. |
| Use 'N' operand constraint for op2. |
| (lshr<mode>3): Ditto. |
| (ashl<mode>3): Ditto. |
| (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2. |
| (vec_shr_<mode>): Ditto. |
| * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128, |
| IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode. |
| |
| 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"): |
| Change mode macro in the last real_2expN parameter to uppercase. |
| |
| 2007-09-10 Michael Matz <matz@suse.de> |
| |
| * tree-pass.h (pass_cselim): Declare new pass. |
| * passes.c (init_optimization_passes): Link in pass_cselim. |
| * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from |
| tree_ssa_phiopt; add do_store_elim parameter, handle it by calling |
| cond_store_replacement. |
| (condstoretemp): New static variable. |
| (cond_store_replacement): New function. |
| (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around |
| tree_ssa_phiopt_worker. |
| (struct name_to_bb): New. |
| (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr, |
| nt_init_block, nt_fini_block): New static functions. |
| (seen_ssa_names, nontrap_set): New static variables. |
| (gate_cselim, pass_cselim): Define new pass. |
| * common.opt (ftree-cselim): New flag. |
| * toplev.c (process_options): Set flag_tree_cselim if required. |
| |
| 2007-09-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| * simplify-rtx.c (simplify_relational_operation_1): For recent |
| canonicalization, don't recurse if op1 equals both PLUS arguments. |
| |
| 2007-09-09 David Daney <ddaney@avtrex.com> |
| |
| * optabs.c (expand_sync_operation): Use plus insn if minus |
| CONST_INT_P(val). |
| (expand_sync_fetch_operation): Ditto. |
| |
| 2007-09-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead |
| of cvtpq2ps. |
| (*floatsisf2_sse_vector): Likewise. |
| |
| 2007-09-09 Krister Walfridsson <cato@df.lth.se> |
| |
| * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1. |
| |
| 2007-09-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.h (ix86_tune_indices): Rename |
| X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS. |
| (TARGET_USE_VECTOR_CONVERTS): Updated. |
| * config/i386/i386.c: Likewise. |
| |
| 2007-09-09 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * doc/invoke.texi (Overall Options): Add .sx file extension |
| as a synonym for .S. |
| * cppspec.c (known_suffixes): Likewise. |
| * gcc.c (default_compilers): Likewise. |
| |
| 2007-09-09 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/30315 |
| * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete. |
| * simplify-rtx.c (simplify_relational_operation_1): Add the |
| canonicalization from i386.h. |
| * doc/md.texi (Canonicalization of Instructions): Document it. |
| |
| 2007-09-09 Jan Hubicka <jh@suse.cz> |
| Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> |
| |
| * config/i386/i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS. |
| (TARGET_USE_VECTOR_CONVERTS): New. |
| * config/i386/i386.md: New post-reload splitters for converting |
| SF to DF and DF to SF. |
| (floatsi* expander): Special case vector conversions. |
| (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit, |
| floatsisf2_sse_vector_internunit, floatsisf2_sse_vector, |
| floatsidf2_mixed_vector, floatsidf2_sse_vector): New. |
| (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): |
| Disable when doing vector converts. |
| (floatsi<mode>2_i387): Disable when |
| * config/i386/sse.md (vec_dupv2df): Export. |
| * config/i386/i386.c (ix86_tune_features): Enable SSE conversions. |
| |
| 2007-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_virtual_operand): Only mark |
| stores as has_volatile_ops if alias information is not available. |
| |
| 2007-09-09 Revital Eres <eres@il.ibm.com> |
| |
| * doc/contrib.texi: Add myself. |
| |
| 2007-09-09 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost, |
| stmt_vinfo_set_outside_of_loop_cost): New functions. |
| * tree-vect-transform.c (vect_get_cost_fields): Remove. |
| (vect_model_simple_cost): Call |
| stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost |
| field instead of calling vect_get_cost_fields. |
| (vect_model_store_cost, vect_model_load_cost): Likewise. |
| |
| 2007-09-09 Revital Eres <eres@il.ibm.com> |
| |
| * config/rs6000/rs6000.c (paired_init_builtins): Add const |
| declaration to bdesc_paired_preds variable. |
| (paired_expand_builtin): Likewise. |
| |
| 2007-09-09 Revital Eres <eres@il.ibm.com> |
| |
| * dbgcnt.def (sms_sched_loop): New counter. |
| * modulo-sched.c: Use sms_sched_loop instead of |
| MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to |
| perform swing modulo scheduling on. Include dbgcnt.h. |
| * Makefile.in: Add DBGCNT_H to modulo-sched.o. |
| * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER. |
| |
| 2007-09-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators. |
| Substitute all uses with ... |
| (MODEF): New mode iterator. |
| |
| (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints |
| from pre-regalloc define_insn_and_split splitter pattern. |
| (*fix_trunc<mode>_i387_1): Ditto. |
| (*fistdi2_1): Ditto. |
| (*fist<mode>2_1): Ditto. |
| (frndintxf2_floor): Ditto. |
| (*fist<mode>2_floor_1): Ditto. |
| (frndintxf2_ceil): Ditto. |
| (*fist<mode>2_ceil_1): Ditto. |
| (frndintxf2_trunc): Ditto. |
| (frndintxf2_mask_pm): Ditto. |
| |
| (prologue): Use (const_int 0) as never generated filler insn. |
| (epilogue): Ditto. |
| (sibcall_epilogue): Ditto. |
| (eh_return_si): Ditto. |
| (eh_return_di): Ditto. |
| |
| (add<mode>3): Rename from adddf3 and addsf3. Macroize expander |
| using MODEF mode iterator. |
| (sub<mode>3): Rename from subdf3 and subsf3. Macroize expander |
| using MODEF mode iterator. |
| (mul<mode>3): Rename from muldf3 and mulsf3. Macroize expander |
| using MODEF mode iterator. |
| (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2. |
| Macroize expander using MODEF mode iterator. |
| |
| (zero_extendsidi2): Remove operand constraints from expander. |
| (smuldi3_highpart): Ditto. |
| (indirect_jump): Ditto. |
| (tablejump): Ditto. |
| (rsqrtsf2): Ditto. |
| * config/i386/sse.md (storentv4sf): Ditto. |
| (storentv2df): Ditto. |
| (storentv2di): Ditto. |
| (storentsi): Ditto. |
| (sse2_cvtpd2ps): Ditto. |
| (vec_interleave_highv16qi): Ditto. |
| (vec_interleave_lowv16qi): Ditto. |
| (vec_interleave_highv8hi): Ditto. |
| (vec_interleave_lowv8hi): Ditto. |
| (vec_interleave_highv4si): Ditto. |
| (vec_interleave_lowv4si): Ditto. |
| (vec_interleave_highv2di): Ditto. |
| (vec_interleave_lowv2di): Ditto. |
| (sse2_maskmovdqu): Ditto. |
| * config/i386/mmx.md (mmx_maskmovq): Ditto. |
| |
| 2007-09-09 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1. |
| (struct _slp_tree, struct _slp_instance): Define new data structures |
| along macros for their access. |
| (struct _loop_vec_info): Define new fields: strided_stores, |
| slp_instances, and slp_unrolling_factor along macros for their access. |
| (enum slp_vect_type): New. |
| (struct _stmt_vec_info): Define new field, slp_type, and macros for |
| its access. |
| (STMT_VINFO_STRIDED_ACCESS): New macro. |
| (vect_free_slp_tree): Declare. |
| (vectorizable_load): Add an argument of type slp_tree. |
| (vectorizable_store, vectorizable_operation, vectorizable_conversion, |
| vectorizable_assignment): Likewise. |
| (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): |
| Declare (make extern). |
| * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field. |
| (new_loop_vec_info): Likewise. |
| (destroy_loop_vec_info): Free memory allocated for SLP structures. |
| * tree-vect-analyze.c: Include recog.h. |
| (vect_update_slp_costs_according_to_vf): New. |
| (vect_analyze_operations): Add argument for calls to vectorizable_ () |
| functions. For not pure SLP stmts with strided access check that the |
| group size is power of 2. Update the vectorization factor according to |
| SLP. Call vect_update_slp_costs_according_to_vf. |
| (vect_analyze_group_access): New. |
| (vect_analyze_data_ref_access): Call vect_analyze_group_access. |
| (vect_free_slp_tree): New functions. |
| (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree, |
| vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp, |
| vect_make_slp_decision, vect_detect_hybrid_slp_stmts, |
| vect_detect_hybrid_slp): Likewise. |
| (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision |
| and vect_detect_hybrid_slp. |
| * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take |
| SLP costs into account. |
| (vect_get_cost_fields): New function. |
| (vect_model_simple_cost): Make extern, add SLP parameter and handle |
| SLP. |
| (vect_model_store_cost, vect_model_load_cost): Likewise. |
| (vect_get_constant_vectors): New function. |
| (vect_get_slp_vect_defs, vect_get_slp_defs, |
| vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy, |
| vect_get_vec_defs): Likewise. |
| (vectorizable_reduction): Don't handle SLP for now. |
| (vectorizable_call): Don't handle SLP for now. Add argument to |
| vect_model_simple_cost. |
| (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to |
| get SLPed and vectorized defs). Fix indentation and spacing. |
| (vectorizable_assignment): Handle SLP. |
| (vectorizable_induction): Don't handle SLP for now. |
| (vectorizable_operation): Likewise. |
| (vectorizable_type_demotion): Add argument to |
| vect_model_simple_cost. |
| (vectorizable_type_promotion): Likewise. |
| (vectorizable_store, vectorizable_load): Handle SLP. |
| (vectorizable_condition): Don't handle SLP for now. |
| (vect_transform_stmt): Add a new argument for SLP. Check that there is |
| no SLP transformation required for unsupported cases. Add SLP |
| argument for supported cases. |
| (vect_remove_stores): New function. |
| (vect_schedule_slp_instance, vect_schedule_slp): Likewise. |
| (vect_transform_loop): Schedule SLP instances. |
| * Makefile.in: (tree-vect-analyze.o): Depend on recog.h. |
| |
| 2007-09-09 Andrew Haley <aph@redhat.com> |
| |
| * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake |
| signed optab. |
| |
| 2007-09-09 Hans-Peter Nilsson <hp@axis.com> |
| |
| Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET. |
| * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn. |
| Similar for what label_refs can go in the JUMP_TARGET field. Split |
| REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND. |
| * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not |
| REG_LABEL when replacing an operand with a LABEL_REF for a |
| non-jump insn. |
| (subst_reloads): When replacing a LABEL_REG with a register, |
| instead of generating a REG_LABEL note, assert that there already |
| is one or that the label is a known target for the insn. |
| * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL |
| note, check the JUMP_LABEL field. Remove "else" after return. |
| * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with |
| cases for REG_LABEL_OPERAND and REG_LABEL_TARGET. |
| (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and |
| REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P |
| insns. Iterate over all notes; don't assume there's only one. |
| * cse.c (recorded_label_ref): Adjust comment to refer to |
| REG_LABEL_OPERAND. |
| (cse_extended_basic_block): Do LABEL_REF check for all INSN_P |
| insns, not just NONJUMP_INSN_P. |
| (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF |
| isn't a jump target. |
| * jump.c (rebuild_jump_labels): Adjust head comment. |
| (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only; |
| don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field. |
| (mark_all_labels): For JUMP_P insns without a target, check if the |
| the target is noted on the previous nonjump insn. |
| (mark_jump_label_1): New function, guts from mark_jump_label. |
| <case IF_THEN_ELSE>: Handle first operand as a non-target when |
| marking jump target labels. |
| <case LABEL_REF>: Adjust for whether to generate a |
| REG_LABEL_TARGET or a REG_LABEL_OPERAND note. |
| For 'E' format rtl, iterate in descending element order. |
| (delete_related_insns): Handle both REG_LABEL_TARGET and |
| REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero |
| reference count, delete and fallthrough. Move finding-next- |
| non-deleted insn last in the function. Look at all INSN_P insns |
| for REG_LABEL_OPERAND notes. |
| (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of |
| JUMP. |
| * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL |
| JUMP_LABEL, output the INSN_UID of it. |
| * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND |
| and/or REG_LABEL_TARGET. |
| (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line |
| with jump.c copy by only adding notes for labels actually |
| referenced in the insn. |
| * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need |
| usage count increment; handle all INSN_P trial insns. |
| (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND |
| notes. |
| * rtl.h (struct rtx_def) <volatil>: Adjust to mention |
| REG_LABEL_TARGET and REG_LABEL_OPERAND. |
| (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and |
| REG_LABEL_OPERAND. |
| * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on |
| JUMP_P insns and REG_LABEL_OPERAND everywhere. |
| * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS |
| on all INSN_P insns. |
| * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL. |
| * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and |
| REG_LABEL_OPERAND notes. |
| * reload1.c (calculate_needs_all_insns): Adjust comments. |
| (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes. |
| * config/alpha/alpha.md (split for load of an address into a |
| four-insn sequence on Unicos/Mk): Adjust to use |
| REG_LABEL_OPERAND. |
| * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto. |
| |
| 2007-09-09 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| Revert: |
| 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| * regrename.c (copyprop_hardreg_forward_1): New variable next. Use |
| FOR_BB_INSNS_SAFE instead of for loop. |
| * cse.c (cse_extended_basic_block): Likewise. |
| * postreload.c (reload_cse_regs_1): New variable next. Make sure |
| that the for loop does not invoke NEXT_INSN on a deleted insn. |
| * function.c (instantiate_virtual_regs): Likewise. |
| * lower-subreg.c (remove_retval_note): Likewise. |
| (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of |
| FOR_BB_INSNS. |
| * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on |
| a deleted insn. |
| * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted |
| insn, if it's a jump. |
| (try_redirect_by_replacing_jump): New variable jump_p. Call |
| tablejump_p before delete_insn_chain. |
| * reload1.c (reload): New variable next. Make sure that the for |
| loop does not invoke NEXT_INSN on a deleted insn. |
| (fixup_eh_region_note): Make the loop terminate if i becomes NULL. |
| (delete_output_reload): New variable prev. Make sure the the for |
| loops do not invoke PREV_INSN on a deleted insn. |
| |
| 2007-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * pa/constraints.md: Remove 'X' from unused letters comment. |
| |
| 2007-09-08 Richard Guenther <rguenther@suse.de> |
| |
| * tree-tailcall.c (find_tail_calls): If we don't have aliases |
| computed check stmt_ann->references_memory instead of counting |
| virtual operands. |
| |
| 2007-09-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * cse.c (fold_rtx): Use validate_unshare_change() instead of |
| validate_change() in one more case. |
| |
| 2007-09-08 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/32283 |
| * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use |
| estimated_loop_iterations. |
| (determine_use_iv_cost_condition): Decrease cost of expressions |
| used in iv elimination. |
| |
| 2007-09-08 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_gimple_expr): Avoid building new |
| pointer types, use TYPE_POINTER_TO if available instead. |
| |
| 2007-09-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/33329 |
| PR rtl-optimization/26449 |
| * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence. |
| (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in |
| split1 pass. |
| (mulv16qi3): Implement as define_insn_and_split pattern instead of |
| define_expand. Split insn in split1 pass. |
| (mulv2di3): Ditto. |
| |
| 2007-09-08 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/33301 |
| * tree-vect-analyze (analyze_operations): Look at the type of the rhs |
| when relevant. |
| |
| 2007-09-07 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/32183 |
| * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H). |
| |
| * tree-ssa-reassoc.c: Include cfgloop.h. |
| (is_reassociable_op): Add a loop argument and return true only |
| for inside loop. |
| (linearize_expr): Updated. |
| (should_break_up_subtract): Likewise. |
| (linearize_expr_tree): Likewise. |
| (init_reassoc): Call loop_optimizer_init with |
| AVOID_CFG_MODIFICATIONS. Remove calculate_dominance_info call |
| with CDI_DOMINATORS. |
| (fini_reassoc): Call loop_optimizer_finalize. |
| |
| 2007-09-07 Sterling Augustine <sterling@tensilica.com> |
| |
| * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even |
| if there is no i-cache. |
| |
| 2007-09-07 Richard Guenther <rguenther@suse.de> |
| |
| Reapply |
| 2007-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32586 |
| * tree-ssa-sccvn.c (simplify_binary_expression): Avoid |
| folding if nothing changed. |
| (simplify_unary_expression): New function. Do tree combining |
| on conversion like codes. |
| (try_to_simplify): Call it. |
| |
| 2007-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/33286 |
| * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux. |
| (__gthread_active,__gthread_start, __gthread_active_init): New. |
| * gthr-posix95.h: Likewise. |
| |
| 2007-09-07 Roman Zippel <zippel@linux-m68k.org> |
| |
| * function.h (struct function): Rename calls_unwind_init |
| to saves_all_registers. |
| (current_function_saves_all_registers): Renamed from |
| current_function_calls_unwind_init. |
| * reload1.c (reload): Set current_function_saves_all_registers. |
| * except.c (expand_builtin_unwind_init): Likewise. |
| * config/m68k/m68k.c (m68k_save_reg): Use |
| current_function_saves_all_registers to save pic register. |
| |
| 2007-09-07 Janis Johnson <janis187@us.ibm.com> |
| |
| config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN. |
| config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto. |
| |
| Reapply reverted changes: |
| |
| 2007-09-06 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call |
| of real_2expN. |
| |
| 2007-09-06 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) |
| (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. |
| |
| 2007-09-05 Janis Johnson <janis187@us.ibm.com> |
| |
| * optabs.c (expand_float): Convert unsigned integer as signed only |
| if it provides sufficient accuracy; add mode argument to real_2expN. |
| (expand_fix): Fix comment typos; extend binary float into mode |
| wider than destination for converion to unsigned integer; add mode |
| argument to real_2expN. |
| * real.c (real_2expN): Add mode argument to special-case decimal |
| float values. |
| * real.h (real_2expN): Ditto. |
| * fixed-value.c (check_real_for_fixed_mode): Add mode argument to |
| real_2expN. |
| (fixed_from_string): Ditto. |
| (fixed_to_decimal): Ditto. |
| (fixed_convert_from_real): Ditto. |
| (real_convert_from_fixed): Ditto. |
| * config/rs6000/rs6000.md (FP): Include DD and TD modes. |
| * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, |
| muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, |
| floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. |
| |
| 2007-09-07 Diego Novillo <dnovillo@google.com> |
| |
| * tree-flow.h (const_block_stmt_iterator): Remove. |
| Update all users to use block_stmt_iterator. |
| * tree-iterator.h (const_tree_stmt_iterator): Remove. |
| Update all users to use tree_stmt_iterator. |
| |
| 2007-09-07 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/mips/mips.c (mips_set_current_function): Temporarily |
| make this a no-op to fix bootstrap errors, pending rewrite. |
| |
| 2007-09-07 Jan Hubicka <jh@suse.cz> |
| |
| * reorg.c (dbr_schedule): Move code removing placeholder USEs later |
| in the pass. |
| |
| 2007-09-07 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/33299 |
| * tree-vect-transform.c (vect_create_epilog_for_reduction): Update |
| uses for all relevant loop-exit phis, not just the first. |
| |
| 2007-09-07 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33330 |
| * tree-ssa-operands.c (access_can_touch_variable): An access |
| of the form (*p)[0] can touch a variable of same size. |
| |
| 2007-09-07 Jan Hubicka <jh@suse.cz> |
| |
| * passes.c (init_optimization_passes): Add simple dce and addressable |
| passes. |
| * tree-ssa.c (execute_update_addresses_taken): New function. |
| (pass_update_address_taken): New. |
| * tree-ssa-dse.c (execute_simple_dse): New function. |
| (pass_simple_dse): New. |
| * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare. |
| |
| 2007-09-07 Tobias Burnus <burnus@net-b.de> |
| |
| PR middle-end/33321 |
| * doc/invoke.texi: Fix -Wstrict-overflow= table. |
| |
| 2007-09-07 Richard Guenther <rguenther@suse.de> |
| |
| Revert |
| 2007-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32586 |
| * tree-ssa-sccvn.c (simplify_binary_expression): Avoid |
| folding if nothing changed. |
| (simplify_unary_expression): New function. Do tree combining |
| on conversion like codes. |
| (try_to_simplify): Call it. |
| |
| 2007-09-07 Richard Guenther <rguenther@suse.de> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/32821 |
| * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of |
| NULL in the call to set_bb_stmt_list. |
| |
| 2007-09-07 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (build_mips16_call_stub): Emit all direct |
| float calls here, rather than leaving some to the caller. |
| Use call_internal_direct and call_value_internal_direct. |
| * config/mips/mips.md (call_internal_direct): New pattern. |
| (call_value_internal_direct): Likewise. |
| |
| 2007-09-07 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips_base_move_loop_invariants): New variable. |
| (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set |
| to 0 for MIPS16. |
| (override_options): Set mips_base_move_loop_invariants. |
| |
| 2007-09-07 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.opt (mcode-readable=): Move to keep list |
| alphabetical. |
| |
| 2007-09-07 Richard Sandiford <richard@codesourcery.com> |
| |
| * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata |
| and -mgpopt options. Adjust the -G documentation to match. |
| * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New. |
| * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New |
| function, split out from mips_classify_symbol. Return false for |
| !TARGET_LOCAL_SDATA. |
| (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p. |
| Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT. |
| (override_options): Check whether the -mgpopt setting is consistent |
| with the other flags. |
| (symbolic_expression_p): Delete. |
| (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p |
| and default_elf_select_rtx_section. |
| (mips_in_small_data_p): Honor section attributes for MIPS16 too. |
| Return false for local data unless TARGET_LOCAL_SDATA. Likewise |
| external data and TARGET_EXTERN_SDATA. |
| |
| 2007-09-07 Tobias Burnus <burnus@net-b.de> |
| |
| PR fortran/33303 |
| * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__. |
| |
| 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| * regrename.c (copyprop_hardreg_forward_1): New variable next. Use |
| FOR_BB_INSNS_SAFE instead of for loop. |
| * cse.c (cse_extended_basic_block): Likewise. |
| * postreload.c (reload_cse_regs_1): New variable next. Make sure |
| that the for loop does not invoke NEXT_INSN on a deleted insn. |
| * function.c (instantiate_virtual_regs): Likewise. |
| * lower-subreg.c (remove_retval_note): Likewise. |
| (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of |
| FOR_BB_INSNS. |
| * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on |
| a deleted insn. |
| * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted |
| insn, if it's a jump. |
| (try_redirect_by_replacing_jump): New variable jump_p. Call |
| tablejump_p before delete_insn_chain. |
| * reload1.c (reload): New variable next. Make sure that the for |
| loop does not invoke NEXT_INSN on a deleted insn. |
| (fixup_eh_region_note): Make the loop terminate if i becomes NULL. |
| (delete_output_reload): New variable prev. Make sure the the for |
| loops do not invoke PREV_INSN on a deleted insn. |
| |
| 2007-09-06 Zdenek Dvorak <ook@ucw.cz> |
| |
| * cgraphbuild.c (rebuild_cgraph_edges): Export. |
| * cgraph.h (rebuild_cgraph_edges): Declare. |
| * tree-pass.h (pass_expand_omp_ssa): New. |
| * omp-low.c (find_omp_clause): Export. |
| (copy_var_decl): Split from omp_copy_decl_2. |
| (build_omp_barrier): Return the call to emit instead of emitting |
| it directly. |
| (lower_rec_input_clauses, expand_omp_single): Gimplify the result of |
| build_omp_barrier. |
| (extract_omp_for_data, expand_parallel_call, expand_omp_parallel, |
| expand_omp_for_generic, expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections): |
| Adapted to work on SSA form. |
| (execute_expand_omp): Do not invalidate dominance information. |
| (gate_expand_omp): Do not run with -fopenmp-ssa flag. |
| (gate_expand_omp_ssa, pass_expand_omp_ssa): New. |
| * gimplify.c (gimplify_omp_for): Ensure that the control variable is |
| a gimple_reg. |
| (force_gimple_operand): Allow gimplifying code expressions without |
| value. |
| * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes. |
| * common.opt (fopenmp-ssa): New. |
| * tree-flow.h (find_omp_clause, copy_var_decl): Declare. |
| * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency. |
| * tree-cfg.c: Include tree-inline.h. |
| (struct move_stmt_d): Replace vars_to_remove by vars_map field. |
| (replace_by_duplicate_decl, replace_ssa_name, |
| mark_virtual_ops_in_region): New functions. |
| (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted |
| to work on SSA form. |
| * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass. |
| * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP |
| constructs. |
| |
| 2007-09-06 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| * tree-loop-linear.c: Include obstack.h. |
| (linear_transform_loops): New obstack lambda_obstack. |
| Initialize it, pass it to gcc_loopnest_to_lambda_loopnest, |
| lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls |
| and free afterwards. |
| * lambda.h (struct obstack): New forward declaration. |
| (lambda_linear_expression_new): New parameter of type struct |
| obstack *. |
| (lambda_loopnest_new): Likewise. |
| (lambda_loopnest_transform): Likewise. |
| (lambda_body_vector_new): Likewise. |
| (lambda_body_vector_compute_new): Likewise. |
| (gcc_loopnest_to_lambda_loopnest): Likewise. |
| (lambda_loopnest_to_gcc_loopnest): Likewise. |
| * lambda-code.c: Include obstack.h. |
| (lambda_lattice_new): New parameter lambda_obstack. Use it for |
| allocation of ret. |
| (lambda_body_vector_new): Likewise. |
| (lambda_linear_expression_new): Likewise. |
| (lambda_lattice_new): Likewise. |
| (lambda_loopnest_new): Likewise. Additionally use obstack to |
| allocate LN_LOOPS(ret). |
| (lambda_lattice_compute_base): New parameter lambda_obstack. Pass |
| it to lambda_lattice_new. |
| (lambda_body_vector_compute_new): New parameter lambda_obstack. |
| Pass it to lambda_body_vector_new. |
| (lambda_lattice_compute_base): New paramater lambda_obstack. Pass |
| it to lambda_lattice_new. |
| (compute_nest_using_fourier_motzkin): New parameter lambda_obstack. |
| Pass it to lambda_loopnest_new, lambda_linear_expression_new. |
| (lambda_compute_target_space): Likewise. |
| (lambda_compute_auxillary_space): New parameter lambda_obstack. |
| Pass it to lambda_lattice_compute_base and |
| compute_nest_using_fourieer_motzkin. |
| (lambda_loopnest_transform): New parameter lambda_obstack. Pass |
| it to lambda_lattice_compute_base, lambda_lattice_auxillary_space |
| and lambda_lattice_compute_target_space. |
| (gcc_tree_to_linear_expression): Nex parameter lambda_obstack. |
| Pass it to lambda_linear_expression_new. |
| (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it |
| to gcc_tree_to_linear_expression. |
| (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack. |
| Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new. |
| (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack. |
| Pass it to lambda_body_vector_new and |
| lambda_body_vector_compute_new. |
| * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency. |
| (lambda-code.o): Likewise. |
| |
| 2007-09-06 Chao-ying Fu <fu@mips.com> |
| |
| * ginclude/stdfix.h: New file. |
| * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h. |
| (convert.o): Add dependence on fixed-value.h. |
| * c-convert.c (convert): Support FIXED_POINT_TYPE. |
| * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function |
| to define fixed-point constants. |
| (c_cpp_builtins): Define fixed-point constants. |
| * convert.c (fixed-value.h): New include. |
| (convert_to_real): Update comment to include fixed-point. |
| Support FIXED_POINT_TYPE. |
| (convert_to_integer): Update comment to include fixed-point. |
| Support FIXED_POINT_TYPE. |
| (convert_to_complex): Support FIXED_POINT_TYPE. |
| (convert_to_fixed): New function. |
| * convert.h (convert_to_fixed): Declare. |
| * genopinit.c: Add comment about $Q for only fixed-point modes. |
| (optabs): Add fract_optab, fractuns_optab, satfract_optab, |
| satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab, |
| sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab, |
| ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab, |
| usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab, |
| usneg_optab for fixed-point modes. |
| (gen_insn): Add force_fixed to track the $Q format for all fixed-point |
| modes. |
| * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR, |
| PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or |
| unsigned saturation optabs, when type is saturating. |
| (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT. |
| (expand_fixed_convert): New function. |
| (gen_fixed_libfunc, gen_signed_fixed_libfunc, |
| gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc, |
| gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc, |
| gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc, |
| gen_fract_conv_libfunc, gen_fractuns_conv_libfunc, |
| gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New |
| functions. |
| (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab, |
| ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, |
| usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab, |
| ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab, |
| usneg_optab, fract_optab, fractuns_optab, satfract_optab, |
| satfractuns_optab. |
| Initialize fixed-point libraries, including add, ssadd, usadd, sub, |
| sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl, |
| ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract, |
| fractuns, satfractuns. |
| * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub, |
| OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg, |
| OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen, |
| OTI_ssmsub_widen, OTI_usmsub_widen. |
| (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, |
| usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab, |
| ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab, |
| umsub_widen_optab, usmsub_widen_optab): Define. |
| (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract, |
| COI_satfractuns. |
| (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab): |
| Define. |
| (expand_fixed_convert): Declare. |
| * expr.c (convert_move): Support the move of fixed-point modes. |
| (emit_move_insn_1): Handle fixed-point mode to move via integer. |
| (categorize_ctor_elements_1): Handle FIXED_CST. |
| (count_type_elements): Handle FIXED_POINT_TYPE. |
| (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT, |
| MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. |
| Support FIXED_CST. |
| For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating |
| multiply and add/subtract for fixed-point types. |
| For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point |
| mode, we jump to binop directly. |
| Support FIXED_CONVERT_EXPR. |
| (do_store_flag): Check FIXED_CST to put a constant second. |
| (vector_mode_valid_p): Handle MODE_VECTOR_FRACT, |
| MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. |
| (const_vector_from_tree): Support FIXED_CST. |
| * doc/extend.texi (Fixed-Point): New node. |
| * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv, |
| ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract, |
| satfract, fractuns, satfractuns): Document them. |
| |
| 2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc |
| addresses into I registers. |
| |
| 2007-09-06 Jan Hubicka <jh@suse.cz> |
| Andreas Tobler <a.tobler@schweiz.org> |
| |
| * config/darwin.c (machopic_indirect_data_reference): Avoid invalid |
| sharing. |
| (machopic_legitimize_pic_address): Likewise. |
| |
| 2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| Jan Hubicka <jh@suse.cz> |
| |
| * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc |
| instead of ufloat_optab->handlers directly. |
| (floatdidf2): Likewise. |
| |
| 2007-09-06 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/mips/mips.c: Include diagnostic.h. |
| (mips_set_current_function): Check errorcount and sorrycount |
| before generating RTL. |
| |
| 2007-09-06 Richard Sandiford <richard@codesourcery.com> |
| |
| PR target/33256 |
| * config/mips/mips.c (mips_classify_symbolic_expression): New function. |
| (mips_classify_address): Use it instead of mips_symbolic_constant_p. |
| (print_operand_reloc): Likewise. |
| |
| 2007-09-06 Janis Johnson <janis187@us.ibm.com> |
| |
| Revert: |
| |
| 2007-09-06 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): |
| Update call of real_2expN. |
| |
| 2007-09-06 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) |
| (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. |
| |
| 2007-09-05 Janis Johnson <janis187@us.ibm.com> |
| |
| * optabs.c (expand_float): Convert unsigned integer as signed only |
| if it provides sufficient accuracy; add mode argument to real_2expN. |
| (expand_fix): Fix comment typos; extend binary float into mode |
| wider than destination for converion to unsigned integer; add mode |
| argument to real_2expN. |
| * real.c (real_2expN): Add mode argument to special-case decimal |
| float values. |
| * real.h (real_2expN): Ditto. |
| * fixed-value.c (check_real_for_fixed_mode): Add mode argument to |
| real_2expN. |
| (fixed_from_string): Ditto. |
| (fixed_to_decimal): Ditto. |
| (fixed_convert_from_real): Ditto. |
| (real_convert_from_fixed): Ditto. |
| * config/rs6000/rs6000.md (FP): Include DD and TD modes. |
| * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, |
| muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, |
| floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. |
| |
| 2007-09-06 Tom Tromey <tromey@redhat.com> |
| |
| * tree-cfg.c (remove_bb): Only warn if line is non-zero. |
| * c-pch.c (c_common_read_pch): Restore current location after |
| reading PCH file. |
| * tree.c (expand_location): Update. |
| (expr_filename): Changed return type. Unified the two cases. |
| (expr_lineno): Likewise. |
| (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME |
| as lvalues. |
| * toplev.c (line_table): Changed type. |
| (general_init): Update. |
| (realloc_for_line_map): New function. |
| (general_init): Allocate line_table using GC. |
| * fix-header.c (line_table): Changed type. |
| (read_scan_file): Update. |
| (read_scan_file): Update. |
| * c-ppoutput.c (maybe_print_line): Update. |
| (print_line): Update. |
| (cb_line_change): Update. |
| (cb_define): Update. |
| (pp_file_change): Update. |
| * c-opts.c (c_common_init_options): Update. |
| (finish_options): Update. |
| (push_command_line_include): Update. |
| * c-lex.c (cb_line_change): Update. |
| (cb_def_pragma): Update. |
| (cb_define): Update. |
| (cb_undef): Update. |
| (c_lex_with_flags): Use cpp_get_token_with_location. |
| * input.h (line_table): Changed type. |
| (location_from_locus): New macro. |
| * tree.h (EXPR_FILENAME): No longer an lvalue. |
| (EXPR_LINENO): Likewise. |
| (expr_locus, set_expr_locus): Declare separately for |
| USE_MAPPED_LOCATION. |
| (expr_filename, expr_lineno): Changed return type. |
| * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS. |
| * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus. |
| (expand_gimple_basic_block): Likewise. |
| * final.c (final_scan_insn): Use expanded_location. |
| |
| 2007-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32586 |
| * tree-ssa-sccvn.c (simplify_binary_expression): Avoid |
| folding if nothing changed. |
| (simplify_unary_expression): New function. Do tree combining |
| on conversion like codes. |
| (try_to_simplify): Call it. |
| * builtins.c (fold_builtin_cexp): Fold the built expressions. |
| * fold-const.c (fold_unary): Test result of get_callee_fndecl(). |
| |
| 2007-09-06 Jan Hubicka <jh@suse.cz> |
| |
| PR target/33318 |
| * cse.c (fold_rtx): Avoid invalid sharing. |
| |
| 2007-09-06 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) |
| (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. |
| |
| 2007-09-06 Revital Eres <eres@il.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): |
| Fix offsettable memory reference for 750CL. |
| |
| 2007-09-06 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * reload.c (find_reloads_address_1): Try to preserve original |
| base/index regclass of operands. |
| * regrename.c (scan_rtx_address): Likewise. |
| (replace_oldest_value_addr): Likewise. |
| |
| 2007-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33302 |
| * domwalk.c (walk_dominator_tree): The exit block is |
| interesting even if it is not reachable. |
| |
| 2007-09-06 Richard Sandiford <richard@codesourcery.com> |
| |
| PR middle-end/33306 |
| * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode. |
| |
| 2007-09-06 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for |
| robustness. |
| |
| 2007-09-05 Ian Lance Taylor <iant@google.com> |
| |
| * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int |
| when printing. |
| (dump_generic_node): Likewise. |
| * print-rtl.c (print_decl_name): Likewise. |
| * print-tree.c (print_node_brief): Likewise. |
| (print_node): Likewise. |
| * Makefile.in (RTL_BASE_H): Add alias.h. |
| (TREE_H): Likewise. |
| |
| 2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com> |
| |
| * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros): |
| Defined. |
| * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented. |
| * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined. |
| |
| 2007-09-06 Jie Zhang <jie.zhang@analog.com> |
| |
| * config.gcc (tm_file): Add linux.h for bfin*-uclinux*. |
| (tm_defines): Define UCLIBC_DEFAULT to 1. |
| (extra_options): Add linux.opt. |
| * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define. |
| (CRT_CALL_STATIC_FUNCTION): Likewise. |
| (NO_IMPLICIT_EXTERN_C): Likewise. |
| (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS. |
| * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define. |
| * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define. |
| (ENDFILE_SPEC): Don't define. |
| (LIB_SPEC): Likewise. |
| (CRT_CALL_STATIC_FUNCTION): Likewise. |
| (NO_IMPLICIT_EXTERN_C): Likewise. |
| (LINUX_TARGET_OS_CPP_BUILTINS): Likewise. |
| (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS. |
| |
| 2007-09-06 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): |
| Update call of real_2expN. |
| |
| 2007-09-06 Jan Hubicka <jh@suse.cz> |
| |
| * opts.c (common_handle_option): Enable inlining functions for |
| -fprofile-generate. |
| |
| 2007-09-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtin-attrs.def (ATTR_NONNULL_3): New. |
| (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of |
| ATTR_NOTHROW_NONNULL_##FA. |
| (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros. |
| (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3, |
| ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4, |
| ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5, |
| ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6, |
| ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3, |
| ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4): |
| New. |
| (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0, |
| ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0, |
| ATTR_FORMAT_NOTHROW_3_4): Remove. |
| * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf, |
| vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk, |
| __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_* |
| instead of ATTR_FORMAT_*_*. |
| |
| 2007-09-06 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on |
| parts re-used for REG_FRAME_RELATED_EXPR. |
| |
| 2007-09-05 Janis Johnson <janis187@us.ibm.com> |
| |
| * optabs.c (expand_float): Convert unsigned integer as signed only |
| if it provides sufficient accuracy; add mode argument to real_2expN. |
| (expand_fix): Fix comment typos; extend binary float into mode |
| wider than destination for converion to unsigned integer; add mode |
| argument to real_2expN. |
| * real.c (real_2expN): Add mode argument to special-case decimal |
| float values. |
| * real.h (real_2expN): Ditto. |
| * fixed-value.c (check_real_for_fixed_mode): Add mode argument to |
| real_2expN. |
| (fixed_from_string): Ditto. |
| (fixed_to_decimal): Ditto. |
| (fixed_convert_from_real): Ditto. |
| (real_convert_from_fixed): Ditto. |
| * config/rs6000/rs6000.md (FP): Include DD and TD modes. |
| * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, |
| muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, |
| floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. |
| |
| 2007-09-05 Ian Lance Taylor <iant@google.com> |
| |
| * init-regs.c (initialize_uninitialized_regs): Call |
| emit_insn_before rather than add_insn_before. |
| |
| 2007-09-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in. |
| * tree.h (CALL_EXPR_VA_ARG_PACK): Define. |
| * tree-inline.h (copy_body_data): Add call_expr field. |
| * tree-inline.c (expand_call_inline): Initialize call_expr. |
| (copy_bb): Append anonymous inline fn arguments to arguments |
| when inlining a CALL_EXPR_VA_ARG_PACK call. |
| * builtins.c (expand_builtin): Issue an error if |
| BUILT_IN_VA_ARG_PACK is seen during expand. |
| (fold_call_expr, fold_builtin_call_array): Don't fold |
| CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with |
| __builtin_va_arg_pack () call as last argument. |
| * gimplify.c (gimplify_call_expr): If last argument to a vararg |
| function is __builtin_va_arg_pack (), decrease number of call |
| arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR. |
| * expr.c (expand_expr_real_1): Issue an error if |
| CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand. |
| * tree-pretty-print.c (dump_generic_node): Handle printing |
| CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs. |
| * doc/extend.texi (__builtin_va_arg_pack): Document. |
| |
| 2007-09-05 Adam Nemet <anemet@caviumnetworks.com> |
| |
| PR tree-optimization/21513 |
| * builtins.c (build_builtin_expect_predicate): New function. |
| (fold_builtin_expect): Add argument for expected value. |
| Distribute __builtin_expect over short-circuiting operations. |
| Fold nested builtin_expects. |
| (fold_builtin_2): Adjust call to fold_builtin_expect. |
| |
| 2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR web/32965 |
| PR tree-optimization/13756 |
| * doc/invoke.texi (Options That Control Optimization): Document |
| -ftree-dse. |
| |
| 2007-09-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/cpuid.h: New file. |
| * config/i386/driver-i386.c: Include cpuid.h. |
| (describe_cache): Shrink size and line strings to 100 bytes. |
| (detect_caches_amd): Return "" for unsupported max_ext_level. |
| Use __cpuid function. |
| (detect_caches_intel): Return "" for unsupported max_level. |
| Use __cpuid function. |
| (host_detect_local_cpu): Change feature flag variables to |
| unsigned int. Initialize only extended feature flag variables. |
| Use __get_cpuid_max to determine max supported cpuid level. |
| Use __cpuid function to determine supported features. Fix |
| calculation of family id. Remove is_amd and check signature |
| directly. Check for Geode signature. Handle family 4 id. |
| [PROCESSOR_GENERIC32]: New default for unknown family id. Move |
| cpu discovery code to lower part of the function. |
| [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune |
| for sub-architecture. |
| [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code. |
| [PROCESSOR_K8]: Add k8-sse3 architecture. |
| [PROCESSOR_NOCONA]: Remove. |
| [PROCESSOR_GENERIC64]: Ditto. |
| * config/i386/x-i386 (driver-i386.o): Depend on cpuid.h. |
| * config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid |
| to check for SSE and FXSAVE support. |
| * config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h. |
| Add -minline-all-stringops. |
| * config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers. |
| (x86_64-*-*): Ditto. |
| |
| 2007-09-05 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/linux-unwind.h: New file. |
| * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define. |
| * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define. |
| |
| 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| * Makefile.in (stmt.o): Add alloc-pool.h dependency. |
| * stmt.c: Include alloc-pool.h. |
| (struct case_node): Remove GTY marker. |
| (add_case_node): New parameter case_node_pool. Use it for |
| allocation of r. |
| (expand_case): New allocation pool case_node_pool. Initialize it, |
| pass to add_case_node and free it. |
| |
| 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| Add mips16/nomips16 function attributes and -mflip-mips16 option |
| for testing mixed-mode compilation. |
| |
| * config/mips/mips.opt (mflip-mips16): New. |
| |
| * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define. |
| (SYMBOL_FLAG_MIPS16_FUNC_P): Define. |
| |
| * config/mips/mips.c (mips_base_target_flags): New. |
| (mips_base_mips16): New. |
| (mips_base_schedule_insns): New. |
| (mips_base_reorder_blocks_and_partition): New. |
| (mips_base_align_loops): New. |
| (mips_base_align_jumps): New. |
| (mips_base_align_functions): New. |
| (mips16_flipper): New. |
| (mips_attribute_table): Add "mips16" and "nomips16" entries. |
| (TARGET_SET_CURRENT_FUNCTION): Define. |
| (mips_mips16_type_p, mips_nomips16_type_p): New. |
| (mips_comp_type_attributes): Check mips16/nomips16 attributes. |
| (mips_function_ok_for_sibcall): Make it deal with functions with |
| mips16 attributes. |
| (mips_init_split_addresses): New, split out from override_options. |
| (mips_init_relocs): New, split out from override_options. |
| (was_mips16_p): New. |
| (mips_set_mips16_mode): New, split out from override_options. |
| (mips_set_current_function): New. |
| (override_options): Add sorry for unsupported mips16/pic |
| combination. Remove error for mips16/dsp combination. Save |
| base option settings. |
| (mips_file_start): Move mips16 mode setting output from here.... |
| (mips_output_function_prologue): ....to here. |
| (mips_output_mi_thunk): Check for mips16 function. |
| (build_mips16_function_stub): Don't set .mips16 here. |
| (build_mips16_call_stub): Likewise. |
| (mips_expand_builtin): Error in mips16 mode. |
| (mips_use_mips16_mode_p): New. |
| (mips_encode_section_info): Check for mips16 function, and set |
| SYMBOL_REF_FLAGS accordingly. |
| |
| * doc/extend.texi (Function Attributes): Document new |
| mips16/nomips16 attributes. |
| * doc/invoke.texi (Option Summary): Add -mflip-mips16. |
| (MIPS Options): Document -mflip-mips16. |
| |
| 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/mips/mips.c (mips_legitimize_tls_address): Call sorry |
| if we encounter TLS address in MIPS16 mode. |
| (mips_legitimize_const_move): Check cannot_force_const_mem for |
| the (const (plus symbol offset)) case; this forces invalid TLS |
| address in MIPS16 mode to be caught by the above call to sorry. |
| (override_options): Don't reset targetm.have_tls in MIPS16 mode, |
| because that now enables emutls, which is not ABI compatible |
| with native TLS in non-MIPS16 mode. |
| |
| 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> |
| |
| Add target hook invoked when cfun changes. |
| |
| * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document. |
| * target.h (struct gcc_target): Add set_current_function. |
| * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define. |
| (TARGET_INITIALIZER): Add initializer for set_current_function. |
| * tree.h (push_struct_function): New. |
| * tree-inline.h (push_cfun, pop_cfun): Move declarations to... |
| * function.h: Here. |
| (set_cfun): Declare. |
| * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to... |
| * function.c: Here. |
| (push_function_context_to): Use allocate_struct_function |
| to create null context, not init_dummy_function_start. Use set_cfun. |
| (pop_function_context_from): Use set_cfun. |
| (in_dummy_function): New. |
| (invoke_set_current_function_hook): New. |
| (set_cfun): New. |
| (push_cfun, pop_cfun): Use set_cfun. |
| (push_struct_function): New. |
| (allocate_struct_function): Call invoke_set_current_function_hook |
| before returning. |
| (prepare_function_start): Don't set cfun here. Remove unused |
| argument; fix all callers. |
| (init_dummy_function_start): Fiddle with in_dummy_function. Call |
| push_struct_function. |
| (init_function_start): Set cfun here. |
| (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun. |
| * omp-low.c (create_omp_child_function): Use push_struct_function |
| and pop_cfun to save/restore state. |
| (expand_omp_parallel): Remove unused saved_cfun variable. |
| * cgraphunit.c (ipa_passes): Use set_cfun. |
| * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here. |
| * dwarf2out.c (dwarf2out_abstract_function): Likewise. |
| * matrix-reorg.c (transform_allocation_sites): Likewise. |
| (matrix_reorg): Use set_cfun. |
| * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here. |
| * tree-optimize.c (tree_rest_of_compilation): Remove one redundant |
| assignment to cfun; use set_cfun for the other. |
| * tree-cfg.c (move_sese_region_to_fn): Use set_cfun. |
| (dump_function_to_file): Use push_cfun/pop_cfun here. |
| * c-decl.c (finish_function): Use set_cfun. |
| |
| 2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * regrename.c (rerename_optimize): Use deferred rescanning and |
| insert explicit calls to rescan insns when changed. |
| |
| 2007-09-05 Jan Hubicka <jh@suse.cz> |
| |
| * optabs.c (libfunc_entry): Change optab to integer. |
| (hash_libfunc, convert_optab_libfunc, optab_libfunc, |
| set_optab_libfunc, set_conv_libfunc): Use optable indexes instead |
| of pointers for hashing. |
| |
| 2007-09-05 Jan Hubicka <jh@suse.cz> |
| |
| * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing |
| verifier. |
| * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise. |
| * see.c (pass_see): Likewise. |
| * tracer.c (pass_tracer): Likewise. |
| * postreload-gcse.c (pass_gcse2): Likewise. |
| * postreload.c (pass_postreload_cse): Likewise. |
| * mode-switching.c (pass_mode_switching): Likewise. |
| * modulo-sched.c (pass_sms): Likewise. |
| * cse.c (cse_insn): Likewise. |
| * web.c (pass_web): Likweise. |
| * combine-stack-adj.c (pass_stack_adjustments): Likewise. |
| * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise. |
| * loop-init.c (pass_rtl_loop_init): Likewise. |
| (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch, |
| pass_rtl_unroll_and, pass_rtl_doloop): Likewise. |
| * global.c (pass_global_alloc): Likewise. |
| * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine, |
| pass_if_after_reload): Likewise. |
| * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise. |
| * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise. |
| * regmove.c (pass_regmove): Likewise. |
| * function.c (pass_thread_prologugues_epilogues): Likewise. |
| * gcse.c (pass_gcse): Likewise. |
| * rtl-factoring.c (pass_rtl_seqabstr): Likewise. |
| * lower-subreg.c (pass_lower_subreg2): Likewise. |
| * bt-load.c (pass_branch_target_load): Likewise. |
| * emit-rtl.c (pass_unshare_all_rtl): Likewise. |
| * cfgcleanup.c (pass_jump, pass_jump2): Likewise. |
| * combine.c (pass_combine): Likewise. |
| * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise. |
| (pass_partition_blocks): Likewise. |
| * var-tracking.c (pass_variable_track): Likewise. |
| * reg-stack.c (pass_stack_regs_run): Likewise. |
| * sched-rgn.c (pass_sched, pass_sched2): Likewise. |
| * passes.c (pass_postreload): Likewise. |
| (execute_function_todo): Add TODO_verify_rtl_sharing handling code. |
| * tree-pass.h (TODO_verify_rtl_sharing): New. |
| (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi, |
| TODO_update_ssa_only_virtuals, TODO_remove_unused_locals, |
| TODO_set_props, TODO_df_finish, TODO_df_verify, |
| TODO_mark_first_instance, TODO_rebuild_alias): Renumber. |
| |
| 2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p, |
| fold_real_zero_addition_p, reorder_operands_p, |
| div_if_zero_remainder, fold_undefer_overflow_warnings, |
| int_binop_types_match_p, fold_convert_const_int_from_int, |
| fold_convert_const_int_from_real, |
| fold_convert_const_int_from_fixed, |
| fold_convert_const_real_from_real, |
| fold_convert_const_real_from_fixed, |
| fold_convert_const_fixed_from_fixed, |
| fold_convert_const_fixed_from_int, |
| fold_convert_const_fixed_from_real, maybe_lvalue_p, |
| fold_checksum_tree, fold_check_failed, print_fold_checksum, |
| debug_fold_checksum, multiple_of_p): Constify. |
| * tree-flow-inline.h (get_lineno): Likewise. |
| * tree-flow.h (get_lineno): Likewise. |
| * tree-object-size.c (compute_object_offset, addr_object_size, |
| alloc_object_size, pass_through_call): Likewise. |
| * tree-pretty-print.c (op_symbol, print_call_name, |
| print_struct_decl, do_niy): Likewise. |
| * tree.h (fold_undefer_overflow_warnings, multiple_of_p, |
| debug_fold_checksum): Likewise. |
| |
| 2007-09-04 Steven Bosscher <steven@gcc.gnu.org> |
| |
| PR middle-end/33029 |
| * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL |
| note, remove the associated REG_RETVAL note. |
| |
| 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config.gcc (powerpc*-*-*): Install |
| spu2vmx.h, vec_types.h, and si2vmx.h headers. |
| * config/rs6000/spu2vmx.h: New header. |
| * config/rs6000/si2vmx.h: New header. |
| * config/rs6000/vec_types.h: New header. |
| |
| 2007-09-05 Ben Elliston <bje@au.ibm.com> |
| |
| * varasm.c (initializer_constant_valid_p): Fix comment typo. |
| |
| 2007-09-05 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint, |
| not `m' for *ptrp. |
| (__stdcx): Make asm volatile. |
| (__stwcx, __stdcx): Return only 0 or 1. |
| |
| 2007-09-05 Jan Hubicka <jh@suse.cz> |
| |
| Revert: |
| |
| 2007-09-04 Jan Hubicka <jh@suse.cz> |
| * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value. |
| |
| 2007-09-04 Richard Guenther <rguenther@suse.de> |
| * tree-ssa-operands.c (add_virtual_operand): Only mark |
| stores as has_volatile_ops if alias information is not available. |
| |
| 2007-09-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/tramp.asm: Include config.h. |
| Check __PIC__ or __pic__ macro instead of SHARED. |
| |
| PR rtl-optimization/32300 |
| * see.c (see_copy_insn): New function. |
| (see_def_extension_not_merged, see_merge_one_use_extension, |
| see_merge_one_def_extension): Use it. Avoid changing |
| PREV_INSN/NEXT_INSN chains directly, insted emit insns |
| into sequences. Call df_insn_delete on temporary insns |
| that won't be emitted into the insn stream. |
| (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN |
| and run df_process_deferred_rescans () before run_fast_dce. |
| |
| PR tree-optimization/33017 |
| * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't |
| recurse for pure or const function calls. |
| |
| 2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| * c-format.c: Include alloc-pool.h. |
| (check_format_info_main): New argument fwt_alloc. Use allocation |
| pool instead of GC. Remove GC deallocation code. |
| (check_format_arg): Create allocation pool, pass it to |
| check_format_info_main and free it afterwards. |
| * Makefile.in (c-format.o): Add alloc-pool.h dependency. |
| |
| 2007-09-05 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/ppu_intrinsics.h (__protected_stream_count): |
| Rename count macro arugment for clarity. |
| (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000. |
| (__protected_stream_set): Likewise, pass 0. |
| |
| 2007-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value. |
| |
| 2007-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * invoke.texi (-finline-small-functions): Document. |
| * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE |
| when deciding what is inlinable. |
| (cgraph_decide_recursive_inlining): Handle flag_inline_functions. |
| (cgraph_decide_inlining_of_small_function): Handle new flags. |
| (cgraph_decide_inlining_incrementally): Likewise. |
| * opts.c (decode_options): Enable flag_inline_small_functions at -O2 |
| * common.opt (finline-small-functions): New. |
| * Makefile.in (build/gengtype.o-warn): Work around PR29478 |
| |
| 2007-09-04 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_virtual_operand): Only mark |
| stores as has_volatile_ops if alias information is not available. |
| |
| 2007-09-04 Andrew Haley <aph@redhat.com> |
| |
| * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0. |
| |
| 2007-09-04 Andrew Haley <aph@redhat.com> |
| |
| * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New. |
| * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New. |
| * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New. |
| |
| 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr> |
| |
| PR c++/14178 |
| * common.opt: Mention ABI version 2 in comment. |
| |
| 2007-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * optabs.c (debug_optab_libfunc): Update; make available to gdb. |
| (libfunc_entry): New structure. |
| (libfunc_hash): New hashtable. |
| (hash_libfunc): New function. |
| (eq_libfunc): New function. |
| (convert_optab_libfunc): New function. |
| (optab_libfunc): New function. |
| (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc, |
| expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn, |
| expand_float, expand_fix, new_optab, new_convert_optab): |
| Update for new libfunc API. |
| (init_libfunc, init_integral_libfuncs, |
| init_floating_libfuncs, init_interclass_conv_libfuncs |
| init_intraclass_conv_libfuncs): Remove; reorganize all logic to: |
| (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc, |
| gen_intv_fp_libfunc, gen_interclass_conv_libfunc, |
| gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc, |
| gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc, |
| gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc, |
| gen_extend_conv_libfunc): New. |
| (init_one_libfunc): Revamp for hashtables. |
| (set_conv_libfunc): Likewise. |
| (init_optabs): Initialize hashtable; use lazy initialization where |
| possible. |
| * optabs.h (optab_handlers): Move out of GGC. |
| (optab, convert_optab): Move out of GGC; add lazy gen info. |
| (code_to_optab, convert_optab_table, optab_table): Move out of GGC. |
| (optab_libfunc, convert_optab_libfunc): New. |
| * builtins.c (expand_builtin_powi): Update for new API. |
| * expr.c (convert_move): Likewise. |
| * expmed.c (expand_divmod): Likewise. |
| |
| 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the |
| GOT pointer only if there is a constant pool. Use the allocated space |
| for SPE also. |
| |
| 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct |
| typo for AltiVec. |
| |
| 2007-09-04 Revital Eres <eres@il.ibm.com> |
| Richard Guenther <rguenther@suse.de> |
| R. Clint Whaley <whaley@cs.utsa.edu> |
| |
| * doc/invoke.texi (-fassociative-math, -freciprocal-math): |
| Document new flags. |
| * tree-tailcall.c (process_assignment): Use -fassociative-math |
| when reodering operands of floating-point type. |
| * fold-const.c (fold_comparison, fold_binary): Use |
| -fassociative-math and -freciprocal-math instead of |
| -funsafe-math-optimization flag. |
| * toplev.h (set_unsafe_math_optimizations_flags): Declare function. |
| * tree-ssa-math-opts.c (gate_cse_reciprocals): Use |
| -freciprocal-math instead of -funsafe-math-optimizations. |
| * opts.c (set_fast_math_flags): Set -freciprocal-math and |
| -fassociative-math when -ffast-math is set. |
| (set_unsafe_math_optimizations_flags): New Function |
| to set -freciprocal-math and -fassociative-math when |
| -funsafe-math-optimizations is set. |
| (common_handle_option): Call it. |
| * tree-vectorizer.c (vect_is_simple_reduction): Use |
| -fassociative-math when doing reduction on floats. |
| * loop-unroll.c (analyze_insn_to_expand_var): Use |
| -fassociative-math when expanding an accumulator of type float. |
| * simplify-rtx.c (simplify_binary_operation_1): Use |
| -fassociative-math and -freciprocal-math when reordeing operands |
| of floating-point type. |
| * combine.c (combine_simplify_rtx): Likewise. |
| * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb): |
| Likewise. |
| * common.opt (-fassociative-math, -freciprocal-math): New flags. |
| |
| 2007-09-04 Paolo Carlini <pcarlini@suse.de> |
| |
| PR c++/18608 |
| * doc/install.texi (--enable-__cxa_atexit): Fix typo. |
| |
| 2007-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop. |
| |
| 2007-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR |
| and corresponding MATCH_DUP. |
| |
| 2007-09-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/33187 |
| * combine.c (subst): Do not try to simplify X if it represents load |
| of FP constant from the constant pool via float extension. |
| |
| 2007-09-04 Ben Elliston <bje@au.ibm.com> |
| |
| * c-opts.c: Include "tm_p.h". |
| * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency. |
| |
| 2007-09-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33291 |
| * tree-pretty-print.c (dump_generic_node): Dump all |
| qualifiers for pointer types, not only first. Dump |
| qualifiers for aggregate types as well. |
| * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always |
| use the canonical type for building ARRAY_REFs. |
| * gimplify.c (canonicalize_addr_expr): Clean up. The |
| correct validness check is compatibility of the pointer |
| types. Always use the canonical type for building |
| ARRAY_REFs and ADDR_EXPRs. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert |
| change that disabled propagation of ADDR_EXPRs into statements |
| with volatile ops. |
| |
| 2007-09-03 Zack Weinberg <zack@codesourcery.com> |
| |
| * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart) |
| (umulsi3_highpart): Make into expanders; existing insns are |
| now named *[insn]_nov6. Add stars to existing [insn]_v6 |
| counterparts' names. |
| |
| 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o) |
| (unprotoize.o): Remove SHLIB_MULTILIB. |
| |
| 2007-09-03 Eric Weddington <eweddington@cso.atmel.com> |
| |
| * doc/extend.texi: Document progmem attribute for AVR. |
| |
| 2007-09-03 Anatoly Sokolov <aesok@post.ru> |
| |
| PR target/28902 |
| * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define. |
| |
| 2007-09-03 Zack Weinberg <zack@codesourcery.com> |
| |
| * optabs.c (expand_ffs): Initialize val and defined_at_zero |
| to avoid warnings. |
| |
| * optabs.c: Remove unnecessary forward declarations. |
| (expand_unop_direct): New, broken out of expand_unop. |
| (expand_doubleword_clz): New. |
| (expand_ctz): Move above expand_ffs. Use |
| start_sequence, end_sequence, add_equal_note, and |
| expand_unop_direct. Add more commentary. |
| (expand_ffs): Try both ctz optab and expand_ctz. |
| Generate a test and branch if the hardware doesn't give us |
| a useful value for input zero. Style improvements similar to |
| expand_ctz. |
| |
| * config/arm/arm.md (ffssi2, ctzsi2): Delete. |
| |
| 2007-09-03 Zack Weinberg <zack@codesourcery.com> |
| |
| * config.gcc: Delete stanza for arm-semi-aof and |
| armel-semi-aof targets. |
| * config/arm/arm-protos.h |
| * config/arm/arm.c |
| * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks; |
| make all #ifndef AOF_ASSEMBLER blocks unconditional. Also |
| delete aof_pic_label and remove mention of AOF in comments. |
| * config/arm/arm.md: Delete patterns used only for AOF assembly. |
| * config/arm/aof.h |
| * config/arm/semiaof.h |
| * config/arm/t-semi: Delete file. |
| |
| 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX, |
| CONST_CAST_BB): New macros for type-specific casts. |
| (CONST_CAST): Add a TYPE parameter and define it in terms of |
| CONST_CAST2. |
| |
| * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST. |
| * c-lex.c (cb_ident, lex_string): Likewise, |
| * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise, |
| * config/i386/i386.c (ix86_function_regparm, |
| ix86_function_sseregparm): Use CONST_CAST_TREE. |
| * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for |
| CONST_CAST. |
| * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1, |
| give_switch, set_multilib_dir): Likewise, |
| * gengtype-parse.c (string_seq, typedef_name): Likewise, |
| * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE. |
| * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX. |
| * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST. |
| * prefix.c (update_path): Likewise, |
| * pretty-print.c (pp_base_destroy_prefix): Likewise, |
| * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX. |
| * tree-cfg.c (tree_can_merge_blocks_p, |
| tree_block_ends_with_condjump_p): Use CONST_CAST_BB. |
| * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE. |
| * tree.c (build_string): Supply a TYPE for CONST_CAST. |
| (attribute_list_contained): Use CONST_CAST_TREE. |
| |
| 2007-09-03 Krister Walfridsson <cato@df.lth.se> |
| |
| * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define. |
| |
| 2007-09-03 Richard Sandiford <richard@codesourcery.com> |
| |
| PR middle-end/33290 |
| * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs |
| before forcing them into a register. |
| |
| 2007-09-03 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.md (fetchop_bit): Use define_code_iterator |
| rather than define_code_macro. |
| |
| 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * gcc.c (xputenv): New function. |
| (putenv_from_prefixes): Use xputenv instead of putenv. |
| (process_command): Use xputenv instead of putenv. |
| (set_collect_gcc_options): Use xputenv instead of putenv. |
| (main): Use xputenv instead of putenv. |
| |
| 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com> |
| |
| * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe |
| availability of swap instruction. |
| * config/cris/cris.md (bswapsi2): Implement using swap instruction. |
| |
| 2007-09-03 Revital Eres <eres@il.ibm.com> |
| |
| * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update |
| Documentation. |
| |
| 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com> |
| Ayal Zaks <zaks@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule, |
| compute_split_row): New functions. |
| (ps_unschedule_node): Remove. |
| (normalize_sched_times): Iterate over the already scheduled |
| insns instead of the number of nodes. |
| (MAX_SPLIT_NUM): New definition. |
| (sms_schedule_by_order): Change the scheduling heuristic to |
| avoid useless increases of initiation interval ii. |
| (get_sched_window): Add dump printouts. |
| |
| 2007-09-02 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP, |
| UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants. |
| (optab, insn): Add more attributes. |
| (fetchop_bit): New code macro. |
| (immediate_insn): New code macro attribute. |
| (sync): Change condition to ISA_HAS_SYNC. |
| (rdhwr): Change predicate for operand 0 to register_operand. |
| (memory_barrier): New expand. |
| (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>, |
| sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, |
| sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, |
| sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, |
| sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns. |
| * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates. |
| (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, |
| MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, |
| MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros. |
| |
| 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com> |
| Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO): |
| Defined to describe availability and behavior of CLZ. |
| * config/cris/cris.md (clzsi2): Implement using lz instruction. |
| * config/cris/cris.opt: Tweak comment for "-metrax4". |
| * config/cris/arit.c (LZ): When defined, define as __builtin_clz. |
| * longlong.h [__CRIS__ && __CRIS_arch_version >= 3] |
| (count_leading_zeros): Define. |
| |
| 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| * ggc-page.c (ggc_pch_read): Call validate_free_objects. |
| |
| 2007-09-02 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/29237 |
| PR middle-end/33272 |
| * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter |
| decayed from array. |
| |
| 2007-09-01 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/arm/arm.c, config/rs6000/ppu_intrinsics.h, |
| config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c, |
| ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c, |
| sched-deps.c, sched-int.h, system.h, target.h, |
| tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c, |
| tree.def: Fix comment typos. |
| |
| 2007-09-01 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove. |
| (override_options): Turn on -mstrict-align on non-ColdFire |
| targets. |
| * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment. |
| |
| 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-common.c (const_strip_array_types): Delete. |
| * c-common.h (const_strip_array_types): Likewise. |
| * emit-rtl.c (const_next_insn, const_previous_insn, |
| const_next_nonnote_insn, const_prev_nonnote_insn, |
| const_next_real_insn, const_prev_real_insn, |
| const_next_active_insn, const_prev_active_insn, const_next_label, |
| const_prev_label): Delete. |
| * gimple-low.c (block_may_fallthru): Use expr_last. |
| * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn. |
| * rtl.h (const_previous_insn, const_next_insn, |
| const_prev_nonnote_insn, const_next_nonnote_insn, |
| const_prev_real_insn, const_next_real_insn, |
| const_prev_active_insn, const_next_active_insn, const_prev_label, |
| const_next_label): Delete. |
| * rtlanal.c (keep_with_call_p): Use next_nonnote_insn. |
| * system.h (CONST_CAST): Update comment. |
| * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt. |
| (const_first_stmt, const_last_stmt): Delete. |
| (tree_block_ends_with_condjump_p): Use last_stmt. |
| * tree-flow.h (const_first_stmt, const_last_stmt): Delete. |
| * tree-iterator.c (const_expr_first, const_expr_last, |
| const_expr_only): Delete. |
| * tree.c (const_lookup_attribute): Likewise. |
| (attribute_list_contained): Use lookup_attribute. |
| * tree.h (const_lookup_attribute, const_expr_first, |
| const_expr_last, const_expr_only): Delete. |
| |
| 2007-09-01 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE |
| instead of TREE_THIS_VOLATILE. |
| * tree-ssa-operands.c (add_virtual_operand): Do not set |
| has_volatile_ops. Do not check s_ann for NULL. |
| (get_indirect_ref_operands): Likewise. |
| (get_expr_operands): Likewise. For all reference trees |
| set has_volatile_ops based on TREE_THIS_VOLATILE. Also |
| check base of reference for TREE_THIS_VOLATILE. |
| |
| 2007-09-01 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_gimple_expr): Fix check for conversions |
| between integral types. Also allow conversions between |
| pointer types. |
| |
| 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * optabs.c (prepare_float_lib_cmp): Use |
| libgcc_cmp_return_mode instead of word_mode. |
| * config/dfp-bit.h: Likewise. |
| * config/fp-bit.h: Likewise. |
| * config/spu/spu.c (spu_libgcc_cmp_return_mode): |
| New function. |
| (spu_libgcc_shift_count_mode): New function. |
| (TARGET_LIBGCC_CMP_RETURN_MODE): Define. |
| (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define. |
| |
| 2007-08-31 Joseph Myers <joseph@codesourcery.com> |
| |
| * tree-pretty-print.c: Include output.h. |
| (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not |
| HOST_WIDE_INT_PRINT_DEC. |
| * Makefile.in (tree-pretty-print.o): Add dependency on output.h. |
| |
| 2007-08-31 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR rtl-optimization/33224 |
| * loop-iv.c (latch_dominating_def): Check that the definition belongs |
| to the analysed region. |
| |
| 2007-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * function.c (allocate_struct_function): Do not set |
| current_function_returns_pointer. |
| * function.h (struct var_refs_queue): Remove. |
| (struct simple_obstack_stack): Likewise. |
| (struct function): Remove fixup_var_refs_queue member. |
| Remove returns_pointer flag. |
| (current_function_returns_pointer): Remove define. |
| |
| 2007-08-31 Nick Clifton <nickc@redhat.com> |
| |
| * tree-ssa-coalesce.c (compare_pairs): Use the elements as |
| secondary keys in order to obtain a stable sort. |
| |
| 2007-08-31 Nick Clifton <nickc@redhat.com> |
| |
| PR target/33132 |
| * config/m32r/constraints.md: Add W constraint for integer zero. |
| * config/m32r/m32r.md (get_pc): Use W and i constraints. |
| Fix length calculation by using alternatives. |
| |
| 2007-08-31 Richard Sandiford <richard@codesourcery.com> |
| |
| * optabs.c (shift_optab_p, commutative_optab_p): New functions, |
| split out from expand_binop. |
| (avoid_expensive_constant): New function. |
| (expand_binop_directly): Remove commutative_op argument and |
| (expand_binop_directly): Remove commutative_op argument and |
| call cummutative_optab_p instead. Do not change op0 or op1 |
| when swapping xop0 and xop1. Apply avoid_expensive_constant |
| to each argument after potential swapping. Enforce the |
| canonical order of commutative operands. |
| (expand_binop): Use shift_optab_p and commutative_optab_p. |
| Update the calls to expand_binop_directly. Only force constants |
| into registers when widening an operation. Only swap operands |
| once a direct expansion has been rejected. |
| (expand_twoval_binop): Only force constants into registers when |
| using a direct expansion. |
| |
| 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED. |
| (sched_analyze_insn): Don't postprocess speculative dependencies when |
| target has no scheduling. |
| * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix |
| 'uninitialized' warning. |
| |
| 2007-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build_complex_type): Always set TYPE_NAME for |
| comples types. |
| |
| 2007-08-31 Olivier Hainque <hainque@adacore.com> |
| |
| * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New |
| internal macro. Default alignment factor for csect directives, chosen |
| to match what BIGGEST_ALIGNMENT allows. |
| (DATA_SECTION_ASM_OP): Use it. |
| * config/rs6000/rs6000.c |
| (rs6000_xcoff_output_readonly_section_asm_op): |
| Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR. |
| (rs6000_xcoff_output_readwrite_section_asm_op): Likewise. |
| |
| 2007-08-31 Olivier Hainque <hainque@adacore.com> |
| |
| * dbxout.c (dbxout_block): Move declaration within the first |
| #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such |
| block to include the definition, together with the associated |
| helpers. |
| |
| 2007-08-31 David Edelsohn <edelsohn@gnu.org> |
| Revital Eres <eres@il.ibm.com> |
| |
| * doc/invoke.texi (-mpaired): Document flag. |
| * config.gcc: Include paired.h in powerpc extra_headers and |
| 750cl.h in powerpc-*-linux*paired*. |
| * config/rs6000/rs6000.opt (-mpaired): New flag. |
| * config/rs6000/rs6000.c (paired_init_builtins, |
| paired_expand_builtin, paired_expand_lv_builtin, |
| paired_expand_stv_builtin, paired_expand_predicate_builtin): |
| New functions to support the paired single builtin functions. |
| (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE. |
| (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired |
| single builtins. |
| (bdesc_paired_preds): New structure for paired predicate |
| instructions. |
| (rs6000_expand_builtin): Expand paired single builtins. |
| (rs6000_init_builtins): Init paired single builtins. |
| (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf. |
| Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe |
| and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types |
| v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf. |
| (rs6000_vector_mode_supported_p): Support paired vector mode. |
| * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD, |
| PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT): |
| New. |
| (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE. |
| (DATA_ALIGNMENT): Likewise. |
| (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE. |
| (rs6000_builtins): Add PAIRED builtins. |
| * config/rs6000/rs6000.md: Include paired.md. |
| * config/rs6000/paired.h: New. |
| * config/rs6000/paired.md: New. |
| * config/rs6000/750cl.h: New. |
| * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl. |
| |
| 2007-08-30 Ollie Wild <aaw@google.com> |
| |
| * c-opts.c (c_common_handle_option): Support -fno-directives-only. |
| * gcc.c (default_compilers): Add -fno-directives-only to |
| @assembler-with-cpp. |
| |
| 2007-08-30 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR middle-end/33211 |
| |
| * regclass.c (initial_fixed_regs): Revert previous change and make |
| it const again. |
| (initial_call_used_regs): Likewise. |
| (initial_call_really_used_regs): Delete, reverting previous addition. |
| (initial_reg_names): Likewise. |
| (init_reg_sets): Revert previous change. |
| (saved_fixed_regs): New. |
| (saved_call_used_regs): New. |
| (saved_call_really_used_regs): New. |
| (saved_reg_names): New. |
| (save_register_info): New. |
| (restore_register_info): New. |
| (init_reg_sets_1): Replace reset of register info with call to |
| restore_register_info. |
| * rtl.h (save_register_info): Declare. |
| * toplev.c (backend_init): Call save_register_info. |
| |
| 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
| |
| * tree-ssa-propagate.c (set_rhs): Remove the copied annotation |
| from the original statement. |
| |
| 2007-08-30 Chao-ying Fu <fu@mips.com> |
| |
| * c-lex.c (interpret_fixed): Declare. |
| (interpret_float): Process _Fract and _Accum. |
| (interpret_fixed): New function. |
| * final.c (output_addr_const): Process CONST_FIXED. |
| * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG. |
| (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT, |
| SS_DIV, US_DIV. |
| (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV, |
| US_DIV, US_ASHIFT. |
| (simplify_immed_subreg): Support CONST_FIXED. |
| Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. |
| (simplify_subreg): Support CONST_FIXED. |
| |
| 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config/rs6000/ppu_intrinsics.h: New file. |
| * config.gcc (powerpc*-*-* <extra_headers>): Install |
| ppu_intrinsics.h. |
| |
| 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * cfg.c (dump_flow_info): Change to also print entry and exit |
| block info. |
| * print-rtl.c (print_rtl_single): Allow to print rtl with |
| -fdump-unnumbered. |
| |
| 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * df-core.h (df_dump_region): New function. |
| * df.h (df_dump_region): New function. |
| * loop-invariant.c (find_defs): Add call to df_dump_region. |
| * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to |
| df_dump_region. |
| |
| 2007-08-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/33168 |
| * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return |
| true if any of the compare_section_name calls returned true, |
| rather than if any returned false. |
| |
| 2007-08-30 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/33199 |
| * tree-ssa-structalias.c (handle_lhs_call): New function. |
| (find_func_aliases): In non-IPA mode make sure that for |
| calls that return a pointer we add a constraint for the |
| result to point to anything. |
| |
| 2007-08-30 Richard Guenther <rguenther@suse.de> |
| |
| * doc/invoke.texi (-mveclibabi): Document new target option. |
| * config/i386/i386.opt (-mveclibabi): New target option. |
| * config/i386/i386.c (ix86_veclib_handler): Handler for |
| vectorization library support. |
| (override_options): Handle the -mveclibabi option, initialize |
| the vectorization library handler. |
| (ix86_builtin_vectorized_function): As fallback call the |
| vectorization library handler, if set. |
| (ix86_veclibabi_acml): New static function for ACML ABI style |
| vectorization support. |
| |
| 2007-08-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode |
| used_m, even if it is 32-bit aligned, adjust used_m MEM to have |
| SImode and update m. Don't run gen_lowpart_common on arbitrary |
| memory address, force it to register first. |
| |
| PR middle-end/32758 |
| * dce.c (dce_process_block): Don't delete setters of |
| artificially used registers. |
| |
| 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/s390/s390.md ("*add<mode>3_alc_carry1_cc", |
| "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc", |
| "*add<mode>3_alc_carry2_cconly"): New insn definitions. |
| |
| 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_addcc): Emit canonical alc |
| pattern. |
| * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc", |
| "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical. |
| |
| 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * system.h: Activate -Wcast-qual as warning-only. |
| |
| 2007-08-29 Paolo Bonzini <bonzini@gnu.org> |
| |
| PR target/33168 |
| * config/rs6000/rs6000.c (compare_section_name): New function. |
| (rs6000_elf_in_small_data_p): Compare section prefixes instead |
| of full name. |
| |
| 2007-08-29 Olivier Hainque <hainque@adacore.com> |
| |
| * xcoffout.c: #include debug.h. |
| * Makefile.in (xcoffout.o): Add debug.h dependency. |
| |
| 2007-08-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]: |
| Change CONST_VECTOR_ELT to XVECEXP in elem calculation. |
| |
| 2007-08-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Print |
| label DECL_UID as D.%u. |
| * tree-dfa.c (dump_variable): Print DECL_UID as D.%u. |
| |
| 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * builtin-types.def (BT_FN_PTR_PTR_SIZE): New type. |
| * builtins.def (BUILT_IN_REALLOC): New builtin. |
| |
| 2007-08-29 Douglas Gregor <doug.gregor@gmail.com> |
| |
| PR c++/33194 |
| * tree.c (build_type_attribute_qual_variant): Set canonical types |
| on the final, unqualified attribute variant before building the |
| qualified version. |
| |
| 2007-08-29 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument |
| order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu. |
| |
| 2007-08-29 Jie Zhang <jie.zhang@analog.com> |
| |
| Revert |
| 2007-08-29 Jie Zhang <jie.zhang@analog.com> |
| * config/bfin/bfin.md (composev2hi): Put operands into vector |
| with correct order. |
| |
| 2007-08-29 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.md (composev2hi): Put operands into vector |
| with correct order. |
| |
| 2007-08-29 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text |
| attribute when appropriate. |
| (bfin_handle_l1_text_attribute): New. |
| (bfin_handle_l1_data_attribute): New. |
| (bfin_attribute_table): Add attributes: l1_text, l1_data, |
| l1_data_A and l1_data_B. |
| * doc/extend.texi (node Function Attributes): Document l1_text |
| function attribute. |
| (Variable Attributes): Add Blackfin subsection. Document l1_data, |
| l1_data_A and l1_data_B variable attributes. |
| |
| 2007-08-28 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.opt (minline-plt): Add. |
| * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit |
| call to global functions. |
| * doc/invoke.texi (Option Summary): Mention -minline-plt. |
| (Blackfin Options): Document -minline-plt. |
| |
| 2007-08-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never |
| given a non-function. |
| (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind. |
| |
| 2007-08-28 DJ Delorie <dj@redhat.com> |
| |
| * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support. |
| |
| 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * system.h (CONST_CAST): Avoid union for gcc-4.0.x. |
| |
| 2007-08-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (struct tree_function_decl): Increase size of |
| function_code bitfield. |
| |
| 2007-08-28 Nathan Sidwell <nathan@codesourcery.com> |
| Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/linux.h |
| (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0. |
| * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New. |
| (m68k_return_in_memory): New. |
| * config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT): |
| New. |
| |
| 2007-08-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32661 |
| * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]: |
| Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as |
| operand) when top VEC_SELECT extracts scalar element. |
| * config/i386/sse.md (*vec_extract_v4si_mem): New pattern. |
| (*vec_extract_v4sf_mem): Ditto. |
| |
| 2007-08-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/32370 |
| * passes.c (init_optimization_passes): Move pass_df_finish |
| after pass_postreload sublist. |
| |
| PR rtl-optimization/33148 |
| * simplify-rtx.c (simplify_unary_operation_1): Only optimize |
| (neg (lt X 0)) if X has scalar int mode. |
| |
| PR debug/32914 |
| * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR |
| initializer, use build_vector_from_ctor if possible to create |
| VECTOR_CST out of it. If vector initializer is not VECTOR_CST |
| even after this, return NULL. |
| |
| 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST. |
| |
| 2007-08-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (DECL_DISREGARD_INLINE_LIMITS): New. |
| (struct tree_function_decl): Make function_code a bitfield. |
| Add disregard_inline_limits flag. |
| * cgraphunit.c (cgraph_process_new_functions): Check |
| DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p. |
| (cgraph_preserve_function_body_p): Likewise. |
| * ipa-inline.c (compute_inline_parameters): Likewise. |
| * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS |
| for GNU C extern inline functions. |
| (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS. |
| * tree-inline.c (disregard_inline_limits_p): Remove. |
| * tree-inline.h (disregard_inline_limits_p): Likewise. |
| * c-common.c (handle_always_inline_attribute): Set |
| DECL_DISREGARD_INLINE_LIMITS. |
| * langhooks.c (add_builtin_function): Verify the function code |
| fits in the bitfield. |
| |
| 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com> |
| Vladimir Yanovsky <yanov@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| Andrey Belevantsev <abel@ispras.ru> |
| |
| * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched |
| is set. |
| * modulo-sched.c: Add documentation regarding do-loop. |
| (doloop_register_get): Change number of arguments to support |
| the new do-loop pattern and check whether COUNT_REG has no other |
| occurences in the loop besides in the control part. |
| (duplicate_insns_of_cycles): Do not duplicate the insn which |
| changes count_reg as it is already adjusted. |
| (generate_prolog_epilog): New argument to support the new |
| do-loop pattern. Change the subtract instruction to use |
| expand_simple_binop. Call duplicate_insns_of_cycles with new |
| argument. |
| (sms_schedule): Call doloop_register_get and |
| generate_prolog_epilog with new argument. Do not handle loops |
| with single sets insns with subreg in their lhs. |
| * loop-doloop.c (doloop_optimize): Support for another do-loop |
| pattern. |
| (doloop_condition_get): Gets an instruction instead of a pattern |
| and change the return condition when the do-loop pattern is |
| not parallel. |
| * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg |
| deps when considering to not create edges. |
| |
| 2007-08-27 Alexandre Oliva <aoliva@redhat.com> |
| |
| * doc/extend.texi (gnu_inline funtion attribute): Document C++ |
| behavior. |
| |
| 2007-08-27 Jason Merrill <jason@redhat.com> |
| |
| PR c++/31337 |
| * gimplify.c (gimplify_modify_expr): Discard the assignment of |
| zero-sized types after calling gimplify_modify_expr_rhs. |
| |
| 2007-08-27 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * regclass.c (init_reg_autoinc): Fix typo. |
| |
| 2007-08-27 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/33173 |
| * tree-ssa-alias.c (find_used_portions): Fix reversed test. |
| |
| 2007-08-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/31385 |
| * config/i386/i386.h (VALID_DFP_MODE_P): New. |
| * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in |
| GPR. |
| |
| 2007-08-27 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| Separate target-specific initialization from general |
| back-end initialization. |
| |
| * toplev.c (init_alignments): New, split out from... |
| (process_options): ...here. |
| (backend_init_target): New, split out from... |
| (backend_init): ...here. |
| (lang_dependent_init_target): New, split out from... |
| (lang_dependent_init): ...here. |
| (target_reinit): New. |
| * toplev.h (target_reinit): Declare. |
| * expr.c (init_expr_target): Renamed from init_expr_once, since it |
| now can be called more than once. Update comments. |
| * expr.h (init_expr_target): Likewise. |
| * alias.c (init_alias_target): Renamed from init_alias_once, since it |
| now can be called more than once. Explicitly zero |
| static_reg_base_value. |
| * emit-rtl.c (init_emit_regs): New, split out from... |
| (init_emit_once): Here. |
| * regclass.c (initial_fixed_regs, initial_call_used_regs): Make |
| non-const, so that changes from command-line arguments can overwrite |
| values provided by the static initializers. |
| (initial_call_really_used_regs): New, used similarly to the above. |
| (initial_reg_names): Likewise. |
| (last_mode_for_init_move_cost): Promoted function-local static to |
| file-scope static to make it accessible outside init_move_cost. |
| (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet. |
| Do not initialize inv_reg_alloc_order yet, either. Do initialize |
| reg_names since it is needed for parsing command-line options. |
| (init_move_cost): Use last_mode_for_init_move_cost instead of |
| function-local static. |
| (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and |
| call_really_used_regs now. Reinitialize reg_names. Also |
| initialize inv_reg_alloc_order. Zero reg_class_subunion and |
| reg_class_superunion. Clear losing_caller_save_reg_set. |
| Preserve global registers if called more than once. Reset |
| move cost, may_move_in_cost, may_move_out_cost, and |
| last_mode_for_init_move_cost. |
| (init_reg_modes_target): Renamed from init_reg_modes_once, since it |
| can now be invoked more than once. Update comments. |
| (init_regs): Update comments. |
| (fix_register): Update initial_fixed_regs, initial_call_used_regs, |
| and initial_call_really_used_regs, instead of the non-initial |
| variables. This allows us to save the command-line register settings |
| after target reinitialization. |
| (init_reg_autoinc): Zero forbidden_inc_dec_classes. |
| * rtl.h (init_emit_regs): Declare. |
| (init_reg_modes_target, init_alias_target): Renamed as described |
| above. |
| * reload1.c (init_reload): Update comments. |
| * optabs.c (init_optabs): Likewise. |
| * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs. |
| |
| 2007-08-26 Chao-ying Fu <fu@mips.com> |
| |
| * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of |
| __typeof(). |
| |
| 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (memory_modified_1, memory_modified_in_insn_p): |
| Constify. |
| * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p): |
| Likewise. |
| * bb-reorder.c (copy_bb_p): Likewise. |
| * cfghooks.c (can_remove_branch_p, can_merge_blocks_p, |
| predicted_by_p, can_duplicate_block_p, block_ends_with_call_p, |
| block_ends_with_condjump_p): Likewise. |
| * cfghooks.h (can_remove_branch_p, can_merge_blocks_p, |
| predicted_by_p, can_duplicate_block_p, block_ends_with_call_p, |
| block_ends_with_condjump_p): Likewise. |
| * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise. |
| * cfgrtl.c (can_delete_note_p, can_delete_label_p, |
| rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p, |
| rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p, |
| need_fake_edge_p, rtl_can_remove_branch_p): Likewise. |
| * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use |
| debug_true_const_tree instad of debug_true_tree. |
| * debug.c (do_nothing_debug_hooks): Likewise. |
| * debug.h (ignore_block, debug_true_const_tree): Constify. |
| * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save, |
| dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type, |
| decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc, |
| same_dw_val_p, add_ranges, is_subrange_type, type_is_enum, |
| dbx_reg_number, is_based_loc, field_type, |
| simple_type_align_in_bits, simple_decl_align_in_bits, |
| simple_type_size_in_bits, field_byte_offset, insert_float, |
| type_tag, member_declared_type, is_redundant_typedef, |
| secname_for_decl, is_inlined_entry_point): Likewise. |
| * emit-rtl.c (const_next_insn, const_previous_insn, |
| const_next_nonnote_insn, const_prev_nonnote_insn, |
| const_next_real_insn, const_prev_real_insn, |
| const_next_active_insn, const_prev_active_insn, const_next_label, |
| const_prev_label): Likewise. |
| * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region): |
| Likewise. |
| * haifa-sched.c (may_trap_exp, haifa_classify_insn, |
| find_set_reg_weight, no_real_insns_p, find_set_reg_weight, |
| sched_insn_is_legitimate_for_speculation_p): Likewise. |
| * jump.c (reversed_comparison_code_parts, |
| reversed_comparison_code, reversed_comparison, condjump_label): |
| Likewise. |
| * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise. |
| * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned): |
| Likewise. |
| * rtl.h (const_previous_insn, const_next_insn, |
| const_prev_nonnote_insn, const_next_nonnote_insn, |
| const_prev_real_insn, const_next_real_insn, |
| const_prev_active_insn, const_next_active_insn, const_prev_label, |
| const_next_label, modified_between_p, modified_in_p, |
| const_note_storeskeep_with_call_p, condjump_label, |
| reversed_comparison, reversed_comparison_code, |
| reversed_comparison_code_parts, memory_modified_in_insn_p, |
| stack_regs_mentioned): Likewise. |
| * rtlanal.c (modified_between_p, modified_in_p, const_note_stores, |
| keep_with_call_p): Likewise. |
| * sched-deps.c (deps_may_trap_p, sched_get_condition, |
| conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list, |
| sd_lists_size, sd_lists_empty_p): Likewise. |
| * sched-int.h (sched_insns_conditions_mutex_p, |
| haifa_classify_insn, no_real_insns_p, |
| sched_insn_is_legitimate_for_speculation_p, sd_next_list, |
| sd_lists_size, sd_lists_empty_p): Likewise. |
| * sdbout.c (sdb_debug_hooks): Likewise. |
| * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt, |
| stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p, |
| -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p): |
| Likewise. |
| * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region, |
| tree_can_throw_internal): Likewise. |
| * tree-flow-inline.h (phi_nodes): Likewise. |
| * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt, |
| tree_can_throw_internal, lookup_stmt_eh_region): Likewise. |
| * tree-gimple.c (const_get_call_expr_in): Likewise. |
| * tree-gimple.h (const_get_call_expr_in): Likewise. |
| * tree.c (const_lookup_attribute, attribute_list_equal, |
| attribute_list_contained): Likewise. |
| * tree.h (attribute_list_equal, attribute_list_contained, |
| const_lookup_attribute): Likewise. |
| * vmsdbgout.c (vmsdbgout_ignore_block): Likewise. |
| |
| 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c, |
| tree-ssa-pre.c: Remove unnecessary trailing whitespace. |
| |
| 2007-08-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/32991 |
| * config/alpha/constraints.md: Delete "svn:mime-type" property |
| with svn propdel "svn:mime-type". |
| |
| 2007-08-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/33181 |
| * ifcvt.c (noce_get_alt_condition): Make sure that the previous |
| non NOTE insn doesn't cross basic block. |
| (noce_try_abs): Likewise. |
| (noce_process_if_block): Likewise. |
| |
| 2007-08-26 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/33151 |
| * config/rs6000/predicates.md (offsettable_mem_operand): Memory |
| operand without auto-inc-dec. |
| * config/rs6000/rs6000.md (floatsidf2_internal): Use |
| offsettable_mem_operand. |
| (floatunssidf2_internal): Same. |
| (fix_truncdfsi2_internal): Same. |
| (floatsidf_ppc64): Same. |
| (floatunssidf_ppc64): Same. |
| (fix_trunctfsi2_internal): Same. |
| |
| 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org> |
| |
| PR bootstrap/30620 |
| * Makefile.in (libbackend.o): Add gcov-iov.h dependency and |
| pass defines needed for version.c. |
| |
| 2007-08-25 Joseph Myers <joseph@codesourcery.com> |
| |
| * configure.ac (--debug-prefix-map check): Change assembler |
| version presumed to have feature to 2.18. |
| * configure: Regenerate. |
| |
| 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-common.c (vector_types_convertible_p, |
| decl_with_nonnull_addr_p, c_promoting_integer_type_p, |
| self_promoting_args_p): Constify. |
| * c-common.h (has_c_linkage, decl_with_nonnull_addr_p, |
| c_promoting_integer_type_p, self_promoting_args_p, |
| anon_aggr_type_p, vector_types_convertible_p): Likewise. |
| * c-decl.c (anon_aggr_type_p): Likewise. |
| * * c-dump.c (dump_stmt): Likewise. |
| * c-objc-common.c (has_c_linkage): Likewise. |
| * c-tree.h (same_translation_unit_p): Likewise. |
| * c-typeck.c (null_pointer_constant_p, |
| tagged_types_tu_compatible_p, function_types_compatible_p, |
| type_lists_compatible_p, lvalue_or_else, lvalue_p, |
| comptypes_internal, struct tagged_tu_seen_cache, |
| same_translation_unit_p, alloc_tagged_tu_seen_cache, |
| c_size_in_bytes): Likewise. |
| * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor, |
| hash_ptr, eq_ptr): Likewise. |
| * langhooks-def.h (lhd_decl_ok_for_sibcall, |
| LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise. |
| * langhooks.c (lhd_decl_ok_for_sibcall): Likewise. |
| * langhooks.h (ok_for_sibcall, omp_privatize_by_reference): |
| Likewise. |
| * optabs.c (optab_for_tree_code): Likewise. |
| * optabs.h (optab_for_tree_code): Likewise. |
| * rtl.h (simplify_rtx): Likewise. |
| * simplify-rtx.c (simplify_rtx): Likewise. |
| * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type, |
| dump_flag, dump_node): Likewise. |
| * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index, |
| queue_and_dump_type, dump_flag): Likewise. |
| * tree-flow.h (vect_can_force_dr_alignment_p): Likewise. |
| * tree-pass.h (dump_node): Likewise. |
| * tree-vectorizer.c (vect_can_force_dr_alignment_p, |
| supportable_narrowing_operation): Likewise. |
| * tree-vectorizer.h (vect_can_force_dr_alignment_p, |
| supportable_narrowing_operation): Likewise. |
| * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity, |
| is_negative_overflow_infinity, is_positive_overflow_infinity, |
| is_overflow_infinity, vrp_val_is_max, vrp_val_is_min, |
| nonnull_arg_p, get_value_range, vrp_operand_equal_p, |
| update_value_range, add_equivalence, ssa_name_nonnegative_p, |
| ssa_name_nonzero_p, fp_predicate): Likewise. |
| * tree.c (auto_var_in_fn_p, empty_body_p): Likewise. |
| * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p, |
| ssa_name_nonnegative_p): Likewise. |
| |
| 2007-08-25 Hans Kester <hans.kester@ellips.nl> |
| |
| * config.gcc : Add x86_64-elf target. |
| |
| 2007-08-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * expr.c (store_expr): Fix order of store_by_pieces arguments. |
| |
| 2007-08-24 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| PR target/11787 |
| |
| * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros. |
| (STORE_BY_PIECES_P): No longer applies to __builtin_memset. |
| * expr.c (SET_BY_PIECES_P): Define. |
| (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use |
| it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P. |
| (store_expr): Pass MEMSETP argument to can_store_by_pieces and |
| store_by_pieces. |
| * expr.h (SET_RATIO): Define. |
| (can_store_by_pieces, store_by_pieces): Update prototypes. |
| * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to |
| can_store_by_pieces/store_by_pieces. |
| (expand_builtin_memcpy_args): Likewise. |
| (expand_builtin_strncpy): Likewise. |
| (expand_builtin_memset_args): Likewise. Also remove special case |
| for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can |
| decide what to do instead. |
| * value-prof.c (tree_stringops_transform): Pass MEMSETP argument |
| to can_store_by_pieces. |
| |
| * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P. |
| * config/s390/s390.h (SET_BY_PIECES_P): Likewise. |
| |
| * config/mips/mips.opt (mmemcpy): Change from Var to Mask. |
| * config/mips/mips.c (override_options): Make -Os default to -mmemcpy. |
| * config/mips/mips.h (MIPS_CALL_RATIO): Define. |
| (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define. |
| (STORE_BY_PIECES_P): Define. |
| |
| 2007-08-24 Tom Tromey <tromey@redhat.com> |
| |
| * varpool.c (varpool_last_needed_node): Fix comment typo. |
| * c-decl.c (duplicate_decls): Fix comment typo. |
| (clone_underlying_type): Update comment. |
| |
| 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp, |
| alpha_in_small_data_p, alpha_split_complex_arg, |
| alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK): |
| Constify. |
| * config/arm/arm-protos.h (arm_mangle_type): Likewise. |
| * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type): |
| Likewise. |
| * config/bfin/bfin.c (funkind, bfin_comp_type_attributes, |
| TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. |
| * config/darwin-protos.h (darwin_binds_local_p): Likewise. |
| * config/darwin.c (darwin_binds_local_p): Likewise. |
| * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p): |
| Likewise. |
| * config/i386/i386-protos.h (i386_pe_binds_local_p, |
| i386_pe_valid_dllimport_attribute_p): Likewise. |
| * config/i386/i386.c (ix86_function_regparm, |
| ix86_comp_type_attributes, ix86_ms_bitfield_layout_p, |
| x86_can_output_mi_thunk, ix86_mangle_type, |
| TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. |
| * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p, |
| i386_pe_binds_local_p): Likewise. |
| * config/ia64/ia64.c |
| (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, |
| ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type, |
| ia64_invalid_conversion, ia64_invalid_unary_op, |
| ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK): |
| Likewise. |
| * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise. |
| * config/m32r/m32r.c (m32r_in_small_data_p): Likewise. |
| * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. |
| * config/mips/mips.c (mips_use_blocks_for_constant_p, |
| mips_in_small_data_p, mips_use_anchors_for_symbol_p, |
| mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK, |
| mips_near_type_p, mips_far_type_p, mips_global_symbol_p, |
| mips_symbol_binds_local_p, mips_classify_symbol): Likewise. |
| * config/pa/pa.c (pa_commutative_p): Likewise. |
| * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_invalid_within_doloop, |
| rs6000_ms_bitfield_layout_p, rs6000_mangle_type, |
| rs6000_use_blocks_for_constant_p, |
| rs6000_vector_alignment_reachable, rs6000_is_opaque_type, |
| invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK, |
| TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise. |
| * config/s390/s390.c (s390_mangle_type, |
| TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP): |
| Likewise. |
| * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK, |
| th_in_small_data_p): Likewise. |
| * config/sh/sh.c (sh_ms_bitfield_layout_p, |
| sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK): |
| Likewise. |
| * config/sparc/sparc.c (sparc_can_output_mi_thunk, |
| sparc_mangle_type): Likewise. |
| * config/spu/spu.c (spu_vector_alignment_reachable): Likewise. |
| * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise. |
| * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq): |
| Likewise. |
| * hooks.c (hook_bool_mode_const_rtx_false, |
| hook_bool_mode_const_rtx_true, |
| hook_bool_const_tree_hwi_hwi_const_tree_false, |
| hook_bool_const_tree_hwi_hwi_const_tree_true, |
| hook_int_const_tree_0, hook_int_const_tree_const_tree_1, |
| hook_constcharptr_const_tree_null, |
| hook_constcharptr_const_rtx_null, |
| hook_constcharptr_const_tree_const_tree_null, |
| hook_constcharptr_int_const_tree_null, |
| hook_constcharptr_int_const_tree_const_tree_null): New. |
| (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, |
| hook_bool_tree_hwi_hwi_tree_false, |
| hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0, |
| hook_int_tree_tree_1, hook_constcharptr_tree_null, |
| hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null, |
| hook_constcharptr_int_tree_null, |
| hook_constcharptr_int_tree_tree_null): Delete. |
| (default_can_output_mi_thunk_no_vcall): Constify. |
| * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, |
| hook_bool_tree_hwi_hwi_tree_false, |
| hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0, |
| hook_int_tree_tree_1, hook_constcharptr_tree_null, |
| hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null, |
| hook_constcharptr_int_tree_null, |
| hook_constcharptr_int_tree_tree_null): Delete. |
| (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true, |
| hook_bool_const_tree_hwi_hwi_const_tree_false, |
| hook_bool_const_tree_hwi_hwi_const_tree_true, |
| hook_int_const_tree_0, hook_int_const_tree_const_tree_1, |
| hook_constcharptr_const_tree_null, |
| hook_constcharptr_const_rtx_null, |
| hook_constcharptr_const_tree_const_tree_null, |
| hook_constcharptr_int_const_tree_null, |
| hook_constcharptr_int_const_tree_const_tree_null): New. |
| (default_can_output_mi_thunk_no_vcall): Constify. |
| * integrate.c (function_attribute_inlinable_p): Likewise. |
| * integrate.h (function_attribute_inlinable_p): Likewise. |
| * jump.c (rtx_renumbered_equal_p): Likewise. |
| * output.h (decl_readonly_section, categorize_decl_for_section, |
| default_use_anchors_for_symbol_p, default_binds_local_p, |
| default_binds_local_p_1): Likewise. |
| * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model): |
| Likewise. |
| * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK, |
| TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P, |
| TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P, |
| TARGET_COMP_TYPE_ATTRIBUTES, |
| TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, |
| TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE, |
| TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION, |
| TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP, |
| TARGET_DWARF_CALLING_CONVENTION): Likewise. |
| * target.h (can_output_mi_thunk, needs_block_p, |
| first_cycle_multipass_dfa_lookahead_guard_spec, |
| vector_alignment_reachable, comp_type_attributes, |
| function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type, |
| commutative_p, use_blocks_for_constant_p, |
| use_anchors_for_symbol_p, in_small_data_p, binds_local_p, |
| vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook, |
| invalid_within_doloop, valid_dllimport_attribute_p, |
| split_complex_arg, invalid_arg_for_unprototyped_fn, |
| invalid_conversion, invalid_unary_op, invalid_binary_op): |
| Likewise. |
| * targhooks.c (default_invalid_within_doloop, |
| hook_invalid_arg_for_unprototyped_fn, |
| default_builtin_vector_alignment_reachable): Likewise. |
| (hook_bool_rtx_commutative_p): Delete. |
| (hook_bool_const_rtx_commutative_p): New. |
| * targhooks.h (default_invalid_within_doloop, |
| default_builtin_vector_alignment_reachable, |
| hook_invalid_arg_for_unprototyped_fn): Constify. |
| (hook_bool_rtx_commutative_p): Delete. |
| (hook_bool_const_rtx_commutative_p): New. |
| * varasm.c (bss_initializer_p, decl_default_tls_model, |
| categorize_decl_for_section, decl_readonly_section, |
| default_use_anchors_for_symbol_p, default_binds_local_p, |
| default_binds_local_p_1): Constify. |
| |
| 2007-08-24 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define |
| __NO_BUILTIN if -fno-builtin. |
| |
| 2007-08-24 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.c (print_operand): Report error instead of |
| ICE for wrong operand. |
| |
| 2007-08-24 Michael Matz <matz@suse.de> |
| |
| * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst). |
| |
| 2007-08-24 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33166 |
| * tree-ssa.c (useless_type_conversion_p): Split into a |
| recursive and a non-recursive part. |
| (useless_type_conversion_p_1): New function. |
| * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result |
| from maybe_fold_offset_to_reference is trivially convertible |
| to the desired type before doing the simplification. |
| |
| 2007-08-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * expr.c (store_expr): Optimize initialization of an array |
| with STRING_CST. |
| * expr.h (builtin_strncpy_read_str): New prototype. |
| * builtins.c (builtin_strncpy_read_str): Remove prototype. |
| No longer static. |
| |
| 2007-08-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/33157 |
| * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest |
| field when initializing if_info structure. |
| |
| 2007-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H) |
| dependencies. |
| * c-objc-common.c (c_cannot_inline_tree_fn): Remove. |
| * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise. |
| * tree-inline.c (inlinable_function_p): Fold in common parts of |
| the cannot_inline_tree_fn langhook. |
| * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove. |
| (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise. |
| (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for |
| cannot_inline_tree_fn langhook. |
| * langhooks.h (struct lang_hooks_for_tree_inlining): Remove |
| cannot_inline_tree_fn member. |
| |
| 2007-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (get_inner_reference): Do computation of bitoffset |
| from offset in a way we can detect overflow reliably. |
| |
| 2007-08-24 Jie Zhang <jie.zhang@analog.com> |
| |
| * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc. |
| |
| 2007-08-24 Jie Zhang <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.opt (mfast-fp): Add. |
| * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let |
| libbffastfp override libgcc if -mfast-fp. |
| * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| * doc/invoke.texi (Option Summary): Mention -mfast-fp. |
| (Blackfin Options): Document -mfast-fp. |
| |
| 2007-08-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/32573 |
| PR middle-end/32946 |
| * tree-data-ref.c (initialize_data_dependence_relation): Clear |
| DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning. |
| (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it. |
| (build_classic_dist_vector): Return false rather than true if |
| DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false |
| if either subscript_dependence_tester_1 or build_classic_dist_vector_1 |
| returned false. Don't call save_dist_v before calling |
| build_classic_dist_vector_1. |
| (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS |
| with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or |
| DDR_DIR_VECTS vectors. |
| |
| 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com> |
| |
| * configure.ac (leb128): Modify sed statement to work with any |
| binutils version string. |
| * configure: Regenerate |
| |
| 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg): |
| Wrap in RTX_CODE macro guard. |
| * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p, |
| arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport, |
| arm_mark_dllimport, arm_pe_encode_section_info, |
| arm_pe_unique_section): Use ISO-C function declarations. |
| * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION, |
| c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE, |
| c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored): |
| Likewise. |
| * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning. |
| * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before |
| defining. |
| * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format |
| warnings. |
| * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise. |
| * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise. |
| (register_move_cost): Use ISO-C function declarations. |
| * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings. |
| * config/score/score-protos.h (score_declare_object): Add |
| ATTRIBUTE_PRINTF_4. |
| * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format |
| warnings. |
| * final.c (profile_function): Avoid empty if-bodies. |
| |
| |
| * calls.c (must_pass_in_stack_var_size, |
| must_pass_in_stack_var_size_or_pad): Constify. |
| * config/alpha/alpha-protos.h (function_value): Likewise. |
| * config/alpha/alpha.c (alpha_return_in_memory, |
| alpha_pass_by_reference, function_value, |
| unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): |
| Likewise. |
| * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, |
| TARGET_PROMOTE_PROTOTYPES): Likewise. |
| * config/arm/arm-protos.h (arm_return_in_memory, |
| arm_pad_arg_upward, arm_function_value): Likewise. |
| * config/arm/arm.c (arm_pass_by_reference, |
| arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, |
| arm_function_value, arm_return_in_memory, arm_pad_arg_upward): |
| Likewise. |
| * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise. |
| * config/avr/avr-protos.h (avr_function_value): Likewise. |
| * config/avr/avr.c (avr_return_in_memory, |
| gas_output_limited_string, gas_output_ascii, avr_function_value, |
| avr_return_in_memory): Likewise. |
| * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise. |
| * config/bfin/bfin.c (bfin_pass_by_reference, |
| bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): |
| Likewise. |
| * config/cris/cris.c (cris_pass_by_reference, |
| TARGET_PROMOTE_FUNCTION_ARGS): Likewise. |
| * config/crx/crx.c (crx_return_in_memory): Likewise. |
| * config/darwin.c (function_base, machopic_function_base_name): |
| Likewise. |
| * config/fr30/fr30.c (fr30_must_pass_in_stack, |
| TARGET_PROMOTE_PROTOTYPES): Likewise. |
| * config/frv/frv.c (frv_must_pass_in_stack): Likewise. |
| * config/h8300/h8300.c (h8300_return_in_memory): Likewise. |
| * config/i386/i386-protos.h (ix86_return_in_memory, |
| ix86_sol10_return_in_memory): Likewise. |
| * config/i386/i386.c (ix86_function_value, |
| ix86_function_sseregparm, ix86_must_pass_in_stack, |
| type_natural_mode, classify_argument, examine_argument, |
| construct_container, ix86_pass_by_reference, function_value_32, |
| function_value_64, ix86_function_value_1, return_in_memory_32, |
| return_in_memory_64, return_in_memory_ms_64, |
| ix86_return_in_memory, ix86_sol10_return_in_memory, |
| TARGET_PROMOTE_PROTOTYPES): Likewise. |
| * config/ia64/ia64-protos.h (ia64_function_value, |
| ia64_hpux_function_arg_padding): Likewise. |
| * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory, |
| ia64_function_value, bundle_state_hash, bundle_state_eq_p, |
| ia64_hpux_function_arg_padding): Likewise. |
| * config/iq2000/iq2000-protos.h (function_arg, |
| iq2000_function_value): Likewise. |
| * config/iq2000/iq2000.c (iq2000_return_in_memory, |
| iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, |
| function_arg, iq2000_function_value): Likewise. |
| * config/m32c/m32c-protos.h (m32c_function_value, |
| m32c_promote_function_return): Likewise. |
| * config/m32c/m32c.c (m32c_pass_by_reference, |
| m32c_promote_prototypes, m32c_promote_function_return, |
| m32c_function_value): Likewise. |
| * config/m32r/m32r.c (m32r_return_in_memory, |
| m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES, |
| m32r_in_small_data_p): Likewise. |
| * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding): |
| Likewise. |
| * config/m68hc11/m68hc11.c (m68hc11_return_in_memory, |
| m68hc11_function_arg_padding): Likewise. |
| * config/m68k/m68k-protos.h (m68k_function_value): Likewise. |
| * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES, |
| m68k_function_value): Likewise. |
| * config/mcore/mcore-protos.h (mcore_num_arg_regs, |
| mcore_function_value): Likewise. |
| * config/mcore/mcore.c (handle_structs_in_regs, |
| mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, |
| mcore_num_arg_regs, mcore_function_value): Likewise. |
| * config/mips/mips-protos.h (mips_pad_arg_upward, |
| mips_function_value): Likewise. |
| * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb, |
| mips_return_in_memory, mips_pass_by_reference, mips_callee_copies, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, |
| TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward, |
| mips_function_value): Likewise. |
| * config/mmix/mmix-protos.h (mmix_function_outgoing_value): |
| Likewise. |
| * config/mmix/mmix.c (mmix_pass_by_reference, |
| TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value, |
| mmix_encode_section_info): Likewise. |
| * config/mn10300/mn10300-protos.h (mn10300_function_value): |
| Likewise. |
| * config/mn10300/mn10300.c (mn10300_return_in_memory, |
| mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES, |
| mn10300_function_value): Likewise. |
| * config/mt/mt-protos.h (mt_function_value): Likewise. |
| * config/mt/mt.c (mt_pass_by_reference, mt_function_value, |
| mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise. |
| * config/pa/pa-protos.h (function_arg_padding, function_value, |
| pa_return_in_memory): Likewise. |
| * config/pa/pa.c (pa_pass_by_reference, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, |
| function_arg_padding, function_value, pa_return_in_memory): |
| Likewise. |
| * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise. |
| * config/rs6000/rs6000-protos.h (rs6000_function_value, |
| function_arg_padding): Likewise. |
| * config/rs6000/rs6000.c (rs6000_return_in_memory, |
| rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, |
| rs6000_pass_by_reference, rs6000_must_pass_in_stack, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, |
| function_arg_padding, altivec_expand_dst_builtin, |
| altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins, |
| altivec_init_builtins, rs6000_common_init_builtins, |
| rs6000_function_value): Likewise. |
| * s390/s390-protos.h (s390_function_value): Likewise. |
| * config/s390/s390.c (s390_function_arg_size, |
| s390_pass_by_reference, s390_return_in_memory, |
| s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN): Likewise. |
| * config/score/score-protos.h (score_function_value): Likewise. |
| * config/score/score.c (score_arg_partial_bytes, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, |
| TARGET_PROMOTE_PROTOTYPES, score_return_in_memory, |
| score_pass_by_reference, score_add_offset, score_function_value): |
| Likewise. |
| * config/sh/sh-protos.h (sh_attr_renesas_p, |
| sh_promote_prototypes): Likewise. |
| * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference, |
| sh_callee_copies, sh_promote_prototypes, shcompact_byref, |
| sh_attr_renesas_p): Likewise. |
| * config/sparc/sparc-protos.h (function_value, |
| function_arg_padding): Likewise. |
| * config/sparc/sparc.c (sparc_promote_prototypes, |
| sparc_return_in_memory, sparc_pass_by_reference, |
| TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, |
| function_arg_record_value_2, function_arg_record_value_1, |
| function_arg_record_value, function_arg_record_value, |
| function_arg_padding, function_value): Likewise. |
| * config/spu/spu-protos.h (spu_function_value): Likewise. |
| * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory, |
| spu_function_value): Likewise. |
| * config/stormy16/stormy16-protos.h (xstormy16_function_value): |
| Likewise. |
| * config/stormy16/stormy16.c (xstormy16_return_in_memory, |
| xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): |
| Likewise. |
| * config/v850/v850.c (v850_return_in_memory, |
| v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise. |
| * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise. |
| * config/xtensa/xtensa.c (xtensa_return_in_msb, |
| xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): |
| Likewise. |
| * explow.c (promote_mode, hard_function_value): Likewise. |
| * expr.h (hard_function_value, promote_mode): Likewise. |
| * function.c (aggregate_value_p): Likewise. |
| * hooks.c (hook_bool_const_tree_true): New. |
| * hooks.h (hook_bool_const_tree_true): New. |
| * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify. |
| * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS, |
| TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, |
| TARGET_RETURN_IN_MSB): Likewise. |
| * target.h (promote_function_args, promote_function_return, |
| promote_prototypes, return_in_memory, return_in_msb, |
| pass_by_reference, must_pass_in_stack, callee_copies, |
| function_value): Likewise. |
| * targhooks.c (default_return_in_memory, |
| hook_pass_by_reference_must_pass_in_stack, |
| hook_callee_copies_named, |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false, |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true, |
| default_function_value): Likewise. |
| * targhooks.h (default_return_in_memory, |
| hook_pass_by_reference_must_pass_in_stack, |
| hook_callee_copies_named, |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false, |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true, |
| default_function_value): Likewise. |
| * tree-ssa-structalias.c (const_equiv_class_label_t): New. |
| (equiv_class_label_hash, equiv_class_label_eq): Constify. |
| * tree-vectorizer.c (bb_in_loop_p): Likewise. |
| * tree.c (needs_to_live_in_memory): Likewise. |
| * tree.h (struct tree_type, needs_to_live_in_memory, |
| aggregate_value_p, must_pass_in_stack_var_size, |
| must_pass_in_stack_var_size_or_pad): Likewise. |
| * vmsdbgout.c (write_debug_addr, write_debug_delta4, |
| write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg, |
| lookup_filename): Likewise. |
| |
| 2007-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/17390 |
| * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to |
| fake fcomi i387 instruction for !TARGET_CMOVE. |
| (ix86_expand_branch): Expand natural sequence with one jump for |
| all targets, not only TARGET_CMOVE. |
| * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split |
| pattern to implement fake fcomi sequence. Split instruction after |
| reload to correct compare sequences. |
| (*cmpfp_xf_cc): Ditto. |
| (*cmpfp_<mode>_cc): Ditto. |
| (*cmpfp_u_cc): Ditto. |
| (*cmpfp_<mode>_cc): Ditto. |
| |
| 2007-08-23 Richard Guenther <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Annotate |
| GIMPLE_MODIFY_STMTs with volatile ops with "{v}". |
| |
| 2007-08-23 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (expand_builtin_mathfn): Wrap argument in |
| save_expr directly instead of re-building the call. |
| (expand_builtin_mathfn_2): Likewise. |
| (expand_builtin_mathfn_3): Likewise. |
| (expand_builtin_interclass_mathfn): Likewise. |
| (expand_builtin_int_roundingfn): Set arg. |
| (expand_builtin_int_roundingfn_2): Likewise. |
| |
| 2007-08-23 Paolo Bonzini <bonzini@gnu.org> |
| |
| * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3, |
| *sse_nand<mode>3, *sse_xor<mode>3): New. |
| |
| 2007-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code. |
| * config/i386/i386.c (print_operand): Handle ';' code. Output |
| semicolon for TARGET_MACHO. |
| * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to |
| emit semicolon after 'lock' prefix. |
| (sync_double_compare_and_swap<mode>): Ditto. |
| (*sync_double_compare_and_swapdi_pic): Ditto. |
| (*sync_compare_and_swap_cc<mode>): Ditto. |
| (sync_double_compare_and_swap_cc<mode>): Ditto. |
| (*sync_double_compare_and_swap_ccdi_pic): Ditto. |
| (sync_old_add<mode>): Ditto. |
| (sync_add<mode>): Ditto. |
| (sync_sub<mode>): Ditto. |
| (sync_ior<mode>): Ditto. |
| (sync_and<mode>): Ditto. |
| (sync_xor<mode>): Ditto. |
| |
| 2007-08-22 Chao-ying Fu <fu@mips.com> |
| |
| * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes |
| in DEF_RTL_EXPR. |
| (copy_rtx): Handle CONST_FIXED. |
| (rtx_equal_p): Likewise. |
| * rtl.h (fixed_value.h): New include. |
| (rtx_def): Add a new field of fixed_value to u. |
| (XCNMPFV): Define for accessing fixed_value. |
| (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW): |
| Define. |
| * rtl.def (CONST_FIXED): New constant. |
| (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT, |
| UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG, |
| US_ASHIFT): New codes. |
| * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult, |
| us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract, |
| unsigned_fract_convert, unsigned_sat_fract): Document them. |
| * varasm.c (assemble_integer): Extend to support fixed-point constants |
| by using different machine classes. |
| (decode_addr_const): Handle FIXED_CST. |
| (const_hash_1): Likewise. |
| (compare_constant): Likewise. |
| (copy_constant): Likewise. |
| (const_rtx_hash_1): Handle CONST_FIXED. |
| (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, |
| MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, |
| MODE_VECTOR_UACCUM. |
| (initializer_constant_valid_p): Handle FIXED_CST. |
| (output_constant): Support FIXED_POINT_TYPE. |
| * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude. |
| * cse.c (hash_rtx): Support CONST_FIXED. |
| (exp_equiv_p): Likewise. |
| (cannon_reg): Likewise. |
| (fold_rtx): Likewise. |
| (equiv_constant): Likewise. |
| (cse_process_notes_1): Likewise. |
| (count_reg_usage): Likewise. |
| * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED. |
| (rtx_equal_for_cselib_p): Handle CONST_FIXED. |
| (wrap_constant): Check CONST_FIXED. |
| (cselib_hash_rtx): Support CONST_FIXED. |
| (cselib_subst_to_values): Likewise. |
| * df-scan.c (df_uses_record): Likewise. |
| * gcse.c (want_to_gcse_p): Likewise. |
| (oprs_unchanged_p): Likewise. |
| (oprs_not_set_p): Likewise. |
| (compute_transp): Likewise. |
| (extract_mentioned_regs_helper): Likewise. |
| * genemit.c (gen_exp): Likewise. |
| * local-alloc.c (equiv_init_varies_p): Likewise. |
| (contains_replace_regs): Likewise. |
| (memref_referenced_p): Likewise. |
| * loop-invariant.c (check_maybe_invariant): Likewise. |
| (hash_invariant_expr_1): Likewise. |
| (invariant_expr_equal_p): Likewise. |
| * postreload-gcse.c (oprs_unchanged_p): Likewise. |
| * regclass.c (reg_scan_mark_refs): Likewise. |
| * regrename.c (scan_rtx): Likewise. |
| * resource.c (mark_referenced_resources): Likewise. |
| (mark_set_resources): Likewise. |
| * rtlanal.c (rtx_unstable_p): Likewise. |
| (rtx_varies_p): Likewise. |
| (count_occurrences): Likewise. |
| (reg_mentioned_p): Likewise. |
| (modified_between_p): Likewise. |
| (modified_in_p): Likewise. |
| (volatile_insn_p): Likewise. |
| (volatile_refs_p): Likewise. |
| (side_effects_p): Likewise. |
| (may_trap_p_1): Likewise. |
| (inequality_comparisons_p): Likewise. |
| (computed_jump_p_1): Likewise. |
| (commutative_operand_precedence): Likewise. |
| * sched-deps.c (sched_analyze_2): Likewise. |
| * sched-vis.c (print_value): Likewise. |
| * reload.c (operands_match_p): Likewise. |
| (subst_reg_equivs): Likewise. |
| * reload1.c (eliminate_regs_1): Likewise. |
| (elimination_effects): Likewise. |
| (scan_paradoxical_subregs): Likewise. |
| * alias.c (rtx_equal_for_memref_p): Likewise. |
| * Makefile.in (RTL_BASE_H): Add fixed-value.h. |
| * emit-rtl.c (const_fixed_htab): New hash table. |
| (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed): |
| Declare. |
| (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed, |
| const_fixed_from_fixed_value): New functions. |
| (verify_rtx_sharing): Handle CONST_FIXED. |
| (copy_rtx_if_shared_1): Likewise. |
| (reset_used_flags): Likewise. |
| (set_used_flags): Likewise. |
| (copy_insn_1): Likewise. |
| (init_emit_once): Create const_fixed_htab. |
| Store fixed-point scalar and vector zero and one to const_tiny_rtx. |
| |
| 2007-08-22 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/32949 |
| * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p |
| before failing for ivs with non-constant step. |
| |
| 2007-08-22 Hans-Peter Nilsson <hp@axis.com> |
| |
| * doc/md.texi (Iterators): Renamed from Macros. All contents |
| changed to reflect rename of respectively define_code_macro and |
| define_mode_macro to define_code_iterator and define_mode_iterator. |
| (Mode Iterators, Code Iterators): Similar. |
| * read-rtl.c (struct iterator_group, struct iterator_traverse_data) |
| (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p) |
| (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse) |
| (initialize_iterators, find_iterator, check_code_iterator) |
| (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping) |
| (read_mapping, read_rtx_1): Similar. |
| * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md, |
| config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md, |
| config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md, |
| config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md, |
| config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md, |
| config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md, |
| config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md, |
| config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md, |
| config/rs6000/sync.md, config/rs6000/rs6000.md, |
| config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md, |
| config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md, |
| config/vax/vax.md, config/bfin/bfin.md: Similar. |
| |
| 2007-08-22 David Daney <ddaney@avtrex.com> |
| |
| * doc/install.texi (Testing): Mention testing on a simulator. |
| |
| 2007-08-22 Janis Johnson <janis187@us.ibm.com> |
| |
| * config/dfp-bit.c (DFP_TO_DFP): Check for overflow. |
| |
| * doc/libgcc.texi (Decimal float library routines): Fix formatting |
| and rearrange floating point conversion functions into different |
| categories. |
| |
| 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * target.h (struct gcc_target.sched: dfa_pre_advance_cycle, |
| dfa_post_advance_cycle): New scheduler hooks. |
| * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, |
| TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize |
| new hooks. |
| (TARGET_SCHED): Use them. |
| * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, |
| TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks. |
| * haifa-sched.c (advance_one_cycle): Invoke new hooks. |
| |
| * genautomata.c (insn_has_dfa_reservation_p): New DFA interface |
| function to facilitate debugging. |
| (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro. |
| (output_insn_has_dfa_reservation_p): New static function to output |
| insn_has_dfa_reservation_p (). |
| (write_automata): Use it. |
| * genattr.c (main): Output declaration for |
| insn_has_dfa_reservation_p (). |
| |
| 2007-08-22 Christian Bruel <christian.bruel@st.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only. |
| * simplify_rtx (simplify_binary_operation_1): Likewise. |
| |
| 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR rtl-optimization/32557 |
| * df-problems.c (df_note_bb_compute): Use mws->start_regno instead |
| of REGNO (mws->mw_reg). |
| |
| 2007-08-22 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33007 |
| * builtins.c (expand_builtin_int_roundingfn): Replace call |
| argument wrapped with SAVE_EXPR directly. |
| (expand_builtin_int_roundingfn_2): Likewise. |
| |
| 2007-08-22 Richard Guenther <rguenther@suse.de> |
| |
| * tree-inline.c (inlinable_function_p): Restore disregarding |
| inline limits for GNU extern inline functions. |
| |
| 2007-08-22 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32563 |
| * tree.c (host_integerp): Treat sizetype as signed as it is |
| sign-extended. |
| |
| 2007-08-21 Ian Lance Taylor <iant@google.com> |
| |
| PR tree-optimization/33134 |
| * tree-vrp.c (adjust_range_with_scev): Call |
| set_value_range_to_value. |
| |
| 2007-08-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * value-prof.h (gimple_remove_histogram_value): Remove duplicate |
| prototype. |
| |
| 2007-08-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary |
| whitespace. |
| |
| 2007-08-21 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE |
| cases to set eight bytes at a time. |
| (expand_block_move): Likewise. |
| |
| 2007-08-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/32610 |
| * dwarf2out.c (gen_decl_die): Don't call |
| gen_tagged_type_instantiation_die if decl doesn't have tagged type. |
| |
| 2007-08-21 Paul Brook <paul@codesourcery.com> |
| Nathan Sidwell <nathan@codesourcery.com> |
| Mark Mitchell <mark@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * configure.ac: Add --with-pkgversion and --with-bugurl. |
| * configure: Regenerate. |
| * doc/install.texi: Document them. |
| * version.c (version_string): Remove VERSUFFIX. |
| (VERSUFFIX): Remove. |
| (pkgversion_string): New. |
| (bug_report_url): Do not hard-code initializer. |
| * version.h (pkgversion_string): Declare. |
| * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI): |
| Define. |
| (version.o): Define PKGVERSION and BUGURL. |
| (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL. |
| (%.pod): Define BUGURL. |
| * gcc.c (process_command, main): Use pkgversion_string. |
| * toplev.c (compile_file, print_version): Likewise. |
| * protoize.c (main): Likewise. |
| * gcov.c (print_version): Likewise. Update copyright date. |
| * gcov-dump.c (print_version): Likewise. Update copyright date. |
| * mips-tdump.c (main): Likewise. Update copyright date. |
| * mips-tfile.c (main): Likewise. Update copyright date. |
| * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle. |
| * doc/bugreport.texi: Use BUGURL for bug-reporting instructions; |
| shorten description. |
| * doc/gcc.texi: Include VERSION_PACKAGE in version description. |
| * doc/gccint.texi: Likewise. |
| * doc/invoke.texi: Use BUGURL for bug-reporting instructions. |
| Update copyright date. |
| |
| 2007-08-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG. |
| (ix86_expand_strlensi_unroll_1): Ditto. |
| (ix86_expand_branch): Use FLAGS_REG and FPSR_REG. |
| (ix86_expand_carry_flag_compare): Update comment. |
| |
| 2007-08-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/32912 |
| * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST. |
| (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations. |
| |
| 2007-08-21 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary): Revert removing of index +p PTR folding. |
| |
| 2007-08-21 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/33122 |
| * fold-const.c (fold_binary): Remove index +p PTR folding. |
| Fix types of POINTER_PLUS_EXPR generated by folding of |
| (PTR +p B) +p A. |
| |
| 2007-08-20 Chao-ying Fu <fu@mips.com> |
| |
| * c-common.h (enum rid): Add new enumeration values of RID_SAT, |
| RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before |
| RID_ONEWAY, so that it can be checked in declspecs_add_type. |
| (c_common_fixed_point_type_for_size): Declare. |
| * c-parser.c (reswords): Add _Fract, _Accum, and _Sat. |
| (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT. |
| (c_token_starts_declspecs): Likewise. |
| (c_parser_declspecs): Likewise. |
| (c_parser_attributes): Likewise. |
| * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum. |
| (c_declspecs): Add saturating_p. |
| * c-decl.c (build_null_declspecs): Initialize saturating_p. |
| (declspecs_add_type): Avoid using complex with _Fract, _Accum, or |
| _Sat. Handle RID_SAT. |
| Avoid using void, bool, char, int, float, double, _Decimal32, |
| _Decimal64, _Decimal128, and complex with _Sat. |
| Handle RID_FRACT and RID_ACCUM. |
| Make sure _Sat is used with _Fract or _Accum. |
| (finish_declspecs): Handle cts_fract and cts_accum. |
| * c-common.c (fixed-value.h): New include. |
| (constant_expression_warning): Handle FIXED_CST. |
| (overflow_warning): Likewise. |
| (warnings_for_convert_and_check): Likewise. |
| (c_common_fixed_point_type_for_size): New. |
| (c_common_type_for_mode): Handle fixed-point modes to |
| return various saturating/non-saturating, signed/unsigned types. |
| (c_common_signed_or_unsigned_type): Support fixed-point types. |
| (shorten_compare): Check fixed-point zero. |
| Handle FIXED_POINT_TYPE. |
| (c_common_truthvalue_conversion): Handle FIXED_CST. |
| Handle FIXED_POINT_TYPE. |
| (c_common_nodes_and_builtins): Record builtin types for fixed-point |
| types. |
| (handle_mode_attribute): Handle fixed-point modes. Need to check |
| if the signness of base type and fixed-point modes are consistent. |
| (handle_vector_size_attribute): Handle fixed-point modes. |
| (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE. |
| (warn_for_div_by_zero): Check fixed-point zero. |
| * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build |
| a common fixed-point type based on fbit, ibit, sign, and saturation. |
| (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR, |
| NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR, |
| PREDECREMENT_EXPR, and POSTDECREMENT_EXPR. |
| (convert_for_assignment): Support FIXED_POINT_TYPE. |
| (digest_init): Handle FIXED_POINT_TYPE. |
| (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR, |
| TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, |
| TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR, |
| GE_EXPR, LT_EXPR, GT_EXPR. |
| * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New. |
| (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P. |
| * target.h (gcc_target): Add fixed_point_supported_p. |
| * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT, |
| MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM. |
| (default_fixed_point_supported_p): Define. |
| * targhooks.h (default_fixed_point_supported_p): Declare. |
| * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add. |
| * doc/install.texi (Configuration): Add --enable-fixed-point. |
| * configure.ac (--enable-fixed-point): New to enable fixed-point |
| arithmetic extension to C. For mips targets, we enable it by default. |
| * configure, config.in: Regenerate. |
| |
| 2007-08-20 Pawel Sikora <pluto@pld-linux.org> |
| |
| * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation. |
| |
| 2007-08-20 David Edelsohn <edelsohn@gnu.org> |
| |
| * dwarf2out.c (text_section_used): Move declaration outside ifdef |
| DWARF2_DEBUGGING_INFO. |
| (cold_text_section_used): Same. |
| (cold_text_section): Same. |
| |
| 2007-08-20 Richard Guenther <rguenther@suse.de> |
| |
| * c-typeck.c (convert_for_assignment): Use the type of |
| the member for the initialization. |
| |
| 2007-08-20 Richard Guenther <rguenther@suse.de> |
| |
| * c-objc-common.c (c_disregard_inline_limits): Remove. |
| * c-objc-common.h (c_disregard_inline_limits): Likewise. |
| * cgraphunit.c (cgraph_process_new_functions): Call |
| disregard_inline_limits_p. |
| (cgraph_preserve_function_body_p): Likewise. |
| * ipa-inline.c (compute_inline_parameters): Likewise. |
| * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits): |
| Remove. |
| (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove. |
| (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for |
| disregard_inline_limits langhook. |
| * langhooks.c (lhd_tree_inlining_disregard_inline_limits): |
| Remove. |
| * langhooks.h (lang_hooks_for_tree_inlining): Remove |
| disregard_inline_limits langhook. |
| * tree-inline.c (disregard_inline_limits_p): New function. |
| * tree-inline.h (disregard_inline_limits_p): Declare. |
| |
| 2007-08-20 Richard Guenther <rguenther@suse.de> |
| |
| * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove. |
| (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise. |
| (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for |
| auto_var_in_fn_p langhook. |
| * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and |
| move ... |
| * tree.c (auto_var_in_fn_p): ... here. |
| (find_var_from_fn): Call auto_var_in_fn_p directly. |
| * langhooks.h (lang_hooks_for_tree_inlining): Remove |
| auto_var_in_fn_p langhook. |
| * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly. |
| (copy_body_r): Likewise. |
| (self_inlining_addr_expr): Likewise. |
| * tree.h (auto_var_in_fn_p): Declare. |
| |
| 2007-08-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (WALK_SUBTREE): Call walk_tree_1. |
| (walk_type_fields): Take lh parameter. |
| (walk_tree): Rename to ... |
| (walk_tree_1): ... this. Do not call the walk_subtrees |
| langhook but the now passed callback. Pass lh on recursion. |
| (walk_tree_without_duplicates): Rename to ... |
| (walk_tree_without_duplicates_1): ... this. Take lh parameter |
| and call walk_tree_1. |
| * tree.h (walk_tree_lh): New typedef. |
| (walk_tree_1): Declare. |
| (walk_tree_without_duplicates_1): Likewise. |
| (walk_tree): New define to walk_tree_1 with NULL lh parameter. |
| (walk_tree_without_duplicates): New define to |
| walk_tree_without_duplicates_1 with NULL lh parameter. |
| * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove. |
| * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees |
| langhook. |
| * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove. |
| (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. |
| (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees |
| initializer. |
| |
| 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/30564 |
| * tree-inline.c (optimize_inline_calls): Move the cgraph checking |
| code in front of the compacting of basic blocks. |
| Move the folding of statements inbetween the cgraph checking |
| and compacting of basic blocks. |
| |
| 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| PR target/32522 |
| * config/alpha/alpha.c (va_list_skip_additions): Check for |
| POINTER_PLUS_EXPR in addition to PLUS_EXPR. |
| (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of |
| PLUS_EXPR when checking ap.__base. |
| (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR |
| when doing addition on pointer types. Use size_int instead of |
| build_int_cst. |
| (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of |
| ptr_type in the second operand. |
| |
| 2007-08-19 Andrew Pinski <pinskia@gmail.com> |
| |
| PR target/33115 |
| * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front. |
| |
| 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32940 |
| * cfgexpand.c (expand_one_register_var): Mark pointer |
| DECL_ARTIFICIAL as REG_POINTER also. |
| * stmt.c (expand_decl): Likewise. |
| |
| 2007-08-19 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR 32772 |
| Fix PR 32716 |
| Fix PR 32328 |
| Fix PR 32303 |
| |
| * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call. |
| * tree-ssa-alias.c (init_transitive_clobber_worklist): Add |
| on_worklist argument and avoid adding things to worklist multiple |
| times. |
| (add_to_worklist): Ditto. |
| (mark_aliases_call_clobbered): Mark entire structure clobbered if |
| single SFT is clobbered. |
| (set_initial_properties): Ditto. |
| (compute_call_clobbered): Update for changes to function |
| arguments. |
| (create_overlap_variables_for): Always create SFT for offset 0. |
| (create_structure_vars): Handle PHI's, since we are in SSA form at |
| this point. |
| * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars. |
| * tree-ssa-operands.c (access_can_touch_variable): Don't handle |
| TARGET_MEM_REF. |
| (add_vars_for_offset): Figure out aliases from access + points-to. |
| (add_virtual_operand): Use add_vars-for_offset. |
| (get_tmr_operands): Update for NMT changes, rewrite to be correct. |
| (add_call_clobber_ops): Remove makes_clobbering_call set. |
| (get_expr_operands): Always pass through the INDIRECT_REF |
| reference. |
| * tree-ssa-structalias.c (struct constraint_graph): Remove |
| variables member. |
| Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to, |
| address_taken, pt_used, number_incoming. |
| (FIRST_ADDR_NODE): Removed. |
| (merge_graph_nodes): Remove broken code for the moment. |
| (init_graph): New function. |
| (build_pred_graph): Remove code to init_graph. |
| Add location equivalence support. |
| (struct scc_info): Rename roots to deleted. |
| (scc_visit): Ditto. |
| (init_scc_info): Ditto |
| (init_topo_info): Use graph->size. |
| (compute_topo_order): Ditto. |
| (do_da_constraint): Removed. |
| (do_sd_constraint): Remove calls to find(). |
| set_union_with_increment should always get 0 as last arg here. |
| (do_complex_constraint): Replace do_da_constraint with assert. |
| Stop calling find. |
| (struct equiv_class_label): New. |
| (pointer_equiv_class_table): Ditto. |
| (location_equiv_class_table): Ditto. |
| (equiv_class_label_hash): Ditto. |
| (equiv_class_label_eq): Ditto |
| (equiv_class_lookup): Ditto. |
| (equiv_class_ladd): Ditto. |
| (pointer_equiv_class): Ditto. |
| (location_equiv_class): Ditto. |
| (condense_visit): Rename and rewrite from label_visit to do only |
| SCC related stuff for HU. |
| (label_visit): Do HU work for HU. |
| (perform_var_substitution): Update to do HU and location |
| equivalence. |
| (free_var_substitution_info): Update to free HU and location |
| equivalence structures. */ |
| (find_equivalent_node): Update for pointer but not location |
| equivalence. |
| (unite_pointer_equivalences): New function. |
| (move_complex_constraints): Rewrite to only do moving. |
| (rewrite_constraints): Split out of move_complex_constraints. |
| (solve_graph): Use graph->size. |
| (process_constraint_1): Add from_call argument, use it. |
| Split *a = &b into two constraints. |
| (process_constraint): Use new process_constraint_1. |
| (get_constraint_for_component_ref): Handle bitmaxsize == -1 case. |
| (get_constraint_for): Handle non-pointer integers properly. |
| Remove code that used to handle structures. |
| (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling |
| with unknown addends. |
| (handle_rhs_call): New function. |
| (find_func_aliases): Use handle_rhs_call. |
| (set_uids_in_ptset): Add an assert. |
| (set_used_smts): Fix bug in not considering unified vars. |
| (compute_tbaa_pruning): Stop initing useless iteration_obstack. |
| (compute_points_to_sets): Update for other function changes. |
| (delete_points_to_sets): Ditto. |
| (ipa_pta_execute): Ditto. |
| (pass_ipa_pta): We need to update SSA after ipa_pta. |
| |
| 2007-08-19 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.md: Replace "rim" and "mri" constraints by "g". |
| |
| 2007-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * dwarf2out.c (text_section_used, cold_text_section_used, |
| cold_text_section, dwarf2out_note_section_used): New. |
| (dwarf2out_init): Initialize cold_text_section. |
| (dwarf2out_switch_text_section, dwarf2out_begin_function): Call |
| dwarf2out_note_section_used. |
| (size_of_aranges): Only count entry for text section if it was |
| used. Count entry for cold text section if it was used. |
| (output_aranges): Only output entries for text section and cold |
| text section if they were used. |
| |
| 2007-08-19 Andrew Pinski <pinskia@gmail.com> |
| |
| * tree-pretty-print.c (debug_generic_expr): Add a comment about |
| the function. |
| (debug_generic_stmt): Likewise. |
| (debug_tree_chain): Likewise. |
| |
| 2007-08-19 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * tree-data-refs.c (split_constant_offset): Expose. |
| * tree-data-refs.h (split_constant_offset): Add declaration. |
| |
| * tree-vectorizer.h (dr_alignment_support): Renamed |
| dr_unaligned_software_pipeline to dr_explicit_realign_optimized. |
| Added a new value dr_explicit_realign. |
| (_stmt_vec_info): Added new fields: dr_base_address, dr_init, |
| dr_offset, dr_step, and dr_aligned_to, along with new access |
| functions for these fields: STMT_VINFO_DR_BASE_ADDRESS, |
| STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and |
| STMT_VINFO_DR_ALIGNED_TO. |
| |
| * tree-vectorizer.c (vect_supportable_dr_alignment): Add |
| documentation. |
| In case of outer-loop vectorization with non-fixed misalignment - use |
| the dr_explicit_realign scheme instead of the optimized realignment |
| scheme. |
| (new_stmt_vec_info): Initialize new fields. |
| |
| * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the |
| 'nested_in_vect_loop' case. Change verbosity level. |
| (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case. |
| Don't fail on zero step in the outer-loop for loads. |
| (vect_analyze_data_refs): Call split_constant_offset to calculate |
| base, offset and init relative to the outer-loop. |
| |
| * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused |
| BSI function argument with a new function argument - at_loop. |
| Simplify the condition that determines STEP. Takes additional argument |
| INV_P. Support outer-loop vectorization (handle the |
| nested_in_vect_loop case), including zero step in the outer-loop. Call |
| vect_create_addr_base_for_vector_ref with additional argument. |
| (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP. |
| Updated function documentation. Handle the 'nested_in_vect_loop' case. |
| Fixed and simplified calculation of step. |
| (vectorizable_store): Call vect_create_data_ref_ptr with loop instead |
| of bsi, and with additional argument. Call bump_vector_ptr with |
| additional argument. Fix typos. Handle the 'nested_in_vect_loop' case. |
| (vect_setup_realignment): Takes additional arguments INIT_ADDR and |
| DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case |
| when the realignment setup needs to take place inside the loop. |
| Support the dr_explicit_realign scheme. Allow generating the optimized |
| realignment scheme for outer-loop vectorization. Added documentation. |
| (vectorizable_load): Support the dr_explicit_realign scheme. Handle |
| the 'nested_in_vect_loop' case, including loads that are invariant in |
| the outer-loop and the realignment schemes. Handle the case when the |
| realignment setup needs to take place inside the loop. Call |
| vect_setup_realignment with additional arguments. Call |
| vect_create_data_ref_ptr with additional argument and with loop instead |
| of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI. |
| (vect_gen_niters_for_prolog_loop): Call |
| vect_create_addr_base_for_vector_ref with additional arguments. |
| (vect_create_cond_for_align_checks): Likewise. |
| (bump_vector_ptr): Updated to support the new dr_explicit_realign |
| scheme: takes additional argument bump; argument ptr_incr is now |
| optional; updated documentation. |
| (vect_init_vector): Takes additional argument (bsi). Use it, if |
| available, to insert the vector initialization. |
| (get_initial_def_for_induction): Pass additional argument in call to |
| vect_init_vector. |
| (vect_get_vec_def_for_operand): Likewise. |
| (vect_setup_realignment): Likewise. |
| (vectorizable_load): Likewise. |
| |
| 2007-08-19 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info |
| as argument instead of struct loop. |
| (nested_in_vect_loop_p): New function. |
| (vect_relevant): Add enum values vect_used_in_outer_by_reduction and |
| vect_used_in_outer. |
| (is_loop_header_bb_p): New. Used to differentiate loop-header phis |
| from other phis in the loop. |
| (destroy_loop_vec_info): Add additional argument to declaration. |
| |
| * tree-vectorizer.c (supportable_widening_operation): Also check if |
| nested_in_vect_loop_p (don't allow changing the order in this case). |
| (vect_is_simple_reduction): Takes a loop_vec_info as argument instead |
| of struct loop. Call nested_in_vect_loop_p and don't require |
| flag_unsafe_math_optimizations if it returns true. |
| (new_stmt_vec_info): When setting def_type for phis differentiate |
| loop-header phis from other phis. |
| (bb_in_loop_p): New function. |
| (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so |
| just update their loop_vinfo. Order of BB traversal now matters - |
| call dfs_enumerate_from with bb_in_loop_p. |
| (destroy_loop_vec_info): Takes additional argument to control whether |
| stmt_vinfo of the loop stmts should be destroyed as well. |
| (vect_is_simple_reduction): Allow the "non-reduction" use of a |
| reduction stmt to be defines by a non loop-header phi. |
| (vectorize_loops): Call destroy_loop_vec_info with additional argument. |
| |
| * tree-vect-transform.c (vectorizable_reduction): Call |
| nested_in_vect_loop_p. Check for multitypes in the inner-loop. |
| (vectorizable_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_type_promotion): Likewise. |
| (vectorizable_type_demotion): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_live_operation): Likewise. |
| (vectorizable_reduction): Likewise. Also pass loop_info to |
| vect_is_simple_reduction instead of loop. |
| (vect_init_vector): Call nested_in_vect_loop_p. |
| (get_initial_def_for_reduction): Likewise. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vect_init_vector): Check which loop to work with, in case there's an |
| inner-loop. |
| (get_initial_def_for_inducion): Extend to handle outer-loop |
| vectorization. Fix indentation. |
| (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def. |
| In the case vect_induction_def get the vector def from the induction |
| phi node, instead of calling get_initial_def_for_inducion. |
| (get_initial_def_for_reduction): Extend to handle outer-loop |
| vectorization. |
| (vect_create_epilog_for_reduction): Extend to handle outer-loop |
| vectorization. |
| (vect_transform_loop): Change assert to just skip this case. Add a |
| dump printout. |
| (vect_finish_stmt_generation): Add a couple asserts. |
| |
| (vect_estimate_min_profitable_iters): Multiply |
| cost of inner-loop stmts (in outer-loop vectorization) by estimated |
| inner-loop bound. |
| (vect_model_reduction_cost): Don't add reduction epilogue cost in case |
| this is an inner-loop reduction in outer-loop vectorization. |
| |
| * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function. |
| Same code as what used to be vect_analyze_scalar_cycles, only with |
| additional argument loop, and loop_info passed to |
| vect_is_simple_reduction instead of loop. |
| (vect_analyze_scalar_cycles): Code factored out into |
| vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest. |
| Updated documentation. |
| (analyze_operations): Check for inner-loop loop-closed exit-phis during |
| outer-loop vectorization that are live or not used in the outerloop, |
| cause this requires special handling. |
| (vect_enhance_data_refs_alignment): Don't consider versioning for |
| nested-loops. |
| (vect_analyze_data_refs): Check that there are no datarefs in the |
| inner-loop. |
| (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer |
| and vect_used_in_outer_by_reduction cases. |
| (process_use): Also consider the case of outer-loop stmt defining an |
| inner-loop stmt and vice versa. |
| (vect_analyze_loop_1): New function. |
| (vect_analyze_loop_form): Extend, to allow a restricted form of nested |
| loops. Call vect_analyze_loop_1. |
| (vect_analyze_loop): Skip (inner-)loops within outer-loops that have |
| been vectorized. Call destroy_loop_vec_info with additional argument. |
| |
| * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow |
| in the inner-loop when doing outer-loop vectorization. Add |
| documentation and printout. |
| (vect_recog_dot_prod_pattern): Likewise. Also add check for |
| GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop). |
| |
| 2007-08-18 Andrew Pinski <pinskia@gmail.com> |
| |
| * tree-affine.h (print_aff): New prototype. |
| (debug_aff): Likewise. |
| * tree-affine.c (print_aff): New function. |
| (debug_aff): Likewise. |
| |
| 2007-08-18 Paul Brook <paul@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * common.opt (-fdebug-prefix-map=): New option. |
| * opts.c: Include debug.h. |
| (common_handle_option): Handle -fdebug-prefix-map. |
| * final.c: Include ggc.h. |
| (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map, |
| remap_debug_filename): New. |
| * Makefile.in (final.o, opts.o): Update dependencies. |
| * debug.h (remap_debug_filename, add_debug_prefix_map): Declare. |
| * configure.ac: Check for assembler --debug-prefix-map support. |
| * configure, config.in: Regenerate. |
| * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP. |
| (ASM_DEBUG_SPEC): Include ASM_MAP. |
| * doc/install.texi (--with-debug-prefix-map): Document. |
| * doc/invoke.texi (-fdebug-prefix-map): Document. |
| * dbxout.c (dbxout_init, dbxout_start_source_file, |
| dbxout_source_file): Call remap_debug_filename. |
| * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file, |
| dwarf2out_start_source_file, dwarf2out_finish): Call |
| remap_debug_filename. |
| (file_table_relative_p): Do not check d->emitted_number. |
| * toplev.c (output_file_directive): Call remap_debug_filename. |
| * vmsdbgout.c (write_srccorr): Call remap_debug_filename. |
| * xcoffout.c (xcoffout_source_file): Call remap_debug_filename. |
| |
| 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * loop-invariant.c (find_invariants_to_move): Add missing macro |
| argument. |
| |
| 2007-08-17 Tom Tromey <tromey@redhat.com> |
| |
| * tree.h (struct tree_label_decl): Removed old "java" fields. |
| |
| 2007-08-17 Richard Sandiford <richard@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas. |
| Treat -mno-data-in-code and -mcode-xonly as aliases for |
| -mcode-readable=no and -mcode-readable=pcrel respectively. |
| * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly. |
| (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs. |
| (MULTILIB_DIRNAMES): Update accordingly. |
| |
| 2007-08-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * Makefile.in (version.o): Depend on $(REVISION) only if |
| REVISION_s is defined. |
| |
| 2007-08-17 Sa Liu <saliu@de.ibm.com> |
| Ulrich Weigand <uweigand@de.ibm.com> |
| |
| PR middle-end/32970 |
| * tree.c (reconstruct_complex_type): For a pointer to a vector, |
| use build_qualified_type to retain qualifiers of the base type. |
| |
| 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn> |
| |
| * config/score/score.md : Update pattern tablejump. |
| * config/score/score.c : Update score_initialize_trampoline |
| function. |
| * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro. |
| (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro. |
| * doc/contrib.texi: Add my entry. |
| |
| 2007-08-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * Makefile.in (REVISION): New. |
| (REVISION_c): New. |
| (REVISION_s): New. |
| (version.o): Also depend on $(REVISION). Add |
| -DREVISION=$(REVISION_s). |
| |
| * version.c (version_string): Add REVISION. |
| |
| 2007-08-16 Seongbae Park <seongbae.park@gmail.com> |
| |
| * tree-eh.c (lower_try_finally_onedest): Reset the locus |
| of GOTO that's relocated to a different block. |
| |
| 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-common.c (const_strip_array_types): New. |
| * c-common.h (lang_missing_noreturn_ok_p): Delete. |
| (const_strip_array_types): New. |
| * c-objc-common.c (c_disregard_inline_limits, |
| c_warn_unused_global_decl): Constify. |
| * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl, |
| c_vla_type_p, c_incomplete_type_error): Likewise. |
| * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise. |
| * hooks.c (hook_bool_const_tree_false): New. |
| * hooks.h (hook_bool_const_tree_false): Likewise. |
| * langhooks-def.h (lhd_warn_unused_global_decl, |
| lhd_incomplete_type_error, lhd_expr_size, |
| lhd_tree_inlining_disregard_inline_limits, |
| lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals, |
| LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify. |
| * langhooks.c (lhd_warn_unused_global_decl, |
| lhd_incomplete_type_error, |
| lhd_tree_inlining_disregard_inline_limits, |
| lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals, |
| lhd_expr_size): Likewise. |
| * langhooks.h (lang_hooks_for_tree_inlining, |
| lang_hooks_for_tree_dump, lang_hooks_for_types, |
| lang_hooks_for_decls, lang_hooks): Likewise. |
| * pointer-set.c (pointer_set_t, pointer_set_create, |
| pointer_set_contains, insert_aux, pointer_set_insert, |
| pointer_set_traverse, pointer_map_t, pointer_map_create, |
| pointer_map_contains, pointer_map_insert, pointer_map_traverse): |
| Likewise. |
| * pointer-set.h (pointer_set_contains, pointer_set_insert, |
| pointer_set_traverse, pointer_map_contains, pointer_map_insert, |
| pointer_map_traverse): Likewise. |
| * predict.c (assert_is_empty): Likewise. |
| * tree-affine.c (free_name_expansion): Likewise. |
| * tree-cfg.c (edge_to_cases_cleanup): Likewise. |
| * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise. |
| * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise. |
| |
| 2007-08-16 Victor Kaplansky <victork@il.ibm.com> |
| |
| * tree-vectorizer.c (new_loop_vec_info): Initialize new |
| field. |
| (destroy_loop_vec_info): Add call to VEC_free. |
| * tree-vectorizer.h (may_alias_ddrs): Define. |
| (LOOP_VINFO_MAY_ALIAS_DDRS): Define. |
| * tree-vect-analyze.c (vect_analyze_data_ref_dependence): |
| Change reporting to dump. |
| (vect_is_duplicate_ddr): New. |
| (vect_mark_for_runtime_alias_test): New. |
| (vect_analyze_data_ref_dependences) Add call to |
| vect_mark_for_runtime_alias_test. |
| (vect_enhance_data_refs_alignment): Define local variable |
| vect_versioning_for_alias_required, don't perform |
| peeling for alignment if versioning for alias is |
| required. |
| (vect_enhance_data_refs_alignment): Use |
| PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of |
| PARAM_VECT_MAX_VERSION_CHECKS. |
| * tree-vect-transform.c |
| (vect_create_cond_for_alias_checks): New. |
| (vect_transform_loop): Add call to |
| vect_create_cond_for_alias_checks. |
| (vect_vfa_segment_size): New. |
| * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS): |
| Rename. |
| (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define. |
| * doc/invoke.texi |
| (vect-max-version-for-alignment-checks): Document. |
| (vect-max-version-for-alias-checks): Document. |
| (vect-max-version-checks): Remove. |
| |
| 2007-08-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on |
| the same line as the instruction for all asm dialects. |
| (*rep_movsi): Ditto. |
| (*rep_movsi_rex64): Ditto. |
| (*rep_movqi): Ditto. |
| (*rep_movqi_rex64): Ditto. |
| (*rep_stosdi_rex64): Ditto. |
| (*rep_stossi): Ditto. |
| (*rep_stossi_rex64): Ditto. |
| (*rep_stosqi): Ditto. |
| (*rep_stosqi_rex64): Ditto. |
| (*cmpstrnqi_nz_1): Ditto. |
| (*cmpstrnqi_nz_rex_1): Ditto. |
| (*cmpstrnqi_1): Ditto. |
| (*cmpstrnqi_rex_1): Ditto. |
| (*strlenqi_1): Ditto. |
| (*strlenqi_rex_1): Ditto. |
| * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock" |
| prefix on the same line as the instruction for all asm dialects. |
| (sync_double_compare_and_swap<mode>): Ditto. |
| (*sync_double_compare_and_swapdi_pic): Ditto. |
| (*sync_compare_and_swap_cc<mode>): Ditto. |
| (sync_double_compare_and_swap_cc<mode>): Ditto. |
| (*sync_double_compare_and_swap_ccdi_pic): Ditto. |
| (sync_old_add<mode>): Ditto. |
| (sync_add<mode>): Ditto. |
| (sync_sub<mode>): Ditto. |
| (sync_ior<mode>): Ditto. |
| (sync_and<mode>): Ditto. |
| (sync_xor<mode>): Ditto. |
| |
| 2007-08-16 Richard Sandiford <richard@codesourcery.com> |
| |
| PR middle-end/32897 |
| * reload.c (find_reloads): Check that the memory returned by |
| find_reloads_toplev was not the result of forcing a constant |
| to memory. |
| (find_reloads_toplev): Always use simplify_gen_subreg to get |
| the subreg of a constant. If the result is also a constant, |
| but not a legitimate one, force it into the constant pool |
| and reload its address. |
| |
| 2007-08-15 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and |
| POPCOUNT. |
| |
| 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute |
| directive for the current vector ABI. |
| |
| 2007-08-15 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/32963 |
| * caller-save.c (reg_save_code): Set invalide status on restore code. |
| |
| 2007-08-15 Diego Novillo <dnovillo@google.com> |
| |
| * tree-ssa-alias.c (compute_memory_partitions): Use |
| alias_bitmap_obstack to allocate bitmaps. |
| (reset_alias_info): Factor out of init_alias_info. |
| Mark all name tags not associated to an SSA name for renaming. |
| (init_alias_info): Call it. |
| (create_name_tags): Tidy. Add comments. |
| (dump_points_to_info_for): Do not call get_mem_sym_stats_for. |
| |
| 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to |
| scheduler dependencies. |
| |
| 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for |
| "register_operand". |
| (*iorsi_1_zext): Likewise. |
| (*iorsi_1_zext_imm): Likewise. |
| * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand" |
| with "rm"/"xm" constraint. |
| (sse2_vmsqrtv2df2): Likewise. |
| |
| 2007-08-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/33074 |
| * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for |
| REG_LIBCALL note. |
| |
| 2007-08-14 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-pass.h (PROP_pta): Removed. |
| (TODO_rebuild_alias): New. |
| (pass_may_alias): Removed. |
| * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild |
| aliasing if we changed something. |
| * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update |
| SSA internally. |
| (pass_may_alias): Removed. |
| (create_structure_vars): Return TODO_rebuild_alias. |
| * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias. |
| * tree-sra.c (tree_sra): Only rebuild aliasing if something |
| changed. |
| (tree_sra_early): We never affect aliasing right now. |
| * tree-flow.h (compute_may_aliases): New prototype. |
| * passes.c: Remove pass_may_alias from the passes. |
| (execute_function_todo): Support TODO_rebuild_alias. |
| |
| 2007-08-14 Kai Tietz <kai.tietz@onevision.com> |
| |
| * config/i386/i386.c (legitimize_address): Move dllimported variable |
| check infront of legitimizing pic address of CONST symbols. |
| |
| 2007-08-14 Steve Ellcey <sje@cup.hp.com> |
| |
| PR tree-optimization/32941 |
| * tree-eh.c (struct leh_tf_state): Add goto_queue_map field. |
| (goto_queue_cmp): Remove. |
| (find_goto_replacement): Change search method. |
| (maybe_record_in_goto_queue): Add assert. |
| (lower_try_finally): Remove qsort call, add pointer_map_destroy call. |
| * Makefile.in (tree-eh.o): Add pointer-set.h dependency. |
| |
| 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (component_uses_parent_alias_set): Constify. |
| * alias.h (component_uses_parent_alias_set): Likewise. |
| * cfgrtl.c (print_rtl_with_bb): Likewise. |
| * double-int.c (tree_to_double_int, double_int_fits_to_tree_p, |
| mpz_get_double_int): Likewise. |
| * double-int.h (double_int_fits_to_tree_p, tree_to_double_int, |
| mpz_get_double_int): Likewise. |
| * expr.c (is_aligning_offset, undefined_operand_subword_p, |
| mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset): |
| Likewise. |
| * expr.h (safe_from_p): Likewise. |
| * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): |
| Likewise. |
| * gimplify.c (should_carry_locus_p, zero_sized_field_decl, |
| zero_sized_type, goa_lhs_expr_p): Likewise. |
| * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise. |
| * rtl.h (print_rtl_with_bb): Likewise. |
| * sched-vis.c (print_exp, print_value, print_pattern): Likewise. |
| * tree-cfg.c (const_first_stmt, const_last_stmt): New. |
| * tree-flow-inline.h (bb_stmt_list): Constify. |
| (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev, |
| cbsi_stmt): New. |
| * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last, |
| const_first_stmt, const_last_stmt): New. |
| (block_may_fallthru, empty_block_p): Constify. |
| * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY, |
| EXPR_ONLY_BODY): New. |
| (expr_first, expr_last, expr_only): Use macro for body. |
| (const_expr_first, const_expr_last, const_expr_only): New. |
| * tree-iterator.h (const_tree_stmt_iterator, ctsi_start, |
| ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next, |
| ctsi_prev, ctsi_stmt): New. |
| * tree-scalar-evolution.c (get_loop_exit_condition): Constify. |
| * tree-scalar-evolution.h (get_loop_exit_condition): Likewise. |
| * tree-ssa-loop-niter.c (loop_only_exit_p, |
| derive_constant_upper_bound): Likewise. |
| * tree-ssa-phiopt.c (empty_block_p): Likewise. |
| * tree-ssa-threadupdate.c (redirection_block_p): Likewise. |
| * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise. |
| * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise. |
| * tree-vrp.c (vrp_bitmap_equal_p): Likewise. |
| * tree.c (get_type_static_bounds): Likewise. |
| * tree.h (const_expr_first, const_expr_last, const_expr_only): New. |
| (get_type_static_bounds): Constify. |
| |
| 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/30315 |
| * config/i386/i386.h (CANONICALIZE_COMPARISON): New. |
| * config/i386/i386.md (plusminus)(addsub)(SWI): New. |
| (*<addsub><mode>3_cc_overflow): New. |
| (*add<mode>3_cconly_overflow): New. |
| (*sub<mode>3_cconly_overflow): New. |
| (*<addsub>si3_zext_cc_overflow): New. |
| * config/i386/predicates.md (fcmov_comparison_operator): Accept |
| CCCmode for LTU, GTU, LEU and GEU. |
| (ix86_comparison_operator): Likewise. |
| (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode. |
| * config/i386/i386.c (put_condition_code): Support CCCmode. |
| (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS |
| or MINUS expressions. |
| |
| 2007-08-14 Andrew Pinski <pinskia@gmail.com> |
| |
| PR c/30428 |
| * c-typeck.c (build_binary_op): Disallow vector float types with |
| BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR. |
| |
| 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * sched-int.h (struct _dep): Rename field 'kind' to 'type'. |
| (DEP_KIND): Rename to DEP_TYPE. Update all uses. |
| (dep_def): New typedef. |
| (init_dep_1, sd_debug_dep): Declare functions. |
| (DEP_LINK_KIND): Rename to DEP_LINK_TYPE. |
| (debug_dep_links): Remove. |
| (struct _deps_list): New field 'n_links'. |
| (DEPS_LIST_N_LINKS): New macro. |
| (FOR_EACH_DEP_LINK): Remove. |
| (create_deps_list, free_deps_list, delete_deps_list): Remove |
| declaration. |
| (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto. |
| (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. |
| (copy_deps_list_change_con, move_dep_link): Ditto. |
| (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps' |
| and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field |
| 'dep_count'. |
| (INSN_BACK_DEPS): Remove. |
| (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS): |
| New macros. |
| (INSN_DEP_COUNT): Remove. |
| (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments. |
| (spec_info, haifa_recovery_block_was_added_during_scheduling_p): |
| Declare global variables. |
| (deps_pools_are_empty_p, sched_free_deps): Declare functions. |
| (add_forw_dep, compute_forward_dependences): Remove declarations. |
| (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto. |
| (add_back_forw_dep, delete_back_forw_dep): Ditto. |
| (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare |
| functions. |
| (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): |
| New constants. |
| (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto. |
| (sd_list_types_def): New typedef. |
| (sd_next_list): Declare function. |
| (struct _sd_iterator): New type. |
| (sd_iterator_def): New typedef. |
| (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline |
| functions. |
| (FOR_EACH_DEP): New cycle wrapper. |
| (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn): |
| Declare functions. |
| (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto. |
| (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists): |
| Ditto. |
| |
| * sched-deps.c (init_dep_1): Make global. |
| (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New |
| constants. |
| (dump_dep): New static function. |
| (dump_dep_flags): New static variable. |
| (sd_debug_dep): New function. |
| (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of |
| the list. |
| (move_dep_link): Use remove_from_deps_list (), instead of |
| detach_dep_link (). |
| (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove. |
| (dep_link_is_detached_p): New static function. |
| (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool |
| instead. |
| (dn_pool, dl_pool): New alloc_pools. |
| (dn_pool_diff, dl_pool_diff): New static variables. |
| (create_dep_node, delete_dep_node): New static function. |
| (create_deps_list): Make it static. Use alloc_pool 'dl_pool'. |
| (deps_list_empty_p): Make it static. Use 'n_links' field. |
| (deps_pools_are_empty_p): New static function. |
| (alloc_deps_list, delete_deps_list): Remove. |
| (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove. |
| (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. |
| (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead. |
| (forward_dependency_cache): Remove. |
| (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove |
| 'back' from the names. Change signature to use dep_t instead of |
| equivalent quad. |
| (add_back_dep): Ditto. Make global. |
| (check_dep_status): Rename to check_dep (). |
| (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn): |
| New functions. |
| (sd_finish_insn): Ditto. |
| (sd_find_dep_between_no_cache): New static function. |
| (sd_find_dep_between): New function. |
| (ask_dependency_caches, set_dependency_caches): New static functions. |
| (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto. |
| (add_or_update_dep_1): Separate pieces of functionality into |
| ask_dependency_caches (), update_dependency_caches (), |
| change_spec_dep_to_hard (), update_dep (). |
| (get_back_and_forw_lists): New static function. |
| (sd_add_dep): Separate setting of dependency caches into |
| set_dependency_caches (). |
| (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps): |
| New functions. |
| (sd_delete_dep): Ditto. |
| (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants. |
| (dump_lists): New static function. |
| (sd_debug_lists): New debug function. |
| (delete_all_dependences, fixup_sched_groups): Update to use |
| sd_* infrastructure. |
| (sched_analyze_2): Create data-speculative dependency only if |
| data-speculation is enabled. |
| (sched_analyze_insn): If insn cannot be speculative, make all its |
| dependencies non-speculative. |
| (sched_analyze): Use sd_init_insn (). |
| (add_forw_dep, compute_forward_dependencies): Remove. |
| (delete_dep_nodes_in_back_deps): New static function. |
| (sched_free_deps): New function. |
| (init_dependency_caches): Init alloc_pools. |
| (extend_depedency_caches): Update after removing of |
| forward_dependency_cache. |
| (free_dependency_caches): Ditto. Free alloc_pools. |
| (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove. |
| (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep): |
| Ditto. |
| (add_back_forw_dep, delete_back_forw_dep): Ditto. |
| (add_dependence): Use init_dep (). |
| (get_dep_weak_1): New static function. |
| (get_dep_weak): Move logic to get_dep_weak_1 (). |
| (dump_ds): New static function moved from haifa-sched.c: |
| debug_spec_status (). |
| (debug_ds): New debug function. |
| (check_dep_status): Rename to check_dep (). Update to check whole |
| dependencies. |
| |
| * haifa-sched.c (spec_info): Make global. |
| (added_recovery_block_p): Rename to |
| 'haifa_recovery_block_was_added_during_current_schedule_block_p'. |
| (haifa_recovery_block_was_added_during_scheduling_p): New variable. |
| (dep_cost, priority, rank_for_schedule, schedule_insn): Update |
| to use new interfaces. |
| (ok_for_early_queue_removal): Ditto. |
| (schedule_block): Initialize logical uids of insns emitted by the |
| target. |
| (sched_init): Initialize new variable. |
| (fix_inter_tick, try_ready, fix_tick_ready): Update to use new |
| interfaces. |
| (extend_global): Initialize insn data. |
| (init_h_i_d): Remove code that is now handled in sd_init_insn (). |
| (process_insn_forw_deps_be_in_spec): Change signature. Update to use |
| new interfaces. |
| (add_to_speculative_block): Update to use new interfaces. |
| (create_recovery_block): Set new variables. |
| (create_check_block_twin, fix_recovery_deps): Update to use new |
| interfaces. |
| (sched_insn_is_legitimate_for_speculation_p): New function. |
| (speculate_insn): Move checking logic to |
| sched_insn_is_legitimate_for_speculation_p (). |
| (sched_remove_insn): Finalize sched-deps information of instruction. |
| (clear_priorities, add_jump_dependencies): Update to use new |
| interfaces. |
| (debug_spec_status): Rename to dump_ds () and move to sched-deps.c. |
| |
| * sched-rgn.c (set_spec_fed, find_conditional_protection): Update |
| to use new interfaces. |
| (is_conditionally_protected, is_pfree, is_prisky) Ditto. |
| (new_ready): Try to use control speculation only if it is available. |
| (add_branch_dependences): Update to use new interfaces. |
| (compute_block_backward_dependences): Rename to |
| compute_block_dependences (). Call |
| targetm.sched.dependencies_evaluation_hook (). |
| (free_block_dependencies): New static function. |
| (debug_dependencies): Update to use new interfaces. |
| (schedule_region): Remove separate computation of forward dependencies. |
| Move call of targetm.sched.dependencies_evaluation_hook () to |
| compute_block_dependences (). Free dependencies at the end of |
| scheduling the region. |
| |
| * sched-ebb.c (earliest_block_with_similiar_load): Update to use |
| new interfaces. |
| (add_deps_for_risky_insns): Ditto. |
| (schedule_ebb): Remove separate computation of forward dependencies. |
| Free dependencies at the end of scheduling the ebb. |
| |
| * ddg.c (create_ddg_dependence): Update to use new interfaces. |
| (build_intra_loop_deps): Ditto. Remove separate computation of |
| forward dependencies. Free sched-deps dependencies. |
| |
| * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update |
| to use new interfaces. |
| (ia64_dfa_new_cycle, ia64_gen_check): Ditto. |
| |
| * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use |
| new interfaces. |
| (is_costly_group): Ditto. |
| |
| 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (rtx_equal_for_memref_p): Constify. |
| * basic-block.h (const_edge, const_basic_block): New. |
| (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p, |
| single_pred_p, single_succ_edge, single_pred_edge, single_succ, |
| single_pred, maybe_hot_bb_p, probably_cold_bb_p, |
| probably_never_executed_bb_p, edge_probability_reliable_p, |
| br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print, |
| inside_basic_block_p, control_flow_insn_p, dominated_by_p): |
| Likewise. |
| * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise. |
| * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up): |
| Likewise. |
| * cfganal.c (flow_active_insn_p, forwarder_block_p, |
| flow_nodes_print, dfs_enumerate_from): Likewise. |
| * cfgbuild.c (count_basic_blocks, inside_basic_block_p, |
| control_flow_insn_p, count_basic_blocks): Likewise. |
| * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p, |
| get_loop_body_with_size, loop_exit_edge_p): Likewise. |
| * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns, |
| average_num_loop_insns, loop_exit_edge_p, |
| just_once_each_iteration_p, can_duplicate_loop_p): Likewise. |
| * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns, |
| average_num_loop_insns, seq_cost): Likewise. |
| * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise. |
| * dominance.c (dominated_by_p): Likewise. |
| * emit-rtl.c (validate_subreg): Likewise. |
| * except.c (can_throw_internal, can_throw_external): Likewise. |
| * except.h (can_throw_internal, can_throw_external): Likewise. |
| * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p, |
| oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p, |
| compute_transp, load_killed_in_block_p, reg_killed_on_edge, |
| simple_mem, store_ops_ok, load_kills_store, find_loads, |
| store_killed_in_insn, store_killed_after, store_killed_before, |
| gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat): |
| Likewise. |
| * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok, |
| noce_mem_write_may_trap_or_fault_p): Likewise. |
| * pointer-set.c (pointer_set_contains, pointer_map_contains): |
| Likewise. |
| * pointer-set.h (pointer_set_contains, pointer_map_contains): |
| Likewise. |
| * predict.c (can_predict_insn_p, maybe_hot_bb_p, |
| probably_cold_bb_p, probably_never_executed_bb_p, |
| edge_probability_reliable_p, br_prob_note_reliable_p, |
| can_predict_insn_p): Likewise. |
| * regclass.c (reg_set_to_hard_reg_set): Likewise. |
| * resource.c (return_insn_p): Likewise. |
| * rtl.h (reg_set_between_p, reg_set_p, validate_subreg): |
| Likewise. |
| * rtlanal.c (reg_set_between_p, reg_set_p): Likewise. |
| * tracer.c (count_insns, ignore_bb_p, better_p): Likewise. |
| * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr, |
| verify_gimple_modify_stmt): Likewise. |
| * tree-chrec.c (is_not_constant_evolution, |
| is_multivariate_chrec_rec, is_multivariate_chrec, |
| chrec_contains_symbols, chrec_contains_undetermined, |
| tree_contains_chrecs, evolution_function_is_affine_multivariate_p, |
| evolution_function_is_univariate_p, avoid_arithmetics_in_type_p, |
| eq_evolutions_p, scev_direction): Likewise. |
| * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec, |
| eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols, |
| chrec_contains_symbols_defined_in_loop, |
| chrec_contains_undetermined, tree_contains_chrecs, |
| evolution_function_is_affine_multivariate_p, |
| evolution_function_is_univariate_p, chrec_zerop, |
| evolution_function_is_constant_p, evolution_function_is_affine_p, |
| evolution_function_is_affine_or_constant_p, |
| tree_does_not_contain_chrecs, chrec_type): Likewise. |
| * tree-data-ref.c (tree_fold_divides_p, |
| object_address_invariant_in_loop_p, dr_may_alias_p, |
| ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p, |
| same_access_functions, constant_access_functions, |
| access_functions_are_affine_or_constant_p, find_vertex_for_stmt): |
| Likewise. |
| * tree-flow.h (scev_direction): Likewise. |
| * tree-gimple.c (is_gimple_stmt): Likewise. |
| * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p): |
| Likewise. |
| * tree-pretty-print.c (op_prio): Likewise. |
| * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, |
| analyzable_condition, backedge_phi_arg_p): Likewise. |
| * tree-scalar-evolution.h (get_chrec_loop): Likewise. |
| * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise. |
| * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): |
| Likewise. |
| |
| 2007-08-13 Dan Hipschman <dsh@google.com> |
| |
| PR c/32953 |
| * c-format.c (check_format_arg): Move check for zero-length |
| format strings below the check for unterminated strings. |
| |
| 2007-08-13 Andrew Pinski <pinskia@gmail.com> |
| |
| PR C/30427 |
| * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float |
| types. |
| |
| 2007-08-13 Nick Clifton <nickc@redhat.com> |
| |
| * config/arm/arm_neon.h: Revert GPLv3 patch to this file. |
| |
| 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR fortran/32860 |
| * c-format.c (gcc_gfc_length_specs): New array. |
| (gcc_gfc_char_table): Add unsigned specifier, and references to |
| the l length modifier. |
| (format_types_orig): Use the new gcc_gfc_length_specs. |
| |
| 2007-08-12 Sa Liu <saliu@de.ibm.com> |
| |
| * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note |
| and with REG_RETVAL note after split. |
| |
| 2007-08-11 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter |
| as ATTRIBUTE_UNUSED. |
| |
| 2007-08-11 David Edelsohn <edelsohn@gnu.org> |
| Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if |
| HAVE_LOCAL_CPU_DETECT not defined. |
| |
| 2007-08-11 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined. |
| (cgraph_process_new_functions): Honor previous value of |
| disregard_inline_limits. |
| * ipa-inline.c (compute_inline_parameters): Likewise. |
| |
| 2007-08-11 Ian Lance Taylor <iant@google.com> |
| |
| * alias.h (alias_set_type): Define new type. |
| (ALIAS_SET_MEMORY_BARRIER): Use it. |
| * rtl.h: Include alias.h. |
| (struct mem_attrs): Use alias_set_type. |
| * tree.h: Include alias.h |
| (struct tree_type): Use alias_set_type. |
| (struct tree_struct_field_tag): Likewise. |
| (struct tree_decl_common): Likewise. |
| * alias.c (struct alias_set_entry): Use alias_set_type. |
| (get_alias_set_entry, alias_set_subset_of): Likewise. |
| (alias_sets_conflict_p): Likewise. |
| (alias_sets_must_conflict_p): Likewise. |
| (objects_must_conflict_p): Likewise. |
| (get_alias_set, new_alias_set): Likewise. |
| (record_alias_subset, record_component_aliases): Likewise. |
| (varargs_set, frame_set): Change to alias_set_type. |
| (get_varargs_alias_set): Use alias_set_type. |
| (get_frame_alias_set): Likewise. |
| * builtins.c (setjmp_alias_set): Change to alias_set_type. |
| * dse.c (struct store_info): Use alias_set_type. |
| (struct read_info, struct clear_alias_mode_holder): Likewise. |
| (clear_alias_set_lookup, canon_address): Likewise. |
| (record_store, check_mem_read_rtx): Likewise. |
| (dse_record_singleton_alias_set): Likewise. |
| (dse_invalidate_singleton_alias_set): Likewise. |
| * emit-rtl.c (get_mem_attrs): Likewise. |
| (set_mem_attributes_minus_bitpos): Likewise. |
| (set_mem_alias_set): Likewise. |
| * expr.c (store_constructor_field, store_field): Likewise. |
| * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise. |
| * langhooks.c (lhd_get_alias_set): Likewise. |
| * langhooks-def.h (lhd_get_alias_set): Likewise. |
| * reload1.c (alter_reg): Likewise. |
| * tree-flow.h (struct fieldoff): Likewise. |
| * tree-ssa-alias.c (struct alias_map_d): Likewise. |
| (may_alias_p, get_smt_for, create_sft): Likewise. |
| * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise. |
| * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. |
| (merge_smts_into): Likewise. |
| * varasm.c (const_alias_set): Likewise. |
| * c-common.c (strict_aliasing_warning): Likewise. |
| (c_common_get_alias_set): Likewise. |
| * dse.h (dse_record_singleton_alias_set): Update declaration. |
| (dse_invalidate_singleton_alias_set): Likewise. |
| * emit-rtl.h (set_mem_alias_set): Likewise. |
| * c-common.h (c_common_get_alias_set): Likewise. |
| * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it. |
| * print-tree.c (print_node): Likewise. |
| * config/alpha/alpha.c (alpha_sr_alias_set): Change to |
| alias_set_type. |
| (alpha_setup_incoming_varargs): Use alias_set_type. |
| * config/i386/i386.c (setup_incoming_varargs_64): Use |
| alias_set_type. |
| (setup_incoming_varargs_ms_64): Likewise. |
| (ix86_GOT_alias_set): Likewise. |
| * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise. |
| * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. |
| (set): Change to alias_set_type. |
| (get_TOC_alias_set): Use alias_set_type. |
| * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update |
| declaration. |
| * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type. |
| * config/sparc/sparc.c (sparc_sr_alias_set): Change to |
| alias_set_type. |
| (struct_value_alias_set): Likewise. |
| * Makefile.in (GTFILES): Add $(srcdir)/alias.h. |
| |
| 2007-08-11 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/vxworks-dummy.h (TARGET_VXWORKS): Define. |
| * config/vxworks.h (TARGET_VXWORKS): Override. |
| * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define |
| "mips" if TARGET_VXWORKS. |
| |
| 2007-08-11 Richard Sandiford <richard@codesourcery.com> |
| |
| * calls.c (avoid_likely_spilled_reg): New function. |
| (expand_call): Use it. |
| |
| 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings. |
| |
| 2007-08-10 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/predicates.md (const_call_insn_operand): Invoke |
| SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs. |
| |
| 2007-08-10 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/33042 |
| * config/rs6000/driver-rs6000.c: Include link.h. |
| Use ElfW instead of wordsize-specif typedef. |
| |
| 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * system.h (CONST_CAST): New. |
| * c-decl.c (c_make_fname_decl): Use it. |
| * c-lex.c (cb_ident, lex_string): Likewise. |
| * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. |
| * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1, |
| give_switch, set_multilib_dir): Likewise. |
| * gengtype-parse.c (string_seq, typedef_name): Likewise. |
| * passes.c (execute_one_pass): Likewise. |
| * prefix.c (update_path): Likewise. |
| * pretty-print.c (pp_base_destroy_prefix): Likewise. |
| * tree.c (build_string): Likewise. |
| |
| 2007-08-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-flow-inline.h (is_exec_stmt): Remove. |
| (is_label_stmt): Remove. |
| * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and |
| is_label_stmt. |
| |
| 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * lower-subreg.c (resolve_shift_zext): Don't adjust |
| src_reg_num for wordmode operands. |
| |
| 2007-08-10 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| * config/mips/mips.c (TARGET_SCHED_INIT): Define. |
| (TARGET_SCHED_REORDER2): Define. |
| (mips_maybe_swap_ready): New. |
| (mips_last_74k_agen_insn): New. |
| (mips_74k_agen_init): New. |
| (mips_74k_agen_reorder): New function to group loads and stores |
| in the ready queue. |
| (mips_sched_init): New. |
| (mips_sched_reorder): Don't do initialization here. Call |
| mips_74k_agen_reorder. |
| (mips_variable_issue): Call mips_74k_agen_init. |
| |
| 2007-08-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-flow-inline.h (get_filename): Remove. |
| |
| 2007-08-10 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips-protos.h (mips_address_insns): Add a boolean |
| argument. |
| (mips_fetch_insns): Delete in favor of... |
| (mips_load_store_insns): ...this new function. |
| * config/mips/mips.c (mips_address_insns): Add a boolean argument |
| to say whether multiword moves _might_ be split. |
| (mips_fetch_insns): Delete in favor of... |
| (mips_load_store_insns): ...this new function. |
| (mips_rtx_costs): Update the call to mips_address_insns. |
| (mips_address_cost): Likewise. |
| * config/mips/mips.md (length): Use mips_load_store_insns instead |
| of mips_fetch_insns. |
| * config/mips/constraints.md (R): Use mips_address_insns rather |
| than mips_fetch_insns. Assume that the move never needs to be split. |
| |
| 2007-08-09 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/mips/mips.opt (mhard-float, msoft-float): Make these |
| control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather |
| than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT. |
| * config/mips/mips.h (mips16_hard_float): Delete. |
| (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these |
| definitions, and replace with.... |
| (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. |
| * config/mips/mips.c (mips16_hard_float): Delete. Replace |
| all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI). |
| (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments. |
| (override_options): Replace MASK_SOFT_FLOAT references with |
| MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT |
| and mips16_hard_float when TARGET_MIPS16. |
| |
| 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR c/32796 |
| * c-typeck.c (build_binary_op): Check for non pointer types before |
| calling int_fits_type_p. |
| |
| 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32813 |
| * fold-const.c (omit_one_operand): Return only the ommitted expression |
| if the result is an empty statement. |
| (pedantic_omit_one_operand): Likewise. |
| |
| 2007-08-09 Daniel Berlin <dberlin@dberlin.org> |
| |
| * c-typeck.c (readonly_error): Improve error for assignment. |
| |
| * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus |
| expression. |
| (pp_c_expression): Ditto. |
| |
| 2007-08-09 Simon Baldwin <simonb@google.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous |
| break that was preventing simplify_associative_operation() for xor. |
| |
| 2007-08-09 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO): |
| Document change in interpretation of value from boolean to |
| tri-state integer. |
| * optabs.c (expand_ffs, expand_ctz): New functions to compute |
| ffs and ctz using clz. |
| (expand_unop): Call them. |
| * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its |
| result value. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. |
| * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to |
| enable the new ffs expansion on this target. |
| |
| 2007-08-09 Jan Hubicka <jh@suse.cz> |
| |
| * optabs.c (expand_widen_pattern_expr): Use optabs accestors. |
| (expand_ternary_op): Likewise. |
| (expand_vec_shift_expr): Likewise. |
| (expand_binop_directly): Likewise. |
| (expand_binop): Likewise. |
| (sign_expand_binop): Likewise. |
| (expand_twoval_unop): Likewise. |
| (expand_twoval_binop): Likewise. |
| (expand_twoval_binop_libfunc): Likewise. |
| (widen_clz): Likewise. |
| (widen_bswap): Likewise. |
| (expand_parity): Likewise. |
| (expand_unop): Likewise. |
| (expand_abs_nojump): Likewise. |
| (expand_copysign): Likewise. |
| (emit_no_conflict_block): Likewise. |
| (emit_libcall_block): Likewise. |
| (can_compare_p): Likewise. |
| (prepare_cmp_insn): Likewise. |
| (emit_cmp_and_jump_insn_1): Likewise. |
| (prepare_float_lib_cmp): Likewise. |
| (emit_conditional_add): Likewise. |
| (gen_add2_insn): Likewise. |
| (have_add2_insn): Likewise. |
| (gen_sub2_insn): Likewise. |
| (have_sub2_insn): Likewise. |
| (can_extend_p): Likewise. |
| (can_fix_p): Likewise. |
| (can_float_p): Likewise. |
| (expand_float): Likewise. |
| (expand_fix): Likewise. |
| (expand_sfix_optab): Likewise. |
| (new_optab): Likewise. |
| (new_convert_optab): Likewise. |
| (init_libfuncs): Likewise. |
| (init_interclass_conv_libfuncs): Likewise. |
| (init_intraclass_conv_libfuncs): Likewise. |
| (set_conv_libfunc): Likewise. |
| (init_optabs): Likewise. |
| (debug_optab_libfuncs): Likewise. |
| (gen_cond_trap): Likewise. |
| * optabs.h (optab_handler, convert_optab_hanlder): New. |
| * genopinit.c: Update optabs generation table. |
| * reload.c (find_reloads_address_1): Use optabs accestors. |
| * builtins.c (expand_builtin_mathfn): Likewise. |
| (expand_builtin_mathfn_2): Likewise. |
| (expand_builtin_mathfn_3): Likewise. |
| (expand_builtin_interclass_mathfn): Likewise. |
| (expand_builtin_sincos): Likewise. |
| (expand_builtin_cexpi): Likewise. |
| (expand_builtin_powi): Likewise. |
| (expand_builtin_strlen): Likewise. |
| * dojump.c (do_jump): Likewise. |
| * expr.c (convert_move): Likewise. |
| (move_by_pieces): Likewise. |
| (move_by_pieces_ninsns): Likewise. |
| (can_store_by_pieces): Likewise. |
| (store_by_pieces_1): Likewise. |
| (emit_move_via_integer): Likewise. |
| (emit_move_complex): Likewise. |
| (emit_move_ccmode): Likewise. |
| (emit_move_insn_1): Likewise. |
| (emit_single_push_insn): Likewise. |
| (store_constructor): Likewise. |
| (expand_expr_real_1): Likewise. |
| (do_store_flag): Likewise. |
| * ada/misc.c (gnat_compute_largest_alignment): Likewise. |
| (enumerate_modes): Likewise. |
| * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. |
| (supportable_widening_operation): Likewise. |
| (supportable_narrowing_operation): Likewise. |
| * expmed.c (store_bit_field_1): Likewise. |
| (extract_bit_field_1): Likewise. |
| (expand_mult_highpart_optab): Likewise. |
| (expand_smod_pow2): Likewise. |
| (expand_divmod): Likewise. |
| (emit_store_flag): Likewise. |
| * tree-vect-patterns.c |
| (vect_pattern_recog_1): Likewise. |
| * tree-ssa-loop-prefetch.c |
| (nontemporal_store_p): Likewise. |
| * tree-vect-transform.c (vect_model_reduction_cost): Likewise. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_reduction): Likewise. |
| (vectorizable_operation): Likewise. |
| (vect_strided_store_supported): Likewise. |
| (vectorizable_store): Likewise. |
| (vect_strided_load_supported): Likewise. |
| (vectorizable_load): Likewise. |
| * combine.c (simplify_comparison): Likewise. |
| * tree-vect-generic.c |
| (type_for_widest_vector_mode): Likewise. |
| (expand_vector_operations_1): Likewise. |
| * config/spu/spu.c (spu_expand_mov): Likewise. |
| (spu_emit_vector_compare): Likewise. |
| * config/rs6000/rs6000.c |
| (rs6000_emit_vector_compare): Likewise. |
| * stmt.c (add_case_node): Likewise. |
| * reload1.c (gen_reload): |
| |
| 2007-08-09 Michael Matz <matz@suse.de> |
| |
| * tree.h (fixed_zerop): Declare as taking a const_tree. |
| * tree.c (fixed_zerop): Take a const_tree. |
| |
| 2007-08-09 Ira Rosen <irar@il.ibm.com> |
| |
| * tree-vect-transform.c (vectorizable_store): Remove call to |
| copy_virtual_operands() and call mark_symbols_for_renaming() for |
| the created vector store. |
| (vect_setup_realignment): Don't call copy_virtual_operands() and |
| update_vuses_to_preheader(). |
| (vectorizable_load): Don't call copy_virtual_operands(). |
| (update_vuses_to_preheader): Remove. |
| |
| 2007-08-08 Chao-ying Fu <fu@mips.com> |
| |
| * tree.def (FIXED_POINT_TYPE): New type. |
| (FIXED_CST): New constant. |
| (FIXED_CONVERT_EXPR): New expr. |
| * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE. |
| (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR. |
| * tree.h (struct tree_base): Add saturating_flag. |
| Remove one bit of spare for saturating_flag. |
| (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE. |
| (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P, |
| FIXED_POINT_TYPE_P): Define. |
| (TYPE_SATURATING): Define. |
| (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define. |
| (struct tree_fixed_cst): New. |
| (TYPE_IBIT, TYPE_FBIT): Define. |
| (tree_node): Add fixed_cst. |
| (enum tree_index): Add new enumeration values of |
| TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE, |
| TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE, |
| TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE, |
| TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE, |
| TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE, |
| TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE, |
| TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE, |
| TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE, |
| TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE, |
| TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE, |
| TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE, |
| TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE, |
| TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE, |
| TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE, |
| TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE, |
| TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE, |
| TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE, |
| TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE. |
| (sat_short_fract_type_node, sat_fract_type_node, |
| sat_long_fract_type_node, sat_long_long_fract_type_node, |
| sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node, |
| sat_unsigned_long_fract_type_node, |
| sat_unsigned_long_long_fract_type_node, short_fract_type_node, |
| fract_type_node, long_fract_type_node, long_long_fract_type_node, |
| unsigned_short_fract_type_node, unsigned_fract_type_node, |
| unsigned_long_fract_type_node, unsigned_long_long_fract_type_node, |
| sat_short_accum_type_node, sat_accum_type_node, |
| sat_long_accum_type_node, sat_long_long_accum_type_node, |
| sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node, |
| sat_unsigned_long_accum_type_node, |
| sat_unsigned_long_long_accum_type_node, short_accum_type_node, |
| accum_type_node, long_accum_type_node, long_long_accum_type_node, |
| unsigned_short_accum_type_node, unsigned_accum_type_node, |
| unsigned_long_accum_type_node, unsigned_long_long_accum_type_node, |
| qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node, |
| uqq_type_node, uhq_type_node, usq_type_node, udq_type_node, |
| utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node, |
| sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node, |
| sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node, |
| sat_utq_type_node, ha_type_node, sa_type_node, da_type_node, |
| ta_type_node, uha_type_node, usa_type_node, uda_type_node, |
| uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node, |
| sat_ta_type_node, sat_uha_type_node, sat_usa_type_node, |
| sat_uda_type_node, sat_uta_type_node): New macro. |
| (make_fract_type, make_accum_type): Declare. |
| (make_signed_fract_type, make_unsigned_fract_type, |
| make_sat_signed_fract_type, make_sat_unsigned_fract_type, |
| make_signed_accum_type, make_unsigned_accum_type, |
| make_sat_signed_accum_type, make_sat_unsigned_accum_type, |
| make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type, |
| make_or_reuse_sat_signed_fract_type, |
| make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type, |
| make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type, |
| make_or_reuse_sat_unsigned_accum_type): New macro. |
| (fixed_zerop): Declare. |
| * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE, |
| LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, |
| SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, |
| LONG_LONG_ACCUM_TYPE_SIZE): Define. |
| * treestruct.def: Add TS_FIXED_CST. |
| * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h. |
| (tree.o): Likewise. |
| (tree-dump.o): Likewise. |
| (print-tree.o): Likewise. |
| (tree-pretty-print.o): Likewise. |
| (fold-const.o): Likewise. |
| * tree-complex.c (some_nonzerop): Handle FIXED_CST. |
| * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST. |
| (is_gimple_min_invariant): Handle FIXED_CST. |
| * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT, |
| MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, |
| MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. |
| (layout_type): Handle FIXED_POINT_TYPE. |
| (make_fract_type, make_accum_type): New functions. |
| * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE. |
| * tree-dump.c (fixed-value.h): New include. |
| (dump_fixed): New function. |
| (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST. |
| * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE. |
| (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR. |
| * tree-pretty-print.c (fixed-value.h): New include. |
| (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and |
| FIXED_CONVERT_EXPR. |
| * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST. |
| * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST. |
| * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST. |
| * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation |
| for non-saturating fixed-point types. |
| (reassociate_bb): Likewise. |
| * emit-rtl.c (fixed-value.h): New include. |
| (fconst0, fconst1): New array. |
| (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes. |
| * tree-vect-generic.c expand_vector_operation): Support |
| MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and |
| MODE_VECTOR_UACCUM. |
| (type_for_widest_vector_mode): Add one parameter for the |
| saturating flag. |
| Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their |
| vector mode. |
| Pass the satp parameter to type_for_mode for fixed-point types. |
| (expand_vector_operations_1): Pass the saturating flag to |
| type_for_widest_vector_mode. |
| Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, |
| and MODE_VECTOR_UACCUM. |
| * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST. |
| (vectorizable_condition): Likewise. |
| * tree.c (fixed-value.h): New include. |
| (tree_code_size): Support FIXED_CST. |
| (build_fixed): New function. |
| (build_one_cst): Support FIXED_POINT_TYPE for accum types. |
| (fixed_zerop): New function. |
| (tree_node_structure): Support FIXED_CST. |
| (type_contains_placeholder_1): Support FIXED_POINT_TYPE. |
| (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE. |
| (type_hash_eq): Handle FIXED_POINT_TYPE. |
| (simple_cst_equal): Support FIXED_CST. |
| (iterative_hash_expr): Handle FIXED_CST. |
| (get_unwidened): Make sure type is not FIXED_POINT_TYPE. |
| (get_narrower): Likewise. |
| (variably_modified_type_p): Handle FIXED_POINT_TYPE. |
| (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions. |
| (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and |
| MAKE_FIXED_MODE_NODE macros to initialize fixed-point type |
| nodes. |
| (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT, |
| MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. |
| (initializer_zerop): Support FIXED_CST. |
| (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE. |
| * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or |
| DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE. |
| (is_base_type): Handle FIXED_POINT_TYPE. |
| (add_type_attribute): Handle FIXED_POINT_TYPE. |
| (gen_type_die_with_usage): Handle FIXED_POINT_TYPE. |
| * print-tree.c (fixed-value.h): New include. |
| (print_node_brief): Support FIXED_CST. |
| (print_node): Support FIXED_POINT_TYPE and FIXED_CST. |
| * c-pretty-print.c (fixed-value.h): New include. |
| (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass |
| TYPE_SATURATING to c_common_type_for_mode for fixed-point modes. |
| (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE. |
| Support fixed-point types for inner items in VECTOR_TYPE. |
| (pp_c_direct_declarator): Likewise. |
| (pp_c_declarator): Likewise. |
| (pp_c_fixed_constant): New function. |
| (pp_c_constant): Handle FIXED_CST. |
| (pp_c_primary_expression): Likewise. |
| (pp_c_expression): Likewise. |
| * fold-const.c (fixed-value.h): New include. |
| (negate_expr_p): Return true for FIXED_CST. |
| (fold_negate_expr): Support FIXED_CST. |
| (split_tree): Support FIXED_CST. |
| (const_binop): Support FIXED_CST. |
| (fold_convert_const_int_from_fixed): New function to convert from |
| fixed to int. |
| (fold_convert_const_real_from_fixed): New function to convert from |
| fixed to real. |
| (fold_convert_const_fixed_from_fixed): New function to convert from |
| fixed to another fixed. |
| (fold_convert_const_fixed_from_int): New function to convert from |
| int to fixed. |
| (fold_convert_const_fixed_from_real): New function to convert from |
| real to fixed. |
| (fold_convert_const): Support conversions from fixed to int, from |
| fixed to real, from fixed to fixed, from int to fixed, and from real |
| to fixed. |
| (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE. |
| (operand_equal_p): Support FIXED_CST. |
| (make_range): For fixed-point modes, we need to pass the |
| saturating flag as the 2nd parameter. |
| (tree_swap_operands_p): Handle FIXED_CST. |
| (fold_plusminus_mult_expr): For fract modes, we cannot generate |
| constant 1. |
| (fold_unary): Support FIXED_CONVERT_EXPR. |
| (fold_binary): Handle FIXED_CST. |
| Make sure the type is not saturating, before associating operations. |
| Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2). |
| (tree_expr_nonnegative_warnv_p): Handle FIXED_CST. |
| (fold_negate_const): Support FIXED_CST. |
| (fold_relational_const): Support FIXED_CST. |
| * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE. |
| (gimplify_expr): Handle FIXED_CST. |
| (gimplify_type_sizes): Handle FIXED_POINT_TYPE. |
| * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST. |
| * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE. |
| * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE, |
| FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, |
| SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, |
| LONG_LONG_ACCUM_TYPE_SIZE. |
| * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE. |
| * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE. |
| * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE. |
| * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT, |
| MODE_ACCUM, and MODE_UACCUM. |
| * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating |
| fixed-point types to disable reduction. |
| * explow.c (promote_mode): Support FIXED_POINT_TYPE. |
| |
| 2007-08-08 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/x-rs6000: New file. |
| * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu. |
| * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu. |
| (EXTRA_SPEC_FUNCTIONS): Define. |
| (HAVE_LOCAL_CPU_DETECT): Define. |
| (CC1_CPU_SPEC): Define. |
| * config/rs6000/driver-rs6000.c: New file. |
| * config/rs6000/aix.h (CC1_SPEC): Define. |
| * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu. |
| * config.host: Add x-rs6000 to host_xmake_file if host and target |
| are rs6000 or powerpc. |
| |
| 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch> |
| |
| * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| Chao-ying Fu <fu@mips.com> |
| Nigel Stephens <nigel@mips.com> |
| David Ung <davidu@mips.com> |
| |
| * doc/invoke.texi (-mcode-readable): Document. |
| * config/mips/mips.opt (mcode-readable): New option. |
| * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type. |
| * config/mips/mips.h (mips_code_readable_setting): New enum. |
| (mips_code_readable): Declare. |
| (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros. |
| (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro. |
| (JUMP_TABLES_IN_TEXT_SECTION): Use it. |
| (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove |
| boiler-plate comments. |
| (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES. |
| * config/mips/mips.c (mips_code_readable): New variable. |
| (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for |
| MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the |
| context and -mcode-readable setting to restrict the use of |
| SYMBOL_PC_RELATIVE for MIPS16 constant pool references. |
| Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed. |
| (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH. |
| (mips_blocks_for_constant_p): Only return false for |
| TARGET_MIPS16_PCREL_LOADS. |
| (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions |
| for MIPS16. Handle SYMBOL_32_HIGH. |
| (mips_const_insns): Allow HIGHs for MIPS16 too. |
| (mips_unspec_address_offset): New function, split out from... |
| (mips_unspec_address): ...here. |
| (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load |
| 16-bit symbolic constants. Assert approropiate conditions for |
| using the "la" and "dla" macros. |
| (mips_handle_option): Handle -mcode-readable=. |
| (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too. |
| Set up mips_lo_relocs[SYMBOL_32_HIGH]. |
| (mips_strip_unspec_address): New function, split out from... |
| (print_operand_reloc): ...here. |
| (print_operand): Pass constants through mips_strip_unspec_address. |
| (print_operand_address): Likewise. |
| (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants. |
| (mips_select_rtx_section): Remove MIPS16 handling. |
| (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl. |
| (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC. |
| (mips16_lay_out_constants): Do nothing unless |
| TARGET_MIPS16_PCREL_LOADS. |
| (mips_avoid_hazards): Remove guard of mips16_lay_out_constants. |
| * config/mips/mips.md: Split HIGHs for MIPS16. |
| (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips-protos.h (mips_emit_move): Declare. |
| * config/mips/mips.c (mips_emit_move): New function. |
| (mips_force_temporary): Use mips_emit_move instead of emit_move_insn. |
| (mips_legitimize_const_move): Likewise. |
| (mips_legitimize_move): Likewise. |
| (mips_split_64bit_move): Likewise. |
| (mips_restore_gp): Likewise. |
| (mips_load_call_address): Likewise. |
| (mips_emit_fcc_reload): Likewise. |
| (mips_set_return_address): Likewise. |
| (mips_block_move_straight): Likewise. |
| (mips_block_move_loop): Likewise. |
| (mips_setup_incoming_varargs): Likewise. |
| (mips_save_reg): Likewise. |
| (mips_expand_prologue): Likewise. |
| (mips_restore_reg): Likewise. |
| (mips_expand_epilogue): Likewise. |
| (mips_output_mi_thunk): Likewise. |
| (build_mips16_call_stub): Likewise. |
| (mips_builtin_branch_and_move): Likewise. |
| * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise. |
| * config/mips/mips.md (fixuns_truncdfsi2): Likewise. |
| (fixuns_truncdfdi2): Likewise. |
| (fixuns_truncsfsi2): Likewise. |
| (fixuns_truncsfdi2): Likewise. |
| (loadgp_absolute): Likewise. |
| (builtin_setjmp_setup): Likewise. |
| (builtin_longjmp): Likewise. |
| (untyped_call): Likewise. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips-protos.h (mips_split_symbol): Add a mode and |
| an "rtx *" argument. Return a bool. |
| * config/mips/mips.c (mips_split_symbol): Accept arbitrary source |
| values and return true if they can be split. Take the same kind of |
| mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter |
| and store the lo_sum there if nonnull. Use the symbol type to |
| determine whether a $gp or HIGH is needed. |
| (mips_legitimize_address): Update call to mips_split_symbol and |
| simplify accordingly. |
| (mips_legitimize_const_move): Likewise. |
| * config/mips/mips.md: In the combine define_split, |
| check mips_split_symbol instead of splittable_symbolic_operand. |
| Update use of mips_split_symbol in the generator code. |
| * config/mips/predicates.md (splittable_symbolic_operand): Delete. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips_symbolic_address_p): Delete. |
| (mips_symbol_insns_1): New function, split out from... |
| (mips_symbol_insns): ...here. Take a mode argument. Treat loads |
| and stores separately from load addresses. |
| (mips_classify_address): Replace uses of mips_symbolic_address_p |
| with uses of mips_symbol_insns. |
| (mips_address_insns): Update calls to mips_symbol_insns. |
| (mips_const_insns): Likewise. |
| (mips_legitimize_address): Likewise. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type. |
| * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS |
| block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS. |
| Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for |
| non-call contexts if TARGET_MIPS16. |
| (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM. |
| (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16 |
| code for SYMBOL_ABSOLUTE. |
| (mips_symbol_insns): Likewise. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips-protos.h (mips_symbol_context): New enumeration. |
| * config/mips/mips.c (mips_classify_symbol): Take a context argument. |
| (mips_symbolic_constant_p): Likewise. Update the call to |
| mips_classify_symbol. |
| (mips_classify_address): Update the calls to mips_symbolic_constant_p. |
| (mips_const_insns): Likewise. Update the call to mips_classify_symbol. |
| (mips_legitimize_address): Update the call to mips_symbolic_constant_p. |
| (print_operand_reloc): Add a context argument. Update the call to |
| mips_symbolic_constant_p. |
| (print_operand): Update the calls to print_operand_reloc. |
| (print_operand_address): Use print_operand_reloc rather than |
| print_operand. |
| (mips_rewrite_small_data_p): Add a context argument. Update the call |
| to mips_symbolic_constant_p. |
| (mips_small_data_pattern_1): Make DATA the containing mem. |
| Update the call to mips_rewrite_small_data_p. |
| (mips_rewrite_small_data_1): Likewise. |
| (mips_use_anchors_for_symbol_p): Update the call to |
| mips_symbolic_constant_p. |
| * config/mips/predicates.md (const_call_insn_operand): Likewise. |
| (splittable_symbolic_operand): Likewise. |
| (move_operand): Likewise. |
| (absolute_symbolic_operand): Likewise. |
| (got_disp_operand): Likewise. |
| (got_page_ofst_operand): Likewise. |
| |
| 2007-08-08 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to... |
| (SYMBOL_ABSOLUTE): ...this. |
| (SYMBOL_SMALL_DATA): Rename to... |
| (SYMBOL_GP_RELATIVE): ...this. |
| (SYMBOL_CONSTANT_POOL): Rename to... |
| (SYMBOL_PC_RELATIVE): ...this. |
| * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p) |
| (mips_symbolic_address_p, mips_symbol_insns, override_options) |
| (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update |
| after above changes. |
| * config/mips/predicates.md (const_call_insn_operand): Likewise. |
| (general_symbolic_operand): Rename to... |
| (absolute_symbolic_operand): ...this. |
| * config/mips/mips.md: Update after above changes. |
| |
| 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * ddg.c (print_ddg): Add dump information. |
| * modulo-sched.c (print_node_sched_params): Add parameter and |
| verbosity. |
| (calculate_maxii): Remove function. |
| (undo_generate_reg_moves): Likewise. |
| (undo_permute_partial_schedule): Likewise. |
| (kernel_number_of_cycles): Likewise. |
| (MAXII_FACTOR): New definition to calculate the upper bound of II. |
| (sms_schedule): Use it. Remove profitability checks. |
| (sms_schedule_by_order): Fix order of nodes within the cycle. |
| |
| 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add |
| -profile option, add pie support. |
| (ENDFILE_SPEC): New spec. |
| * config/gnu.h (LIB_SPEC): Add -profile option. |
| |
| 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * config/i386/gnu.h (CPP_SPEC): Add -pthread option. |
| * config/gnu.h (LIB_SPEC): Likewise. |
| |
| 2007-08-07 Yaz Saito <saito@google.com> |
| Ian Lance Taylor <iant@google.com> |
| |
| * common.opt (finstrument-functions-exclude-function-list): New |
| option. |
| (finstrument-functions-exclude-file-list): New option. |
| * opts.c (char_p): Define and DEF_VEC. |
| (flag_instrument_functions_exclude_functions): New static |
| variable. |
| (flag_instrument_functions_exclude_files): New static variable. |
| (add_instrument_functions_exclude_list): New static function. |
| (flag_instrument_functions_exclude_p): New function. |
| (common_handle_option): Handle new options. |
| * flags.h (flag_instrument_functions_exclude_p): Declare. |
| * gimplify.c (gimplify_function_tree): Call |
| flag_instrument_functions_exclude_p. |
| * doc/invoke.texi (Option Summary): Mention new options. |
| (Code Gen Options): Document new options. |
| |
| 2007-08-07 Ian Lance Taylor <iant@google.com> |
| |
| PR rtl-optimization/32776 |
| * lower-subreg.c (resolve_clobber): Call resolve_reg_notes. |
| (resolve_use): Likewise. |
| (decompose_multiword_subregs): Remove "changed" local variable. |
| |
| 2007-08-07 Carlos O'Donell <carlos@codesourcery.com> |
| |
| * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options |
| spec string. |
| |
| 2007-08-07 Ian Lance Taylor <iant@google.com> |
| |
| * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL |
| note, just delete the insn. |
| |
| 2007-08-07 Andreas Schwab <schwab@suse.de> |
| |
| PR bootstrap/32973 |
| * gengtype-lex.l: Ignore backslash/newline pair while scanning a |
| struct definition. |
| |
| 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * lower-subreg.c (resolve_subreg_use): Remove assertion. |
| (find_decomposable_shift_zext, resolve_shift_zext): New functions. |
| (decompose_multiword_subregs): Use the functions above to decompose |
| multiword shifts and zero-extends. |
| |
| 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * doc/sourcebuild.texi (Test Directives): Fix "compile" and |
| "assemble" descriptions which were swapped. |
| |
| 2007-08-06 Chao-ying Fu <fu@mips.com> |
| |
| * fixed-value.h: New file. |
| * fixed-value.c: New file. |
| * Makefile.in (OBJS-common): Add fixed-value.o. |
| (fixed-value.o): New rule. |
| (GTFILES): Add fixed-value.h. |
| * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT |
| to compare a.low and b.low. |
| * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef. |
| |
| 2007-08-06 H.J. Lu <hongjiu.lu@intel.com> |
| Daniel Jacobowitz <dan@codesourcery.com> |
| |
| PR target/31868 |
| * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to |
| tmake_file. |
| (x86_64-*-netbsd*): Likewise. |
| (x86_64-*-linux*): Likewise. |
| (x86_64-*-kfreebsd*-gnu): Likewise. |
| (x86_64-*-knetbsd*-gnu): Likewise. |
| (i[34567]86-*-solaris2.1[0-9]*): Likewise. |
| |
| * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed. |
| |
| * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments. |
| Add -fno-asynchronous-unwind-tables. |
| |
| * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). |
| * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise. |
| * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise. |
| * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise. |
| * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise. |
| |
| 2007-08-06 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/ia64.c (ia64_c_mode_for_suffix): New. |
| (TARGET_C_MODE_FOR_SUFFIX): New. |
| |
| 2007-08-06 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'. |
| |
| 2007-08-06 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo. |
| |
| 2007-08-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md: Check TARGET_ macros and optimize_size |
| before checking function returns in conditional expressions. |
| |
| 2007-08-06 Alfred Minarik <a.minarik@aon.at> |
| |
| PR pch/13676 |
| * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header. |
| |
| 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32988 |
| * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check |
| for INTEGRAL_TYPE_P. |
| |
| 2008-08-05 Paolo Bonzini <bonzini@gnu.org> |
| |
| * configure.ac: Remove --enable-checking=df from default settings. |
| * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance. |
| * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification |
| if the parameter is true. |
| (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the |
| DF_VERIFY_SCHEDULED flag is true. |
| * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED. |
| (df_finish_pass): Adjust prototype. |
| * passes.c (execute_todo): Schedule verification if TODO_df_verify is |
| true. |
| |
| * see.c (pass_see): Add TODO_df_verify. |
| * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify. |
| * global.c (rest_of_handle_global_alloc): Schedule verification |
| after the pass. |
| * local-alloc.c (rest_of_handle_local_alloc): Schedule verification |
| before the pass. |
| * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify. |
| * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass. |
| * loop-iv.c (iv_analysis_done): Schedule verification after the pass. |
| |
| * config/sh/sh.c (sh_output_mi_thunk): Remove dead code. |
| * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass. |
| * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass. |
| |
| 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new |
| flag. |
| * ddg.c (create_ddg_dependence): Rename to... |
| (create_ddg_dep_from_intra_loop_link): This. Do not check |
| for interloop edges. Do not create anti dependence edge when |
| a true dependence edge exists in the opposite direction and |
| -fmodulo-sched-allow-regmoves is set. |
| (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link. |
| (add_cross_iteration_register_deps): Create anti dependence edge |
| when -fno-modulo-sched-allow-regmoves is set. |
| * common.opt (-fmodulo-sched-allow-regmoves): New flag. |
| |
| 2007-08-04 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/arm/arm.md (movsi): Add braces. |
| |
| 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32780 |
| * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of |
| operands for the folding of "A - (A & B)" into "~B & A"; cast them |
| to type. |
| |
| 2007-08-03 Zdenek Dvorak <ook@ucw.cz> |
| |
| * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' |
| state accessor functions. |
| * cfgloopmanip.c (remove_path, create_preheaders, |
| force_single_succ_latches, fix_loop_structure): Ditto. |
| * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, |
| tree_duplicate_loop_to_header_edge): Ditto. |
| * cfgloopanal.c (mark_irreducible_loops): Ditto. |
| * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): |
| Ditto. |
| * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures, |
| cleanup_tree_cfg): Ditto. |
| * tree-cfg.c (tree_merge_blocks): Ditto. |
| * cfgloop.c (rescan_loop_exit, record_loop_exits, |
| release_recorded_exits, get_loop_exit_edges, verify_loop_structure, |
| loop_preheader_edge, single_exit): Ditto. |
| (flow_loops_find): Do not clear loops->state. |
| * cfgloop.h (loops_state_satisfies_p, loops_state_set, |
| loops_state_clear): New functions. |
| |
| 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32399 |
| * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR |
| when adding to the base and convert ELT to sizetype instead of type. |
| |
| 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32304 |
| * ipa-reference.c (has_proper_scope_for_analysis): Return false when |
| the decl's type has TYPE_NEEDS_CONSTRUCTING set. |
| |
| 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/32935 |
| * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the |
| correct type the negate expression. |
| |
| 2007-08-03 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.c (setup_incoming_varargs_64): Tolerate 64bit |
| preferred stack boundary. |
| |
| 2007-08-03 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (struct processor_cost): Change |
| l1_cache_lines to l1_cache_size. Add l2_cache_size. |
| (*_cost): Convert l1 cache information to kilobytes. Add l2 cache |
| information. |
| (rios1_costs, rios2_cost): Correct cache line size. |
| (rs6000_override_options): Set l2-cache-size parameter. |
| |
| 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| Diego Novillo <dnovillo@google.com> |
| |
| PR 31521 |
| * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify |
| if the range includes 0. |
| |
| 2007-08-03 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate |
| mode to unspec expressions to silence a warning from the generator |
| programs. |
| |
| 2007-08-02 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/constraints.md ("U"): Make constraint vector only. |
| |
| 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR middle-end/25446 |
| * c-objc-common.c (c_cannot_inline_tree_fn): Check for an |
| always_inline attribute on the function decl. |
| |
| 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR middle-end/25445 |
| * varasm.c (default_binds_local_p_1): Consult flag_whole_program |
| if we are compiling with -fPIC. |
| |
| 2007-08-02 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0): |
| Define for MIPS32 and MIPS64. |
| |
| 2007-08-02 Nick Clifton <nickc@redhat.com> |
| |
| * config/host-hpux.c: Change copyright header to refer to version |
| 3 of the GNU General Public License and to point readers at the |
| COPYING3 file and the FSF's license web page. |
| * config/alpha/predicates.md, config/alpha/vms-ld.c, |
| config/alpha/linux.h, config/alpha/alpha.opt, |
| config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h, |
| config/alpha/vms-unwind.h, config/alpha/ev4.md, |
| config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c, |
| config/alpha/alpha.h, config/alpha/sync.md, |
| config/alpha/openbsd.h, config/alpha/alpha.md, |
| config/alpha/alpha-modes.def, config/alpha/ev5.md, |
| config/alpha/alpha-protos.h, config/alpha/freebsd.h, |
| config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h, |
| config/alpha/constraints.md, config/alpha/osf.h, |
| config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h, |
| config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h, |
| config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def, |
| config/frv/frv-asm.h, config/frv/frv-protos.h, |
| config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h, |
| config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h, |
| config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt, |
| config/s390/2064.md, config/s390/2084.md, config/s390/s390.md, |
| config/s390/s390.opt, config/s390/s390-modes.def, |
| config/s390/fixdfdi.h, config/s390/constraints.md, |
| config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h, |
| config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md, |
| config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md, |
| config/m32c/m32c-pragma.c, config/m32c/m32c.h, |
| config/m32c/prologue.md, config/m32c/m32c.abi, |
| config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md, |
| config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt, |
| config/m32c/t-m32c, config/m32c/m32c-modes.def, |
| config/m32c/jump.md, config/m32c/shift.md, |
| config/m32c/m32c-protos.h, config/libgloss.h, |
| config/spu/spu-protos.h, config/spu/predicates.md, |
| config/spu/spu-builtins.h, config/spu/spu.c, |
| config/spu/spu-builtins.def, config/spu/spu-builtins.md, |
| config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md, |
| config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt, |
| config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h, |
| config/sparc/hypersparc.md, config/sparc/predicates.md, |
| config/sparc/linux.h, config/sparc/sp64-elf.h, |
| config/sparc/supersparc.md, config/sparc/cypress.md, |
| config/sparc/openbsd1-64.h, config/sparc/openbsd64.h, |
| config/sparc/niagara.md, config/sparc/sparc.md, |
| config/sparc/long-double-switch.opt, config/sparc/ultra3.md, |
| config/sparc/sparc.opt, config/sparc/sync.md, |
| config/sparc/sp-elf.h, config/sparc/sparc-protos.h, |
| config/sparc/ultra1_2.md, config/sparc/biarch64.h, |
| config/sparc/sparc.c, config/sparc/little-endian.opt, |
| config/sparc/sysv4-only.h, config/sparc/sparc.h, |
| config/sparc/linux64.h, config/sparc/freebsd.h, |
| config/sparc/sol2.h, config/sparc/rtemself.h, |
| config/sparc/netbsd-elf.h, config/sparc/vxworks.h, |
| config/sparc/sparc-modes.def, config/sparc/sparclet.md, |
| config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h, |
| config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md, |
| config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt, |
| config/m32r/linux.h, config/m32r/constraints.md, |
| config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt, |
| config/darwin-c.c, config/darwin.opt, config/i386/i386.h, |
| config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h, |
| config/i386/i386.md, config/i386/netware-crt0.c, |
| config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h, |
| config/i386/kaos-i386.h, config/i386/winnt-stubs.c, |
| config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h, |
| config/i386/sol2.h, config/i386/constraints.md, |
| config/i386/netware-libgcc.c, config/i386/sysv5.h, |
| config/i386/predicates.md, config/i386/geode.md, |
| config/i386/x86-64.h, config/i386/kfreebsd-gnu.h, |
| config/i386/freebsd64.h, config/i386/vxworksae.h, |
| config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h, |
| config/i386/rtemself.h, config/i386/netbsd-elf.h, |
| config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c, |
| config/i386/netware.h, config/i386/i386-modes.def, |
| config/i386/sysv4-cpp.h, config/i386/i386-interix.h, |
| config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h, |
| config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h, |
| config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h, |
| config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md, |
| config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt, |
| config/i386/xm-mingw32.h, config/i386/linux64.h, |
| config/i386/openbsdelf.h, config/i386/xm-cygwin.h, |
| config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h, |
| config/i386/winnt-cxx.c, config/i386/i386-interix3.h, |
| config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c, |
| config/i386/cygwin2.c, config/i386/i386-protos.h, |
| config/i386/sync.md, config/i386/openbsd.h, |
| config/i386/host-mingw32.c, config/i386/i386-aout.h, |
| config/i386/nto.h, config/i386/biarch64.h, |
| config/i386/i386-coff.h, config/i386/freebsd.h, |
| config/i386/driver-i386.c, config/i386/knetbsd-gnu.h, |
| config/i386/host-i386-darwin.c, config/i386/vxworks.h, |
| config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h, |
| config/darwin-protos.h, config/linux.opt, config/sol2.c, |
| config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h, |
| config/sh/linux.h, config/sh/elf.h, config/sh/superh.h, |
| config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h, |
| config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h, |
| config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md, |
| config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h, |
| config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c, |
| config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def, |
| config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md, |
| config/sh/superh64.h, config/sh/rtemself.h, |
| config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h, |
| config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h, |
| config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c, |
| config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def, |
| config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h, |
| config/avr/predicates.md, config/avr/constraints.md, |
| config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt, |
| config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h, |
| config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h, |
| config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt, |
| config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt, |
| config/c4x/c4x-modes.def, config/c4x/rtems.h, |
| config/c4x/predicates.md, config/c4x/c4x.h, |
| config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h, |
| config/xtensa/predicates.md, config/xtensa/xtensa.c, |
| config/xtensa/linux.h, config/xtensa/xtensa.h, |
| config/xtensa/elf.h, config/xtensa/xtensa.md, |
| config/xtensa/xtensa.opt, config/xtensa/constraints.md, |
| config/xtensa/xtensa-protos.h, config/dbx.h, |
| config/stormy16/predicates.md, config/stormy16/stormy16.md, |
| config/stormy16/stormy16.c, config/stormy16/stormy16.opt, |
| config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h, |
| config/host-solaris.c, config/fr30/fr30.h, |
| config/fr30/predicates.md, config/fr30/fr30-protos.h, |
| config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt, |
| config/vxworksae.h, config/sol2-c.c, config/lynx.h, |
| config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md, |
| config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c, |
| config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h, |
| config/m68hc11/m68hc12.h, config/openbsd-oldgas.h, |
| config/host-linux.c, config/interix3.h, config/cris/cris.c, |
| config/cris/predicates.md, config/cris/linux.h, |
| config/cris/cris.h, config/cris/aout.h, config/cris/cris.md, |
| config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt, |
| config/cris/aout.opt, config/cris/cris-protos.h, |
| config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h, |
| config/iq2000/iq2000.h, config/iq2000/predicates.md, |
| config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md, |
| config/iq2000/iq2000.c, config/iq2000/iq2000.opt, |
| config/host-darwin.c, config/mt/mt.md, config/mt/mt.c, |
| config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h, |
| config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h, |
| config/chorus.h, config/mn10300/mn10300.c, |
| config/mn10300/mn10300.opt, config/mn10300/predicates.md, |
| config/mn10300/mn10300.h, config/mn10300/linux.h, |
| config/mn10300/constraints.md, config/mn10300/mn10300-protos.h, |
| config/mn10300/mn10300.md, config/ia64/predicates.md, |
| config/ia64/itanium1.md, config/ia64/unwind-ia64.h, |
| config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c, |
| config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md, |
| config/ia64/freebsd.h, config/ia64/ia64.md, |
| config/ia64/ia64-modes.def, config/ia64/constraints.md, |
| config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h, |
| config/gofast.h, config/rtems.h, config/sol2-10.h, |
| config/m68k/predicates.md, config/m68k/m68k.md, |
| config/m68k/linux.h, config/m68k/m68k-modes.def, |
| config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h, |
| config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt, |
| config/m68k/openbsd.h, config/m68k/m68k-aout.h, |
| config/m68k/m68k.opt, config/m68k/m68020-elf.h, |
| config/m68k/m68kelf.h, config/m68k/m68k-devices.def, |
| config/m68k/uclinux-oldabi.h, config/m68k/m68k.c, |
| config/m68k/constraints.md, config/m68k/rtemself.h, |
| config/m68k/netbsd-elf.h, config/m68k/m68k.h, |
| config/m68k/uclinux.h, config/rs6000/power4.md, |
| config/rs6000/host-darwin.c, config/rs6000/6xx.md, |
| config/rs6000/linux.h, config/rs6000/eabi.h, |
| config/rs6000/aix41.opt, config/rs6000/xcoff.h, |
| config/rs6000/secureplt.h, config/rs6000/linuxspe.h, |
| config/rs6000/eabialtivec.h, config/rs6000/8540.md, |
| config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h, |
| config/rs6000/windiss.h, config/rs6000/603.md, |
| config/rs6000/aix41.h, config/rs6000/cell.md, |
| config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h, |
| config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt, |
| config/rs6000/darwin.md, config/rs6000/darwin64.h, |
| config/rs6000/default64.h, config/rs6000/7xx.md, |
| config/rs6000/darwin.opt, config/rs6000/spe.md, |
| config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c, |
| config/rs6000/rios2.md, config/rs6000/linuxaltivec.h, |
| config/rs6000/7450.md, config/rs6000/linux64.h, |
| config/rs6000/constraints.md, config/rs6000/440.md, |
| config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c, |
| config/rs6000/rs6000.c, config/rs6000/aix52.h, |
| config/rs6000/rs6000.h, config/rs6000/power6.md, |
| config/rs6000/predicates.md, config/rs6000/altivec.md, |
| config/rs6000/aix64.opt, config/rs6000/rios1.md, |
| config/rs6000/rs6000-modes.def, config/rs6000/rs64.md, |
| config/rs6000/eabisim.h, config/rs6000/sysv4le.h, |
| config/rs6000/darwin7.h, config/rs6000/dfp.md, |
| config/rs6000/linux64.opt, config/rs6000/sync.md, |
| config/rs6000/vxworksae.h, config/rs6000/power5.md, |
| config/rs6000/lynx.h, config/rs6000/biarch64.h, |
| config/rs6000/rs6000.md, config/rs6000/sysv4.opt, |
| config/rs6000/eabispe.h, config/rs6000/e500.h, |
| config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h, |
| config/rs6000/netbsd.h, config/rs6000/e500-double.h, |
| config/rs6000/aix.h, config/rs6000/vxworks.h, |
| config/rs6000/40x.md, config/rs6000/aix51.h, |
| config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md, |
| config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def, |
| config/arc/arc.h, config/mcore/mcore-elf.h, |
| config/mcore/mcore-protos.h, config/mcore/predicates.md, |
| config/mcore/mcore.md, config/mcore/mcore.c, |
| config/mcore/mcore.opt, config/mcore/mcore.h, |
| config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h, |
| config/score/predicates.md, config/score/score-version.h, |
| config/score/score-protos.h, config/score/misc.md, |
| config/score/elf.h, config/score/score.c, config/score/mac.md, |
| config/score/score7.md, config/score/score.h, |
| config/score/score-conv.h, config/score/score-mdaux.c, |
| config/score/score.md, config/score/score.opt, |
| config/score/score-modes.def, config/score/score-mdaux.h, |
| config/score/mul-div.S, config/arm/uclinux-elf.h, |
| config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md, |
| config/arm/symbian.h, config/arm/linux-elf.h, |
| config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, |
| config/arm/elf.h, config/arm/aout.h, config/arm/arm.c, |
| config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h, |
| config/arm/strongarm-pe.h, config/arm/arm.h, |
| config/arm/cortex-a8-neon.md, config/arm/semiaof.h, |
| config/arm/cortex-a8.md, config/arm/uclinux-eabi.h, |
| config/arm/arm-modes.def, config/arm/linux-eabi.h, |
| config/arm/rtems-elf.h, config/arm/neon-schedgen.ml, |
| config/arm/arm-cores.def, config/arm/arm-protos.h, |
| config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h, |
| config/arm/wince-pe.h, config/arm/neon.md, |
| config/arm/constraints.md, config/arm/neon.ml, |
| config/arm/xscale-elf.h, config/arm/strongarm-coff.h, |
| config/arm/arm.opt, config/arm/arm926ejs.md, |
| config/arm/predicates.md, config/arm/iwmmxt.md, |
| config/arm/arm_neon.h, config/arm/unknown-elf.h, |
| config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt, |
| config/arm/neon-testgen.ml, config/arm/arm.md, |
| config/arm/xscale-coff.h, config/arm/pe.c, |
| config/arm/arm-generic.md, config/arm/pe.h, |
| config/arm/kaos-strongarm.h, config/arm/freebsd.h, |
| config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md, |
| config/arm/strongarm-elf.h, config/arm/cirrus.md, |
| config/arm/netbsd-elf.h, config/arm/vxworks.h, |
| config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c, |
| config/pa/predicates.md, config/pa/pa64-hpux.h, |
| config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt, |
| config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h, |
| config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h, |
| config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h, |
| config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, |
| config/pa/pa-hpux1010.h, config/pa/pa-protos.h, |
| config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h, |
| config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h, |
| config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt, |
| config/pa/pa64-regs.h, config/pa/pa-modes.def, |
| config/pa/constraints.md, config/darwin9.h, config/mips/4100.md, |
| config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h, |
| config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h, |
| config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md, |
| config/mips/7000.md, config/mips/9000.md, config/mips/4600.md, |
| config/mips/linux64.h, config/mips/elforion.h, |
| config/mips/constraints.md, config/mips/generic.md, |
| config/mips/predicates.md, config/mips/4300.md, |
| config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md, |
| config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md, |
| config/mips/5k.md, config/mips/vr4120-div.S, |
| config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md, |
| config/mips/mips-protos.h, config/mips/6000.md, |
| config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h, |
| config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h, |
| config/mips/mips-modes.def, config/mips/vr.h, |
| config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h, |
| config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h, |
| config/vax/vax.h, config/vax/elf.h, config/vax/vax.md, |
| config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def, |
| config/vax/openbsd1.h, config/vax/netbsd.h, |
| config/vax/vax-protos.h, config/vax/netbsd-elf.h, |
| config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h, |
| config/h8300/rtems.h, config/h8300/predicates.md, |
| config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h, |
| config/h8300/h8300.md, config/h8300/h8300.opt, |
| config/h8300/coff.h, config/h8300/h8300-protos.h, |
| config/v850/v850.md, config/v850/predicates.md, |
| config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt, |
| config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c, |
| config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h, |
| config/mmix/mmix.h, config/mmix/predicates.md, |
| config/mmix/mmix-protos.h, config/mmix/mmix.md, |
| config/mmix/mmix.c, config/mmix/mmix.opt, |
| config/mmix/mmix-modes.def, config/bfin/bfin.opt, |
| config/bfin/rtems.h, config/bfin/bfin-modes.def, |
| config/bfin/predicates.md, config/bfin/bfin-protos.h, |
| config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md: |
| Likewise. |
| |
| 2007-08-02 Richard Sandiford <richard@codesourcery.com> |
| |
| * emit-rtl.c (reset_used_decls): Rename to... |
| (set_used_decls): ...this. Set the used flag rather than clearing it. |
| (unshare_all_rtl_again): Update accordingly. Set flags on argument |
| DECL_RTLs rather than resetting them. |
| |
| 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg. |
| |
| 2007-08-01 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * reload.c (find_reloads_address_part): Pass correct MEMREFLOC |
| argument to find_reloads_address. |
| |
| 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| PR tree-optimization/32919 |
| * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs. |
| * tree-ssa-coalesce.c (ssa_conflicts_dump): New. |
| (coalesce_ssa_name): Call it. |
| |
| 2007-08-01 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New. |
| (__mips16_unorddf2, __mips16_floatunsidf): New. |
| * config/mips/mips.c (mips_init_libfuncs): Add optab entries for |
| above functions. |
| * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions. |
| |
| 2007-08-01 Zdenek Dvorak <ook@ucw.cz> |
| |
| * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH. |
| Display new operands of OMP_SECTIONS and OMP_CONTINUE. |
| * tree.h (OMP_SECTIONS_CONTROL): New macro. |
| (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH. |
| * omp-low.c (get_ws_args_for, determine_parallel_type, |
| expand_omp_for_generic, expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections): |
| Work with more precise CFG. |
| (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH. |
| (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to |
| OMP_CONTINUE. |
| * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH. |
| * gimple-low.c (lower_stmt): Ditto. |
| * tree-inline.c (estimate_num_insns_1): Ditto. |
| * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands. |
| (OMP_SECTIONS_SWITCH): New. |
| * tree-cfgcleanup.c (cleanup_omp_return): New. |
| (cleanup_tree_cfg_bb): Call cleanup_omp_return. |
| * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE |
| and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH. |
| (tree_redirect_edge_and_branch): Handle omp constructs. |
| |
| * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS |
| with three arguments. |
| |
| 2007-08-01 Zdenek Dvorak <ook@ucw.cz> |
| |
| * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only |
| in loop closed ssa. |
| |
| 2007-08-01 Zdenek Dvorak <ook@ucw.cz> |
| |
| * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that |
| the loop structures may need fixing. |
| * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures): |
| New functions. |
| (cleanup_tree_cfg_loop): Removed. |
| (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures. |
| * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg |
| instead of running cleanup_tree_cfg_loop. |
| * cfgloop.h (LOOPS_NEED_FIXUP): New constant. |
| * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed. |
| (tree_predictive_commoning): Declaration changed. |
| * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop. |
| |
| 2007-08-01 Zdenek Dvorak <ook@ucw.cz> |
| |
| * doc/invoke.texi (l1-cache-size): Update documentation. |
| (l2-cache-size): Document. |
| * params.h (L2_CACHE_SIZE): New macro. |
| * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect |
| that L1_CACHE_SIZE is in kB now. |
| (L2_CACHE_SIZE_BYTES): New macro. |
| (tree_ssa_prefetch_arrays): Show size in kB. |
| * config/i386/i386.h (struct processor_costs): Add l1_cache_size |
| and l2_cache_size fields. |
| * config/i386/driver-i386.c (describe_cache): Detect cache size |
| in kB. |
| * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost, |
| pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost, |
| amdfam10_cost, pentium4_cost, nocona_cost, core2_cost, |
| generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size. |
| (override_options): Set l1-cache-size and l2-cache-size to default |
| values if not specified otherwise. |
| * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB. |
| (PARAM_L2_CACHE_SIZE): New. |
| |
| 2007-08-01 Nigel Stephens <nigel@mips.com> |
| David Ung <davidu@mips.com> |
| Thiemo Seufer <ths@mips.com> |
| Chris Dearman <chris@mips.com> |
| Richard Sandiford <richard@codesourcery.com> |
| |
| * config.gcc (mips*-sde-elf*): New stanza. |
| (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) |
| (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) |
| (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*) |
| (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*) |
| (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss) |
| (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16 |
| to tmake_file. |
| * config/mips/sde.h: New file. |
| * config/mips/t-libgcc-mips16: Likewise. |
| * config/mips/t-sde: Likewise. |
| * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings |
| of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR, |
| _MIPS_FPSET and _MIPS_SZINT. |
| * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise. |
| * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate |
| insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC. |
| * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete. |
| * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. |
| * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. |
| * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32, |
| _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG, |
| _MIPS_SZPTR and _MIPS_FPSET. |
| (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no |
| architecture is specified. |
| (MIPS_32BIT_OPTION_SPEC): New macro. |
| |
| 2007-07-31 Dan Hipschman <dsh@google.com> |
| |
| * gcc.c (end_going_arg): New function. |
| (do_spec_2): Use it. |
| (do_spec_1): Use it. |
| |
| 2007-07-31 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * ddg.c (add_cross_iteration_register_deps): Declare bb_info |
| only if ENABLE_CHECKING is defined. |
| |
| 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru, |
| df_ru_add_problem, df_ru_get_bb_info): Removed. |
| (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered. |
| * df-problems.c (df_ru_problem_data, df_ru_set_bb_info, |
| df_ru_free_bb_info, df_ru_alloc, |
| df_ru_bb_local_compute_process_def, |
| df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, |
| df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, |
| df_ru_transfer_function, df_ru_free, df_ru_start_dump, |
| df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU, |
| df_ru_add_problem): Removed. |
| |
| 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/32847 |
| * pa.md (casesi32): Use match_scratch. Revise insn condition. |
| (casesi32p, casesi64p): Likewise. |
| (casesi): Adjust for above. |
| |
| 2007-07-31 Richard Sandiford <richard@codesourcery.com> |
| |
| * mode-switching.c (create_pre_exit): Don't search past calls. |
| |
| 2007-07-31 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test. |
| |
| 2007-07-31 Revital Eres <eres@il.ibm.com> |
| |
| * ddg.c (add_deps_for_def): Rename to... |
| (add_cross_iteration_register_deps): This. Change implementation |
| to use only reaching def and def-use chains to construct the |
| inter loop dependencies. |
| (add_deps_for_use): Remove function. |
| (build_inter_loop_deps): Call add_cross_iteration_register_deps |
| function to build the inter loop dependencies. |
| * modulo-sched.c (sms_schedule): Build only |
| reaching def and def-use chains for the propose of the ddg |
| construction. |
| |
| 2007-07-31 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal): |
| New define_insns. Use correct RTL. |
| (vec_set<mode>): Write as expander. |
| |
| 2007-07-31 Razya Ladelsky <razya@il.ibm.com> |
| |
| * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring |
| to an unallocated space. |
| |
| 2007-07-30 Jan Sjodin <jan.sjodin@amd.com> |
| |
| * tree-data-ref.c |
| (split_constant_offset): Enable split_constant_offset to extract |
| constants from other statements. |
| * tree-vect-transform.c |
| (vect_create_addr_base_for_vector_ref): Generate data_ref_base |
| to a temp var. Force base_offset to be simple. |
| |
| 2007-07-30 Seongbae Park <seongbae.park@gmail.com> |
| |
| * df-scan.c (df_scan_verify): Remove artificial limit on |
| the number of blocks for verification. |
| * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs, |
| df_simulate_defs): Avoid unnecessary insn checking for defs. |
| |
| 2007-07-29 Mark Mitchell <mark@codesourcery.com> |
| |
| * config/m68k/lb1sf68.asm (FUNC): New macro. |
| (__mulsi3): Use it. |
| (__udivsi3): Likewise. |
| (__divsi3): Likewise. |
| (__umodsi3): Likewise. |
| (__modsi3): Likewise. |
| (__subdf3): Likewise. |
| (__adddf3): Likewise. |
| (__muldf3): Likewise. |
| (__divdf3): Likewise. |
| (__negdf2): Likewise. |
| (__cmpdf2): Likewise. |
| (__subsf3): Likewise. |
| (__addsf3): Likewise. |
| (__mulsf3): Likewise. |
| (__divsf3): Likewise. |
| (__negsf2): Likewise. |
| (__cmpsf2): Likewise. |
| (__eqdf2): Likewise. |
| (__nedf2): Likewise. |
| (__gtdf2): Likewise. |
| (__gedf2): Likewise. |
| (__ltdf2): Likewise. |
| (__ledf2): Likewise. |
| (__eqsf2): Likewise. |
| (__nesf2): Likewise. |
| (__gtsf2): Likewise. |
| (__gesf2): Likewise. |
| (__ltsf2): Likewise. |
| (__lesf2): Likewise. |
| |
| 2007-07-30 Ollie Wild <aaw@google.com> |
| |
| * c-ppoutput.c (print_lines_directives_only): New function. |
| (scan_translation_unit_directives_only): New function. |
| (preprocess_file): Add call to scan_translation_unit_directives_only. |
| * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only. |
| (sanitize_cpp_opts): Add default flag_dump_macros setting for |
| -fdirectives-only. Add errors for -fdirectives-only conflict with |
| -Wunused-macros and -traditional. |
| (finish_options): Add builtin macro initialization for |
| -fdirectives-only + -fpreprocessed. |
| * c.opt (fdirectives-only): New. |
| * doc/cppopts.texi (fdirectives-only): New. |
| |
| 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (record_set, memory_modified_1): Constify. |
| * bt-load.c (note_btr_set): Likewise. |
| * caller-save.c (mark_set_regs, add_stored_regs): Likewise. |
| * combine.c (set_nonzero_bits_and_sign_copies, |
| expand_field_assignment, record_dead_and_set_regs_1, |
| use_crosses_set_p, reg_dead_at_p_1, can_combine_p, |
| likely_spilled_retval_1): Likewise. |
| * config/frv/frv.c (frv_registers_update_1, frv_io_check_address, |
| frv_io_handle_set): Likewise. |
| * config/mips/mips.c (mips_sim_record_set, |
| vr4130_true_reg_dependence_p_1): Likewise. |
| * config/mt/mt.c (insn_dependent_p_1): Likewise. |
| * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. |
| * config/sh/sh.c (flow_dependent_p_1): Likewise. |
| * cselib.c (cselib_invalidate_rtx_note_stores): Likewise. |
| * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise. |
| * ddg.c (mark_mem_store): Likewise. |
| * df-problems.c (df_urec_mark_reg_change): Likewise. |
| * function.c (update_epilogue_consts): Likewise. |
| * gcse.c (record_set_info, record_last_set_info, |
| mems_conflict_for_gcse_p, canon_list_insert, reg_set_info, |
| reg_clear_last_set): Likewise. |
| * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live): |
| Likewise. |
| * jump.c (reversed_comparison_code_parts): Likewise. |
| * local-alloc.c (validate_equiv_mem_from_store, no_equiv, |
| reg_is_set): Likewise. |
| * loop-iv.c (mark_altered): Likewise. |
| * mode-switching.c (reg_becomes_live): Likewise. |
| * optabs.c (no_conflict_move_test): Likewise. |
| * postreload-gcse.c (record_last_set_info, find_mem_conflicts): |
| Likewise. |
| * postreload.c (reload_combine_note_store, move2add_note_store): |
| Likewise. |
| * regmove.c (flags_set_1): Likewise. |
| * regrename.c (note_sets, kill_clobbered_value, kill_set_value): |
| Likewise. |
| * reload1.c (mark_not_eliminable, forget_old_reloads_1): |
| Likewise. |
| * resource.c (update_live_status): Likewise. |
| * rtl.h (set_of, note_stores): Likewise. |
| * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of, |
| note_stores, parms_set): Likewise. |
| * sched-rgn.c (sets_likely_spilled_1): Likewise. |
| * stack-ptr-mod.c (notice_stack_pointer_modification_1): |
| Likewise. |
| * var-tracking.c (count_stores, add_stores): Likewise. |
| |
| 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (mems_in_disjoint_alias_sets_p, |
| fixed_scalar_and_varying_struct_p, aliases_everything_p, |
| nonoverlapping_component_refs_p, nonoverlapping_memrefs_p, |
| write_dependence_p, mems_in_disjoint_alias_sets_p, |
| read_dependence, true_dependence, canon_true_dependence, |
| anti_dependence, output_dependence): Constify. |
| * combine.c (extended_count): Likewise. |
| * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise. |
| * cselib.c (get_value_hash, references_value_p, |
| cselib_reg_set_mode, cselib_rtx_varies_p): Likewise. |
| * cselib.h (cselib_reg_set_mode, references_value_p): Likewise. |
| * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise. |
| * function.c (contains, prologue_epilogue_contains, |
| sibcall_epilogue_contains): Likewise. |
| * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p, |
| pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p, |
| only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum, |
| reg_or_subregno): Likewise. |
| * recog.c (asm_noperands): Likewise. |
| * reload1.c (function_invariant_p): Likewise. |
| * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p, |
| rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx, |
| condjump_p, any_condjump_p, any_uncondjump_p, pc_set, |
| simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p, |
| true_regnum, reg_or_subregno, condjump_in_parallel_p, |
| extended_count, prologue_epilogue_contains, |
| sibcall_epilogue_contains, function_invariant_p, true_dependence, |
| canon_true_dependence, read_dependence, anti_dependence, |
| output_dependence): Likewise. |
| * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise. |
| |
| 2007-07-30 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/neon.md (V_ext): New mode attribute. |
| (neon_vget_lane<mode>): Replace with define_expand. |
| (neon_vget_lane<mode>_sext_internal) |
| (neon_vget_lane<mode>_zext_internal): New define_insns for double |
| and quad precision vectors. |
| (neon_vget_lanedi): Add bounds check. Remove dead comment. |
| * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics |
| have typeless 32-bit result. |
| |
| 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/32527 |
| * tree-affine.h (aff_tree): The type of rest is sizetype for types |
| of pointers. |
| * tree-affine.c (aff_combination_scale): If type is a pointer type, |
| use sizetype for rest. |
| (aff_combination_add_elt): Likewise. Don't specialize pointer types. |
| (aff_combination_convert): Don't convert rest for pointer types. |
| |
| 2007-07-28 Daniel Berlin <dberlin@dberlin.org> |
| |
| * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h |
| |
| * tree-ssa-alias.c: Add alloc-pool.h. |
| (init_alias_info): Free alias_bitmap_obstack. |
| (delete_alias_info): Call delete_mem_ref_stats. |
| (get_mem_sym_stats_for): Use alloc_pool. |
| (init_mem_ref_stats): Do not delete mem_ref_stats here. |
| (delete_mem_sym_stats): Removed. |
| |
| 2007-07-29 Sebastian Pop <sebpop@gmail.com> |
| |
| * tree-data-ref.c (add_multivariate_self_dist): Parametric access |
| functions cannot be represented as classical distance vectors. |
| |
| 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * attribs.c (hash_attr, eq_attr, init_attributes): Constify. |
| * builtins.c (validate_arg, builtin_mathfn_code, |
| validate_arglist): Likewise. |
| * calls.c (call_expr_flags): Likewise. |
| * combine.c (reg_nonzero_bits_for_combine, |
| reg_num_sign_bit_copies_for_combine, get_last_value, |
| reg_truncated_to_mode): Likewise. |
| * emit-rtl.c (subreg_lowpart_p): Likewise. |
| * expr.c (highest_pow2_factor_for_target, |
| categorize_ctor_elements_1, categorize_ctor_elements, |
| count_type_elements, contains_packed_reference, |
| highest_pow2_factor, highest_pow2_factor_for_target): Likewise. |
| * fold-const.c (may_negate_without_overflow_p, int_const_binop, |
| fold_convertible_p, operand_equal_p, tree_swap_operands_p, |
| native_encode_int, native_encode_real, native_encode_complex, |
| native_encode_vector, native_encode_expr, native_interpret_int, |
| native_interpret_real, native_interpret_complex, |
| native_interpret_vector, native_interpret_expr): Likewise. |
| * function.c (use_register_for_decl): Likewise. |
| * gimplify.c (get_name): Likewise. |
| * langhooks-def.h (lhd_return_null_const_tree): New. |
| (LANG_HOOKS_GET_CALLEE_FNDECL): Use it. |
| * langhooks.c (lhd_return_null_const_tree): New. |
| * langhooks.h (lang_get_callee_fndecl): Constify. |
| * output.h (constructor_static_from_elts_p): Likewise. |
| * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise. |
| * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode, |
| subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise. |
| * rtlanal.c (cached_nonzero_bits, nonzero_bits1, |
| cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p, |
| nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise. |
| * rtlhooks-def.h (reg_nonzero_bits_general, |
| reg_num_sign_bit_copies_general, reg_truncated_to_mode_general): |
| Likewise. |
| * rtlhooks.c (reg_num_sign_bit_copies_general, |
| reg_nonzero_bits_general, reg_truncated_to_mode_general): |
| Likewise. |
| * stmt.c (warn_if_unused_value, is_body_block): Likewise. |
| * stor-layout.c (mode_for_size_tree): Likewise. |
| * tree-ssa-loop-im.c (memref_eq): Likewise. |
| * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise. |
| * tree.c (contains_placeholder_p, type_list_equal, |
| simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p): |
| Likewise. |
| * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p, |
| mode_for_size_tree, categorize_ctor_elements, count_type_elements, |
| contains_placeholder_p, contains_packed_reference, |
| get_callee_fndecl, operand_equal_for_phi_arg_p, |
| warn_if_unused_value, is_body_block, native_encode_expr, |
| native_interpret_expr, fold_convertible_p, operand_equal_p, |
| int_const_binop, tree_swap_operands_p, builtin_mathfn_code, |
| validate_arglist, simple_cst_equal, type_list_equal, |
| use_register_for_decl, call_expr_flags, get_name, |
| highest_pow2_factor): Likewise. |
| (const_call_expr_arg_iterator_d, |
| init_const_call_expr_arg_iterator, next_const_call_expr_arg, |
| first_const_call_expr_arg, more_const_call_expr_args_p, |
| FOR_EACH_CONST_CALL_EXPR_ARG): New. |
| * varasm.c (constructor_static_from_elts_p): Constify. |
| |
| 2007-07-28 Kazu Hirata <kazu@codesourcery.com> |
| |
| * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md, |
| config/arm/neon-schedgen.ml, config/arm/neon.ml, |
| config/arm/vec-common.md, config/ia64/div.md, cselib.c, |
| df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c, |
| regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c, |
| tree-vect-transform.c, tree.def: Fix comment typos. Follow |
| spelling conventions. |
| * doc/invoke.texi: Follow spelling conventions. |
| |
| 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * modulo-sched.c (sms_schedule): Avoid loops which includes |
| auto-increment instructions. |
| |
| 2007-07-28 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32920 |
| * fold-const.c (fold_cond_expr_with_comparison): Convert |
| operand zero of MIN/MAX_EXPR to correct type. |
| |
| 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * calls.c (special_function_p, setjmp_call_p, alloca_call_p, |
| flags_from_decl_or_type): Constify. |
| * gcc.c (do_spec_1): Likewise. |
| * print-tree.c (dump_addr, print_node_brief): Likewise. |
| * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p, |
| simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p, |
| tree_purge_all_dead_eh_edges): Likewise. |
| * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p, |
| tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges): |
| Likewise. |
| * tree.c (expr_location, expr_has_location, expr_locus, |
| expr_filename, expr_lineno, get_inner_array_type, |
| fields_compatible_p): Likewise. |
| * tree.h (get_inner_array_type, fields_compatible_p, |
| expr_location, expr_has_location, expr_locus, expr_filename, |
| expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type, |
| setjmp_call_p, alloca_call_p): Likewise. |
| |
| 2007-07-28 Daniel Berlin <dberlin@dberlin.org> |
| |
| * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE, |
| TV_FLOW_INSENSITIVE. |
| |
| * tree-ssa-alias.c (compute_call_clobbered): Push/pop |
| TV_CALL_CLOBBER. |
| (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE. |
| (compute_flow_insensitive_aliasing): Ditto for |
| TV_FLOW_INSENSITIVE. |
| |
| 2007-07-27 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.c (register_move_cost): Remove accidentally |
| comitted #if 0 block. |
| |
| * attribs.c: Include hashtab.h |
| (attribute_hash): New. |
| (substring): New structure. |
| (extract_attribute_substring, substring_hash, hash_attr, eq_attr): |
| New function. |
| (init_attributes): Initialize attribute hash. |
| (decl_attributes): Use attribute hash. |
| * Makefile.in (attribs.c): Depend on hashtab.h. |
| |
| 2007-07-27 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test. |
| |
| 2007-07-27 Richard Sandiford <richard@codesourcery.com> |
| |
| * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp, |
| __mips_dspr2 and __mips_dsp_rev macros. |
| * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev. |
| |
| 2007-07-27 Douglas Gregor <doug.gregor@gmail.com> |
| |
| * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X. |
| |
| 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/32749 |
| |
| * df-problems.c (df_create_unused_note): Removed do_not_gen parm |
| and the updating of the live and do_not_gen sets. |
| (df_note_bb_compute): Added updating of live and do_not_gen sets |
| for regular defs so that the case of clobber inside conditional |
| call is processed correctly. |
| |
| 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the |
| operands with compatible type. |
| |
| 2007-07-27 Richard Sandiford <richard@codesourcery.com> |
| |
| * expr.h (store_bit_field): Don't return a value. |
| * expmed.c (check_predicate_volatile_ok): New function. |
| (store_bit_field_1): New function, extracted from store_bit_field. |
| Take a fallback_p argument and return true if the operation succeeded. |
| Only use store_fixed_bit_field if fallback_p. Don't recompute |
| mode_for_extraction; use op_mode instead. Try forcing memories |
| into registers if the insv expander fails. |
| (store_bit_field): Use store_bit_field_1 with fallback_p true. |
| Don't return a value. |
| (convert_extracted_bit_field): New function, extracted from |
| store_bit_field. |
| (extract_bit_field_1): Likewise. Take a fallback_p argument |
| and return NULL if the operation succeeded. Only use |
| extract_fixed_bit_field if fallback_p. Only calculate one |
| extraction mode. Combine code for extv and extzv. Try forcing |
| memories into registers if the ext(z)v expander fails. |
| (extract_bit_field): Use extract_bit_field_1 with fallback_p true. |
| |
| 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags |
| into bitfields. |
| (df_ref): Likewise. Put regno with other integer fields. |
| |
| 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * df.h (df_mw_hardreg): Remove "loc" field. |
| * df-scan.c (df_ref_record): Don't set it. Remove redundant |
| local variable. |
| * df-problems.c (df_whole_mw_reg_unused_p): New function, |
| split out from df_set_unused_notes_for_mw. Return false for |
| partial references. Assert that mw_reg is a REG when returning true. |
| (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc. |
| (df_whole_mw_reg_dead_p): New function, split out from |
| df_set_dead_notes_for_mw. Return false for partial references. |
| Assert that mw_reg is a REG when returning true. |
| (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc. |
| Remove redundant bitmap check. |
| |
| 2007-07-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/ia64/t-ia64 ($(T)crtbegin.o): Removed. |
| ($(T)crtend.o): Likwise. |
| ($(T)crtbeginS.o): Likwise. |
| ($(T)crtendS.o): Likwise. |
| ($(T)crtfastmath.o): Likwise. |
| |
| 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed. |
| * function.h (dom_computed, n_bbs_in_dom_tree): New macros. |
| * basic-block.h (struct control_flow_graph): Added x_dom_computed |
| and x_n_bbs_in_dom_tree fields. |
| |
| 2007-07-26 Steve Ellcey <sje@cup.hp.com> |
| |
| PR tree-optimization/32087 |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): |
| Do not call scale_bbs_frequencies_int with prob of zero. |
| |
| 2007-07-26 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds) |
| (neon_element_bits): Add prototypes. |
| * config/arm/arm.c (bounds_check, neon_lane_bounds) |
| (neon_const_bounds, neon_element_bits): New functions. |
| * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi) |
| (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi) |
| (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi) |
| (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>) |
| (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>) |
| (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>) |
| (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>) |
| (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>) |
| (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>) |
| (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>) |
| (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>) |
| (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>) |
| (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks. |
| |
| 2007-07-26 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo. |
| (HAVE_AS_GNU_ATTRIBUTE): Undefine. |
| |
| 2007-07-26 Mark Shinwell <shinwell@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New. |
| * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New. |
| * config/arm/cortex-a8.md: New. |
| * config/arm/cortex-a8-neon.md: New. |
| * config/arm/neon-schedgen.ml: New. |
| * config/arm/neon.md (vqh_mnem): New. |
| (neon_type): New. |
| (Is_float_mode): New. |
| (Scalar_mul_8_16): New. |
| (Is_d_reg): New. |
| (V_mode_nunits): New. |
| (All instruction patterns): Annotate with neon_type attribute |
| values. |
| * config/arm/arm.md: Include cortex-a8.md. |
| (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab |
| values. |
| Annotate instruction patterns accordingly. |
| (generic_sched): Do not use generic scheduling for Cortex-A8. |
| (generic_vfp): Do not use generic VFP scheduling for Cortex-A8. |
| |
| 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * fold-const.c (fold_read_from_constant_string): Use |
| build_int_cst_type. |
| * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. |
| |
| 2007-07-26 Nick Clifton <nickc@redhat.com> |
| |
| * tree-ssa-operands.h: Change copyright header to refer to version |
| 3 of the GNU General Public License and to point readers at the |
| COPYING3 file and the FSF's license web page. |
| * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c, |
| sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c, |
| tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c, |
| targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h, |
| tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c, |
| hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c, |
| flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c, |
| opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c, |
| gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c, |
| cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c, |
| rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c, |
| optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c, |
| tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h, |
| genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c, |
| reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c, |
| c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c, |
| rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h, |
| tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h, |
| diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c, |
| gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c, |
| input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def, |
| gensupport.h, builtin-attrs.def, sync-builtins.def, params.c, |
| cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c, |
| graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c, |
| genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c, |
| tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h, |
| reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h, |
| real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c, |
| omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h, |
| tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c, |
| regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h, |
| tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c, |
| scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c, |
| double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h, |
| dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c, |
| gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c, |
| hosthooks.h, c-objc-common.h, caller-save.c, graph.c, |
| ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c, |
| c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h, |
| tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c, |
| xcoffout.h, tree-ssa-propagate.c, ipa-utils.c, |
| tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h, |
| gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c, |
| mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c, |
| alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c, |
| dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h, |
| expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h, |
| genattrtab.c, genconditions.c, genattr.c, optc-gen.awk, |
| timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c, |
| tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c, |
| recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c, |
| dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h, |
| matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c, |
| tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c, |
| lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h, |
| ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c, |
| ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h, |
| langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h, |
| sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c, |
| gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c, |
| ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c, |
| init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c, |
| loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c, |
| mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h, |
| opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in, |
| insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c, |
| tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def, |
| dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c, |
| bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c, |
| coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h, |
| stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c, |
| cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c, |
| tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c, |
| loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c, |
| lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c, |
| tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c, |
| tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt, |
| ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c, |
| varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c, |
| sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c, |
| target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c, |
| omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h, |
| intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c, |
| sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h, |
| genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c, |
| tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h, |
| bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c, |
| cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c, |
| cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk, |
| tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c, |
| c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c, |
| fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c, |
| vecprim.h, basic-block.h, tree-ssa-structalias.c, |
| tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c, |
| passes.c, genconstants.c, c-incpath.c, c-incpath.h, |
| struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c, |
| varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h, |
| reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y, |
| stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h, |
| params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h, |
| tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c, |
| convert.c, convert.h, langhooks-def.h, reload1.c, |
| tree-ssa-operands.c: Likewise. |
| |
| 2007-07-26 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-live.c: Include debug.h and flags.h. |
| (mark_scope_block_unused): New function. |
| (remove_unused_scope_block_p): New function. |
| (remove_unused_locals): Remove unused blocks too. |
| |
| 2007-07-25 Ian Lance Taylor <iant@google.com> |
| |
| * combine.c (combine_max_regno): Remove. Remove all uses. |
| (struct reg_stat_struct): Rename from struct reg_stat. |
| (reg_stat_type): Define, and declare VECs. |
| (reg_stat): Change from pointer to VEC. Change all uses. |
| (combine_split_insns): New static function. |
| (try_combine, find_split_point): Call it instead of split_insns. |
| |
| 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * cfghooks.c (split_block): Fix the information about loop latch. |
| |
| 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches. |
| |
| 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): |
| Scan the new edge for loop exit info. |
| |
| 2007-07-25 Andreas Tobler <a.tobler@schweiz.org> |
| |
| * config/darwin.c: Include debug.h. |
| |
| 2007-07-25 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/32218 |
| * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type. |
| |
| 2007-07-25 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode. |
| (HARD_REGNO_MODE_OK): Ditto. |
| (MODES_TIEABLE_P): Ditto. |
| (HARD_REGNO_CALLER_SAVE_MODE): Ditto. |
| (CLASS_MAX_NREGS): Ditto. |
| * config/ia64/ia64.c (ia64_print_operand_address): Add R format. |
| * config/ia64/ia64.md (divsf3_internal_thr): Removed. |
| (divdf3_internal_thr): Removed. |
| * config/ia64/div.md: New file. |
| * config/ia64/constraints.md: Add H constraint. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount, |
| sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p, |
| sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not, |
| sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg, |
| sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b, |
| sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p, |
| sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c, |
| sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c, |
| sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap, |
| dump_sbitmap_file, debug_sbitmap, popcount_table, |
| sbitmap_popcount): Constify. |
| * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New. |
| (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap, |
| dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal, |
| sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg, |
| sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c, |
| sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c, |
| sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b, |
| sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg, |
| sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p, |
| sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap, |
| sbitmap_popcount, sbitmap_verify_popcount): Constify. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop, |
| bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits, |
| bitmap_first_set_bit, bitmap_and, bitmap_and_into, |
| bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, |
| bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, |
| bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p, |
| bitmap_intersect_p, bitmap_intersect_compl_p, |
| bitmap_ior_and_compl, bitmap_ior_and_compl_into, |
| debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash): |
| Constify. |
| * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p, |
| bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and, |
| bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into, |
| bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor, |
| bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into, |
| debug_bitmap, debug_bitmap_file, bitmap_print, |
| bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init, |
| bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. |
| |
| 2007-07-25 Daniel Berlin <dberlin@dberlin.org> |
| |
| * config/darwin.c (darwin_override_options): Additional fix for |
| debug info formats that don't support var tracking. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * cselib.c (entry_and_rtx_equal_p): Constify. |
| * gengtype.c (output_mangled_typename, write_types, write_local): |
| Likewise. |
| * gengtype.h (const_type_p): New. |
| * see.c (eq_descriptor_extension, hash_descriptor_extension): |
| Constify. |
| * tlink.c (scan_linker_output): De-constify. |
| * tree-ssa-loop-im.c (memref_eq): Constify. |
| * tree-ssa-structalias.c (const_shared_bitmap_info_t): New. |
| (shared_bitmap_hash, shared_bitmap_eq): Constify. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-common.c (fname_as_string, c_type_hash): Constify. |
| * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. |
| * cgraph.c (edge_hash, edge_eq): Likewise. |
| * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise. |
| * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash, |
| reg_attrs_htab_eq): Likewise. |
| * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq): |
| Likewise. |
| * genautomata.c (const_reserv_sets_t, const_unit_decl_t, |
| const_decl_t, const_state_t, const_automata_list_el_t): New. |
| (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, |
| DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, |
| automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash, |
| insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp, |
| reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p, |
| automata_list_hash, automata_list_eq_p, compare_states_for_equiv, |
| compare_max_occ_cycle_nums, out_state_arcs_num, |
| compare_transition_els_num, units_cmp, state_reservs_cmp): |
| Constify. |
| * genmodes.c (cmp_modes): Likewise. |
| * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise. |
| * gimplify.c (compare_case_labels): Likewise. |
| * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise. |
| * loop-unroll.c (si_info_hash, ve_info_hash): Likewise. |
| * matrix-reorg.c (mtt_info_hash): Likewise. |
| * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise. |
| * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New. |
| (htab_hash_bucket, htab_hash_elem): Constify. |
| * tree-browser.c (TB_parent_eq): Likewise. |
| * tree-scalar-evolution.c (hash_scev_info): Likewise. |
| * tree-ssa-alias.c (sort_tags_by_id): Likewise. |
| * tree-ssa-coalesce.c (const_coalesce_pair_p): New. |
| (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs): |
| Constify. |
| * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise. |
| * tree-ssa-pre.c (const_expr_pred_trans_t): New. |
| (expr_pred_trans_hash, expr_pred_trans_eq): Constify. |
| * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t, |
| const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t): |
| New. |
| (vn_reference_op_eq, vn_reference_hash, vn_reference_eq, |
| vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash, |
| vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify. |
| * tree-ssa-threadupdate.c (redirection_data_hash, |
| redirection_data_eq): Likewise. |
| * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise. |
| * tree-ssa.c (var_ann_eq): Likewise. |
| * tree-vrp.c (compare_case_labels): Likewise. |
| * tree.c (int_cst_hash_hash, int_cst_hash_eq, |
| tree_map_base_marked_p, type_hash_marked_p, tree_check_failed, |
| tree_not_check_failed, tree_class_check_failed, |
| tree_range_check_failed, tree_not_class_check_failed, |
| omp_clause_check_failed, omp_clause_range_check_failed, |
| tree_contains_struct_check_failed, tree_operand_check_failed): |
| Likewise. |
| * tree.h (tree_contains_struct_check_failed, tree_check_failed, |
| tree_not_check_failed, tree_class_check_failed, |
| tree_range_check_failed, tree_not_class_check_failed, |
| tree_operand_check_failed, omp_clause_operand_check_failed, |
| tree_operand_length): Likewise. |
| * var-tracking.c (const_variable): New. |
| (variable_htab_hash, variable_htab_eq): Constify. |
| * varasm.c (const_desc_hash): Likewise. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * expr.c (handled_component_p): Constify. |
| * fold-const.c (fit_double_type): Likewise. |
| * real.h (real_value_from_int_cst): Likewise. |
| * tree-flow-inline.h (gimple_in_ssa_p, |
| gimple_aliases_computed_p, gimple_addressable_vars, |
| gimple_call_clobbered_vars, gimple_referenced_vars, |
| gimple_global_var, gimple_nonlocal_all, gimple_var_anns, |
| end_htab_p, end_referenced_vars_p, var_ann, function_ann, |
| may_aliases, end_readonly_imm_use_p, has_zero_uses, |
| has_single_use, single_imm_use, num_imm_uses, is_exec_stmt, |
| is_label_stmt, is_global_var, phi_ssa_name_p, |
| factoring_name_p, is_call_clobbered, tree_common_ann, |
| op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p, |
| unmodifiable_var_p, array_ref_contains_indirect_ref, |
| ref_contains_array_ref, lookup_subvars_for_var, |
| var_can_have_subvars, overlap_subvar, gimple_ssa_operands, |
| gimple_mem_ref_stats): Likewise. |
| * tree-flow.h (tree_common_ann, var_ann, function_ann, |
| may_aliases, is_exec_stmt, is_label_stmt, |
| ref_contains_array_ref, array_ref_contains_indirect_ref, |
| var_can_have_subvars, overlap_subvar, is_call_clobbered, |
| unmodifiable_var_p): Likewise. |
| * tree-gimple.c (is_gimple_min_invariant): Likewise. |
| * tree-gimple.h (is_gimple_min_invariant): Likewise. |
| * tree.c (type_hash_list, attribute_hash_list, tree_size, |
| cst_and_fits_in_hwi, real_value_from_int_cst, |
| build_real_from_int_cst, integer_zerop, integer_onep, |
| integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2, |
| tree_floor_log2, real_zerop, real_onep, real_twop, |
| real_minus_onep, really_constant_p, purpose_member, chain_member, |
| list_length, fields_length, int_size_in_bytes, bit_position, |
| int_bit_position, byte_position, int_byte_position, expr_align, |
| array_type_nelts, tree_node_structure, |
| type_contains_placeholder_1, iterative_hash_pointer, |
| is_attribute_with_length_p, is_attribute_p, check_qualified_type, |
| tree_map_base_eq, type_hash_list, type_hash_eq, |
| attribute_hash_list, type_num_arguments, tree_int_cst_equal, |
| tree_int_cst_lt, tree_int_cst_compare, host_integerp, |
| tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn, |
| simple_cst_list_equal, compare_tree_int, iterative_hash_expr, |
| int_fits_type_p, get_containing_scope, decl_function_context, |
| decl_type_context, omp_clause_operand_check_failed, |
| initializer_zerop, int_cst_value, num_ending_zeros): Likewise. |
| * tree.h (omp_clause_operand_check_failed, tree_size, |
| build_real_from_int_cst, array_type_nelts, purpose_member, |
| tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare, |
| host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn, |
| is_attribute_p, check_qualified_type, expr_align, |
| int_size_in_bytes, bit_position, int_bit_position, byte_position, |
| int_byte_position, list_length, fields_length, initializer_zerop, |
| integer_zerop, integer_onep, integer_all_onesp, integer_pow2p, |
| integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros, |
| tree_node_structure, handled_component_p, get_containing_scope, |
| decl_function_context, decl_type_context, real_zerop, |
| type_num_arguments, fit_double_type, really_constant_p, |
| int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr, |
| compare_tree_int, chain_member, simple_cst_list_equal, real_onep, |
| real_twop, real_minus_onep, int_cst_value): Likewise. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * cfglayout.c (insn_scope, insn_line): Constify. |
| * emit-rtl.c (const_int_htab_hash, const_int_htab_eq, |
| const_double_htab_hash, const_double_htab_eq, |
| mem_attrs_htab_hash): Likewise. |
| * loop-iv.c (biv_eq): Likewise. |
| * print-rtl.c (print_rtx, print_decl_name, print_mem_expr, |
| print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range, |
| debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl): |
| Likewise. |
| * rtl-error.c (location_for_asm, diagnostic_for_asm, |
| error_for_asm, warning_for_asm, _fatal_insn, |
| _fatal_insn_not_found): Likewise. |
| * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat, |
| rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1, |
| rtl_check_failed_type2, rtl_check_failed_code1, |
| rtl_check_failed_code2, rtl_check_failed_code_mode, |
| rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise. |
| * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, |
| rtl_check_failed_type2, rtl_check_failed_code1, |
| rtl_check_failed_code2, rtl_check_failed_code_mode, |
| rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND, |
| SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs, |
| shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p, |
| get_pool_mode, insn_line, insn_file, simplify_replace_rtx, |
| mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p, |
| rtx_unstable_p, get_integer_term, get_related_value, |
| offset_within_block_p, reg_mentioned_p, count_occurrences, |
| reg_referenced_p, reg_used_between_p, no_labels_between_p, |
| single_set_2, multiple_sets, set_noop_p, refers_to_regno_p, |
| reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p, |
| find_reg_note, find_regno_note, find_reg_equal_equiv_note, |
| find_constant_src, find_reg_fusage, find_regno_fusage, |
| pure_call_p, remove_note, side_effects_p, volatile_refs_p, |
| volatile_insn_p, may_trap_p, may_trap_after_code_motion_p, |
| may_trap_or_fault_p, inequality_comparisons_p, tablejump_p, |
| computed_jump_p, auto_inc_p, in_expr_list_p, |
| remove_node_from_expr_list, loc_mentioned_in_p, |
| label_is_jump_target_p, reversed_comparison_code_parts, |
| debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find, |
| print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single, |
| print_inline_rtx): Likewise. |
| * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p, |
| computed_jump_p_1, nonzero_bits1, rtx_unstable_p, |
| rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p, |
| get_integer_term, get_related_value, offset_within_block_p, |
| count_occurrences, reg_mentioned_p, no_labels_between_p, |
| reg_used_between_p, reg_referenced_p, single_set_2, |
| multiple_sets, set_noop_p, refers_to_regno_p, |
| reg_overlap_mentioned_p, dead_or_set_p, |
| covers_regno_no_parallel_p, covers_regno_p, |
| dead_or_set_regno_p, find_reg_note, find_regno_note, |
| find_reg_equal_equiv_note, find_constant_src, find_reg_fusage, |
| find_regno_fusage, pure_call_p, remove_note, in_expr_list_p, |
| remove_node_from_expr_list, volatile_insn_p, volatile_refs_p, |
| side_effects_p, may_trap_p_1, may_trap_p, |
| may_trap_after_code_motion_p, may_trap_or_fault_p, |
| inequality_comparisons_p, tablejump_p, computed_jump_p_1, |
| computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb, |
| subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise. |
| * simplify-rtx.c (neg_const_int, plus_minus_operand_p, |
| mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p): |
| Likewise. |
| * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm, |
| warning_for_asm): Likewise. |
| * tree.h (print_rtl): Likewise. |
| * varasm.c (get_pool_mode): Likewise. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-lex.c (c_lex_with_flags, lex_string): Constify. |
| * c-ppoutput.c (print_line, pp_dir_change): Likewise. |
| * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. |
| * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise. |
| * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise. |
| * ddg.c (compare_sccs): Likewise. |
| * df-scan.c (df_ref_compare, df_mw_compare): Likewise. |
| * dfp.c (decimal_real_from_string, decimal_to_decnumber, |
| decimal_to_binary, decimal_do_compare, decimal_real_to_decimal, |
| decimal_do_fix_trunc, decimal_real_to_integer, |
| decimal_real_to_integer2, decimal_real_maxval): Likewise. |
| * dse.c (const_group_info_t): New. |
| (invariant_group_base_eq, invariant_group_base_hash): Constify. |
| * dwarf2out.c (const_dw_die_ref): New. |
| (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify. |
| * tree-browser.c (TB_parent_eq): Likewise. |
| * unwind-dw2-fde.c (__register_frame_info_bases, |
| __deregister_frame_info_bases, fde_unencoded_compare, fde_split, |
| add_fdes, linear_search_fdes, binary_search_unencoded_fdes): |
| Likewise. |
| * unwind-dw2-fde.h (get_cie, next_fde): Likewise. |
| * unwind-dw2.c (uw_frame_state_for): Likewise. |
| * value-prof.c (histogram_hash, histogram_eq): Likewise. |
| * value-prof.h (const_histogram_value): New. |
| |
| 2007-07-25 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (machine_function): Add |
| initialized_mips16_gp_pseudo_p. |
| (mips16_gp_pseudo_reg): Do not emit the initialization of |
| mips16_gp_pseudo_rtx when being called from the gimple cost- |
| calculation routines; emit it on the first use outside those |
| routines. |
| |
| 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree): |
| New. |
| |
| * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2, |
| RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK, |
| RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3, |
| RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6, |
| RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND): |
| Preserve const-ness of parameters through use of __typeof(), |
| also constify and tidy. |
| |
| * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2, |
| TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4, |
| NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5, |
| CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK, |
| OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK, |
| GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK, |
| PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK, |
| TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK, |
| TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise. |
| |
| 2007-07-25 Julian Brown <julian@codesourcery.com> |
| Mark Shinwell <shinwell@codesourcery.com> |
| |
| * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to... |
| (alpha_mangle_type): This. |
| (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. |
| (TARGET_MANGLE_TYPE): Define this instead. |
| * config/arm/arm-protos.h (arm_mangle_type): Add prototype. |
| * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook. |
| (arm_init_neon_builtins): Fix comment. |
| (arm_mangle_map_entry): New. |
| (arm_mangle_map): New. |
| (arm_mangle_type): New. |
| * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to... |
| (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict |
| mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. |
| (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. |
| (TARGET_MANGLE_TYPE): Define this instead. |
| * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to... |
| (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict |
| mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. |
| (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. |
| (TARGET_MANGLE_TYPE): Define this instead. |
| * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename |
| to... |
| (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT. |
| (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. |
| (TARGET_MANGLE_TYPE): Define this instead. |
| * config/s390/s390.c (s390_mangle_fundamental_type): Rename to... |
| (s390_mangle_type): This. |
| (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. |
| (TARGET_MANGLE_TYPE): Define this instead. |
| * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to... |
| (sparc_mangle_type): This. |
| (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. |
| (TARGET_MANGLE_TYPE): Define this instead. |
| * cp/mangle.c (write_type): Call mangle_type target hook on all |
| types before mangling. Use original type, not main variant, as |
| argument. |
| * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to... |
| (TARGET_MANGLE_TYPE): This. |
| * target.h (gcc_target): Rename mangle_fundamental_type to |
| mangle_type. |
| * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to... |
| (TARGET_MANGLE_TYPE): This. Note slightly different semantics. |
| |
| 2007-07-25 Julian Brown <julian@codesourcery.com> |
| Paul Brook <paul@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| Mark Shinwell <shinwell@codesourcery.com> |
| |
| * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi. |
| * config.gcc (arm*-*-*): Add arm_neon.h to extra headers. |
| (with_fpu): Allow --with-fpu=neon. |
| * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15. |
| * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15. |
| * config/arm/arm-modes.def (EI, OI, CI, XI): New modes. |
| * config/arm/arm-protos.h (neon_immediate_valid_for_move) |
| (neon_immediate_valid_for_logic, neon_output_logic_immediate) |
| (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret) |
| (neon_emit_pair_result_insn, neon_disambiguate_copy) |
| (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad) |
| (output_move_neon): Add prototypes. |
| * config/arm/arm.c (FL_NEON): New flag for NEON processor capability. |
| (all_fpus): Add FPUTYPE_NEON. |
| (fp_model_for_fpu): Add NEON field. |
| (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers. |
| (arm_arg_partial_bytes): Allow NEON vectors to be passed partially |
| in registers. |
| (arm_legitimate_address_p): Don't support fancy addressing for NEON |
| structure moves. |
| (thumb2_legitimate_address_p): Likewise. |
| (neon_valid_immediate): Recognize and prepare constants suitable for |
| NEON instructions. |
| (neon_immediate_valid_for_move): New function. Recognize and prepare |
| immediates for NEON move instructions. |
| (neon_immediate_valid_for_logic): New function. Recognize and |
| prepare immediates for NEON logic instructions. |
| (neon_output_logic_immediate): New function. Create asm string |
| suitable for outputting immediate logic instructions. |
| (neon_pairwise_reduce): New function. Implement reduction using |
| pairwise operations. |
| (neon_expand_vector_init): New function. Expand a (possibly |
| non-constant) vector initialization. |
| (neon_vector_mem_operand): New function. Memory operands supported |
| for quad-word loads/stores to/from ARM or NEON registers. Don't |
| allow base+offset addressing for core regs. |
| (neon_struct_mem_operand): New function. Valid mems for NEON |
| structure moves. |
| (coproc_secondary_reload_class): Enable NEON registers to be loaded |
| from neon_vector_mem_operand addresses without a secondary register. |
| (add_minipool_forward_ref): Handle >8-byte minipool entries. |
| (add_minipool_backward_ref): Likewise. |
| (dump_minipool): Likewise. |
| (push_minipool_fix): Likewise. |
| (output_move_quad): New function. Output quad-word moves, loads and |
| stores using ARM registers. |
| (output_move_vfp): Add support for vectors in VFP (NEON) D |
| registers. |
| (output_move_neon): Output a NEON load/store to/from a quadword |
| register. |
| (arm_print_operand): Implement new codes: |
| - 'c' for unadorned integers (without a # sign). |
| - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian |
| mode. |
| - 'e', 'f' for the low and high D parts of a NEON Q register. |
| - 'q' outputs a NEON Q register. |
| - 'h' outputs ranges of D registers for VLDM/VSTM etc. |
| - 'T' prints NEON opcode features from a coded bitmask. |
| - 'F' is similar to T, but signed/unsigned codes both print as |
| 'i'. |
| - 't' is similar to T, but 'u' is printed instead of 'p'. |
| - 'O' prints 'r' if NEON instruction should perform rounding (as |
| specified by bitmask), else prints nothing. |
| - '#' is a punctuation character to stop operand numbers from |
| running together with following digits in the assembler |
| strings for instructions (when using mode attributes). |
| (arm_assemble_integer): Handle extra NEON vector modes. Permute |
| constant vectors in big-endian mode, where necessary. |
| (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers. |
| Handle EI, OI, CI, XI modes. |
| (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3) |
| (ashrv2si3): Rename IWMMXT2_BUILTINs to... |
| (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt) |
| (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names. |
| (neon_builtin_type_bits): Add enumeration, one bit for each vector |
| type. |
| (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP) |
| (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros |
| to turn v8qi, etc. into bits defined above. |
| (neon_itype): New enumeration. Classifications of NEON builtins. |
| (neon_builtin_datum): Define struct. Contains information about |
| a single builtin (with multiple modes). |
| (CF): Define helper macro for... |
| (VAR1...VAR10): Define builtins with a type, name and 1-10 different |
| modes. |
| (neon_builtin_data): New array. Define information about builtins |
| for use during initialization/expansion. |
| (arm_init_neon_builtins): New function. |
| (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is |
| true. |
| (neon_builtin_compare): New function. |
| (locate_neon_builtin_icode): New function. Find an insn code for a |
| builtin given a function code for that builtin. Also return type of |
| builtin (NEON_BINOP, NEON_UNOP etc.). |
| (builtin_arg): New enumeration. Types of arguments for builtins. |
| (arm_expand_neon_args): New function. Expand a generic NEON builtin. |
| Takes a variable argument list of builtin_arg types, terminated by |
| NEON_ARG_STOP. |
| (arm_expand_neon_builtin): New function. Expand a NEON builtin. |
| (neon_reinterpret): New function. Expand NEON reinterpret intrinsic. |
| (neon_emit_pair_result_insn): New function. Support returning pairs |
| of vectors via a pointer. |
| (neon_disambiguate_copy): New function. Set up operands for a |
| multi-word copy such that registers do not get clobbered. |
| (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >= |
| ARM_BUILTIN_NEON_BASE. |
| (arm_file_start): Set float-abi attribute for NEON. |
| (arm_vector_mode_supported_p): Enable NEON vector modes. |
| (arm_mangle_map_entry): New. |
| (arm_mangle_map): New. |
| (arm_mangle_vector_type): New. |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__ |
| when appropriate. |
| (TARGET_NEON): New macro. Target supports NEON. |
| (fputype): Add FPUTYPE_NEON. |
| (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used |
| for vectorization based on command-line arg. |
| (NEON_REGNO_OK_FOR_NREGS): Define. |
| (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE) |
| (VALID_NEON_STRUCT_MODE): Define. |
| (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation. |
| (arm_builtins): Add ARM_BUILTIN_NEON_BASE. |
| * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec. |
| (consttable_16): Add pattern for outputting 16-byte minipool |
| entries. |
| (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in |
| vec-common.md). |
| (vec-common.md, neon.md): Include md files. |
| * config/arm/arm.opt (mvectorize-with-neon-quad): Add option. |
| * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define. |
| (memory_constraint "Ut", "Un", "Us"): Define. |
| * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros. |
| (MMX_char): New mode attribute. |
| (addv8qi3, addv4hi3, addv2si3): Remove. Replace with... |
| (*add<mode>3_iwmmxt): New insn pattern. |
| (subv8qi3, subv4hi3, subv2si3): Remove. Replace with... |
| (*sub<mode>3_iwmmxt): New insn pattern. |
| (mulv4hi3): Rename to... |
| (*mulv4hi3_iwmmxt): This. |
| (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3) |
| (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3) |
| (uminv4hi3, uminv2si3): Remove. Replace with... |
| (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt) |
| (*umin<mode>3_iwmmxt): These. |
| (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with... |
| (ashr<mode>3_iwmmxt): This new pattern. |
| (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with... |
| (lshr<mode>3_iwmmxt): This new pattern. |
| (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with... |
| (ashl<mode>3_iwmmxt): This new pattern. |
| * config/arm/neon-docgen.ml: New file. Generate documentation for |
| intrinsics. |
| * config/arm/neon-gen.ml: New file. Generate arm_neon.h header. |
| * config/arm/arm_neon.h: New (autogenerated). |
| * config/arm/neon-testgen.ml: New file. Generate NEON tests |
| automatically. |
| * config/arm/neon.md: New file. Define NEON instructions. |
| * config/arm/neon.ml: New file. Abstract description of NEON |
| instructions, used to generate arm_neon.h header, documentation and |
| tests. |
| * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md. |
| * vec-common.md: New file. Shared parts for iWMMXt and NEON vector |
| support. |
| * doc/extend.texi (ARM Built-in Functions): Rename and remove |
| extraneous comma. |
| (ARM NEON Intrinsics): New subsection. |
| * doc/arm-neon-intrinsics.texi: New (autogenerated). |
| |
| 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove |
| prototype. |
| |
| 2007-07-24 Jan Hubicka <jh@suse.cz> |
| |
| * regclass.c (move_table): New type. |
| (move_cost, may_move_in_cost, may_move_out_cost): Use it. |
| (init_move_cost): Break out from ... |
| (init_reg_sets_1): ... here; simplify computation of |
| have_regs-of_mode and contains_reg_of_mode. |
| (record_reg_classes): Unswitch internal loops. |
| (copy_cost): Trigger lazy initialization of move cost |
| (record_address_regs): Likewise. |
| |
| 2007-07-24 Daniel Berlin <dberlin@dberlin.org> |
| |
| * config/darwin.c (darwin_override_options): Don't force on |
| flag_var_tracking_uninit when no debug info is requested. |
| |
| 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * cfgloop.c (init_loops_structure): New function. |
| (flow_loops_find): Create root of the loop tree unconditionally. |
| |
| 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert. |
| |
| 2007-07-24 Jan Hubicka <jh@suse.cz> |
| |
| * caller-save.c: Include ggc.h, gt-caller-save.h |
| (reg_save_code, reg_restore_code): Rename to ... |
| (cached_reg_save_code, cached_reg_restore_code): ... those. |
| (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New. |
| (reg_save_code, reg_restore_code): New functions. |
| (init_caller_save): Do not intialize |
| reg_save_code/reg_restore_code tables. |
| * Makefile.in: (gt-caller-save.h): New. |
| |
| 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand |
| with the mode of the original operand instead of |
| integer_one_node. |
| |
| 2007-07-23 Jan Hubicka <jH@suse.cz> |
| |
| * config/i386/i386.c (ix86_secondary_memory_needed): Break out to... |
| (inline_secondary_memory_needed): ... here. |
| (ix86_memory_move_cost): Break out to ... |
| (inline_memory_move_cost): ... here; add support for IN value of 2 for |
| maximum of input and output; fix handling of Q_REGS on 64bit. |
| (ix86_secondary_memory_needed): Microoptimize. |
| |
| 2007-07-23 Sebastian Pop <sebpop@gmail.com> |
| |
| * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr, |
| create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices, |
| stmts_from_loop, known_dependences_p, build_rdg): New. |
| * tree-data-ref.h: Depends on graphds.h. |
| (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New. |
| (build_rdg): Declared. |
| * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h. |
| |
| 2007-07-23 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with |
| ccp_min_invariant. |
| |
| 2007-07-23 Peter Bergner <bergner@vnet.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/PR28690 |
| * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow |
| EQ compares. |
| * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER |
| and MEM_POINTER operands over REG and MEM operands. |
| (swap_commutative_operands_p): Change return value to bool. |
| * rtl.h: Update the corresponding prototype. |
| * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary |
| instead of gen_rtx_PLUS. |
| * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return |
| value to bool. Change function arguments to rtx's and update code |
| to match. |
| (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp |
| calls to match the new declaration. |
| * simplify-rtx.c (simplify_associative_operation): Don't |
| reorder simplify_binary_operation arguments. |
| |
| 2007-07-23 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (override_options): Use mips_costs to derive |
| the default branch cost. |
| * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather |
| than mips_costs. |
| * config/mips/mips.opt (mbranch-cost=): New option. |
| * doc/invoke.texi (-mbranch-cost): Document new MIPS option. |
| |
| 2007-07-23 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete. |
| (SECONDARY_MEMORY_NEEDED): Delete commented-out definition. |
| * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p |
| instead of GR_REG_CLASS_P and COP_REG_CLASS_P. |
| |
| 2007-07-23 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/constraints.md (ks): New constraint. |
| * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into... |
| (*add<mode>3_mips16): ...here. |
| |
| 2007-07-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * optabs.h (enum optab_index): Add new OTI_signbit. |
| (signbit_optab): Define corresponding macro. |
| (enum insn_code signbit_optab[]): Remove array. |
| * optabs.c (init_optabs): Initialize signbit_optab using init_optab. |
| (expand_copysign_absneg): If back end provides signbit insn, use it |
| instead of bit operations on floating point argument. |
| * builtins.c (enum insn_code signbit_optab[]): Remove array. |
| (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code |
| for availability of signbit insn. |
| |
| * config/i386/i386.md (signbit<mode>2): New insn pattern to implement |
| signbitf, signbit and signbitl built-ins as inline x87 intrinsics when |
| SSE mode is not active. |
| (isinf<mode>2): Disable for mfpmath=sse,387. |
| |
| 2007-07-22 Ben Elliston <bje@au.ibm.com> |
| |
| * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to |
| `class' parameter. |
| * struct-equiv.c (note_local_live): Likewise for `y_regno'. |
| |
| 2007-07-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_expr): COND_EXPRs can have any |
| integral typed condition. |
| * tree-ssa.c (useless_type_conversion_p): Do not preserve |
| booleanness. Only preserve conversions from a non-base |
| type to a base type, not in general between types with |
| different TYPE_MIN_VALUE or TYPE_MAX_VALUE. |
| * tree.def (COND_EXPR): Document that the condition |
| can be of any integral type. |
| |
| 2007-07-20 Nigel Stephens <nigel@mips.com> |
| Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.h (mips_dwarf_regno): Declare. |
| (DBX_REGISTER_NUMBER): Remove redundant brackets. |
| (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way. |
| (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM) |
| (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete. |
| (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG. |
| (REG_CLASS_NAMES): Update accordingly. |
| * config/mips/mips.c (mips_dwarf_regno): New array. |
| (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG. |
| (mips_subword): Remove special handling for accumulator registers. |
| (override_options): Initiailize mips_dwarf_regno. Remove use |
| of ACC_HI_REG_P. |
| (mips_swap_registers): New function. |
| (mips_conditional_register_usage): Swap accumulator registers |
| around if TARGET_LITTLE_ENDIAN. |
| (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS. |
| * config/mips/constraints.md (h, l): Use the endianness to choose |
| between MD0_REG and MD1_REG. |
| * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string, |
| alternative-dependent template. |
| |
| 2007-07-20 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of |
| no_new_pseudos. |
| |
| 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Fix exit |
| predecessor fallthru flags. |
| |
| 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands |
| of compare to the same type. |
| * cfgloopmanip.c (add_loop): Update information about loop exits. |
| (loop_version): Remove the innermost loop requirement. |
| * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds |
| to sizetype for pointers. |
| |
| 2007-07-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd. |
| (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd. |
| (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td. |
| |
| * config/dfp-bit.c: Empty for TFmode conversions. |
| |
| 2007-07-18 Caroline Tice <ctice@apple.com> |
| |
| * var-tracking.c (find_src_status): Check for COND_EXEC insns |
| and handle them correctly; check that src is not NULL before |
| trying to use it. |
| (find_src_set_src): Likewise. |
| |
| 2007-07-18 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New. |
| (struct alignment_context, init_alignment_context): New. |
| (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New. |
| * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default. |
| (XCHAL_HAVE_S32C1I): Likewise. |
| (TARGET_RELEASE_SYNC, TARGET_S32C1I): New. |
| * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant. |
| (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise. |
| (ATOMIC, HQI): New macros. |
| (memory_barrier, *memory_barrier): New. |
| (sync_lock_releasesi): New. |
| (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New. |
| (sync_lock_test_and_set<mode>): New. |
| (sync_<atomic><mode>): New. |
| (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New. |
| * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New. |
| (xtensa_expand_atomic): New. |
| |
| 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| PR target/30652 |
| |
| * builtins.c (expand_builtin_interclass_mathfn): Provide a generic |
| transformation for builtin ISNORMAL. |
| (expand_builtin): Handle BUILT_IN_ISNORMAL. |
| * builtins.def (BUILT_IN_ISNORMAL): New. |
| * doc/extend.texi: Document isnormal. |
| |
| 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| PR target/30652 |
| |
| * builtins.c (expand_builtin_interclass_mathfn): Allow for missing |
| optabs infrastructure. Provide generic implementation for |
| FINITE/ISFINITE. |
| (expand_builtin): Handle FINITE/ISFINITE. |
| (fold_builtin_classify): Make ISFINITE canonical instead of FINITE. |
| (fold_builtin_1): Likewise. |
| |
| * builtins.def (BUILT_IN_ISFINITE): New. |
| |
| * doc/extend.texi: Document isfinite. |
| |
| 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| PR target/30652 |
| PR middle-end/20558 |
| |
| * builtins.c (expand_builtin_interclass_mathfn): Provide a |
| generic fallback for isinf. |
| * c-cppbuiltin.c (builtin_define_float_constants): Move FP max |
| calculation code ... |
| * real.c (get_max_float): ... to here. |
| * real.h (get_max_float): New. |
| |
| 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| PR middle-end/32668 |
| |
| * builtin-attrs.def (ATTR_TYPEGENERIC, |
| ATTR_CONST_NOTHROW_TYPEGENERIC): New. |
| |
| * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN, |
| BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, |
| BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER, |
| BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC. |
| |
| * c-common.c (handle_type_generic_attribute): New. |
| (c_common_attribute_table): Add "type generic". |
| |
| * c-typeck.c (convert_arguments): Handle "type generic" functions. |
| |
| 2007-07-18 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression |
| * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR |
| properly. |
| |
| 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32808 |
| * config/cris/cris.c (cris_print_index): Don't use XEXP before |
| checking that the operand is an expression. |
| |
| 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org> |
| Danny Smith <dannysmith@users.sourceforge.net> |
| |
| PR/other 30335 |
| * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put |
| file mapping object in local namespace if Windows version later |
| than NT4 |
| |
| 2007-07-18 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare. |
| * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to |
| arm_cannot_force_const_mem. |
| (arm_cannot_force_const_mem): New function. |
| * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro. |
| (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead |
| of arm_tls_referenced_p. |
| * config/arm/arm.md (movsi): Split out-of-section constants when |
| ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P. |
| * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define. |
| |
| 2007-07-18 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.md (clear_cache): Treat the size argument as Pmode. |
| |
| 2007-07-18 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.md (*extendqihi2): Convert the destination |
| to SImode. |
| |
| 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/fptr.c: Update license header. |
| * config/pa/milli64.S: Likewise. |
| |
| 2007-07-17 Nick Clifton <nickc@redhat.com> |
| |
| * COPYING_v3: New file. Contains version 3 of the GNU General |
| Public License. |
| * COPYING.LIB_v3: New file. Contains version 3 of the GNU |
| Lesser General Public License. |
| * doc/include/gpl_v3.texi: New file. Contains version 3 of |
| the GNU General Public License. |
| |
| 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR rtl-optimization/32773 |
| * cfglayout.c (force_one_exit_fallthru): New function. |
| (cfg_layout_finalize): Use it. |
| |
| 2007-07-16 Richard Guenther <rguenther@suse.de> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond" |
| before forcing it to gimple operand. |
| |
| 2007-07-16 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| * config/mips/mips.h (TUNE_24K): Define. |
| (TUNE_MACC_CHAINS): Add TUNE_24K. |
| * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to |
| imadd. |
| * config/mips/74k.md (r74k_int_mult): Split madd/msub to .. |
| (r74k_int_madd): .. this new reservation. |
| (define_bypass): Fixed bypasses for r74k_int_madd to use |
| mips_linked_madd_p. |
| * config/mips/24k.md (define_bypass): Define new |
| r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p. |
| |
| 2007-07-16 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * config/mips/mips.md: Include 20kc.md. |
| * config/mips/20kc.md: New file. |
| * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs. |
| (mips_adjust_cost): Tweak for 20Kc. |
| (mips_issue_rate): Likewise. |
| * config/mips/mips.h (TUNE_20KC): Define. |
| |
| 2007-07-16 David Edelsohn <edelsohn@gnu.og> |
| |
| * config/rs6000/rs6000.c (struct processor_cost): Add |
| cache_line_size, l1_cache_lines, and simultaneous_prefetches |
| fields. |
| (*_cost): Add cache information. |
| (rs6000_override_options): Set cache parameters. |
| |
| 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| PR bootstrap/3456 |
| * config.gcc (mips-sgi-irix[56]*): Enable pthread support. |
| * doc/install.texi (mips-sgi-irix6): pthread support works now. |
| |
| 2007-07-16 Paul Brook <paul@codesourcery.com> |
| |
| PR target/32753 |
| * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. |
| (cirrus_thumb2_movsi_insn): Ditto. |
| |
| 2007-07-15 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/rs6000/darwin-fallback.c (interpret_libc): Change |
| CR2_REGNO to R_CR2. |
| |
| 2007-07-15 Andrew Haley <aph@redhat.com> |
| |
| * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL |
| before looking in the context. |
| |
| 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/32398 |
| PR middle-end/32769 |
| * pa-protos.h (pa_eh_return_handler_rtx): Declare. |
| * pa.c (pa_extra_live_on_entry, rp_saved): Declare. |
| (TARGET_EXTRA_LIVE_ON_ENTRY): Define. |
| (pa_output_function_prologue): Use rp_saved and |
| current_function_is_leaf to generate .CALLINFO statement. |
| (hppa_expand_prologue): Set rp_saved. |
| (hppa_expand_epilogue): Use rp_saved. |
| (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions. |
| * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx. |
| |
| 2007-07-14 Dirk Mueller <dmueller@suse.de> |
| |
| * omega.c (coalesce): Fix memory leak on early exit. |
| * matrix-reorg.c (check_allocation_function): Likewise. |
| * tree-vect-transform.c (vect_get_new_vect_var): free result |
| of concat(). |
| * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): |
| pass pointer to edge vector |
| (partition_hot_cold_basic_blocks): Fix memory leak. |
| * collect2.c (prefix_from_string): Free temporary storage. |
| * reload1.c (fixup_abnormal_edges): Free sbitmap. |
| |
| 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype. |
| (DO_GLOBAL_DTORS_BODY): Likewise. |
| |
| 2007-07-14 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * config/mips/mips.c (mips_classify_symbol): Don't return |
| SYMBOL_SMALL_DATA for constant pool addresses if |
| TARGET_EMBEDDED_DATA is true. |
| |
| 2007-07-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins |
| except __builtin_ia32_emms, __builtin_ia32_ldmxcsr, |
| __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups, |
| __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps, |
| __builtin_ia32_storehps, __builtin_ia32_storelps, |
| __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence, |
| __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd, |
| __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd, |
| __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq, |
| __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence, |
| __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor, |
| __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa, |
| __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins |
| using def_builtin_const. |
| |
| 2007-07-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/32705 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number. |
| (simplify_binary_expression): Use SSA_VAL consistently. |
| |
| 2007-07-13 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition. |
| (SPEFSCR_REGNO): Delete definition. |
| * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO. |
| COUNT_REGISTER_REGNUM -> CTR_REGNO. |
| * config/rs6000/rs6000.h: Do not define *_REGNO. |
| LINK_REGISTER_REGNUM -> LR_REGNO. |
| COUNT_REGISTER_REGNUM -> CTR_REGNO. |
| * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO. |
| COUNT_REGISTER_REGNUM -> CTR_REGNO. |
| * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0, |
| R_VRSAVE, R_VSCR. Use them. |
| * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2, |
| R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them. |
| * config/rs6000/rs6000.md: Define REGNO constants. Use them. |
| * config/rs6000/aix.h: Define R_LR. Use it. |
| |
| 2007-07-13 Caroline Tice <ctice@apple.com> |
| |
| * toplev.c (process_options): Turn flag_var_tracking_uninit off when |
| flag_var_tracking is explicitly turned off (i.e. when variable |
| tracking is not feasible); otherwise, turn flag_var_tracking on when |
| flag_var_tracking_uninit is on. |
| * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION |
| note definitions, to allow recording of initialization status in the |
| notes. |
| * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit. |
| (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to |
| determine if two note locations are equal. |
| (output_loc_list): Don't output list entries whose start & end labels |
| are the same. |
| (reg_loc_descriptor): Add parameter for initialization status; pass it |
| to other loc descriptor functions. |
| (one_reg_loc_descriptor): Add parameter for initialization status; |
| check its value and add DW_OP_GNU_uninit to returned loc descr if |
| appropriate. |
| (multiple_reg_loc_descriptor): Add parameter for initialization |
| status; |
| pass init status argument to other loc descriptor functions; check |
| value of intialization parameter and add DW_OP_GNU_uninit to returned |
| loc descr if appropriate. |
| (based_loc_descr): Add parameter for initialization status; add new |
| variable for return value; check value of initialization parameter and |
| add DW_OP_GNU_uninit to returned loc descr if appropriate. |
| (concatn_mem_loc_descriptor): Add parameter for initialization status; |
| pass init status argument to other loc descriptor functions; check |
| value of intialization parameter and add DW_OP_GNU_uninit to returned |
| loc descr if appropriate. |
| (mem_loc_descriptor): Likewise. |
| (concat_loc_descriptor): Likewise. |
| (concatn_loc_descriptor): Likewise. |
| (loc_descriptor): Add parameter for initialization status; pass it as |
| argument to other loc descriptor function calls. |
| (loc_descriptor_from_tree_1): Add appropriate initialization status |
| to loc descriptor function calls. |
| (add_location_or_const_value_attribute): Get initialization status |
| from VAR_LOCATION note; add initialization status to loc descriptor |
| function calls. |
| * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit. |
| * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if |
| status is uninitialized, add "[uninint]" to output. |
| * common.opt (fvar-tracking-uninit): New option, similar to |
| fvar-tracking, to turn on tracking of uninitialized variables; creates |
| a new global flag, flag_var_tracking_uninit. |
| * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field. |
| (enum var_init_status): New type, for var initialization status field. |
| * var-tracking.c (struct location_chain_def): Two new fields, init, |
| for initialization status, and set_src for the assignment value expr. |
| (unshare_variable): New parameter for initialization status; |
| initialize new init and set_src fields. |
| (var_reg_set): New parameters for initialization status and value; |
| pass them to set_variable_part. |
| (var_mem_set): Likewise. |
| (get_init_value): New function. |
| (var_reg_delete_and_set): New initialization status & value |
| parameters; add call to get_init_value if status is unknown; pass new |
| parameters to clobber_variable_part and var_reg_set. |
| (var_mem_delete_and_set): Likewise. |
| (var_reg_delete): Pass null set_src value to clobber_variable_part. |
| (var_mem_delete): Likewise. |
| (variable_union): Pass status to unshare_variable; initialize new init |
| and set_src fields. If flag_var_tracking_uninit is not set, force |
| status to initialized. |
| (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be |
| used later to get the set_src value. |
| (find_src_status): New function. |
| (find_src_set_src): New function. |
| (compute_bb_dataflow): Pass init status to calls to var_reg_set, |
| var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for |
| MO_SET, get set_src value and pass it to var_reg_delete_and_set |
| and var_mem_delete_and_set. |
| (dump_variable): Print out "[uninit]" if appropriate. |
| (set_variable_part): Add new initialization and set_src parameters; |
| pass status to unshare_variable; set node->init and node- >set_src |
| fields and modify slot in hash table appropriately; save the init and |
| set_src values if appropriate and assign to the new node. |
| (clobber_variable_part): New set_src parameter; if two nodes have |
| same variable and same location but different set_src (assignment) |
| values, clobber old node. |
| (delete_variable_part): Pass init status to unshare_variable. |
| (emit_note_insn_var_location): Add initialized var; assign var's init |
| status to new 'initialized'; pass new init status field to calls to |
| gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force |
| status to initialized. |
| (emit_notes_in_bb): Pass initialization status to calls to |
| var_reg_set, var_mem_set, var_reg_delete_and_set and |
| var_mem_delete_and_set; for MO_SET, get set_src value and pass it to |
| var_reg_delete_and_set and var_mem_delete_and_set; call |
| emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to |
| make up for change in add_stores. |
| (vt_add_function_parameters): Add status to calls to |
| set_variable_part. |
| * config/darwin.c (darwin_override_options): Turn on uninitialized |
| tracking automatically, if var_tracking is on and the system is |
| 10.5 or higher. |
| |
| 2007-07-13 Sa Liu <saliu@de.ibm.com> |
| |
| * config.gcc: Add options for arch and tune on SPU. |
| * config/spu/predicates.md: Add constant operands 0 and 1. |
| * config/spu/spu-builtins.def: Add builtins for double precision |
| floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, |
| si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1, |
| spu_testsv. |
| * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with |
| a CELLEDP target. |
| * config/spu/spu-protos.h: Add new function prototypes. |
| * config/spu/spu.c (spu_override_options): Check options -march and |
| -mtune. |
| (spu_comp_icode): Add comparison code for DFmode and vector mode. |
| (spu_emit_branch_or_set): Use the new code for DFmode and vector |
| mode comparison. |
| (spu_const_from_int): New. Create a vector constant from 4 ints. |
| (get_vec_cmp_insn): New. Get insn index of vector compare instruction. |
| (spu_emit_vector_compare): New. Emit vector compare. |
| (spu_emit_vector_cond_expr): New. Emit vector conditional expression. |
| * config/spu/spu.h: Add options -march and -mtune. Define processor |
| types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro |
| CANONICALIZE_COMPARISON. |
| * config/spu/spu.md: Add new insns for double precision compare |
| and double precision vector compare. Add vcond and smax/smin patterns |
| to enable DFmode vector conditional expression. |
| * config/spu/spu.opt: Add options -march and -mtune. |
| * config/spu/spu_internals.h: Add builtins for CELLEDP target: |
| si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for |
| both CELL and CELLEDP targets: spu_testsv. |
| * config/spu/spu_intrinsics.h: Add flag mnemonics for test special |
| values. |
| |
| 2007-07-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32721 |
| * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve |
| TREE_THIS_VOLATILE on the folded reference. |
| * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops |
| if the array reference has TREE_THIS_VOLATILE set. |
| |
| 2007-07-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR other/32188 |
| * doc/libgcc.texi: Update DFP intrinsics for DPD and BID. |
| |
| 2007-07-13 Andreas Schwab <schwab@suse.de> |
| |
| * gengtype-lex.l: Allow declarations to be indented. |
| |
| 2007-07-12 Geoffrey Keating <geoffk@apple.com> |
| |
| * ginclude/tgmath.h: New. |
| * config.gcc: Use GCC's tgmath.h on non-glibc systems. |
| * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath. |
| * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath. |
| * configure: Regenerate. |
| |
| 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/linux-unwind.h (sh_fallback_frame_state): Use |
| correct index when setting register save state for xd |
| registers. |
| |
| 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (mark_use): Remove. |
| |
| 2007-07-12 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch |
| reg does not overlap return value. |
| |
| 2007-07-12 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (get_expression_vuses): Move out side-effect. |
| (set_expression_vuses): Ditto. |
| (init_pre): Initialize expression_vuses. |
| |
| 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * config/i386/sse.md (storentdf, storentsf): New. |
| |
| 2007-07-12 Geoffrey Keating <geoffk@apple.com> |
| |
| * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a |
| FUNCTION_DECL. |
| * tree.c (build_decl_stat): Move code from here... |
| (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN. |
| (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment |
| about using DECL_ALIGN of LABEL_DECL and CONST_DECL. |
| * tree.h (DECL_USER_ALIGN): Fix misplaced comment. |
| * varasm.c (assemble_start_function): Use DECL_ALIGN instead of |
| FUNCTION_BOUNDARY. |
| |
| 2007-07-12 Dorit Nuzman <dorit@il.ibm.com> |
| Devang Patel <dpatel@apple.com> |
| |
| PR tree-optimization/25413 |
| * targhooks.c (default_builtin_vector_alignment_reachable): New. |
| * targhooks.h (default_builtin_vector_alignment_reachable): New. |
| * tree.h (contains_packed_reference): New. |
| * expr.c (contains_packed_reference): New. |
| * tree-vect-analyze.c (vector_alignment_reachable_p): New. |
| (vect_enhance_data_refs_alignment): Call |
| vector_alignment_reachable_p. |
| * target.h (vector_alignment_reachable): New builtin. |
| * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New. |
| * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New. |
| (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define. |
| |
| 2007-07-12 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * target.h (builtin_vectorization_cost): Add new target builtin. |
| * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New. |
| * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New. |
| (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New. |
| * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze |
| uninitialized variables. |
| * tree-vect-transform.c (cost_for_stmt): New function. |
| (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of |
| using cost 1 for all scalar stmts. Be less conservative when |
| estimating the number of prologue/epulogue iterations. Call |
| targetm.vectorize.builtin_vectorization_cost. Return |
| min_profitable_iters-1. |
| (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for |
| initialization cost instead of TARG_VEC_STMT_COST. Use |
| TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction |
| epilogue code. Fix epilogue cost computation. |
| * config/spu/spu.c (spu_builtin_vectorization_cost): New. |
| (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement. |
| * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST): |
| (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST): |
| (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST): |
| (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define. |
| |
| 2007-07-12 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_conversion): Make sure that the result |
| from maybe_fold_offset_to_reference is trivially convertible |
| to the desired type before doing the simplification. |
| (gimplify_expr): Likewise. |
| * fold-const.c (fold_binary): Use the correct types for |
| building the simplified expression. |
| |
| 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR rtl-optimization/32729 |
| * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks |
| that fallthru to exit. |
| |
| 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis. |
| (symDTPOFF2reg): Likewise. |
| |
| 2007-07-11 Daniel Berlin <dberlin@dberlin.org> |
| |
| PR tree-optimization/32663 |
| |
| * tree.h (VALUE_HANDLE_VUSES): Remove. |
| (struct tree_value_handle): Remove vuses. |
| |
| * tree-vn.c (create_value_handle_for_expr): Don't set |
| VALUE_HANDLE_VUSES. |
| |
| * tree-ssa-pre.c (expression_vuses): New. |
| (alloc_expression_id): Set up expression_vuses. |
| (get_expression_vuses): New. |
| (set_expression_vuses): Ditto. |
| (clear_expression_ids): Modify for expression_vuses. |
| (phi_translate_1): Ditto. |
| (phi_translate_set): Ditto. |
| (value_dies_in_block_x): Ditto |
| (valid_in_sets): Ditto. |
| (add_to_sets): Ditto. |
| (find_existing_value_expr): Ditto. |
| (create_value_handle_for_expr): Ditto. |
| (make_values_for_stmt): Ditto. |
| (vuse_equiv): Remove. |
| |
| 2007-07-11 Alexandre Oliva <aoliva@redhat.com> |
| |
| * Makefile.in (mostlyclean): Remove object files. |
| |
| 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * toplev.c (no_new_pseudos): Deleted. |
| * rtl.h (no_new_pseudos): Deleted. |
| * tree-pass.h (pass_no_new_pseudos): Deleted. |
| * passes.c (pass_no_new_pseudos): Deleted. |
| * final.c (rest_of_clean_state): Removed no_new_pseudos. |
| (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted. |
| * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with |
| reload_completed. |
| * cfgcleanup.c (try_crossjump_to_edge): Ditto. |
| * rtlhooks.c (gen_lowpart_general): Ditto. |
| * optabs.c (prepare_operand): Ditto. |
| * mode-switching.c (rest_of_handle_mode_switching): Deleted set of |
| no_new_pseudos. |
| * modulo-sched.c (rest_of_handle_sms): Ditto. |
| * see.c (rest_of_handle_see): Ditto. |
| * ifcvt.c (if_convert): Ditto. |
| (gate_handle_if_after_combine): Replaced no_new_pseudos with |
| reload_completed. |
| * init-regs.c (gate_initialize_regs): Deleted set of |
| no_new_pseudos. |
| * lower-subreg.c (decompose_multiword_subregs): Ditto. |
| * bb-reorder.c (rest_of_handle_partition_blocks): Ditto. |
| * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p. |
| |
| 2007-07-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32661 |
| * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves. |
| (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT. |
| (*vec_extractv2di_1_rex64): New insn pattern. |
| |
| 2007-07-11 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite |
| return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN |
| for SIGNAL_UNWIND_RETURN_COLUMN. |
| * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove. |
| (DWARF_FRAME_REGNUM): Rewrite. |
| (DWARF_ALT_FRAME_RETURN_COLUMN) Define. |
| |
| 2007-07-11 Nick Clifton <nickc@redhat.com> |
| |
| * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous |
| delta and use gen_int_mode in place of GET_INT instead. |
| |
| 2007-07-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name |
| and letter field. |
| |
| 2007-07-11 Douglas Gregor <doug.gregor@gmail.com> |
| |
| * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove. |
| (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical |
| types or not. |
| * params.h (VERIFY_CANONICAL_TYPES): Remove. |
| (USE_CANONICAL_TYPES): New. |
| * doc/invoke.texi (verify-canonical-types): Remove. |
| (use-canonical-types): Add. |
| |
| 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_optimization_options): Remove setting of |
| parameter PARAM_MAX_COMPLETELY_PEEL_TIMES. |
| (spu_override_options): Move it here. |
| |
| 2007-07-11 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd. |
| * config/mips/mips.c (mips_cpu_info_table): Mention |
| MIPS_ISA_LEVEL_SPEC in the comment. |
| |
| 2007-07-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/32713 |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST. |
| |
| 2007-07-11 Paolo Carlini <pcarlini@suse.de> |
| |
| PR middle-end/30482 |
| * c-opts.c (c_common_post_options): Do not change flag_complex_method |
| conditional to flag_isoc99. |
| (c_common_init_options): Do it here, unconditionally. |
| |
| 2007-07-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/32589 |
| * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule. |
| * tree-gimple.c (is_gimple_min_invariant): Clarify head comment. |
| * tree-ssa-propagate.c (valid_gimple_expression_p): New |
| predicate, extracted from... |
| (set_rhs): ...here. Call it for the expression on entry. |
| * tree-ssa-propagate.h (valid_gimple_expression_p): Declare. |
| * tree-ssa-sccvn.c: Include tree-ssa-propagate.h. |
| (simplify_binary_expression): Use valid_gimple_expression_p |
| to validate the simplification. |
| * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h. |
| |
| 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to |
| DWARF2_DEBUG on 32 bit target too. |
| (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. |
| |
| 2007-07-11 Nick Clifton <nickc@redhat.com> |
| |
| * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative |
| version for 64-bit hosts. |
| |
| 2007-07-10 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.h (ISA_HAS_SYNCI): New target capability |
| predicate. |
| (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library |
| call. |
| * config/mips/mips.c (mips_expand_synci_loop): New function. |
| * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant. |
| (UNSPEC_RDHWR): Same. |
| (UNSPEC_SYNCI): Same. |
| (UNSPEC_SYNC): Same. |
| (clear_cache): New expand. |
| (sync): New insn. |
| (synci): Same. |
| (rdhwr): Same. |
| (clear_hazard): Same. |
| * config/mips/mips-protos.h (mips_expand_synci_loop): Declare |
| function. |
| * testsuite/gcc.target/mips/clear-cache-1.c: New test. |
| * testsuite/gcc.target/mips/clear-cache-2.c: New test. |
| |
| 2007-07-10 Ian Lance Taylor <iant@google.com> |
| |
| * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than |
| no_new_pseudos. |
| |
| 2007-07-10 David Daney <ddaney@avtrex.com> |
| |
| * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin. |
| * builtins.c (expand_builtin___clear_cache): New function. |
| (expand_builtin): Call expand_builtin___clear_cache for |
| BUILT_IN_CLEAR_CACHE case. |
| * doc/extend.texi (__builtin___clear_cache): Document new builtin. |
| * doc/md.texi (clear_cache): Document new instruction pattern. |
| * testsuite/gcc.dg/builtins-64.c: New test. |
| |
| 2007-07-11 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.md ("movsi"): Fix typo in last change. |
| |
| 2007-07-09 Geoffrey Keating <geoffk@apple.com> |
| |
| PR 32617 |
| * c-common.c (c_alignof_expr): Look at DECL_ALIGN of |
| FUNCTION_DECLs. |
| (handle_aligned_attribute): Allow use on FUNCTION_DECLs. |
| * varasm.c (assemble_start_function): Honor DECL_ALIGN |
| for FUNCTION_DECLs. Don't use align_functions_log if |
| DECL_USER_ALIGN. |
| * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN |
| even for FUNCTION_DECLs. |
| * c-decl.c (merge_decls): Propagate DECL_ALIGN even for |
| FUNCTION_DECLs. |
| * tree.h (DECL_ALIGN): Update for new location of 'align'. |
| (DECL_FUNCTION_CODE): Update for new location and name of |
| 'function_code'. |
| (DECL_OFFSET_ALIGN): Update for new location of 'off_align'. |
| (struct tree_decl_common): Move 'align' and 'off_align' out |
| of union, ensure they're still on a 32-bit boundary. Remove |
| other fields in union 'u1'. |
| (struct tree_function_decl): Add field 'function_code' replacing |
| 'u1.f' in tree_decl_common. |
| * tree.c (build_decl_stat): Set initial value of DECL_ALIGN. |
| * doc/extend.texi (Function Attributes): Add 'aligned' attribute. |
| (Variable Attributes): Cross-reference 'aligned' attribute |
| to Function Attributes. |
| * flags.h (force_align_functions_log): Delete. |
| * toplev.c (force_align_functions_log): Delete. |
| |
| 2007-07-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32708 |
| * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT. |
| (*vec_concatv2di_rex): New insn pattern. |
| |
| 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| PR target/32538 |
| * config/mips/iris6.h (LIBGCC_SPEC): Add libm. |
| |
| 2007-07-10 Ian Lance Taylor <iant@google.com> |
| |
| Replace no_new_pseudos in backends. |
| * rtl.h (can_create_pseudo_p): Define. |
| * config/darwin.c (machopic_indirect_data_reference): Use |
| can_create_pseudo_p () instead of no_new_pseudos. |
| (machopic_indirect_data_reference): Likewise. |
| (machopic_legitimize_pic_address): Likewise. |
| * config/alpha/alpha.c (alpha_legitimize_address): Likewise. |
| (alpha_emit_set_const_1): Likewise. |
| (alpha_emit_set_const): Likewise. |
| (alpha_emit_conditional_move): Likewise. |
| (alpha_split_conditional_move): Likewise. |
| * config/alpha/alpha.md (various splitters): Likewise. |
| (movti): Likewise. |
| * config/arm/arm.c (legitimize_pic_address): Likewise. |
| (arm_load_pic_register): Likewise. |
| * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise. |
| (movdi, movsi, movhi, movqi, movsf, movdf): Likewise. |
| * config/bfin/bfin.c (legitimize_pic_address): Likewise. |
| * config/cris/cris.c (cris_expand_pic_call_address): Likewise. |
| * config/cris/cris.md (movsi): Likewise. |
| * config/frv/frv.md (symGOT2reg_hilo): Likewise. |
| (symGOTOFF2reg_hilo): Likewise. |
| (symGPREL2reg, symGPREL2reg_hilo): Likewise. |
| * config/h8300/h8300.md (insv, extzv): Likewise. |
| * config/i386/i386.c (ix86_expand_move): Likewise. |
| (ix86_expand_vector_move): Likewise. |
| (ix86_prepare_fp_compare_args): Likewise. |
| (ix86_expand_carry_flag_compare): Likewise. |
| * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise. |
| (tls_dynamic_gnu2_combine_32): Likewise. |
| (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise. |
| * config/ia64/ia64.c (ia64_expand_move): Likewise. |
| (ia64_expand_movxf_movrf): Likewise. |
| * config/m32c/m32c.c (m32c_prepare_move): Likewise. |
| (m32c_split_move): Likewise. |
| (m32c_expand_insv): Likewise. |
| * config/m68k/m68k.md (movsi): Likewise. |
| * config/mips/mips.c (mips_force_temporary): Likewise. |
| (mips_split_symbol): Likewise. |
| (mips_move_integer): Likewise. |
| (mips_legitimize_const_move): Likewise. |
| * config/mn10300/mn10300.md (movsi): Likewise. |
| * config/pa/pa.c (emit_move_sequence): Likewise. |
| * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. |
| (rs6000_got_register): Likewise. |
| (create_TOC_reference): Likewise. |
| (rs6000_machopic_legitimize_pic_address): Likewise. |
| * config/rs6000/rs6000.md (add<mode>3): Likewise. |
| (various splitters): Likewise. |
| (iorsi3, xorsi3, iordi3, xordi3): Likewise. |
| (movsi_got): Likewise. |
| * config/s390/s390.c (emit_symbolic_move): Likewise. |
| * config/s390/s390.md (movhi, movqi): Likewise. |
| (load_multiple, store_multiple): Likewise. |
| * config/score/score.c (score_force_temporary): Likewise. |
| * config/sh/sh.c (prepare_move_operands): Likewise. |
| (prepare_cbranch_operands): Likewise. |
| (emit_fpu_switch): Likewise. |
| (fpscr_set_from_mem): Likewise. |
| * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise. |
| (adddi3, subsi3): Likewise. |
| (various splitters): Likewise. |
| (divsi_inv_fp_combine): Likewise. |
| (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise. |
| (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise. |
| (sne): Likewise. |
| * config/sh/predicates.md (xor_operand): Likewise. |
| * config/sparc/sparc.c (legitimize_tls_address): Likewise. |
| * config/sparc/sparc.md (movsi_pic_label_ref): Likewise. |
| (movdi_pic_label_ref): Likewise. |
| * config/spu/spu.c (spu_split_immediate): Likewise. |
| * config/alpha/alpha.md (various splitters): Remove test |
| !no_new_pseudos || reload_completed. |
| * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set |
| no_new_pseudos. |
| * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. |
| * config/mips/mips.c (mips_output_mi_thunk): Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. |
| * config/score/score.c (th_output_mi_thunk): Likewise. |
| * config/sh/sh.c (sh_output_mi_thunk): Likewise. |
| * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. |
| |
| 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR rtl-optimization/32664 |
| * mode-switching.c (create_pre_exit): Skip barrier insns. |
| |
| 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-scalar-evolution.c (scev_const_prop): Add arguments to |
| force_gimple_operand_bsi. |
| * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr, |
| rewrite_use_compare): Ditto. |
| * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref): |
| Ditto. |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto. |
| * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. |
| * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto. |
| * tree-profile.c (prepare_instrumented_value, |
| tree_gen_interval_profiler, tree_gen_pow2_profiler, |
| tree_gen_one_value_profiler, tree_gen_ic_profiler, |
| tree_gen_ic_func_profiler, tree_gen_average_profiler, |
| tree_gen_ior_profiler): Ditto. |
| * tree-ssa-reassoc.c (negate_value): Ditto. |
| * matrix-reorg.c (transform_access_sites, transform_allocation_sites): |
| Use force_gimple_operand_bsi. |
| * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto. |
| * tree-if-conv.c (add_to_dst_predicate_list, |
| find_phi_replacement_condition): Ditto. |
| * gimplify.c (force_gimple_operand_bsi): Add before and m arguments. |
| Call mark_symbols_for_renaming for new statements. |
| * tree-flow.h (force_gimple_operand_bsi): Declaration changed. |
| |
| 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * cfghooks.c (remove_edge): New function. |
| (redirect_edge_and_branch, remove_branch, merge_blocks): Updated |
| loop exit rescans. |
| * cfghooks.h (remove_edge): Declare. |
| * cfg.c (remove_edge): Renamed to remove_edge_raw. |
| * basic-block.h (remove_edge): Declaration changed to remove_edge_raw. |
| |
| 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com> |
| |
| * optabs.h: Added declaration for signbit_optab. |
| * optabs.c: (init_optabs): Added initialization for signbit_optab. |
| * genoptinit.c (optabs): Added entry for signbit insns. |
| * builtins.c (expand_builtin_signbit): Added code to use a signbit |
| insn, if available. |
| * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant. |
| * config/s390/s390.md (signbit<mode>2): New expander. |
| |
| 2007-07-09 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32698 |
| * fold-const.c (fold_plusminus_mult_expr): Move constant |
| arguments second to allow decomposing. |
| |
| 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br> |
| |
| Revert: |
| 2007-07-06 Alexandre Oliva <aoliva@redhat.com> |
| PR debug/23551 |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): |
| Disregard DECL_FROM_INLINE. |
| |
| 2007-07-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/27855 |
| * doc/invoke.texi: Add ftree-reassoc flag. |
| * common.opt (ftree-reassoc): New flag. |
| * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function. |
| (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc. |
| |
| 2007-07-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/32681 |
| * tree-if-conv.c (find_phi_replacement_condition): Use the condition |
| saved in second_edge->aux when first_bb is a loop header. |
| |
| 2007-07-09 Jan HUbicka <jh@suse.cz> |
| |
| * cse.c (cse_insn): Avoid invalid sharing on trial replacement. |
| |
| 2007-07-09 Richard Guenther <rguenther@suse.de> |
| |
| * c-decl.c (start_function): Do not promote return type. |
| |
| 2007-07-08 Daniel Franke <franke.daniel@gmail.com> |
| |
| * function.c (do_warn_unused_parameter): Do not warn if |
| TREE_NO_WARNING is set. |
| |
| 2007-07-08 Andreas Schwab <schwab@suse.de> |
| |
| * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo. |
| |
| 2007-07-08 Sandra Loosemore <sandra@codesourcery.com> |
| |
| Revert this patch: |
| 2007-07-06 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS |
| apply to assembly language, too. |
| * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update. |
| |
| 2007-07-07 Daniel Berlin <dberlin@dberlin.org> |
| |
| Revert (note the sccvn portions are *not* reverted) |
| 2007-07-06 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/23488 |
| |
| * tree-vn.c (set_value_handle): Use decl_vh_map for decl value |
| handles. |
| * tree-flow-inline.h (get_value_handle): Ditto. |
| * tree-ssa-pre.c (decl_vh_map): New. |
| (decl_node_pool): New. |
| (can_value_number_operation): Support DECL_P. |
| (can_PRE_operation): Ditto. |
| (create_expression_by_pieces): Ditto. |
| (find_existing_value_expr): Modify to differnetiate between |
| addressing and top level. |
| (create_value_handle_for_expr): Handle DECL's. |
| (poolify_tree): Ditto. |
| (make_values_for_phi): Don't insert into PHI_GEN during FRE. |
| (make_values_for_stmt): Handle DECL's properly. |
| (init_pre): Reorg to not init useless things during FRE. |
| (fini_pre): Ditto. |
| * tree-flow.h: Include pointer-set.h. |
| (decl_vh_map): Declare. |
| * Makefile.in (TREE_FLOW_H): Add pointer-set.h |
| |
| 2007-07-07 Eric Weddington <eweddington@cso.atmel.com> |
| |
| * config/avr/constraints.md (define_memory_constraint "Q"): Fix |
| the constraint description. |
| * doc/md.texi: Update documentation of AVR constraints. |
| |
| 2007-07-07 Kazu Hirata <kazu@codesourcery.com> |
| |
| * auto-inc-dec.c, config/arm/arm.c, |
| config/m32r/constraints.md, config/mips/mips.md, |
| config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c, |
| df-problems.c, df-scan.c, df.h, dse.c, gimplify.c, |
| tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment |
| typos. Follow spelling conventions. |
| * doc/invoke.texi, doc/rtl.texi: Fix typos. |
| |
| * cfgrtl.c (delete_insn_chain_and_edges): Remove. |
| * rtl.h: Remove the prototype for delete_insn_chain_and_edges. |
| |
| * tree-ssa-operands.c (realloc_vop, realloc_vdef, |
| realloc_vuse): Remove. |
| * tree-ssa-operands.h: Remove the prototype for realloc_vdef |
| and realloc_vuse. |
| |
| 2007-07-06 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/23488 |
| |
| * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration. |
| (try_to_simplify): Ditto. |
| (visit_use): Ditto. |
| * tree-vn.c (set_value_handle): Use decl_vh_map for decl value |
| handles. |
| * tree-flow-inline.h (get_value_handle): Ditto. |
| * tree-ssa-pre.c (decl_vh_map): New. |
| (decl_node_pool): New. |
| (can_value_number_operation): Support DECL_P. |
| (can_PRE_operation): Ditto. |
| (create_expression_by_pieces): Ditto. |
| (find_existing_value_expr): Modify to differnetiate between |
| addressing and top level. |
| (create_value_handle_for_expr): Handle DECL's. |
| (poolify_tree): Ditto. |
| (make_values_for_phi): Don't insert into PHI_GEN during FRE. |
| (make_values_for_stmt): Handle DECL's properly. |
| (init_pre): Reorg to not init useless things during FRE. |
| (fini_pre): Ditto. |
| * tree-flow.h: Include pointer-set.h. |
| (decl_vh_map): Declare. |
| * Makefile.in (TREE_FLOW_H): Add pointer-set.h |
| |
| 2007-07-06 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS |
| apply to assembly language, too. |
| * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update. |
| |
| 2007-07-06 Ian Lance Taylor <iant@google.com> |
| Zack Weinberg <zackw@panix.com> |
| |
| PR middle-end/32441 |
| * builtins.c (std_expand_builtin_va_start): Don't use make_tree. |
| |
| 2007-07-06 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP. |
| (prefetch): Likewise if "pref" would be used. |
| |
| 2007-07-06 Josh Conner <jconner@apple.com> |
| |
| PR middle-end/32602 |
| PR middle-end/32603 |
| * calls.c (store_one_arg): Handle arguments which are partially |
| on the stack when detecting argument overlap. |
| |
| 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * reload1.c (choose_reload_regs): Set reload_spill_index for regs |
| chosen during find_reloads. |
| |
| 2007-07-06 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over |
| TYPE_ARG_TYPES for verification of argument types. Use |
| DECL_ARG_TYPE instead of the PARM_DECL type. Take excess |
| parameters as variable arguments. |
| |
| 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * libgcc2.h (word_type): Type definition removed. |
| (cmp_return_type, shift_count_type): Type definitions added. |
| (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter |
| replaced with shift_count_type. |
| (__cmpdi2, __ucmpdi2): word_type of return type replaced with |
| cmp_return_type. |
| * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c |
| changed from word_type to Wtype. |
| (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter |
| replaced with shift_count_type. |
| (__cmpdi2, __ucmpdi2): word_type of return type replaced with |
| cmp_return_type. |
| * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return |
| and libgcc_shift_count attribute added. |
| * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE, |
| TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined. |
| (TARGET_INITIALIZER): New target hooks added. |
| * targhooks.c (default_libgcc_cmp_return_mode, |
| default_libgcc_shift_count_mode): Default implementations for the new |
| target hooks added. |
| * targhooks.h (default_libgcc_cmp_return_mode, |
| default_libgcc_shift_count_mode): Function prototypes added. |
| * target.h (struct gcc_target): Fields for the new target hooks added. |
| * optabs.c (expand_binop): Use shift_count_mode when expanding shift |
| as library call. |
| (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as |
| library call. |
| |
| * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE, |
| TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added. |
| |
| * config/s390/s390.c (s390_libgcc_cmp_return_mode, |
| s390_libgcc_shift_count_mode): Functions added. |
| (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE): |
| Target hooks defined. |
| |
| 2007-07-06 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (compute_frame_size): Restore the original |
| gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the |
| fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation. |
| Document why the difference is needed. |
| |
| 2007-07-06 Richard Guenther <rguenther@suse.de> |
| |
| * c-common.c (boolean_increment): Use correctly typed |
| constant. |
| |
| 2007-07-06 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that |
| the topmost argument register is not also included in the save mask. |
| (mips16e_collect_argument_save_p): Take a pointer to the argument |
| register, rather than a pointer to the number of arguments. |
| (mips16e_collect_argument_saves): Only include argument saves |
| that aren't in the register mask. |
| |
| 2007-07-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/32450 |
| * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn |
| to ensure that instructions are not moved into the prologue when |
| profiling is on. Remove unused prologue_end variable. |
| (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx |
| as a scheduling barrier. |
| |
| 2007-07-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/23551 |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): |
| Disregard DECL_FROM_INLINE. |
| |
| 2007-07-05 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or |
| IORing with a constant. |
| |
| 2007-07-05 Seongbae Park <seongbae.park@gmail.com> |
| |
| PR rtl-optimization/32475 |
| * df-scan.c (df_def_record_1): Add a use of the stack pointer |
| for every definition of the stack pointer. |
| |
| 2007-07-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.c (vfp3_const_double_index): Copy signed results of |
| REAL_VALUE_TO_INT into unsigned vars. |
| |
| 2007-07-05 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32639 |
| * alias.c (get_alias_set): Tread METHOD_TYPE the same as |
| FUNCTION_TYPE. |
| * tree-ssa.c (useless_type_conversion_p): Check canonical |
| types early. |
| |
| 2007-07-05 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, |
| zero_extendhisi2): Change to define_insn_and_split. |
| (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New. |
| |
| 2007-07-05 Paolo Bonzini <bonzini@gnu.org> |
| |
| * function.c (match_asm_constraints_1, rest_of_match_asm_constraints, |
| pass_match_asm_constraints): New. |
| * passes.c (init_optimization_passes): Add new pass. |
| * stmt.c (expand_asm_operands): Set cfun->has_asm_statement. |
| * function.h (struct function): Add has_asm_statement bit. |
| (current_function_has_asm_statement): New. |
| * tree-pass.h (pass_match_asm_constraints): New. |
| |
| 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * config/mips/mips.c (mips_file_start): Avoid declaration |
| after code. |
| |
| 2007-07-05 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * optabs.c (expand_binop_directly): Fix signed/unsigned comparison. |
| |
| 2007-07-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * rtl.def (NOTE): Change print format string to print |
| operand 5 as a note insn name. |
| |
| 2007-07-05 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors. |
| * doc/invoke.texi: (MIPS Options): Document them. |
| |
| 2007-07-05 Sandra Loosemore <sandra@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| Add support for SmartMIPS ASE. |
| |
| * optabs.c (expand_binop_directly): New, broken out from... |
| (expand_binop): Here. Make it try rotating in the other |
| direction even when the second operand isn't constant. |
| * config/mips/mips.md (*lwxs): New. |
| * config/mips/mips.opt (msmartmips): New. |
| * config/mips/mips.c (mips_lwxs_address_p): New. |
| (mips_rtx_costs): Make it recognize scaled indexed addressing. |
| * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define |
| __mips_smartmips when compiling for TARGET_SMARTMIPS. |
| (ISA_HAS_ROR): Define for TARGET_SMARTMIPS. |
| (ISA_HAS_LWXS): New. |
| (ASM_SPEC): Add -msmartmips/-mno-smartmips. |
| * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips. |
| * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case. |
| * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case. |
| * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case. |
| * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case. |
| * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case. |
| |
| 2007-07-05 Dorit Nuzman <dorit@il.ibm.com> |
| |
| * tree-vectorizer.c (new_loop_vec_info): Initialize |
| LOOP_VINFO_COST_MODEL_MIN_ITERS. |
| * tree-vectorizer.h (_loop_vec_info): Added new filed |
| min_profitable_iters. |
| (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field. |
| (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation. |
| * tree-vect-analyze.c (vect_analyze_operations): Set |
| LOOP_VINFO_COST_MODEL_MIN_ITERS. |
| * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use |
| VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS. |
| Fix calculation of peel_iters_prologue. Move consideration of epilogue |
| and prologue cost to after they are computed. |
| (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of |
| TARG_VEC_STMT_COST. |
| (vect_model_simple_cost): Takes additional argument dt. Consider cost |
| of creating vectors from scalars according to dt. |
| (vect_model_store_cost): Likewise. |
| (vectorizable_call): Use dt array instead of scalar dt. Call |
| vect_model_simple_cost with additional argument dt. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_type_demotion): Likewise. |
| (vectorizable_type_promotion): Likewise. |
| (vectorizable_store): Use dt array instead of scalar dt. Call |
| vect_model_store_cost with additional argument dt. |
| (vect_do_peeling_for_loop_bound): Don't call |
| vect_estimate_min_profitable_iters. Instead, lookup |
| LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print |
| "may not be profitable". |
| |
| 2007-07-05 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR testsuite/32014 |
| * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF): |
| (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New. |
| (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns. |
| (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. |
| |
| 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * config/i386/i386.c (ix86_address_cost): Do not consider more complex |
| addressing modes cheaper. |
| |
| 2007-07-05 Alexandre Oliva <aoliva@redhat.com> |
| |
| * dwarf2out.c (dw_ranges_by_label_ref): New typedef. |
| (dw_ranges_struct): Rename block_num to num. Adjust. |
| (dw_ranges_by_label_struct): New. |
| (ranges_by_label, ranges_by_label_allocated, |
| ranges_by_label_in_use): New variables. |
| (add_ranges_num): Factored most of the code out of... |
| (add_ranges): ... this one. Rewrite in terms of the former. |
| (add_ranges_by_labels): New. |
| (output_ranges): Output by-label ranges. |
| (dwarf2out_finish): Output range for multiple-section |
| compile_unit. Output standard DW_AT_low_pc in addition to |
| unexpected DW_AT_entry_pc. |
| |
| 2007-07-04 Daniel Berlin <dberlin@dberlin.org> |
| |
| PR tree-optimization/32604 |
| PR tree-optimization/32606 |
| |
| * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads. |
| (compute_antic_safe): Removed. |
| (ANTIC_SAFE_LOADS): Ditto. |
| (compute_antic_aux): Don't print ANTIC_SAFE_LOADS. |
| (execute_pre): Don't call compute_antic_safe. |
| (vuse_equiv): New function. |
| (make_values_for_stmt): Use it |
| * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is |
| not always true. |
| |
| 2007-07-04 Anatoly Sokolov <aesok@post.ru> |
| |
| PR target/31331 |
| * config/avr/avr.c (avr_naked_function_p): Handle receiving a type |
| rather than a decl. |
| (avr_attribute_table): Make "naked" attribute apply to function types |
| rather than to decls. |
| (avr_handle_fntype_attribute): New function. |
| |
| 2007-07-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace |
| after \. |
| |
| 2007-07-04 David Ung <davidu@mips.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/mips.md (type): Add logical, signext and move. |
| (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3, |
| *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16, |
| *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend |
| combinations", *zero_extend<SHORT:mode><GPR:mode>2, |
| *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e, |
| *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit, |
| *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc, |
| *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16, |
| *movsf_hardfloat, *movsf_softfloat, *movsf_mips16, |
| *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, |
| movv2sf_hardfloat_64bit): Use the new types. |
| (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16, |
| *movdf_softfloat, *movdf_mips16): Use "multi". |
| (extendqihi2): Replace with a define_expand. |
| (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New. |
| Based on extend<SHORT:mode><GPR:mode>2 patterns. |
| * config/mips/74k.md (r74k_int_logical): New reservation and |
| bypasses. |
| (r74k_int_arith): Remove "slt". |
| * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md, |
| config/mips/5400.md, config/mips/5500.md, config/mips/5k.md, |
| config/mips/7000.md, config/mips/9000.md, config/mips/generic.md, |
| config/mips/sb1.md, config/mips/sr71k.md: Add new types to |
| reservations for "arith". |
| |
| 2007-07-04 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa.c (useless_type_conversion_p): Add handling for |
| scalar float and vector types. Only call the types_compatible_p |
| langhook for aggregate types as last resort. Follow the |
| rules. |
| |
| 2007-07-04 Richard Guenther <rguenther@suse.de> |
| |
| * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR |
| the same as NOP_EXPR. |
| |
| 2007-07-04 Nick Clifton <nickc@redhat.com> |
| |
| * target.h (struct gcc_target): Add target_help field. |
| * target-def.h (TARGET_HELP): New. |
| (TARGET_INITIALIZER): Use TARGET_HELP. |
| * opts.c (command_handle_option): Invoke target_help function, if |
| defined, when the user has specified --target-help on the command |
| line. |
| * doc/invoke.texi: Mention that --target-help might print |
| additional information. |
| * doc/tm.texi: Document TARGET_HELP hook. |
| |
| * arm.c (TARGET_HELP): Override default definition. |
| (arm_target_help): New - display a wrapped list of cores and |
| architectures supported. |
| |
| 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * config/v850/v850.c (expand_prologue): Make sure |
| GEN_INT() argument is sign extended rather than zero extended. |
| (expand_epilogue): Likewise. |
| (output_move_double): Delete. |
| * config/v850/v850-protos.h (output_move_double): Delete. |
| * config/v850/v850.md (movdi): Delete. |
| (*movdi_internal): Delete. |
| (movdf): Delete. |
| (*movdf_internal): Delete. |
| |
| 2007-07-04 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax |
| unless compiling RTP PIC. |
| |
| 2007-07-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32482 |
| * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the |
| original ssa name if we didn't find a shift expression. |
| Fix shift constant for bit zero test. |
| |
| 2007-07-04 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool. |
| |
| 2007-07-04 Richard Sandiford <richard@codesourcery.com> |
| |
| * config.gcc (arm-wrs-vxworks): Don't include svr4.h. |
| * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define. |
| * config/arm/vxworks.h (ASM_SPEC): Delete. |
| (SUBTARGET_EXTRA_ASM_SPEC): Define. |
| |
| 2007-07-04 Sebastian Pop <sebpop@gmail.com> |
| |
| * tree-data-ref.h (data_dependence_relation): New flag reversed_p. |
| (DDR_REVERSED_P): New. |
| * tree-data-ref.c (initialize_data_dependence_relation, |
| build_classic_dist_vector): Set DDR_REVERSED_P. |
| |
| 2007-07-04 Sebastian Pop <sebpop@gmail.com> |
| |
| PR middle-end/32457 |
| * tree-data-ref.c (analyze_siv_subscript_cst_affine, |
| compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine, |
| init_omega_for_ddr_1): Use non conservative number of iterations |
| estimations. |
| (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int. |
| (analyze_siv_subscript): Remove FIXME and reinitialization of |
| last_conflicts to chrec_dont_know. |
| * testsuite/gfortran.dg/vect/pr32457.f90: New. |
| |
| 2007-07-04 Douglas Gregor <doug.gregor@gmail.com> |
| |
| * tree.c (maybe_canonicalize_argtypes): Improve description. |
| |
| 2007-07-04 Douglas Gregor <doug.gregor@gmail.com> |
| |
| * tree.c (maybe_canonicalize_argtypes): New. |
| (build_function_type): Set canonical type. |
| (build_method_type_directly): Ditto. |
| (reconstruct_complex_type): Rebuild the METHOD_TYPE node |
| properly. |
| |
| 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR |
| like PLUS_EXPR. |
| (rewrite_use_nonlinear_expr): Likewise. |
| |
| 2007-07-03 Seongbae Park <seongbae.park@gmail.com> |
| |
| * rtl.def (UNSPEC, USE, CLOBBER): More comments. |
| |
| 2007-07-04 Ben Elliston <bje@au.ibm.com> |
| |
| * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top |
| of this file. |
| |
| * c-objc-common.c (c_types_compatible_p): Fix indentation. |
| |
| * doc/tm.texi (Run-time Target): Capitalise "CPU". |
| (Exception Handling): Likewise. |
| |
| 2007-07-03 Jan Hubicka <jh@suse.cz> |
| |
| * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing. |
| |
| 2007-07-03 Eric Christopher <echristo@apple.com> |
| |
| * doc/cppopts.texi: Add conflicting option note to -dM. |
| * doc/invoke.texi: Add note about possible conflicts with |
| -E for -dCHARS and note that -dM will not produce |
| any results if there is no machine dependent reorg. |
| |
| 2007-07-03 Geoffrey Keating <geoffk@apple.com> |
| |
| * tree.h (DECL_ALIGN): Back out previous change. |
| |
| 2007-07-03 Joseph Myers <joseph@codesourcery.com> |
| |
| * configure.ac: Test for .dtprelword support on MIPS. |
| * configure, config.in: Regenerate. |
| * config/mips/mips.c (mips_output_dwarf_dtprel): New. |
| (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define. |
| |
| 2007-07-03 Julian Brown <julian@codesourcery.com> |
| |
| * config.gcc (with_fpu): Allow --with-fpu=vfp3. |
| * config/arm/aout.h (REGISTER_NAMES): Add D16-D31. |
| * config/arm/aof.h (REGISTER_NAMES): Add D16-D31. |
| * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor |
| capability. |
| (all_fpus): Add FPUTYPE_VFP3. |
| (fp_model_for_fpu): Add VFPv3 field. |
| (arm_rtx_costs_1): Give cost to VFPv3 constants. |
| (vfp3_const_double_index): New function. Return integer index of |
| VFPv3 constant suitable for fconst[sd] insns, or -1 if constant |
| isn't suitable. |
| (vfp3_const_double_rtx): New function. True if VFPv3 is enabled |
| and argument represents a valid RTX for a VFPv3 constant. |
| (vfp_output_fldmd): Split fldmd with > 16 registers in the list into |
| two instructions. |
| (vfp_emit_fstmd): Similar, for fstmd. |
| (arm_print_operand): Implement new code 'G' for VFPv3 floating-point |
| constants, represented as integer indices. |
| (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE, |
| VFP_REGNO_OK_FOR_DOUBLE macros. |
| (arm_regno_class): Handle VFPv3 d0-d7, low, high register split. |
| (arm_file_start): Set float-abi attribute for VFPv3, and output |
| correct ".fpu" assembler directive. |
| (arm_dbx_register_numbering): Add FIXME. |
| * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3. |
| (fputype): Add FPUTYPE_VFP3. |
| (FIXED_REGISTERS): Add 32 registers for D16-D31. |
| (CALL_USED_REGISTERS): Likewise. |
| (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition |
| of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present. |
| (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3. |
| (D7_VFP_REGNUM): New. |
| (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM) |
| (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE) |
| (VFP_REGNO_OK_FOR_DOUBLE): Define new macros. |
| (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3. |
| (REG_ALLOC_ORDER): Adjust for VFPv3. |
| (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS. |
| (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS, |
| VFP_LO_REGS, VFP_HI_REGS. |
| (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS. |
| (IS_VFP_CLASS): Define macro. |
| (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use |
| IS_VFP_CLASS. |
| (REGISTER_MOVE_COST): Likewise. |
| * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype. |
| * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127. |
| (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp) |
| (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp) |
| (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp) |
| (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp) |
| (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp) |
| (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2) |
| (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2) |
| (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp) |
| (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't' |
| where appropriate for single-word registers. |
| (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp): |
| As above. Fix type attributes. |
| * config/arm/constraints.md (register_contraint "t"): Define. |
| (register_constraint "w"): Change to D0-D15, or D0-D31 for |
| VFPv3/NEON. |
| (register_constraint "x"): Define. |
| (constraint "Dv"): Define. |
| |
| 2007-07-03 Geoffrey Keating <geoffk@apple.com> |
| |
| * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL. |
| |
| 2007-07-03 Tom Tromey <tromey@redhat.com> |
| |
| * c-parser.c (objc_pq_context): Removed. |
| (objc_need_raw_identifier): Likewise. |
| (c_parser) <objc_pq_context>: New field. |
| <objc_need_raw_identifier>: Likewise. |
| (OBJC_NEED_RAW_IDENTIFIER): Removed. |
| (c_lex_one_token): Update. |
| (c_parser_objc_protocol_definition): Update. |
| (c_parser_objc_method_definition): Update. |
| (c_parser_objc_methodproto): Update. |
| (c_parser_declspecs): Update. |
| |
| 2007-07-03 David Ung <davidu@mips.com> |
| |
| * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors. |
| |
| 2007-07-03 David Ung <davidu@mips.com> |
| Richard Sandiford <richard@codesourcery.com> |
| |
| * doc/invoke.texi: Document -march=74kf3_2. |
| * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type. |
| (TUNE_74K): Check for it. |
| * config/mips/mips.c (mips_cpu_info): Add 74kf3_2. |
| (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2. |
| * config/mips/mips.md (cpu): Add 74kf3_2. |
| * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop) |
| (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo) |
| (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump) |
| (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add |
| 74kf3_2 to the CPU list. |
| (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore) |
| (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf) |
| (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df) |
| (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1) |
| (r74kf3_2_fxfer_from_c1): New insn reservations. |
| |
| 2007-07-03 Richard Sandiford <richard@codesourcery.com> |
| David Ung <davidu@mips.com> |
| |
| * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and |
| -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx] |
| and 74k[fx]. Document aliases for the new options. |
| * config/mips/mips.h (PROCESSOR_24KF): Rename to... |
| (PROCESSOR_24KF2_1): ...this. |
| (PROCESSOR_24KX): Rename to... |
| (PROCESSOR_24KF1_1): ...this. |
| (PROCESSOR_74KF): Rename to... |
| (PROCESSOR_74KF2_1): ...this. |
| (PROCESSOR_74KX): Rename to... |
| (PROCESSOR_74KF1_1): ...this. |
| (TUNE_74K): Update PROCESSOR_* names. |
| * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym |
| for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise |
| the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names. |
| (mips_rtx_cost_data): Update processor names in comments. |
| (mips_issue_rate): Update PROCESSOR_* names. |
| * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to |
| 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1. |
| * config/mips/24k.md: Rename FPU-related r24k_* insn reservations |
| to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*. |
| Update cpu attribute names. |
| (r24k_fpu_iss): Rename this reservation to... |
| (r24kf2_1_fpu_iss): ...this and update all uses. |
| (r24kx_fpu_iss): Rename this reservation to... |
| (r24kf1_1_fpu_iss): ...this and update all uses. |
| * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations |
| to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*. |
| Update cpu attribute names. |
| |
| 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/m32r/constraints.md: New file. |
| * config/m32r/m32r.c: Include tm-constrs.h. |
| (small_data_operand): Use satisfies_constraint_* instead of macro. |
| (addr24_operand, gen_compare): Likewise. |
| * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove. |
| (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT, |
| CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, |
| EXTRA_CONSTRAINT): Likewise. |
| * config/m32r/m32r.md: Include constraints.md. |
| (*movsi_insn): Use satisfies_constraint_* instead of macro. |
| (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise. |
| * config/m32r/predicates.md (conditional_move_operand): Likewise. |
| (two_insn_const_operand, int8_operand, uint16_operand, |
| reg_or_int16_operand, reg_or_uint16_operand, |
| reg_or_cmp_int16_operand, cmp_int16_operand, |
| seth_add3_operand): Likewise. |
| |
| 2007-07-03 Eric Christopher <echristo@gmail.com> |
| |
| * libgcc2.h: Conditionally declare __bswapsi2 and |
| __bswapdi2. |
| |
| 2007-07-03 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * ddg.c (check_sccs): Define only if ENABLE_CHECKING is |
| defined. |
| |
| 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| PR target/28307 |
| * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK] |
| (__gthrw_pragma): Provide default definition. |
| (__gthrw2): Use it. |
| * gthr-posix.c (__gthrw_pragma): Define. |
| |
| 2007-07-03 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p |
| before declaring inequality. |
| |
| 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * combine.c (recog_for_combine): Log the success or failure of |
| matching new insn patterns against the machine description in |
| detailed dumps. |
| |
| 2007-07-03 Revital Eres <eres@il.ibm.com> |
| |
| * ddg.c (print_sccs): New function. |
| (check_sccs): New function. |
| (create_ddg_all_sccs): Use it. |
| * ddg.h (print_sccs): Declare. |
| * modulo-sched.c (sms_order_nodes): Call print_sccs. |
| |
| 2007-07-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * targhooks.h (default_mode_for_suffix): New function declaration. |
| * targhooks.c (default_mode_for_suffix): New default target hook. |
| * target.h (struct c): New structure in the targetm struct. |
| (mode_for_suffix): New target hook as part of struct c. |
| target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as |
| default_mode_for_suffix. |
| (TARGET_C): New define. |
| * c-lex.c: Include "target.h". |
| (interpret_float): Use targetm.c.mode_for_suffix to determine |
| the mode for a given non-standard suffix. |
| Makefile.in (c-lex.o): Depend on $(TARGET_H). |
| |
| * config/i386/i386.c (ix86_c_mode_for_suffix): New static function. |
| (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix. |
| |
| * doc/extend.texi (Floating Types): New node. Document __float80 and |
| __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes. |
| |
| 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/32506 |
| * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand |
| predicate instead of target_operand. |
| (divsi3_i1_media, divsi3_media_2): Likewise. |
| |
| 2007-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.h (alias_sets_might_conflict_p): Rename into |
| alias_sets_must_conflict_p. |
| * alias.c (alias_sets_might_conflict_p): Likewise. |
| (alias_sets_conflict_p): Use it. |
| (objects_must_conflict_p): Likewise. |
| * c-common.c (strict_aliasing_warning): Adjust. |
| |
| 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * rtlhooks.c (gen_lowpart_if_possible): Check for |
| invalid subreg before calling gen_lowpart_SUBREG. |
| |
| 2007-07-02 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/darwin9.h: Add copyright notice. |
| (LINK_COMMAND_SPEC): Add comment. |
| (DARWIN_LIBSYSTEM_HAS_UNWIND): Define. |
| * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on |
| DARWIN_LIBSYSTEM_HAS_UNWIND. |
| |
| 2007-07-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libgomp/32468 |
| * omp-low.c (check_combined_parallel): New function. |
| (lower_omp_parallel): Call it via walk_stmts, set |
| OMP_PARALLEL_COMBINED if appropriate. |
| (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS |
| isn't the only statement in WS_ENTRY_BB or OMP_RETURN |
| the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED, |
| don't consider it as combined parallel. |
| |
| 2007-07-02 Richard Sandiford <richard@codesourcery.com> |
| |
| * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). |
| (gcc_tooldir): Likewise. |
| * configure: Regenerate. |
| * Makefile.in (libsubdir_to_prefix): New variable, based on the |
| old configure.ac gcc_tooldir setting. |
| (prefix_to_exec_prefix): New variable. |
| (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) |
| rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. |
| |
| 2007-07-02 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/32583 |
| Fix PR tree-optimization/32584 |
| * tree-ssa-pre.c (phi_translate): Always pass seen bitmap. |
| (phi_translate_set): Use phi_translate directly now. |
| (make_values_for_stmt): Don't value number RHS if we already know |
| it is constant. |
| |
| 2007-07-02 Steve Ellcey <sje@cup.hp.com> |
| Jim Wilson <wilson@specifix.com> |
| |
| PR target/31684 |
| * haifa-sched.c (add_to_speculative_block): Change copy_rtx to |
| copy_insn. |
| |
| 2007-07-02 Sandra Loosemore <sandra@codesourcery.com> |
| Richard Sandiford <richard@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * config/mips/mips-protos.h (mips16e_save_restore_info): New struct. |
| (mips16e_output_save_restore): Declare. |
| (mips16e_save_restore_pattern_p): Likewise. |
| * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro. |
| * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8 |
| for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16 |
| && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT. |
| (BITSET_P): New global macro, extracted from... |
| (mips_for_each_saved_reg): ...here. |
| (mips16e_save_restore_info): New struct. |
| (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables. |
| (mips16e_save_restore_regs): New variable. |
| (mips_split_plus, mips16e_find_first_register): New functions. |
| (mips16e_mask_registers): New function. |
| (compute_frame_size): Expand the commentary before the function. |
| Enforce the MIPS16e save and restore register range restrictions. |
| Pad the general register save area at the low end. |
| (mips16e_save_restore_reg, mips16e_build_save_restore) |
| (mips16e_save_restore_pattern_p, mips16e_add_register_range) |
| (mips16e_output_save_restore, mips16e_collect_propagate_value) |
| (mips16e_collect_argument_save, mips16e_collect_argument_saves): |
| New functions. |
| (mips_expand_prologue, mips_expand_epilogue): Handle |
| GENERATE_MIPS16E_SAVE_RESTORE. |
| * config/mips/mips.md (*mips16e_save_restore): New pattern. |
| |
| 2007-07-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/31966 |
| PR tree-optimization/32533 |
| * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not |
| "basic_block" description as its third argument. Update function |
| calls to get destination bb from "edge" argument. Save "cond" into |
| aux field of the edge. Update prototype for changed arguments. |
| (if_convertible_loop_p): Clear aux field of incoming edges if bb |
| contains phi node. |
| (find_phi_replacement_condition): Operate on incoming edges, not |
| on predecessor blocks. If there is a condition saved in the |
| incoming edge aux field, AND it with incoming bb predicate. |
| Return source bb of the first edge. |
| (clean_predicate_lists): Clean aux field of outgoing node edges. |
| (tree_if_conversion): Do not initialize cond variable. Move |
| variable declaration into the loop. |
| (replace_phi_with_cond_gimple_modify_stmt): Remove unneded |
| initializations of new_stmt, arg0 and arg1 variables. |
| |
| 2007-07-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p, |
| SSA_NAMEs, RESULT_DECLs and PARM_DECLs. |
| |
| 2007-07-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa.c (useless_type_conversion_p): Document |
| future intent as defining the middle-end type system. |
| Re-structure to call langhook last, group by type class, |
| mark questionable parts. |
| |
| 2007-07-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (types_compatible_p): Declare. |
| * tree-ssa.c (types_compatible_p): New function. |
| * ipa-type-escape.c (discover_unique_type): Use |
| types_compatible_p instead of lang_hooks.types_compatible_p. |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. |
| * tree-vn.c (expressions_equal_p): Likewise. |
| * tree.c (fields_compatible_p): Likewise. |
| * tree-ssa-dom.c (avail_expr_eq): Likewise. |
| (cprop_operand): Use useless_type_conversion_p instead of |
| lang_hooks.types_compatible_p. |
| * tree-inline.c (setup_one_parameter): Likewise. |
| (declare_return_variable): Likewise. |
| * tree-nrv.c (tree_nrv): Likewise. |
| * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. |
| (maybe_fold_offset_to_component_ref): Likewise. |
| (maybe_fold_offset_to_reference): Likewise. |
| * tree-ssa-copy.c (may_propagate_copy): Likewise. |
| (merge_alias_info): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. |
| * tree-ssa-phiopt.c (conditional_replacement): Likewise. |
| * tree-ssa-reassoc.c (optimize_ops_list): Likewise. |
| * tree-tailcall.c (find_tail_calls): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * gimplify.c (canonicalize_addr_expr): Likewise. |
| (fold_indirect_ref_rhs): Likewise. |
| (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type. |
| (cpt_same_type): Likewise. |
| (check_pointer_types_r): Swap parameters to cpt_same_type |
| where appropriate. |
| * fold-const.c (fold_convert): Revert fix for PR15988. |
| * tree-inline.c (setup_one_parameter): Instead fix it here by |
| using fold_build1 instead of fold_convert and checking for |
| error_mark_node. Convert only if the conversion is necessary. |
| |
| 2007-07-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * configure.ac: Check for .gnu_attribute on Power. |
| * configure: Regenerate. |
| * config/rs6000/rs6000.c (rs6000_file_start): If supported, output |
| attribute for floating-point ABI. |
| |
| 2007-07-02 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/32230 |
| PR tree-optimization/32477 |
| * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base |
| address is a constant. |
| |
| 2007-07-02 Richard Sandiford <richard@codesourcery.com> |
| |
| * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*) |
| (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*) |
| (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level |
| stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT. |
| Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the |
| 64-bit targets. Add support for *-elfoabi*. |
| * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use |
| different settings if $(tm_defines) does not select the EABI. |
| (MULTILIB_EXCLUSIONS): Define in those circumstances. |
| * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro. |
| (MIPS_ARCH_OPTION_SPEC): Likewise. |
| (MIPS_ISA_LEVEL_SPEC): Likewise. |
| (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC. |
| * config/mips/elfoabi.h: New file. |
| |
| 2007-07-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ... |
| (useless_type_conversion_p): ... this. |
| * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ... |
| (useless_type_conversion_p): ... this. |
| * builtins.c (fold_builtin_memory_op): Rename |
| tree_ssa_useless_type_conversion_1 to useless_type_conversion_p. |
| * tree-cfg.c (verify_expr): Likewise. |
| * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise. |
| * tree-ssa-ccp.c (ccp_fold): Likewise. |
| * tree-ssa-copy.c (may_propagate_copy): Likewise. |
| * tree-ssa-dom.c (eliminate_redundant_computations): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. |
| * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise. |
| * tree-ssa-pre.c (eliminate): Likewise. |
| * tree-ssa.c (delete_tree_ssa): Likewise. |
| (tree_ssa_useless_type_conversion): Likewise. |
| * tree.c (build2_stat): Likewise. |
| |
| 2007-07-01 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/32571 |
| * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid |
| simplifying them. |
| |
| 2007-07-01 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants |
| and other expected operations explicitly, change default to |
| gcc_unreachable. |
| |
| 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a |
| PARALLEL. |
| * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight) |
| (tls_load_dot_plus_eight): Move the label number into the unspec. |
| * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise. |
| |
| 2007-07-01 Andreas Schwab <schwab@suse.de> |
| |
| * dwarf2out.c (initial_return_save): Define only if used. |
| |
| 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| Unreverting Richard's Revert of: |
| |
| 2007-06-27 Richard Sandiford <richard@codesourcery.com> |
| |
| * dce.c (deletable_insn_p_1): New function, split out from... |
| (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs |
| specially, not those inside PARALLELs. Remove BODY argument |
| and adjust recursive call accordingly. |
| (prescan_insns_for_dce): Update call to delete_insn_p. |
| |
| 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com> |
| Revital Eres <eres@il.ibm.com> |
| |
| * ddg.c (create_ddg_all_sccs): Fix missed |
| initialization of scc_nodes. |
| |
| 2007-07-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/32559 |
| * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or |
| X + ~X to 1 only for INTEGRAL_TYPE_P type. |
| |
| 2007-06-30 Joseph Myers <joseph@codesourcery.com> |
| |
| * configure.ac: Check for .gnu_attribute on MIPS. |
| * configure, config.in: Regenerate. |
| * config/mips/mips.c (mips_file_start): If supported, output |
| attribute for floating-point ABI. |
| |
| 2007-06-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32433 |
| * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE. |
| (ffs_cmove): New expander to expand using ctz pattern. |
| (*ffs_cmove): Remove pattern. |
| (*ffs_no_cmove): Enable only for !TARGET_CMOVE. |
| (ffsdi2): Expand using ctz pattern. |
| (*ffs_rex64): Remove pattern. |
| |
| 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR rtl-optimization/32296 |
| * pa.md (return): Delete pattern. |
| (return_internal): Remove "(const_int 1)" from pattern. |
| (epilogue): Use return_internal pattern for trivial returns. |
| * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration. |
| * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h". |
| |
| 2007-06-30 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (is_exception_related): New function |
| (can_value_number_operation): Use it. |
| |
| 2007-06-30 Daniel Berlin <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/32540 |
| Fix PR tree-optimization/31651 |
| |
| * tree-ssa-sccvn.c: New file. |
| |
| * tree-ssa-sccvn.h: Ditto. |
| |
| * tree-vn.c: Include tree-ssa-sccvn.h |
| (val_expr_paid_d): Removed. |
| (value_table): Ditto. |
| (vn_compute): Ditto. |
| (val_expr_pair_hash): Ditto. |
| (val_expr_pair_expr_eq): Ditto. |
| (copy_vuses_from_stmt): Ditto. |
| (vn_delete): Ditto. |
| (vn_init): Ditto. |
| (shared_vuses_from_stmt): Ditto. |
| (print_creation_to_file): Moved up. |
| (sort_vuses): Ditto. |
| (sort_vuses_heap): Ditto. |
| (set_value_handle): Make non-static. |
| (make_value_handle): Ditto. |
| (vn_add): Rewritten to use sccvn lookups. |
| (vn_add_with_vuses): Ditto. |
| (vn_lookup): Ditto (and second argument removed). |
| (vn_lookup_with_vuses): Ditto. |
| (vn_lookup_or_add): Ditto (and second argument removed); |
| (vn_lookup_or_add_with_vuses): Ditto. |
| (vn_lookup_with_stmt): New. |
| (vn_lookup_or_add_with_stmt): Ditto. |
| (create_value_handle_for_expr): Ditto. |
| |
| * tree-ssa-pre.c: Include tree-ssa-sccvn.h. |
| (seen_during_translate): New function. |
| (phi_trans_lookup): Use iterative_hash_expr, not vn_compute. |
| (phi_trans_add): Ditto. |
| (constant_expr_p): FIELD_DECL is always constant. |
| (phi_translate_1): Renamed from phi_translate, add seen bitmap. |
| Use constant_expr_p. |
| Avoid infinite recursion on mutually valued expressions. |
| Change callers of vn_lookup_or_add. |
| (phi_translate): New function. |
| (compute_antic_safe): Allow phi nodes. |
| (create_component_ref_by_pieces): Update for FIELD_DECL change. |
| (find_or_generate_expression): Rewrite slightly. |
| (create_expression_by_pieces): Updated for vn_lookup_or_add |
| change. |
| Update VN_INFO for new names. |
| (insert_into_preds_of_block): Update for new names. |
| (add_to_exp_gen): New function. |
| (add_to_sets): Use vn_lookup_or_add_with_stmt. |
| (find_existing_value_expr): Rewrite to changed vn_lookup. |
| (create_value_expr_from): Ditto, and use add_to_exp_gen. |
| (try_look_through_load): Removed. |
| (try_combine_conversion): Ditto. |
| (get_sccvn_value): New function. |
| (make_values_for_phi): Ditto. |
| (make_values_for_stmt): Ditto. |
| (compute_avail): Rewritten for vn_lookup_or_add changes and to use |
| SCCVN. |
| (init_pre): Update for SCCVN changes. |
| (fini_pre): Ditto. |
| (execute_pre): Ditto. |
| |
| * tree-flow.h (make_value_handle): Declare. |
| (set_value_handle): Ditto. |
| (sort_vuses_heap): Ditto. |
| (vn_lookup_or_add_with_stmt): Ditto. |
| (vn_lookup_with_stmt): Ditto. |
| (vn_compute): Remove. |
| (vn_init): Ditto. |
| (vn_delete): Ditto. |
| (vn_lookup): Update arguments. |
| |
| * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h |
| (tree-vn.o): Ditto. |
| (tree-ssa-sccvn.o): New. |
| (OBJS-common): Add tree-ssa-sccvn.o |
| |
| 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR c/4076 |
| * c-typeck.c (build_external_ref): Don't mark as used if called |
| from itself. |
| * calls.c (rtx_for_function_call): Likewise. |
| |
| 2007-06-30 Richard Sandiford <richard@codesourcery.com> |
| |
| Revert: |
| |
| 2007-06-27 Richard Sandiford <richard@codesourcery.com> |
| |
| * dce.c (deletable_insn_p_1): New function, split out from... |
| (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs |
| specially, not those inside PARALLELs. Remove BODY argument |
| and adjust recursive call accordingly. |
| (prescan_insns_for_dce): Update call to delete_insn_p. |
| |
| 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * combine.c (combine_validate_cost): New parameter NEWOTHERPAT. |
| (try_combine): Move potential calls to undo_all() so they happen |
| before we commit to using the combined insns. |
| |
| 2007-06-30 Jan Hubicka <jh@suse.cz> |
| |
| * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit |
| code. |
| |
| 2007-06-30 Thomas Neumann <tneumann@users.sourceforge.net> |
| |
| * ipa.c (cgraph_postorder): Cast according to the coding conventions. |
| (cgraph_remove_unreachable_nodes): Likewise. |
| * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0. |
| * ipa-inline.c (update_caller_keys): Cast according to the coding |
| conventions. |
| (cgraph_decide_recursive_inlining): Likewise. |
| (cgraph_decide_inlining_of_small_function): Likewise. |
| (try_inline): Likewise. |
| (cgraph_decide_inlining_incrementally): Likewise. |
| * ipa-pure-const.c (get_function_state): Likewise. |
| (scan_function): Likewise. |
| (analyze_function): Likewise. |
| (static_execute): Likewise. |
| * ipa-reference.c (scan_for_static_refs): Likewise. |
| (merge_callee_local_info): Likewise. |
| (analyze_function): Use type safe memory macros. |
| (static_execute): Likewise. Cast according to the coding conventions. |
| * ipa-type-escape.c (scan_for_regs): Cast according to the coding |
| conventions. |
| * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable |
| names. |
| (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros. |
| * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as |
| variable names. |
| |
| 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/30024 |
| * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0] |
| for complex modes (both int and real). |
| |
| 2007-06-29 Jan Hubicka <jh@suse.cz> |
| |
| * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change. |
| |
| 2007-06-29 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/32372 |
| * cse.c (cse_insn): Avoid invalid sharing in between register note and |
| the insn pattern. |
| |
| 2007-06-29 Anatoly Sokolov <aesok@post.ru> |
| |
| PR target/32335 |
| * config/avr/avr.c: Include dataflow header file. |
| (expand_prologue): Adjust for prologue insn change. |
| * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once |
| inside a insn. |
| |
| 2007-06-29 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32493 |
| * gimplify.c (gimplify_call_expr): Ignore variable argument parts |
| during type verification. |
| |
| 2007-06-29 Jan Hubicka <jh@suse.cz> |
| |
| * recog.c (validate_change_rtx_1): Unshare TO argument. |
| |
| 2007-06-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/24659 |
| * tree-vect-transform.c (vectorizable_call): Handle |
| (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. |
| |
| * config/i386/sse.md (vec_pack_sfix_v2df): New expander. |
| * config/i386/i386.c (enum ix86_builtins) |
| [IX86_BUILTIN_VEC_PACK_SFIX]: New constant. |
| (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin |
| description. |
| (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as |
| const using def_builtin_const. |
| (ix86_expand_binop_builtin): Remove bogus assert() that insn wants |
| input operands in the same modes as the result. |
| (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT. |
| |
| 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * df-problems.c (df_set_unused_notes_for_mw): Fix formatting. |
| (df_set_dead_notes_for_mw): Likewise. |
| |
| 2007-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * c-common.c (pointer_int_sum): Do the negation in sizetype. |
| |
| 2007-06-28 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon. |
| |
| 2007-06-28 Geoffrey Keating <geoffk@apple.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Document |
| fvisibility-ms-compat. |
| * c.opt (fvisibility-ms-compat): New. |
| |
| 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/32417 |
| * tree-affine.c (aff_combination_add_elt): Handle |
| pointer addition specially. |
| |
| 2007-06-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure |
| decl is non-external for AIX ABI. |
| |
| 2007-06-28 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/predicates.md (current_file_function_operand): |
| Ensure the symbol is non-external for AIX ABI. |
| |
| 2007-06-28 Nick Clifton <nickc@redhat.com> |
| |
| * common.opt (fipa-matrix-reorg): Add Optimization attribute. |
| (fdce, fdse, fpredictive-commoning): Likewise. |
| |
| 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR other/31400 |
| * gcc.c (process_command): Recognize the new -static-libgfortran |
| option. |
| |
| 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32418 |
| * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix: |
| Use a call clobbered hard reg instead of a pseudo reg. |
| |
| 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.md (load_gbr): Use correct operand constraint. |
| |
| 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/32479 |
| * config/sh/sh.md (udivsi3): Don't wrap the sequence with |
| REG_LIBCALL and REG_RETVAL notes. |
| (divsi3, mulsi3): Likewise. |
| (mulhisi3): Likewise. Use emit_libcall_block. |
| (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise. |
| |
| 2007-06-27 Seongbae Park <seongbae.park@gmail.com> |
| |
| PR rtl-optimization/32481 |
| * combine.c (adjust_for_new_dest): Rescan the changed insn. |
| |
| 2007-06-27 Richard Sandiford <richard@codesourcery.com> |
| |
| * dce.c (deletable_insn_p_1): New function, split out from... |
| (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs |
| specially, not those inside PARALLELs. Remove BODY argument |
| and adjust recursive call accordingly. |
| (prescan_insns_for_dce): Update call to delete_insn_p. |
| |
| 2007-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32492 |
| * tree.h (fold_convertible_p): Declare. |
| * fold-const.c (fold_convertible_p): New function. |
| * gimplify.c (gimplify_call_expr): Use fold_convertible_p |
| instead of lang_hooks.types_compatible_p. |
| |
| 2007-06-26 Jan Hubicka <jh@suse.cz> |
| |
| * fwprop.c (try_fwprop_subst): Use validate_unshare_change. |
| * postreload.c (reload_cse_simplify_set): Instead of copying the rtx |
| early use validate_unshare_change. |
| (reload_combine): Likewise. |
| * recog.c (change_t): New field unshare. |
| (validate_change_1): Rename from validate_change; add argument unshare. |
| (validate_change): Turn into wrapper of validate_change_1; update |
| prototype for bools. |
| (validate_unshare_change): New. |
| (confirm_change_group): Unshare changes if asked for; avoid unnecesary |
| calls of df_insn_rescan. |
| * recog.h (validate_change): Replace ints by bools. |
| (validate_unshare_change): Declare. |
| |
| 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name. |
| |
| 2007-06-26 Steve Ellcey <sje@cup.hp.com> |
| |
| * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode. |
| |
| 2007-06-25 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (cgraph_mark_inline): Assert that we never inline |
| uninlinable call. |
| (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining, |
| cgraph_decide_inlining_incrementally): Move uninlinability checks to |
| places other call site specific checks are performed. |
| |
| 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/32421 |
| * tree-vect-transform.c (vectorizable_operation): Convert |
| POINTER_PLUS_EXPR over to PLUS_EXPR. |
| |
| 2007-06-25 Chao-ying Fu <fu@mips.com> |
| |
| * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ, |
| UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes. |
| Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. |
| Document GET_MODE_IBIT, and GET_MODE_FBIT. |
| |
| * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT, |
| MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. |
| (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P, |
| SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P, |
| SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P, |
| ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P, |
| ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P, |
| SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P, |
| ALL_FIXED_POINT_MODE_P): New define. |
| (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM, |
| MODE_UACCUM. |
| (GET_MODE_IBIT, GET_MODE_FBIT): New define. |
| |
| * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM, |
| MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, |
| MODE_VECTOR_UACCUM): New mode classes. |
| |
| * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE, |
| UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT. |
| Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, |
| USA, UDA, and UTA. |
| |
| * genmodes.c (struct mode_data): Add ibit and fbit fields. |
| (blank_mode): Initialize ibit and fbit. |
| (adj_ibit, adj_fbit): New to adjust ibit and fbit. |
| (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, |
| MODE_UACCUM. |
| (new_adjust): Change required_class to required_class_from and |
| required_class_to for testing within a range. |
| (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, |
| MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, |
| MODE_VECTOR_UACCUM. |
| (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define. |
| (make_fixed_point_mode): New. |
| (_ADD_ADJUST): Change C to C1 and C2. |
| (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to |
| use a range for machine classes. |
| (ADJUST_IBIT, ADJUST_FBIT): New. |
| (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and |
| CONST_MODE_FBIT. |
| (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, |
| MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. |
| Emit adjustment for ibit and fbit. |
| (emit_mode_ibit, emit_mode_fbit): New. |
| (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit. |
| |
| 2007-06-25 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand |
| as the source of the set. |
| |
| 2007-06-25 Roman Zippel <zippel@linux-m68k.org> |
| |
| * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P, |
| FP_REGNO_P): Use IN_RANGE. |
| (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. |
| (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New. |
| (DATA_REG_P): Use DATA_REGNO_P. |
| (FP_REG_P): Use FP_REGNO_P. |
| (ADDRESS_REG_P): Use ADDRESS_REGNO_P. |
| * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use |
| REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P. |
| |
| 2007-06-24 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/30563 |
| * cgraphunit.c (cgraph_analyze_function): Fix ordering problem. |
| |
| 2007-06-24 Sebastian Pop <sebpop@gmail.com> |
| |
| PR middle-end/32461 |
| * fold-const.c (fold_binary): Strip nops of operand 0 |
| of BIT_NOT_EXPR before calling operand_equal_p. |
| * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New. |
| * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New. |
| |
| 2007-06-23 Mark Mitchell <mark@codesourcery.com> |
| |
| * doc/extend.texi: Document that dllimport and dllexport imply |
| default visibility. |
| * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the |
| imported or exported declaration, including type declarations. |
| * c-common.c (handle_visibility_attribute): Check for conflicts |
| with dllimport/dllexport. |
| (c_determine_visibility): Handle dllimport/dllexport as an |
| explicit visibility atttribute. |
| |
| 2007-06-23 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/16876 |
| PR middle-end/29478 |
| * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag |
| for CALL_EXPRs. |
| * tree-inline.c (initialize_inlined_parameters): Do not call |
| lang_hooks.tree_inlining.convert_parm_for_inlining. |
| * cgraphbuild.c (initialize_inline_failed): Set inline failed |
| reason for mismatched types. |
| * gimplify.c (gimplify_call_expr): Verify the call expression |
| arguments match the called function type signature. Otherwise |
| mark the call expression to be not considered for inlining |
| using CALL_CANNOT_INLINE_P flag. |
| * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the |
| edges call expression. |
| (cgraph_decide_inlining_of_small_function): Likewise. |
| (cgraph_decide_inlining): Likewise. |
| * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): |
| Remove define. |
| * c-tree.h (c_convert_parm_for_inlining): Remove declaration. |
| * c-typeck.c (c_convert_parm_for_inlining): Remove. |
| * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining): |
| Remove declaration. |
| (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define. |
| * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): |
| Remove. |
| * langhooks.h (struct lang_hooks_for_tree_inlining): Remove |
| convert_parm_for_inlining member. |
| |
| 2007-06-23 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/31152 |
| * arm.md (negscc): Match the correct operand for optimized LT0 test. |
| Remove optimization for GT. |
| |
| 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/32437 |
| * dce.c (deletable_insn_p): Add extra parameter and recurse if insn |
| is a PARALLEL. |
| (prescan_insns_for_dce): Add extra parameter. |
| |
| 2007-06-23 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/31541 |
| * gimplify.c (mark_addressable): New function. |
| (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it. |
| |
| 2007-06-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/32374 |
| * expr.c (store_constructor): Do not clobber non-zeroed memory. |
| |
| 2007-06-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32413 |
| * config/i386/i386.c (ix86_register_move_cost): Rise the cost of |
| moves between MMX/SSE registers to at least 8 units to prevent |
| ICE caused by non-tieable SI/HI/QImodes in SSE registers. |
| |
| 2007-06-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (override_options): Correct x86_sahf |
| setting condition. |
| |
| 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-06-22 Roman Zippel <zippel@linux-m68k.org> |
| |
| * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE. |
| (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for |
| partial register accesses. |
| |
| 2007-06-21 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * fold-const.c (debug_fold_checksum): Move it under |
| ENABLE_FOLD_CHECKING. |
| |
| 2007-06-21 Sebastian Pop <sebpop@gmail.com> |
| |
| PR middle-end/20623 |
| * tree.h (debug_fold_checksum): Declared. |
| * fold-const.c (build_fold_addr_expr_with_type_1): New. |
| (build_fold_addr_expr_with_type, build_fold_addr_expr): Use |
| build_fold_addr_expr_with_type_1. |
| (fold_addr_expr, debug_fold_checksum): New. |
| (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME. |
| (fold_unary, fold_comparison, split_address_to_core_and_offset): |
| Use fold_addr_expr. |
| |
| 2007-06-21 Sebastian Pop <sebpop@gmail.com> |
| |
| PR tree-optimization/19590 |
| * tree-vrp.c (adjust_range_with_scev): Set the range when the result |
| of scev is a constant. |
| |
| 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * df-problems.c (df_note_bb_compute): Made computation of live |
| info consistent with df_lr. |
| |
| 2007-06-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32453 |
| * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR |
| for pointer anti-range. |
| |
| 2007-06-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (processor_target_table): Increase maximum |
| skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and |
| default 64bit. |
| |
| * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8 |
| byte alignment if > 8 byte alignment is preferred. |
| * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. |
| |
| 2007-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/31866 |
| * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing |
| if ASM_EXPR's input is not a SSA_NAME. |
| |
| PR middle-end/32362 |
| * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL, |
| but decl is a global var, instead return decl. |
| * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses |
| even for is_global_var decls, if they are private in some outer |
| context. |
| |
| 2007-06-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/32451 |
| * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags. |
| |
| 2007-06-21 Christian Bruel <christian.bruel@st.com> |
| |
| * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare. |
| * config/sh/sh.c (sh_loads_bankedreg_p): New function. |
| (push_regs): Changed saving order or banked registers. |
| (sh_expand_epilogue): Likewise. |
| * config/sh/sh.h (BANKED_REGISTER_P): New macro. |
| (FIRST_BANKED_REG): Likewise. |
| (LAST_BANKED_REG): Likewise. |
| * config/sh/sh.md (banked) New attribute. |
| (in_delay_slot): Check banked attribute. |
| |
| 2007-06-20 Sebastian Pop <sebpop@gmail.com> |
| |
| PR tree-optimization/32075 |
| * tree-data-ref.c (subscript_dependence_tester_1, |
| analyze_miv_subscript, analyze_overlapping_iterations, |
| add_distance_for_zero_overlaps, build_classic_dist_vector, |
| subscript_dependence_tester_1, analyze_overlapping_iterations, |
| subscript_dependence_tester, access_functions_are_affine_or_constant_p, |
| compute_affine_dependence, compute_all_dependences): Pass loop_nest |
| to evolution_function_is_affine_multivariate_p. |
| |
| 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. |
| |
| 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32335 |
| * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue |
| for TARGET_A16. |
| * config/m32c/prologue.md (epilogue_exitd_16): New. |
| (epilogue_reit_16): New. |
| (epilogue_exitd): Rename to epilogue_exitd_24. |
| (epilogue_reit): Rename to epilogue_reit_24. |
| |
| 2007-06-20 Seongbae Park <seongbae.park@gmail.com> |
| Maxim Kuvyrkov <mkuvyrkov@ispras.ru> |
| |
| * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg): |
| New counters. |
| * haifa-sched.c (queue_to_ready): Don't requeue next insn |
| if dbg_cnt (sched_insn) reaches the limit. |
| (choose_ready): New parameter INSN_PTR and new return value. |
| (schedule_block): Handle dbg_cnt (sched_insn). Handle |
| the new return value from choose_ready. |
| * global.c (global_aloc): New dbgcnt global_alloc_at_reg. |
| (rest_of_handle_global_alloc): New global_alloc_at_func. |
| |
| 2007-06-20 Adam Nemet <anemet@caviumnetworks.com> |
| |
| PR tree-optimization/25737 |
| * tree.h (struct tree_struct_field_tag): Add new field alias_set. |
| (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros. |
| * tree-flow.h (struct fieldoff): Add new field alias_set. |
| * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new |
| argument addressable_type. Set alias_set of fieldoff. |
| * tree-ssa-alias.c (create_sft): Add new argument alias_set. |
| (create_overlap_variables_for): Pass alias_set from fieldoff to |
| create_sft. |
| * alias.c (get_alias_set): Use alias_set from SFT if set. |
| |
| 2007-06-20 Hui-May Chang <hm.chang@apple.com> |
| |
| * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size |
| of a variable as an unsigned HOST_WIDE_INT integer. |
| |
| 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR rtl-optimization/32405 |
| * loop-iv.c (iv_get_reaching_def): Fail for partial defs. |
| |
| 2007-06-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H). |
| |
| PR middle-end/31959 |
| * builtins.c: Include diagnostic.h. |
| (expand_builtin_expect): Make gcc_assert more permissive. |
| * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H). |
| |
| PR inline-asm/32109 |
| * gimplify.c (gimplify_asm_expr): Issue error if type is addressable |
| and !allows_mem. |
| |
| PR middle-end/32285 |
| * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments |
| if ACCUMULATE_OUTGOING_ARGS. |
| |
| 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| * config/m68hc11/m68hc11.c: Include dataflow header file. |
| (m68hc11_reorg): Port to dataflow. |
| |
| 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. |
| (struct df_problem.free_blocks_on_set_blocks): New field. |
| (struct dataflow.optional_p): New field. |
| (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. |
| (df_live_set_all_dirty): New function. |
| * df-scan.c (df_scan_alloc): Initialize optional_p. |
| (problem_SCAN): Initialize free_blocks_on_set_blocks. |
| * df-core.c (df_set_blocks): Removed use of |
| DF_FIRST_OPTIONAL_PROBLEM. Now uses |
| df_problem.free_blocks_on_set_blocks to determine which blocks are |
| recycled. |
| (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM. |
| (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now |
| uses dataflow.optional_p to determine if problem should be |
| deleted. |
| (rest_of_handle_df_initialize): Only start live problem if |
| -02 or above. |
| (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. |
| * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc, |
| df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p. |
| (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN, |
| problem_NOTE): Initialize free_blocks_on_set_blocks. |
| (df_lr_bb_local_compute): Recompute luids if df_live problem is |
| not active. |
| (df_live_set_all_dirty, df_note_alloc): New function. |
| * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to |
| df_get_live_*. |
| * sched_ebb.c (compute_jump_reg_dependencies): Ditto. |
| * postreload.c (reload_combine): Ditto. |
| * cse.c (cse_extended_basic_block): Ditto. |
| * regmove.c (mark_flags_life_zones): Ditto. |
| * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq, |
| erase_matching_seqs): Ditto. |
| * bt-load.c (compute_defs_uses_and_gen): Ditto. |
| * integrate (allocate_initial_values): Ditto. |
| * combine.c (reg_dead_at_p): Ditto. |
| * resource.c (mark_target_live_regs): Ditto. |
| * sched-rgn.c (check_live_1, update_live_1): Ditto. |
| * config/sh/sh.c (find_r0_life_regions): Ditto. |
| * global.c (rest_of_handle_global_alloc): Only add back df_live |
| for -O > 1. |
| * local-alloc.c (rest_of_handle_local_alloc): Only remove |
| df_live for -O > 1. |
| * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to |
| df_get_live_*. |
| (if_convert): Make sure df_live is there at -O == 1. |
| (pass_if_after_combine): Cleanup flags. |
| * init-regs.c (initialize_uninitialized_regs): Make sure df_live |
| is there at -O == 1. |
| |
| 2007-06-19 Seongbae Park <seongbae.park@gmail.com> |
| |
| * config/arm/arm.c (arm_get_frame_offsets): Set |
| offsets->locals_base to avoid negative stack size. |
| (thumb1_expand_prologue): Assert on negative stack size. |
| |
| 2007-06-19 Sebastian Pop <sebpop@gmail.com> |
| |
| PR tree-optimization/32367 |
| * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side |
| of the chrec has no evolution in that loop. |
| * testsuite/gcc.dg/tree-ssa/pr32367.c: New. |
| |
| 2007-06-19 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c: Include "df.h". |
| (xtensa_builtin_saveregs): Use adjust_address instead of |
| change_address. |
| (xtensa_va_start): Invoke make_tree with sizetype for |
| expand_builtin_saveregs and then convert the result to a pointer. |
| Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst. |
| (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst. |
| Subtract argument size from index value as integers and then use |
| POINTER_PLUS_EXPR to add the result to the array address. |
| |
| 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32335 |
| * config/m32c/m32c.c: Include dataflow header file. |
| (m32c_emit_prologue): Adjust for prologue insn change. |
| * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO |
| once inside a PARALLEL. Assume frame size passed in operand 0 |
| includes space to save the fb register. |
| (prologue_enter_24): Likewise. |
| (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL. |
| |
| 2007-06-19 David Daney <ddaney@avtrex.com |
| |
| PR target/32313 |
| * config/mips/mips.md (cprestore): Mark $gp as used. |
| |
| 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32369 |
| * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix. |
| (frv_ifcvt_modify_insn): Likewise. |
| |
| 2007-06-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (handle_ptr_arith): Make sure to |
| only handle positive offsets that fit in a HOST_WIDE_INT. |
| |
| 2007-06-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity |
| result of rsqrt insn for zero input argument to avoid NaN. |
| |
| 2007-06-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/31950 |
| * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs. |
| |
| 2007-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/32353 |
| * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL. |
| |
| 2007-06-19 Nick Clifton <nickc@redhat.com> |
| |
| * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread. |
| |
| 2007-06-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32389 |
| * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL. |
| * config/i386/i386.c (assign_386_stack_local): Assert that |
| SLOT_VIRTUAL is valid only before virtual regs are instantiated. |
| (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]: |
| Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP. |
| * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto. |
| |
| 2007-06-18 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New. |
| |
| 2007-06-18 Seongbae Park <seongbae.park@gmail.com> |
| |
| PR rtl-optimization/32321 |
| * gcse.c (replace_store_insn): Update the note before |
| calling emit_insn_after. |
| |
| 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/32355 |
| * gcse (rest_of_handle_gcse): Add call to df_finish_pass after |
| cse_main. |
| * df-problems.c (df_note_bb_compute): Fix dumping info. |
| |
| 2007-06-18 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return |
| insn with emit_jump_insn. |
| |
| 2007-06-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/32383 |
| * targhooks.c (default_builtin_reciprocal): Add new bool argument. |
| * targhooks.h (default_builtin_reciprocal): Update prototype. |
| * target.h (struct gcc_target): Update builtin_reciprocal. |
| * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description. |
| * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements |
| where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal |
| when fndecl is in BUILT_IN_MD class. |
| (execute_convert_to_rsqrt): Ditto. |
| |
| * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool |
| argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true. |
| Convert BUILT_IN_SQRTF code only when md_fn is false. |
| |
| 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * bt-load.c (move_btr_def): Fix the order of arguments |
| to validate_replace_rtx. |
| |
| 2007-06-18 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/m68k/m68k-devices.def: Add 54450..54455. |
| |
| 2007-06-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/32366 |
| * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE, |
| FLOAT_EXTEND]: Prevent non-scalar modes from entering |
| significand_size. |
| |
| 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/32349 |
| * modulo-sched (generate_reg_moves): Added rescan parameter and if |
| this is true, rescan insn being modified. |
| (sms_schedule): Added rescan parameter. |
| (rest_of_handle_sms): Moved freeing of dominance info to before |
| getting out of cfg_layout. |
| |
| 2007-06-17 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New. |
| * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as |
| appropriate. |
| |
| * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and |
| FL_CF_EMAC from the entry for isac. |
| |
| * config/m68k/predicates.md (const_call_operand): Adjust comment. |
| (const_sibcall_operand): New. |
| (sibcall_operand): Use it. |
| * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible. |
| (m68k_isas): ISAC does not imply FPU or EMAC. |
| (override_options): Add ISA_C logic for symbolic jump & call. |
| |
| 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the |
| return mode from the builtin itself. |
| (sparc_fold_builtin): Fix cast of zero constant. |
| |
| 2007-06-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * targhooks.c (default_builtin_reciprocal): New default target hook. |
| * targhooks.h (default_builtin_reciprocal): Add prototype. |
| * hooks.c (hook_tree_tree_bool_null): Remove hook. |
| * hooks.h (hook_tree_tree_bool_null): Remove prototype. |
| * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as |
| default_builtin_reciprocal. |
| |
| 2007-06-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/31723 |
| * hooks.c (hook_tree_tree_bool_null): New hook. |
| * hooks.h (hook_tree_tree_bool_null): Add prototype. |
| * tree-pass.h (pass_convert_to_rsqrt): Declare. |
| * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt. |
| * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b) |
| and convert it to reciprocal a*rfunc(b). |
| (execute_convert_to_rsqrt): New function. |
| (gate_convert_to_rsqrt): New function. |
| (pass_convert_to_rsqrt): New pass definition. |
| * target.h (struct gcc_target): Add builtin_reciprocal. |
| * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define. |
| (TARGET_INITIALIZER): Initialize builtin_reciprocal with |
| TARGET_BUILTIN_RECIPROCAL. |
| * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document. |
| |
| * config/i386/i386.h (TARGET_RECIP): New define. |
| * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf |
| for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and |
| flag_unsafe_math_optimizations are set, flag_trapping_math is unset |
| and not optimizing for size. |
| (*rcpsf2_sse): New insn pattern. |
| (*rsqrtsf2_sse): Ditto. |
| (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf |
| for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and |
| flag_unsafe_math_optimizations are set, flag_trapping_math is unset |
| and not optimizing for size. |
| (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf |
| for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and |
| flag_unsafe_math_optimizations are set, flag_trapping_math is unset |
| and not optimizing for size. |
| * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf |
| for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and |
| flag_unsafe_math_optimizations are set, flag_trapping_math is unset |
| and not optimizing for size. |
| (*sse_rsqrtv4sf2): Do not export. |
| (sqrtv4sf2): Ditto. |
| (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf |
| for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and |
| flag_unsafe_math_optimizations are set, flag_trapping_math is unset |
| and not optimizing for size. |
| (sqrtv4sf2): Ditto. |
| * config/i386/i386.opt (mrecip): New option. |
| * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare. |
| (ix86_emit_swsqrtsf): Ditto. |
| * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant. |
| (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New |
| builtin definition. |
| (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using |
| ix86_expand_unop1_builtin. |
| (ix86_emit_swdivsf): New function. |
| (ix86_emit_swsqrtsf): Ditto. |
| (ix86_builtin_reciprocal): New function. |
| (TARGET_BUILTIN_RECIPROCAL): Use it. |
| (ix86_vectorize_builtin_conversion): Rename from |
| ix86_builtin_conversion. |
| (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function. |
| * doc/invoke.texi (Machine Dependent Options): Add -mrecip to |
| "i386 and x86_64 Options" section. |
| (Intel 386 and AMD x86_64 Options): Document -mrecip. |
| |
| 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| Zdenek Dvorak <dvorakz@suse.cz> |
| Richard Guenther <rguenther@suse.de> |
| Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * tree-vrp.c (compare_values_warnv): Convert val2 to |
| the type of val1. |
| (extract_range_from_assert): Create |
| POINTER_PLUS_EXPR for pointer types. |
| (extract_range_from_binary_expr): Handle |
| only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR |
| for pointer types. |
| * doc/c-tree.texi (POINTER_PLUS_EXPR): Document. |
| * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle |
| POINTER_PLUS_EXPR as PLUS_EXPR. |
| (number_of_iterations_lt_to_ne): |
| For pointer types, use sizetype when |
| creating MINUS_EXPR/PLUS_EXPRs. |
| (assert_loop_rolls_lt): For pointer types, use sizetype when |
| creating MINUS_EXPR/PLUS_EXPRs. |
| (number_of_iterations_le): Likewise. |
| (expand_simple_operations): POINTER_PLUS_EXPR are simple also. |
| (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just |
| like PLUS_EXPR and MINUS_EXPR. |
| * tree-pretty-print.c (dump_generic_node): Handle |
| POINTER_PLUS_EXPR. |
| (op_prio): Likewise. |
| (op_symbol_1): Likewise. |
| * optabs.c (optab_for_tree_code): Likewise. |
| * tree-ssa-loop-manip.c (create_iv): Handle pointer base |
| specially. |
| * tree-tailcall.c (process_assignment): Mention |
| POINTER_PLUS_EXPR in a TODO comment. |
| * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or |
| MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR |
| not used with a pointer and an integer type. |
| * tree-scalar-evolution.c (add_to_evolution_1): Convert the |
| increment using chrec_convert_rhs instead of chrec_convert. |
| (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like |
| PLUS_EXPR except for the right hand side's type will be |
| sizetype. |
| (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR. |
| (fold_used_pointer_cast): Kill. |
| (pointer_offset_p): Kill. |
| (fold_used_pointer): Kill. |
| (pointer_used_p): Kill. |
| (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't |
| call fold_used_pointer. |
| (instantiate_parameters_1): Convert the increment |
| using chrec_convert_rhs instead of chrec_convert. |
| Handle POINTER_PLUS_EXPR as PLUS_EXPR. |
| * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR |
| instead of PLUS_EXPR. |
| (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of |
| PLUS_EXPR for pointers. |
| (std_gimplify_va_arg_expr): Likewise. |
| (fold_builtin_memory_op): Likewise. |
| (fold_builtin_strstr): Likewise. |
| (fold_builtin_strchr): Likewise. |
| (fold_builtin_strrchr): Likewise. |
| (fold_builtin_strpbrk): Likewise. |
| (expand_builtin_memory_chk): Likewise. |
| (fold_builtin_memory_chk): Likewise. |
| (std_expand_builtin_va_start): Use |
| sizetype for the call to make_tree and then convert |
| to the pointer type. |
| (fold_builtin_memchr): Use POINTER_PLUS_EXPR |
| instead of PLUS_EXPR for adding to a pointer. |
| (std_gimplify_va_arg_expr): Use fold_build2 for |
| the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast |
| the operands to sizetype first and then cast the BIT_AND_EXPR |
| back to the pointer type. |
| * fold-const.c (build_range_check): Handle pointer types |
| specially. |
| (extract_array_ref): Look for POINTER_PLUS_EXPR instead |
| of PLUS_EXPR's. Make sure the offset is converted to |
| sizetype. |
| (try_move_mult_to_index): Strip the NOPs from the offset. |
| Remove code argument and replace all uses with PLUS_EXPR. |
| (fold_to_nonsharp_ineq_using_bound): Handle pointer types |
| specially. Don't use a pointer type for MINUS_EXPR. |
| (fold_unary): Handle for (T1)(X op Y), |
| only p+ as that is the only as that can be handled for |
| binary operators now. |
| (fold_binary <case POINTER_PLUS_EXPR>): Add folding of |
| POINTER_PLUS_EXPR. |
| <case PLUS_EXPR>: Add folding of PTR+INT into |
| PTR p+ INT. |
| Don't call try_move_mult_to_index. |
| <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B) |
| into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into |
| (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies. |
| Don't call try_move_mult_to_index. |
| (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR. |
| (tree_expr_nonzero_p): Likewise. |
| (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead |
| of PLUS_EXPR for the complex expression folding. |
| * tree-chrec.c (chrec_fold_plus_poly_poly): If the |
| first chrec is a pointer type, then the second should |
| be sizetype and not the first's type. |
| For POINTER_PLUS_EXPR, use a different right hand side type. |
| Handle POINTER_PLUS_EXPR like PLUS_EXPR. |
| (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a |
| different right hand side type. |
| Handle POINTER_PLUS_EXPR like PLUS_EXPR. |
| (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR |
| instead of PLUS_EXPR. |
| When either operand is zero, convert the other operand. |
| (chrec_apply): Use chrec_convert_rhs |
| on the argument x instead of chrec_convert. |
| (reset_evolution_in_loop): For pointer types, the new_evol |
| should be sizetype. |
| (convert_affine_scev): For POINTER_PLUS_EXPR, use a |
| different right hand side type. |
| Handle POINTER_PLUS_EXPR like PLUS_EXPR. |
| (chrec_convert_rhs): New function. |
| (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a |
| different right hand side type. |
| Handle POINTER_PLUS_EXPR like PLUS_EXPR. |
| * tree-chrec.h (chrec_convert_rhs): New prototype. |
| (build_polynomial_chrec): For pointer types, the right hand |
| * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for |
| POINTER_PLUS_EXPR instead of PLUS_EXPR's. |
| Remove subtraction case as it is always addition now. |
| Make sure the offset is converted to sizetype. |
| (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially. |
| Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before. |
| * tree-ssa-loop-ivopts.c (determine_base_object): Abort for |
| PLUS_EXPR in pointer type. |
| Handle POINTER_PLUS_EXPR. |
| (tree_to_aff_combination): Likewise. |
| (force_expr_to_var_cost): Likewise. |
| (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR |
| instead of PLUS_EXPR for pointers. |
| * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR |
| instead of PLUS_EXPR of pointer types. |
| * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR |
| as PLUS_EXPR. |
| (check_va_list_escapes): Likewise. |
| (check_all_va_list_escapes): Likewise. |
| * dwarf2out.c (loc_descriptor_from_tree_1): |
| Handle POINT_PLUS_EXPR as a PLUS_EXPR. |
| * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR. |
| (string_constant): Likewise. |
| * tree-ssa-address.c (tree_mem_ref_addr): When adding |
| the offset to the base, use POINTER_PLUS_EXPR. |
| (add_to_parts): Convert the index to sizetype. |
| (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case. |
| * matrix-reorg.c (collect_data_for_malloc_call): Stmt |
| will now only be either INDIRECT_REF and POINTER_PLUS_EXPR. |
| Offset only holds something for PLUS_EXPR. |
| (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as |
| a PLUS_EXPR. |
| (analyze_transpose): POINTER_PLUS_EXPR will only show up now |
| and not PLUS_EXPR. |
| (analyze_accesses_for_modify_stmt): Likewise. |
| Remove comment about the type being integral type as it is |
| wrong now. |
| (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as |
| PLUS_EXPR. |
| (transform_access_sites): POINTER_PLUS_EXPR will only show up now |
| and not PLUS_EXPR. |
| Correct the type which the artimentic is done in (is now |
| sizetype). |
| Reindent one loop. |
| * tree-data-ref.c (split_constant_offset): Handle |
| POINTER_PLUS_EXPR |
| * tree-affine.c (tree_to_aff_combination): Likewise. |
| * c-typeck.c (build_unary_op): For pointers create the increment |
| as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR |
| for pointers. |
| * gimplify.c (gimplify_self_mod_expr): Create a |
| POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. |
| (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR. |
| * tree.def (POINTER_PLUS_EXPR): New tree code. |
| * tree-predcom.c (ref_at_iteration): If we have a pointer |
| type do the multiplication in sizetype. |
| * tree-mudflap.c (mf_xform_derefs_1): Create a |
| POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. |
| * tree-ssa-forwprop.c |
| (forward_propagate_addr_into_variable_array_index): |
| Don't expect there to be a cast for the index as that |
| does not exist anymore. |
| (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR |
| instead of PLUS_EXPR. |
| Don't check for the first operand of the POINTER_PLUS_EXPR |
| was the index as it cannot be. |
| Call forward_propagate_addr_into_variable_array_index with |
| the SSA_NAME instead of the statement. |
| * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR. |
| (compare_constant): Likewise. |
| (copy_constant): Likewise. |
| (compute_reloc_for_constant): Likewise. |
| (output_addressed_constants): Likewise. |
| (initializer_constant_valid_p): Likewise. |
| * tree-ssa.c (tree_ssa_useless_type_conversion_1): |
| Convert the MIN/MAX of the inner type to the outer |
| type before comparing them. |
| * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle |
| POINTER_PLUS_EXPR instead of PLUS_EXPR. |
| (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead |
| of PLUS_EXPR for pointers. |
| * tree-inline.c (estimate_num_insns_1): Handle |
| POINTER_PLUS_EXPR. |
| * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): |
| Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. |
| (bump_vector_ptr): Create a POINTER_PLUS_EXPR |
| instead of PLUS_EXPR for the pointer increment statement. |
| (vect_update_ivs_after_vectorizer): For pointer types, create |
| POINTER_PLUS_EXPR instead of PLUS_EXPR and also create |
| MULT_EXPR in sizetype. |
| (vect_gen_niters_for_prolog_loop): Add a cast when creating |
| byte_misalign. |
| * tree-object-size.c (plus_expr_object_size): Handle |
| POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra |
| code which is trying to figure out which side is a pointer and |
| is the index. |
| (check_for_plus_in_loops_1): Likewise. |
| (check_for_plus_in_loops): Likewise. |
| * c-common.c (pointer_int_sum): Create a |
| POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. |
| * tree-ssa-structalias.c (handle_ptr_arith): Handle |
| only POINTER_PLUS_EXPR. Removing all the extra |
| code which is trying to figure out which side is a pointer and |
| is the index. |
| * tree-cfg.c (verify_expr): Add extra checking for pointers and |
| PLUS_EXPR and MINUS_EXPR. |
| Also add checking to make sure the operands of POINTER_PLUS_EXPR |
| are correct. |
| * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype |
| with make_tree, instead of a pointer type. |
| * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR |
| for pointers instead of PLUS_EXPR. |
| (s390_gimplify_va_arg): Likewise. |
| * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR |
| instead of PLUS_EXPR when doing addition on pointer |
| types. Use sizetype for the second operand. |
| (spu_gimplify_va_arg_expr): Likewise. |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): Use |
| POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was |
| a pointer. Don't create a BIT_AND_EXPR for pointer types. |
| * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR |
| for the pointer addition and also use size_int/sizetype |
| for the offset. |
| (ix86_gimplify_va_arg): Likewise. |
| Perform BIT_AND_EXPR on sizetype arguments. |
| * config/sh/sh.c (sh_va_start): Call make_tree with sizetype |
| and convert its result to a pointer type. Use POINTER_PLUS_EXPR |
| for the pointer additions and also use size_int for the offsets. |
| (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer |
| additions and also use size_int for the offsets. Perform |
| BIT_AND_EXPR on sizetype arguments. |
| * config/ia64/ia64.c (ia64_gimplify_va_arg): Use |
| POINTER_PLUS_EXPR for pointers and create the |
| BIT_AND_EXPR in sizetype. |
| * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR |
| instead of PLUS_EXPR for pointer addition. |
| (rs6000_va_start): Likewise. |
| Also use sizetype for the offset. |
| * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR |
| as PLUS_EXPR/MINUS_EXPR. |
| (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or |
| PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR. |
| Don't use BIT_AND_EXPR on a pointer type, convert the |
| expression to sizetype first. |
| * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR |
| for pointers. |
| (mips_gimplify_va_arg_expr): Likewise. |
| Don't create BIT_AND_EXPR in a pointer type. |
| |
| 2007-06-15 Eric Christopher <echristo@apple.com> |
| |
| * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc. |
| (x86_64-*-darwin*): Ditto. |
| * config/i386/darwin.h (CRTEND_SPEC): New. Add support |
| for above. |
| |
| 2007-06-15 Matthew Wilcox <matthew@wil.cx> |
| |
| * doc/extend.texi: Document behavior of __attribute__((aligned)) |
| on typedefs. |
| |
| 2007-06-15 Mark Mitchell <mark@codesourcery.com> |
| |
| * rtlanal.c (note_stores): Improve documentation. |
| |
| 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL, |
| LOCAL_LABEL_PREFIX): Delete. |
| * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete. |
| (bfin_internal_label): Delete. |
| |
| 2007-06-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3, |
| define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128, |
| otherwise define to LIBGCC2_TF_CEXT. |
| * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define. |
| (LIBGCC_TF_CEXT): Ditto. |
| (TF_SIZE): Ditto. |
| |
| 2007-06-14 Seongbae Park <seongbae.park@gmail.com> |
| |
| PR rtl-optimization/32339 |
| * df-scan.c (df_uses_record): Don't modify flags but just add to |
| it for df_ref_record. |
| |
| 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * tree-mudflap.c: Fix whitespace issues. |
| |
| 2007-06-15 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove. |
| |
| 2007-06-14 Eric Christopher <echristo@apple.com> |
| |
| * config/i386/sse.md (movdi_to_sse): Rewrite body. |
| (movv4sf): Use gcc_unreachable instead of abort. |
| |
| 2007-06-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32268 |
| * config/i386/sfp-machine.h (CMPtype): New define. |
| (mach stubs): Use CMPtype instead of int as a return type. |
| |
| 2007-06-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c, |
| config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c, |
| config/soft-fp/gesf2.c, config/soft-fp/getf2.c, |
| config/soft-fp/ledf2.c, config/soft-fp/lesf2.c, |
| config/soft-fp/letf2.c, config/soft-fp/unorddf2.c, |
| config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c, |
| config/soft-fp/soft-fp.h: Update from glibc CVS. |
| |
| 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/uclinux.h (MFWRAP_SPEC): New. |
| |
| 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk> |
| |
| PR target/32341 |
| * config/v850/v850.c: Include dataflow header file. |
| (substitute_ep_register): Fix typo. |
| |
| 2007-06-14 Paolo Bonzini <bonzini@gnu.org> |
| |
| * configure.ac: Fix earlier checkin. |
| * configure: Regenerated. |
| |
| 2007-06-14 Paolo Bonzini <bonzini@gnu.org> |
| |
| * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove. |
| * aclocal.m4: Regenerate. |
| * configure.ac: Use ACX_PROG_CC_WARNING_OPTS, |
| ACX_PROG_CC_WARNINGS_ARE_ERRORS, |
| ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER. |
| * configure: Regenerate. |
| * Makefile.in (LOOSE_WARN): Subst loose_warn. |
| |
| * Makefile.in (quickstrap): Build libgcc too. |
| |
| 2007-06-14 Paolo Bonzini <bonzini@gnu.org> |
| |
| * configure.ac: Add --enable-checking=df. Explicitly mention that |
| the variables are initialized as for "release". |
| * df-core.c: Use it. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2007-06-14 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use |
| validate_replace_rtx instead of replace_rtx. |
| (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx. |
| |
| 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define. |
| (DWARF2_UNWIND_INFO): Override default if configured with |
| SJLJ EH disabled. |
| * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o. |
| (ENDFILE_SPEC): Add crtend.o. |
| * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o. |
| (ENDFILE_SPEC): Add crtend.o. |
| (TARGET_USE_JCR_SECTION): Define. |
| (MD_UNWIND_SUPPORT): Define for 32-bit target. |
| |
| * config/i386/cygming-crtbegin.c: New file. |
| * config/i386/cygming-crtend.c: New file. |
| |
| 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com> |
| |
| * config/i386/w32-unwind.h: New file. |
| |
| 2007-06-13 Eric Christopher <echristo@apple.com> |
| |
| * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let |
| the user set a value below STACK_BOUNDARY. |
| |
| 2007-06-13 Thiemo Seufer <ths@networkno.de> |
| |
| * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always |
| imply -lpthread for -pthread. |
| |
| 2007-06-13 Kazu Hirata <kazu@codesourcery.com> |
| |
| * basic-block.h: Remove the prototype for |
| free_basic_block_vars. |
| * cfglayout.h: Remove the prototype for |
| insn_locators_initialize. |
| * tree.h: Remove the prototype for emit_line_note. |
| |
| * tree-ssa-pre.c (mergephitemp): Remove. |
| (init_pre): Don't use mergephitemp. |
| |
| 2007-06-13 Eric Christopher <echristo@apple.com> |
| |
| * config/i386/i386.c (override_options): If we've specified |
| an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs. |
| |
| 2007-06-13 Bob Wilson <bob.wilson@acm.org> |
| |
| * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM |
| is defined. |
| |
| 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem. |
| * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant. |
| (eh_store_handler): New pattern. |
| (eh_return): Emit it instead of a plain move. |
| |
| 2007-06-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_init_mmx_sse_builtins) |
| [__builtin_infq, __builtin_fabsq]: Define usign def_builtin. |
| [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using |
| def_builtin_const. |
| |
| 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables. |
| (find_next_insn_start, find_load): New functions. |
| (bfin_reorg): Use them to deal with the fact that parallel insns are |
| no longer represented as a SEQUENCE. |
| |
| 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| * config/sparc/sparc.c (sparc_override_options): Initialize |
| fpu mask correctly. |
| |
| 2007-06-13 Dave Korn <dave.korn@artimi.com> |
| |
| * config/i386/i386.c (ix86_eax_live_at_start_p): Use df_get_live_out. |
| |
| 2007-06-13 Kazu Hirata <kazu@codesourcery.com> |
| |
| * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S, |
| config/sh/divcost-analysis, dbgcnt.def, df-core.c, |
| df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c, |
| tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c, |
| tree-vect-transform.c: Fix comment typos. Follow spelling |
| conventions. |
| |
| 2007-06-12 Seongbae Park <seongbae.park@gmail.com> |
| |
| * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer |
| to the exit block use set. |
| (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". |
| * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode. |
| * config/sparc/sparc.c (sparc_check_64): Check df != NULL. |
| |
| 2007-06-12 Seongbae Park <seongbae.park@gmail.com> |
| |
| * opts.c (common_handle_option): Handle new option -fdbg-cnt-list. |
| * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value |
| to indicate an error. |
| (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): |
| New functions. |
| (dbg_cnt_process_opt): Print an error on a bad argument. |
| * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration. |
| * common.opt (-fdbg-cnt-list): New. |
| * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New. |
| |
| 2007-06-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything |
| flag on ref-all pointers. |
| |
| 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/31579 |
| * expr.c (expand_expr_addr_expr_1): Call expand_expr |
| for the offset with the modifier as EXPAND_INITIALIZER |
| if the modifier is EXPAND_INITIALIZER. |
| (expand_expr_real_1 <case INTEGER_CST>): Don't force to |
| a register if we had an overflow. |
| |
| 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * real.c (real_isfinite): New. |
| (real_sqrt): Use it. |
| * real.h (real_isfinite): New. |
| * builtins.c: Use it. |
| |
| 2007-06-12 Ian Lance Taylor <iant@google.com> |
| Daniel Berlin <dberlin@dberlin.org> |
| |
| PR libstdc++/29286 |
| * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR. |
| * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define. |
| (CHANGE_DYNAMIC_TYPE_LOCATION): Define. |
| (DECL_NO_TBAA_P): Define. |
| (struct tree_decl_common): Add no_tbaa_flag field. |
| * tree-ssa-structalias.c (struct variable_info): Add |
| no_tbaa_pruning field. |
| (new_var_info): Initialize no_tbaa_pruning field. |
| (unify_nodes): Copy no_tbaa_pruning field. |
| (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR. |
| (dump_solution_for_var): Print no_tbaa_pruning flag. |
| (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all |
| callers. |
| (compute_tbaa_pruning): New static function. |
| (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes. |
| Call compute_tbaa_pruning. |
| * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers. |
| * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR. |
| * gimple-low.c (lower_stmt): Likewise. |
| * tree-gimple.c (is_gimple_stmt): Likewise. |
| * tree-ssa-operands.c (get_expr_operands): Likewise. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. |
| * tree-inline.c (estimate_num_insns_1): Likewise. |
| (copy_result_decl_to_var): Likewise. |
| * expr.c (expand_expr_real_1): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag. |
| * omp-low.c (omp_copy_decl_2): Likewise. |
| * print-tree.c (print_node): Print DECL_NO_TBAA_P flag. |
| * doc/c-tree.texi (Expression trees): Document |
| CHANGE_DYNAMIC_TYPE_EXPR. |
| |
| 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation |
| with !HONOR_NANS and !HONOR_INFINITIES. |
| * simplify-rtx.c (simplify_binary_operation_1): Likewise. |
| |
| 2007-06-12 Tristan Gingold <gingold@adacore.com> |
| |
| * gcov.c: Comments updated. |
| (source_info): Add file_time field. |
| (source_index): New variable. |
| (mutiple_files): New variable. |
| (generate_results): New function extracted from process_file. |
| (process_file): Save and restore chain of functions, generate |
| results and free structures only if not merging results. |
| (release_structures): File names are now freed in create_file_names |
| (create_file_names): Free previous file names. |
| (find_source): File date is now read here and modifications in |
| source files is checked here. |
| (read_graph_file): Only reverse order of functions for the current |
| object file. |
| (make_gcov_file_name): Do not generate long names if input_name is |
| NULL. |
| (output_lines): If merging results do not display graph, data and |
| runs informations. |
| Checking source file modification is done in find_source. |
| |
| * doc/gcov.texi: Append an s to sourcefile. |
| |
| 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.md (UNSPEC_NOP): New constant. |
| (forced_nop): New pattern. |
| * config/bfin/bfin.c: Include "df.h". |
| (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live. |
| (bfin_discover_loop): Use df_get_live_in instead of |
| global_live_at_start. |
| (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call |
| df_analyze when done. |
| (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on |
| the insns. Use QImode for the final insn in a bundle. Call |
| df_insn_rescan on generated NOPs; use gen_forced_nop instead of |
| gen_nop. |
| (reorder_var_tracking_notes): New function. |
| (bfin_reorg): Pass no argument to split_all_insns. Don't call |
| update_life_info. Call df_analyze after scheduling and bundle |
| generation. Call reorder_var_tracking_notes if generating these |
| notes. Call df_finish_pass at the end. |
| |
| 2007-06-12 Dirk Mueller <dmueller@suse.de> |
| |
| * optabs.c (debug_optab_libfuncs): fix gcc_assert to |
| a comparison, not an assignment. |
| |
| 2007-06-12 Olivier Hainque <hainque@adacore.com> |
| |
| * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR. |
| Request walking the subtrees only, leaving the current is_lhs/val_only |
| untouched. |
| (convert_non_local_reference): Likewise. |
| |
| 2007-06-12 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/m68k/m68k-devices.def (52221, 52223, 5253): New. |
| |
| 2007-06-12 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/15353 |
| PR tree-optimization/31657 |
| * passes.c (init_optimization_passes): Add pass_tree_ifcombine. |
| * timevar.def: Add TV_TREE_IFCOMBINE. |
| * tree-pass.h (pass_tree_ifcombine): Declare. |
| * tree-ssa-ifcombine.c: New file. |
| * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export. |
| * tree-flow.h (blocks_in_phiopt_order): Declare. |
| * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o. |
| (tree-ssa-ifcombine.o): New dependencies. |
| |
| 2007-06-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/32293 |
| * combine.c (simplify_if_then_else): Truncate return from |
| nonzero_bits() to correct mode. |
| |
| 2007-06-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c) |
| into a*cbrt(c/b) if flag_unsafe_math_optimizations is set. |
| |
| 2007-06-11 Diego Novillo <dnovillo@google.com> |
| |
| * Makefile.in (reload1.o-warn): Remove. |
| |
| 2007-06-11 Seongbae Park <seongbae.park@gmail.com> |
| |
| * combine.c (subst): Use reg_overlap_mentioned_p |
| instead of comparing register numbers directly. |
| |
| 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * reload1.c (mark_home_live_1): Use the mode parameter. |
| |
| 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all, |
| df_process_deferred_rescans, df_notes_rescan): Fixed spelling of |
| word "deferred". |
| * df-core.c: Ditto. |
| |
| 2007-06-11 Daniel Berlin <dberlin@dberlin.org> |
| |
| * Merge dataflow-branch into mainline (see ChangeLog.dataflow) |
| |
| 2007-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md ("*movtf_internal): Penalize moves to and |
| from integer registers. |
| (FP mode splitters): Handle TFmode. |
| |
| 2007-06-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-structalias.c (find_what_p_points_to): Return false |
| for ref-all pointers that point-to anything. |
| |
| 2007-06-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/arm.c (arm_output_dwarf_dtprel, |
| TARGET_ASM_OUTPUT_DWARF_DTPREL): New. |
| |
| 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn, |
| movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant |
| to memory moves. |
| |
| 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com> |
| |
| * tree.c (signed_or_unsigned_type_for): New. |
| (unsigned_type_for): Use signed_or_unsigned_type_for. |
| (signed_type_for): Use signed_or_unsigned_type_for. |
| * tree.h (signed_or_unsigned_type_for): New. |
| (get_signed_or_unsigned_type): Remove. |
| * fold-const.c (fold_negate_expr): Use signed_type_for instead of |
| lang_hooks.types.signed_type |
| (size_diffop): Likewise. |
| (all_ones_mask_p): Likewise. |
| (build_range_check): Likewise. |
| (fold_cond_expr_with_comparison): Likewise. |
| (fold_cond_expr_with_comparison): Likewise. |
| (unextend): Likewise. |
| (extract_muldiv_1): Likewise. |
| (fold_single_bit_test_into_sign_test): Likewise. |
| (fold_binary): Likewise. |
| (fold_ternary): Likewise. |
| (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for |
| instead of get_signed_or_unsigned_type. |
| * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove. |
| (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. |
| * expr.c (signed_or_unsigned_type_for): Use |
| signed_or_unsigned_type_for instead of get_signed_or_unsigned_type. |
| * langhooks.c (get_signed_or_unsigned_type): Remove. |
| (lhd_signed_or_unsigned_type): Remove. |
| * langhooks.h (lang_hooks_for_types): Remove signed_type and |
| signed_or_unsigned_type. |
| (lhd_signed_or_unsigned_type): Remove. |
| * expmed.c (make_tree): Use signed_type_for instead of |
| lang_hooks.types.signed_type. |
| * c-common.c (same_scalar_type_ignoring_signedness): Use |
| c_common_signed_type instead of lang_hooks.types.signed_type. |
| (c_common_unsigned_type): New. |
| (c_common_signed_type): Just call c_common_signed_or_unsigned_type. |
| (shorten_compare): Use c_common_unsigned_type instead of |
| c_common_signed_or_unsigned_type. |
| (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of |
| unsigned_type_for. |
| * convert.c (convert_to_integer): Use signed_type_for instead of |
| lang_hooks.types.signed_type. |
| * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. |
| (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and |
| LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE. |
| * c-format.c (check_format_types): Use c_common_unsigned_type |
| instead of unsigned_type_for. |
| * c-decl.c (groakdeclarator): Likewise. |
| * c-typeck.c (convert_for_assignment): Likewise. |
| * c-common.h (c_common_unsigned_type): New. |
| |
| 2007-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32280 |
| * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ... |
| * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here. |
| |
| 2007-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/32279 |
| * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c) |
| into a*sqrt(c/b) if flag_unsafe_math_optimizations is set. |
| |
| 2007-06-10 Jan Sjodin <jan.sjodin@amd.com> |
| Sebastian Pop <sebpop@gmail.com> |
| |
| * lambda-code.c (remove_iv): New. |
| (lambda_loopnest_to_gcc_loopnest): Use remove_iv. |
| |
| 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL. |
| * tree-predcom.c (mark_virtual_ops_for_renaming): Exported. |
| * tree-ssa-loop-prefetch.c: Include optabs.h. |
| (FENCE_FOLLOWING_MOVNT): New macro. |
| (struct mem_ref): Add independent_p and storent_p fields. |
| (record_ref): Initalize the new fields. |
| (gather_memory_references_ref): Return true if the reference |
| could be analysed. |
| (gather_memory_references): Check whether all memory accesses |
| in loop were recorded. |
| (should_issue_prefetch_p): Return false for nontemporal stores. |
| (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop, |
| may_use_storent_in_loop_p, mark_nontemporal_stores): New functions. |
| (determine_loop_nest_reuse): Detect independent memory references. |
| (loop_prefetch_arrays): Call mark_nontemporal_stores. |
| * tree-flow.h (mark_virtual_ops_for_renaming): Declare. |
| * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency. |
| * config/i386/i386.h (x86_mfence): Declare. |
| (FENCE_FOLLOWING_MOVNT): Return x86_mfence. |
| * config/i386/i386.c (x86_mfence): New variable. |
| (ix86_init_mmx_sse_builtins): Initialize x86_mfence. |
| |
| * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores. |
| * optabs.c (init_optabs): Initialize storent_optab. |
| * optabs.h (enum optab_index): Add OTI_storent. |
| (storent_optab): Declare. |
| * genopinit.c (optabs): Add initialization for storent_optab. |
| * tree.h (MOVE_NONTEMPORAL): New macro. |
| * expr.c (expand_assignment, store_expr, store_constructor_field, |
| store_constructor, store_field, expand_expr_real_1): Propagate |
| nontemporality of the expanded store. |
| (emit_storent_insn): New function. |
| * expr.h (expand_assignment, store_expr): Declaration changed. |
| * function.c (assign_parm_setup_reg): Pass false as nontemporality |
| to expand_assignment. |
| * stmt.c (expand_asm_expr): Ditto. |
| * calls.c (initialize_argument_information): Pass false as |
| nontemporality to store_expr. |
| * config/i386/sse.md (storentv4sf, storentv2df, storentv2di, |
| storentsi): New. |
| |
| 2007-06-09 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd |
| parameter, use it. |
| (find_what_p_points_to): Pass new parameter to set_uids_in_ptset. |
| |
| 2007-06-09 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b, |
| and allow DECL_P here. |
| |
| 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-scalar-evolution.c (follow_ssa_edge_in_rhs, |
| follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise |
| track of the size of the expression. |
| * cfghooks.c (merge_blocks): Remove block from loops structure only |
| after call of the merge_blocks hook. |
| |
| 2007-06-09 Tom Tromey <tromey@redhat.com> |
| |
| * c-decl.c (grokdeclarator): Added 'deprecated_state' argument. |
| (deprecated_state): Removed. |
| (start_decl): Update. |
| (enum deprecated_states): Moved earlier. |
| (groktypename): Update. |
| (push_parm_decl): Likewise. |
| (grokfield): Likewise. |
| (start_function): Likewise. |
| |
| 2007-06-09 Ian Lance Taylor <iant@google.com> |
| |
| PR tree-optimization/32169 |
| * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and |
| CONVERT_EXPR, check whether min and max both converted to an |
| overflow infinity representation. |
| |
| 2007-06-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * reload1.c (fixup_abnormal_edges): Clear bb field for insns |
| not inserted on the edge. |
| |
| 2007-06-08 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide |
| instructions if they are supported. |
| (__divsi3, __umodsi3, __modsi3): Likewise. |
| (__ashldi3, __ashrdi3, __lshrdi3): New. |
| * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions. |
| |
| 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com> |
| Tony Linthicum <tony.linthicum@amd.com> |
| |
| * doc/invoke.texi: Add fvect-cost-model flag. |
| * common.opt (fvect-cost-model): New flag. |
| * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside |
| cost fields in stmt_vec_info struct for STMT. |
| * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost |
| fields in stmt_vec_info struct and access functions for the same. |
| (TARG_COND_BRANCH_COST): Define cost of conditional branch. |
| (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding |
| load, store and vector to scalar operation. |
| (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation. |
| (TARG_VEC_LOAD_COST): Define cost of aligned vector load. |
| (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load. |
| (TARG_VEC_STORE_COST): Define cost of vector store. |
| (vect_estimate_min_profitable_iters): Define new function. |
| * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time |
| check to evaluate if loop iterations are less than minimum profitable |
| iterations determined by cost model or minimum vect loop bound defined |
| by user, whichever is more conservative. |
| * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a |
| run-time check to evaluate if loop iterations are less than minimum |
| profitable iterations determined by cost model or minimum vect loop |
| bound defined by user, whichever is more conservative. |
| (vect_estimate_min_profitable_iterations): New function to estimate |
| mimimimum iterartions required for vector version of loop to be |
| profitable over scalar version. |
| (vect_model_reduction_cost): New function. |
| (vect_model_induction_cost): New function. |
| (vect_model_simple_cost): New function. |
| (vect_cost_strided_group_size): New function. |
| (vect_model_store_cost): New function. |
| (vect_model_load_cost): New function. |
| (vectorizable_reduction): Call vect_model_reduction_cost during |
| analysis phase. |
| (vectorizable_induction): Call vect_model_induction_cost during |
| analysis phase. |
| (vectorizable_load): Call vect_model_load_cost during analysis phase. |
| (vectorizable_store): Call vect_model_store_cost during analysis phase. |
| (vectorizable_call, vectorizable_assignment, vectorizable_operation, |
| vectorizable_promotion, vectorizable_demotion): Call |
| vect_model_simple_cost during analysis phase. |
| |
| 2007-06-08 Simon Baldwin <simonb@google.com> |
| |
| * reg-stack.c (get_true_reg): Readability change. Moved default case |
| label into direct switch statement scope. |
| |
| 2007-06-08 Simon Baldwin <simonb@google.com> |
| |
| * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment |
| in gcc_assert() with '==' comparison. |
| |
| 2007-06-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and |
| TARGET_ABM handling of x86_popcnt variable. |
| |
| 2007-06-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq, |
| __builtin_copysignq and __builtin_infq built-in functions. |
| |
| 2007-06-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in |
| SSE4.2 section. Correct built-in function names in SSE4A section. |
| |
| 2007-06-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/32243 |
| * tree-vect-transform.c (vectorizable_type_promotion): Move check |
| for ncopies after ratio check between nunits_out and nunits_in. |
| (vectorizable_type_demotion): Remove single-use variable "scalar_type". |
| |
| 2007-06-08 Dorit Nuzman <dorit@il.ibm.com> |
| |
| PR tree-optimization/32224 |
| * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail |
| vectorization upon a non GIMPLE_MODIFY_STMT. |
| |
| 2007-06-08 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/29953 |
| * config/sh/sh.md (doloop_end): New pattern and splitter. |
| * loop-iv.c (simple_rhs_p): Check for hardware registers. |
| |
| 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR middle-end/32209 |
| * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New |
| functions. |
| (verify_dominators): Do not change dominance tree. |
| |
| 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/constraints.md: New file. |
| * config/sh/sh.c: Include tm-constrs.h. |
| (reg_class_from_letter): Remove. |
| (prepare_cbranch_operands): Use satisfies_constraint_* |
| function instead of macro. |
| (andcosts, broken_move, sh_secondary_reload): Likewise. |
| * config/sh/predicates.md (trapping_target_operand): Likewise. |
| (and_operand, arith_operand, arith_reg_or_0_operand, |
| cmp_operand, logical_operand, target_operand, |
| ua_address_operand, ua_offset, xor_operand): Likewise. |
| * config/sh/sh.md: Include constraints.md. |
| (*movsicc_t_false): Use satisfies_constraint_* function |
| instead of macro. |
| (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m, |
| lshrsi3_k, movsi_const_16bit+2, *movhi_media+1, |
| movdi_const_16bit+1, beq, bne, *ptb): Likewise. |
| * config/sh/sh.h (reg_class_from_letter): Remove prototype. |
| (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter. |
| (REG_CLASS_FROM_CONSTRAINT): Remove. |
| (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I, |
| CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K, |
| CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M, |
| CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P, |
| CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. |
| (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_* |
| function instead of macro. |
| (SECONDARY_INPUT_RELOAD_CLASS): Likewise. |
| (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A, |
| EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B, |
| EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove. |
| (IS_PC_RELATIVE_LOAD_ADDR_P): New macro. |
| (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise. |
| (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise. |
| (IS_NON_EXPLICIT_CONSTANT_P): Likewise. |
| (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W, |
| EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C, |
| EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0, |
| EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S, |
| EXTRA_CONSTRAINT_STR): Likewise. |
| (GO_IF_LEGITIMATE_INDEX): Fix indentation. |
| |
| 2007-06-07 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/i386/darwin.h (STACK_BOUNDARY): Define. |
| |
| 2007-06-07 Simon Martin <simartin@users.sourceforge.net> |
| |
| PR c++/30759 |
| * c-common.h (flag_cpp0x): Replaced by... |
| (cxx_dialect): ... this new variable specifying the C++ dialect that |
| is used. |
| * c-common.c (flag_cpp0x): Removed. |
| (cxx_dialect): Defined. |
| * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of |
| cxx_dialect. |
| * c-opts.c (c_common_post_options): Likewise. |
| (set_std_cxx98): Set cxx_dialect to cxx98. |
| (set_std_cxx0x): Set cxx_dialect to cxx0x. |
| |
| 2007-06-07 Geoffrey Keating <geoffk@apple.com> |
| Hui-May Chang <hm.chang@apple.com> |
| |
| * doc/invoke.texi (Darwin Options): Update documentation for |
| -mmacosx-version-min. |
| * config.gcc (*-*-darwin*): Set extra_gcc_objs. |
| * config/darwin-driver.c: New file. |
| * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New. |
| * config/t-darwin (darwin-driver.o): New rule. |
| |
| * config/darwin-c.c (version_as_macro): Ignore low digit. |
| |
| 2007-06-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (standard sse constant splitter): Handle TFmode. |
| (negtf2, abstf2, *absnegtf2_sse): New insn patterns. |
| (CSGNMODE): New mode macro. |
| (CSGNVMODE): New mode attribute. |
| (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize |
| expander using CSGNMODE mode macro. Handle TFmode. |
| (copysign<mode>3_const): Rename from copysignsf3_const and |
| copysigndf3_const. Macroize pattern using CSGNMODE mode macro. |
| Handle TFmode. |
| (copysign<mode>3_var): Rename from copysignsf3_var and |
| copysigndf3_var. Macroize pattern using CSGNMODE mode macro. |
| Handle TFmode. |
| (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE |
| mode macro. Handle TFmode. |
| * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns. |
| (iortf3, *iortf3): Ditto. |
| (xortf3, *xortf3): Ditto. |
| * config/i386/i386.c (ix86_build_signbit_mask): Create scalar |
| TFmode and TImode masks. |
| (ix86_expand_copysign): Expand TFmode copysign insn. |
| (IX86_BUILTIN_INFQ): New. |
| (IX86_BUILTIN_FABSQ): Ditto. |
| (IX86_BUILTIN_COPYSIGNQ): Ditto. |
| (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition. |
| [__builtin_fabsq]: Ditto. |
| [__builtin_copysignq]: Ditto. |
| (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin. |
| [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin(). |
| [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using |
| ix86_expand_binop_builtin(). |
| |
| 2007-06-07 Bob Wilson <bob.wilson@acm.org> |
| |
| * config/xtensa/lib1funcs.asm: Clean up whitespace. |
| |
| 2007-06-07 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/31850 |
| * rtl.h (push_to_sequence2): New. |
| * emit-rtl.c (push_to_sequence2): New. |
| * function.c (assign_parm_data_all): Add new fields. |
| (assign_parm_setup_block): Call push_to_sequence2 instead of |
| push_to_sequence. |
| (assign_parm_setup_reg): Ditto. |
| (assign_parm_setup_stack): Ditto. |
| (assign_parms_unsplit_complex): Ditto. |
| (assign_parms): Change field name. |
| |
| 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR tree-optimization/32220 |
| * tree-predcom.c (eliminate_temp_copies): Handle the case that loop |
| phi node is reached before defining statement. |
| |
| 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/32231 |
| * tree-vect-transform.c (vectorizable_call): Call update_stmt |
| after changing the right hand side of the assignment. |
| |
| 2007-06-06 Eric Christopher <echristo@apple.com> |
| |
| * config.gcc (i?86-*-darwin*): Remove arch parameter. |
| (x86_64-*-darwin*): Ditto. |
| * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define. |
| (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. |
| |
| 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net> |
| |
| * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the |
| coding conventions. |
| (add_key): Likewise. |
| * tree-ssa.c (init_tree_ssa): Use type safe memory macros. |
| * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as |
| variable names. |
| * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory |
| macros. |
| (add_cost_one_coalesce): Likewise. |
| * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as |
| variable names. Rename orig to orig_name for consistency. |
| * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the |
| coding conventions. |
| (cprop_into_successor_phis): Avoid using C++ keywords as variable |
| names. |
| (record_equivalences_from_stmt): Likewise. |
| * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to |
| the coding conventions. |
| (memory_ssa_name_same): Likewise. |
| (dse_optimize_stmt): Likewise. |
| (dse_record_phis): Likewise. |
| (dse_finalize_block): Likewise. |
| * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++ |
| keywords as variable names. |
| (may_move_till): Cast according to the coding conventions. |
| (force_move_till_expr): Avoid using C++ keywords as variable names. |
| (force_move_till): Cast according to the coding conventions. |
| (memref_hash): Likewise. |
| (memref_eq): Likewise. |
| (gather_mem_refs_stmt): Likewise. |
| * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid |
| using C++ keywords as variable names. |
| (idx_find_step): Cast according to the coding conventions. |
| (idx_record_use): Likewise. |
| (find_depends): Likewise. |
| (prepare_decl_rtl): Likewise. |
| (mbc_entry_hash): Likewise. |
| (mbc_entry_eq): Likewise. |
| * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp. |
| (simplify_replace_tree): Avoid using C++ keywords as variable names. |
| (idx_infer_loop_bounds): Cast according to the coding conventions. |
| * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise. |
| * tree-ssa-math-opts.c (occ_new ): Likwise. |
| * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory |
| macros. |
| * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as |
| variable names. |
| (add_use_op): Likewise. |
| (add_vop): Likewise. |
| (add_vuse_op): Likewise. |
| (add_vdef_op): Likewise. |
| (get_expr_operands): Likewise. |
| (push_stmt_changes): Use type safe memory macros. |
| * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++ |
| keywords as variable names. |
| (conditional_replacement): Likewise. |
| (minmax_replacement): Likewise. |
| (abs_replacement): Likewise. |
| * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the |
| coding conventions. |
| (insert_fake_stores): Avoid using C++ keywords as variable names. |
| * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding |
| conventions. |
| * tree-ssa-structalias.c (heapvar_lookup): Likewise. |
| (heapvar_insert): Use type safe memory macros. |
| (new_var_info): Cast according to the coding conventions. |
| (new_constraint): Likewise. |
| (remove_preds_and_fake_succs): Use type safe memory macros. |
| * tree-ssa-threadupdate.c (thread_block): Cast according to the coding |
| conventions. |
| (thread_single_edge): Likewise. |
| (thread_through_loop_header): Likewise. |
| |
| 2007-06-06 Eric Christopher <echristo@apple.com> |
| |
| * config/i386/i386.c (override_options): Move handling |
| of TARGET_SUBTARGET* earlier. |
| |
| 2007-06-06 Paolo Bonzini <bonzini@gnu.org> |
| |
| * genmodes.c (tagged_printf, emit_insn_modes_h): Don't |
| use %n on printf. |
| |
| 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * haifa-sched.c (restore_bb_notes): Clear bb field of the notes |
| emited outside of basic block. |
| * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between |
| the created blocks. |
| * rtl.h (delete_insn_chain): Declaration changed. |
| * cfgrtl.c (delete_insn_chain): Add option to clear bb field for |
| non-removed insns. |
| (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain. |
| (delete_insn_chain_and_edges, try_redirect_by_replacing_jump, |
| rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false |
| to delete_insn_chain. |
| (rtl_verify_flow_info_1): Verify that the insns in header and footer |
| do not have bb field set. |
| (rtl_verify_flow_info): Verify that insns between basic blocks do not |
| have bb field set. |
| * recog.c (peephole2_optimize): Add argument to delete_insn_chain call. |
| * cfgcleanup.c (try_optimize_cfg): Ditto. |
| |
| 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net> |
| |
| * lambda-code.c (struct lambda_lattice_s): Add a name to the struct. |
| (lambda_body_vector_new): Use type safe memory macros. |
| (lambda_linear_expression_new): Likewise. |
| (lambda_loopnest_new): Likewise. |
| (lambda_lattice_new): Likewise. |
| (replace_uses_equiv_to_x_with_y): Cast according to the coding |
| conventions. Use type safe memory macros. |
| * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct. |
| (lambda_body_vector_s): Likewise. |
| * lambda-mat.c (lambda_matrix_new): Use type safe memory macros. |
| * lambda-trans.c (lambda_trans_matrix_new): Likewise. |
| |
| 2007-06-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2 |
| if we need to schedule cfg_cleanup. |
| (tree_ssa_forward_propagate_single_use_vars): Do so. |
| |
| 2007-06-06 Ian Lance Taylor <iant@google.com> |
| |
| * fold-const.c (merge_ranges): If range_successor or |
| range_predecessor fail, just return 0. |
| |
| 2007-06-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/32216 |
| * tree-vectorizer.c (supportable_widening_operation): Determine |
| signedness of FIX_TRUNC_EXPR from output operand. |
| (supportable_narrowing_operation): Ditto. |
| * tree-vect-generic.c (expand_vector_operations_1): Determine |
| signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR |
| from input operand. |
| |
| 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net> |
| |
| * config/i386/i386.c (enum pta_flags): Move out of struct scope... |
| (struct pta): ...from here. Change flags to unsigned to avoid |
| excessive casting (as it is used as a bit mask). |
| (override_options): Add casts according to the coding convenventions. |
| (x86_64_elf_unique_section): Likewise. |
| (examine_argument): Avoid using C++ keywords as variable names. |
| (construct_container): Likewise. |
| (legitimize_pic_address): Likewise. |
| (get_dllimport_decl): Cast according to the coding conventions. Use |
| type safe memory macros. |
| (legitimize_address): Cast according to the coding conventions. |
| (emit_i387_cw_initialization): Corrected the type of slot to enum |
| ix86_stack_slot. |
| (ix86_init_machine_status): Use type safe memory macros. |
| (bdesc_pcmpestr): Use UNKNOWN instead of integer 0. |
| (bdesc_pcmpistr): Likewise. |
| (bdesc_crc32): Likewise. |
| (bdesc_sse_3arg): Likewise. |
| (bdesc_2arg): Likewise. |
| (bdesc_1arg): Likewise. |
| (ix86_expand_sse_pcmpestr): Cast according to the coding conventions. |
| (ix86_expand_sse_pcmpistr): Likewise. |
| (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0. |
| (ix86_builtin_vectorized_function): Change the type of fn to unsigned |
| int to match the langhook definition. |
| (ix86_builtin_conversion): Change the type of code to unsigned init to |
| match the langhook definition. |
| (ix86_preferred_reload_class): Avoid using C++ keywords as variable |
| names. |
| (ix86_preferred_output_reload_class): Likewise. |
| (ix86_cannot_change_mode_class): Likewise. |
| (ix86_memory_move_cost): Likewise. |
| (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to |
| avoid excessive casting later on. |
| (x86_output_mi_thunk): Avoid using C++ keywords as variable names. |
| |
| 2007-06-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm |
| as flags setting insn. |
| (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn. |
| |
| 2007-06-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove. |
| (UNSPEC_ROUND): New. |
| ("sse4_1_round<mode>2"): New insn pattern. |
| ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for |
| SSE4.1 targets. |
| ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize |
| expander using SSEMODEF mode macro. Expand using |
| "sse4_1_round<mode>2" pattern for SSE4.1 targets. |
| ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize |
| expander using SSEMODEF mode macro. Expand using |
| "sse4_1_round<mode>2" pattern for SSE4.1 targets. |
| ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize |
| expander using SSEMODEF mode macro. Expand using |
| "sse4_1_round<mode>2" pattern for SSE4.1 targets. |
| * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use |
| UNSPEC_ROUND instead of UNSPEC_ROUNDP. |
| ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of |
| UNSPEC_ROUNDS. |
| |
| 2007-06-06 Jan Sjodin <jan.sjodin@amd.com> |
| Sebastian Pop <sebpop@gmail.com> |
| |
| * lambda.h (build_linear_expr): New. |
| * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression): |
| Use build_linear_expr, call fold and force_gimple_operand. |
| (lambda_loopnest_to_gcc_loopnest): Check that there is |
| something to insert. |
| * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New. |
| |
| 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> |
| |
| PR preprocessor/23479 |
| * doc/extend.texi: Document the 0b-prefixed binary integer |
| constant extension. |
| |
| 2007-06-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/32215 |
| * tree-vectorizer.c (supportable_widening_operation): Return false |
| for unsupported FIX_TRUNC_EXPR tree code. |
| (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code. |
| |
| 2007-06-06 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch |
| register on SPE targets. Change documentation to reflect |
| reality. |
| * config/rs6000/rs6000.c (rs6000_conditional_register_usage): |
| Change FIXED_SCRATCH to 14 and document why we're keeping r14 |
| out of the register allocation pool. |
| (rs6000_reg_live_or_pic_offset_p): New function. |
| (rs6000_emit_prologue): Move the actual saving of LR up to free |
| r0 for holding r11. Split saving of SPE 64-bit registers into |
| its own case. Ensure that offsets will always be in-range for |
| 'evstdd' by using r11 as a scratch register to point at the start |
| of the SPE save area. Save r11 if necessary, as it is the static |
| chain register. |
| (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers |
| into its own case. Ensure that offsets will always be in-range |
| for 'evldd' by using r11 as a scratch register to point at the |
| start of the SPE save area. Also adjust r11 when restoring |
| the stack pointer to compensate for pre-loading r11. |
| |
| 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net> |
| |
| * cfg.c (init_flow): Use type safe memory macros. |
| (alloc_block): Likewise. |
| (unchecked_make_edge): Likewise. |
| (dump_flow_info): Avoid using C++ keywords as variable names. |
| (copy_original_table_clear): Cast according to the coding conventions. |
| (copy_original_table_set): Likewise. |
| * cfgexpand (label_rtx_for_bb): Likewise. |
| (expand_gimple_basic_block): Likewise. |
| * cfghooks.c (dump_bb): Likewise. |
| (lv_adjust_loop_header_phi): Avoid using C++ keywords as |
| variable names. |
| (lv_add_condition_to_bb): Likewise. |
| * cfglayout (relink_block_chain): Cast according to the coding |
| conventions. |
| (fixup_reorder_chain): Likewise. |
| (fixup_fallthru_exit_predecessor): Likewise. |
| * cfgloop.c (glb_enum_p): Likewise. |
| (get_exit_description): Likewise. |
| (dump_recorded_exit): Likewise. |
| * cfgloop.h (enum loop_estimation): Move out of struct scope... |
| (struct loop): ... from here. |
| * cfgloopmanip.c (rpe_enum_p): Cast according to the coding |
| conventions. |
| * cfgrtl.c (rtl_create_basic_block): Likewise. |
| (rtl_split_block): Likewise. |
| (rtl_dump_bb): Likewise. |
| (cfg_layout_split_block): Likewise. |
| (init_rtl_bb_info): Use typesafe memory macros. |
| |
| * graphds.h (struct graph_edge): Renamed edge to graph_edge. |
| * graphds.h: Updated all usages of edge to graph_edge. |
| * graphds.c: Likewise. |
| * cfgloopanal.c: Likewise. |
| |
| 2007-06-05 Ian Lance Taylor <iant@google.com> |
| |
| * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a |
| PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p. |
| (extract_range_from_assert): Set TREE_NO_WARNING when creating an |
| expression. |
| (test_for_singularity): Likewise. |
| |
| 2007-06-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/constraints.md ("Y2"): Replaced by ... |
| ("Yt"): This. |
| * config/i386/i386.md: Likewise. |
| * config/i386/mmx.md: Likewise. |
| * config/i386/sse.md: Likewise. |
| |
| 2007-06-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/constraints.md ("z"): Replaced by ... |
| ("Y0"): This. |
| * config/i386/sse.md (sse4_1_blendvpd): Likewise. |
| (sse4_1_blendvps): Likewise. |
| (sse4_1_pblendvb): Likewise. |
| (sse4_2_pcmpestr): Likewise. |
| (sse4_2_pcmpestrm): Likewise. |
| (sse4_2_pcmpestr_cconly): Likewise. |
| (sse4_2_pcmpistr): Likewise. |
| (sse4_2_pcmpistrm): Likewise. |
| (sse4_2_pcmpistr_cconly): Likewise. |
| |
| 2007-06-05 Razya Ladelsky <razya@il.ibm.com> |
| |
| * matrix-reorg.c (transform_access_sites): Fix computation. |
| (transform_allocation_sites): Same. |
| |
| 2007-06-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (override_options): Use |
| TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags. |
| |
| 2007-06-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (reg_not_xmm0_operand): New predicate. |
| (nonimm_not_xmm0_operand): Ditto. |
| * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand" |
| as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand" |
| as operand[2] predicate. Require "z" class XMM register for |
| operand[3]. Adjust asm template. |
| ("sse4_1_blendvpd"): Ditto. |
| ("sse4_1_pblendvb"): Ditto. |
| * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not |
| force op2 into xmm0 register for variable blend instructions. |
| |
| 2007-06-04 Tom Tromey <tromey@redhat.com> |
| |
| * c-tree.h (start_enum): Update. |
| (build_enumerator): Likewise. |
| * c-decl.c (enum_next_value): Removed. |
| (enum_overflow): Likewise. |
| (start_enum): Add c_enum_contents argument. Don't use globals. |
| (build_enumerator): Likewise. |
| * c-tree.h (struct c_enum_contents): New struct. |
| |
| 2007-06-04 Tom Tromey <tromey@redhat.com> |
| |
| * c-common.c (c_common_get_alias_set): Fix indentation. |
| |
| 2007-06-04 Ian Lance Taylor <iant@google.com> |
| |
| * tree-vrp.c (adjust_range_with_scev): When loop is not expected |
| to overflow, reduce overflow infinity to regular infinity. |
| (vrp_var_may_overflow): New static function. |
| (vrp_visit_phi_node): Check vrp_var_may_overflow. |
| |
| 2007-06-04 Kazu Hirata <kazu@codesourcery.com> |
| |
| * stor-layout.c (layout_type): Remove duplicate code. |
| |
| 2007-06-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR c/32191 |
| * c-common.c (c_define_builtins): Call targetm.init_builtins () |
| before build_common_builtin_nodes (). |
| |
| 2007-06-04 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/31733 |
| * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier. |
| |
| 2007-06-04 Jan Hubicka <jh@suse.cz> |
| |
| * tree-predcom.c (replace_ref_with, initialize_root_vars_lm, |
| reassociate_to_the_same_stmt): Call build_gimple_modify_stmt |
| instead of _stat version. |
| |
| 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR tree-optimization/32194 |
| * tree-predcom.c (determine_offset): Check that both references have |
| the same type. |
| |
| 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge): |
| Change dom_bbs to vector. Add argument to iterate_fix_dominators call. |
| * loop-unroll.c (unroll_loop_runtime_iterations): Ditto. |
| * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector. |
| Add argument to iterate_fix_dominators call. |
| (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom. |
| * gcse.c (hoist_code): Change domby to vector. |
| * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector. |
| Add argument to iterate_fix_dominators call. |
| * loop-doloop.c (doloop_modify): Changed recount_dominator to |
| recompute_dominator. |
| * lambda-code.c (perfect_nestify): Ditto. |
| * cfgloopanal.c: Include graphds.h. |
| (struct edge, struct vertex, struct graph, dump_graph, new_graph, |
| add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c. |
| (mark_irreducible_loops): Use graphds_scc. Remove argument from |
| add_edge call. |
| * graphds.c: New file. |
| * graphds.h: New file. |
| * dominance.c: Include vecprim.h, pointer-set.h and graphds.h. |
| (get_dominated_by, get_dominated_by_region): Change return type to |
| vector. |
| (verify_dominators): Recompute all dominators and compare the results. |
| (recount_dominator): Renamed to ... |
| (recompute_dominator): ... this. Do not check that the block is |
| dominated by entry. |
| (iterate_fix_dominators): Reimplemented. |
| (prune_bbs_to_update_dominators, root_of_dom_tree, |
| determine_dominators_for_sons): New functions. |
| * et-forest.c (et_root): New function. |
| * et-forest.h (et_root): Declare. |
| * Makefile.in (graphds.o): Add. |
| (cfgloopanal.o): Add graphds.h dependency. |
| (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency. |
| * basic-block.h (get_dominated_by, get_dominated_by_region, |
| iterate_fix_dominators): Declaration changed. |
| (recount_dominator): Renamed to ... |
| (recompute_dominator): ... this. |
| * tree-ssa-threadupdate.c (thread_block): Free dominance info. |
| (thread_through_all_blocks): Do not free dominance info. |
| |
| 2007-06-03 Andreas Schwab <schwab@suse.de> |
| |
| * config/m68k/m68k.c (override_options): Don't override |
| REAL_MODE_FORMAT. |
| * config/m68k/m68k-modes.def (SF, DF): Define to use |
| motorola_single_format and motorola_double_format, resp. |
| * real.c (motorola_single_format): Renamed from |
| coldfire_single_format. |
| (motorola_double_format): Renamed from coldfire_double_format. |
| (encode_ieee_extended): Generate a proper canonical NaN image |
| respecting canonical_nan_lsbs_set. |
| (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to |
| true. |
| * real.h: Adjust declarations. |
| |
| 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/32163 |
| * config/sh/sh.md (symGOT_load): Don't schedule insns when |
| the symbol is generated with the stack protector. |
| |
| 2007-06-03 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt". |
| (m68k_get_function_kind): Return m68k_fk_interrupt_handler on |
| "interrupt". |
| * doc/extend.texi (interrupt): Mention m68k. |
| |
| 2007-06-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call |
| safe_vector_operand() if input operand is VECTOR_MODE_P operand. |
| (ix86_expand_sse_pcmpestr): Do not check operands for |
| "register_operand", when insn operand predicate is "register_operand". |
| (ix86_expand_sse_pcmpistr): Ditto. |
| |
| 2007-06-02 H.J. Lu <hongjiu.lu@intel.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New. |
| (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS. |
| (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string. |
| (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class. |
| * config/i386/constraints.md ("z"): New register constraint |
| for members of SSE_FIRST_REG class. |
| * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes. |
| * config/i386/i386.c (regclass_map): Change class of %xmm0 to |
| SSE_FIRST_REG class. |
| (put_condition_code) [EQ, NE]: Output suffixes for new compare modes. |
| (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes. |
| (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2. |
| (IX86_BUILTIN_PCMPESTRM128): Likewise. |
| (IX86_BUILTIN_PCMPESTRA128): Likewise. |
| (IX86_BUILTIN_PCMPESTRC128): Likewise. |
| (IX86_BUILTIN_PCMPESTRO128): Likewise. |
| (IX86_BUILTIN_PCMPESTRS128): Likewise. |
| (IX86_BUILTIN_PCMPESTRZ128): Likewise. |
| (IX86_BUILTIN_PCMPISTRI128): Likewise. |
| (IX86_BUILTIN_PCMPISTRM128): Likewise. |
| (IX86_BUILTIN_PCMPISTRA128): Likewise. |
| (IX86_BUILTIN_PCMPISTRC128): Likewise. |
| (IX86_BUILTIN_PCMPISTRO128): Likewise. |
| (IX86_BUILTIN_PCMPISTRS128): Likewise. |
| (IX86_BUILTIN_PCMPISTRZ128): Likewise. |
| (struct builtin_description): Change "flag" field to unsigned. |
| (bdesc_pcmpestr): New builtin description table. |
| (bdesc_pcmpistr): Likewise. |
| (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int, |
| v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int. |
| Initialize pcmp[ei]str[im] insns for SSE4.2. |
| (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin. |
| (ix86_expand_sse_pcmpistr): Likewise. |
| (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2. |
| * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2. |
| (UNSPEC_PCMPISTR): Likewise. |
| * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter. |
| (sse4_2_pcmpestri):New isns pattern. |
| (sse4_2_pcmpestrm): Likewise. |
| (sse4_2_pcmpestr_cconly): Likewise. |
| (sse4_2_pcmpistr): New insn patern and splitter. |
| (sse4_2_pcmpistri):New isns pattern. |
| (sse4_2_pcmpistrm): Likewise. |
| (sse4_2_pcmpistr_cconly): Likewise. |
| * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics |
| in SSE4.2. |
| |
| 2007-06-01 David Daney <ddaney@avtrex.com> |
| |
| * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not |
| LOADGP_ABSOLUTE and not binds_local_p. |
| |
| 2007-06-01 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker. |
| |
| 2007-06-01 Ian Lance Taylor <iant@google.com> |
| |
| * tree-vrp.c (compare_name_with_value): Always set |
| used_strict_overflow if we get a result from the variable itself. |
| |
| 2007-06-01 Ian Lance Taylor <iant@google.com> |
| |
| PR rtl-optimization/31455 |
| * lower-subreg.c (find_decomposable_subregs): Don't decompose |
| subregs which have a cast between modes which are not tieable. |
| |
| 2007-06-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove |
| breaks after return statements. |
| |
| 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg |
| only after no_new_pseudos. |
| |
| 2007-05-31 Eric Christopher <echristo@apple.com> |
| |
| * expr.c (convert_move): Assert that we don't have a BLKmode |
| operand. |
| (store_expr): Handle BLKmode moves by calling emit_block_move. |
| |
| 2007-05-31 Daniel Berlin <dberlin@dberlin.org> |
| |
| * c-typeck.c (build_indirect_ref): Include type in error message. |
| (build_binary_op): Pass types to binary_op_error. |
| * c-common.c (binary_op_error): Take two type arguments, print out |
| types with error. |
| * c-common.h (binary_op_error): Update prototype. |
| |
| 2007-05-31 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c: Correct coments on -mno-sse4. |
| |
| 2007-05-31 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers. |
| (x86_64-*-*): Likewise. |
| * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New. |
| (OPTION_MASK_ISA_3DNOW_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE2_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE3_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSSE3_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE4): Likewise. |
| (OPTION_MASK_ISA_SSE4_UNSET): Likewise. |
| (OPTION_MASK_ISA_SSE4A_UNSET): Likewise. |
| (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2. |
| (override_options): Support SSE4.2. |
| (ix86_build_const_vector): Support SImode and DImode. |
| (ix86_build_signbit_mask): Likewise. |
| (ix86_expand_int_vcond): Support V2DImode. |
| (IX86_BUILTIN_CRC32QI): New for SSE4.2. |
| (IX86_BUILTIN_CRC32HI): Likewise. |
| (IX86_BUILTIN_CRC32SI): Likewise. |
| (IX86_BUILTIN_CRC32DI): Likewise. |
| (IX86_BUILTIN_PCMPGTQ): Likewise. |
| (bdesc_crc32): Likewise. |
| (bdesc_sse_3arg): Likewise. |
| (ix86_expand_crc32): Likewise. |
| (ix86_init_mmx_sse_builtins): Support SSE4.2. |
| (ix86_expand_builtin): Likewise. |
| * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define |
| __SSE4_2__ for -msse4.2. |
| * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2. |
| (CRC32MODE): Likewise. |
| (crc32modesuffix): Likewise. |
| (crc32modeconstraint): Likewise. |
| (sse4_2_crc32<mode>): Likewise. |
| (sse4_2_crc32di): Likewise. |
| * config/i386/i386.opt (msse4.2): New for SSE4.2. |
| (msse4): Likewise. |
| * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file. |
| * config/i386/smmintrin.h: Add SSE4.2 intrinsics. |
| * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2. |
| (vcond<mode>): Use SSEMODEI instead of SSEMODE124. |
| (vcondu<mode>): Likewise. |
| * doc/extend.texi: Document SSE4.2 built-in functions. |
| * doc/invoke.texi: Document -msse4.2/-msse4. |
| |
| 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR tree-optimization/32160 |
| * tree-predcom.c (predcom_tmp_var): New function. Mark created |
| variable as gimple reg. |
| (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var. |
| |
| 2007-05-31 Kazu Hirata <kazu@codesourcery.com> |
| |
| * gcc.c (main): Don't consider linker options when issuing the |
| warning about a linker input file not being used. |
| |
| 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * tree-vrp.c (compare_names): Initialize sop. |
| |
| 2007-05-30 Dirk Mueller <dmueller@suse.de> |
| |
| * cgraphunit.c (cgraph_analyze_function): Remove |
| computation of inline parameters. |
| |
| 2007-05-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define. |
| |
| 2007-05-30 Richard Sandiford <richard@codesourcery.com> |
| |
| * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file. |
| Add vx-common.h. Include vxworks.h between vx-common.h and |
| arm/vxworks.h. |
| * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before |
| redefining. |
| * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise. |
| (TARGET_ASM_DESTRUCTOR): Likewise. |
| * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale |
| instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS. |
| (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define. |
| (CC1_SPEC): Add -tstrongarm. Line up backslashes. |
| (VXWORKS_ENDIAN_SPEC): Define. |
| (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC. |
| (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their |
| VXWORKS_* equivalents. |
| (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC. |
| (ASM_FILE_START): Delete. |
| (TARGET_VERSION): Reformat. |
| (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define. |
| (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define. |
| * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define. |
| (FPBIT, DPBIT): Define. |
| (fp-bit.c, dp-bit.c): New rules. |
| (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs. |
| (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define. |
| * config/arm/arm-protos.h (arm_emit_call_insn): Declare. |
| * config/arm/arm.h: Include vxworks-dummy.h. |
| * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor): |
| Mark with ATTRIBUTE_UNUSED. |
| (arm_override_options): Do not allow VxWorks RTP PIC to be used |
| for Thumb. Force r9 to be the PIC register for VxWorks RTPs and |
| make it incompatible with -msingle-pic-base. |
| (arm_function_ok_for_sibcall): Return false for calls that might |
| go through a VxWorks PIC PLT entry. |
| (require_pic_register): New function, split out from... |
| (legitimize_pic_address): ...here. Do not use GOTOFF accesses |
| for VxWorks RTPs. |
| (arm_load_pic_register): Handle the VxWorks RTP initialization |
| sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg. |
| (arm_emit_call_insn): New function. |
| (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP. |
| * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number. |
| (pic_offset_arm): New pattern. |
| (call, call_value): Use arm_emit_call_insn. |
| (call_internal, call_value_internal): New expanders. |
| * config/arm/lib1funcs.asm (__PLT__): Define to empty for |
| VxWorks unless __PIC__. |
| |
| 2007-05-30 Eric Christopher <echristo@gmail.com> |
| |
| * genrecog.c: Include regs.h in generated file. |
| * genemit.c: Ditto. Fix up formatting. |
| * config/mn10300/constraints.md: New. |
| * config/mn10300/mn10300.md: Include. |
| * config/mn10300/mn10300.c(mn10300_secondary_reload_class): |
| Fix up for removed macro. |
| * config/mn10300/predicates.md (call_address_operand): Ditto. |
| * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_I): Ditto. |
| (CONST_OK_FOR_J): Ditto. |
| (CONST_OK_FOR_K): Ditto. |
| (CONST_OK_FOR_L): Ditto. |
| (CONST_OK_FOR_M): Ditto. |
| (CONST_OK_FOR_N): Ditto. |
| (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto. |
| (OK_FOR_Q): Ditto. |
| (OK_FOR_R): Ditto. |
| (OK_FOR_T): Ditto. |
| (EXTRA_CONSTRAINT): Ditto. |
| |
| 2007-05-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*): |
| Remove defines. |
| * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to |
| OPTION_MASK_ISA_64BIT. |
| * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*. |
| |
| 2007-05-30 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/32152 |
| * gimplify.c (gimplify_omp_atomic_pipeline): Use correct |
| types for comparison. |
| * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison |
| with original typed arguments. |
| * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches. |
| |
| 2007-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/31769 |
| * except.c (duplicate_eh_regions): Clear prev_try if |
| ERT_MUST_NOT_THROW region is inside of ERT_TRY region. |
| |
| 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-scalar-evolution.c (scev_const_prop): Do not create labels. |
| * tree-ssa-sink.c (statement_sink_location): Return basic block and |
| bsi of the location where statements should be inserted. |
| (sink_code_in_bb): Take bsi from statement_sink_location. |
| * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels |
| instead of bsi_start. |
| * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to |
| bsi_insert_after. |
| * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after. |
| (bsi_move_before): Document inconsistency with bsi_move_after. |
| (tree_redirect_edge_and_branch): Do not create labels if not necessary. |
| |
| 2007-05-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (TARGET_ABM): New define. |
| (TARGET_POPCNT): Ditto. |
| (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*): |
| New temporary defines to redefine from OPTION_ISA_* defines. |
| (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*): |
| New temporary defines to redefine from OPTION_MASK_ISA_* defines. |
| (ix86_isa_flags): New extern int declaration. |
| (TARGET_SUBTARGET_DEFAULT): New define. |
| (TARGET_SUBTARGET_ISA_DEFAULT): Ditto. |
| (TARGET_SUBTARGET32_DEFAULT): Ditto. |
| (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto. |
| (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. |
| * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define. |
| * config/i386/darwin.h: Change TARGET_64BIT define to |
| OPTION_ISA_64BIT. |
| |
| * config/i386/i386.opt (m3dnowa): Define as undocumented option |
| using existing "ix86_isa_flags" varible. |
| (m32, m64): Use existing "ix86_isa_flags" variable. |
| (mmmx, m3dnow): Ditto. |
| (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto. |
| (mabm): Define as non-negative option using "x86_abm" variable. |
| (mpopcnt): Define as non-negative option using "x86_popcnt" variable. |
| |
| * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]: |
| Rewrite feature test bitmap. |
| (ix86_isa_flags): New initialized global int varible. |
| (ix86_isa_flags_explicit): New static int variable. |
| (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow, |
| msse, msse2, msse3, msse4.1 and msse4a option is processed. Change |
| i86_isa_flags and ix86_isa_flags_explicit, not target_flags and |
| target_flags_explicit. |
| (override_options): Remove "target_enable" and "target_disable" fields |
| from "struct ptt". Update processor_target_table accordingly. Remove |
| PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is |
| defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of |
| "target_flags" and "ix86_isa_flags_explicit" instead of |
| "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX, |
| MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when |
| PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt" |
| to true when either of PTA_POPCNT or PTA_ABM is set in |
| processor_alias_table flags entry. Set "x86_prefetch_sse" to true |
| when either of PTA_PREFETCH_SSE or PTA_SSE is set in |
| processor_alias_table flags entry. Remove handling of |
| "target_enable" and "target_disable" fields of processor_target_table. |
| Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit |
| targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets. |
| Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit |
| targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets. |
| (def_builtin): Mask "mask" variable with "ix86_isa_flags", not |
| "target_flags". |
| (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT. |
| |
| 2007-05-29 David Daney <ddaney@avtrex.com> |
| |
| PR gcc/31975 |
| * config/mips/mips.c (mips_output_mi_thunk): Emit |
| NOTE_INSN_PROLOGUE_END at beginning of the thunk. |
| |
| 2007-05-29 Hui-May Chang <hm.chang@apple.com> |
| * config/i386/i386.c (ix86_function_regparm): Added checking of |
| ix86_force_align_arg_pointer to determine the number of |
| register parameters. |
| |
| 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer. |
| (SET_DR_MISALIGNMENT): New. |
| * tree-vect-analyze.c (vect_compute_data_ref_alignment, |
| vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment): |
| Use SET_DR_MISALIGNMENT. |
| * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from |
| pointer. |
| * tree-data-ref.c (create_data_ref, compute_all_dependences, |
| find_loop_nest): Export. |
| * tree-data-ref.h (struct data_reference): Change aux field to pointer. |
| (create_data_ref, compute_all_dependences, find_loop_nest): Declare. |
| * tree-ssa-loop-prefetch.c: Include tree-data-ref.h. |
| (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION): |
| New macros. |
| (struct mem_ref): Add field reuse_distance. |
| (find_or_create_group, record_ref): Use XNEW instead of xcalloc. |
| Initialize reuse_distance field. |
| (issue_prefetch_ref): Select temporality of prefetch according to |
| reuse_distance. |
| (volume_of_references, volume_of_dist_vector, add_subscript_strides, |
| self_reuse_distance, determine_loop_nest_reuse): New functions. |
| (loop_prefetch_arrays): Call determine_loop_nest_reuse. |
| (tree_ssa_prefetch_arrays): Dump L2 cache size. |
| * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H |
| dependency. |
| |
| 2007-05-29 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-alias.c: Add aliasing overview. |
| |
| 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com> |
| Danny Smith <dannysmith@users.sourceforge.net> |
| |
| PR target/29498 |
| * config/i386/t-crtfm: Compile crtfastmath.o with |
| -minline-all-stringops. |
| * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o. |
| * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o. |
| |
| 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * doc/md.texi: Document constraints on HP PA-RISC. |
| |
| * pa/constraints.md: New file. |
| * pa.md: Include constraints.md. |
| * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P. |
| (integer_store_memory_operand, ldil_cint_p): New functions. |
| * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare. |
| * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, |
| IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove. |
| * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove. |
| * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove. |
| |
| 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com> |
| |
| PR c/31339 |
| * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR, |
| case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR, |
| case POSTDECREMENT_EXPR>): Return the error_mark_node |
| if either the real or imaginary parts would an |
| error_mark_node. |
| |
| 2007-05-28 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA |
| name when we remove it from a call. |
| |
| 2007-05-28 Kazu Hirata <kazu@codesourcery.com> |
| |
| * targhooks.c (default_narrow_bitfield): Remove. |
| * targhooks.h: Remove the prototype for |
| default_narrow_bitfield. |
| |
| * langhooks-def.h: Remove the prototype for |
| hook_get_alias_set_0. |
| * langhooks.c (hook_get_alias_set_0): Remove. |
| |
| * global.c (EXECUTE_IF_CONFLICT): Remove. |
| |
| 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/32100 |
| * fold-const.c (tree_expr_nonnegative_warnv_p): Don't |
| return true when truth_value_p is true and the type |
| is of signed:1. |
| |
| 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Prerequisites): We no longer require Autoconf |
| 2.13 for the top-level. |
| |
| 2007-05-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned |
| memory access via x86_expand_vector_move_misalign() only for |
| TImode values on 32-bit targets. |
| |
| 2007-05-28 Razya Ladelsky <razya@il.ibm.com> |
| |
| * matrix-reorg.c: New file. Implement matrix flattening and |
| transposing optimization. |
| * tree-pass.h: Add matrix reorg pass. |
| * common.opt: Add fipa-mreorg flag. |
| * Makefile.in: Add matrix-reorg.c. |
| * passes.c: Add matrix reorg pass. |
| * varpool.c (add_new_static_var): New function. |
| * cgraph.h (add_new_static_var): Declare. |
| |
| 2007-05-27 Eric Christopher <echristo@apple.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Update |
| sp_offset depending on stack size. Save r12 depending |
| on registers we're saving later. |
| (rs6000_emit_epilogue): Update sp_offset depending only |
| on stack size. |
| |
| 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL. |
| * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto. |
| * ifcvt.c (if_convert): Ditto. |
| * tree-ssa-threadupdate.c (thread_block): Ditto. |
| (thread_through_all_blocks): Ditto. Assert that loops were analysed. |
| * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, |
| verify_loop_closed_ssa): Check number_of_loops instead of |
| current_loops. |
| * predict.c (tree_estimate_probability): Ditto. |
| * tree-if-conv.c (main_tree_if_conversion): Ditto. |
| * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. |
| * modulo-sched.c (sms_schedule): Ditto. |
| * tree-scalar-evolution.c (scev_const_prop): Ditto. |
| (scev_finalize): Do not do anything if scev analysis was not |
| initialized. |
| * cfgloopanal.c (mark_irreducible_loops): Do not check whether |
| current_loops == NULL. |
| (mark_loop_exit_edges): Check number_of_loops instead of current_loops. |
| * loop-init.c (loop_optimizer_init): Do not free current_loops when |
| there are no loops. |
| (loop_optimizer_finalize): Assert that loops were analyzed. |
| (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops, |
| rtl_doloop): Check number_of_loops instead of current_loops. |
| * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether |
| current_loops == NULL. |
| (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch, |
| gate_tree_vectorize tree_linear_transform, check_data_deps, |
| tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds, |
| tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts): |
| Check number_of_loops instead of current_loops. |
| (tree_ssa_loop_done): Do not check whether current_loops == NULL. |
| * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always |
| free loops if available. |
| (execute_pre): Do not pass do_fre to fini_pre. |
| |
| 2007-05-27 Tobias Burnus <burnus@net-b.de> |
| |
| PR middle-end/32083 |
| * real.c (mpfr_from_real): Fix sign of -Inf. |
| |
| 2007-05-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * tree-vect-transform.c (vectorizable_conversion): Initialize |
| tree_code variables to ERROR_MARK. |
| (vectorizable_type_demotion): Likewise. |
| (vectorizable_type_promotion): Likewise. |
| |
| 2007-05-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32065 |
| * config/i386/i386.md (movti): Handle push operands via |
| ix86_expand_push(). |
| |
| 2007-05-26 Kazu Hirata <kazu@codesourcery.com> |
| |
| * basic-block.h: Remove the prototype for merge_seq_blocks. |
| * cfgcleanup.c (merge_seq_blocks): Remove. |
| |
| * tree-flow.h: Remove the prototype for is_aliased_with. |
| * tree-ssa-alias.c (is_aliased_with): Remove. |
| |
| 2007-05-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New. |
| |
| * config/i386/i386.c (ix86_expand_sse4_unpack): New. |
| |
| * config/i386/sse.md (vec_unpacku_hi_v16qi): Call |
| ix86_expand_sse4_unpack if SSE4.1 is enabled. |
| (vec_unpacks_hi_v16qi): Likewise. |
| (vec_unpacku_lo_v16qi): Likewise. |
| (vec_unpacks_lo_v16qi): Likewise. |
| (vec_unpacku_hi_v8hi): Likewise. |
| (vec_unpacks_hi_v8hi): Likewise. |
| (vec_unpacku_lo_v8hi): Likewise. |
| (vec_unpacks_lo_v8hi): Likewise. |
| (vec_unpacku_hi_v4si): Likewise. |
| (vec_unpacks_hi_v4si): Likewise. |
| (vec_unpacku_lo_v4si): Likewise. |
| (vec_unpacks_lo_v4si): Likewise. |
| |
| 2007-05-26 Kazu Hirata <kazu@codesourcery.com> |
| |
| * c-typeck.c, config/arm/arm.c, config/darwin.c, |
| config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c, |
| omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and |
| follow spelling conventions in various |
| warning/error/diagnostic messages. |
| |
| * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c, |
| df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h, |
| fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h, |
| tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c, |
| tree-vrp.c: Fix comment typos. Follow spelling conventions. |
| * doc/tm.texi: Follow spelling conventions. |
| |
| 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR tree-opt/32090 |
| * tree-ssa-forwprop.c |
| (forward_propagate_addr_into_variable_array_index): Remove |
| the lhs argument. Use the type of def_rhs instead of lhs. |
| (forward_propagate_addr_expr_1): Update use of |
| forward_propagate_addr_into_variable_array_index. |
| |
| 2007-05-25 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| |
| * config/mips/mips.c (mips_attribute_table): Add "near" and "far" |
| function attributes, "far" being an alias for "long_call". |
| (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes. |
| (mips_near_type_p, mips_far_type_p): New. |
| (mips_comp_type_attributes): New function to check that attributes |
| attached to a function type are compatible. |
| (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than |
| TARGET_LONG_CALLS when deciding whether we can do a direct sibcall |
| to the target function of the thunk. |
| (mips_encode_section_info): Check for "near" and "far" function |
| attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly. |
| |
| * config/mips/predicates.md (const_call_insn_operand): Test only |
| SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS. |
| |
| * doc/extend.texi (Function Attributes): Document MIPS "near" and |
| "far" attributes. |
| |
| * testsuite/gcc.target/mips/near-far-1.c: New test case. |
| * testsuite/gcc.target/mips/near-far-2.c: New test case. |
| * testsuite/gcc.target/mips/near-far-3.c: New test case. |
| * testsuite/gcc.target/mips/near-far-4.c: New test case. |
| |
| 2007-05-25 Eric Christopher <echristo@apple.com> |
| |
| * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp |
| to x86-darwin configurations. |
| * config/i386/t-darwin: Add softfp support. |
| * config/i386/t-darwin64: Ditto. |
| * config/i386/sfp-machine.h: If mach then don't use |
| aliasing, emit a stub to call. |
| |
| 2007-05-25 Kazu Hirata <kazu@codesourcery.com> |
| |
| * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c, |
| haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c, |
| tree-predcom.c, tree-ssa-alias-warnings.c, |
| tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix |
| comment typos. Follow spelling conventions. |
| * doc/cpp.texi, doc/invoke.texi: Fix typos. |
| |
| 2007-05-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32065 |
| * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of |
| constants into memory. Expand unaligned memory references for |
| SSE modes via x86_expand_vector_move_misalign() function. |
| |
| 2007-05-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate |
| "memory" attribute for "sseishft" type insn without operands[2]. |
| |
| 2007-05-25 Dirk Mueller <dmueller@suse.de> |
| Marcus Meissner <meissner@suse.de> |
| |
| * doc/extend.texi (alloc_size): New attribute. |
| * c-common.c (handle_alloc_size_attribute): New. |
| * tree-object-size.c (alloc_object_size): Use alloc_size |
| attribute, if available. |
| |
| 2007-05-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it |
| with MASK_SSE2. |
| (__builtin_ia32_vec_ext_v2di): Likewise. |
| (__builtin_ia32_vec_ext_v4si): Likewise. |
| (__builtin_ia32_vec_ext_v8hi): Likewise. |
| (__builtin_ia32_vec_ext_v16qi): Likewise. |
| (__builtin_ia32_vec_set_v8hi): Likewise. |
| |
| 2007-05-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift. |
| |
| 2007-05-25 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/arm/arm-protos.h (arm_encode_call_attribute): Delete. |
| (arm_is_longcall_p): Rename to... |
| (arm_is_long_call_p): ...this. Take a single tree argument and |
| return a bool. |
| * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete. |
| (CUMULATIVE_ARGS): Remove call_cookie. |
| (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P) |
| (ENCODED_LONG_CALL_ATTR_P): Delete. |
| (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and |
| LONG_CALL_FLAG_CHAR cases. |
| (ARM_DECLARE_FUNCTION_SIZE): Delete. |
| * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use |
| ARM_DECLARE_FUNCTION_SIZE. |
| * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie. |
| (arm_function_arg): Return const0_rtx for VOIDmode arguments. |
| (arm_encode_call_attribute, current_file_function_operand): Delete. |
| (arm_function_in_section_p): New function. |
| (arm_is_longcall_p): Rename to... |
| (arm_is_long_call_p): ...this. Take the target function as a single |
| argument and return a bool. Do not rely on call cookies. Check |
| whether the target symbol is in the same section as the current |
| function, not just the same compilation unit. |
| (arm_function_ok_for_sibcall): Use arm_is_long_call_p. |
| (arm_encode_section_info): Don't encode a call type. |
| * config/arm/arm.md (call, call_value): Update calls to |
| arm_is_long(_)call_p. Simplify logic. |
| (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn): |
| Update calls to arm_is_long(_)call_p. |
| |
| 2007-05-25 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/31982 |
| * tree-ssa-forwprop.c |
| (forward_propagate_addr_into_variable_array_index): Handle arrays |
| with element size one. |
| |
| 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain. |
| (umulsi3_highpart): Likewise. |
| |
| 2007-05-24 Ian Lance Taylor <iant@google.com> |
| |
| PR rtl-optimization/32069 |
| * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx |
| is NULL. |
| |
| 2007-05-24 Ollie Wild <aaw@google.com> |
| |
| * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__ |
| description. |
| |
| 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * postreload-gcse.c (reg_changed_after_insn_p): New function. |
| (oprs_unchanged_p): Use it to check all registers in a REG. |
| (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE. |
| (reg_set_between_after_reload_p): Delete. |
| (reg_used_between_after_reload_p): Likewise. |
| (reg_set_or_used_since_bb_start): Likewise. |
| (eliminate_partially_redundant_load): Use reg_changed_after_insn_p |
| and reg_used_between_p instead of reg_set_or_used_since_bb_start. |
| Use reg_set_between_p instead of reg_set_between_after_reload_p. |
| * rtlanal.c (reg_set_p): Check whether REG overlaps |
| regs_invalidated_by_call, rather than just checking the |
| membership of REGNO (REG). |
| |
| 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * doc/passes.texi: Document predictive commoning. |
| * doc/invoke.texi (-fpredictive-commoning): Document. |
| * opts.c (decode_options): Enable flag_predictive_commoning on -O3. |
| * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow |
| adding indices to the generated name. |
| (schedule_sm): Pass 0 to get_lsm_tmp_name. |
| * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export. |
| * tree-pretty-print.c (op_symbol_1): Renamed to ... |
| (op_symbol_code): ... and exported. |
| (dump_omp_clause, op_symbol): Use op_symbol_code |
| instead of op_symbol_1. |
| * tree-pass.h (pass_predcom): Declare. |
| * timevar.def (TV_PREDCOM): New timevar. |
| * tree-ssa-loop.c (run_tree_predictive_commoning, |
| gate_tree_predictive_commoning, pass_predcom): New. |
| * tree-data-ref.c (find_data_references_in_loop): Find the |
| references in dominance order. |
| (canonicalize_base_object_address): Ensure that the result has |
| pointer type. |
| (dr_analyze_innermost): Export. |
| (create_data_ref): Code to fail for references with invariant |
| address moved ... |
| (find_data_references_in_stmt): ... here. |
| * tree-data-ref.h (dr_analyze_innermost): Declare. |
| * tree-affine.c: Include tree-gimple.h and hashtab.h. |
| (aff_combination_find_elt, name_expansion_hash, |
| name_expansion_eq, tree_to_aff_combination_expand, |
| double_int_constant_multiple_p, aff_combination_constant_multiple_p): |
| New functions. |
| * tree-affine.h (aff_combination_constant_multiple_p, |
| tree_to_aff_combination_expand): Declare. |
| * tree-predcom.c: New file. |
| * common.opt (fpredictive-commoning): New option. |
| * tree-flow.h (op_symbol_code, tree_predictive_commoning, |
| stmt_dominates_stmt_p, get_lsm_tmp_name): Declare. |
| * Makefile.in (tree-predcom.o): Add. |
| (tree-affine.o): Add TREE_GIMPLE_H dependency. |
| * passes.c (init_optimization_passes): Add dceloop after |
| copy propagation in loop optimizer. Add predictive commoning |
| to loop optimizer passes. |
| |
| 2007-05-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct |
| default hook. |
| |
| 2007-05-24 Jan Hubicka <jh@suse.cz> |
| |
| * gengenrtl.c (gendecl, gendef): Output the gens annotated for |
| statistics. |
| (genheader): Include statistics.h. |
| |
| * doc/invoke.texi (-fdump-unnumbered): Update docs when line number |
| notes are gone. |
| * print-rtl.c (flag_dump_unnumbered): Update comments. |
| (print_rtl): Fix my previous change. |
| * emit-rtl.c (emit_note_before, emit_note_after): Clear out note |
| specific data. |
| |
| 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| PR middle-end/32018 |
| * tree-ssa-threadupdate.c (thread_through_loop_header): Use |
| set_loop_copy. |
| (thread_through_all_blocks): Call initialize_original_copy_tables |
| and free_original_copy_tables. |
| * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge): |
| Use set_loop_copy. |
| * tree-cfg.c (tree_duplicate_sese_region): Ditto. |
| * cfghooks.c (duplicate_block): Use get_loop_copy. |
| * cfg.c: Include cfgloop.h. |
| (loop_copy): New hash table. |
| (initialize_original_copy_tables): Initialize loop_copy table. |
| (free_original_copy_tables): Free loop_copy table. |
| (copy_original_table_clear, copy_original_table_set, |
| set_loop_copy, get_loop_copy): New functions. |
| (set_bb_original, set_bb_copy): Use copy_original_table_set. |
| * cfgloop.h (struct loop): Remove copy field. |
| * Makefile.in (cfg.o): Add CFGLOOP_H dependency. |
| * basic-block.h (set_loop_copy, get_loop_copy): Declare. |
| |
| 2007-05-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for |
| -msse/-msse2/-msse3. |
| |
| 2007-05-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark |
| __builtin_ia32_vec_set_v2di with MASK_64BIT. |
| |
| 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| PR target/27067 |
| * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document. |
| * targhooks.h (default_mangle_decl_assembler_name): Declare |
| default hook. |
| * targhooks.c (default_mangle_decl_assembler_name): Define |
| default hook. |
| * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to |
| default hook. |
| * target.h (struct gcc_target): Add mangle_decl_assembler_name field. |
| * langhooks.c (lhd_set_decl_assembler_name): Call |
| targetm.mangle_decl_assembler_name for names with global scope. |
| |
| * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override |
| default. |
| (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME. |
| * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name): |
| Declare. |
| * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name): |
| New. Factored out of i386_pe_encode_section_info. |
| (gen_stdcall_or_fastcall_suffix): Get name identifier as argument. |
| Move check for prior decoration of stdcall |
| symbols to i386_pe_encode_section_info. |
| (i386_pe_encode_section_info): Adjust call to |
| gen_stdcall_or_fastcall_suffix. Use |
| i386_pe_maybe_mangle_decl_assembler_name, if needed. |
| (i386_pe_mangle_decl_assembler_name): New. Wrap |
| i386_pe_maybe_mangle_decl_assembler_name. |
| |
| 2007-05-16 Rafael Ávila de Espíndola <espindola@google.com> |
| |
| * c-common.c (c_common_signed_or_unsigned_type): Delay the check for |
| INTEGRAL_TYPE_P and TYPE_UNSIGNED. |
| * langhooks.c (get_signed_or_unsigned_type): Don't check for |
| INTEGRAL_TYPE_P or TYPE_UNSIGNED. |
| (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and |
| TYPE_UNSIGNED. |
| |
| 2007-05-23 Sandra Loosemore <sandra@codesourcery.com> |
| Nigel Stephens <nigel@mips.com> |
| Richard Sandiford <richard@codesourcery.com> |
| |
| Fix up MIPS16 hard float and add support for complex. |
| |
| * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New. |
| (TARGET_SOFT_FLOAT_ABI): New. |
| (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and |
| __mips_soft_float to reflect the ABI in use, not whether the |
| FPU is directly accessible (e.g., in MIPS16 mode). |
| (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI. |
| (UNITS_PER_FPVALUE): Likewise. |
| |
| * config/mips/mips.c (mips_expand_call): Remove redundant |
| TARGET_MIPS16 check. |
| (mips_arg_regno): New. |
| (function_arg_advance): When setting bits in cum->fp_code for |
| MIPS16, don't subtract 1 from cum->arg_number, since it is now |
| zero-based. |
| (function_arg): Use mips_arg_regno. |
| (mips_return_mode_in_fpr_p): New. |
| (mips16_call_stub_mode_suffix): New. |
| (mips16_cfun_returns_in_fpr_p): New. |
| (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p. |
| (mips_output_function_prologue): Test mips16_hard_float, not |
| !TARGET_SOFT_FLOAT, to decide when a function stub is required. |
| (mips_expand_epilogue): Call MIPS16 helper routines to copy |
| return value into a floating-point register. |
| (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p. |
| (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p. |
| (mips16_fp_args): Handle MIPS32r2 ISA which supports |
| TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant |
| word of double arguments from or to the high bits of 64-bit |
| floating point registers. |
| (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl. |
| (mips16_fpret_double): New helper function. |
| (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add |
| support for complex modes. Fill in DECL_RESULT for stubdecl. |
| (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check. |
| |
| * config/mips/mips16.S |
| (RET, ARG1, ARG2): New. |
| (MERGE_GPRf, MERGE_GPRt): New. |
| (DELAYt, DELAYf): New. |
| (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New. |
| (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New. |
| (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New. |
| (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New. |
| (SFOP): Renamed to... |
| (OPSF3): This, and macro-ified. Updated all uses. |
| (SFOP2): Renamed to... |
| (OPSF2): This, and macro-ified. Updated all uses. |
| (SFCMP): Renamed to... |
| (CMPSF): This, and macro-ified. Updated all uses. |
| (SFREVCMP): Renamed to... |
| (REVCMPSF): This, and macro-ified. Updated all uses. |
| (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified. |
| (LDDBL1, LDDBL2, RETDBL): Deleted. |
| (DFOP): Renamed to... |
| (OPDF3): This, and macro-ified. Updated all uses. |
| (DFOP2): Renamed to... |
| (OPDF2): This, and macro-ified. Updated all uses. |
| (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified. |
| (DFCMP): Renamed to... |
| (CMPDF): This, and macro-ified. Updated all uses. |
| (DFREVCMP): Renamed to... |
| (REVCMPDF): This, and macro-ified. Updated all uses. |
| (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified. |
| (RET_FUNCTION): New. |
| (__mips16_ret_sf, __mips16_ret_df): Macro-ified. |
| (__mips16_ret_sc, __mips16_ret_dc): New. |
| (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2, |
| STUB_ARGS_6, STUB_ARGS_10): New. |
| (CALL_STUB_NO_RET): New. |
| (__mips16_call_stub_1): Macro-ified. |
| (__mips16_call_stub_5): Macro-ified. |
| (__mips16_call_stub_2): Macro-ified. |
| (__mips16_call_stub_6): Macro-ified. |
| (__mips16_call_stub_9): Macro-ified. |
| (__mips16_call_stub_10): Macro-ified. |
| (CALL_STUB_RET): New. |
| (__mips16_call_stub_sf_0): Macro-ified. |
| (__mips16_call_stub_sf_1): Macro-ified. |
| (__mips16_call_stub_sf_5): Macro-ified. |
| (__mips16_call_stub_sf_2): Macro-ified. |
| (__mips16_call_stub_sf_6): Macro-ified. |
| (__mips16_call_stub_sf_9): Macro-ified. |
| (__mips16_call_stub_sf_10): Macro-ified. |
| (__mips16_call_stub_df_0): Macro-ified. |
| (__mips16_call_stub_df_1): Macro-ified. |
| (__mips16_call_stub_df_5): Macro-ified. |
| (__mips16_call_stub_df_2): Macro-ified. |
| (__mips16_call_stub_df_6): Macro-ified. |
| (__mips16_call_stub_df_9): Macro-ified. |
| (__mips16_call_stub_df_10): Macro-ified. |
| (__mips16_call_stub_sc_0): New. |
| (__mips16_call_stub_sc_1): New. |
| (__mips16_call_stub_sc_5): New. |
| (__mips16_call_stub_sc_2): New. |
| (__mips16_call_stub_sc_6): New. |
| (__mips16_call_stub_sc_9): New. |
| (__mips16_call_stub_sc_10): New. |
| (__mips16_call_stub_dc_0): New. |
| (__mips16_call_stub_dc_1): New. |
| (__mips16_call_stub_dc_5): New. |
| (__mips16_call_stub_dc_2): New. |
| (__mips16_call_stub_dc_6): New. |
| (__mips16_call_stub_dc_9): New. |
| (__mips16_call_stub_dc_10): New. |
| |
| * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs. |
| * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise. |
| * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise. |
| |
| 2007-05-23 Ian Lance Taylor <iant@google.com> |
| |
| * doc/invoke.texi (Invoking GCC): Document that the order of the |
| -l option matters. |
| |
| 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn> |
| |
| PR target/30987 |
| * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove. |
| * config/score/predicate.md (const_pow2, const_npow2): Remove. |
| * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL |
| undef. |
| |
| PR target/30474 |
| * config/score/score.c (score_print_operand): Make sure that only |
| lower bits are used. |
| |
| 2007-05-22 Ian Lance Taylor <iant@google.com> |
| |
| * tree-vrp.c (avoid_overflow_infinity): New static function, |
| broken out of set_value_range_to_value. |
| (set_value_range_to_value): Call avoid_overflow_infinity. |
| (extract_range_from_assert): Likewise. |
| |
| 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/31095 |
| * builtins.c (expand_builtin_memmove_args): Strip nops that don't |
| change the type before looking for a COMPOUND_EXPR. |
| |
| 2007-05-22 Ian Lance Taylor <iant@google.com> |
| |
| * lower-subreg.c (decompose_multiword_subregs): If we change an |
| insn, call remove_retval_note on it. |
| |
| 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * regs.h (end_hard_regno): New function. |
| (END_HARD_REGNO, END_REGNO): New macros. |
| (add_to_hard_reg_set): New function. |
| (remove_from_hard_reg_set): Likewise. |
| (in_hard_reg_set_p): Likewise. |
| (overlaps_hard_reg_set_p): Likewise. |
| * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p. |
| (note_btr_set): Use END_HARD_REGNO. |
| * caller-save.c (setup_save_areas): Use end_hard_regno. |
| (mark_set_regs): Use END_HARD_REGNO. |
| (add_stored_regs): Use end_hard_regno. |
| (mark_referenced_regs): Use add_to_hard_reg_set. |
| * combine.c (update_table_tick): Use END_REGNO. |
| (record_value_for_reg): Likewise. |
| (record_dead_and_set_regs): Likewise. |
| (get_last_value_validate): Likewise. |
| (use_crosses_set_p): Likewise. |
| (reg_dead_at_p_1): Likewise. |
| (reg_dead_at_p): Likewise. |
| (mark_used_regs_combine): Use add_to_hard_reg_set. |
| (move_deaths): Use END_HARD_REGNO. |
| (reg_bitfield_target_p): Use end_hard_regno. |
| (distribute_notes): Use END_HARD_REGNO. |
| * cse.c (mention_regs): Use END_REGNO. |
| (insert): Use add_to_hard_reg_set. |
| (invalidate): Use END_HARD_REGNO. |
| (invalidate_for_call): Likewise. |
| (exp_equiv_p): Use END_REGNO. |
| (cse_insn): Likewise. |
| * cselib.c (cselib_invalidate_regno): Use end_hard_regno. |
| * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO. |
| * df-scan.c (df_ref_record): Use END_HARD_REGNO. |
| * function.c (keep_stack_depressed): Use end_hard_regno. |
| * global.c (global_alloc): Use end_hard_regno. |
| (global_conflicts): Use add_to_hard_reg_set instead of |
| mark_reg_live_nc. |
| (find_reg): Likewise. |
| (mark_reg_store): Likewise. |
| (mark_reg_conflicts): Likewise. |
| (mark_reg_death): Use remove_from_hard_reg_set. |
| (mark_reg_live_nc): Delete. |
| (set_preference): Use end_hard_regno. |
| * local-alloc.c (mark_life): Use add_to_hard_reg_set and |
| remove_from_hard_reg_set. |
| (post_mark_life): Use add_to_hard_reg_set. |
| * mode-switching.c (reg_dies): Use remove_from_hard_reg_set. |
| (reg_becomes_live): Use add_to_hard_reg_set. |
| * recog.c (reg_fits_class_p): Use in_hard_reg_set_p. |
| (peep2_find_free_register): Use add_to_hard_reg_set. |
| * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO. |
| * regclass.c (record_reg_classes): Use in_hard_reg_set_p. |
| * regrename.c (note_sets): Use add_to_hard_reg_set. |
| (clear_dead_regs): Use remove_from_hard_reg_set. |
| (regrename_optimize): Use add_to_hard_reg_set. |
| (find_oldest_value_reg): Use in_hard_reg_set_p. |
| * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno. |
| (hard_reg_set_here_p): Use end_hard_regno. |
| (decompose): Likewise. |
| (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO. |
| (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno. |
| * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set. |
| (mark_home_live): Use end_hard_regno. |
| (spill_hard_reg): Likewise. |
| (clear_reload_reg_in_use): Likewise. |
| * reorg.c (delete_prior_computation): Use END_REGNO. |
| * resource.c (update_live_status): Use END_HARD_REGNO. |
| (mark_referenced_resources): Use add_to_hard_reg_set. |
| (mark_set_resources): Likewise. |
| (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set. |
| * rtlanal.c (refers_to_regno_p): Use END_REGNO. |
| (reg_overlap_mentioned_p): Likewise. |
| (dead_or_set_p): Likewise. Use an exclusive upper loop bound. |
| (covers_regno_no_parallel_p): Use END_REGNO. |
| (find_regno_note): Likewise. |
| (find_reg_fusage): Use END_HARD_REGNO. |
| * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p. |
| * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno. |
| |
| 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk> |
| |
| * mode-switching.c (reg_dies): Change type of second argument to |
| "HARD_REG_SET *". |
| (optimize_mode_switching): Update accordingly. |
| |
| 2007-05-22 Richard Sandiford <richard@codesourcery.com> |
| |
| * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete |
| in favor of... |
| (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p) |
| (hard_reg_set_empty_p): ...these new functions. |
| * bt-load.c (choose_btr): Use hard_reg_subset_p instead of |
| GO_IF_HARD_REG_SUBSET. |
| * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p |
| instead of GO_IF_HARD_REG_EQUAL. |
| * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p |
| instead of GO_IF_HARD_REG_EQUAL. |
| * global.c (find_reg): Use hard_reg_set_empty_p instead of |
| GO_IF_HARD_REG_SUBSET. |
| (modify_reg_pav): Use hard_reg_set_empty_p instead of |
| GO_IF_HARD_REG_EQUAL. |
| * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead |
| of GO_IF_HARD_REG_SUBSET. |
| * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p |
| instead of GO_IF_HARD_REG_EQUAL. |
| * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use |
| hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET. |
| (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead |
| of GO_IF_HARD_REG_SUBSET, |
| * reload1.c (finish_spills): Use hard_reg_subset_p instead of |
| GO_IF_HARD_REG_SUBSET. |
| * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p |
| instead of GO_IF_HARD_REG_EQUAL. |
| * config/sh/sh.c (push_regs, calc_live_regs): Use |
| hard_reg_sets_intersect_p instead of hard_regs_intersect_p. |
| (hard_regs_intersect_p): Delete. |
| |
| 2007-05-22 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/sourcebuild.texi (Test Directives) Add dg-message. |
| |
| 2007-05-22 H.J. Lu <hongjiu.lu@intel.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * config.gcc (i[34567]86-*-*): Add smmintrin.h to |
| extra_headers. |
| (x86_64-*-*): Likewise. |
| |
| * config/i386/i386-modes.def (V2QI): New. |
| |
| * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and |
| SSE4A. |
| (override_options): Support SSE4.1. |
| (IX86_BUILTIN_BLENDPD): New for SSE4.1. |
| (IX86_BUILTIN_BLENDPS): Likewise. |
| (IX86_BUILTIN_BLENDVPD): Likewise. |
| (IX86_BUILTIN_BLENDVPS): Likewise. |
| (IX86_BUILTIN_PBLENDVB128): Likewise. |
| (IX86_BUILTIN_PBLENDW128): Likewise. |
| (IX86_BUILTIN_DPPD): Likewise. |
| (IX86_BUILTIN_DPPS): Likewise. |
| (IX86_BUILTIN_INSERTPS128): Likewise. |
| (IX86_BUILTIN_MOVNTDQA): Likewise. |
| (IX86_BUILTIN_MPSADBW128): Likewise. |
| (IX86_BUILTIN_PACKUSDW128): Likewise. |
| (IX86_BUILTIN_PCMPEQQ): Likewise. |
| (IX86_BUILTIN_PHMINPOSUW128): Likewise. |
| (IX86_BUILTIN_PMAXSB128): Likewise. |
| (IX86_BUILTIN_PMAXSD128): Likewise. |
| (IX86_BUILTIN_PMAXUD128): Likewise. |
| (IX86_BUILTIN_PMAXUW128): Likewise. |
| (IX86_BUILTIN_PMINSB128): Likewise. |
| (IX86_BUILTIN_PMINSD128): Likewise. |
| (IX86_BUILTIN_PMINUD128): Likewise. |
| (IX86_BUILTIN_PMINUW128): Likewise. |
| (IX86_BUILTIN_PMOVSXBW128): Likewise. |
| (IX86_BUILTIN_PMOVSXBD128): Likewise. |
| (IX86_BUILTIN_PMOVSXBQ128): Likewise. |
| (IX86_BUILTIN_PMOVSXWD128): Likewise. |
| (IX86_BUILTIN_PMOVSXWQ128): Likewise. |
| (IX86_BUILTIN_PMOVSXDQ128): Likewise. |
| (IX86_BUILTIN_PMOVZXBW128): Likewise. |
| (IX86_BUILTIN_PMOVZXBD128): Likewise. |
| (IX86_BUILTIN_PMOVZXBQ128): Likewise. |
| (IX86_BUILTIN_PMOVZXWD128): Likewise. |
| (IX86_BUILTIN_PMOVZXWQ128): Likewise. |
| (IX86_BUILTIN_PMOVZXDQ128): Likewise. |
| (IX86_BUILTIN_PMULDQ128): Likewise. |
| (IX86_BUILTIN_PMULLD128): Likewise. |
| (IX86_BUILTIN_ROUNDPD): Likewise. |
| (IX86_BUILTIN_ROUNDPS): Likewise. |
| (IX86_BUILTIN_ROUNDSD): Likewise. |
| (IX86_BUILTIN_ROUNDSS): Likewise. |
| (IX86_BUILTIN_PTESTZ): Likewise. |
| (IX86_BUILTIN_PTESTC): Likewise. |
| (IX86_BUILTIN_PTESTNZC): Likewise. |
| (IX86_BUILTIN_VEC_EXT_V16QI): Likewise. |
| (IX86_BUILTIN_VEC_SET_V2DI): Likewise. |
| (IX86_BUILTIN_VEC_SET_V4SF): Likewise. |
| (IX86_BUILTIN_VEC_SET_V4SI): Likewise. |
| (IX86_BUILTIN_VEC_SET_V16QI): Likewise. |
| (bdesc_ptest): New. |
| (bdesc_sse_3arg): Likewise. |
| (bdesc_2arg): Likewise. |
| (bdesc_1arg): Likewise. |
| (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins |
| with 3 args. |
| (ix86_expand_sse_4_operands_builtin): New. |
| (ix86_expand_unop_builtin): Support 2 arg builtins with a constant |
| smaller than 8 bits as the 2nd arg. |
| (ix86_expand_sse_ptest): New. |
| (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins. |
| (ix86_expand_vector_set): Support SSE4.1. |
| (ix86_expand_vector_extract): Likewise. |
| |
| * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define |
| __SSE4_1__ for -msse4.1. |
| |
| * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1. |
| (UNSPEC_INSERTPS): Likewise. |
| (UNSPEC_DP): Likewise. |
| (UNSPEC_MOVNTDQA): Likewise. |
| (UNSPEC_MPSADBW): Likewise. |
| (UNSPEC_PHMINPOSUW): Likewise. |
| (UNSPEC_PTEST): Likewise. |
| (UNSPEC_ROUNDP): Likewise. |
| (UNSPEC_ROUNDS): Likewise. |
| |
| * config/i386/i386.opt (msse4.1): New for SSE4.1. |
| |
| * config/i386/predicates.md (const_pow2_1_to_2_operand): New. |
| (const_pow2_1_to_32768_operand): Likewise. |
| |
| * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header |
| file. |
| |
| * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for |
| SSE4.1. |
| (sse4_1_insertps): Likewise. |
| (*sse4_1_extractps): Likewise. |
| (sse4_1_ptest): Likewise. |
| (sse4_1_mulv2siv2di3): Likewise. |
| (*sse4_1_mulv4si3): Likewise. |
| (*sse4_1_smax<mode>3): Likewise. |
| (*sse4_1_umax<mode>3): Likewise. |
| (*sse4_1_smin<mode>3): Likewise. |
| (*sse4_1_umin<mode>3): Likewise. |
| (sse4_1_eqv2di3): Likewise. |
| (*sse4_1_pinsrb): Likewise. |
| (*sse4_1_pinsrd): Likewise. |
| (*sse4_1_pinsrq): Likewise. |
| (*sse4_1_pextrb): Likewise. |
| (*sse4_1_pextrb_memory): Likewise. |
| (*sse4_1_pextrw_memory): Likewise. |
| (*sse4_1_pextrq): Likewise. |
| (sse4_1_blendpd): Likewise. |
| (sse4_1_blendps): Likewise. |
| (sse4_1_blendvpd): Likewise. |
| (sse4_1_blendvps): Likewise. |
| (sse4_1_dppd): Likewise. |
| (sse4_1_dpps): Likewise. |
| (sse4_1_movntdqa): Likewise. |
| (sse4_1_mpsadbw): Likewise. |
| (sse4_1_packusdw): Likewise. |
| (sse4_1_pblendvb): Likewise. |
| (sse4_1_pblendw): Likewise. |
| (sse4_1_phminposuw): Likewise. |
| (sse4_1_extendv8qiv8hi2): Likewise. |
| (*sse4_1_extendv8qiv8hi2): Likewise. |
| (sse4_1_extendv4qiv4si2): Likewise. |
| (*sse4_1_extendv4qiv4si2): Likewise. |
| (sse4_1_extendv2qiv2di2): Likewise. |
| (*sse4_1_extendv2qiv2di2): Likewise. |
| (sse4_1_extendv4hiv4si2): Likewise. |
| (*sse4_1_extendv4hiv4si2): Likewise. |
| (sse4_1_extendv2hiv2di2): Likewise. |
| (*sse4_1_extendv2hiv2di2): Likewise. |
| (sse4_1_extendv2siv2di2): Likewise. |
| (*sse4_1_extendv2siv2di2): Likewise. |
| (sse4_1_zero_extendv8qiv8hi2): Likewise. |
| (*sse4_1_zero_extendv8qiv8hi2): Likewise. |
| (sse4_1_zero_extendv4qiv4si2): Likewise. |
| (*sse4_1_zero_extendv4qiv4si2): Likewise. |
| (sse4_1_zero_extendv2qiv2di2): Likewise. |
| (*sse4_1_zero_extendv2qiv2di2): Likewise. |
| (sse4_1_zero_extendv4hiv4si2): Likewise. |
| (*sse4_1_zero_extendv4hiv4si2): Likewise. |
| (sse4_1_zero_extendv2hiv2di2): Likewise. |
| (*sse4_1_zero_extendv2hiv2di2): Likewise. |
| (sse4_1_zero_extendv2siv2di2): Likewise. |
| (*sse4_1_zero_extendv2siv2di2): Likewise. |
| (sse4_1_roundpd): Likewise. |
| (sse4_1_roundps): Likewise. |
| (sse4_1_roundsd): Likewise. |
| (sse4_1_roundss): Likewise. |
| (mulv4si3): Don't expand for SSE4.1. |
| (smax<mode>3): Likewise. |
| (umaxv4si3): Likewise. |
| (uminv16qi3): Likewise. |
| (umin<mode>3): Likewise. |
| (umaxv8hi3): Rewrite. Only enabled for SSE4.1. |
| |
| * doc/extend.texi: Document SSE4.1 built-in functions. |
| |
| * doc/invoke.texi: Document -msse4.1. |
| |
| 2007-05-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec. |
| * config/m68k/m68k-none.h (ASM_SPEC): Don't override here. |
| * config/m68k/m68k.h (ASM_PCREL_SPEC): New. |
| (ASM_SPEC): Add asm_pcrel_spec. |
| (EXTRA_SPECS): Add asm_pcrel_spec. |
| |
| 2007-05-21 David Daney <ddaney@avtrex.com> |
| |
| * doc/install.texi (Building a cross compiler): Add requirements |
| for Java cross compiler. |
| |
| 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR middle-end/31995 |
| * tree-chrec.c (evolution_function_is_affine_multivariate_p): |
| Add loopno argument. Use evolution_function_is_invariant_rec_p |
| instead of evolution_function_is_constant_p. |
| Update calls to evolution_function_is_affine_multivariate_p. |
| * tree-chrec.h (evolution_function_is_affine_multivariate_p): |
| Add loopno argument. |
| * tree-scalar-evolution.c (gather_chrec_stats): Call |
| evolution_function_is_affine_multivariate_p with a loop |
| number of 0. |
| * tree-data-ref.c (analyze_miv_subscript): Likewise. |
| (analyze_overlapping_iterations): Likewise. |
| (access_functions_are_affine_or_constant_p): Likewise. |
| (build_classic_dist_vector_1): If the access functions |
| are equal, don't do anything. |
| |
| 2007-05-21 Paolo Bonzini <bonzini@gnu.org> |
| Paolo Carlini <pcarlini@suse.de> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * c-cppbuiltin.c (c_cpp_builtins): Define |
| __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2, |
| __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8, |
| __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate. |
| * doc/cpp.texi ([Standard Predefined Macros]): Document. |
| |
| 2007-05-21 Mike Stump <mrs@apple.com> |
| |
| * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil |
| handling as well. |
| * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. |
| |
| 2007-05-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro |
| implementation if __OPTIMIZE__ is not defined. |
| (_mm_alignr_pi8): Ditto. |
| * config/i386/ammintrin.h (_mm_extracti_si64): Ditto. |
| (_mm_inserti_si64): Ditto. |
| * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto. |
| (_mm_slli_epi16): Ditto. |
| (_mm_slli_epi32): Ditto. |
| (_mm_slli_epi64): Ditto. |
| (_mm_srai_epi16): Ditto. |
| (_mm_srai_epi32): Ditto. |
| (_mm_srli_si128): Ditto. |
| (_mm_slli_si128): Ditto. |
| (_mm_srli_epi16): Ditto. |
| (_mm_srli_epi32): Ditto. |
| (_mm_srli_epi64): Ditto. |
| (_mm_extract_epi16): Ditto. |
| (_mm_insert_epi16): Ditto. |
| (_mm_shufflehi_epi16): Ditto. |
| (_mm_shufflelo_epi16): Ditto. |
| (_mm_shuffle_epi32): Ditto. |
| * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto. |
| (_m_pextrw): Ditto. |
| (_mm_insert_pi16): Ditto. |
| (_m_pinsrw): Ditto. |
| (_mm_shuffle_pi16): Ditto. |
| (_m_pshufw): Ditto. |
| (_mm_shufle_ps): Ditto. |
| (_mm_prefetch): Ditto. |
| |
| 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed. |
| * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed. |
| * real.c (encode_i370_single, decode_i370_single, |
| encode_i370_double, decode_i370_double): Functions removed. |
| (i370_single_format, i370_double_format): Initializations removed. |
| (real_maxval, round_for_format, exact_real_truncate, significand_size): |
| Consider the log2_b field to always be one. |
| (ieee_single_format, mips_single_format, coldfire_single_format, |
| ieee_double_format, mips_double_format, coldfire_double_format, |
| ieee_extended_motorola_format, ieee_extended_intel_96_format, |
| ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, |
| ibm_extended_format, mips_extended_format, ieee_quad_format, |
| mips_quad_format, vax_f_format, vax_d_format, vax_g_format, |
| decimal_single_format, decimal_double_format, decimal_quad_format, |
| c4x_single_format, c4x_extended_format, real_internal_format): Remove |
| initialization of log2_b. |
| * real.h (i370_single_format, i370_double_format): Declarations |
| removed. |
| * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b |
| field to always be one. |
| |
| 2007-05-21 Andreas Schwab <schwab@suse.de> |
| |
| * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of |
| NOTE_INSN_BASIC_BLOCK_P. |
| (process_for_unwind_directive): Likewise. |
| |
| 2007-05-21 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * builtins.c (expand_builtin_setjmp_setup): Update comment. |
| * function.h (struct function): Move va_list_gpr_size, |
| va_list_fpr_size, function_frequency to front of bitfields. Add |
| calls_unwind_init. |
| (current_function_calls_unwind_init): New. |
| * except.c (expand_builtin_unwind_init): Set |
| current_function_calls_unwind_init not |
| current_function_has_nonlocal_label. |
| * reload1.c (has_nonexceptional_receiver): New. |
| (reload): Use it and current_function_calls_unwind_init to |
| determine whether call-saved regs must be saved. |
| |
| 2007-05-20 Jan Hubicka <jh@suse.cz> |
| |
| * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of |
| NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. |
| * ddg.c (create_ddg): LIkewise. |
| * final.c (final): Remove hunk moving line number notes around since |
| they are no longer present at this stage. |
| (final_scan_insn): Use NOTE_KIND instead of |
| NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. |
| (output_asm_label): Likewise. |
| * reorg.c (dbr_schedule): Likewise. |
| * haifa-sched.c (unlink_other_notes): Likewise. |
| * mode-switching.c (optimize_mode_switching): Likewise. |
| * graph.c (start_bb): Likewise. |
| * rtl.def (NOTE): Update description. |
| * jump.c (squeeze_notes): Delete. |
| (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use |
| NOTE_INSN_BASIC_BLOCK_P when possible. |
| * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes. |
| * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of |
| NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. |
| (dwarf2out_var_location): Likewise. |
| * cfgbuild.c (make_edges): Likewise. |
| (find_basic_blocks_1): Likewise. |
| * function.c (reorder_blocks_1): Likewise. |
| (epilogue_done): Likewise. |
| (reposition_prologue_and_epilogue_notes): Likewise. |
| * print-rtl.c (print_rtx): Likewise; drop code for printing |
| line number notes. |
| (print_rtl): Likewise. |
| (print_rtl_single): Likewise. |
| * gcse.c (insert_insn_start_bb): Likewise. |
| * alias.c (init_alias_analysis): Likewise. |
| * calls.c (fixup_tail_calls): Likewise. |
| * except.c (sjlj_emit_function_enter): Likewise. |
| * emit-rtl.c (add_insn_after): Likeiwse. |
| (emit_label_before): Likewise. |
| (emit_label_after): Likewise. |
| (emit_note_before, emit_note_after, emit_note): Update |
| parameter to be enum insn_note; do not deal with source |
| files. |
| * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): |
| Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P |
| when possible. |
| (merge_blocks_move_successor_nojumps): Simplify now when |
| we don't have BLOCK notes. |
| (try_optimize_cfg): Likewise. |
| * cfglayout.c (skip_insns_after_block): Likewise. |
| (record_effective_endpoints): Likewise. |
| (duplicate_insn_chain): Likewise. |
| * varasm.c (output_constant_pool_1): Likewise. |
| * sched-deps.c (sched_analyze): Likewise. |
| * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS): |
| Exterminate. |
| (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone. |
| * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate. |
| (SET_INSN_DELETED): Simplify. |
| (NOTE_LINE_NUMBER): Exterminate. |
| (NOTE_LINE_KIND): New. |
| (NOTE_INSN_BASIC_BLOCK_P): Update. |
| (enum insn_note): Simplify. |
| (GET_NOTE_INSN_NAME) Simplify. |
| (emit_note_before, emit_note_after, emit_note): Update prototype. |
| (squeeze_notes): Remove. |
| * sched-int.h (NOTE_NOT_BB_P): Update. |
| * resource.c (mark_target_live_regs): Update. |
| * sched-rgn.c (debug_dependencies): Update. |
| * sched-vis.c (print_insn): Update. |
| * config/alpha/alpha.c (alpha_handle_trap_shadows): Update. |
| * config/i386/i386.c (ix86_output_function_epilogue): Update. |
| * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0. |
| (TARGET_ADJUST_UNROLL_MAX): Likewise. |
| (split_branches): Update. |
| (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc |
| 4.0.0. |
| (sh_adjust_unroll_max): Exterminate. |
| * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED. |
| * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise. |
| (m68hc11_reorg): Likewise. |
| * config/ia64/ia64.c (emit_insn_group_barriers): Update. |
| (emit_predicate_relation_info): Update. |
| (process_for_unwind_directive): Update. |
| * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update. |
| (output_call): Update. |
| * config/pa/pa.c (output_lbranch): Update. |
| (output_millicode_call): Update. |
| (output_call): Update. |
| (pa_combine_instructions): Update. |
| * config/mips/mips.c (mips16_gp_pseudo_reg): Update. |
| * config/bfin/bfin.c (gen_one_bundle): Update. |
| * cfgrtl.c (can_delete_note_p): Update. |
| (delete_insn): Update. |
| (rtl_merge_blocks): Update. |
| (commit_one_edge_insertion): Update. |
| (rtl_verify_flow_info): Update. |
| * stmt.c (expand_case): Do not call squeeze_notes. |
| |
| 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR middle-end/7651 |
| PR c++/11856 |
| PR c/12963 |
| PR c/23587 |
| PR other/29694 |
| * c.opt (Wtype-limits): New. |
| * doc/invoke.texi (Wtype-limits): Document it. |
| (Wextra): Enabled by -Wextra. |
| * c-opts.c (c_common_post_options): Enabled by -Wextra. |
| * c-common.c (shorten_compare): Warn with Wtype-limits. |
| |
| 2007-05-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always |
| inlined function, not as a macro. |
| (_mm_alignr_pi8): Ditto. |
| * config/i386/ammintrin.h (_mm_extracti_si64): Ditto. |
| (_mm_inserti_si64): Ditto. |
| * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto. |
| (_mm_extract_epi16): Ditto. |
| (_mm_insert_epi16): Ditto. |
| (_mm_shufflehi_epi16): Ditto. |
| (_mm_shufflelo_epi16): Ditto. |
| (_mm_shuffle_epi32): Ditto. |
| * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant. |
| * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to |
| all functions. |
| (_m_from_float): Add __extension__ to conversion. Use 0.0f for |
| float constant. |
| (_m_to_float): Use C89 compatible assignment. |
| |
| 2007-05-20 Martin Michlmayr <tbm@cyrius.com> |
| |
| PR target/32007 |
| * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines. |
| |
| 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR middle-end/7651 |
| * doc/invoke.texi (Wreturn-type): Complete description. |
| (Wextra): Delete item about return-type warning. |
| * c-decl.c: Delete redundant Wextra warning. |
| |
| 2007-05-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/31585 |
| * config/i386/pmmintrin.h: Do not include xmmintrin.h |
| * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always |
| inlined function, not as a macro. |
| (_mm_prefetch): Ditto. |
| (_m_pextrw): Ditto. |
| (_mm_insert_pi16): Ditto. |
| (_m_pinsrw): Ditto. |
| (_mm_shuffle_pi16): Ditto. Add const to __N argument. |
| (_m_pshufw): Ditto. Add const to __N argument. |
| (_mm_shufle_ps): Ditto. Add const to __mask argument. |
| * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument. |
| (_mm_slli_epi32): Ditto. |
| (_mm_srli_si128): Implement as always inlined function, not as a |
| macro. Add __inline to function declaration. |
| (_mm_slli_si128): Ditto. |
| |
| 2007-05-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM, |
| FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT): |
| New constants. |
| (struct fenv): New structure. |
| (FP_HANDLE_EXCEPTIONS): New define. |
| (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants. |
| (_FP_DECL_EXP): New define. |
| (FP_INIT_ROUNDMODE): New define. |
| (FP_ROUNDMODE): New define. |
| |
| 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Warning Options): Add -Wconversion-sign. |
| (Wconversion): Update description. |
| (Wconversion-sign): New. |
| * c.opt (Wconversion-sign): New. |
| * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign |
| means disabled for C++. Otherwise, take the status of Wconversion. |
| * c-common.c (conversion_warning): Warn with either Wconversion or |
| Wconversion-sign. |
| (warnings_for_convert_and_check): Conditions are already checked by |
| conversion_warning. |
| (convert_and_check): Don't check warnings if the conversion failed. |
| |
| 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net> |
| Anatoly Sokolov <aesok@dol.ru> |
| |
| * config/avr/avr-protos.h (expand_prologue, expand_epilogue, |
| avr_epilogue_uses) : Add declaration. |
| * config/avr/predicates.md (avr_sp_immediate_operand): New predicate. |
| * config/avr/constraints.md (R): New constraint. |
| config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI, |
| UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants. |
| (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ... |
| (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns. |
| (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt, |
| call_prologue_saves, epilogue_restores, return_from_epilogue, |
| return_from_main_epilogue, return_from_interrupt_epilogue, |
| return_from_naked_epilogue, prologue, epilogue): New patterns. |
| (jump): Handle symbol reference. |
| * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr, |
| avr_output_function_prologue, avr_output_function_epilogue): Remove |
| functions. |
| (avr_init_machine_status, expand_prologue, expand_epilogue, |
| avr_asm_function_end_prologue, avr_epilogue_uses, |
| avr_asm_function_begin_epilogue): New functions. |
| (prologue_size, epilogue_size, jump_tables_size): Remove global |
| variables. |
| (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove. |
| (TARGET_ASM_FUNCTION_END_PROLOGUE): Define. |
| (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define. |
| (avr_override_options): Initialise init_machine_status. |
| (output_movhi): Handle all stack pointer loads. |
| (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address. |
| (avr_output_addr_vec_elt): Do not use variable jump_tables_size. |
| * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New. |
| (EPILOGUE_USES) Redefine. |
| (machine_function) Declare. |
| |
| 2007-05-19 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment. |
| Use a single return statement. |
| |
| 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| PR middle-end/30250 |
| * builtins.c (do_mpfr_lgamma_r): New. |
| (fold_builtin_2): Handle builtin gamma_r/lgamma_r. |
| * tree.h (CASE_FLT_FN_REENT): New. |
| |
| 2007-05-18 Geoffrey Keating <geoffk@apple.com> |
| |
| * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'. |
| (output_die): Use 'unsigned long' with %x. |
| * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and |
| HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT. |
| * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx. |
| |
| * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP. |
| |
| 2007-05-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/31989 |
| PR target/31681 |
| PR target/31666 |
| * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to |
| true if function has no argument. |
| |
| 2007-05-18 DJ Delorie <dj@redhat.com> |
| |
| * config/mips/mips.c (mips_offset_within_alignment_p): New. |
| (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols. |
| |
| 2007-05-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| * longlong.h (__x86_64__): Add definitions for add_ssaaaa, |
| sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and |
| count_trailing_zeros. |
| (__i386__): Implement count_leading_zeros using __builtin_clz(). |
| Implement count_trailing_zeros usign __builtin_ctz(). |
| |
| 2007-05-18 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine. |
| |
| 2007-05-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/31344 |
| * expr.c (emit_move_change_mode): Change mode of push operands here. |
| |
| 2007-05-17 Ian Lance Taylor <iant@google.com> |
| |
| PR tree-optimization/31953 |
| * tree-vrp.c (set_value_range_to_value): Add equiv parameter. |
| Change all callers. |
| (set_value_range_to_null): Call set_value_range_to_value. |
| (extract_range_from_comparison): Likewise. |
| |
| 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * toplev.c (print_version): Output GMP/MPFR version info. |
| |
| * builtins.c (CASE_MATHFN_REENT): New macro. |
| (mathfn_built_in): Use it. |
| * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R, |
| BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R, |
| BUILT_IN_LGAMMAL_R): New. |
| * doc/extend.texi: Document new builtins. |
| |
| PR middle-end/31796 |
| * builtins.c (do_mpfr_remquo): New. |
| (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER. |
| (fold_builtin_3): Handle BUILT_IN_REMQUO. |
| |
| PR middle-end/30251 |
| * builtins.c (fold_builtin_1): Handle y0, y1. |
| (fold_builtin_2): Handle yn. |
| |
| PR middle-end/30251 |
| * builtins.c (do_mpfr_bessel_n): New. |
| (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1. |
| (fold_builtin_2): Handle BUILT_IN_JN. |
| |
| 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| PR target/31965 |
| * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as |
| TYPE_PRECISION (intmax_type_node). |
| |
| 2007-05-17 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/31850 |
| * reload.c (subst_reloads): Remove checking. |
| |
| 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr> |
| |
| PR rtl-optimization/31691 |
| * combine.c (simplify_set): Build a new src pattern instead of |
| substituting its operands in the COMPARE case. |
| |
| 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-vrp.c (finalize_jump_threads): Do not care about dominance info. |
| (execute_vrp): Preserve loops through jump threading. |
| * tree-ssa-threadupdate.c (thread_single_edge, |
| dbds_continue_enumeration_p, determine_bb_domination_status, |
| thread_through_loop_header): New functions. |
| (create_edge_and_update_destination_phis, |
| create_edge_and_update_destination_phis): Set loops for the new blocks. |
| (prune_undesirable_thread_requests): Removed. |
| (redirect_edges): Do not pretend that redirect_edge_and_branch can |
| create new blocks. |
| (thread_block): Do not call prune_undesirable_thread_requests. |
| Update loops. |
| (mark_threaded_blocks): Select edges to thread here. |
| (thread_through_all_blocks): Take may_peel_loop_headers argument. |
| Thread edges through loop headers independently. |
| * cfgloopmanip.c (create_preheader, mfb_keep_just): Export. |
| * tree-pass.h (TODO_mark_first_instance): New. |
| (first_pass_instance): Declare. |
| * cfghooks.c (duplicate_block): Put the block to the original loop |
| if copy is not specified. |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through |
| jump threading. Pass may_peel_loop_headers to |
| thread_through_all_blocks according to first_pass_instance. |
| * cfgloop.h (create_preheader): Declare. |
| * tree-flow.h (thread_through_all_blocks): Declaration changed. |
| * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare. |
| * passes.c (first_pass_instance): New variable. |
| (next_pass_1): Set TODO_mark_first_instance. |
| (execute_todo): Set first_pass_instance. |
| |
| 2007-05-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/24659 |
| * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi, |
| OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi, |
| OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and |
| OTI_vec_pack_ufix_trunc. |
| (vec_unpacks_float_hi_optab): Define new macro. |
| (vec_unpacks_float_lo_optab): Ditto. |
| (vec_unpacku_float_hi_optab): Ditto. |
| (vec_unpacku_float_lo_optab): Ditto. |
| (vec_pack_sfix_trunc_optab): Ditto. |
| (vec_pack_ufix_trunc_optab): Ditto. |
| * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab |
| and vec_pack_[s|u]fix_trunc_optab using |
| vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns |
| * tree-vectorizer.c (supportable_widening_operation): Handle |
| FLOAT_EXPR and CONVERT_EXPR. Update comment. |
| (supportable_narrowing_operation): New function. |
| * tree-vectorizer.h (supportable_narrowing_operation): Prototype. |
| * tree-vect-transform.c (vectorizable_conversion): Handle |
| (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. |
| (vect_gen_widened_results_half): Move before vectorizable_conversion. |
| (vectorizable_type_demotion): Call supportable_narrowing_operation() |
| to check for target support. |
| * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab |
| for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab |
| for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab |
| for VEC_PACK_FIX_TRUNC_EXPR. |
| (expand_binop): Special case mode of the result for |
| vec_pack_[u|s]fix_trunc_optab. |
| (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and |
| vec_pack_[u|s]fix_trunc_optab. |
| |
| * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR, |
| VEC_PACK_FIX_TRUNC_EXPR): New tree codes. |
| * tree-pretty-print.c (dump_generic_node): Handle |
| VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and |
| VEC_PACK_FIX_TRUNC_EXPR. |
| (op_prio): Ditto. |
| * expr.c (expand_expr_real_1): Ditto. |
| * tree-inline.c (estimate_num_insns_1): Ditto. |
| * tree-vect-generic.c (expand_vector_operations_1): Ditto. |
| |
| * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander. |
| (vec_unpacks_float_lo_v8hi): Ditto. |
| (vec_unpacku_float_hi_v8hi): Ditto. |
| (vec_unpacku_float_lo_v8hi): Ditto. |
| (vec_unpacks_float_hi_v4si): Ditto. |
| (vec_unpacks_float_lo_v4si): Ditto. |
| (vec_pack_sfix_trunc_v2df): Ditto. |
| |
| * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]: |
| Document. |
| [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto. |
| [VEC_PACK_FIX_TRUNC_EXPR]: Ditto. |
| * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document. |
| [vec_pack_ufix_trunc]: Ditto. |
| [vec_unpacks_float_hi]: Ditto. |
| [vec_unpacks_float_lo]: Ditto. |
| [vec_unpacku_float_hi]: Ditto. |
| [vec_unpacku_float_lo]: Ditto. |
| |
| 2007-05-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * soft-fp/README: Update for new files. |
| * soft-fp/floattisf.c: New file. |
| * soft-fp/floattidf.c: New file. |
| * soft-fp/floattitf.c: New file. |
| * soft-fp/floatuntisf.c: New file. |
| * soft-fp/floatuntidf.c: New file. |
| * soft-fp/floatuntitf.c: New file. |
| * soft-fp/fixsfti.c: New file. |
| * soft-fp/fixdfti.c: New file. |
| * soft-fp/fixtfti.c: New file. |
| * soft-fp/fixunssfti.c: New file. |
| * soft-fp/fixunsdfti.c: New file. |
| * soft-fp/fixunstfti.c: New file. |
| * soft-fp/extendxftf.c: New file. |
| * soft-fp/trunctfxf.c: New file. |
| |
| * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section. |
| (__trunctfxf2): Ditto. |
| |
| * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2, |
| __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti, |
| __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf, |
| __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2, |
| __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2, |
| __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets. |
| |
| * config/i386/t-fprules-softfp64: New file. |
| * config/i386/sfp-machine.h: New file. |
| * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, |
| x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64 |
| and soft-fp/t-softfp to tmake_file. |
| (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all. |
| |
| * config/i386/t-linux64 (softfp_wrap_start): New. |
| (softfp_wrap_end): New. |
| * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is |
| supported for TARGET_64BIT. |
| |
| 2007-05-16 Rafael Ávila de Espíndola <espindola@google.com> |
| |
| * c-common.c (c_common_signed_or_unsigned_type): Emulate |
| c_common_unsigned_type behavior. |
| |
| 2007-05-16 Paolo Bonzini <bonzini@gnu.org> |
| |
| * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr |
| calls as pure. |
| |
| 2007-05-16 Eric Christopher <echristo@apple.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register |
| saving after stack push. Set sp_offset whenever we push. |
| (rs6000_emit_epilogue): Move altivec register restore before |
| stack push. |
| |
| 2007-05-16 Richard Sandiford <richard@codesourcery.com> |
| |
| * configure.ac: Allow sysroots to be relocated under $prefix as |
| well as $exec_prefix. |
| * configure: Regenerate. |
| |
| 2007-05-16 Richard Sandiford <richard@codesourcery.com> |
| |
| Revert: |
| |
| 2007-05-12 Richard Sandiford <richard@codesourcery.com> |
| |
| * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). |
| (gcc_tooldir): Likewise. |
| * configure: Regenerate. |
| * Makefile.in (libsubdir_to_prefix): New variable, based on the |
| old configure.ac gcc_tooldir setting. |
| (prefix_to_exec_prefix): New variable. |
| (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) |
| rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. |
| |
| 2007-05-14 Janis Johnson <janis187@us.ibm.com> |
| |
| * c-typeck.c (build_binary_op): Return early for error. |
| |
| 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate |
| struct nb_iter_bound. |
| (free_numbers_of_iterations_estimates_loop): Use ggc_free. |
| * gengtype.c (open_base_files): Add cfhloop.h to the list of includes. |
| * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated. |
| * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h. |
| (struct scev_info_str, scalar_evolution_info): Add GTY markers. |
| (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str. |
| (del_scev_info): Use ggc_free. |
| (scev_initialize): Allocate scalar_evolution_info in gc memory. |
| * loop-init.c: Include ggc.h. |
| (loop_optimizer_init): Use GGC_CNEW to allocate struct loops. |
| (loop_optimizer_finalize): Use ggc_free. |
| * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize, |
| pass_linear_transfom, pass_empty_loop, pass_complete_unroll, |
| pass_iv_optimize): Add TODO_ggc_collect. |
| * function.h (struct function): Remove skip marker from |
| x_current_loops. |
| * cfgloop.c: Include ggc.h. |
| (flow_loops_free, flow_loop_free): Free the loop descriptions in gc |
| memory. |
| (establish_preds): Vector superloops is gc allocated. |
| (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of |
| loop->exits list. |
| (flow_loops_find): Vector larray is gc allocated. |
| (loop_exit_free): Use ggc_free. |
| (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect |
| that head of exits list is now not a part of struct loop. |
|