Commit Graph

83248 Commits

Author SHA1 Message Date
Uros Bizjak
3968877d4a * ChangeLog: Fix cut'n'pasto.
From-SVN: r128291
2007-09-09 11:19:19 +02:00
Uros Bizjak
00188daa1f i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
2007-09-09  Uros Bizjak  <ubizjak@gmail.com>

        * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
        Substitute all uses with ...
        (MODEF): New mode iterator.

        (*cmpfp_<mode>_cc): Remove operand constraints from pre-regalloc
        define_insn_and_split splitter pattern.
        (fix_trunc<mode>_fisttp_i387_1): Ditto.
        (*fix_trunc<mode>_i387_1): Ditto.
        (*fistdi2_1): Ditto.
        (*fist<mode>2_1): Ditto.
        (frndintxf2_floor): Ditto.
        (*fist<mode>2_floor_1): Ditto.
        (frndintxf2_ceil): Ditto.
        (*fist<mode>2_ceil_1): Ditto.
        (frndintxf2_trunc): Ditto.
        (frndintxf2_mask_pm): Ditto.

        (prologue): Use (const_int 0) as never generated filler insn.
        (epilogue): Ditto.
        (sibcall_epilogue): Ditto.
        (eh_return_si): Ditto.
        (eh_return_di): Ditto.

        (add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
        using MODEF mode iterator.
        (sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
        using MODEF mode iterator.
        (mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
        using MODEF mode iterator.
        (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
        Macroize expander using MODEF mode iterator.

        (zero_extendsidi2): Remove operand constraints from expander.
        (smuldi3_highpart): Ditto.
        (indirect_jump): Ditto.
        (tablejump): Ditto.
        (rsqrtsf2): Ditto.
        * config/i386/sse.md (storentv4sf): Ditto.
        (storentv2df): Ditto.
        (storentv2di): Ditto.
        (storentsi): Ditto.
        (sse2_cvtpd2ps): Ditto.
        (vec_interleave_highv16qi): Ditto.
        (vec_interleave_lowv16qi): Ditto.
        (vec_interleave_highv8hi): Ditto.
        (vec_interleave_lowv8hi): Ditto.
        (vec_interleave_highv4si): Ditto.
        (vec_interleave_lowv4si): Ditto.
        (vec_interleave_highv2di): Ditto.
        (vec_interleave_lowv2di): Ditto.
        (sse2_maskmovdqu): Ditto.
        * config/i386/mmx.md (mmx_maskmovq): Ditto.

From-SVN: r128290
2007-09-09 11:04:59 +02:00
Ira Rosen
805e205939 tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
* tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
	(struct _slp_tree, struct _slp_instance): Define new data structures
	along macros for their access.
	(struct _loop_vec_info): Define new fields: strided_stores,
	slp_instances, and slp_unrolling_factor along macros for their access.
	(enum slp_vect_type): New.
	(struct _stmt_vec_info): Define new field, slp_type, and macros for its
	access.
	(STMT_VINFO_STRIDED_ACCESS): New macro.
	(vect_free_slp_tree): Declare.
	(vectorizable_load): Add an argument of type slp_tree.
	(vectorizable_store, vectorizable_operation, vectorizable_conversion,
	vectorizable_assignment): Likewise.
	(vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
	Declare (make extern).
	* tree-vectorizer.c (new_stmt_vec_info): Initiliaze the new field.
	(new_loop_vec_info): Likewise.
	(destroy_loop_vec_info): Free memory allocated for SLP structures.
	* tree-vect-analyze.c: Include recog.h.
	(vect_update_slp_costs_according_to_vf): New.
	(vect_analyze_operations): Add argument for calls to vectorizable_ ()
	functions. For not pure SLP stmts with strided access check that the
	group size is power of 2. Update the vectorization factor according to
	SLP. Call vect_update_slp_costs_according_to_vf.
	(vect_analyze_group_access): New.
	(vect_analyze_data_ref_access): Call vect_analyze_group_access.
	(vect_free_slp_tree): New functions.
	(vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
	vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
	vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
	vect_detect_hybrid_slp): Likewise.
	(vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
	and vect_detect_hybrid_slp.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
	SLP costs into account.
	(vect_get_cost_fields): New function.
	(vect_model_simple_cost): Make extern, add SLP parameter and handle
	SLP.
	(vect_model_store_cost, vect_model_load_cost): Likewise.
	(vect_get_constant_vectors): New function.
	(vect_get_slp_vect_defs, vect_get_slp_defs,
	vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
	vect_get_vec_defs): Likewise.
	(vectorizable_reduction): Don't handle SLP for now.
	(vectorizable_call): Don't handle SLP for now. Add argument to
	vect_model_simple_cost.
	(vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
	get SLPed and vectorized defs). Fix indentation and spacing.
	(vectorizable_assignment): Handle SLP.
	(vectorizable_induction): Don't handle SLP for now.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Add argument to
	vect_model_simple_cost.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store, vectorizable_load): Handle SLP.
	(vectorizable_condition): Don't handle SLP for now.
	(vect_transform_stmt): Add a new argument for SLP. Check that there is
	no SLP transformation required for unsupported cases. Add SLP
	argument for supported cases.
	(vect_remove_stores): New function.
	(vect_schedule_slp_instance, vect_schedule_slp): Likewise.
	(vect_transform_loop): Schedule SLP instances.
	* Makefile.in: (tree-vect-analyze.o): Depend on recog.h.

From-SVN: r128289
2007-09-09 08:46:12 +00:00
Andrew Haley
ae2bd7d2ed optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake signed optab.
* optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake
        signed optab.

From-SVN: r128288
2007-09-09 08:10:24 +00:00
Hans-Peter Nilsson
cf7c4aa6af Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
* doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
	Similar for what label_refs can go in the JUMP_TARGET field.  Split
	REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
	* reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
	REG_LABEL when replacing an operand with a LABEL_REF for a
	non-jump insn.
	(subst_reloads): When replacing a LABEL_REG with a register,
	instead of generating a REG_LABEL note, assert that there already
	is one or that the label is a known target for the insn.
	* rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
	note, check the JUMP_LABEL field.  Remove "else" after return.
	* reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
	cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
	(fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
	REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
	insns.  Iterate over all notes; don't assume there's only one.
	* cse.c (recorded_label_ref): Adjust comment to refer to
	REG_LABEL_OPERAND.
	(cse_extended_basic_block): Do LABEL_REF check for all INSN_P
	insns, not just NONJUMP_INSN_P.
	(check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
	isn't a jump target.
	* jump.c (rebuild_jump_labels): Adjust head comment.
	(init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
	don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
	(mark_all_labels): For JUMP_P insns without a target, check if the
	the target is noted on the previous nonjump insn.
	(mark_jump_label_1): New function, guts from mark_jump_label.
	<case IF_THEN_ELSE>: Handle first operand as a non-target when
	marking jump target labels.
	<case LABEL_REF>: Adjust for whether to generate a
	REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
	For 'E' format rtl, iterate in descending element order.
	(delete_related_insns): Handle both REG_LABEL_TARGET and
	REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
	reference count, delete and fallthrough.  Move finding-next-
	non-deleted insn last in the function.  Look at all INSN_P insns
	for REG_LABEL_OPERAND notes.
	(redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
	JUMP.
	* print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
	JUMP_LABEL, output the INSN_UID of it.
	* gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
	and/or REG_LABEL_TARGET.
	(add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
	with jump.c copy by only adding notes for labels actually
	referenced in the insn.
	* emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
	usage count increment; handle all INSN_P trial insns.
	(emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
	notes.
	* rtl.h (struct rtx_def) <volatil>: Adjust to mention
	REG_LABEL_TARGET and REG_LABEL_OPERAND.
	(LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
	REG_LABEL_OPERAND.
	* combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
	JUMP_P insns and REG_LABEL_OPERAND everywhere.
	* sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
	on all INSN_P insns.
	* reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
	* cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
	REG_LABEL_OPERAND notes.
	* reload1.c (calculate_needs_all_insns): Adjust comments.
	(set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
	* config/alpha/alpha.md (split for load of an address into a
	four-insn sequence on Unicos/Mk): Adjust to use
	REG_LABEL_OPERAND.
	* config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.

From-SVN: r128287
2007-09-09 04:41:58 +00:00
Jason Merrill
97c954f700 re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081)
PR c++/33342
        * pt.c (most_specialized_class): Set processing_template_decl
        while tsubsting partial spec args.

From-SVN: r128286
2007-09-09 00:30:44 -04:00
Jason Merrill
fd452cefa9 re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081)
PR c++/33342
        * pt.c (most_specialized_class): Set processing_template_decl
        while tsubsting partial spec args.

From-SVN: r128285
2007-09-08 23:28:08 -04:00
Laurynas Biveinis
ba4807a0d3 revert: regrename.c (copyprop_hardreg_forward_1): New variable next.
Revert:
	2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
	* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
	FOR_BB_INSNS_SAFE instead of for loop.
	* cse.c (cse_extended_basic_block): Likewise.
	* postreload.c (reload_cse_regs_1): New variable next. Make sure
	that the for loop does not invoke NEXT_INSN on a deleted insn.
	* function.c (instantiate_virtual_regs): Likewise.
	* lower-subreg.c (remove_retval_note): Likewise.
	(decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
	FOR_BB_INSNS.
	* emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
	a deleted insn.
	* cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
	insn, if it's a jump.
	(try_redirect_by_replacing_jump): New variable jump_p. Call
	tablejump_p before delete_insn_chain.
	* reload1.c (reload): New variable next. Make sure that the for
	loop does not invoke NEXT_INSN on a deleted insn.
	(fixup_eh_region_note): Make the loop terminate if i becomes NULL.
	(delete_output_reload): New variable prev. Make sure the the for
	loops do not invoke PREV_INSN on a deleted insn.

From-SVN: r128284
2007-09-09 02:23:47 +00:00
Joseph Myers
7cff41e891 file-format.exp (gcc_target_object_format): Use remote_exec to call objdump.
gcc/testsuite:
	* lib/file-format.exp (gcc_target_object_format): Use remote_exec
	to call objdump.
	* lib/scanasm.exp (scan-assembler-dem, scan-assembler-dem-not):
	Use remote_exec to call c++filt.
	* lib/target-supports-dg.exp (dg-require-host-local): New.
	* gcc.misc-tests/options.exp: Allow .exe in command paths.
	* g++.dg/parse/repo1.C: Use dg-require-host-local.
	* g++.dg/rtti/repo1.C: Likewise.
	* g++.dg/template/repo1.C: Likewise.
	* g++.dg/template/repo2.C: Likewise.
	* g++.dg/template/repo3.C: Likewise.
	* g++.dg/template/repo4.C: Likewise.
	* g++.dg/template/repo5.C: Likewise.
	* g++.old-deja/g++.pt/instantiate4.C: Likewise.
	* g++.old-deja/g++.pt/instantiate6.C: Likewise.
	* g++.old-deja/g++.pt/repo1.C: Likewise.
	* g++.old-deja/g++.pt/repo2.C: Likewise.
	* g++.old-deja/g++.pt/repo3.C: Likewise.
	* g++.old-deja/g++.pt/repo4.C: Likewise.
	* gcc.dg/cpp/trad/builtins.c: Likewise.

libstdc++-v3:
	* testsuite/lib/libstdc++.exp (v3-build-support): Specify output
	file for preprocessing.  Use remote_exec to call ar and ranlib.

From-SVN: r128283
2007-09-09 02:10:17 +01:00
GCC Administrator
37da0c95d4 Daily bump.
From-SVN: r128281
2007-09-09 00:17:08 +00:00
Benjamin Kosnik
9adfc73cd3 functional_hash.h: Add ext/numeric_traits.h.
2007-09-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/functional_hash.h: Add ext/numeric_traits.h.
	* include/tr1/functional_hash.h Same.
	* include/tr1/functional: Remove string, ext/type_traits.h includes.
	* include/tr1_impl/functional_hash.h: Move string, wstring
	definitions for std::<hash>::operator into separate file.
	* include/std/functional
	* src/hash.cc: New, move definitions here.
	* src/hash_c++0x.cc: Same.
	* src/Makefile.am: Add new source files.
	* configure: Regenerate.
	* Makefile.in: Same.
	* src/Makefile.in: Same.
	* po/Makefile.in: Same.
	* libmath/Makefile.in: Same.
	* libsupc++/Makefile.in: Same.
	* testsuite/Makefile.in: Same.
	* config/abi/pre/gnu.ver: Add symbols.
	* config/abi/pre/gnu-versioned-namespace.ver: Same, fix.

From-SVN: r128278
2007-09-09 00:05:13 +00:00
John David Anglin
96f52d87e8 constraints.md: Remove 'X' from unused letters comment.
* pa/constraints.md: Remove 'X' from unused letters comment.

From-SVN: r128277
2007-09-08 16:21:50 +00:00
Richard Biener
83c9a0b974 tree-tailcall.c (find_tail_calls): If we don't have aliases computed check stmt_ann->references_memory instead of...
2007-09-08  Richard Guenther  <rguenther@suse.de>

	* tree-tailcall.c (find_tail_calls): If we don't have aliases
	computed check stmt_ann->references_memory instead of counting
	virtual operands.

From-SVN: r128276
2007-09-08 15:09:25 +00:00
Segher Boessenkool
b8b89e7c09 cse.c (fold_rtx): Use validate_unshare_change() instead of validate_change() in one more case.
2007-09-09  Segher Boessenkool  <segher@kernel.crashing.org>

	* cse.c (fold_rtx): Use validate_unshare_change() instead of
	validate_change() in one more case.

From-SVN: r128275
2007-09-08 17:01:48 +02:00
Zdenek Dvorak
cbc012d523 re PR rtl-optimization/32283 (Missed induction variable optimization)
PR tree-optimization/32283
	* tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
	estimated_loop_iterations.
	(determine_use_iv_cost_condition): Decrease cost of expressions
	used in iv elimination.

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

From-SVN: r128272
2007-09-08 13:18:49 +00:00
Richard Guenther
8fc6f12f49 tree-cfg.c (verify_gimple_expr): Avoid building new pointer types, use TYPE_POINTER_TO if available instead.
2007-09-08  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_expr): Avoid building new
	pointer types, use TYPE_POINTER_TO if available instead.

From-SVN: r128271
2007-09-08 12:16:58 +00:00
Uros Bizjak
35f4c4eee1 re PR rtl-optimization/26449 (ICE in loop invariant motion)
PR rtl-optimization/26449
        * gcc.target/i386/pr26449-1.c: New file.

From-SVN: r128270
2007-09-08 13:48:17 +02:00
Uros Bizjak
e9ddec4ef1 re PR target/33329 (ICE in expand_simple_binop, at optabs.c:1294)
PR target/33329
        PR target/26449
        * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
        (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
        split1 pass.
        (mulv16qi3): Implement as define_insn_and_split pattern instead of
        define_expand, to split insn in split1 pass.
        (mulv2di3): Ditto.

testsuite/ChangeLog:

        PR target/33329
        PR target/26449
        * gcc.target/i386/pr33329.c: New file.

From-SVN: r128269
2007-09-08 13:33:08 +02:00
Eric Botcazou
79646678b5 decl.c (gnat_to_gnu_entity): Simplify the condition under which a constant renaming is treated as a normal...
* decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
	which a constant renaming is treated as a normal object declaration.
	* trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
	the N_Indexed_Component case.
	<N_Indexed_Component>: Fall through to above case.
	<N_Object_Renaming_Declaration>: Return true for all composite types.

From-SVN: r128268
2007-09-08 10:30:06 +00:00
Eric Botcazou
3b9f15d256 Add missing dg command.
From-SVN: r128267
2007-09-08 10:19:24 +00:00
Eric Botcazou
d9e161ce8f decl.c (make_packable_type): If the new type has been given BLKmode, try again to get an integral mode for it.
* decl.c (make_packable_type): If the new type has been given BLKmode,
	try again to get an integral mode for it.

From-SVN: r128266
2007-09-08 10:02:28 +00:00
Dorit Nuzman
dab1260138 re PR tree-optimization/33301 (wrong vectorization factor due to an invariant type-promotion in the loop)
PR tree-optimization/33301
        * tree-vect-analyze (analyze_operations): Look at the type of the rhs
        when relevant.

From-SVN: r128265
2007-09-08 09:19:39 +00:00
Arnaud Charlet
f1979d7e89 Add support file for controlled2.adb
From-SVN: r128264
2007-09-08 10:21:05 +02:00
Arnaud Charlet
3f39439132 Add spec for controlled2.adb test
From-SVN: r128263
2007-09-08 10:02:05 +02:00
Zdenek Dvorak
7a9c7d01fd re PR tree-optimization/32183 (reassoc2 can more extra calculations into a loop)
2007-09-07  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/32183
	* Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).

	* tree-ssa-reassoc.c: Include cfgloop.h.
	(is_reassociable_op): Add a loop argument and return true only
	for inside loop.
	(linearize_expr): Updated.
	(should_break_up_subtract): Likewise.
	(linearize_expr_tree): Likewise.
	(init_reassoc): Call loop_optimizer_init with
	AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
	with CDI_DOMINATORS.
	(fini_reassoc): Call loop_optimizer_finalize.

From-SVN: r128262
2007-09-07 23:46:53 -07:00
GCC Administrator
a7b4caa2fd Daily bump.
From-SVN: r128260
2007-09-08 00:17:26 +00:00
Sterling Augustine
9502767b88 lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even if there is no i-cache.
2007-09-07  Sterling Augustine  <sterling@tensilica.com>
	* config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
	if there is no i-cache.

From-SVN: r128256
2007-09-07 23:08:39 +00:00
Benjamin Kosnik
12187c13b9 copy_neg.cc: Correct line number.
2007-09-07  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc:
	Correct line number.

From-SVN: r128255
2007-09-07 21:09:35 +00:00
Jerry DeLisle
dd36913ccf re PR fortran/33307 (I/O read/positioning problem)
2007-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33307
	* gfortran.dg/backspace_10.f90: New test.

From-SVN: r128254
2007-09-07 20:23:40 +00:00
Jerry DeLisle
3a6666054e re PR fortran/33307 (I/O read/positioning problem)
2007-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33307
	* io/filepos.c (st_backspace): Don't truncate when already at the end
	of the file.

From-SVN: r128253
2007-09-07 20:16:05 +00:00
Eric Botcazou
0ab29e91aa Re-apply accidentally reverted change:
2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* raise-gcc.c (get_region_description_for, get_call_site_action_for,
	get_action_description_for): Replace _Unwind_Word with _uleb128_t 
	and _Unwind_SWord with _sleb128_t.

From-SVN: r128252
2007-09-07 19:57:59 +00:00
Richard Guenther
eb2c3940a1 re PR tree-optimization/32586 (New VN misses FRE opportunities)
2007-09-07  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/32586
        * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
        folding if nothing changed.
        (simplify_unary_expression): New function.  Do tree combining
        on conversion like codes.
        (try_to_simplify): Call it.

        * g++.dg/tree-ssa/pr27090.C: Remove XFAILs.
        * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for
        now obsolete simplification.

From-SVN: r128251
2007-09-07 18:55:15 +00:00
Andrew Haley
c4e9bf2b9b configure.ac (noconfigdirs): Remove target-libffi and target-libjava.
2007-09-07  Andrew Haley  <aph@redhat.com>

        * configure.ac (noconfigdirs): Remove target-libffi and
        target-libjava.
        * configure: Regenerate.

From-SVN: r128250
2007-09-07 17:14:51 +00:00
John David Anglin
f74eeed443 re PR target/33286 (All exception related tests fail)
PR target/33286
	* gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
	(__gthread_active,__gthread_start, __gthread_active_init): New.
	* gthr-posix95.h: Likewise.

From-SVN: r128249
2007-09-07 16:54:38 +00:00
Roman Zippel
215161e20f function.h (struct function): Rename calls_unwind_init to saves_all_registers.
* function.h (struct function): Rename calls_unwind_init
	to saves_all_registers.
	(current_function_saves_all_registers): Renamed from
	current_function_calls_unwind_init.
	* reload1.c (reload): Set current_function_saves_all_registers.
	* except.c (expand_builtin_unwind_init): Likewise.
	* config/m68k/m68k.c (m68k_save_reg): Use
	current_function_saves_all_registers to save pic register.

From-SVN: r128248
2007-09-07 16:46:23 +00:00
Janis Johnson
6ef9a246ce Reapply reverted change:
gcc/ada/
	Reapply reverted change:

        2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>

        * trans.c (convert_with_check): Update call to real_2expN.

gcc/
	config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
	config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.

	Reapply reverted changes:

 	2007-09-06  Jan Hubicka  <jh@suse.cz>
 
	* config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
	real_2expN.

	2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.

	2007-09-05  Janis Johnson  <janis187@us.ibm.com>

	* optabs.c (expand_float): Convert unsigned integer as signed only
	if it provides sufficient accuracy; add mode argument to real_2expN.
	(expand_fix): Fix comment typos; extend binary float into mode
	wider than destination for converion to unsigned integer; add mode
	argument to real_2expN.
	* real.c (real_2expN): Add mode argument to special-case decimal
	float values.
	* real.h (real_2expN): Ditto.
	* fixed-value.c (check_real_for_fixed_mode): Add mode argument to
	real_2expN.
	(fixed_from_string): Ditto.
	(fixed_to_decimal): Ditto.
	(fixed_convert_from_real): Ditto.
	(real_convert_from_fixed): Ditto.
	* config/rs6000/rs6000.md (FP): Include DD and TD modes.
	* config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
	muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
	floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.

From-SVN: r128247
2007-09-07 16:42:48 +00:00
Diego Novillo
b48d035854 tree-flow.h (const_block_stmt_iterator): Remove.
* tree-flow.h (const_block_stmt_iterator): Remove.
	Update all users to use block_stmt_iterator.
	* tree-iterator.h (const_tree_stmt_iterator): Remove.
	Update all users to use tree_stmt_iterator.

From-SVN: r128246
2007-09-07 12:38:46 -04:00
Sandra Loosemore
7c45aad5e6 mips.c (mips_set_current_function): Temporarily make this a no-op to fix bootstrap errors, pending rewrite.
2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/mips/mips.c (mips_set_current_function): Temporarily
	make this a no-op to fix bootstrap errors, pending rewrite.

From-SVN: r128245
2007-09-07 11:59:44 -04:00
Jan Hubicka
74567c2cd1 reorg.c (dbr_schedule): Move code removing placeholder USEs later in the pass.
* reorg.c (dbr_schedule): Move code removing placeholder USEs later
	in the pass.

From-SVN: r128243
2007-09-07 15:42:17 +00:00
Dorit Nuzman
71f4a02318 re PR tree-optimization/33299 (miscompilation with gfortran -O2 -ffast-math -ftree-vectorize)
PR tree-optimization/33299
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses
        for all relevant loop-exit phis, not just the first.

From-SVN: r128242
2007-09-07 15:00:11 +00:00
Richard Guenther
ccf64c833f re PR middle-end/33330 (Wrong alias for accessing scalar through array)
2007-09-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33330
	* tree-ssa-operands.c (access_can_touch_variable): An access
	of the form (*p)[0] can touch a variable of same size.

From-SVN: r128240
2007-09-07 11:57:57 +00:00
Jan Hubicka
201b2eadc4 passes.c (init_optimization_passes): Add simple dce and addressable passes.
* passes.c (init_optimization_passes): Add simple dce and addressable
	passes.
	* tree-ssa.c (execute_update_addresses_taken): New function.
	(pass_update_address_taken): New.
	* tree-ssa-dse.c (execute_simple_dse): New function.
	(pass_simple_dse): New.
	* tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.

From-SVN: r128239
2007-09-07 11:28:35 +00:00
Tobias Burnus
f85138bc84 re PR middle-end/33321 (gcc manpage contains "@option<-Wstrict-overflow=1>")
2007-09-07  Tobias Burnus  <burnus@net-b.de>

	PR middle-end/33321
	* doc/invoke.texi: Fix -Wstrict-overflow= table.

From-SVN: r128238
2007-09-07 12:46:49 +02:00
Richard Guenther
d4ef8a0bbc revert: re PR tree-optimization/32586 (New VN misses FRE opportunities)
2007-09-07  Richard Guenther  <rguenther@suse.de>
 
        Revert
        2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32586
	* tree-ssa-sccvn.c (simplify_binary_expression): Avoid
	folding if nothing changed.
	(simplify_unary_expression): New function.  Do tree combining
	on conversion like codes.
	(try_to_simplify): Call it.

	* g++.dg/tree-ssa/pr27090.C: Remove XFAILs.
	* gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for
	now obsolete simplification.

From-SVN: r128236
2007-09-07 10:31:09 +00:00
Uros Bizjak
b616a16e1a re PR tree-optimization/32821 (tree-if-conv:combine_blocks with -ftree-dump-tree-all-details fails on ICE in compilation: segfault)
PR tree-optimization/32821
	* tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
	NULL in the call to set_bb_stmt_list.

testsuite/ChangeLog:

	PR tree-optimization/32821
	* gcc.dg/tree-ssa/pr32821.c: New file.

From-SVN: r128235
2007-09-07 12:17:46 +02:00
Uros Bizjak
c664bb1b46 fpu-387.h: Include cpuid.h.
* config/fpu-387.h: Include cpuid.h.
	(set_fpu): Use __get_cpuid to check for SSE.

From-SVN: r128234
2007-09-07 11:34:36 +02:00
Richard Sandiford
7ab6a03bf5 mips.c (build_mips16_call_stub): Emit all direct float calls here, rather than leaving some to the caller.
gcc/
	* config/mips/mips.c (build_mips16_call_stub): Emit all direct
	float calls here, rather than leaving some to the caller.
	Use call_internal_direct and call_value_internal_direct.
	* config/mips/mips.md (call_internal_direct): New pattern.
	(call_value_internal_direct): Likewise.

From-SVN: r128233
2007-09-07 08:38:42 +00:00
Richard Sandiford
8d1d0deea0 mips.c (mips_base_move_loop_invariants): New variable.
gcc/
	* config/mips/mips.c (mips_base_move_loop_invariants): New variable.
	(mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
	to 0 for MIPS16.
	(override_options): Set mips_base_move_loop_invariants.

From-SVN: r128232
2007-09-07 08:14:10 +00:00
Richard Sandiford
704aab3e3f mips.opt (mcode-readable=): Move to keep list alphabetical.
gcc/
	* config/mips/mips.opt (mcode-readable=): Move to keep list
	alphabetical.

From-SVN: r128231
2007-09-07 07:48:04 +00:00
Richard Sandiford
a318179e4e mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
config/
	* mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
	(CXXFLAGS_FOR_TARGET): Likewise.

gcc/
	* doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
	and -mgpopt options.  Adjust the -G documentation to match.
	* config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
	* config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
	function, split out from mips_classify_symbol.  Return false for
	!TARGET_LOCAL_SDATA.
	(mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
	Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
	(override_options): Check whether the -mgpopt setting is consistent
	with the other flags.
	(symbolic_expression_p): Delete.
	(mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
	and default_elf_select_rtx_section.
	(mips_in_small_data_p): Honor section attributes for MIPS16 too.
	Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
	external data and TARGET_EXTERN_SDATA.

gcc/testsuite/
	* gcc.dg/attr-alias-3.c: Use real asm for MIPS.
	* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_gp
	and mips_forced_no_er.
	(dg-mips-options): Add -mno-abicalls when a small-data option is
	specified.  Skip tests with small-data options if mips_forced_gp.
	Skip tests with -mexplicit-relocs if mips_forced_no_er.
	* gcc.target/mips/sdata-1.c: New test.
	* gcc.target/mips/sdata-2.c: Likewise.
	* gcc.target/mips/sdata-3.c: Likewise.
	* gcc.target/mips/sdata-4.c: Likewise.

From-SVN: r128230
2007-09-07 07:37:38 +00:00