platform/upstream/linaro-gcc.git
11 years ago2012-08-17 Richard Guenther <rguenther@suse.de>
rguenth [Fri, 17 Aug 2012 07:53:05 +0000 (07:53 +0000)]
2012-08-17  Richard Guenther  <rguenther@suse.de>

* params.def (integer-share-limit): Decrease from 256 to 251,
add rationale.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190470 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-17 Richard Guenther <rguenther@suse.de>
rguenth [Fri, 17 Aug 2012 07:51:31 +0000 (07:51 +0000)]
2012-08-17  Richard Guenther  <rguenther@suse.de>

* tree-sra.c (modify_function): Free redirect_callers vector.
* ipa-split.c (split_function): Free args_to_pass vector.
* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
body_cost_vec properly.
(vect_enhance_data_refs_alignment): Likewise.
* tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
vec_oprnds.
(new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
* tree-vect-slp.c (vect_free_slp_instance): Free the instance.
(vect_analyze_slp_instance): Free everything.
(destroy_bb_vec_info): Free the SLP instances.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190469 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
iains [Fri, 17 Aug 2012 07:30:24 +0000 (07:30 +0000)]
* config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
to vec.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190468 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
jakub [Fri, 17 Aug 2012 07:17:56 +0000 (07:17 +0000)]
* doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
c/
* c-tree.h (c_last_sizeof_arg): Declare.
* c-parser.c (struct c_tree_loc_pair): New type.
(c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
non-NULL.
(c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
(c_parser_postfix_expression_after_primary): Likewise.  Call
sizeof_pointer_memaccess_warning if needed.
(sizeof_ptr_memacc_comptypes): New function.
* c-typeck.c (c_last_sizeof_arg): New global variable.
(c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
cp/
* cp-tree.def (SIZEOF_EXPR): Move to c-common.def.
c-family/
* c-common.c (sizeof_pointer_memaccess_warning): New function.
* c.opt (-Wsizeof-pointer-memaccess): Add new option.
* c-opts.c (c_common_handle_option): Enable it for -Wall.
* c-common.h (sizeof_pointer_memaccess_warning): Add prototype.
* c-common.def (SIZEOF_EXPR): Moved here from cp-tree.def.
fortran/
* array.c (gfc_match_array_ref): Fix up memset arguments.
testsuite/
* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190467 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after
dje [Fri, 17 Aug 2012 02:19:04 +0000 (02:19 +0000)]
    * config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after
        rs6000/t-slibgcc-aix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190465 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-16 Sandra Loosemore <sandra@codesourcery.com>
sandra [Fri, 17 Aug 2012 00:47:05 +0000 (00:47 +0000)]
2012-08-16  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
(mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
(mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
(mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
(mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190464 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR middle-end/54261
hp [Fri, 17 Aug 2012 00:18:35 +0000 (00:18 +0000)]
PR middle-end/54261
* optabs.c (expand_atomic_fetch_op): Save and restore code when
retrying after failed attempt.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190463 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Fri, 17 Aug 2012 00:18:22 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190462 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/54236
olegendo [Thu, 16 Aug 2012 23:19:45 +0000 (23:19 +0000)]
PR target/54236
* config/sh/sh.md (addc): Add commutative modifier.
(*addc, *minus_plus_one, *subc, *negc): New insns and splits.

PR target/54236
* gcc.target/sh/pr54236-1.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190459 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/39423
olegendo [Thu, 16 Aug 2012 23:16:53 +0000 (23:16 +0000)]
PR target/39423
* config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
potential T_REG clobber.  Convert zero extending split to
insn_and_split.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190458 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/54089
olegendo [Thu, 16 Aug 2012 23:13:11 +0000 (23:13 +0000)]
PR target/54089
* config/sh/sh.md (ashlsi3_d): Do not split if it would result
in a T_REG clobber.  Correct comment.
(ashlsi3_n): Correct comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190457 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * lib/target-supports.exp (check_effective_target_sync_int_long)
hp [Thu, 16 Aug 2012 22:42:09 +0000 (22:42 +0000)]
* lib/target-supports.exp (check_effective_target_sync_int_long)
(check_effective_target_sync_char_short): Enable for crisv32-*
and cris-*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190456 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR middle-end/54261
hp [Thu, 16 Aug 2012 22:05:32 +0000 (22:05 +0000)]
PR middle-end/54261
* gcc.dg/torture/pr54261-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190455 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR middle-end/54261
hp [Thu, 16 Aug 2012 22:03:33 +0000 (22:03 +0000)]
PR middle-end/54261
* optabs.c (expand_atomic_fetch_op): Save and restore code when
retrying after failed attempt.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190454 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-16 Yuri Rumyantsev <ysrumyan@gmail.com>
uros [Thu, 16 Aug 2012 19:58:11 +0000 (19:58 +0000)]
2012-08-16  Yuri Rumyantsev  <ysrumyan@gmail.com>

* config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
additional argument.
* config/i386/i386.md (ix86_split_lea_for_addr) : Add
additional argument curr_insn.
* config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
register first, depending on their defintion distances.
(ix86_lea_outperforms): Prefer LEA only if split cost exceeds
AGU stall.
(find_nearest_reg-def): New function. Find register with
nearest definition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190452 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd a stub header file "feedback.h," needed to compile glibc and
walt [Thu, 16 Aug 2012 19:54:59 +0000 (19:54 +0000)]
Add a stub header file "feedback.h," needed to compile glibc and
linux.
* config.gcc (tilegx-*-linux*): Add feedback.h.
(tilepro-*-linux*): Likewise.
* config/tilegx/feedback.h: New file.
* config/tilepro/feedback.h: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190451 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-16 Diego Novillo <dnovillo@google.com>
dnovillo [Thu, 16 Aug 2012 18:24:22 +0000 (18:24 +0000)]
2012-08-16   Diego Novillo  <dnovillo@google.com>

Revert

PR bootstrap/54281
* double-int.h: Move including of gmp.h ...
* system.h: ... here.
* realmpfr.h: Do not include gmp.h.
* tree-ssa-loop-niter.c: Do not include gmp.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190449 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-16 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 14:43:00 +0000 (14:43 +0000)]
2012-08-16  Segher Boessenkool  <segher@kernel.crashing.org>

       * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190446 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-16 Richard Guenther <rguenther@suse.de>
rguenth [Thu, 16 Aug 2012 14:27:51 +0000 (14:27 +0000)]
2012-08-16  Richard Guenther  <rguenther@suse.de>

PR middle-end/54146
* tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
exit vector.
* ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
* cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
* tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
* tree-into-ssa.c (get_ssa_name_ann): Allocate info only when
needed.
* tree-ssa-loop-im.c (analyze_memory_references): Adjust.
(tree_ssa_lim_finalize): Free all mem_refs.
* tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
scc when bailing out.
* modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
* ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
* graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
FOR_EACH_LOOP_BREAK.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190445 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-16 Diego Novillo <dnovillo@google.com>
dnovillo [Thu, 16 Aug 2012 13:28:13 +0000 (13:28 +0000)]
2012-08-16  Diego Novillo  <dnovillo@google.com>

PR bootstrap/54281
* double-int.h: Move including of gmp.h ...
* system.h: ... here.
* realmpfr.h: Do not include gmp.h.
* tree-ssa-loop-niter.c: Do not include gmp.h.

fortran/ChangeLog
* gfortran.h: Do not include gmp.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190444 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR middle-end/54146
steven [Thu, 16 Aug 2012 10:52:14 +0000 (10:52 +0000)]
PR middle-end/54146
* tree-flow.h (compute_global_livein): Remove prototype.
* tree-into-ssa.c (compute_global_livein): Remove function.
* tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
(find_sibling_superloop): New function.
(compute_live_loop_exits): New function.
(add_exit_phis_edge): Rename to add_exit_phi.  Do not allow
inserting a PHI in a block that is not a loop exit for VAR.
Add dumping if TDF_DETAILS.
(add_exit_phis_var): Rewrite.
(add_exit_phis): Update.
(get_loops_exits): Rewrite to return an array of per-loop exits
rather than one bitmap with all loop exits.
(find_uses_to_rename_bb): Ignore virtual PHI nodes.
(rewrite_into_loop_closed_ssa): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190442 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
nickc [Thu, 16 Aug 2012 10:41:44 +0000 (10:41 +0000)]
* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
before passing it to ASM_OUTPUT_LIMITED_STRING.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190441 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.
nickc [Thu, 16 Aug 2012 09:56:11 +0000 (09:56 +0000)]
* config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190440 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
nickc [Thu, 16 Aug 2012 09:49:21 +0000 (09:49 +0000)]
* config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
* config/avr/avr.c (avr_legitimize_reload_address): Add casts
for reload_type enums.
        (DEF_BUILTIN): Cast the icode to enum insn_code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190439 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoRevert unintended change from last commit
sandra [Thu, 16 Aug 2012 02:17:19 +0000 (02:17 +0000)]
Revert unintended change from last commit

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190437 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd missing ChangeLog entry for r190406
sandra [Thu, 16 Aug 2012 02:13:21 +0000 (02:13 +0000)]
Add missing ChangeLog entry for r190406

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190436 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 01:49:57 +0000 (01:49 +0000)]
2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

libgcc/
       * longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190434 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 01:36:47 +0000 (01:36 +0000)]
2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
        instead of -mppc.
        * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190433 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 01:34:27 +0000 (01:34 +0000)]
2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
* config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
(RS6000_CALL_GLUE): Adjust for single assembler syntax.
* config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE):
Ditto.
* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
* config/rs6000/darwin.md (whole file): Adjust to single
assembler syntax.
* config/rs6000/darwin64.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
* config/rs6000/dfp.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/eabi.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/rs6000-cpus.def (whole file): Delete
POWERPC_BASE_MASK.
* config/rs6000/rs6000-tables.opt: Regenerate.
* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
(num_insns_constant_wide): Adjust comments.
(whole file): Adjust to single assembler syntax.
(output_cbranch): Adjust comment.
* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
* config/rs6000/rs6000.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
(mold-mnemonics): Delete.
* config/rs6000/spe.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/sync.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
(ASM_OUTPUT_REG_PUSH): Adjust.
(ASM_OUTPUT_REG_POP): Adjust.
* config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* config/rs6000/vsx.md: (whole file): Adjust to single
assembler syntax.
* config/rs6000/vxworks.h (TARGET_DEFAULT): Delete
MASK_NEW_MNEMONICS.
* doc/invoke.texi: Adjust documentation to reflect the
removal of -mnew-mnemonics and -mold-mnemonics.

libgcc/
* longlong.h: (whole file, powerpc): Adjust to single assembler syntax.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190432 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 01:18:01 +0000 (01:18 +0000)]
2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
* common/config/rs6000/rs6000-common.c (rs6000_handle_option):
Delete handling for -mno-powerpc and -mpowerpc.
* config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
(ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
* config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
* config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
* config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
* config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
* config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
* config/rs6000/driver-rs6000.c (asm_names): Delete handling
for -mcpu=common and -mpowerpc.
* config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
Adjust.
(rs6000_cpu_cpp_builtins): Adjust.
* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
(rs6000_builtin_mask_calculate): Adjust.
(rs6000_emit_move): Delete code for ! TARGET_POWERPC.
(rs6000_init_libfuncs): Ditto.
(rs6000_output_function_prologue): Ditto.
(rs6000_opt_masks): Delete MASK_POWERPC.
(rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for
-mpowerpc.
(RS6000_BTM_POWERPC): Delete.
(RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
* config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
TARGET_POWERPC always on.
(extendqihi2 patterns): Similar.
(various unnamed subtract patterns): Similar.
(bswaphi2 patterns): Similar.
(divmodsi4): Similar.
(udiv<GPR:mode>3): Similar.
(div<GPR:mode>3 patterns): Similar.
(udivmodsi4): Similar.
(mulhcall): Delete.
(mullcall): Delete.
(divss_call): Delete.
(divus_call): Delete.
(quoss_call): Delete.
(quous_call): Delete.
(insvsi patterns): Adjust.
(addsf3 patterns): Adjust.
(subsf3 patterns): Adjust.
(mulsf3 patterns): Adjust.
(divsf3 patterns): Adjust.
(*fmasf4_fpr): Adjust.
(*fmssf4_fpr): Adjust.
(*nfmasf4_fpr): Adjust.
(*nfmssf4_fpr): Adjust.
(*floatunssidf2_internal): Adjust.
(fix_trunc<SFDF:mode>si2_internal): Adjust.
(fctiwz_<SFDF:mode>): Adjust.
(mulsidi3 patterns): Adjust.
(smulsi3_highpart patterns): Adjust.
(umulsi3_highpart patterns): Adjust.
(fix_trunctfsi2 patterns): Adjust.
(prefetch): Adjust.
* config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
(mno-powerpc): Delete.
* config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
(store_conditional<ATOMIC:mode>): Adjust.
(atomic_compare_and_swap<ATOMIC:mode>): Adjust.
(atomic_exchange<ATOMIC:mode>): Adjust.
(atomic_<fetchop_name><ATOMIC:mode>): Adjust.
(atomic_nand<ATOMIC:mode>): Adjust.
(atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
(atomic_fetch_nand<ATOMIC:mode>): Adjust.
(atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
(atomic_nand_fetch<ATOMIC:mode>): Adjust.
* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
* config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
* config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
* doc/invoke.texi: Adjust documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190430 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 01:01:30 +0000 (01:01 +0000)]
2012-08-15  Segher Boessenkool <segher@kernel.crashing.org>

gcc/
        * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190429 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 01:00:05 +0000 (01:00 +0000)]
2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
        * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
        * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
        * config/rs6000/driver-rs6000.c (asm_names): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190428 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
segher [Thu, 16 Aug 2012 00:57:37 +0000 (00:57 +0000)]
2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/
        PR target/54142
        * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
        instead of -mcom.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190427 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Thu, 16 Aug 2012 00:18:24 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190426 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Sandra Loosemore <sandra@codesourcery.com>
sandra [Wed, 15 Aug 2012 23:56:52 +0000 (23:56 +0000)]
2012-08-15  Sandra Loosemore  <sandra@codesourcery.com>
    Maxim Kuvyrkov  <maxim@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    MIPS Technologies, Inc.

gcc/
* config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
(dspalusat): Add insn types.
* config/mips/mips-dsp.md (add<DSPV:mode>3)
(mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
(sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
(mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
(mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
(mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
(mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
(mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
(mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
(mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
(mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
(mips_repl_qb, mips_repl_ph)
(mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
(mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
(mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
(mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
(mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
(mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
(mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
(mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
dspmac.
(mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
dspmacsat.
(mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
Set type to accext.
(mips_shilo, mips_mthlip): Set type to accmod.
* config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
(mips_adduh_r_qb): Set type to dspalusat.
(mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
(mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
(mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
(mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
(mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
(mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
(mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
(mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
(mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
dspmac.  Set accum_in attribute.
(mips_subu_s_ph): Set type to dspalusat.
(mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
Set accum_in attribute.
* config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
* config/mips/mips.c (dspalu_bypass_table): New.
(mips_dspalu_bypass_p): New.
* config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
(r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
(r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
(r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
* config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
(r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
reservations.
(r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
(r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190423 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/spu/spu.c: Include "cfgloop.h".
uweigand [Wed, 15 Aug 2012 22:15:44 +0000 (22:15 +0000)]
* config/spu/spu.c: Include "cfgloop.h".
(spu_machine_dependent_reorg): Call loop_optimizer_init and
loop_optimizer_finalize.  Use bb_loop_depth instead of loop_depth.
Directly compare loop_father values where appropriate.
* config/spu/t-spu-elf (spu.o): Update dependencies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190421 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Janus Weil <janus@gcc.gnu.org>
janus [Wed, 15 Aug 2012 22:11:03 +0000 (22:11 +0000)]
2012-08-15  Janus Weil  <janus@gcc.gnu.org>

PR fortran/54243
PR fortran/54244
* resolve.c (check_typebound_baseobject): Check for class_ok attribute.
(resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
attribute.

2012-08-15  Janus Weil  <janus@gcc.gnu.org>

PR fortran/54243
PR fortran/54244
* gfortran.dg/typebound_call_24.f03: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190420 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd missing entry for merge from cxx-conversion branch.
ebotcazou [Wed, 15 Aug 2012 20:56:21 +0000 (20:56 +0000)]
Add missing entry for merge from cxx-conversion branch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190419 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * testsuite/libstdc++-prettyprinters/cxx11.cc (struct datum):
tromey [Wed, 15 Aug 2012 18:37:30 +0000 (18:37 +0000)]
* testsuite/libstdc++-prettyprinters/cxx11.cc (struct datum):
New.
(global): New global.
(main): Add test for unique_ptr.
* python/libstdcxx/v6/printers.py
(UniquePointerPrinter.to_string): Extract the pointer and also
print its type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190417 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd $(TARGET_H) dependency to tree-cfg.o
hjl [Wed, 15 Aug 2012 16:59:04 +0000 (16:59 +0000)]
Add $(TARGET_H) dependency to tree-cfg.o

* Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190416 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agogcc:
wschmidt [Wed, 15 Aug 2012 13:27:29 +0000 (13:27 +0000)]
gcc:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54245
* gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
(legal_cast_p): Split out logic to legal_cast_p_1.
(analyze_increments): Avoid introducing multiplies in smaller types.

gcc/testsuite:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54245
* gcc.dg/tree-ssa/pr54245.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190412 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agogcc:
wschmidt [Wed, 15 Aug 2012 13:17:42 +0000 (13:17 +0000)]
gcc:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54240
* tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
existence of conditional move with given mode.

gcc/testsuite:

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/54240
* gcc.target/powerpc/pr54240.c: New test.
* gcc.target/mips/pr54240.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190411 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-15 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 15 Aug 2012 11:39:52 +0000 (11:39 +0000)]
2012-08-15  Richard Guenther  <rguenther@suse.de>

* double-int.h (double_int::from_unsigned): Rename to ...
(double_int::from_uhwi): ... this.
(double_int::from_signed): Rename to ...
(double_int::from_shwi): ... this.
(double_int::to_signed): Rename to ...
(double_int::to_shwi): ... this.
(double_int::to_unsigned): Rename to ...
(double_int::to_uhwi): ... this.
(double_int::fits_unsigned): Rename to ...
(double_int::fits_uhwi): ... this.
(double_int::fits_signed): Rename to ...
(double_int::fits_shwi): ... this.
(double_int::fits): Rename to ...
(double_int::fits_hwi): ... this.
* double-int.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190410 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
steven [Wed, 15 Aug 2012 08:47:13 +0000 (08:47 +0000)]
* timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
(TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
* timevar.c (timevar_print): Make printing width of timevar names
more flexible, but enforce maximum length.
* ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
(pass_ipa_inline): Use TV_IPA_INLINING.
* ipa-inline-analysis.c (pass_inline_parameters): Use
TV_INLINE_HEURISTICS.
* tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
(pass_tree_loop_done): Likewise.
* final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
* loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
(loop_optimizer_finalize): Push/pop TV_LOOP_FINI.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190409 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoCanonicalize operand to vaba and vabal.
ramana [Wed, 15 Aug 2012 08:39:48 +0000 (08:39 +0000)]
Canonicalize operand to vaba and vabal.

2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize
operands.
(neon_vabal<mode> VDQIW): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190408 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoFix PR target/54212
ramana [Wed, 15 Aug 2012 07:56:41 +0000 (07:56 +0000)]
Fix PR target/54212

2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

PR target/54212
* config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
mark as predicable. Adjust asm template.
(vec_setv2di_internal): Likewise.
(vec_extract<mode> VD, VQ): Likewise.
(vec_extractv2di): Likewise.
(neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
(neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
(neon_vdup_n<mode> VX, V32): Likewise.
(neon_vdup_nv2di): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190407 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/mips/mips.md (define_attr accum_in): New instruction attribute.
mkuvyrkov [Wed, 15 Aug 2012 05:56:08 +0000 (05:56 +0000)]
* config/mips/mips.md (define_attr accum_in): New instruction attribute.
Set it for imadd and fmadd patterns.
* config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
accumulator register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190406 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agocompiler: Adjust for GCC always being built with C++.
ian [Wed, 15 Aug 2012 03:47:05 +0000 (03:47 +0000)]
compiler: Adjust for GCC always being built with C++.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190405 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd an xfail manifest for x86_64-unknown-linux-gnu to trunk.
dnovillo [Wed, 15 Aug 2012 02:25:19 +0000 (02:25 +0000)]
Add an xfail manifest for x86_64-unknown-linux-gnu to trunk.

This patch adds an xfail manifest for trunk for x86_64 builds. I find
this useful to determine whether my patch has introduced new failures.
The failures in these manifest are always present in trunk and
deciding what to ignore is not very straightforward.

I will keep maintaining this manifest out of clean builds. They are
not hard to maintain. Manifest files can be generated by going to the
top of the build directory and typing:

$ cd <top-of-bld-dir>
$ <path-to-src>/contrib/testsuite-management --produce_manifest

This will generate a .xfail file with the triple name of the target
you just built.  Once this file exist you can run the validator again
on the build directory with no arguments.  It should produce the
output:

$ cd <top-of-bld-dir>
$ <path-to-src>/contrib/testsuite-management/validate_failures.py
Source directory: <path-to-src>
Build target:     x86_64-unknown-linux-gnu
Manifest:         <path-to-src>/contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
Getting actual results from build
        ./x86_64-unknown-linux-gnu/libstdc++-v3/testsuite/libstdc++.sum
        ./x86_64-unknown-linux-gnu/libffi/testsuite/libffi.sum
        ./x86_64-unknown-linux-gnu/libgomp/testsuite/libgomp.sum
        ./x86_64-unknown-linux-gnu/libgo/libgo.sum
        ./x86_64-unknown-linux-gnu/boehm-gc/testsuite/boehm-gc.sum
        ./x86_64-unknown-linux-gnu/libatomic/testsuite/libatomic.sum
        ./x86_64-unknown-linux-gnu/libmudflap/testsuite/libmudflap.sum
        ./x86_64-unknown-linux-gnu/libitm/testsuite/libitm.sum
        ./x86_64-unknown-linux-gnu/libjava/testsuite/libjava.sum
        ./gcc/testsuite/g++/g++.sum
        ./gcc/testsuite/gnat/gnat.sum
        ./gcc/testsuite/ada/acats/acats.sum
        ./gcc/testsuite/gcc/gcc.sum
        ./gcc/testsuite/gfortran/gfortran.sum
        ./gcc/testsuite/obj-c++/obj-c++.sum
        ./gcc/testsuite/go/go.sum
        ./gcc/testsuite/objc/objc.sum

SUCCESS: No unexpected failures.

If the output shows new failures, you investigate them. If they are
not yours, you can add them to the xfail manifest (after reporting
them) and then commit the modified .xfail file.

Long term, I would like to have this script pull manifest files from
postings made to gcc-testresults. This way, we won't have to maintain
these .xfail files manually. In branches this is not a big problem,
but in trunk it may be a tad annoying.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190404 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoMerge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
dnovillo [Wed, 15 Aug 2012 01:56:07 +0000 (01:56 +0000)]
Merge from cxx-conversion branch (gcc.gnu.org/wiki/cxx-conversion).

As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
changes the default bootstrap process so that stage 1 always builds with a C++
compiler.

Other than the bootstrap change, the patch makes no functional changes to the
compiler.  Everything should build as it does now in trunk.  The main
changes in this patch are:

1- Configuration changes.
2- Re-write of VEC.
3- Re-write of gengtype to support C++ templates and
   user-provided marking functions.
4- New hash table class.
5- Re-write double_int.
6- Implement tree macros as inline functions so they can be
   called from gdb.

As discussed before, several of these changes do not fully change
the call sites to use the new APIs.

The bootstrap changes have already been tested on a wide range of
targets (http://gcc.gnu.org/wiki/CppBuildStatus).  Additionally,
I have tested the merged trunk on: x86_64-unknown-linux-gnu,
mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
i686-pc-linux-gnu, and ia64-unknown-linux-gnu.

ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.

* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
POSTSTAGE1_CONFIGURE_FLAGS.
* Makefile.in: Regenerate.
* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
Force C++ when bootstrapping.
* configure: Regenerate.

libcpp/ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Configury.

* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure.ac: Likewise.
* configure: Regenerate.

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge from cxx-conversion branch.  New C++ hash table.

* include/symtab.h (typedef struct ht hash_table): Change the typedef
name to cpp_hash_table.  Update all users of the typedef.

gcc/ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Configury.

* configure.ac (CXX_FOR_BUILD): Define and substitute.
(BUILD_CXXFLAGS): Define.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
Force all build to be with C++.
* Makefile.in (BUILD_CXXFLAGS): Use it.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure: Regenerate.
* config.in: Regenerate.
* doc/install.texi: Remove documentation for --enable-build-with-cxx
and --enable-build-poststage1-with-cxx.

2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Re-implement VEC in C++.

* vec.c (vec_heap_free): Convert into a template function.
(vec_gc_o_reserve_1): Make extern.
(vec_gc_p_reserve): Remove.
(vec_gc_p_reserve_exact): Remove.
(vec_gc_o_reserve): Remove.
(vec_gc_o_reserve_exact): Remove.
(vec_heap_o_reserve_1): Make extern.
(vec_heap_p_reserve): Remove.
(vec_heap_p_reserve_exact): Remove.
(vec_heap_o_reserve): Remove.
(vec_heap_o_reserve_exact): Remove.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
in the file.
(VEC): Define to vec_t<T>.
(vec_allocation_t): Define.
(struct vec_prefix): Move earlier in the file.
(vec_t<T>): New template.
(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
(DEF_VEC_A): Provide template instantiations for
GC/PCH markers that do not traverse the vector.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(vec_stack_free): Re-write as a template function.
(vec_reserve): New template function.
(vec_reserve_exact): New template function.
(vec_heap_free): New template function if GATHER_STATISTICS is
defined.  Otherwise, macro that expands to free().
(VEC_length_1): New template function.
(VEC_length): Call it.
(VEC_empty_1): New template function.
(VEC_empty): Call it.
(VEC_address_1): New template function.
(VEC_address): Call it.
(VEC_last_1): New template function.
(VEC_last): Call it.  Change return type to T&.
Change all users that used VEC_Os.
(VEC_index_1): New template function.
(VEC_index): Call it.  Return a T& instead of a T*.
Update all callers that were using VEC_O before.
(VEC_iterate_1): New template function.
(VEC_iterate): Call it.
(VEC_embedded_size_1): New template function.
(VEC_embedded_size): Call it.
(VEC_embedded_init_1): New template function.
(VEC_embedded_init): Call it.
(VEC_alloc_1): New template function.
(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
do the allocation.
(VEC_free_1): New template function.
(VEC_free): Call it.
(VEC_copy_1): New template function.
(VEC_copy): Call it.
(VEC_space_1): New template function
(VEC_space): Call it.
(VEC_reserve_1): New template function.
(VEC_reserve): Call it.
(VEC_reserve_exact_1): New template function.
(VEC_reserve_exact): Call it.
(VEC_splice_1): New template function.
(VEC_splice): Call it.
(VEC_safe_splice_1): New template function.
(VEC_safe_splice): Call it.
(VEC_quick_push_1): New template function.  Create two overloads, one
accepting T, the other accepting T *.  Update all callers
where T and T * are ambiguous.
(VEC_quick_push): Call it.
(VEC_safe_push_1): New template function. Create two overloads, one
accepting T, the other accepting T *.  Update all callers
where T and T * are ambiguous.
(VEC_safe_push): Call it.
(VEC_pop_1): New template function.
(VEC_pop): Call it.
(VEC_truncate_1): New template function.
(VEC_truncate): Call it.
(VEC_safe_grow_1): New template function.
(VEC_safe_grow): Call it.
(VEC_safe_grow_cleared_1): New template function.
(VEC_safe_grow_cleared): Call it.
(VEC_replace_1): New template function.
(VEC_replace): Call it.  Always accept T instead of T*.
Update all callers that used VEC_Os.
(VEC_quick_insert_1): New template function.
(VEC_quick_insert): Call it.
(VEC_safe_insert_1): New template function.
(VEC_safe_insert): Call it.
(VEC_ordered_remove_1): New template function.
(VEC_ordered_remove): Call it.
(VEC_unordered_remove_1): New template function.
(VEC_unordered_remove): Call it.
(VEC_block_remove_1): New template function.
(VEC_block_remove): Call it.
(VEC_lower_bound_1): New template function.
(VEC_lower_bound): Call it.
(VEC_OP): Remove.
(DEF_VEC_FUNC_P): Remove.
(DEF_VEC_ALLOC_FUNC_P): Remove.
(DEF_VEC_NONALLOC_FUNCS_P): Remove.
(DEF_VEC_FUNC_O): Remove.
(DEF_VEC_ALLOC_FUNC_O): Remove.
(DEF_VEC_NONALLOC_FUNCS_O): Remove.
(DEF_VEC_ALLOC_FUNC_I): Remove.
(DEF_VEC_NONALLOC_FUNCS_I): Remove.
(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
(vec_reserve_exact): New template function.

* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
(def_vec_alloc): Remove.  Update all callers.
* gengtype.c (filter_type_name): New.
(output_mangled_typename): Call it.
(write_func_for_structure): Likewise.
(write_types): Likewise.
(write_root): Likewise.
(write_typed_alloc_def): Likewise.
(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
(note_def_vec_alloc): Remove.
* gengtype.h (note_def_vec_alloc): Remove.
(DEFVEC_ALLOC): Remove token code.

* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
inside the insn traversal loop.
* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.

* config/bfin/bfin.c (hwloop_optimize): Update some calls to
VEC_* for vectors of non-pointers.
* config/c6x/c6x.c (try_rename_operands): Likewise.
(reshuffle_units): Likewise.
* config/mips/mips.c (mips_multi_start): Likewise.
(mips_multi_add): Likewise.
(mips_multi_copy_insn): Likewise.
(mips_multi_set_operand): Likewise.
* hw-doloop.c (discover_loop): Likewise.
(discover_loops): Likewise.
(reorg_loops): Likewise.

2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  C++ support in gengtype.

* coretypes.h (gt_pointer_operator): Move from ...
* ggc.h: ... here.
* doc/gty.texi: Document support for C++ templates and
user-provided markers.
* gcc/gengtype-lex.l: Update copyright year.
Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
DEFVEC_I.
* gengtype-parse.c: Update copyright year.
(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
(require_template_declaration): New.
(typedef_name): Call it.
(type): Replace IS_UNION with KIND. Replace all users.
(def_vec): Remove.  Update all users.
* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
(write_state_user_struct_type): New.
(write_state_type): Call it.
(read_state_user_struct_type): New.
(read_state_type): Call it.
* gengtype.c: Update copyright year.
(dump_pair): Move declaration to the top.
(dump_type): Likewise.
(dump_type_list): Likewise.
(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
(create_user_defined_type): New.
(resolve_typedef): Call it.
(new_structure): Replace argument ISUNION with KIND.
Change users to refer to KIND directly.
Update all callers.
(find_structure): Likewise.
(set_gc_used_type): Handle TYPE_USER_STRUCT.
(create_file): Update HDR to include new copyright year.
(struct walk_type_data): Add field IN_PTR_FIELD.
(output_mangled_typename): Handle TYPE_USER_STRUCT.
(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
Clear it afterwards.
Handle TYPE_USER_STRUCT.
(write_types_process_field): Handle TYPE_USER_STRUCT.
(get_type_specifier): Move earlier in the file.
(write_type_decl): New.
(write_marker_function_name): New.
(write_user_func_for_structure_ptr): New.
(write_user_func_for_structure_body): New.
(write_user_marking_functions): New.
(write_func_for_structure): Call write_marker_function_name
and write_type_decl.
Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
function directly.
Call write_user_marking_functions on TYPE_USER_STRUCTs.
(write_types_local_user_process_field): New.
(write_pch_user_walking_for_structure_body): New.
(write_pch_user_walking_functions): New.
(write_types_local_process_field): Handle TYPE_USER_STRUCT.
(write_local_func_for_structure): Do not call walk_type for
TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
(write_root): Handle TYPE_USER_STRUCT.
(vec_prefix_type): Remove.  Update all users.
(note_def_vec): Remove.  Update all users.
(dump_typekind): Handle TYPE_USER_STRUCT.
(dump_type): Initialize SEEN_TYPES, if needed.
Handle TYPE_USER_STRUCT.
(dump_everything): Do not initialize SEEN_TYPES.
* gengtype.h: Update copyright year.
(enum typekind): Add TYPE_USER_STRUCT.
(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
Convert into function.
Add an overload taking const_type_p.
Update all callers.
(new_structure): Change second field to type enum typekind.
Update all users.
(find_structure): Likewise.
(note_def_vec): Remove.
(DEFVEC_OP): Remove.
(DEFVEC_I): Remove.
* ggc-page.c (gt_ggc_mx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
* ggc-zone.c (gt_ggc_mx): Add entry points for marking
'const char *&' and 'unsigned char *&'.
* stringpool.c (gt_pch_nx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
Add an entry point for the overload taking arguments 'unsigned char
*', 'gt_pointer_operator' and 'void *'.
* vec.h (struct vec_prefix): Remove GTY marker.
(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
(gt_ggc_mx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
function.
(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
function.

* basic-block.h (struct edge_def): Mark GTY((user)).
Remove all GTY markers from fields.
(gt_ggc_mx): Declare.
(gt_pch_nx): Declare.
* tree-cfg.c (gt_ggc_mx): New.
(gt_pch_nx): New.

* gengtype-lex.l (USER_GTY): Add pattern for "user".
* gengtype-parse.c (option): Handle USER_GTY.
(opts_have): New.
(type): Call it.
If the keyword 'user' is used, do not walk the fields
of the structure.
* gengtype.h (USER_GTY): Add.
* doc/gty.texi: Update.

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge cxx-conversion branch.  Implement C++ hash table.

* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
* hash-table.c: Likewise.
* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
(static htab_t same_succ_htab): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(same_succ_print_traverse): Make extern ssa_.... Change callers.
Remove void* casting.
(same_succ_hash): Likewise.
(same_succ_equal): Likewise.
(same_succ_delete): Likewise.
* tree-ssa-threadupdate.c: Include hash-table.h.
(struct local_info): Rename to ssa_local_info_t to avoid overloading
the type name local_info with the variable name local_info.
(static htab_t redirection_data): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(redirection_data_hash): Make extern ssa_.... Change callers.
Remove void* casting.
(redirection_data_eq): Likewise.
(fix_duplicate_block_edges): Likewise.
(create_duplicates): Likewise.
(fixup_template_block): Likewise.
(redirect_edges): Likewise.
(lookup_redirection_data): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
* tree-ssa-ccp.c: Include hash-table.h.
(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
of htab_t with gimple_htab.  Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
(hash_ssa_name_by_var): Make extern. Remove void* casting.
(eq_ssa_name_by_var): Likewise.
(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
to hash_table. Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* coverage.c: Include hash-table.h instead of hashtab.h.
(static htab_t counts_hash): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
of htab_... Remove void* casting.
(htab_counts_entry_eq): Likewise.
(htab_counts_entry_del): Likewise.
* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
(static htab_t expression_to_id): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(static htab_t phi_translate_table): Likewise.
(pre_expr_eq): Make extern ssa_.... Change callers.
Remove void* casting.
(pre_expr_hash): Likewise.
(expr_pred_trans_hash): Likewise.
(expr_pred_trans_eq): Likewise.
(alloc_expression_id): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
(lookup_expression_id): Likewise.
(phi_trans_lookup): Likewise.
(phi_trans_add): Likewise.
* stringpool.c: Rename uses of libcpp typedef hash_table to
cpp_hash_table.
* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge from cxx-conversion branch.  Re-write double_int in C++.

* hash-table.h
(typedef double_int): Change to struct (POD).
(double_int::make): New overloads for int to double-int conversion.
(double_int::mask): New.
(double_int::max_value): New.
(double_int::min_value): New.
(double_int::operator ++): New.
(double_int::operator --): New.
(double_int::operator *=): New.
(double_int::operator +=): New.
(double_int::operator -=): New.
(double_int::to_signed): New.
(double_int::to_unsigned): New.
(double_int::fits_unsigned): New.
(double_int::fits_signed): New.
(double_int::fits): New.
(double_int::trailing_zeros): New.
(double_int::popcount): New.
(double_int::multiple_of): New.
(double_int::set_bit): New.
(double_int::mul_with_sign): New.
(double_int::operator * (binary)): New.
(double_int::operator + (binary)): New.
(double_int::operator - (binary)): New.
(double_int::operator - (unary)): New.
(double_int::operator ~ (unary)): New.
(double_int::operator & (binary)): New.
(double_int::operator | (binary)): New.
(double_int::operator ^ (binary)): New.
(double_int::and_not): New.
(double_int::lshift): New.
(double_int::rshift): New.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::lrotate): New.
(double_int::rrotate): New.
(double_int::div): New.
(double_int::sdiv): New.
(double_int::udiv): New.
(double_int::mod): New.
(double_int::smod): New.
(double_int::umod): New.
(double_int::divmod): New.
(double_int::sdivmod): New.
(double_int::udivmod): New.
(double_int::ext): New.
(double_int::zext): New.
(double_int::sext): New.
(double_int::is_zero): New.
(double_int::is_one): New.
(double_int::is_minus_one): New.
(double_int::is_negative): New.
(double_int::cmp): New.
(double_int::ucmp): New.
(double_int::scmp): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int::max): New.
(double_int::smax): New.
(double_int::umax): New.
(double_int::min): New.
(double_int::smin): New.
(double_int::umin): New.
(double_int::operator ==): New.
(double_int::operator !=): New.
(shwi_to_double_int): Change implementation to use member function.
(double_int_minus_one): Likewise.
(double_int_zero): Likewise.
(double_int_one): Likewise.
(double_int_two): Likewise.
(double_int_ten): Likewise.
(uhwi_to_double_int): Likewise.
(double_int_to_shwi): Likewise.
(double_int_to_uhwi): Likewise.
(double_int_fits_in_uhwi_p): Likewise.
(double_int_fits_in_shwi_p): Likewise.
(double_int_fits_in_hwi_p): Likewise.
(double_int_mul): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_setbit): Likewise.
(double_int_ctz): Likewise.
(double_int_not): Likewise.
(double_int_ior): Likewise.
(double_int_and): Likewise.
(double_int_and_not): Likewise.
(double_int_xor): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_scmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_ext): Likewise.
(double_int_sext): Likewise.
(double_int_zext): Likewise.
(double_int_mask): Likewise.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_zero_p): Likewise.
(double_int_one_p): Likewise.
(double_int_minus_one_p): Likewise.
(double_int_equal_p): Likewise.
(double_int_popcount): Likewise.
* hash-table.c
(double_int_mask): Reuse implementation for double_int::mask.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_ext): Likewise.
(double_int_zext): Likewise.
(double_int_sext): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_scmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int_setbit): Reuse implementation for double_int::set_bit,
which avoids a name conflict with a macro.
(double_int_double_int_ctz): Reuse implementation for
double_int::trailing_zeros.
(double_int_fits_in_shwi_p): Reuse implementation for
double_int::fits_signed.
(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
(double_int_mul): Reuse implementation for binary
double_int::operator *.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Reuse implementation for unary
double_int::operator -.
(double_int_max_value): Likewise.
* fixed-value.c: Change to use member functions introduced above.

2012-08-14   Lawrence Crowl  <crowl@google.com>

Merge cxx-conversion branch.  Support tree macro calling
from gdb.

* tree.h (tree_check): New.
(TREE_CHECK): Use inline function above instead of __extension__.
(tree_not_check): New.
(TREE_NOT_CHECK): Use inline function above instead of __extension__.
(tree_check2): New.
(TREE_CHECK2): Use inline function above instead of __extension__.
(tree_not_check2): New.
(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
(tree_check3): New.
(TREE_CHECK3): Use inline function above instead of __extension__.
(tree_not_check3): New.
(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
(tree_check4): New.
(TREE_CHECK4): Use inline function above instead of __extension__.
(tree_not_check4): New.
(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
(tree_check5): New.
(TREE_CHECK5): Use inline function above instead of __extension__.
(tree_not_check5): New.
(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
(contains_struct_check): New.
(CONTAINS_STRUCT_CHECK): Use inline function above instead of
__extension__.
(tree_class_check): New.
(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
(tree_range_check): New.
(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
(omp_clause_subcode_check): New.
(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
__extension__.
(omp_clause_range_check): New.
(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
__extension__.
(expr_check): New.
(EXPR_CHECK): Use inline function above instead of __extension__.
(non_type_check): New.
(NON_TYPE_CHECK): Use inline function above instead of __extension__.
(tree_vec_elt_check): New.
(TREE_VEC_ELT_CHECK): Use inline function above instead of
__extension__.
(omp_clause_elt_check): New.
(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check): New.
(TREE_OPERAND_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check_code): New.
(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
__extension__.
(TREE_CHAIN): Simplify implementation.
(TREE_TYPE): Simplify implementation.
(tree_operand_length): Move for compilation dependences.
* gdbinit.in: (macro define __FILE__): New.
(macro define __LINE__): New.
(skip "tree.h"): New.

gcc/cp/ChangeLog
2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Re-write VEC in C++.

* call.c (add_function_candidate): Remove const qualifier
from call to VEC_index.

2012-08-14   Diego Novillo  <dnovillo@google.com>

Merge from cxx-conversion branch.  Configury.

* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* go-gcc.cc: Likewise.
* go-system.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190402 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Wed, 15 Aug 2012 00:18:11 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190401 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.md (enabled): Add comment with explanation
uros [Tue, 14 Aug 2012 18:22:50 +0000 (18:22 +0000)]
* config/i386/i386.md (enabled): Add comment with explanation
why fma4 instructions are disabled for generic code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190397 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/52933
olegendo [Tue, 14 Aug 2012 17:59:03 +0000 (17:59 +0000)]
PR target/52933
* config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0,
*cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns.
* config/sh/sh.c (sh_rtx_costs): Handle div0s patterns.

PR target/52933
* gcc.target/sh/pr52933-1.c: New.
* gcc.target/sh/pr52933-2.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190396 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/50751
olegendo [Tue, 14 Aug 2012 17:54:28 +0000 (17:54 +0000)]
PR target/50751
* config/sh/constraints.md (Sra): New constraint.
* config/sh/predicates.md (simple_mem_operand,
displacement_mem_operand, zero_extend_movu_operand): New predicates.
(zero_extend_operand): Check zero_extend_movu_operand for SH2A.
* config/sh/sh.md (*zero_extendqisi2_disp_mem,
*zero_extendhisi2_disp_mem): Add new insns and two new related
peephole2 patterns.

PR target/50751
* gcc.target/sh/pr50751-8.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190395 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agofortran/
mikael [Tue, 14 Aug 2012 16:45:55 +0000 (16:45 +0000)]
fortran/
PR fortran/47586
* trans-expr.c (expr_is_variable): Handle regular, procedure pointer,
and typebound functions returning a data pointer.

testsuite/
PR fortran/47586
* gfortran.dg/typebound_proc_20.f90: Enable runtime test.
* gfortran.dg/typebound_proc_27.f03: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190394 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agofortran/
mikael [Tue, 14 Aug 2012 16:37:11 +0000 (16:37 +0000)]
fortran/
* decl.c (match_ppc_decl): Copy the procedure interface's symbol
as procedure interface's result.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190393 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agofortran/
mikael [Tue, 14 Aug 2012 16:35:09 +0000 (16:35 +0000)]
fortran/
* trans-expr.c (gfc_trans_scalar_assign): Rename argument,
extend comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190392 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agofortran/
mikael [Tue, 14 Aug 2012 16:28:29 +0000 (16:28 +0000)]
fortran/
* gfortran.h (gfc_get_proc_ptr_comp): New prototype.
(gfc_is_proc_ptr_comp): Update prototype.
* expr.c (gfc_get_proc_ptr_comp): New function based on the old
gfc_is_proc_ptr_comp.
(gfc_is_proc_ptr_comp): Call gfc_get_proc_ptr_comp.
(gfc_specification_expr, gfc_check_pointer_assign): Use
gfc_get_proc_ptr_comp.
* trans-array.c (gfc_walk_function_expr): Likewise.
* resolve.c (resolve_structure_cons, update_ppc_arglist,
resolve_ppc_call, resolve_expr_ppc): Likewise.
(resolve_function): Update call to gfc_is_proc_ptr_comp.
* dump-parse-tree.c (show_expr): Likewise.
* interface.c (compare_actual_formal): Likewise.
* match.c (gfc_match_pointer_assignment): Likewise.
* primary.c (gfc_match_varspec): Likewise.
* trans-io.c (gfc_trans_transfer): Likewise.
* trans-expr.c (gfc_conv_variable, conv_function_val,
conv_isocbinding_procedure, gfc_conv_procedure_call,
gfc_trans_pointer_assignment): Likewise.
(gfc_conv_procedure_call, gfc_trans_array_func_assign):
Use gfc_get_proc_ptr_comp.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190391 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * graphite-scop-detection.c (create_sese_edges): Compute dominance
steven [Tue, 14 Aug 2012 16:01:10 +0000 (16:01 +0000)]
* graphite-scop-detection.c (create_sese_edges): Compute dominance
info before trying to fix loop structure.
* cfgloopmanip.c (fix_loop_structure): Require fast DOM queries.
* tree-cfgcleanup.c (repair_loop_structures): Likewise.
* cfgloop.c (verify_loop_structure): Verify loop fathers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190390 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
steven [Tue, 14 Aug 2012 15:59:41 +0000 (15:59 +0000)]
* dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
(dom_convert_dir_to_idx, compute_dom_fast_query,
get_immediate_dominator, set_immediate_dominator, get_dominated_by,
redirect_immediate_dominators, nearest_common_dominator,
(dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator,
iterate_fix_dominators, add_to_dominance_info,
delete_from_dominance_info): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190389 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-13 Sterling Augustine <saugustine@google.com>
sterling [Tue, 14 Aug 2012 15:11:02 +0000 (15:11 +0000)]
2012-08-13  Sterling Augustine  <saugustine@google.com>

* g++.dg/debug/dwarf2/pubnames-2.C: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190388 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 14 Aug 2012 14:16:18 +0000 (14:16 +0000)]
2012-08-14  Richard Guenther  <rguenther@suse.de>

* cfgexpand.c (expand_used_vars): Use virtual_operand_p.
* gimple-pretty-print.c (dump_phi_nodes): Likewise.
* gimple-streamer-out.c (output_bb): Likewise.
* graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
(rewrite_reductions_out_of_ssa): Likewise.
(rewrite_commutative_reductions_out_of_ss): Likewise.
* ipa-split.c (verify_non_ssa_vars): Likewise.
(consider_split): Likewise.
(visit_bb): Likewise.
(split_function): Likewise.
* lto-streamer-out.c (output_ssa_names): Likewise.
* sese.c (rename_uses): Likewise.
* tree-cfg.c (replace_uses_by): Likewise.
(gimple_merge_blocks): Likewise.
(gimple_cfg2dot): Likewise.
(verify_gimple_phi): Likewise.
(replace_ssa_name): Likewise.
(move_block_to_fn): Likewise.
* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
* tree-if-conv.c (if_convertible_phi_p): Likewise.
(predicate_scalar_phi): Likewise.
* tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
(copy_phis_for_bb): Likewise.
* tree-loop-distribution.c (generate_loops_for_partition): Likewise.
(destroy_loop): Likewise.
* tree-outof-ssa.c (eliminate_useless_phis): Likewise.
(insert_backedge_copies): Likewise.
* tree-parloops.c (transform_to_exit_first_loop): Likewise.
(gather_scalar_reductions): Likewise.
(try_create_reduction_list): Likewise.
* tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
Likewise.
(scev_const_prop): Likewise.
* tree-ssa-ccp.c (debug_lattice_value): Likewise.
(get_default_value): Likewise.
(ccp_initialize): Likewise.
* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
* tree-ssa-copy.c (may_propagate_copy): Likewise.
(init_copy_prop): Likewise.
* tree-ssa-dce.c (propagate_necessity): Likewise.
(remove_dead_phis): Likewise.
(forward_edge_to_pdom): Likewise.
(eliminate_unnecessary_stmts): Likewise.
* tree-ssa-live.c (partition_view_init): Likewise.
(remove_unused_locals): Likewise.
(register_ssa_partition_check): Likewise.
* tree-ssa-loop-im.c (movement_possibility): Likewise.
(move_computations_stmt): Likewise.
* tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
(record_invariant): Likewise.
(find_interesting_uses_outside): Likewise.
(determine_set_costs): Likewise.
* tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
(find_uses_to_rename_use): Likewise.
(check_loop_closed_ssa_use): Likewise.
(rewrite_phi_with_iv): Likewise.
(canonicalize_loop_ivs): Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
* tree-ssa-pre.c (make_values_for_phi): Likewise.
(compute_avail): Likewise.
(eliminate): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
* tree-ssa-reassoc.c (phi_rank): Likewise.
* tree-ssa-strlen.c (strlen_enter_block): Likewise.
* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
(ipa_pta_execute): Likewise.
* tree-ssa-tail-merge.c (same_succ_hash): Likewise.
(release_last_vdef): Likewise.
(same_phi_alternatives_1): Likewise.
(bb_has_non_vop_phi): Likewise.
(vop_phi): Likewise.
* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
Likewise.
* tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
(execute_late_warn_uninitialized): Likewise.
* tree-ssa.c (verify_ssa_name): Likewise.
(verify_phi_args): Likewise.
(verify_ssa): Likewise.
* tree-stdarg.c (execute_optimize_stdarg): Likewise.
* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_can_advance_ivs_p): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
* tree-vrp.c (remove_range_assertions): Likewise.
* value-prof.c (gimple_divmod_values_to_profile): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190385 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 14 Aug 2012 12:38:32 +0000 (12:38 +0000)]
2012-08-14  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54146
* tree-ssa-pre.c (do_regular_insertion): Use a VEC
indexed by pred edge index for avail.
(do_partial_partial_insertion): Likewise.
(insert_into_preds_of_block): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190382 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 14 Aug 2012 11:22:23 +0000 (11:22 +0000)]
2012-08-14  Richard Guenther  <rguenther@suse.de>

* gimplify.c (create_tmp_from_val): Mark temporary with
DECL_GIMPLE_REG_P here ...
(internal_get_tmp_var): ... instead of here.  If we go into
SSA create an SSA name instead of a VAR_DECL.
(gimplify_modify_expr): Do not create SSA names here, assert
we already got them.
(force_gimple_operand_1): Create an SSA name if we go into SSA.
* sese.c (rename_uses): Simplify.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190381 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 14 Aug 2012 11:14:08 +0000 (11:14 +0000)]
2012-08-14  Richard Guenther  <rguenther@suse.de>

* tree-into-ssa.c: Include diagnostic-core.h.
* Makefile.in (tree-into-ssa.o): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190380 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Tobias Burnus <burnus@net-b.de>
burnus [Tue, 14 Aug 2012 10:26:11 +0000 (10:26 +0000)]
2012-08-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40881
        * error.c (gfc_notify_std): Reset cur_error_buffer->flag flag
        when the error/warning has been printed.
        * gfortran.h (gfc_sl_type): Add ST_LABEL_DO_TARGET.
        * match.c (gfc_match_do): Use ST_LABEL_DO_TARGET.
        * parse.c (check_statement_label): Use ST_LABEL_DO_TARGET.
        (parse_executable): Add obsolescence check for DATA.
        * resolve.c (resolve_branch): Handle ST_LABEL_DO_TARGET.
        * symbol.c (gfc_define_st_label, gfc_reference_st_label):
        Add obsolescence diagnostics.
        * trans-stmt.c (gfc_trans_label_assign): Handle
        * ST_LABEL_DO_TARGET.

2012-08-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40881
        * gfortran.dg/data_constraints_3.f90: New.
        * gfortran.dg/data_constraints_1.f90: Add dg-options ""
        to disable -pedantic compilation.
        * gfortran.dg/pr37243.f: Ditto.
        * gfortran.dg/g77/19990826-3.f: Ditto.
        * gfortran.dg/g77/20020307-1.f : Ditto.
        * gfortran.dg/g77/980310-3.f: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190379 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Tobias Burnus <burnus@net-b.de>
burnus [Tue, 14 Aug 2012 10:22:06 +0000 (10:22 +0000)]
2012-08-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54234
        * check.c (gfc_check_cmplx): Add -Wconversion warning
        when converting higher-precision REAL to default-precision
        CMPLX without kind= parameter.

2012-08-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54234
        * gfortran.dg/warn_conversion_4.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190378 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-14 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 14 Aug 2012 09:32:06 +0000 (09:32 +0000)]
2012-08-14  Richard Guenther  <rguenther@suse.de>

* tree-into-ssa.c (update_ssa): Verify we do not rename
symbols that are already partly in SSA form.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190377 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR middle-end/53411
jakub [Tue, 14 Aug 2012 07:43:09 +0000 (07:43 +0000)]
PR middle-end/53411
PR rtl-optimization/53495
* ira.c (ira): Move delete_trivially_dead_insns call before
find_moveable_pseudos call.

* gcc.c-torture/compile/pr53411.c: New test.
* gcc.c-torture/compile/pr53495.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190376 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Tue, 14 Aug 2012 00:17:42 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190372 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoFix patch merge error in previous commit.
steven [Mon, 13 Aug 2012 21:08:57 +0000 (21:08 +0000)]
Fix patch merge error in previous commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190360 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
steven [Mon, 13 Aug 2012 21:02:19 +0000 (21:02 +0000)]
* tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
of potentially huge memset overhead.
(do_partial_partial_insertion): Likewise.
* cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
* tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
for arrays to be filled by pre_and_rev_post_order_compute.  Allocate
the right number of slots, not that number plus NUM_FIXED_BLOCKS.
* tree-ssa-reassoc.c (init_reassoc): Likewise.
* cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
array used as stack.
* tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
arrays to be filled by pre_and_rev_post_order_compute.
* cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
array to be filled by dfs_enumerate_from.
(remove_path): Likewise.
(duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
array of loops that is filled on the next lines.
* cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
array of basic blocks to be returned.
(get_loop_body_in_dom_order): Likewise.
(get_loop_body_in_bfs_order): Likewise.
* tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
for all bitmaps used for rewriting into loop-closed SSA form.
(add_exit_phis_var): Allocate the def bitmap on it.  Clear the livein
bitmap at the end to release a lot of memory.
(add_exit_phis): Allocate the exits bitmap on the new obstack.
(get_loops_exits): Allocate the exits bitmap on the new obstack.
(find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
seen for the first time.
(find_uses_to_rename): Add "???" for why the whole function must
be re-scanned if changed_bbs is empty.
(rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
Use XNEWVEC to allocate the use_blocks array.  Initialize the new
obstack, and free it at the end.  Remove loop over all SSA names.
(check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
* tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
xcalloc to allocate edge_pred and edge_flag arrays.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190359 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-13 David Adler <d.adler.s@gmail.com>
redi [Mon, 13 Aug 2012 19:56:50 +0000 (19:56 +0000)]
2012-08-13  David Adler  <d.adler.s@gmail.com>

PR libstdc++/54185
* src/c++11/condition_variable.cc (condition_variable): Always
destroy native type in destructor.
* testsuite/30_threads/condition_variable/54185.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190356 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-10 François Dumont <fdumont@gcc.gnu.org>
fdumont [Mon, 13 Aug 2012 19:43:19 +0000 (19:43 +0000)]
2012-08-10  François Dumont  <fdumont@gcc.gnu.org>
    Ollie Wild  <aaw@google.com>

* include/bits/hashtable.h
(_Hashtable<>_M_insert_multi_node(hash_code, node_type*)): New.
(_Hashtable<>_M_insert(_Args&&, false_type)): Use latter.
(_Hashtable<>::_M_emplace(false_type, _Args&&...)): Likewise.
(_Hashtable<>::_M_insert_bucket): Replace by ...
(_Hashtable<>::_M_insert_unique_node(size_type, hash_code, node_type*)):
... this, new.
(_Hashtable<>::_M_insert(_Args&&, true_type)): Use latter.
(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
* include/bits/hashtable_policy.h (_Map_base<>::operator[]): Use
latter, emplace the value_type rather than insert.
* include/std/unordered_map: Include tuple.
* include/std/unordered_set: Likewise.
* testsuite/util/testsuite_counter_type.h: New.
* testsuite/23_containers/unordered_map/operators/2.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190355 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * testsuite-management/validate_failures.py (ExpirationDate): Tidy
dnovillo [Mon, 13 Aug 2012 19:36:03 +0000 (19:36 +0000)]
* testsuite-management/validate_failures.py (ExpirationDate): Tidy
comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190354 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * testsuite-management/validate_failures.py (ParseSummary): Fix
dnovillo [Mon, 13 Aug 2012 18:18:52 +0000 (18:18 +0000)]
* testsuite-management/validate_failures.py (ParseSummary): Fix
comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190352 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoImplement support for expiring expected results in validate_failures.py.
dnovillo [Mon, 13 Aug 2012 18:00:55 +0000 (18:00 +0000)]
Implement support for expiring expected results in validate_failures.py.

I noticed recently that while the validator was accepting the
'expire=YYYYMMDD' attribute, it was not actually doing anything with
it.

This patch fixes the oversight.

2012-08-13  Diego Novillo  <dnovillo@google.com>

* testsuite-management/validate_failures.py: Import datetime.
(TestResult.ExpirationDate): New.
(TestResult.HasExpired): New.
(ParseSummary): Call it.  If it returns True, warn that the
expected failure has expired and do not add it to the set of
expected results.
(GetResults): Clarify documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190351 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
uros [Mon, 13 Aug 2012 16:57:16 +0000 (16:57 +0000)]
* config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
(CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
for different ABIs.
(enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
(REG_CLASS_NAMES): Update.
(REG_CLASS_CONTENTS): Update.  Clear CLOBBERED_REGS members.
* config/i386/i386.c (ix86_conditional_register_usage): Disable
REX registers on 32bit targets.  Handle bitmaps from
CALL_USED_REGISTERS initializer.  Calculate CLOBBERED_REGS register
set from GENERAL_REGS also for 32bit targets.  Do not change call
used register set for TARGET_64BIT_MS_ABI separately.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190349 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-13 Richard Guenther <rguenther@suse.de>
rguenth [Mon, 13 Aug 2012 13:49:54 +0000 (13:49 +0000)]
2012-08-13  Richard Guenther  <rguenther@suse.de>

* basic-block.h (struct basic_block): Remove loop_depth
member, move flags and index members next to each other.
* cfgloop.h (bb_loop_depth): New inline function.
* cfghooks.c (split_block): Do not set loop_depth.
(duplicate_block): Likewise.
* cfgloop.c (flow_loop_nodes_find): Likewise.
(flow_loops_find): Likewise.
(add_bb_to_loop): Likewise.
(remove_bb_from_loops): Likewise.
* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
* gimple-streamer-in.c (input_bb): Do not stream loop_depth.
* gimple-streamer-out.c (output_bb): Likewise.
* bt-load.c: Include cfgloop.h.
(migrate_btr_defs): Use bb_loop_depth.
* cfg.c (dump_bb_info): Likewise.
* final.c (compute_alignments): Likewise.
* ira.c (update_equiv_regs): Likewise.
* tree-ssa-copy.c (init_copy_prop): Likewise.
* tree-ssa-dom.c (loop_depth_of_name): Likewise.
* tree-ssa-forwprop.c: Include cfgloop.h.
(forward_propagate_addr_expr): Use bb_loop_depth.
* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
* tree-ssa-sink.c (select_best_block): Likewise.
* ipa-inline-analysis.c: Include cfgloop.h.
(estimate_function_body_sizes): Use bb_loop_depth.
* Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
(ipa-inline-analysis.o): Likewise.
(bt-load.o): Likewise.

* gcc.dg/tree-prof/update-loopch.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190346 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR driver/54210
jakub [Mon, 13 Aug 2012 13:21:41 +0000 (13:21 +0000)]
PR driver/54210
* config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
* config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
0x80000001 %ecx flags.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190345 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-13 Richard Guenther <rguenther@suse.de>
rguenth [Mon, 13 Aug 2012 13:10:59 +0000 (13:10 +0000)]
2012-08-13  Richard Guenther  <rguenther@suse.de>

* tree-cfg.c (print_loop): Avoid ICEing for loops marked for
removal and loops with multiple latches.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190344 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR c/53968
jakub [Mon, 13 Aug 2012 12:39:54 +0000 (12:39 +0000)]
PR c/53968
* tree.c (integer_pow2p): Avoid undefined signed overflows.
* simplify-rtx.c (neg_const_int): Likewise.
* expr.c (fixup_args_size_notes): Likewise.
* stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
* double-int.c (mul_double_wide_with_sign): Likewise.
(double_int_mask): Likewise.
* tree-ssa-loop-ivopts.c (get_address_cost): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190342 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-13 Marc Glisse <marc.glisse@inria.fr>
glisse [Mon, 13 Aug 2012 11:55:00 +0000 (11:55 +0000)]
2012-08-13  Marc Glisse  <marc.glisse@inria.fr>

PR libstdc++/54112
* include/c_compatibility/complex.h: Undefine complex, always
include system's complex.h if present.
* testsuite/26_numerics/complex/c99.cc: New testcase.
* testsuite/17_intro/headers/c++1998/complex.cc: Likewise.
* doc/xml/manual/numerics.xml: Document it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190340 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-13 Richard Guenther <rguenther@suse.de>
rguenth [Mon, 13 Aug 2012 09:29:28 +0000 (09:29 +0000)]
2012-08-13  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54200
* tree-ssa-copyrename.c (rename_ssa_copies): Do not add
PHI results to another partition if not all PHI arguments
have the same partition.

* gcc.dg/guality/pr54200.c: New testcase.
* gcc.dg/tree-ssa/slsr-8.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190339 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * tree-pass.h (write_summary, write_optimization_summary): Remove
hubicka [Mon, 13 Aug 2012 02:37:51 +0000 (02:37 +0000)]
* tree-pass.h (write_summary, write_optimization_summary): Remove
set and vset arguments.
* ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
(write_node_summary_p): Likewise; use the encoder.
(ipa_reference_write_optimization_summary): Likewise.
* lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
(lto_symtab_encoder_new): Initialize in_partition field.
(lto_symtab_encoder_delete): Destroy in_partition field.
(LCC_NOT_FOUND): Move to lto-streamer.h
(lto_symtab_encoder_deref): Likewise.
(lto_symtab_encoder_in_partition_p,
lto_set_symtab_encoder_in_partition): New functions.
(referenced_from_other_partition_p): Rewrite to use encoder.
(reachable_from_other_partition_p): Likewise.
(referenced_from_this_partition_p): Likewise.
(reachable_from_this_partition_p): Likewise.
(lto_output_node): Likewise.
(lto_output_varpool_node): Likewise.
(output_refs): Likewise.
(compute_ltrans_boundary): Initialize in_partition fileds of
the encoder.
(output_symtab): Likewise.
(input_refs): Match the changes in output_refs.
(output_cgraph_opt_summary_p): Remove set argument.
(output_node_opt_summary): Replace set by encoder.
(output_cgraph_opt_summary): Remove set argument; use
the encoder.
* ipa-pure-const.c (pure_const_write_summary): Remove set and vset
arguments; use the encoder.
* lto-streamer-out.c (lto_output): Remove set and vset argument; use
the encoder.
(produce_symtab): Likewise.
* ipa-inline.h (inline_write_summary): Remove set and vset arguments.
* ipa-inline-analysis.c (inline_write_summary): Likewise.
* ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
use encoder.
* ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
* passes.c (ipa_write_summaries_2): Remove set and vset arguments.
(ipa_write_summaries_1): Update.
(ipa_write_optimization_summaries_1): Likewise.
(ipa_write_optimization_summaries): Likewise.
* lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
(lto_symtab_encoder_iterator): New type.
(lto_symtab_encoder_deref): Make inline.
(output_symtab, referenced_from_other_partition_p,
reachable_from_other_partition_p, referenced_from_this_partition_p,
reachable_from_this_partition_p): Update.
(lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node, lsei_varpool_node): New
inline functions.
(LCC_NOT_FOUND): New macro.
(lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
lsei_start_in_partition, lsei_next_function_in_partition,
lsei_start_function_in_partition, lsei_next_variable_in_partition,
lsei_start_variable_in_partition): New inline functions.

* lto-partition.c (set_referenced_from_other_partition_p,
set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
New functions.
(lto_promote_cross_file_statics): Use them.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190336 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Mon, 13 Aug 2012 00:17:27 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190335 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/sh/sh.md (prefetch): Simplify expander. Fix condition to
olegendo [Sun, 12 Aug 2012 22:50:51 +0000 (22:50 +0000)]
* config/sh/sh.md (prefetch): Simplify expander.  Fix condition to
allow SH3.
(*prefetch_media): Move insn below expander.
(*prefetch): Fix condition to allow SH3.

* gcc.target/sh/prefetch.c: Add -m3* to inclusion list.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190332 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/51244
olegendo [Sun, 12 Aug 2012 22:47:15 +0000 (22:47 +0000)]
PR target/51244
* config/sh/sh.md: Add splits for inverted compare and branch
opportunities.
(*cmpeqsi_t): New insn.
(cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
(cmpgeusi_t): Use satisfies_constraint_Z.  Emit sett insn in
replacement insn list and not in the preparation statements.
(clrt, sett): Add mt_group attribute.

PR target/51244
* gcc.target/sh/pr51244-7.c: New.
* gcc.target/sh/pr51244-8.c: New.
* gcc.target/sh/pr51244-9.c: New.
* gcc.target/sh/pr51244-10.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190331 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR libstdc++/52681
redi [Sun, 12 Aug 2012 18:57:53 +0000 (18:57 +0000)]
PR libstdc++/52681
* src/c++11/thread.cc (thread::_M_start_thread): Improve error text
when threads are not enabled.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190330 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-12 Marc Glisse <marc.glisse@inria.fr>
glisse [Sun, 12 Aug 2012 16:20:41 +0000 (16:20 +0000)]
2012-08-12 Marc Glisse <marc.glisse@inria.fr>

PR middle-end/54193
* gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190328 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * gcc.target/sh/pr50749-sf-postinc-1.c: Skip for -m3. Don't skip for
olegendo [Sun, 12 Aug 2012 14:22:07 +0000 (14:22 +0000)]
* gcc.target/sh/pr50749-sf-postinc-1.c: Skip for -m3.  Don't skip for
-m2e or -m2a.
* gcc.target/sh/pr50749-sf-postinc-3.c: Likewise.
* gcc.target/sh/pr53511-1.c: Likewise.
* gcc.target/sh/pr50749-sf-predec-1.c: Likewise.
* gcc.target/sh/pr50749-sf-predec-3.c: Likewise.
* gcc.target/sh/pr53512-1.c: Skip for -m3*.
* gcc.target/sh/pr53512-3.c: Likewise.
* gcc.target/sh/pr21255-3.c: Skip for single precision FPU targets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190327 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR target/39423
olegendo [Sun, 12 Aug 2012 13:23:20 +0000 (13:23 +0000)]
PR target/39423
* config/sh/predicates.md (mem_index_disp_operand): Check for
arith_reg_operand instead of REG_P.

PR target/39423
* gcc.c-torture/compile/pr39423-1.c: New.
* gcc.c-torture/compile/pr39423-2.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190326 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-12 Tobias Burnus <burnus@net-b.de>
burnus [Sun, 12 Aug 2012 09:52:33 +0000 (09:52 +0000)]
2012-08-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54221
        * trans-decl.c (gfc_finish_var_decl, build_function_decl):
        Fix setting private module vars/procs as TREE_PUBLIC(...) = 0.

2012-08-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54221
        * vect/vect-gems.f90: Don't mark module vars as PRIVATE as
        they appear uninitialized on the RHS.
        * gfortran.dg/public_private_module_6.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190325 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Sun, 12 Aug 2012 00:17:33 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190324 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * reload1.c (replaced_subreg, gen_reload): Add
bernds [Sat, 11 Aug 2012 16:53:09 +0000 (16:53 +0000)]
* reload1.c (replaced_subreg, gen_reload): Add
SECONDARY_MEMORY_NEEDED ifdefs as necessary.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190318 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * lto-section-in.c (lto_section_name): Do not use "symtab" as part of
hubicka [Sat, 11 Aug 2012 15:49:48 +0000 (15:49 +0000)]
* lto-section-in.c (lto_section_name): Do not use "symtab" as part of
symtab_node sectoin name; it confuses plugin.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190317 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
uros [Sat, 11 Aug 2012 14:45:15 +0000 (14:45 +0000)]
* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
in the va_list_vars bitmap by num_ssa_names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190316 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/sse.md (xop integer multiply/add insns): Use
uros [Sat, 11 Aug 2012 11:37:02 +0000 (11:37 +0000)]
* config/i386/sse.md (xop integer multiply/add insns): Use
register_operand for operand 3 predicate.
(xop_phadd<u>bq):  Fix vec_select selectors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190314 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2012-08-11 Martin Jambor <mjambor@suse.cz>
jamborm [Sat, 11 Aug 2012 10:50:24 +0000 (10:50 +0000)]
2012-08-11  Martin Jambor  <mjambor@suse.cz>

PR fortran/48636
* ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
* ipa-inline-analysis.c (agg_position_info): New type.
(add_condition): New parameter aggpos, also store agg_contents, by_ref
and offset.
(dump_condition): Also dump aggregate conditions.
(evaluate_conditions_for_known_args): Also handle aggregate
conditions.  New parameter known_aggs.
(evaluate_properties_for_edge): Gather known aggregate contents.
(inline_node_duplication_hook): Pass NULL known_aggs to
evaluate_conditions_for_known_args.
(unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
(unmodified_parm_or_parm_agg_item): New function.
(set_cond_stmt_execution_predicate): Handle values passed in
aggregates.
(set_switch_stmt_execution_predicate): Likewise.
(will_be_nonconstant_predicate): Likewise.
(estimate_edge_devirt_benefit): Pass new parameter known_aggs to
ipa_get_indirect_edge_target.
(estimate_calls_size_and_time): New parameter known_aggs, pass it
recrsively to itself and to estimate_edge_devirt_benefit.
(estimate_node_size_and_time): New vector known_aggs, pass it o
functions which need it.
(remap_predicate): New parameter offset_map, use it to remap aggregate
conditions.
(remap_edge_summaries): New parameter offset_map, pass it recursively
to itself and to remap_predicate.
(inline_merge_summary): Also create and populate vector offset_map.
(do_estimate_edge_time): New vector of known aggregate contents,
passed to functions which need it.
(inline_read_section): Stream new fields of condition.
(inline_write_summary): Likewise.
* ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
contents.  Let all local callers pass NULL for known_aggs.

* testsuite/gfortran.dg/pr48636.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190313 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * lto-cgraph.c (output_cgraph): Rename to ...
hubicka [Sat, 11 Aug 2012 08:38:59 +0000 (08:38 +0000)]
* lto-cgraph.c (output_cgraph): Rename to ...
(output_symtab): ... this one. Update for LTO_section_symtab_nodes.
(input_cgraph): Rename to ...
(input_symtab): ... this one. Update for LTO_section_symtab_nodes.
* lto-streamer-out.c (create_output_block): Do not set
section_type.
(produce_asm): Likewise.
(lto_output_toplevel_asms): Likewise.
(produce_asm_for_decls): Likewise.
(lto_output): Use output_symtab.
* lto-section-in.c (lto_section_name): Update.
* lto-section-out.c (lto_destroy_simple_output_block): Remove section_type.
* lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
rename LTO_section_cgraph to LTO_section_symtab_nodes.
(struct lto_header): Remove section_type.

* lto.c (read_cgraph_and_symbols): Use input_symtab.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190312 138bc75d-0d04-0410-961f-82ee72b054a4