platform/upstream/gcc.git
12 years agoexpmed.h (alg_hash, [...]): Delete macro definitions and re-purpose as inline functions.
Nathan Froyd [Fri, 27 Jul 2012 21:01:16 +0000 (21:01 +0000)]
expmed.h (alg_hash, [...]): Delete macro definitions and re-purpose as inline functions.

* expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
macro definitions and re-purpose as inline functions.
(alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
New functions.
(convert_cost_ptr): New function, split out from...
(set_convert_cost, convert_cost): ...here.
* expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
* gimple-ssa-strength-reduction.c: Likewise.

From-SVN: r189919

12 years agoInvoke GCC_DRIVER_HOST_INITIALIZATION after diagnostic_initialize
Ryan Mansfield [Fri, 27 Jul 2012 18:17:00 +0000 (18:17 +0000)]
Invoke GCC_DRIVER_HOST_INITIALIZATION after diagnostic_initialize

* gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
diagnostic_initialize.

From-SVN: r189918

12 years agore PR target/54089 ([SH] Refactor shift patterns)
Oleg Endo [Fri, 27 Jul 2012 17:36:20 +0000 (17:36 +0000)]
re PR target/54089 ([SH] Refactor shift patterns)

PR target/54089
* config/sh/sh.c (shiftcosts): Remove case where first operand
is a const_int.  Move COSTS_N_INSNS usage into caller ...
(sh_rtx_costs) ... here.  Return false when shiftcosts cannot be
calculated instead of MAX_COST.

From-SVN: r189917

12 years agosystem-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True.
Iain Sandoe [Fri, 27 Jul 2012 15:23:37 +0000 (15:23 +0000)]
system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True.

        * system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True.

-- This line and those below it will be ignored
M    ChangeLog
M    system-darwin-ppc64.ads

From-SVN: r189916

12 years agotree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained check whether SSA form...
Richard Guenther [Fri, 27 Jul 2012 13:57:38 +0000 (13:57 +0000)]
tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained check whether SSA form is not up-to-date.

2012-07-27  Richard Guenther  <rguenther@suse.de>

* tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
check whether SSA form is not up-to-date.
* tree-flow.h (name_mappings_registered_p): Remove.
* tree-into-ssa.c (struct repl_map_d): Remove.
(repl_tbl): Likewise.
(struct ssa_name_info): Add repl_set member.
(update_ssa_obstack): New static global.
(get_ssa_name_ann): Initialize repl_set.
(clear_ssa_name_info): Assert age did not wrap.
(repl_map_hash, repl_map_eq, repl_map_free): Remove.
(names_replaced_by): Adjust.
(add_to_repl_tbl): Likewise.
(dump_tree_ssa_stats): Likewise.
(init_update_ssa): Initialize update_ssa_obstack.
(delete_update_ssa): Free update_ssa_obstack.
(name_mappings_registered_p): Remove.
(update_ssa): Adjust.

From-SVN: r189915

12 years agoconstraints.md: Delete "q" constraint.
Segher Boessenkool [Fri, 27 Jul 2012 12:51:45 +0000 (14:51 +0200)]
constraints.md: Delete "q" constraint.

2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>

        * config/rs6000/constraints.md: Delete "q" constraint.
        * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
        Delete the "q" alternative.
        * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
        * config/rs6000/rs6000.c (rs6000_debug_reg_global,
        rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
        Adjust to MQ_REGNO removal.
        * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
        comment.
        (REG_ALLOC_ORDER): Adjust comment.  Remove MQ from alloc order.
        (enum reg_class): Adjust comment.  Delete MQ_REGS.
        (REG_CLASS_CONTENTS): Adjust.
        (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
        * config/rs6000/rs6000.md: Delete MQ_REGNO.
        (movsi_internal1, movsi_internal1_single, movhi_internal,
        movqi_internal, movcc_internal1, movsf_hardfloat,
        movsf_softfloat): Delete the "q" alternative.
        (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
        ctr<mode>_internal6): Delete "q" constraint.

From-SVN: r189913

12 years agotree-into-ssa.c (def_blocks_p): New typedef.
Richard Guenther [Fri, 27 Jul 2012 12:31:49 +0000 (12:31 +0000)]
tree-into-ssa.c (def_blocks_p): New typedef.

2012-07-27  Richard Guenther  <rguenther@suse.de>

* tree-into-ssa.c (def_blocks_p): New typedef.
(insert_phi_nodes_compare_def_blocks): New function.
(insert_phi_nodes): Do not walk over referenced vars, instead
walk over recorded def_blocks, record relevant ones and sort
them to avoid repeated hashtable lookups.

From-SVN: r189912

12 years agoinvoke.texi (min-virtual-mappings, [...]): Remove param documentation.
Richard Guenther [Fri, 27 Jul 2012 12:31:06 +0000 (12:31 +0000)]
invoke.texi (min-virtual-mappings, [...]): Remove param documentation.

2012-07-27  Richard Guenther  <rguenther@suse.de>

* doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
Remove param documentation.
* params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
* tree-flow.h (mark_set_for_renaming): Remove.
* tree-into-ssa.c (struct update_ssa_stats_d): Remove.
(add_new_name_mapping): Remove bookkeeping code.
(dump_update_ssa): Remove stats dumping code.
(init_update_ssa): Remove stats allocation code.
(delete_update_ssa): Remove stats freeing code.
(mark_set_for_renaming): Remove.
(switch_virtuals_to_full_rewrite_p): Likewise.
(switch_virtuals_to_full_rewrite): Likewise.
(update_ssa): Do not call switch_virtuals_to_full_rewrite.

From-SVN: r189911

12 years agocgraphunit.c: Rename varpool_finalize_variable to varpool_finalize_decl in a comment.
Marek Polacek [Fri, 27 Jul 2012 12:09:30 +0000 (12:09 +0000)]
cgraphunit.c: Rename varpool_finalize_variable to varpool_finalize_decl in a comment.

2012-07-27  Marek Polacek  <polacek@redhat.com>

* cgraphunit.c: Rename varpool_finalize_variable to
varpool_finalize_decl in a comment.

From-SVN: r189910

12 years agobind_c_array_params_2.f90: Add "-mno-explicit-relocs" for alpha*-*-* targets.
Uros Bizjak [Fri, 27 Jul 2012 11:48:19 +0000 (13:48 +0200)]
bind_c_array_params_2.f90: Add "-mno-explicit-relocs" for alpha*-*-* targets.

* gfortran.dg/bind_c_array_params_2.f90: Add "-mno-explicit-relocs"
for alpha*-*-* targets.  Cleanup original tree dump.

From-SVN: r189909

12 years agors6000-common.c (rs6000_handle_option): Delete code for -mno-power, -mpower, and...
Segher Boessenkool [Fri, 27 Jul 2012 11:44:37 +0000 (13:44 +0200)]
rs6000-common.c (rs6000_handle_option): Delete code for -mno-power, -mpower, and -mpower2.

2012-07-26  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
        Delete code for -mno-power, -mpower, and -mpower2.
        * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
        (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
        with -maix64.
        (ASM_CPU_SPEC): Delete support for POWER and POWER2.
        * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
        (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
        with -maix64.
        (ASM_CPU_SPEC): Delete support for POWER and POWER2.
        * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
        (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
        with -maix64.
        (TARGET_POWER): Delete.
        * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
        (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
        with -maix64.
        (TARGET_POWER): Delete.
        * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
        (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
        with -maix64.
        (TARGET_POWER): Delete.
        * config/rs6000/darwin.h (TARGET_POWER): Delete.
        * config/rs6000/driver-rs6000.c (struct asm_names): Delete
        support for -mpower, -mpower2, and -mno-power.
        * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
        Likewise.
        (rs6000_cpu_cpp_builtins): Likewise.
        * config/rs6000/rs6000-cpus.def: Likewise.
        * config/rs6000/rs6000-tables.opt: Regenerate.
        * config/rs6000/rs6000.c (POWER_MASKS): Delete.
        (rs6000_option_override_internal): Adjust.
        (rs6000_conditional_register_usage): Adjust.
        (rs6000_emit_move): Adjust.
        (rs6000_common_init_builtins): Adjust.
        (rs6000_init_libfuncs): Adjust.
        (rs6000_output_function_prologue): Adjust.
        (rs6000_adjust_cost): Adjust.
        (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
        POWER and POWER2.
        (TARGET_DEFAULT): Adjust.
        (PROCESSOR_POWER): Delete.
        (SHIFT_COUNT_TRUNCATED): Adjust.
        * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
        (extendqisi2_power): Delete.
        (extendqisi2_no_power): Adjust.
        (extendqihi2, extendqihi2_power, extendqihi2_no_power):
        Likewise.
        (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
        (anonymous doz insn patterns): Delete.
        (abssi2): Adjust.
        (abssi2_power): Delete.
        (abssi2_nopower): Adjust.
        (nabs_power, nabs_nopower): Likewise.
        (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
        Likewise.  Delete anonymous post-reload splitter.
        (mulsi3_no_mq_internal1): rename to...
        (mulsi3_internal1): New define_insn.
        (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
        Likewise.
        (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
        udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
        udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
        (mulh_call, mull_call, divss_call, divus_call, quoss_call,
        quous_call): Likewise.
        (maskir_internal1, maskir_internal2, maskir_internal3,
        maskir_internal4, maskir_internal5, maskir_internal6,
        maskir_internal7, maskir_internal8): Delete.
        (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
        (anonymous sl insn patterns): Delete.
        (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
        (lshrsi3_64): Adjust.
        (anonymous sr insn patterns): Delete.
        (anonymous rrib insn patterns): Delete.
        (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
        (anonymous sra insn patterns): Delete.
        (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
        (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
        fctiwz_<mode>): Adjust.
        (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
        umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
        smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
        umulsi3_highpart_no_mq): Adjust.
        (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
        (ashrdi3_no_power, ashldi3, ashldi3_internal1,
        lshrdi3_internal1): Adjust.
        (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
        (movti_power): Delete.
        (movti_string): Adjust.
        (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
        (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
        stmsi4_power, stmsi3_power): Delete.
        (anonymous movmemsi insn patterns): Adjust.
        (lfq_power2, stfq_power2): Delete.
        (eq<mode>, eq<mode>_compare): Adjust.
        (eqsi_power): Delete.
        (ne0si): Adjust.
        (anonymous le, lt, ge, gt insn patterns): Delete.
        * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
        * config/rs6000/sysv4.h (TARGET_POWER): Delete.
        * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
        MULTILIB_MATCHES): Adjust.
        * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
        -mpower, -mno-power, -mpower2, -mno-power2 documentation.
        Delete -mcpu=power and -mcpu=power2 documentation.

gcc/testsuite/

        * gcc.target/powerpc/rs6000-power2-1.c: Delete.
        * gcc.target/powerpc/rs6000-power2-2.c: Delete.

From-SVN: r189908

12 years ago601.md: New file.
Segher Boessenkool [Fri, 27 Jul 2012 11:32:31 +0000 (13:32 +0200)]
601.md: New file.

2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        * config/rs6000/601.md: New file.
        * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
        RIOS CPUs.
        * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
        * config/rs6000/driver-rs6000.c (detect_processor_aix,
        struct asm_names): Likewise.
        * config/rs6000/rios1.md: Delete file.
        * config/rs6000/rios2.md: Delete file.
        * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
        CPUs.
        * config/rs6000/rs6000-opts.h (enum processor_type): Delete
        PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
        * config/rs6000/rs6000-tables.opt: Regenerated.
        * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
        Delete.
        (rs6000_option_override_internal): Delete support for RIOS CPUs.
        (rs6000_conditional_register_usage): Adjust comment.
        (rs6000_issue_rate):Delete support for RIOS CPUs.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
        RIOS CPUs.
        (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
        (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
        * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
        and rios2.
        (include "rios1.md", include "rios2.md"): Delete.
        (include "601.md"): New.
        * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
        PROCESSOR_PPC603.
        * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
        for RIOS CPUs.
        * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
        rios2.md .  Add 601.md .

From-SVN: r189907

12 years ago20020201-1.c: Remove declarations for exit, abort, rand, srand.
Anna Tikhonova [Fri, 27 Jul 2012 09:54:30 +0000 (09:54 +0000)]
20020201-1.c: Remove declarations for exit, abort, rand, srand.

        * gcc.dg/20020201-1.c: Remove declarations for exit, abort,
        rand, srand. Include <stdlib.h>.

From-SVN: r189905

12 years agoDaily bump.
GCC Administrator [Fri, 27 Jul 2012 00:18:31 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r189904

12 years agopex-win32.c (pex_win32_exec_child): Only close original file descriptors if child...
Kazu Hirata [Thu, 26 Jul 2012 23:18:47 +0000 (23:18 +0000)]
pex-win32.c (pex_win32_exec_child): Only close original file descriptors if child is launched successfully.

2012-07-26  Kazu Hirata  <kazu@codesourcery.com>
    Sandra Loosemore  <sandra@codesourcery.com>

libiberty/
* pex-win32.c (pex_win32_exec_child): Only close original file
descriptors if child is launched successfully.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
From-SVN: r189901

12 years ago* gcc.dg/pr45259.c: Only -fpic depends on fpic support.
Janis Johnson [Thu, 26 Jul 2012 22:23:33 +0000 (22:23 +0000)]
* gcc.dg/pr45259.c: Only -fpic depends on fpic support.

From-SVN: r189899

12 years agoHot/cold attributes for labels.
Richard Henderson [Thu, 26 Jul 2012 21:31:40 +0000 (14:31 -0700)]
Hot/cold attributes for labels.

gcc/
        * doc/extend.texi (attribute): Document hot/cold for labels.
        * predict.c (tree_estimate_probability_bb): Handle hot/cold
        attributes on user labels.
        * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
gcc/c-family/
        * c-common.c (handle_hot_attribute): Allow labels.
        (handle_cold_attribute): Likewise.
gcc/testsuite/
        * gcc.dg/attr-hotcold-1.c: New.
        * gcc.dg/tree-ssa/attr-hotcold-2.c: New.

From-SVN: r189898

12 years agocse.c (find_comparison_args): Check for cycles of any length.
Andrew Jenner [Thu, 26 Jul 2012 20:51:24 +0000 (20:51 +0000)]
cse.c (find_comparison_args): Check for cycles of any length.

2012-07-26  Andrew Jenner  <andrew@codesourcery.com>
    Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* cse.c (find_comparison_args): Check for cycles of any length.

gcc/testsuite/
* gcc.c-torture/compile/pr50380.c: Add code to cause cycle of length 2.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
From-SVN: r189896

12 years agoFix an english issue.
François Dumont [Thu, 26 Jul 2012 20:41:23 +0000 (20:41 +0000)]
Fix an english issue.

From-SVN: r189894

12 years agoDo not use 'with ... as ...' in validate_failures.py
Diego Novillo [Thu, 26 Jul 2012 15:31:00 +0000 (11:31 -0400)]
Do not use 'with ... as ...' in validate_failures.py

Some of the hosts were we run this script are still using Python 2.4.
This patch replaces the use of 'with ... as ...' to avoid syntax errors.

2012-07-26   Diego Novillo  <dnovillo@google.com>

* testsuite-management/validate_failures.py: Do not use
'with ... as ...' constructs.

From-SVN: r189893

12 years agomn10300.c (REG_SAVE_BYTES): Delete.
Nick Clifton [Thu, 26 Jul 2012 14:23:51 +0000 (14:23 +0000)]
mn10300.c (REG_SAVE_BYTES): Delete.

* config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
(mn10300_get_live_callee_saved_regs): If requested return a count
of the number of bytes in the mask.
(mn10300_expand_prologue): Add argument to invocation of
mn10300_get_live_callee_regs.
(mn10300_expand_epilogue): Compute reg_save_bytes by calling
mn10300_get_live_callee_saved_regs.
(mn10300_initial_offset): Likewise.
* config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
Update prototype.
* config/mn10300/mn10300.md (return_ret): Add argument to
invocation of mn10300_get_live_callee_saved_regs.

From-SVN: r189892

12 years agore PR regression/54084 (Bunch of fails for x86)
Steven Bosscher [Thu, 26 Jul 2012 13:21:21 +0000 (13:21 +0000)]
re PR regression/54084 (Bunch of fails for x86)

PR regression/54084
* sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
pointer difference check.

From-SVN: r189891

12 years agotree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
Bill Schmidt [Thu, 26 Jul 2012 13:10:04 +0000 (13:10 +0000)]
tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.

2012-07-26  Bill Schmidt  <wschmidt@linux.ibm.com>

* tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
(mbc_entry_eq): Likewise.
(mult_costs): Likewise.
(cost_tables_exist): Likewise.
(initialize_costs): Likewise.
(finalize_costs): Likewise.
(tree_ssa_iv_optimize_init): Remove call to initialize_costs.
(add_regs_cost): Remove.
(multiply_regs_cost): Likewise.
(add_const_cost): Likewise.
(extend_or_trunc_reg_cost): Likewise.
(negate_reg_cost): Likewise.
(struct mbc_entry): Likewise.
(multiply_by_const_cost): Likewise.
(get_address_cost): Change add_regs_cost calls to add_cost lookups;
change multiply_by_const_cost to mult_by_coeff_cost.
(force_expr_to_var_cost): Likewise.
(difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
(get_computation_cost_at): Change add_regs_cost calls to add_cost
lookups; change multiply_by_const_cost to mult_by_coeff_cost.
(determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
(tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
* tree-ssa-address.c (expmed.h): New #include.
(most_expensive_mult_to_index): Change multiply_by_const_cost to
mult_by_coeff_cost.
* gimple-ssa-strength-reduction.c (expmed.h): New #include.
(stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
neg_cost, and convert_cost instead of IVOPTS interfaces.
(execute_strength_reduction): Remove calls to initialize_costs and
finalize_costs.
* expmed.c (struct init_expmed_rtl): Add convert rtx_def.
(init_expmed_one_mode): Initialize convert rtx_def; initialize
x_convert_cost for related modes.
(mult_by_coeff_cost): New function.
* expmed.h (NUM_MODE_INT): New #define.
(struct target_expmed): Add x_convert_cost matrix.
(set_convert_cost): New inline function.
(convert_cost): Likewise.
(mult_by_coeff_cost): New extern decl.
* tree-flow.h (initialize_costs): Remove decl.
(finalize_costs): Likewise.
(multiply_by_const_cost): Likewise.
(add_regs_cost): Likewise.
(multiply_regs_cost): Likewise.
(add_const_cost): Likewise.
(extend_or_trunc_reg_cost): Likewise.
(negate_reg_cost): Likewise.
* Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
(tree-ssa-address.o): Update dependencies.

From-SVN: r189890

12 years agobitmap.h: Add explanation of sparse set as linked-list bitmap.
Steven Bosscher [Thu, 26 Jul 2012 12:02:54 +0000 (12:02 +0000)]
bitmap.h: Add explanation of sparse set as linked-list bitmap.

* bitmap.h: Add explanation of sparse set as linked-list bitmap.
* sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
(TEST_BIT): Make a static inline function for stronger type checking.
(SET_BIT): Don't handle sbitmaps with popcount.
(RESET_BIT): Likewise.
(SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
(RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
* ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
(ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
* sparseset.h: Add explanation of sparse set representation.

From-SVN: r189888

12 years agocontiguous_1.f90: Update dg-error.
Tobias Burnus [Thu, 26 Jul 2012 11:49:32 +0000 (13:49 +0200)]
contiguous_1.f90: Update dg-error.

2012-07-26  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/contiguous_1.f90: Update dg-error.
        * gfortran.dg/proc_ptr_32.f90: Ditto.

From-SVN: r189887

12 years agore PR tree-optimization/54098 (ICE on valid code)
Richard Guenther [Thu, 26 Jul 2012 10:25:15 +0000 (10:25 +0000)]
re PR tree-optimization/54098 (ICE on valid code)

2012-07-26  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54098
* tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
original range was UNDEFINED.

* gcc.dg/torture/pr54098.c: New testcase.

From-SVN: r189885

12 years agoneon.ml (ops): Fix regexp for vld1Q_dups64 and vld1Q_dupu64 tests.
Ramana Radhakrishnan [Thu, 26 Jul 2012 09:37:38 +0000 (09:37 +0000)]
neon.ml (ops): Fix regexp for vld1Q_dups64 and vld1Q_dupu64 tests.

2012-07-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
vld1Q_dupu64 tests.

2012-07-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* gcc.target/arm/neon/vld1Q_dupu64.c: Regenerate.
* gcc.target/arm/neon/vld1Q_dups64.c: Likewise.

From-SVN: r189884

12 years agore PR fortran/44354 (implied do loop with its own variable name as upper bound)
Mikael Morin [Thu, 26 Jul 2012 08:53:56 +0000 (08:53 +0000)]
re PR fortran/44354 (implied do loop with its own variable name as upper bound)

fortran/
PR fortran/44354
* trans-array.c (gfc_trans_array_constructor_value):
Evaluate the iteration bounds before the inner variable shadows
the outer.

testsuite/
PR fortran/44354
* gfortran.dg/array_constructor_39.f90: New test.

From-SVN: r189883

12 years agore PR fortran/44354 (implied do loop with its own variable name as upper bound)
Mikael Morin [Thu, 26 Jul 2012 08:47:33 +0000 (08:47 +0000)]
re PR fortran/44354 (implied do loop with its own variable name as upper bound)

fortran/
PR fortran/44354
* array.c (sought_symbol): New variable.
(expr_is_sought_symbol_ref, find_symbol_in_expr): New functions.
(resolve_array_list): Check for references to the induction
variable in the iteration bounds and issue a diagnostic if some
are found.

testsuite/
PR fortran/44354
* gfortran.dg/array_constructor_38.f90: New test.

From-SVN: r189882

12 years agomodule.c (mio_array_spec): Don't read as->lower for assumed-rank arrays.
Alessandro Fanfarillo [Thu, 26 Jul 2012 08:35:55 +0000 (02:35 -0600)]
module.c (mio_array_spec): Don't read as->lower for assumed-rank arrays.

2012-07-26  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        * module.c (mio_array_spec): Don't read as->lower for
        assumed-rank arrays.

Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r189881

12 years agoruntime, runtime/pprof: Fix runtime/pprof test to pass, enable it.
Ian Lance Taylor [Thu, 26 Jul 2012 01:57:04 +0000 (01:57 +0000)]
runtime, runtime/pprof: Fix runtime/pprof test to pass, enable it.

From-SVN: r189878

12 years agore PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
Oleg Endo [Thu, 26 Jul 2012 00:19:58 +0000 (00:19 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)

PR target/51244
* config/sh/sh.opt (mzdcbranch): New option.
* doc/invoke.texi: Document it.
* config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
instead of TARGET_HARD_SH4.
* config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
for TARGET_HARD_SH4.

From-SVN: r189877

12 years agoDaily bump.
GCC Administrator [Thu, 26 Jul 2012 00:18:19 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r189876

12 years agoFix ChangeLog formatting.
Oleg Endo [Wed, 25 Jul 2012 23:06:21 +0000 (23:06 +0000)]
Fix ChangeLog formatting.

From-SVN: r189873

12 years agore PR target/54089 ([SH] Refactor shift patterns)
Oleg Endo [Wed, 25 Jul 2012 23:03:06 +0000 (23:03 +0000)]
re PR target/54089 ([SH] Refactor shift patterns)

PR target/54089
* config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
case.
(p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
* config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
from expander.  Do not emit shift insn for not-SHMEDIA case.
(ashlsi3_std): Replace with ...
(ashlsi3_k, ashlsi3_d): ... these new insns.
* config/sh/sh.c (gen_ashift): Make static.  Add sanity checks.
Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
(gen_ashift_hi): Make static.
* config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
declaration.

From-SVN: r189872

12 years ago* g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking.
Janis Johnson [Wed, 25 Jul 2012 22:09:28 +0000 (22:09 +0000)]
* g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking.

From-SVN: r189870

12 years agoPass -be8 by default for armv7-a when configured big-endian.
Bharathi Seshadri [Wed, 25 Jul 2012 20:13:46 +0000 (20:13 +0000)]
Pass -be8 by default for armv7-a when configured big-endian.

config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
TARGET_BIG_ENDIAN_DEFAULT.

Co-Authored-By: Jim Wilson <jimwilso@cisco.com>
From-SVN: r189867

12 years agogimple-low.c (lower_try_catch): New function.
Eric Botcazou [Wed, 25 Jul 2012 19:57:51 +0000 (19:57 +0000)]
gimple-low.c (lower_try_catch): New function.

* gimple-low.c (lower_try_catch): New function.
(lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
<GIMPLE_CATCH>: Delete.
<GIMPLE_EH_FILTER>: Likewise.

From-SVN: r189865

12 years agoexpr.c (expand_expr_real_1): Do not expand operand #1 and #2 of BIT_FIELD_REF for...
Eric Botcazou [Wed, 25 Jul 2012 19:43:15 +0000 (19:43 +0000)]
expr.c (expand_expr_real_1): Do not expand operand #1 and #2 of BIT_FIELD_REF for ignored results.

* expr.c (expand_expr_real_1): Do not expand operand #1 and #2
of BIT_FIELD_REF for ignored results.
* fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
CONSTRUCTOR has vector type before using vector accessors on it.
* gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
#2 of BIT_FIELD_REF.
(gimplify_expr) <BIT_FIELD_REF>: Likewise.
* tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
not process operand #1 and #2.
(convert_local_reference_op): Likewise.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
breaks throughout.
<BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
* tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
operand #1 and #2.
(UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
(build6_stat): Delete.
* tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
ada/
* gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do
not stabilize operand #1 and #2.

From-SVN: r189864

12 years agore PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)
François Dumont [Wed, 25 Jul 2012 19:32:48 +0000 (19:32 +0000)]
re PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)

2012-07-25  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/54075
* include/bits/hashtable.h
(_Hashtable<>::_Hashtable(_InputIterator, _InputIterator,
size_type, ...): Remove std::max usage to guarantee that hashtable
state is consistent with hash policy state.
(_Hashtable<>::rehash): Likewise. Set _M_prev_resize to 0 to avoid
the hashtable to be shrinking on next insertion.
* testsuite/23_containers/unordered_set/modifiers/reserve.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/reserve.cc: New.
* testsuite/23_containers/unordered_map/modifiers/reserve.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/reserve.cc: New.

From-SVN: r189863

12 years agore PR tree-optimization/30318 (VRP does not create ANTI_RANGEs on overflow)
Marc Glisse [Wed, 25 Jul 2012 18:26:12 +0000 (20:26 +0200)]
re PR tree-optimization/30318 (VRP does not create ANTI_RANGEs on overflow)

2012-07-25 Marc Glisse <marc.glisse@inria.fr>

PR tree-optimization/30318
* tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
Handle __int128.
[MINUS_EXPR]: Merge with PLUS_EXPR.

From-SVN: r189861

12 years agore PR target/53633 (__attribute__((naked)) should disable -Wreturn-type)
Sandra Loosemore [Wed, 25 Jul 2012 18:08:06 +0000 (14:08 -0400)]
re PR target/53633 (__attribute__((naked)) should disable -Wreturn-type)

2012-07-25  Sandra Loosemore  <sandra@codesourcery.com>
    Paul Brook  <paul@codesourcery.com>

PR target/53633

gcc/
* target.def (warn_func_return): New hook.
* doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
* doc/tm.texi: Regenerate.
* doc/sourcebuild.texi (Effective-Target Keywords): Document
naked_functions.
* ipa-pure-const.c (warn_function_noreturn): Check
targetm.warn_func_return.
* tree-cfg.c (execute_warn_function_return): Likewise.
* config/spu/spu.c (spu_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/rx/rx.c (rx_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/avr/avr.c (avr_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/arm/arm.c (arm_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/mcore/mcore.c (mcore_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
(saved_warn_return_type, saved_warn_return_type_count): Remove.
(mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.

gcc/cp/
* decl.c (finish_function): Check targetm.warn_func_return.

gcc/testsuite/
* lib/target-suports.exp (check_effective_target_naked_functions):
New.
* c-c++-common/pr53633.c: New test.

Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r189860

12 years agotrans-types.c (gfc_real16_is_float128): Fix spelling in a comment.
Tobias Burnus [Wed, 25 Jul 2012 18:04:25 +0000 (20:04 +0200)]
trans-types.c (gfc_real16_is_float128): Fix spelling in a comment.

2012-07-25  Tobias Burnus  <burnus@net-b.de>

        * trans-types.c (gfc_real16_is_float128): Fix spelling
        in a comment.
        * trans.h (struct gfc_array_info): Ditto.
        * gfortran.h (gfc_expr): Ditto.
        * simplify.c (gfc_count): Ditto.
        * trans-expr.c (gfc_copy_class_to_class,
        conv_parent_component_references,
        gfc_trans_pointer_assignment): Ditto.
        * expr.c (check_pointer_assign): Fix diagnostic spelling.
        * interface.c (compare_parameter): Ditto.
        * parse.c (use_modules, parse_associate): Ditto.
        * decl.c (match_char_length): Fix spelling of the
        an function argument.

From-SVN: r189859

12 years agolist_read.c (list_formatted_read_scalar): Fix copying real value back to temporary.
Andreas Schwab [Wed, 25 Jul 2012 16:40:26 +0000 (16:40 +0000)]
list_read.c (list_formatted_read_scalar): Fix copying real value back to temporary.

* io/list_read.c (list_formatted_read_scalar): Fix copying real
value back to temporary.

From-SVN: r189856

12 years agoSplit out do_assembler_dialects.
Siddhesh Poyarekar [Wed, 25 Jul 2012 16:01:17 +0000 (16:01 +0000)]
Split out do_assembler_dialects.

* final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
function to implement assembler dialects.
(output_asm_insn): Use do_assembler_dialects.
(asm_fprintf): Likewise.

* gcc.target/i386/asm-dialect-1.c: New test case.

From-SVN: r189854

12 years agore PR bootstrap/54092 (Bootstrap fails while building Ada at stage 1)
Richard Henderson [Wed, 25 Jul 2012 15:10:44 +0000 (08:10 -0700)]
re PR bootstrap/54092 (Bootstrap fails while building Ada at stage 1)

PR bootstrap/54092

        * libfuncs.h: Don't include optabs.h.
        (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
        * optabs.c (hash_libfunc): Don't cast members to int.
        * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.

From-SVN: r189853

12 years agore PR c++/54086 (GCC should allow constexpr and const together)
Jason Merrill [Wed, 25 Jul 2012 14:57:06 +0000 (10:57 -0400)]
re PR c++/54086 (GCC should allow constexpr and const together)

PR c++/54086
* decl.c (grokdeclarator): Allow const and constexpr together.

From-SVN: r189852

12 years agore PR c++/54020 ([c++0x] incorrectly accepted constexpr functions)
Jason Merrill [Wed, 25 Jul 2012 14:56:57 +0000 (10:56 -0400)]
re PR c++/54020 ([c++0x] incorrectly accepted constexpr functions)

PR c++/54020
* semantics.c (potential_constant_expression_1) [COND_EXPR]: Call
maybe_constant_value.

From-SVN: r189851

12 years agocp-tree.h (tsubst_flags): Remove tf_no_access_control.
Jason Merrill [Wed, 25 Jul 2012 14:56:50 +0000 (10:56 -0400)]
cp-tree.h (tsubst_flags): Remove tf_no_access_control.

* cp-tree.h (tsubst_flags): Remove tf_no_access_control.
* call.c (standard_conversion): Don't set it.
* class.c (resolve_address_of_overloaded_function): Don't check it.
* decl.c (check_default_argument): Call
perform_implicit_conversion_flags.

From-SVN: r189850

12 years ago* pt.c (print_candidates_1): Use inform instead of error.
Jason Merrill [Wed, 25 Jul 2012 14:56:41 +0000 (10:56 -0400)]
* pt.c (print_candidates_1): Use inform instead of error.

From-SVN: r189849

12 years agoFix typo in comment in basic-block.h
Dodji Seketeli [Wed, 25 Jul 2012 13:08:14 +0000 (13:08 +0000)]
Fix typo in comment in basic-block.h

gcc/

* basic-block.c: Fix typo in comment.

From-SVN: r189845

12 years agoChangelog entry:
Kirill Yukhin [Wed, 25 Jul 2012 13:01:35 +0000 (13:01 +0000)]
Changelog entry:

2012-07-25  Kirill Yukhin  <kirill.yukhin@intel.com>
            Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
        (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
        (ix86_handle_option): Handle mprfchw option.
        * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
        (x86_64-*-*): Likewise.
        * config/i386/prfchwintrin.h: New header.
        * config/i386/cpuid.h (bit_PRFCHW): New.
        (bit_BMI): Formatting fix.
        (bit_HLE): Likewise.
        (bit_RTM): Likewise.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect
        PREFETCHW support.
        * config/i386/i386-c.c: Define __PRFCHW__ if needed.
        * config/i386/i386.c (ix86_target_string): Define
        -mprfchw option. Formatting fixes.
        (PTA_HLE): Formatting fix.
        (PTA_PRFCHW): New.
        (ix86_option_override_internal): Handle new option.
        (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
        * config/i386/i386.h (TARGET_PRFCHW): New.
        * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
        * config/i386/i386.opt (mprfchw): New.
        * config/i386/mm3dnow.h: Move _m_prefetchw from here to
        prfchwintrin.h.
        * config/i386/x86intrin.h: Include prfchwintrin.h.

testsuite/Changelog entry:
2012-07-24  Kirill Yukhin  <kirill.yukhin@intel.com>
            Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

        * gcc.target/i386/prefetchw-1.c: New.
        * gcc.target/i386/sse-12.c: Add -mprfchw.
        * gcc.target/i386/sse-13.c: Ditto.
        * gcc.target/i386/sse-14.c: Ditto.
        * g++.dg/other/i386-2.C: Ditto.
        * g++.dg/other/i386-3.C: Ditto.

Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r189844

12 years agoi386.md (stack_protect_set): Disable the pattern for Android since Android libc ...
Sergey Melnikov [Wed, 25 Jul 2012 10:33:20 +0000 (10:33 +0000)]
i386.md (stack_protect_set): Disable the pattern for Android since Android libc (bionic) does not provide...

2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>

        * config/i386/i386.md (stack_protect_set): Disable the pattern
        for Android since Android libc (bionic) does not provide random
        value for stack protection guard at gs:0x14. Guard value
        will be provided from external symbol (default implementation).
        (stack_protect_set_<mode>): Likewise.
        (stack_protect_test): Likewise.
        (stack_protect_test_<mode>): Likewise.
        * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
        not have Bionic by default
        * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
        Macro OPTION_BIONIC is defined in this file and provides Bionic
        accessibility status

From-SVN: r189840

12 years ago* gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
Steven Bosscher [Wed, 25 Jul 2012 08:56:47 +0000 (08:56 +0000)]
* gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.

From-SVN: r189839

12 years agoAMD btver2 enablement
Venkataramanan Kumar [Wed, 25 Jul 2012 08:50:01 +0000 (08:50 +0000)]
AMD btver2 enablement

From-SVN: r189838

12 years agotm.texi: Regenerate.
Bill Schmidt [Wed, 25 Jul 2012 03:07:08 +0000 (03:07 +0000)]
tm.texi: Regenerate.

2012-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>

* doc/tm.texi: Regenerate.
* targhooks.c (default_init_cost): Add prologue and epilogue costs.
(default_add_stmt_cost): Likewise; also handle NULL stmt_info.
(default_finish_cost): Add prologue and epilogue costs.
* targhooks.h (default_add_stmt_cost): Change parameter list.
(default_finish_cost): Likewise.
* target.def (init_cost): Change documentation string.
(add_stmt_cost): Change documentation string and parameter list.
(finish_cost): Likewise.
* target.h (vect_cost_model_location): New enum.
* tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
(struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
to body_cost_vec.
(SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
(SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
(SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
(struct _vect_peel_extended_info): Rename stmt_cost_vec to
body_cost_vec.
(struct _stmt_vec_info): Remove cost substruct.
(STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
(stmt_vinfo_set_outside_of_loop_cost): Remove.
(builtin_vectorization_cost): New function.
(vect_get_stmt_cost): Change to use builtin_vectorization_cost.
(add_stmt_cost): Change parameter list.
(finish_cost): Likewise.
(vect_model_simple_cost): Likewise.
(vect_model_store_cost): Likewise.
(vect_model_load_cost): Likewise.
(record_stmt_cost): Likewise.
(vect_get_load_cost): Likewise.
(vect_get_known_peeling_cost): Likewise.
* tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
list; call record_stmt_cost for prologue and epilogue costs.
(vect_estimate_min_profitable_iters): Call add_stmt_cost for
prologue and epilogue costs; remove computation of vec_outside_cost;
return vec_prologue_cost and vec_epilogue_cost from finish_cost.
(vect_model_reduction_cost): Revise call to add_stmt_cost for body
costs; call add_stmt_cost for prologue and epilogue costs.
(vect_model_induction_cost): Revise call to add_stmt_cost for body
costs; call add_stmt_cost for prologue costs.
* tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
list for function and arguments for calls to vect_get_load_cost and
vect_get_store_cost.
(vect_peeling_hash_get_lowest_cost): Change argument list for calls to
vect_get_data_access_cost and vect_get_known_peeling_cost; use
temporary vectors prologue_cost_vec and epilogue_cost_vec for the
latter call and discard their results; rename stmt_cost_vec to
body_cost_vec; correct possible storage leak for body_cost_vec.
(vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
body_cost_vec.
(vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
body_cost_vec; add extra dummy parameter on calls to
vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
argument list on call to add_stmt_cost.
* tree-vect-stmts.c (record_stmt_cost): Change parameter list;
rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
builtin_vectorization_cost; add "where" parameter on call to
add_stmt_cost.
(vect_model_simple_cost): Change parameter list; call record_stmt_cost
for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
rename stmt_cost_vec to body_cost_vec.
(vect_model_promotion_demotion_cost): Add vect_body argument to call
to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
to stmt_vinfo_set_outside_of_loop_cost.
(vect_model_store_cost): Change parameter list; call record_stmt_cost
for prologue costs; add vect_body argument to call to record_stmt_cost;
rename stmt_cost_vec to body_cost_vec; remove call to
stmt_vinfo_set_outside_of_loop_cost.
(vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
vect_body argument to calls to record_stmt_cost.
(vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
body_cost_vec; add vect_body argument to calls to record_stmt_cost;
remove call to stmt_vinfo_set_outside_of_loop_cost.
(vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
body_cost_vec; add vect_body argument to calls to record_stmt_cost;
call record_stmt_cost for prologue costs.
(vectorizable_store): Change argument list for call to
vect_model_store_cost.
(vectorizable_load): Change argument list for call to
vect_model_load_cost.
(new_stmt_vec_info): Remove assignment to
STMT_VINFO_OUTSIDE_OF_LOOP_COST.
* config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
(spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
(spu_finish_cost): Add prologue and epilogue costs.
* config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
(i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
(i386_finish_cost): Add prologue and epilogue costs.
* config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
costs.
(rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
(rs6000_finish_cost): Add prologue and epilogue costs.
* tree-vect-slp.c (vect_free_slp_instance): Rename
SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
(vect_create_new_slp_node): Remove assignment to
SLP_TREE_OUTSIDE_OF_LOOP_COST.
(vect_get_and_check_slp_defs): Change parameter list; change argument
lists to calls to vect_model_store_cost and vect_model_simple_cost.
(vect_build_slp_tree): Change parameter list; change argument lists
to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
recursive self-calls; remove setting of outside_cost from
SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
record_stmt_cost.
(vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
prologue costs.
(vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
body_cost_vec; handle null ci->stmt; add vect_body argument to call
to add_stmt_cost; simplify calls to targetm.vectorize.
builtin_vectorization_cost; return vec_prologue_cost and
vec_epilogue_cost from finish_cost.
(vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
body_cost_vec; add vect_body argument to call to add_stmt_cost.

From-SVN: r189836

12 years agoDaily bump.
GCC Administrator [Wed, 25 Jul 2012 00:17:37 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r189832

12 years agoPurge FIXUNS_TRUNC_LIKE_FIX_TRUNC
Richard Henderson [Tue, 24 Jul 2012 22:25:18 +0000 (15:25 -0700)]
Purge FIXUNS_TRUNC_LIKE_FIX_TRUNC

From-SVN: r189826

12 years agopt.c (convert_template_argument, tsubst): Simplify fourth argument to make_typename_t...
Paolo Carlini [Tue, 24 Jul 2012 21:53:31 +0000 (21:53 +0000)]
pt.c (convert_template_argument, tsubst): Simplify fourth argument to make_typename_type (complain & tf_error -> complain).

2012-07-24  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (convert_template_argument, tsubst): Simplify fourth argument
to make_typename_type (complain & tf_error -> complain).

From-SVN: r189825

12 years agoReduce the size of optabs representation
Richard Henderson [Tue, 24 Jul 2012 18:28:15 +0000 (11:28 -0700)]
Reduce the size of optabs representation

From-SVN: r189821

12 years ago* ChangeLog: Fix my recent entry.
Uros Bizjak [Tue, 24 Jul 2012 17:59:25 +0000 (19:59 +0200)]
* ChangeLog: Fix my recent entry.

From-SVN: r189820

12 years agobitmap.c (bitmap_descriptor): Adjust order of parameters to match MEM_STAT_DECL.
Jason Merrill [Tue, 24 Jul 2012 17:53:42 +0000 (13:53 -0400)]
bitmap.c (bitmap_descriptor): Adjust order of parameters to match MEM_STAT_DECL.

* bitmap.c (bitmap_descriptor): Adjust order of parameters to
match MEM_STAT_DECL.
* statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.

From-SVN: r189819

12 years agoIntroduce and use code_to_optab and optab_to_code functions
Richard Henderson [Tue, 24 Jul 2012 17:36:56 +0000 (10:36 -0700)]
Introduce and use code_to_optab and optab_to_code functions

Removes all the direct uses of op->code so that we can change
the representation of "optab".  The code_to_optab change is
simply for uniformity (and better type checking).

        * optabs.h (struct optab_d): Rename code member to code_.
        (struct convert_optab_h): Likewise.
        (code_to_optab_): Rename from code_to_optab.
        (code_to_optab, optab_to_code): New.
        * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
        * ifcvt.c (noce_emit_move_insn): Likewise.
        * optabs.c (simplify_expand_binop): Use optab_to_code.
        (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
        (avoid_expensive_constant, expand_binop_directly): Likewise.
        (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
        (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
        (have_insn_for, debug_optab_libfuncs): Likewise.
        (init_optab, init_optabv, init_convert_optab): Update for optab
        member name change.

From-SVN: r189818

12 years agoTidy some include usage + dependencies
Richard Henderson [Tue, 24 Jul 2012 17:31:01 +0000 (10:31 -0700)]
Tidy some include usage + dependencies

The dwarf2out.c and lto-streamer-in.c files didn't need
libfuncs.h in the first place.  The libfuncs.h file will
grow a use of an optab enumeration and thus will require
including optabs.h.

        * libfuncs.h: Include optabs.h.
        * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
        * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
        (lto-streamer-in.o, dwarf2out.o): Update deps.

From-SVN: r189817

12 years agoIntroduce and use unknown_optab
Richard Henderson [Tue, 24 Jul 2012 17:28:41 +0000 (10:28 -0700)]
Introduce and use unknown_optab

Prep for a later patch where this becomes an enum value.

        * optabs.h (unknown_optab): New.
        * builtins.c (interclass_mathfn_icode): Use it.
        * dojump.c (do_compare_rtx_and_jump): Likewise.
        * optabs.c (optab_for_tree_code, expand_binop): Likewise.
        * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
        (expand_vector_operations_1): Likewise.
        * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
        * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.

From-SVN: r189816

12 years ago* lib/gcc-dg.exp (process-message): Don't ignore errors.
Janis Johnson [Tue, 24 Jul 2012 16:55:54 +0000 (16:55 +0000)]
* lib/gcc-dg.exp (process-message): Don't ignore errors.

From-SVN: r189815

12 years ago* config/i386/i386.c: Fix whitespace.
Uros Bizjak [Tue, 24 Jul 2012 16:52:46 +0000 (18:52 +0200)]
* config/i386/i386.c: Fix whitespace.

From-SVN: r189814

12 years ago* alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
Steven Bosscher [Tue, 24 Jul 2012 16:37:45 +0000 (16:37 +0000)]
* alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.

From-SVN: r189812

12 years ago* MAINTAINERS (Write After Approval): Add myself.
Jan-Benedict Glaw [Tue, 24 Jul 2012 13:51:17 +0000 (13:51 +0000)]
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r189810

12 years agore PR target/54051 (Invalid alignment specifier generated for vld3_lane_* and vld3_du...
Ramana Radhakrishnan [Tue, 24 Jul 2012 12:02:30 +0000 (12:02 +0000)]
re PR target/54051 (Invalid alignment specifier generated for vld3_lane_* and vld3_dup_* intrinsics.)

Fix PR target/54051

2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

PR target/54051
* config/arm/arm.c (arm_print_operand_address): Remove superfluous
printing of 0.
* config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
specifier.
("neon_vld3_lane<mode>":VMQ): Likewise.
("neon_vld3_dup<mode>":VDX): Likewise.
("neon_vst3_lane<mode>":VD): Likewise.
("neon_vst3_lane<mode>":VMQ): Likewise.

2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

PR target/54051
* gcc.target/arm/pr54051.c: New.
* gcc.target/arm/vfp-1.c: Adjust test.

From-SVN: r189808

12 years agoarm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding.
Roland McGrath [Tue, 24 Jul 2012 11:53:14 +0000 (11:53 +0000)]
arm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding.

2012-07-24  Roland McGrath  <mcgrathr@google.com>

* arm.c (arm_get_frame_offsets): Don't use fixed regs for
stack alignment padding.

From-SVN: r189807

12 years agore PR target/53961 (internal compiler error: in memory_address_length, at config...
Uros Bizjak [Tue, 24 Jul 2012 11:37:20 +0000 (13:37 +0200)]
re PR target/53961 (internal compiler error: in memory_address_length, at config/i386/i386.c:23341)

PR target/53961
* config/i386/i386.c (ix86_legitimate_address_p): Move check for
negative constant address for TARET_X32 ...
(ix86_decompose_address): ... here.  Reject constant addresses
that don't satisfy x86_64_immediate_operand predicate.

From-SVN: r189806

12 years agosourcebuild.texi (arm_hf_eabi): Document effective-target check.
Julian Brown [Tue, 24 Jul 2012 11:29:50 +0000 (11:29 +0000)]
sourcebuild.texi (arm_hf_eabi): Document effective-target check.

    gcc/
    * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target
    check.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_hf_eabi): New.
    * gcc.dg/torture/stackalign/builtin-apply-2.c: Skip for
    hard-float ARM.

From-SVN: r189805

12 years agolto-tree.h (lang_decl): Add variable_size GTY option.
Uros Bizjak [Tue, 24 Jul 2012 10:51:11 +0000 (12:51 +0200)]
lto-tree.h (lang_decl): Add variable_size GTY option.

gcc/lto/ChangeLog:

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

* lto-tree.h (lang_decl): Add variable_size GTY option.

gcc/go/ChangeLog:

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

* go-lang.c (lang_decl): Add variable_size GTY option.

gcc/c/ChangeLog:

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

* c-lang.h (lang_decl): Add variable_size GTY option.

From-SVN: r189804

12 years agosbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
Steven Bosscher [Tue, 24 Jul 2012 09:49:56 +0000 (09:49 +0000)]
sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.

gcc/
* sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
Move test to check that there is a popcount function for the the number
of bits in SBITMAP_ELT_BITS to sbitmap.c.
* sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
MEM_STAT_INFO): Define in terms of their ALONE counterparts.

* configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
* configure: Regenerate.
* statistics.h (GATHER_STATISTICS): Error out if it is not defined.
(GCC_MEM_STAT_ARGUMENTS): New define.
(ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
(ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
(MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT, FINAL_PASS_MEM_STAT,
* ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
* ggc.h (ggc_record_overhead, ggc_free_overhead,
ggc_prune_overhead_list): Remove internal prototypes, they are defined
already in ggc-internal.h.
* ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
wrappers.
(add_statistics): Likewise.
(dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
wrappers around "survived" and "stats" members.
(alloc_large_page): Always initialize survived.
(ggc_internal_alloc_zone_stat): Likewise.
Remove #ifdef GATHER_STATISTICS wrappers.  Record overhead if
GATHER_STATISTICS is non-0.
(ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
(sweep_pages): Always increase survived.
(ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
(calculate_average_page_survival): Always define.
(ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
(ggc_print_statistics): Likewise.
(ggc_pch_read): Likewise.
* ggc-page.c (struct globals): Always define "stats" member.
(ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
(ggc_free): Likewise.
(ggc_collec): Likewise.
(ggc_print_statistics): Likewise.
* bitmap.h (struct bitmap_head_def): Always define "desc" member.
(bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
* gimple.h (enum gimple_alloc_kind): Always define.
(gimple_alloc_kind): Likewise.
* tree-flow.h (phinodes_print_statistics): Always define.
(ssanames_print_statistics): Likewise.
* vec.h (vec_heap_free): Always define.
(VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
* alloc-pool.c (alloc_pool_descriptor): Always define.
(create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
(empty_alloc_pool): Likewise.
(pool_alloc): Likewise.
(pool_free): Likewise.
(dump_alloc_pool_statistics): Likewise.
(print_statistics): Always define.
* bitmap.c (struct bitmap_descriptor): Always define.
(bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
(register_overhead): Always define.
(bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
(bitmap_element_allocate): Likewise.
(bitmap_elt_clear_from): Likewise.
(bitmap_obstack_alloc_stat): Likewise.
(bitmap_gc_alloc_stat): Likewise.
(bitmap_obstack_free): Likewise.
(bitmap_find_bit): Likewise.
(bitmap_ior_and_into):  Likewise.
(bitmap_print): Likewise.
(dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
(gimple_alloc_kind_names): Likewise.
(gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
(dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
rtvec_alloc_sizes): Always define.
(rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
(rtx_alloc_stat): Likewise.
(dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
tree_node_sizes, tree_node_kind_names): Always define.
(record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
to if-code.
(type_hash_canon): Likewise.
(dump_tree_statistics): Likewise.
* tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
Always define.
(ssanames_print_statistics): Likewise.
(make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
* tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
(phinodes_print_statistics): Likewise.
(allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
* vec.c (struct vec_descriptor): Always define.
(hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
vec_descriptor, rester_overhead, free_overhead): Likewise.
(cmp_statistic): Likewise.
(vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
(vec_heap_o_reserve_1): Likewise.
(dump_vec_loc_statistics): Likewise.

cp/
* cp/class.c (n_vtables, n_vtable_entries, n_vtable_searches,
n_vtable_elems, n_convert_harshness, n_compute_conversion_costs,
n_inner_fields_searched): Always define.
(build_primary_vtable): Convert #ifdef GATHER_STATISTICS to if-code.
(print_class_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
* cp/tree.c (depth_reached): Always define global.
(cxx_print_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
* cp/pt.c (depth_reached): Always define.
(push_tinst_level): Convert #ifdef GATHER_STATISTICS to if-code.
* cp/search.c (n_fields_searched, n_calls_lookup_field,
n_calls_lookup_field_1, n_calls_lookup_fnfields,
n_calls_lookup_fnfields_1, n_calls_get_base_type,
n_outer_fields_searched, n_contexts_saved): Always define.
(lookup_field_1): Convert #ifdef GATHER_STATISTICS to if-code.
(lookup_member): Likewise.
(lookup_fnfields_idx_nolazy): Likewise.
(print_search_statistics): Likewise.
(reinit_search_statistics): Unconditionally re-set counters.
* cp/lex.c (retrofit_lang_decl): Convert #ifdef GATHER_STATISTICS
to if-code.
(cxx_dup_lang_specific_decl): Likewise.
(copy_lang_type): Likewise.
(cxx_make_type): Likewise.

From-SVN: r189803

12 years agore PR middle-end/53616 (416.gamess in SPEC CPU 2006 miscompiled)
Richard Guenther [Tue, 24 Jul 2012 08:37:43 +0000 (08:37 +0000)]
re PR middle-end/53616 (416.gamess in SPEC CPU 2006 miscompiled)

2012-07-24  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/53616
* tree-loop-distribution.c (ldist_gen): Do not change
partition ordering when merging partitions.

From-SVN: r189802

12 years agore PR target/53914 (poor code generated for offset addressing on ppc32)
Alan Modra [Tue, 24 Jul 2012 05:55:50 +0000 (15:25 +0930)]
re PR target/53914 (poor code generated for offset addressing on ppc32)

PR target/53914
PR target/54009
* config/rs6000/constraints.md (Y): Use mem_operand_gpr.
* config/rs6000/predicates.md (word_offset_memref_operand): Delete.
Adjust all rs6000_legitimate_offset_address_p calls.
* config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
(rs6000_secondary_reload_gpr): Declare.
(rs6000_legitimate_offset_address_p): Update prototype.
(rs6000_offsettable_memref_p): Delete.
(rs6000_secondary_reload_ppc64): Delete.
* config/rs6000/rs6000.c (address_offset): New function.
(mem_operand_gpr): Likewise.
(rs6000_legitimate_offset_address_p): Add worst_case param.  When
not worst_case assume class of regs with least restrictive offsets.
Adjust all calls.
(legitimate_lo_sum_address_p): Simplify register mode tests.
(rs6000_legitimize_address): Likewise.  Assume best case offset
addressing.  Combine ELF and MACHO lo_sum code.
(rs6000_mode_dependent_address): Correct offset addressing limits.
(rs6000_offsettable_memref_p): Make static, add reg_mode param.
Use reg_mode to help rs6000_legitimate_offset_address_p.
(rs6000_secondary_reload): Use address_offset.  Handle 32-bit multi
gpr load/store when offset too large.
(rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
(rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
* config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
for gpr load/store.  Order alternatives as r->Y,Y->r,r->r and
d->m,m->d,d->d.  Correct size of gpr load/store.
(movdf_softfloat32): Use 'Y' constraint for gpr load/store.  Order
alternatives.
(movti_ppc64): Likewise.
(movdi_internal32): Likewise.  Also disparage fprs.
(movdi_mfpgpr, movdi_internal64): Likewise.
(movtf_internal): Use 'm' for fpr load/store.  Order alternatives.
(movtf_softfloat): Order alternatives.
(extenddftf2_internal): Use 'm' and 'Y' for store.
(movti_power, movti_string): Use 'Y' for gpr load/store.  Order.
(stack_protect_setdi, stack_protect_testdi): Likewise.
(movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
(movdf_softfloat64): Likewise.
(reload_<mode>_store): Adjust reload_di_store to provide
reload_si_store as well.
(reload_<mode>_load): Likewise.

From-SVN: r189801

12 years agoDaily bump.
GCC Administrator [Tue, 24 Jul 2012 00:17:26 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r189800

12 years agore PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
Oleg Endo [Mon, 23 Jul 2012 22:57:36 +0000 (22:57 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)

PR target/51244
* config/sh/predicates.md (general_movsrc_operand,
general_movdst_operand): Reject T_REG.
* config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
Remove T_REG alternatives.
(*negtstsi): New insn.

From-SVN: r189797

12 years agore PR target/53511 (SH Target: Add support for fma patterns)
Oleg Endo [Mon, 23 Jul 2012 22:54:06 +0000 (22:54 +0000)]
re PR target/53511 (SH Target: Add support for fma patterns)

PR target/53511
* config/sh/sh.md (mulsf3_ie): Delete.
(mulsf3_i4): Rename to mulsf3_i.
(mulsf3): Emit mulsf3_i insn.

From-SVN: r189796

12 years agosh.md (addc1, subc1): Delete.
Oleg Endo [Mon, 23 Jul 2012 22:51:38 +0000 (22:51 +0000)]
sh.md (addc1, subc1): Delete.

* config/sh/sh.md (addc1, subc1): Delete.
(adddi3_compact): Use addc instead of addc1.
(subdi3_compact): Use subc instead of subc1.

From-SVN: r189795

12 years agoi386-protos.c (ix86_lea_outperforms): Remove prototype.
Uros Bizjak [Mon, 23 Jul 2012 19:03:48 +0000 (21:03 +0200)]
i386-protos.c (ix86_lea_outperforms): Remove prototype.

* config/i386/i386-protos.c (ix86_lea_outperforms): Remove prototype.
* config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
split_cost argument signed.
(ix86_avoid_lea_for_add): Cleanup.
(ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
(ix86_avoid_lea_for_addr): Ditto.  Make split_cost signed.
Use gen_lowpart instead of gen_rtx_SUBREG.  Cleanup.

From-SVN: r189792

12 years ago* config/arm/arm.c (arm_reorg): Ensure all insns are split.
Ulrich Weigand [Mon, 23 Jul 2012 17:28:36 +0000 (17:28 +0000)]
* config/arm/arm.c (arm_reorg): Ensure all insns are split.

From-SVN: r189790

12 years agore PR target/53961 (internal compiler error: in memory_address_length, at config...
Uros Bizjak [Mon, 23 Jul 2012 16:04:23 +0000 (18:04 +0200)]
re PR target/53961 (internal compiler error: in memory_address_length, at config/i386/i386.c:23341)

PR target/53961
* config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
* config/i386/i386.c (ix86_print_operand_address): Ditto.
(ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
addresses.  Prevent zero extensions of CONST_INT operands.

From-SVN: r189787

12 years agosbitmap.h (struct int_list): Remove.
Steven Bosscher [Mon, 23 Jul 2012 14:28:29 +0000 (14:28 +0000)]
sbitmap.h (struct int_list): Remove.

* sbitmap.h (struct int_list): Remove.
(sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
Remove prototypes of non-existing function.
(sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
unused defines.
(sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
* basic-block.h: ... here.
* sbitmap.c: Do not include basic-block.h.
(sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
* cfganal.c: ... here.
* bt-load.c (compute_out, link_btr_uses): Update for above changes.
* gcse.c (compute_code_hoist_vbeinout): Likewise.
* lcm.c (compute_antinout_edge, compute_available): Likewise.
* Makefile.in: Fix sbitmap.o dependencies.

From-SVN: r189785

12 years agoarmv7m-1.c: New test.
Paul Brook [Mon, 23 Jul 2012 14:24:31 +0000 (14:24 +0000)]
armv7m-1.c: New test.

gcc/testsuite/
* g++.dg/other/armv7m-1.c: New test.

From-SVN: r189784

12 years agofrv-protos.h (frv_ifcvt_machdep_init): Prototype.
Jan-Benedict Glaw [Mon, 23 Jul 2012 14:11:39 +0000 (14:11 +0000)]
frv-protos.h (frv_ifcvt_machdep_init): Prototype.

* config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
* config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
(unused) parameter to void *.

Co-Authored-By: Nick Clifton <nickc@redhat.com>
From-SVN: r189783

12 years agotree-ssa-alias.c (dump_alias_info): Walk over local decls instead of referenced vars.
Richard Guenther [Mon, 23 Jul 2012 13:36:34 +0000 (13:36 +0000)]
tree-ssa-alias.c (dump_alias_info): Walk over local decls instead of referenced vars.

2012-07-23  Richard Guenther  <rguenther@suse.de>

* tree-ssa-alias.c (dump_alias_info): Walk over local decls
instead of referenced vars.

From-SVN: r189782

12 years agocoverage.c: Refer to "notes file" instead of "graph file" in all comments.
Steven Bosscher [Mon, 23 Jul 2012 11:59:15 +0000 (11:59 +0000)]
coverage.c: Refer to "notes file" instead of "graph file" in all comments.

gcc/
* coverage.c: Refer to "notes file" instead of "graph file"
in all comments.  Explain history of bbg prefix.
* gcov-io.h: Likewise.
* gcov.c: Likewise.
(find_source): Likewise in fnotice.
(read_graph_file): Likewise.
(read_count_file): Likewise.
* doc/gcov.texi: Document -fprofile-dir flag.  Add "notes file"
and "data file" explicitly in the explanation of the files.

libgcc/
* libgcov.c (__gcov_ior_profiler): Benign comment fix.

From-SVN: r189781

12 years ago20101011-1.c (__aeabi_idiv0): Define for ARM.
Julian Brown [Mon, 23 Jul 2012 10:47:53 +0000 (10:47 +0000)]
20101011-1.c (__aeabi_idiv0): Define for ARM.

gcc/testsuite/
* gcc.c-torture/execute/20101011-1.c (__aeabi_idiv0): Define for
ARM.
(DO_TEST): Define to 1 for appropriate ARM targets.

From-SVN: r189780

12 years agore PR tree-optimization/53881 (ICE in hoist_edge_and_branch_if_true)
Steven Bosscher [Mon, 23 Jul 2012 09:26:41 +0000 (09:26 +0000)]
re PR tree-optimization/53881 (ICE in hoist_edge_and_branch_if_true)

gcc/
PR tree-optimization/53881
* tree-cfg.c (group_case_labels_stmt): Look up the basic block
for each label and compare them instead of labels.

testsuite/
PR tree-optimization/53881
* gcc.dg/pr53881.c: Renamed to ...
* gcc.dg/pr53881-1.c: ... this.
* gcc.dg/pr53881-2.c: New test.

From-SVN: r189779

12 years agoopts.c (common_handle_option): Do not set flag_value_profile_transformations for...
Steven Bosscher [Mon, 23 Jul 2012 09:24:21 +0000 (09:24 +0000)]
opts.c (common_handle_option): Do not set flag_value_profile_transformations for -fprofile-generate.

* opts.c (common_handle_option): Do not set
flag_value_profile_transformations for -fprofile-generate.
* profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
(BB_TO_GCOV_INDEX): Remove.
(output_location): Don't use it.
(branch_prob): Likewise.  Don't fiddle with the index of
ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.  Use clear_aux_for_blocks.
(find_spanning_tree):
* gcov.c (struct function_info): Document that blocks 0 and 1
are the entry resp. exit blocks in gcov, too, like in GCC itself.
(solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
blocks identification.
(output_lines): Likewise.
* value-prof.c (gimple_value_profile_transformations): Do not
test flag_value_profile_transformations again.
(gimple_ic_transform): Take a gimple_stmt_iterator like all other
transformation functions.
(gimple_values_to_profile):
Don't test flag_value_profile_transformations
* tree-profile.c (tree_profiling): Assert that the cgraph is in
the CGRAPH_STATE_IPA_SSA state.
Do not set, or look at, after_tree_profile.
* function.h (struct function): Remove after_tree_profile bit.
* omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
* tree-inline.c (initialize_cfun): Don't copy it.
* lto-streamer-out.c (output_struct_function_base): Don't stream it.
* lto-streamer-in.c (input_struct_function_base): Likewise.

From-SVN: r189778

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 08:41:08 +0000 (10:41 +0200)]
[multiple changes]

2012-07-23  Tristan Gingold  <gingold@adacore.com>

* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use
End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node.

2012-07-23  Olivier Hainque  <hainque@adacore.com>

* gcc-interface/Makefile.in: Adjust processing of Linker_Options for
VxWorks.
* gcc-interface/Make-lang.in: Update dependencies.

From-SVN: r189777

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 08:32:33 +0000 (10:32 +0200)]
[multiple changes]

2012-07-23  Arnaud Charlet  <charlet@adacore.com>

* s-tasinf-linux.ads: Fix typo.

2012-07-23  Thomas Quinot  <quinot@adacore.com>

* exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original
loop carries an identifier, preserve it when rewriting it as a
standard loop to validate exit statements that may reference
that name in the body of the loop.

2012-07-23  Thomas Quinot  <quinot@adacore.com>

* exp_ch9.adb: Minor code cleanup.

From-SVN: r189776

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 08:29:15 +0000 (10:29 +0200)]
[multiple changes]

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Selected_Component): When checking for
potential ambiguities with class-wide operations on synchronized
types, attach the copied node properly to the tree, to prevent
errors during expansion.

2012-07-23  Yannick Moy  <moy@adacore.com>

* sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body
is analyzed in Alfa mode.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb: Adjust previous change.

2012-07-23  Vincent Pucci  <pucci@adacore.com>

* sem_ch9.adb (Allows_Lock_Free_Implementation): Flag
Lock_Free_Given renames previous flag Complain. Description
updated. Henceforth, catch every error messages issued by this
routine when Lock_Free_Given is True.  Declaration restriction
updated: No non-elementary parameter instead (even in parameter)
New subprogram body restrictions implemented: No allocator,
no address, import or export rep items, no delay statement,
no goto statement, no quantified expression and no dereference
of access value.

2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Determine_Range): Add local variable Btyp. Handle
the case where the base type of an enumeration subtype is
private. Replace all occurrences of Base_Type with Btyp.
* exp_attr.adb (Attribute_Valid): Handle the case where the
base type of an enumeration subtype is private. Replace all
occurrences of Base_Type with Btyp.
* sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable
Btyp. Handle the case where the base type of an enumeration
subtype is private. Replace all occurrences of Base_Type with
Btyp.

From-SVN: r189775

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 08:19:53 +0000 (10:19 +0200)]
[multiple changes]

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply
to a formal object of an anonymous access type.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Try_Container_Indexing): A user-defined indexing
aspect can have more than one index, e.g. to describe indexing
of a multidimensional object.

2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is
now more complex and contains optional finalization part and mandatory
deallocation part.

2012-07-23  Gary Dismukes  <dismukes@adacore.com>

* a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb,
a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress
Accessibility_Check for Element_Type allocators.

2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>

* projects.texi: Fix typo.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Explicit_Derenference): If prefix is
overloaded, remove those interpretations whose designated type
does not match the context, to avoid spurious ambiguities that
may be caused by the Ada 2012 conversion rule for anonymous
access types.

From-SVN: r189774

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 08:10:49 +0000 (10:10 +0200)]
[multiple changes]

2012-07-23  Vincent Celier  <celier@adacore.com>

* g-spitbo.adb (Substr (String)): Return full string and do not
raise exception when Start is 1 and Len is exactly the length
of the string parameter.
* g-spitbo.ads: Fix spelling error in the name of exception
Index_Error.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* par.adb: new subprogram Get_Aspect_Specifications.
* par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect
specifications.
* par-ch13.adb (Get_Aspect_Specifications): extracted from
P_Aspect_Specifications. Collect aspect specifications in some
legal context, but do not attach them to any declaration. Used
when parsing subprogram declarations or bodies that include
aspect specifications.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are
present, analyze them, or reject them if the subprogram as a
previous spec.

2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>

* gnat_ugn.texi: Omit section on other platforms/runtimes support
in gnattest for vms version.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications):
Handle properly aspects that can be specified on a subprogram
body: CPU, Priority, and Interrupt_Priority.

2012-07-23  Claire Dross  <dross@adacore.com>

* a-cfdlli.ads: Switch definition of Constant_Reference_Type
and Empty_List.

2012-07-23  Thomas Quinot  <quinot@adacore.com>

* par_sco.adb (Process_Decisions.Output_Header): For the guard
on an alternative in a SELECT statement, use the First_Sloc
of the guard expression (not its topmost sloc) as the decision
location, because this is what is referenced by dominance markers.

2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch7.adb (Requires_Hooking): Examine the original expression
of an object declaration node because a function call that
returns on the secondary stack may have been rewritten into
something else.

2012-07-23  Vincent Pucci  <pucci@adacore.com>

* sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate
dimension when entity is a non-dimensionless constant.
(Analyze_Dimension_Object_Declaration): Propagate
dimension from the expression to the entity when type is a
dimensioned type and object is a constant.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix
is not an entity name, expand at once so that code generated by
the expansion of the prefix is not generated before the constant
that captures the old value is properly inserted and analyzed.

2012-07-23  Thomas Quinot  <quinot@adacore.com>

* exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL
statement as Comes_From_Source so that GIGI does not eliminate it.

From-SVN: r189773

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 08:01:22 +0000 (10:01 +0200)]
[multiple changes]

2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
a local variable. Retrieve the related instance when processing
a subprogram instantiation. Such instances appear as wrapper
packages.

2012-07-23  Vincent Pucci  <pucci@adacore.com>

* system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
system-hpux.ads, system-linux-alpha.ads,
system-linux-hppa.ads, system-linux-ppc.ads,
system-linux-s390.ads, system-linux-s390x.ads,
system-linux-sh4.ads, system-linux-sparc.ads,
system-lynxos-ppc.ads, system-mingw.ads,
system-solaris-sparc.ads, system-solaris-sparcv9.ads,
system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
system-vxworks-mips.ads, system-vxworks-ppc.ads,
system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
* system-darwin-x86.ads, system-darwin-x86_64.ads,
system-freebsd-x86.ads, system-freebsd-x86_64.ads,
system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
system-linux-x86_64.ads, system-lynxos-x86.ads,
system-mingw-x86_64.ads, system-solaris-x86.ads,
system-solaris-x86_64.ads, system-vms-ia64.ads,
system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
* s-atopri.adb (Lock_Free_Read_X): New body.
(Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
(Lock_Free_Try_Write_64): New body.
* s-atopri.ads: New type uint.
(Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
import.
(Lock_Free_Read_X): Body moved to s-atopri.adb.
(Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
routines.
* targparm.adb: New enumeration literal SAP
(Support_Atomic_Primitives) for type Targparm_Tags. New constant
SAP_Str. New component SAP_Str'Access for array Targparm_Str.
(Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
flag.
* targparm.ads: New back-end code generation flag
Support_Atomic_Primitives_On_Target

2012-07-23  Vincent Pucci  <pucci@adacore.com>

* gnat_ugn.texi: Dimensionality checking documentation updated.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Make_Inline): If the pragma applies to a
subprogram renaming, set inline flags on both the renamed entity
and on the renaming, so that some ASIS queries can be handled
consistently in the absence of expansion.

From-SVN: r189772

12 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jul 2012 07:35:03 +0000 (09:35 +0200)]
[multiple changes]

2012-07-23  Fedor Rybin  <frybin@adacore.com>

* gnat_ugn.texi: Removing obsolete limitation of gnattest
to support only ada05. Updating gnattest support for other
platforms/run-times section to reflect the usage of taget
prefix in gnattest calls.  Fixing missed obsolete --stub-default
option name.

2012-07-23  Robert Dewar  <dewar@adacore.com>

* uintp.adb: Minor reformatting.

2012-07-23  Olivier Hainque  <hainque@adacore.com>

* system-vxworks-ppc.ads: Replace the default
Linker_Options requesting crtbe by a commented out request for
-nostartfiles.

2012-07-23  Vincent Celier  <celier@adacore.com>

* prj-nmsc.adb (Check_Naming): Do not get the exceptions names
in a virtual project.

From-SVN: r189771

12 years agolayout.adb, [...]: Minor reformatting.
Robert Dewar [Mon, 23 Jul 2012 07:31:47 +0000 (07:31 +0000)]
layout.adb, [...]: Minor reformatting.

2012-07-23  Robert Dewar  <dewar@adacore.com>

* layout.adb, sem_prag.adb, sem.ads, freeze.adb,
switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor
reformatting.

From-SVN: r189770