- 14 Oct, 2008 7 commits
-
-
2008-10-14 Andrey Belevantsev <abel@ispras.ru> Dmitry Melnik <dm@ispras.ru> Dmitry Zhurikhin <zhur@ispras.ru> Alexander Monakov <amonakov@ispras.ru> Maxim Kuvyrkov <maxim@codesourcery.com> * target.h (struct gcc_target): Update prototypes of needs_block_p and gen_spec_check. * haifa-sched.c (create_check_block_twin): Update calls to the above. * sel-sched.c (create_speculation_check): Likewise. * doc/tm.texi: Provide documentation for new target hooks. * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks. (ia64_gen_spec_insn): Removed. (get_spec_check_gen_function, insn_can_be_in_speculative_p, ia64_gen_spec_check): New static functions. (ia64_alloc_sched_context, ia64_init_sched_context, ia64_set_sched_context, ia64_clear_sched_context, ia64_free_sched_context, ia64_get_insn_spec_ds, ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions. (ia64_needs_block_p): Change prototype. (ia64_gen_check): Rename to ia64_gen_spec_check. (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter into declaration, add special memory dependencies handling. (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT, TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT, TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P): Define new target hooks. (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK. (ia64_optimization_options): Turn on selective scheduling with -O3, disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default with selective scheduling. (ia64_override_options): Initialize align_loops and align_functions to 32 and 64, respectively. Set global selective scheduling flags according to target-dependent flags. (rtx_needs_barrier): Support UNSPEC_LDS_A. (group_barrier_needed): Use new mstop-bit-before-check flag. Add heuristic. (dfa_state_size): Make global. (spec_check_no, max_uid): Remove. (mem_ops_in_group, current_cycle): New variables. (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload. Initialize new variables. (is_load_p, record_memory_reference): New functions. (ia64_dfa_sched_reorder): Lower priority of loads when limit is reached. (ia64_variable_issue): Change use of current_sched_info to sched_deps_info. Update comment. Note if a load or a store is issued. (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle advance if maximal number of loads or stores was issued on current cycle. (scheduled_good_insn): New static helper function. (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when a group barrier is needed. Fix vertical spacing. Guard the code doing state transition with last_scheduled_insn check. Mark that a stop bit should be before current insn if there was a cycle advance. Update current_cycle and mem_ops_in_group. (ia64_h_i_d_extended): Change use of current_sched_info to sched_deps_info. Reallocate stops_p by larger chunks. (struct _ia64_sched_context): New structure. (ia64_sched_context_t): New typedef. (ia64_alloc_sched_context, ia64_init_sched_context, ia64_set_sched_context, ia64_clear_sched_context, ia64_free_sched_context): New static functions. (gen_func_t): New typedef. (get_spec_load_gen_function): New function. (SPEC_GEN_EXTEND_OFFSET): Declare. (ia64_set_sched_flags): Check common_sched_info instead of *flags. (get_mode_no_for_insn): Change the condition that prevents use of special hardware registers so it can now handle pseudos. (get_spec_unspec_code): New function. (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds, ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions. (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks during selective scheduling. (ia64_speculate_insn): Use ds_get_speculation_types when determining whether we need to change the pattern. (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare. (ia64_spec_check_src_p): Support new speculation/check codes. (struct bundle_state): New field. (issue_nops_and_insn): Initialize it. (insert_bundle_state): Minimize mid-bundle stop bits. (important_for_bundling_p): New function. (get_next_important_insn): Use important_for_bundling_p. (bundling): When shifting TImode from unimportant insns, ignore also group barriers. Assert that best state is found before the backward bundling pass. Print number of mid-bundle stop bits. Minimize mid-bundle stop bits. Check correct calculation of mid-bundle stop bits. (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting. (final_emit_insn_group_barriers): Emit stop bits before insns starting a new cycle. (sel2_run): New variable. (ia64_reorg): When flag_selective_scheduling2 is set, run the selective scheduling pass instead of schedule_ebbs. * config/ia64/ia64.md (speculable1, speculable2): New attributes. (UNSPEC_LDS_A): New UNSPEC. (movqi_internal, movhi_internal, movsi_internal, movdi_internal, movti_internal, movsf_internal, movdf_internal, movxf_internal): Make visible. Add speculable* attributes. (output_c_nc): New mode attribute. (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a, mov<mode>_nc, zero_extend<mode>di2_nc, advanced_load_check_nc_<mode>): New insns. (zero_extend*): Add speculable* attributes. * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option. (msched-stop-bits-after-every-cycle): Likewise. (msched-max-memory-insns, msched-max-memory-insns-hard-limit): Likewise. (msched-spec-verbose): Remove. (msched-prefer-non-data-spec-insns, msched-prefer-non-control-spec-insns, msched-count-spec-in-critical-path, msel-sched-dont-check-control-spec): Use Target Report Var instead of Common Report Var. * config/ia64/itanium2.md: Remove incorrect bypass. * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h. Co-Authored-By: Alexander Monakov <amonakov@ispras.ru> Co-Authored-By: Dmitry Melnik <dm@ispras.ru> Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru> Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com> From-SVN: r141108
Andrey Belevantsev committed -
PR middle-end/37805 * opts.c (common_handle_option): Don't ICE on -fhelp=joined and -fhelp=separate. From-SVN: r141106
Jakub Jelinek committed -
2008-10-14 Antoniu Pop <antoniu.pop@gmail.com> * MAINTAINERS (Write After Approval): Added myself. From-SVN: r141105
Antoniu Pop committed -
From-SVN: r141103
Ben Elliston committed -
2008-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org PR libfortran/37083 * gfortran.dg/list_read_9.f90: New test. * gfortran.dg/arrayio_8.f90: Fix some typos. From-SVN: r141102
Jerry DeLisle committed -
2008-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org PR libfortran/37083 * io/list_read.c (next_char): Simplify EOF tests and set endfile flag. (finish_list_read): Add EOF check. From-SVN: r141101
Jerry DeLisle committed -
From-SVN: r141099
GCC Administrator committed
-
- 13 Oct, 2008 10 commits
-
-
* combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on non-integer modes. From-SVN: r141096
Joseph Myers committed -
2008-10-13 Matthias Klose <doko@ubuntu.com> * gcc/config/pa/linux-atomic.c: Work around missing header file for hppa64-linux-gnu targets. From-SVN: r141095
Matthias Klose committed -
2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com> Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com> Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> Grace Cao <grace_cao@playstation.sony.com> * doc/invoke.texi (-mgen-cell-microcode): Document. (-mwarn-cell-microcode): Document. * cfglayout.c (locator_location): Export. * rtl.h (locator_location): Define prototype. * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): New predicate. * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype. * config/rs6000/rs6000.opt (mgen-cell-microcode): New option. (mwarn-cell-microcode): New option. * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable. (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for cell and not already set. Turn off string instructions if not generating cell microcode. (rs6000_final_prescan_insn): New function that warns about microcoded instructions. * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define. * config/rs6000/rs6000.md Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if the instruction would have been microcoded on the Cell. Set cell_micro to always on unnamed patterns for the string instructions. (cell_micro): Update definition, remove load/store conditional microcoded. (sign_extend:DI): Define new pattern for non microcoded version. (sign_extend:SI): Likewise. (compare (div:P)): Set cell_micro to not. (andsi3): Define as an expand. (andsi3_mc): New pattern. (andsi3_nomc): New pattern. (andsi3_internal0_nomc): New pattern. (andsi3_internal2): Rename to ... (andsi3_internal2_mc): this and enable iff generating microcode. (andsi3_internal3): Rename to ... (andsi3_internal3_mc): this and enable iff generating microcode. (andsi3_internal4): Enable iif generating microcode. (andsi3_internal5): Rename to .. (andsi3_internal5_mc): this and enable iff generating microcode. (andsi3_internal5_nomc): New pattern. (extzvdi_internal1): Enable iff generating microcode. (extzvdi_internal2): Likewise. (rotlsi3_internal7): Set cell_micro to always if non immediate form. (anddi3): Change to expand. (anddi3_mc): Rename from anddi3. (anddi3_no_mc): New pattern. (anddi3_internal2): Rename to .. (anddi3_internal2_mc): this and enable iff generating microcode. (anddi3_internal2_nomc): New pattern. (anddi3_internal3): Rename to .. (anddi3_internal3_mc): this and enable iff generating microcode. (anddi3_internal3_nomc): New pattern. (movti_string): Set cell_micro to always if TARGET_STRING. (stmsi8): Set cell_micro to always. (stmsi7): Likewise. (stmsi6): Likewise. (stmsi5): Likewise. (stmsi4): Likewise. (stmsi3): Likewise. (stmsi8_power): Likewise. (stmsi7_power): Likewise. (stmsi6_power): Likewise. (stmsi5_power): Likewise. (stmsi4_power): Likewise. (stmsi3_power): Likewise. (movsi_update2): Enable iff generating microcode. (movhi_update3): Likewise. (lmw): Set cell_micro to always. Co-Authored-By: Grace Cao <grace_cao@playstation.sony.com> Co-Authored-By: Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com> Co-Authored-By: Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> From-SVN: r141094
Andrew Pinski committed -
PR middle-end/37601 * gcc-interface/utils.c (gnat_types_compatible_p): Handle NULL TYPE_DOMAIN. From-SVN: r141092
Jakub Jelinek committed -
gcc/ * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant. * config/s390/s390.c (machine_function): Remove decomposed_literal_pool_addresses_ok_p. (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of the difference of two labels. (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET. (s390_pool_offset): New function. (s390_find_constant, s390_find_execute, s390_dump_pool): Use it. (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p. From-SVN: r141091
Richard Sandiford committed -
* doc/install.texi (powerpc-*-*): Require binutils 2.15. (powerpc*-*-linux-gnu*): Describe. * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro. * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm, config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm, config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm, config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm, config/rs6000/e500crtres64gprctr.asm, config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm, config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm, config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm, config/rs6000/e500crtsav64gprctr.asm, config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm, config/rs6000/e500crtsavg64gprctr.asm: Use it. * config/rs6000/crtsavres.asm: Really remove. From-SVN: r141090
Nathan Froyd committed -
From-SVN: r141088
Doug Evans committed -
2008-10-13 Kai Tietz <kai.tietz@onevision.com> Fix PR/25502 * c-format.c (convert_format_name_to_system_name): Use TARGET_OVERRIDES_FORMAT_INIT. * config.gcc (extra_options): Add for mingw targets mingw.opt. * config/i386/mingw.opt: New. * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New. * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New. (ms_printf_length_specs): Removed const specifier. * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New. * doc/invoke.texi (Wno-pedantic-ms-format): New. * testsuite/gcc.dg/format/ms-format1.c: New. From-SVN: r141087
Kai Tietz committed -
* configure.ac (MPFR check): Bump minimum version to 2.3.0 and recommended version to 2.3.2. * configure: Regenerate. gcc: * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals. * doc/install.texi: Bump recommended MPFR to 2.3.2. fortran: * simplify.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals. From-SVN: r141085
Kaveh R. Ghazi committed -
From-SVN: r141082
GCC Administrator committed
-
- 12 Oct, 2008 7 commits
-
-
2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com> PR middle-end/37808 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make sure that ref has valid bb. From-SVN: r141078
Kenneth Zadeck committed -
PR middle-end/37447 * Makefile.in (reload1.o): Depend on EMIT_RTL_H. * alias.c (value_addr_p, stack_addr_p): Remove. (nonoverlapping_memrefs_p): Remove IRA special case. * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New. * emit-rtl.h (set_mem_attrs_for_spill): Declare. * reload1.c (alter_reg): Use it. From-SVN: r141077
Richard Henderson committed -
* config/i386/driver-i386.c (detect_caches_cpuid2): Use array of registers instead of eax, ebx, ecx and edx. Use for loop and check register for non-zero value before the call to decode_caches_intel. From-SVN: r141075
Uros Bizjak committed -
2008-10-12 Daniel Kraft <d@domob.eu> PR fortran/37688 * expr.c (gfc_expr_check_typed): Extend permission of untyped expressions to both top-level variable and basic arithmetic expressions. 2008-10-12 Daniel Kraft <d@domob.eu> PR fortran/37688 * gfortran.dg/used_before_typed_6.f90: New test. From-SVN: r141074
Daniel Kraft committed -
re PR fortran/37787 (right-left hand side overlap not recognized with EQUIVALENCEd array assignment) 2008-10-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/37787 * dependency.c (gfc_are_equivalenced_arrays): Look in symbol namespace rather than current namespace, if it is available. 2008-10-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/37787 * gfortran.dg/module_equivalence_5.f90: New test. From-SVN: r141073
Paul Thomas committed -
2008-10-12 Steven G. Kargl <kargls@comcast.net> PR fortran/37792 * fortran/resolve.c (resolve_fl_variable): Simplify the initializer if there is one. 2008-10-12 Steven G. Kargl <kargls@comcast.net> PR fortran/37792 * gfortran.dg/arithmetic_overflow_1.f90: New test. From-SVN: r141072
Steven G. Kargl committed -
From-SVN: r141070
GCC Administrator committed
-
- 11 Oct, 2008 10 commits
-
-
2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/37448 * df.h: (df_ref_class): New enum. (DF_REF_TYPE_NAMES, df_ref_extract): Removed. (struct df_ref): Replaced with union df_ref_d. (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref): New members of df_ref_d union. (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN, DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS, DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG, DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET, DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d. (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros. (df_scan_bb_info, df_bb_regno_first_def_find, df_bb_regno_last_def_find, df_find_def, df_find_use, df_refs_chain_dump, df_regs_chain_dump, df_ref_debug, debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy, df_ref_create, df_ref_remove, df_compute_accessed_bytes, df_get_artificial_defs, df_get_artificial_uses, union_defs) Replaced struct df_ref * with df_ref. * df-scan.c (df_collection_rec, df_null_ref_rec, df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref, df_grow_ref_info, df_ref_create, df_reg_chain_unlink, df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain, df_ref_chain_delete, df_free_collection_rec, df_insn_rescan, df_reorganize_refs_by_reg_by_reg, df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg, df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs, df_sort_and_compress_refs, df_install_ref, df_install_refs, df_ref_record, df_get_conditional_uses, df_get_call_refs, df_bb_refs_record, df_exit_block_uses_collect, df_record_exit_block_uses, df_reg_chain_mark, df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct df_ref * with df_ref. (df_ref_record, df_uses_record, df_ref_create_structure): Added df_ref_class parameter. (df_scan_problem_data): Added new pools for different types of refs. (df_scan_free_internal, df_scan_alloc, df_free_ref, df_ref_create_structure): Processed new ref pools. (df_scan_start_dump): Added counts of refs and insns. (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record, df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, df_entry_block_defs_collect, df_exit_block_uses_collect): Added code to pass df_ref_class down to ref creation functions. (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1, df_reg_chain_mark): Use macros to hide references to df_refs. (df_ref_chain_change_bb): Removed. (df_insn_change_bb): Remove calls to df_ref_insn_change_bb. (df_ref_equal_p, df_ref_compare, df_ref_create_structure): Enhanced to understand df_ref union structure. * fwprop.c (local_ref_killed_between_p, use_killed_between, all_uses_available_at, update_df, try_fwprop_subst, forward_propagate_subreg, forward_propagate_and_simplify, forward_propagate_into, fwprop, fwprop_addr): Replaced struct df_ref * with df_ref. (use_killed_between, all_uses_available_at): Use macros to hide references to df_refs. * regstat.c (regstat_bb_compute_ri, regstat_bb_compute_calls_crossed): Replaced struct df_ref * with df_ref. * see.c (see_handle_relevant_defs, see_handle_relevant_uses, see_handle_relevant_refs, see_analyze_one_def, see_update_relevancy, see_propagate_extensions_to_uses): Replaced struct df_ref * with df_ref. * ra-conflict.c (record_one_conflict, clear_reg_in_live, global_conflicts): Replaced struct df_ref * with df_ref. * ddg.c (create_ddg_dep_from_intra_loop_link, add_cross_iteration_register_deps, build_inter_loop_deps): Replaced struct df_ref * with df_ref. (create_ddg_dep_from_intra_loop_link, add_cross_iteration_register_deps): Use macros to hide references to df_refs. * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct df_ref * with df_ref. * df-core.c (df_bb_regno_first_def_find, df_bb_regno_last_def_find, df_find_def, df_find_use, df_refs_chain_dump, df_regs_chain_dump, df_ref_debug, debug_df_ref): Replaced struct df_ref * with df_ref. (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs. * cse.c (cse_extended_basic_block): Replaced struct df_ref * with df_ref. * web.c (union_defs, entry_register, replace_ref, web_main): Replaced struct df_ref * with df_ref. (union_defs, replace_ref): Use macros to hide references to df_refs. * global.c (compute_regs_asm_clobbered, build_insn_chain): Replaced struct df_ref * with df_ref. * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref. * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ): Replaced struct df_ref * with df_ref. * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p, mark_ref_dead, process_bb_node_lives): Replaced struct df_ref * with df_ref. * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref. * df-byte-scan.c (df_compute_accessed_bytes_extract, df_compute_accessed_bytes_strict_low_part, df_compute_accessed_bytes_subreg, df_compute_accessed_bytes): Replaced struct df_ref * with df_ref. (df_compute_accessed_bytes): Use macros to hide references to df_refs. * init-regs.c (initialize_uninitialized_regs): Replaced struct df_ref * with df_ref. * loop-invariant.c (invariant_for_use, hash_invariant_expr_1, check_dependency, check_dependencies, record_uses): Replaced struct df_ref * with df_ref. (invariant_for_use, check_dependency): Use macros to hide references to df_refs. * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def, get_biv_step_1, get_biv_step, record_iv, iv_analyze_def, iv_analyze, biv_p): Replaced struct df_ref * with df_ref. (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide references to df_refs. * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref * with df_ref. * combine.c (create_log_links): Replaced struct df_ref * with df_ref. * df-problems.c (df_rd_bb_local_compute_process_def, df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create, df_chain_unlink_1, df_chain_unlink, df_chain_copy, df_chain_remove_problem, df_chain_create_bb_process_use, df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_check_regs, df_byte_lr_bb_local_compute, df_byte_lr_simulate_defs, df_byte_lr_simulate_uses, df_byte_lr_simulate_artificial_refs_at_top, df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note, df_note_bb_compute, df_note_add_problem, df_simulate_defs, df_simulate_uses, df_simulate_artificial_refs_at_end, df_simulate_artificial_refs_at_top): Replaced struct df_ref * with df_ref. (df_chain_dump): Use macros to hide references to df_refs. * config/mips/mips.c (r10k_simplify_address): Replaced struct df_ref * with df_ref. * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes, mark_artificial_uses, mark_reg_dependencies, byte_dce_process_block): Replaced struct df_ref * with df_ref. From-SVN: r141067
Kenneth Zadeck committed -
From-SVN: r141066
David Edelsohn committed -
* tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in head comment. (array_ref_element_size): Likewise. (array_ref_low_bound): Likewise. (array_ref_up_bound): Likewise. * expr.c (contains_packed_reference): Likewise. (array_ref_element_size): Likewise. (array_ref_low_bound): Likewise. (array_ref_up_bound): Likewise. * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal with ARRAY_RANGE_REF. (idx_find_step): Likewise. (idx_record_use): Likewise. (strip_offset_1): Likewise. (idx_remove_ssa_names): Likewise. From-SVN: r141065
Eric Botcazou committed -
* config/i386/cpuid.h (__cpuid_count): New defines. * config/i386/driver-i386.c (struct cache_desc): New structure. (describe_cache): Use struct cache_desc to pass cache descriptions. (detect_l2_cache): Ditto. Rename from decode_l2_cache. (detect_caches_amd): Use struct cache_desc to describe caches. (decode_caches_intel): Use struct cache_desc to pass cache descriptions. Update descriptions to match latest (rev -032, December 2007) CPUID documentation. Do not check valid bit here. Check for Xeon MP value 0x49 problems. (detect_caches_cpuid2): New function, split from detect_caches_intel. Check valid bit before calling decode_caches_intel. Detect number of times to repeat CPUID instruction. (detect_caches_cpuid4): New function. (detect_caches_intel): Depending on max_level, call detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache only when other methods fail to provide valid L2 cache description. From-SVN: r141064
Uros Bizjak committed -
re PR middle-end/37608 (libgcc2.c:1981: ICE: vector VEC(m em_ref_p,base) index domain error, in create_vop_ref_mapping_loop at tree-ssa-lo op-im.c:1519) PR middle-end/37608 * pa.md (call, call_value): Generate an rtx for register r4 and pass it to PIC call patterns. (call_symref_pic): Revise pattern to expose PIC register save. Remove code generation and attributes from pattern. Change peephole2 to split for noreturn case. Revise split pattern for non noreturn case. (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic, call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise. * pa.c (attr_length_call): Simplify extraction of call rtx. Add some asserts. From-SVN: r141063
John David Anglin committed -
* config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT. (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT and fp_type. (divdf3): Reformat long line. From-SVN: r141062
David Edelsohn committed -
2008-10-11 Michael J. Eager <eager@eagercon.com> * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret -mfpu options. (rs6000_handle_option): Process -mfpu options. * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New. (enum fpu_type_t): New. * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md. (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set fp_type. (floatsisf2): Remove TARGET_SINGLE_FPU condition. (floatdidf2): Add TARGET_SINGLE_FPU condition. * config/rs6000/rs6000.opt (-mfpu): New. (-mxilinx-fpu): New. * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New. * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU. * config/rs6000/xfpu.md: New. Define Xilinx pipeline. * gcc/config.gcc: powerpc-xilinx-eabi target: New. * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option. From-SVN: r141059
Michael J. Eager committed -
2008-10-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/37794 * module.c (check_for_ambiguous): Remove redundant code. 2008-10-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/37794 * gfortran.dg/used_types_24.f90: New test. From-SVN: r141057
Paul Thomas committed -
PR target/35760 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create LO_SUM on Darwin if mode has just one unit. * gcc.c-torture/compile/pr35760.c: New test. From-SVN: r141055
Jakub Jelinek committed -
From-SVN: r141053
GCC Administrator committed
-
- 10 Oct, 2008 6 commits
-
-
2008-10-10 H.J. Lu <hongjiu.lu@intel.com> PR debug/37002 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which has been optimized out. From-SVN: r141049
H.J. Lu committed -
gcc/ * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. (SECONDARY_INPUT_RELOAD_CLASS): Likewise. (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete. (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P. (PIC_OFFSET_P): Rename to... (PCREL_SYMOFF_P): ...this. (PIC_DIRECT_ADDR_P): Delete. (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of PIC_OFFSET_P. (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16, UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF. * config/sh/sh.c (print_operand): Remove CONST handling. (unspec_caller_rtx_p): Rewrite to use split_const and check the operands of UNSPEC bases. (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC) with (unspec [A B] UNSPEC_SYMOFF). (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF. (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec. (UNSPEC_EXTRACT_U16): Likewise. (UNSPEC_SYMOFF): Likewise. (UNSPEC_PCREL_SYMOFF): Likewise. (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions of constants. (movsi_const_16bit): Likewise. (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise. (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC) with (unspec [A B] UNSPEC_PCREL_SYMOFF). (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B) with (unspec [A B] UNSPEC_SYMOFF). (symPLT_label2reg): Replace (minus A (minus B pc)) with (unspec [A B] PCREL_UNSPEC_SYMOFF). * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16. (Csu): Likewise UNSPEC_EXTRACT_U16. (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P. From-SVN: r141046
Richard Sandiford committed -
PR c++/37146 * cp-gimplify.c (cp_genericize_r): Fix up bitfield operands of COND_EXPR. * g++.dg/torture/pr37146-1.C: New test. * g++.dg/torture/pr37146-2.C: New test. * g++.dg/expr/bitfield10.C: New test. From-SVN: r141045
Jakub Jelinek committed -
2008-10-10 Stepan Kasal <skasal@redhat.com> * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples for loop strip mining and loop blocking. From-SVN: r141042
Stepan Kasal committed -
2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/20_util/reference_wrapper/24803.cc: Avoid uninitialized warnings. From-SVN: r141041
Paolo Carlini committed -
2008-10-10 Paolo Carlini <paolo.carlini@oracle.com> * include/std/system_error (native_category): Remove. (posix_category): Add. (error_code::error_code(_ErrorCodeEnum, typename enable_if<>:type*): Fix _M_cat initialization. (error_code::operator=(_ErrorCodeEnum)): Assign _M_cat too. (error_condition::_M_cat, error_condtion::operator= (_ErrorConditionEnum)): Implement resolution of DR 804. (error_condition::error_condition(_ErrorConditionEnum, typename enable_if<>:type*): Fix. (error_condition::clear, error_condition::assign): Implement. (operator==, operator!=): Fix uglification of parameters. (make_error_code, make_error_condition): Define in namespace posix_error. (operator<<(basic_ostream<>&, const error_code&)): Define here. * include/std/ostream (operator<<(basic_ostream<>&, const error_code&)): Do not define here. * testsuite/19_diagnostics/error_condition/cons/1.cc: New. * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: Likewise. * testsuite/19_diagnostics/error_code/cons/1.cc: Tweak. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust dg-error line numbers. * testsuite/30_threads/unique_lock/locking/2.cc: Tweak. * testsuite/util/testsuite_error.h: Minor tweaks. * testsuite/util/testsuite_hooks.cc: Avoid uninitialized warning. From-SVN: r141039
Paolo Carlini committed
-