Commit Graph

31684 Commits

Author SHA1 Message Date
Stuart Hastings ebff937c19 i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
* gcc/config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
	* gcc/config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
	* gcc/config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
	fixuns_truncdfhi2): New.
	(fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
	(floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
	(floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
	(floatunssidf2): Allow nonimmediate source.
	* gcc/config/i386/sse.md (movdi_to_sse): New.  (vec_concatv2di): Drop '*'.
	* gcc/config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
	ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
	ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse): New.
	* gcc/config/i386/i386.c (ix86_expand_convert_uns_si_sse,
	ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
	ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
	ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
	(ix86_build_signbit_mask): Fix decl of v, refactor to call ix86_build_const_vector.
	(x86_emit_floatuns): Rewrite.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r121790
2007-02-10 01:17:03 +00:00
Manuel López-Ibáñez 692b647c4f genautomata.c (longest_path_length): Delete unused function.
2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* genautomata.c (longest_path_length): Delete unused function.
	(struct state): Delete unused longest_path_length.
	(UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
	(get_free_state): Delete unused.

From-SVN: r121789
2007-02-10 01:05:18 +00:00
Jan Hubicka d562c6687f params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
	* doc/invoke.texi (inline-unit-growth): Update default value.

From-SVN: r121781
2007-02-09 22:51:44 +00:00
Jan Hubicka 45a80bb9e8 Makefile.in (passes.o, [...]): Add dependencies.
* Makefile.in (passes.o, ipa-inline.o): Add dependencies.
	* cgraphbuild.c (build_cgraph_edges): Compute frequencies.
	(rebuild_cgraph_edges): Likewise.
	* cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
	(dump_cgraph_node): Dump frequencies.
	(cgraph_clone_edge): Add frequency scales.
	(cgraph_clone_node): Add freuqnecy.
	* cgraph.h (cgraph_edge): Add freuqnecy argument.
	(CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
	(cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
	* tree-pass.h (TODO_rebuild_frequencies): New constant.
	* cgraphunit.c (verify_cgraph_node): Verify frequencies.
	(cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
	(save_inline_function_body): Likewise.
	* ipa-inline.c: inluce rtl.h
	(cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
	(cgraph_edge_badness): Use frequencies.
	(cgraph_decide_recursive_inlining): Update clonning.
	(cgraph_decide_inlining_of_small_function): Dump frequency.
	* predict.c (estimate_bb_frequencies): Export.
	* predict.h (estimate_bb_frequencies): Declare.
	* tree-inline.c (copy_bb): Watch overflows.
	(expand_call_inline): Update call of cgraph_create_edge.
	(optimize_inline_calls): Use TODO flags to update frequnecies.
	* passes.h: Include predict.h
	(init_optimization_passes): Move profile ahead.
	(execute_function_todo): Handle TODO_rebuild_frequencies.

From-SVN: r121780
2007-02-09 22:49:30 +00:00
Roger Sayle f2477b062c alpha.c (emit_insxl): Force the first operand of the insbl or inswl pattern into a register.
* config/alpha/alpha.c (emit_insxl): Force the first operand of
	the insbl or inswl pattern into a register.

From-SVN: r121779
2007-02-09 22:36:34 +00:00
Roger Sayle ff848f0e0f ia64.md (bswapdi2): New define_insn.
* config/ia64/ia64.md (bswapdi2): New define_insn.

	* gcc.target/ia64/builtin_bswap-1.c: New test case.

From-SVN: r121776
2007-02-09 21:33:36 +00:00
Richard Henderson ed69105c95 constraints.md (Ym): New constraint.
* config/i386/constraints.md (Ym): New constraint.
        * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
        (movdi_1_rex64): Split sse and xmm general register moves from
        memory move alternatives.  Use conditional register constraints.
        (movsf_1, movdf_integer): Likewise.
        (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
        (movdf_integer_rex64): New.
        (pushsf_rex64): Fix output constraints.
        * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
        (sse2_stored): Likewise.
        (sse2_storeq_rex64): New.
        * config/i386/i386.c (x86_inter_unit_moves): Enable for not
        amd and not generic.
        (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
        for optimize_size.  Remove SF/DFmode hack.

From-SVN: r121767
2007-02-09 10:17:09 -08:00
Dwarakanath Rajagopal 35a63f2131 driver-i386.c: Turn on -mtune=native for AMDFAM10.
2007-02-09  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>

	* config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
	(bit_SSE4a): New.

From-SVN: r121763
2007-02-09 16:56:45 +00:00
Nathan Sidwell 10e96df47c 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
	(m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
	(m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
	m68k/t-mlib to tmake_file.
	(m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
	(m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
	(m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
	Allow it to be cf or m68k.  Set m68k_arch_family.  If that
	variable is not empty, add t-$m68k_arch_family to tmake_file.
	Add t-mlibs to tmake_file.
	* doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
	* config/m68k/t-cf: New file.
	* config/m68k/t-m68k: Likewise.
	* config/m68k/t-mlibs: Likewise.
	* config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
	(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
	* config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
	Delete.
	* config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
	(INSTALL_LIBGCC): Delete.
	(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
	* config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
	(M68K_MLIB_CPU): Define.
	* config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
	(M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r121743
2007-02-09 13:47:25 +00:00
Zdenek Dvorak b44e7f07c5 re PR tree-optimization/23361 (Can't eliminate empty loops with power of two step and variable bounds)
2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
	Richard Guenther  <rguenther@suse.de>

	PR middle-end/23361
	* fold-const.c (fold_comparison): Handle obfuscated comparisons
	against INT_MIN/INT_MAX.
	* tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
	file if a loop is removed.

	* gcc.dg/fold-compare-3.c: New testcase.
	* gcc.dg/tree-ssa/loop-24.c: Likewise.

Co-Authored-By: Richard Guenther <rguenther@suse.de>

From-SVN: r121742
2007-02-09 13:29:11 +00:00
Joseph Myers 46bd2beed4 calls.c (store_one_arg): Pass correct alignment to emit_push_insn for non-BLKmode values.
* calls.c (store_one_arg): Pass correct alignment to
	emit_push_insn for non-BLKmode values.
	* expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
	unaligned stack slot via a suitably aligned slot.

From-SVN: r121736
2007-02-09 01:11:18 +00:00
DJ Delorie 67fc44cbd6 m32c.c (m32c_unpend_compare): Add default to silence warnings.
* config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
warnings.
(legal_subregs): Use unsigned char, make const.
(m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.

From-SVN: r121733
2007-02-08 19:49:48 -05:00
Paul Brook 4531703eaa lib1funcs.asm (RETLDM): Pop directly into PC when no special interworking needed.
2007-02-08  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
	special interworking needed.

From-SVN: r121727
2007-02-08 23:49:59 +00:00
Harsha Jagasia c1d91dbdc5 xmmintrin.h: Make inclusion of emmintrin.h conditional to __SSE2__.
* config/i386/xmmintrin.h: Make inclusion of emmintrin.h
        conditional to __SSE2__.
        (Entries below should have been added to first ChangeLog
        entry for amdfam10 dated 2007-02-05)
        * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
        defined.
        * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
        defined.
        * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
        defined.

From-SVN: r121726
2007-02-08 22:37:01 +00:00
DJ Delorie f9b8943888 m32c-protos.h (m32c_illegal_subreg_p): New.
* config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
* config/m32c/m32c.c (legal_subregs): New.
(m32c_illegal_subreg_p): New.
* config/m32c/predicates.md (m32c_any_operand): Use it to reject
unsupported subregs of hard regs.

From-SVN: r121725
2007-02-08 17:22:52 -05:00
Jan Hubicka ff39b79b8f tree-cfg.c (bsi_replace): Shortcut when replacing the statement with the same one; always update histograms.
* tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
	the same one; always update histograms.

From-SVN: r121724
2007-02-08 22:04:22 +00:00
Diego Novillo b3f7d793a9 passes.c (init_optimization_passes): Tidy comment.
* passes.c (init_optimization_passes): Tidy comment.

From-SVN: r121723
2007-02-08 16:38:41 -05:00
Roger Sayle 9f05adb09f simplify-rtx.c (simplify_unary_operation_1): We can strip zero_extend, bswap and rotates from POCOUNT's argument.
* simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
	strip zero_extend, bswap and rotates from POCOUNT's argument.
	<PARITY>: Likewise, we can strip not, bswap, sign_extend,
	zero_extend and rotates from PARITY's argument.
	<BSWAP>: A byte-swap followed by a byte-swap is an identity.
	(simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
	of an integer constant at compile-time.

	* gcc.target/i386/builtin-bswap-2.c: New test case.

From-SVN: r121716
2007-02-08 17:10:56 +00:00
Diego Novillo d37d06fef8 re PR tree-optimization/30562 (remove unused variable is removing a referenced variable (in STORED_SYMS or LOADED_SYMS))
PR 30562
	* tree-flow.h (struct var_ann_d): Remove field 'is_used'.
	Update all users.
	* tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
	users.
	(init_alias_info):
	* tree-ssa-live.c (remove_unused_locals): Do not remove
	TREE_ADDRESSABLE variables.
	* tree-ssa-structalias.c (compute_points_to_sets): Tidy.
	* tree-ssa-operands.c (add_virtual_operand): Remove argument
	FOR_CLOBBER.  Update all users.
	If VAR has an associated alias set, add a virtual operand for
	it if no alias is found to conflict with the memory reference.

From-SVN: r121715
2007-02-08 11:55:43 -05:00
Jan Hubicka 674474a525 value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
* value-prof.c (visit_hist, free_hist): Return 1 instead of 0.

Co-Authored-By: Robert Kidd <rkidd@crhc.uiuc.edu>

From-SVN: r121711
2007-02-08 09:56:34 +00:00
Ian Lance Taylor 1f64a0811b * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
From-SVN: r121707
2007-02-08 00:59:14 +00:00
Roger Sayle e42ac3dede rs6000.md (ctz<mode>2, [...]): Remove constraints from define_expand's match_operands.
* config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
	parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
	tablejumpdi, movsi_to_cr_one): Remove constraints from
	define_expand's match_operands.

From-SVN: r121706
2007-02-08 00:25:06 +00:00
Roger Sayle 28890c8243 global.c (compute_regsets): Move declatation of "i" inside of #ifdef ELIMINABLE_REGS to avoid unused...
* global.c (compute_regsets): Move declatation of "i" inside of
	#ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.

From-SVN: r121697
2007-02-07 21:29:17 +00:00
Jakub Jelinek e02a048f46 re PR c++/30703 (ICE Segmentation fault on using OpenMP)
PR c++/30703
	* gimplify.c (gimplify_scan_omp_clauses): Remove special casing
	of INDIRECT_REF <RESULT_DECL>.

	* cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
	parameters and result decls in omp clauses.
	(cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
	by reference.

	* testsuite/libgomp.c++/pr30703.C: New test.

From-SVN: r121688
2007-02-07 13:16:22 +01:00
Jakub Jelinek ca6e5fe994 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
From-SVN: r121687
2007-02-07 13:13:39 +01:00
J"orn Rennecke 6f8eec2991 re PR target/29746 (gcc fails to bootstrap on sh4-*-linux-gnu)
PR target/29746
	* config/sh/sh.c (expand_cbranchdi4): Use scratch register
	properly.
	(sh_initialize_trampoline): Add parentheses to avoid a warning.


Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>

From-SVN: r121671
2007-02-06 23:12:35 +00:00
Zdenek Dvorak 89f8f30f35 loop.texi: Document possibility not to perform disambiguation of loops with multiple latches.
* doc/loop.texi: Document possibility not to perform disambiguation
	of loops with multiple latches.
	* cfgloopmanip.c (alp_enum_p): Removed.
	(add_loop): Handle subloops.  Use get_loop_body_with_size.
	(create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
	* cfghooks.c (redirect_edge_and_branch_force): Set dominator for
	the new forwarder block.
	(make_forwarder_block): Only call new_bb_cbk if it is not NULL.
	Handle the case latch is NULL.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
	when marking loop exits.
	* ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
	be modified.
	* loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
	disambiguate_loops_with_multiple_latches.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
	before fix_loop_structure.
	* cfgloop.c: Include pointer-set.h and output.h.
	(canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
	update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
	(get_loop_latch_edges, find_subloop_latch_edge_by_profile,
	find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
	mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
	disambiguate_multiple_latches, get_loop_body_with_size,
	disambiguate_loops_with_multiple_latches): New functions.
	(flow_loop_dump): Dump multiple latch edges.
	(flow_loop_nodes_find): Handle loops with multiple latches.
	(flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
	(glb_enum_p): Modified.
	(get_loop_body): Use get_loop_body_with_size.
	* cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
	(AVOID_CFG_MODIFICATIONS): New constant.
	(disambiguate_loops_with_multiple_latches, add_loop,
	get_loop_body_with_size): Declare.
	* Makefile.in (cfgloop.o): Add pointer-set.h and output.h.

	* gcc.dg/tree-ssa/loop-25.c: New test.

From-SVN: r121670
2007-02-06 21:49:49 +00:00
Seongbae Park ad8e8d0b46 re PR inline-asm/28686 (ebp from clobber list used as operand)
2007-02-06  Seongbae Park <seongbae.park@gmail.com>

	PR inline-asm/28686
	* global.c (compute_regsets): New function.
	(global_alloc): Refactored ELIMINABLE_REGSET
	and NO_GLOBAL_ALLOC_REGS computation out.
	(rest_of_handle_global_alloc): Call compute_regsets()
	for non-optimizing case.

From-SVN: r121663
2007-02-06 19:43:41 +00:00
Richard Henderson 5096114103 constraints.md (Y2): Rename from Y.
* config/i386/constraints.md (Y2): Rename from Y.
        (Yi): New constraint. 
        * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
        pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
        zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
        (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
        truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
        fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
        floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
        absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
        fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
        * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
        mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
        vec_extractv2si_1): Change Y constraints to Y2.
        * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
        vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
        Change Y constraints to Y2.
        (sse2_loadld): Change Y constraints to x.

From-SVN: r121660
2007-02-06 10:25:47 -08:00
Roger Sayle 565ef4bafb rs6000.md (popcount<mode>2): Rewrite.
* config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
	(parity<mode>2): New define_expand using rs6000_emit_parity.
	* config/rs6000/rs6000.c (rs6000_emit_popcount,
	rs6000_emit_parity): New functions.
	* config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
	rs6000_emit_parity): Prototype here.

	* gcc.target/powerpc/popcount-1.c: New test case.
	* gcc.target/powerpc/parity-1.c: Likewise.

From-SVN: r121653
2007-02-06 17:29:44 +00:00
Ian Lance Taylor 7e0c3f57e0 lower-subreg.c (simple_move_operand): Reject CONST.
* lower-subreg.c (simple_move_operand): Reject CONST.
	(resolve_clobber): Call validate_change rather than directly
	assigning to XEXP (pat, 0).

From-SVN: r121652
2007-02-06 17:19:27 +00:00
Paolo Bonzini 15814ba0a2 Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
2006-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
	(tree-ssa-reassoc.o): Add pointer-set.h dependency.
	(tree-cfg.o): Remove hashtab.h dependency.

	* tree-ssa-loop-ivopts.c: Include pointer-set.h.
	(struct ivopts_data): Change niters to pointer_map_t.
	(struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
	(niter_for_exit): Create pointer_map on demand.  Change for
	pointer_map API.
	(tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
	(free_loop_data): Destroy data->niters if created and reset field.
	(tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
	(tree_ssa_iv_optimize_loop): Check for presence of stale data.

	* tree-ssa-reassoc.c: Include pointer-set.h.
	(bb_rank): Change to long *.
	(operand_rank): Change to pointer_map_t.
	(find_operand_rank): Return long, -1 if not found.  Declare as inline.
	(insert_operand_rank): Accept long.
	(operand_entry_hash, operand_entry_eq): Remove.
	(get_rank): Return long.  Adjust for changes above.
	(init_reassoc): Change rank type to long.  Adjust creation of bb_rank
	and operand_rank.
	(fini_reassoc): Delete operand_rank with pointer_map_destroy.

	* tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
	(struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
	(insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
	is not NULL.
	(lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
	directly since it cannot be NULL.
	(get_vi_for_tree): Rewrite for pointer_map API.
	(find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
	(init_alias_vars): Create vi_for_tree as pointer_map.
	(delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.

	* tree-cfg.c: Don't include hashtab.h.
	(edge_to_cases): Declare as pointer_map.
	(struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
	Delete.
	(edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
	(start_recording_case_labels): Create edge_to_cases as pointer_map.
	(end_recoding_case_labels): Cleanup edge_to_cases manually before
	destroying it.
	(record_switch_edge): Delete.
	(get_cases_for_edge): Adjust for pointer_map API, inline
	record_switch_edge (rewritten for new API), remove goto.

From-SVN: r121648
2007-02-06 14:34:51 +00:00
Paolo Bonzini 0802f6a2f7 tree.c (tree_int_map_hash, [...]): Remove prototypes and make them non-static.
gcc:
2007-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
	Remove prototypes and make them non-static.
	(struct tree_int_map): Remove.
	* tree.h (struct tree_int_map): Move here, turning TO into an
	unsigned int.
	(tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.

	* tree.h (TREE_COMPLEXITY): Remove.
	(struct tree_exp): Remove complexity field.
	* tree.c (build1_stat): Don't set it.

gcc/ada:
2007-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
	* decl.c: Include gt-ada-decl.h.
	(annotate_value_cache): New.
	(annotate_value): Use it instead of TREE_COMPLEXITY.

From-SVN: r121647
2007-02-06 13:55:01 +00:00
Dorit Nuzman fbf798fcc5 tree-vectorizer.c (vect_is_simple_use): Support induction.
2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
            Victor Kaplansky  <victork@il.ibm.com>

        * tree-vectorizer.c (vect_is_simple_use): Support induction.
        (vect_is_simple_reduction): Support reduction with induction as
        one of the operands.
        (vect_is_simple_iv_evolution): Fix formatting.
        * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
        formatting.  Don't mark induction phis for vectorization.
        (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
        * tree-vect-transform.c (get_initial_def_for_induction): New function.
        (vect_get_vec_def_for_operand): Support induction.
        (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
        induction case.
        (vectorizable_reduction): Support reduction with induction as one of
        the operands.
        (vectorizable_type_demotion): Use def-type of stmt argument rather
        than dummy def-type.

        * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
        flag_tree_scev_cprop.
        * common.opt (tree-scev-cprop): New flag.

        * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
        call to vect_get_new_vect_var.


Co-Authored-By: Victor Kaplansky <victork@il.ibm.com>

From-SVN: r121643
2007-02-06 10:08:51 +00:00
Ira Rosen 03d3e95382 tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that vectype is not NULL.
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that 
	vectype is not NULL.
	(vect_pattern_recog_1): Likewise.

From-SVN: r121640
2007-02-06 08:41:01 +00:00
Kaveh R. Ghazi 8fbbe90b26 fold-const.c (negate_expr_p): Handle CONJ_EXPR.
* fold-const.c (negate_expr_p): Handle CONJ_EXPR.
	(fold_negate_expr): Likewise.
	
testsuite:
	* gcc.dg/builtins-20.c: Add more cases.

From-SVN: r121639
2007-02-06 02:50:39 +00:00
Alexandre Oliva 792eaee2cb re PR debug/30189 (ICE on modified_type_die)
gcc/ChangeLog:
PR debug/30189
* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
even if cv-qualification is the same.
gcc/testsuite/ChangeLog:
PR debug/30189
* gcc.dg/pr30189.c: New test.

From-SVN: r121638
2007-02-06 01:35:10 +00:00
Geoffrey Keating 9be75e444a darwin-tramp.asm (__trampoline_setup): Call __enable_execute_stack on completion.
* config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
	__enable_execute_stack on completion.

From-SVN: r121633
2007-02-06 00:32:44 +00:00
Harsha Jagasia 21efb4d464 amdfam10
From-SVN: r121625
2007-02-05 23:33:54 +00:00
Bob Wilson 63694bdd4e * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
From-SVN: r121622
2007-02-05 22:50:31 +00:00
Richard Guenther b95becfc09 tree-vectorizer.h (vectorizable_function): Add argument type argument, change return type.
2007-02-05  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.h (vectorizable_function): Add argument type
	argument, change return type.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
	* tree-vect-transform.c (vectorizable_function): Handle extra
	argument, return vectorized function decl.
	(build_vectorized_function_call): Remove.
	(vectorizable_call): Handle calls with result and argument types
	differing.  Handle loop vectorization factor correctly.
	* targhooks.c (default_builtin_vectorized_function): Adjust for
	extra argument.
	* targhooks.h (default_builtin_vectorized_function): Likewise.
	* target.h (builtin_vectorized_function): Add argument type
        argument.
	* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
	extra argument, allow vectorizing of lrintf.
	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
	documentation of target hook.

	* gcc.target/i386/vectorize3.c: New testcase.

From-SVN: r121617
2007-02-05 21:38:53 +00:00
Hans-Peter Nilsson aa3386a543 re PR target/30665 (peephole2 misapplied on postinc mem)
PR target/30665
	* config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
	("*andhi_clear", andu (casesi+45)): For size-changed operand where
	memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.

From-SVN: r121613
2007-02-05 21:22:24 +00:00
Hans-Peter Nilsson c3e786e725 cris.md ("*andsi_movu", [...]): For size-changed operand where memory is allowed...
* config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
	("*andhi_clear", andu (casesi+45)): For size-changed operand where
	memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.

From-SVN: r121612
2007-02-05 21:21:50 +00:00
Roger Sayle 2d38026be8 fold-const.c (fold_unary): Test for availability of BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
* fold-const.c (fold_unary) <REAL_PART>: Test for availability of
	BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
	<IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
	* builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
	before canonicalizing sincos to cexpi.
	(fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.

From-SVN: r121607
2007-02-05 19:10:44 +00:00
Roger Sayle b6e46ca136 alpha.c (alpha_add_builtins): New Helper function.
* config/alpha/alpha.c (alpha_add_builtins): New Helper function.
	Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
	(alpha_init_builtins): Use alpha_add_builtins to process tables.

From-SVN: r121603
2007-02-05 16:39:58 +00:00
Roger Sayle 8d0510ddbd mips-tfile.c (initialize_init_file): Correct endianness test.
* mips-tfile.c (initialize_init_file): Correct endianness test.

From-SVN: r121602
2007-02-05 16:37:05 +00:00
Kazu Hirata d6fb69e757 m68k.md (pushdi-1, [...]): Don't use the 'y' constraint.
* config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
	the 'y' constraint.

From-SVN: r121600
2007-02-05 14:05:24 +00:00
Richard Sandiford 55d6f63112 dwarf2out.c (dwarf2out_frame_debug_expr): Record the register saves in a PARALLEL before the register assignments.
gcc/
	* dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
	saves in a PARALLEL before the register assignments.

From-SVN: r121594
2007-02-05 10:41:26 +00:00
Richard Sandiford 5cd0f9153d tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require DWARF_FRAME_RETURN_COLUMN to be a general register.
gcc/
	* doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
	DWARF_FRAME_RETURN_COLUMN to be a general register.
	* dwarf2out.c (init_return_column_size): New function, split from...
	(expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
	DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
	to be nongeneral registers.
	* config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
	integer registers.
	(DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
	(DWARF_ALT_FRAME_RETURN_COLUMN): Define.

From-SVN: r121593
2007-02-05 10:38:46 +00:00
Zdenek Dvorak 83bd032b4b cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
* cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.

From-SVN: r121584
2007-02-04 23:51:28 +00:00