Commit Graph

32329 Commits

Author SHA1 Message Date
Paolo Carlini b29441ec79 semantics.c (classtype_has_nothrow_copy_or_assign_p): Adjust per N2255; rename as classtype_has_nothrow_assign_or_copy_p.
gcc/cp
2007-04-25  Paolo Carlini  <pcarlini@suse.de>

	* semantics.c (classtype_has_nothrow_copy_or_assign_p): Adjust
	per N2255; rename as classtype_has_nothrow_assign_or_copy_p.
	(trait_expr_value): Adjust.

gcc/testsuite/
2007-04-25  Paolo Carlini  <pcarlini@suse.de>

	* g++.dg/ext/has_nothrow_assign.C: Adjust per N2255.

gcc/
2007-04-25  Paolo Carlini  <pcarlini@suse.de>

	* doc/extend.texi ([Type Traits]): Adjust per N2255.

From-SVN: r124170
2007-04-25 23:55:11 +00:00
Bob Wilson a2c2290b62 lib1funcs.asm (__udivsi3, __divsi3): Throw an exception for divide-by-zero.
* config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an exception
        for divide-by-zero.
        (__umodsi3, __modsi3): Likewise.

From-SVN: r124165
2007-04-25 21:40:42 +00:00
Dirk Mueller aa86a51b89 c-common.c (handle_sentinel_attribute): Annotate warning call with OPT_Wattributes.
* c-common.c (handle_sentinel_attribute): Annotate warning
       call with OPT_Wattributes.

From-SVN: r124163
2007-04-25 18:59:17 +00:00
Dirk Mueller d1c2effe9a tree-ssa.c ((warn_uninit): Annotate warning with -Wuninitialized.
* tree-ssa.c ((warn_uninit): Annotate warning with
       -Wuninitialized.

From-SVN: r124161
2007-04-25 18:45:39 +00:00
Dirk Mueller 253a697e66 c-typeck.c (build_compound_expr): Annotate warning() call with OPT_Wunused_value.
2007-04-25  Dirk Mueller  <dmueller@suse.de>

       * c-typeck.c (build_compound_expr): Annotate warning()
       call with OPT_Wunused_value.

From-SVN: r124160
2007-04-25 18:44:07 +00:00
Thiemo Seufer 500fc42586 mips.opt (mdmx, [...]): New options.
* config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
	(mips16): Fix typo.
	* config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
	on to the assembler.  Improve handling of -mno-mips16.  Add handling
	of -mno-mips3d, -mno-dsp, -mno-dspr2.
	* doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
	of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
	-mno-mdmx, -mno-mips3d, -mmt and -mno-mt.

From-SVN: r124153
2007-04-25 12:05:48 +00:00
Danny Smith 4b07e9f774 winnt.c (i386_pe_file_end): Strip only USER_LABEL_PREFIX when writing export name.
* config/i386/winnt.c (i386_pe_file_end): Strip only
	USER_LABEL_PREFIX when writing export name.

From-SVN: r124149
2007-04-25 10:06:28 +00:00
Richard Sandiford f5c7290e1e config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.
gcc/
	* config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
	sh/elf.h, vx-common.h and vxworks.h.
	* config/sh/sh.h: Include config/vxworks-dummy.h.
	(SUBTARGET_OVERRIDE_OPTIONS): Define.
	(OVERRIDE_OPTIONS): Use it.
	* config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
	(vxworks_picreg): New pattern.
	* config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
	VXWORKS_OS_CPP_BUILTINS.
	(LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
	to their VXWORKS_* equivalents.
	(SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
	(SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
	* config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
	(set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
	* config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
	-mrtp/-fPIC multilibs.
	(MULTILIB_EXCEPTIONS): Generalize globs accordingly.
	(MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
	(MULTILIB_OSDIRNAMES): Delete.

From-SVN: r124145
2007-04-25 08:03:55 +00:00
Anatoly Sokolov 5178d50ab6 re PR target/18989 (A few potentially ominous, and several likely harmless warnings during 4.0 build)
PR target/18989
 	* config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.

From-SVN: r124141
2007-04-25 10:18:33 +04:00
Brooks Moses 205a4d09ca real.c (mpfr_from_real): Handle Inf and NaN, and allow the rounding mode to be specified by the caller.
* real.c (mpfr_from_real): Handle Inf and NaN, and allow the
rounding mode to be specified by the caller.
(real_to_mpfr) Likewise.
* real.h: Update mpfr_from_real, mpfr_to_real prototypes to
include new arguments.
* builtins.c: Update mpfr_from_real, mpfr_to_real calls.

From-SVN: r124139
2007-04-24 19:12:47 -07:00
Ian Lance Taylor 8cf781f088 re PR tree-optimization/31605 (VRP eliminates a useful test due with conversion from unsigned int to int)
./:	PR tree-optimization/31605
	* tree-vrp.c (set_value_range): Check that min and max are not
	both overflow infinities.
	(set_value_range_to_value): New static function.
	(extract_range_from_binary_expr): Call set_value_range_to_value.
	(extract_range_from_cond_expr): Likewise.
	(extract_range_from_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.  Don't create a range
	which overflows on both sides.
	(vrp_meet): Check for a useless range.
	(vrp_visit_phi_node): If we see a constant which looks like an
	overflow infinity, turn off the TREE_OVERFLOW flag.
testsuite/:
	PR tree-optimizatoin/31605
	* gcc.c-torture/execute/pr31605.c: New test.

From-SVN: r124128
2007-04-24 22:24:01 +00:00
Ian Lance Taylor 1965dd3a1f * flow.c (elim_reg_cond): Handle a comparison of a subreg.
From-SVN: r124122
2007-04-24 21:02:21 +00:00
Simon Martin 438d798f12 re PR middle-end/25923 ([gfortran] garbled diagnostics with -O -Wuninitialized)
2007-04-24  Simon Martin  <simartin@users.sourceforge.net>

	PR diagnostic/25923
	* tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
	diagnostic message is being built.
	* tree-pretty-print.c (dump_generic_node): Only write the formatted text
	into BUFFER's stream if we are not building a diagnostic message.
	* toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
	dump_generic_node.
	* Makefile.in (toplev.o): Depend on tree-pass.h.

From-SVN: r124121
2007-04-24 20:52:16 +00:00
Ian Lance Taylor 4df28528f6 re PR tree-optimization/31602 (Overflow warning causes GDB -Werror build failure)
./:	PR tree-optimization/31602
	* tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
	conditionals in the copied loop header.
	* tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
	warnings if TREE_NO_WARNING is set.
	* doc/invoke.texi (Warning Options): Clarify that
	-Wstrict-overflow does not warn about loops.
testsuite/:
	PR tree-optimization/31602
	* gcc.dg/Wstrict-overflow-11.c: We no longer issue a warning.

From-SVN: r124120
2007-04-24 20:44:45 +00:00
Janis Johnson 2d83f07035 rs6000.c (function_arg_advance): For 32-bit ELF ABI...
* config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
	expand on the comment about _Decimal128 arguments and check the
	integer result of the modulus operation; for 64-bit ELF ABI, ensure
	that _Decimal128 argument uses even/odd register pair.
	(function_arg): For 32-bit ELF ABI, expand on the comment about
	_Decimal128 arguments and check the integer result of the modulus
	operation; for 64-bit ELF ABI, ensure that _Decimal128 argument
	uses even/odd register pair.
testsuite/
	* gcc.target/powerpc/ppc32-abi-dfp-1.c: New test.
	* gcc.target/powerpc/ppc64-abi-dfp-1.c: New test.

From-SVN: r124116
2007-04-24 19:29:34 +00:00
Hui-May Chang b883ab57fa reload1.c (merge_assigned_reloads): Do not merge a RELOAD_OTHER instruction with a RELOAD_FOR_OPERAND_ADDRESS...
2007-04-24  Hui-May Chang <hm.chang@apple.com>

	* reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
	instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.

	* gcc.target/i386/reload-1.c. New.

From-SVN: r124115
2007-04-24 19:17:22 +00:00
Olga Golovanevsky 8173746830 fix for PR31617
From-SVN: r124109
2007-04-24 15:54:18 +00:00
Richard Henderson 5fb54b9198 libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from IS_IBM_EXTENDED.
* libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from 
        IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
        * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
        looking for non-zero bits shifted out.  Avoid a recursive call
        when constructing the scalar.
        (__floatundisf): Likewise.

From-SVN: r124106
2007-04-24 08:28:21 -07:00
Nathan Froyd cd0a10dd99 dwarf2out.c (field_byte_offset): Move the existing logic under the control of PCC_BITFIELD_TYPE_MATTERS and just...
* dwarf2out.c (field_byte_offset): Move the existing logic
	under the control of PCC_BITFIELD_TYPE_MATTERS and just use
	the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.

From-SVN: r124104
2007-04-24 14:45:08 +00:00
Andreas Krebbel c9f599914f re PR target/31641 (ICE in s390_expand_setmem, at config/s390/s390.c:3618)
2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR target/31641
	* config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
	argument of 0 for memset.
	(s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
	unsigned shift instead of the signed variant.

2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR target/31641
	* gcc.c-torture/compile/pr31641.c: New testcase.

From-SVN: r124099
2007-04-24 12:08:05 +00:00
Andreas Krebbel 142cd70f50 s390.md ("*cmp<mode>_ccs_0_ibm", [...]): Insn definitions removed.
2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
	"fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
	"floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
	"*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
	"*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
	"*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
	"*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
	"*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
	"*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
	("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
	"truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
	"mul<mode>3", "div<mode>3"): Insn definitions added.
	("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
	"fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
	to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
	("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
	"trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
	"sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
	("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
	* config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
	TARGET_FLOAT_FORMAT): Macro definitions removed.
	(FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
	* config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
	z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
	(s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
	(s390_gen_rtx_const_DI): Function removed.
	* config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.

From-SVN: r124097
2007-04-24 08:25:28 +00:00
Richard Sandiford aeed4133ae optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions over an external ffs function.
gcc/
	* optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
	over an external ffs function.

From-SVN: r124096
2007-04-24 06:46:37 +00:00
Richard Sandiford 7f9844caf1 2007-xx-xx Chao-ying Fu <fu@mips.com> Richard Sandiford <richard@nildram.co.uk>
gcc/
2007-xx-xx  Chao-ying Fu  <fu@mips.com>
	    Richard Sandiford  <richard@nildram.co.uk>

	* doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
	* optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
	(smadd_widen_optab, umadd_widen_optab): Define.
	* optabs.c (init_optabs): Initialize smadd_widen_optab and
	umadd_widen_optab.
	* genopinit.c (optabs): Fill in smadd_widen_optab and
	umadd_widen_optab.
	* expr.c (expand_expr_real_1): Try to use smadd_widen_optab
	and umadd_widen_optab to implement multiply-add sequences.
	* config/mips/mips.md (*<su>mul_acc_di): Rename to...
	(<u>maddsidi4): ...this.  Extend condition to include
	GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
	of operand 0 to "ka" and use the three-operand form of madd<u>
	for TARGET_DSPR2.
	* config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
	to define_expands.
	* config/mips/constraints.md (ka): New register constraint.

gcc/testsuite/
2007-xx-xx  Richard Sandiford  <richard@nildram.co.uk>

	* gcc.target/mips/madd-1.c, gcc.target/mips/madd-2.c,
	* gcc.target/mips/madd-3.c, gcc.target/mips/madd-4.c,
	* gcc.target/mips/maddu-1.c, gcc.target/mips/maddu-2.c,
	* gcc.target/mips/maddu-3.c, gcc.target/mips/maddu-4.c: New tests.

From-SVN: r124095
2007-04-24 05:51:57 +00:00
Jan Hubicka ec9ac2bc42 Revert:
2007-04-23  Jan Hubicka  <jh@suse.cz>
	* function.c (init_function_start): Don't init line number info.
	(expand_function_end): Update.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): Kill.
	* function.h (reset_block_changes, record_block_change,
	finalize_block_changes, check_block_change, free_block_changes): Remove
	prototypes.
	(struct function): Remove ib_boundaries_block.
	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
	Use curr_insn_locator to initialize locator.
	(emit_line_note): Remove.
	* cfgexpand.c (expand_gimple_cond_expr): Update.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Initialize/finalize locators.
	* expr.c (expand_expr_real): Update.
	* cfglayout.c (line_locators_locs, line_locators_lines,
	file_locators_locs, file_locators_files): Remove.
	(set_block_levels): Move to cfgexpand.c.
	(insn_locators_initialize): Remove.
	(pass_insn_locators_initialize): Remove.
	(locations_locators_locs, locations_locators_vals): New static vars.
	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Likewise.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	New functions.
	(locator_location): New.
	(locator_line, locator_file): Rewrite.
	* rtl.h (emit_line_note): Kill.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	Declare.
	* tree-inline.c (initialize_cfun): Do not initialize
	ib_boundaries_block.
	* passes.c (pass_insn_locators_initialize): Remove.

From-SVN: r124094
2007-04-24 00:05:57 +00:00
Daniel Franke edc5f63bf6 invoke.texi: Removed leading '-' from option index entries.
2007-04-24  Daniel Franke  <franke.daniel@gmail.com>

       * doc/invoke.texi: Removed leading '-' from option index entries.

From-SVN: r124092
2007-04-23 20:02:46 -04:00
Zdenek Dvorak 7506e1cbdc tree-phinodes.c (reserve_phi_args_for_new_edge, [...]): Use phi_nodes_ptr.
* tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
	Use phi_nodes_ptr.
	(create_phi_node): Use set_phi_nodes.
	* omp-low.c (expand_omp_parallel): Use bb_stmt_list.
	* tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
	(combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
	* tree-flow-inline.h (phi_nodes, set_phi_nodes,
	(bsi_start, bsi_last): Use bb_stmt_list.
	(phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
	* cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
	Traverse the statements using tsi iterator.
	* basic-block.h (struct basic_block_def): Fields stmt_list
	and phi_nodes moved to ...
	(struct tree_bb_info): ... new structure.
	* tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
	(tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
	(remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
	(tree_verify_flow_info): Verify that il.tree is not set for
	entry and exit block.
	(tree_split_block): Use set_bb_stmt_list.

From-SVN: r124086
2007-04-23 23:15:54 +00:00
Mike Stump 933e4fe7ae i386.c (ix86_tune_features [X86_TUNE_DEEP_BRANCH_PREDICTION]): Prefer call over thunks on nocona and core2.
* config/i386/i386.c (ix86_tune_features
	[X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
	nocona and core2.

From-SVN: r124084
2007-04-23 22:09:21 +00:00
H.J. Lu 10e4d956c1 i386.md (prefix_extra): New attribute.
2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (prefix_extra): New attribute.
	(length): Add prefix_extra.

	* onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
	(sse2_movntv2di): Likewise.
	(sse2_cvtps2dq): Likewise.
	(sse2_cvtpd2pi): Likewise.
	(sse2_cvttpd2pi): Likewise.
	(*sse2_cvtpd2ps): Likewise.
	(*add<mode>3): Likewise.
	(sse2_ssadd<mode>3): Likewise.
	(sse2_usadd<mode>3): Likewise.
	(*sub<mode>3): Likewise.
	(sse2_sssub<mode>3): Likewise.
	(sse2_ussub<mode>3): Likewise.
	(*mulv8hi3): Likewise.
	(*smulv8hi3_highpart): Likewise.
	(*umulv8hi3_highpart): Likewise.
	(sse2_umulv2siv2di3): Likewise.
	(sse2_pmaddwd): Likewise.
	(ashr<mode>3): Likewise.
	(lshr<mode>3): Likewise.
	(ashl<mode>3): Likewise.
	(sse2_ashlti3): Likewise.
	(sse2_lshrti3): Likewise.
	(*umaxv16qi3): Likewise.
	(*smaxv8hi3): Likewise.
	(*uminv16qi3): Likewise.
	(*sminv8hi3): Likewise.
	(sse2_eq<mode>3): Likewise.
	(sse2_gt<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(sse2_nand<mode>3): Likewise.
	(*ior<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(sse2_packsswb): Likewise.
	(sse2_packssdw): Likewise.
	(sse2_packuswb): Likewise.
	(sse2_punpckhbw): Likewise.
	(sse2_punpcklbw): Likewise.
	(sse2_punpckhwd): Likewise.
	(sse2_punpcklwd): Likewise.
	(sse2_punpckhdq): Likewise.
	(sse2_punpckldq): Likewise.
	(sse2_punpckhqdq): Likewise.
	(sse2_punpcklqdq): Likewise.
	(*sse2_pinsrw): Likewise.
	(*sse2_pextrw): Likewise.
	(sse2_pshufd_1): Likewise.
	(sse2_uavgv16qi3): Likewise.
	(sse2_uavgv8hi3): Likewise.
	(sse2_psadbw): Likewise.
	(sse2_pmovmskb): Likewise.
	(*sse2_maskmovdqu): Likewise.
	(*sse2_maskmovdqu_rex64): Likewise.
	(sse4a_extrqi): Likewise.
	(sse4a_extrq): Likewise.
	(sse3_lddqu): Set prefix_rep.
	(sse3_addsubv4sf3): Likewise.
	(sse3_haddv4sf3): Likewise.
	(sse3_hsubv4sf3): Likewise.
	(sse_cvtss2si): Likewise.
	(sse_cvtss2si_2): Likewise.
	(sse_cvtss2siq): Likewise.
	(sse_cvtss2siq_2): Likewise.
	(sse_cvttss2si): Likewise.
	(sse_cvttss2siq): Likewise.
	(sse2_cvttps2dq): Likewise.
	(sse3_movshdup): Likewise.
	(sse3_movsldup): Likewise.
	(sse2_cvtsd2si): Likewise.
	(sse2_cvtsd2si_2): Likewise.
	(sse2_cvtsd2siq): Likewise.
	(sse2_cvtsd2siq_2): Likewise.
	(sse2_cvttsd2si): Likewise.
	(sse2_cvttsd2siq): Likewise.
	(*sse2_cvtpd2dq): Likewise.
	(*sse2_cvttpd2dq): Likewise.
	(sse2_pshuflw_1): Likewise.
	(sse2_pshufhw_1): Likewise.
	(sse4a_insertqi): Likewise.
	(sse4a_insertq): Likewise.
	(ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
	(ssse3_phadddv4si3): Likewise.
	(ssse3_phaddswv8hi3): Likewise.
	(ssse3_phsubwv8hi3): Likewise.
	(ssse3_phsubdv4si3): Likewise.
	(ssse3_phsubswv8hi3): Likewise.
	(ssse3_pmaddubswv8hi3): Likewise.
	(ssse3_pmulhrswv8hi3): Likewise.
	(ssse3_pshufbv16qi3): Likewise.
	(ssse3_psign<mode>3): Likewise.
	(ssse3_palignrti): Likewise.
	(abs<mode>2): Likewise.
	(ssse3_phaddwv4hi3): Set prefix_extra.
	(ssse3_phadddv2si3): Likewise.
	(ssse3_phaddswv4hi3): Likewise.
	(ssse3_phsubwv4hi3): Likewise.
	(ssse3_phsubdv2si3): Likewise.
	(ssse3_phsubswv4hi3): Likewise.
	(ssse3_pmaddubswv4hi3): Likewise.
	(ssse3_pmulhrswv4hi3): Likewise.
	(ssse3_pshufbv8qi3): Likewise.
	(ssse3_psign<mode>3): Likewise.
	(ssse3_palignrdi): Likewise.
	(abs<mode>2): Likewise.
	(sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
	(*vec_dupv2df): Set mode to V2DF instead of V4SF.
	(sse2_pmovmskb): Set mode to SI instead of V2DF.

From-SVN: r124077
2007-04-23 12:02:57 -07:00
Nick Clifton f4b4a3e235 * params.def: Fix formatting of emacs local variables.
From-SVN: r124074
2007-04-23 16:20:38 +00:00
H.J. Lu 9a072eb638 sse.md (sse2_stored): Don't split to inter-unit move if inter-unit move isn't allowed.
2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse2_stored): Don't split to inter-unit
	move if inter-unit move isn't allowed.
	Don't split moving the first element of V2DI to DI to inter-unit
	move if inter-unit move isn't allowed.

From-SVN: r124070
2007-04-23 09:15:14 -07:00
Richard Guenther 3b5ee6a4c1 tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS and CDI_POST_DOMINATORS separately.
2007-04-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
	and CDI_POST_DOMINATORS separately.

From-SVN: r124065
2007-04-23 14:19:39 +00:00
Nick Clifton 6d16b6e782 c.opt (Wformat-contains-nul): Add warning attribute.
From-SVN: r124063
2007-04-23 11:04:11 +00:00
Jan Hubicka c90533c60b function.c (init_function_start): Don't init line number info.
* function.c (init_function_start): Don't init line number info.
	(expand_function_end): Update.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): Kill.
	* function.h (reset_block_changes, record_block_change,
	finalize_block_changes, check_block_change, free_block_changes): Remove
	prototypes.
	(struct function): Remove ib_boundaries_block.
	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
	Use curr_insn_locator to initialize locator.
	(emit_line_note): Remove.
	* cfgexpand.c (expand_gimple_cond_expr): Update.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Initialize/finalize locators.
	* expr.c (expand_expr_real): Update.
	* cfglayout.c (line_locators_locs, line_locators_lines,
	file_locators_locs, file_locators_files): Remove.
	(set_block_levels): Move to cfgexpand.c.
	(insn_locators_initialize): Remove.
	(pass_insn_locators_initialize): Remove.
	(locations_locators_locs, locations_locators_vals): New static vars.
	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Likewise.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	New functions.
	(locator_location): New.
	(locator_line, locator_file): Rewrite.
	* rtl.h (emit_line_note): Kill.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	Declare.
	* tree-inline.c (initialize_cfun): Do not initialize
	ib_boundaries_block.
	* passes.c (pass_insn_locators_initialize): Remove.

From-SVN: r124061
2007-04-23 09:53:59 +00:00
Andrew Pinski 1f2ad84c3c re PR middle-end/31448 (ICE in expand_shift with bit fields and expand inlining constants)
2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/31448
        * expr.c (reduce_to_bit_field_precision): Handle
        CONST_INT rtx's.

2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/31448
        * gcc.c-torture/execute/pr31448.c: New testcase.

From-SVN: r124054
2007-04-22 18:53:56 -07:00
Uros Bizjak 8115817bf2 re PR tree-optimization/24659 (Conversions are not vectorized)
2007-04-22  Uros Bizjak  <ubizjak@gmail.com>

        PR tree-optimization/24659
        * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
        OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
        (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
        * genopinit.c (optabs): Rename vec_pack_mod_optab
        to vec_pack_trunc_optab.
        * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
        early for scalar floating point operands for NOP_EXPR.
        (vectorizable_type_promotion): Ditto.
        * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
        vec_pack_trunc_optab.
        (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.

        * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
        * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
        Rename from VEC_PACK_MOD_EXPR.
        (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
        * expr.c (expand_expr_real_1): Ditto.
        * tree-inline.c (estimate_num_insns_1): Ditto.
        * tree-vect-generic.c (expand_vector_operations_1): Ditto.

        * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
        (vec_unpacks_lo_v4sf): Ditto.
        (vec_pack_trunc_v2df): Ditto.
        (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
        (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
        (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
    
        * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
        vec_pack_mod_v8hi.
        (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.

        * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
        Rename from VEC_PACK_MOD_EXPR.  This expression also represent
        packing of floating point operands.
        [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
        represent unpacking of floating point operands.
        * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
        [vec_unpacks_hi]: Ditto.
        [vec_unpacks_lo]: Ditto.

testsuite/ChangeLog:

2007-04-22  Uros Bizjak  <ubizjak@gmail.com>

    PR tree-optimization/24659
    * gcc.dg/vect/vect-float-extend-1.c: New test.
    * gcc.dg/vect/vect-float-truncate-1.c: New test.

From-SVN: r124045
2007-04-22 20:45:06 +02:00
Jan Hubicka 395a40e0e2 misc.c (gnat_expand_body): Don't call target for destructors, avoid redundant check on syntax errors.
* ada/misc.c (gnat_expand_body): Don't call target for destructors,
	avoid redundant check on syntax errors.

	* final.c (rest_of_handle_final): Call
	targetm.asm_out.constructor/targetm.asm_out.destructor
	* cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
	proper priority via decl_*_priority_insert.
	* c-common.c (c_expand_body): Likewise.

From-SVN: r124044
2007-04-22 15:33:32 +00:00
Zdenek Dvorak b7716a8e90 Fix whitespace.
From-SVN: r124043
2007-04-22 12:02:29 +00:00
Richard Guenther e0a607311c re PR tree-optimization/29789 (Missed invariant out of the loop with conditionals and shifts)
2007-04-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/29789
	* tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
	(rewrite_reciprocal): New helper split out from
	determine_invariantness_stmt.
	(rewrite_bittest): Likewise.
	(determine_invariantness_stmt): Rewrite (A >> B) & 1 to
	A & (1 << B) if (1 << B) is loop invariant but (A >> B)
	is not.

	* gcc.dg/tree-ssa/ssa-lim-1.c: New testcase.
	* gcc.dg/tree-ssa/ssa-lim-2.c: Likewise.

From-SVN: r124042
2007-04-22 11:26:49 +00:00
Revital Eres 76fd2caa7d Extend MVE patterns
From-SVN: r124037
2007-04-22 08:46:58 +00:00
Zdenek Dvorak f06b0a10f9 predict.c: Include pointer-set.h.
* predict.c: Include pointer-set.h.
	(bb_predictions): New variable.
	(tree_predicted_by_p, tree_predict_edge,
	remove_predictions_associated_with_edge): Use bb_predictions map
	instead of bb->predictions.
	(clear_bb_predictions, assert_is_empty): New functions.
	(combine_predictions_for_bb): Use bb_predictions map.  Call
	clear_bb_predictions.
	(tree_estimate_probability): Create and free bb_predictions map.
	* Makefile.in (predict.o): Add pointer-set.h dependency.
	* basic-block.h (struct basic_block_def): Remove predictions
	field.
	* cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.

From-SVN: r124032
2007-04-22 00:51:38 +00:00
Kaz Kojima e919dfe284 re PR target/31480 (ICE with -O -fomit-frame-pointer on SH)
PR target/31480
	* config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
	is null.

From-SVN: r124031
2007-04-22 00:18:02 +00:00
Andrew Pinski 7be97ac71e timevar.c (timevar_print): Change reference of --disable-checking to --enable-checking=release.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * timevar.c (timevar_print): Change reference of --disable-checking to
        --enable-checking=release.  Also warn if assert checking is disabled.

From-SVN: r124025
2007-04-21 14:55:33 -07:00
Andrew Pinski c8a0a219fd re PR c/30265 (Compound literal can cause invalid gimple)
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR C/30265
        * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
        decl as addressable if the compound literal was marked as
        addressable.
        Mark the decl as a gimple register if it is a complex or
        vector decl and does not live in memory.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR C/30265
        * gcc.c-torture/compile/compound-literal-2.c: New testcase.
        * gcc.c-torture/compile/compound-literal-3.c: New testcase.

From-SVN: r124024
2007-04-21 14:47:35 -07:00
Andrew Pinski 3d95caa4af tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
        (GENERIC_NEXT): New function macro.
        (PHI_CHAIN): Use phi_node's new chain variable.
        (tree_phi_node): Change tree_common to tree_base
        and add the chain field.
        * tree-phinodes.c (make_phi_node): Don't set
        TREE_TYPE on the new node.
        * c-decl.c (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_TUPLE_P in chain_next.
        * tree-vect-transform.c
        (get_initial_def_for_induction): Look at
        PHI_RESULT_TREE for the type of the phi node.
        (update_vuses_to_preheader): Use PHI_CHAIN
        instead of TREE_CHAIN on the phi node.
        * tree-ssa-structalias.c (compute_points_to_sets):
        Likewise.
        (ipa_pta_execute): Likewise.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * cp-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * java-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.

From-SVN: r124021
2007-04-21 13:40:31 -07:00
Richard Guenther 84ece8efd2 re PR tree-optimization/31136 (FRE ignores bit-field truncation (C and C++ front-end don't produce bit-field truncation)
2007-04-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31136
	* fold-const.c (fold_unary): Call fold_convert_const on the
	original tree.

	* gcc.c-torture/execute/pr31136.c: New testcase.

From-SVN: r124020
2007-04-21 17:47:13 +00:00
Alexandre Oliva 1071bcbdf8 gcse.c (store_killed_in_insn): Handle PARALLELs.
gcc/ChangeLog:
* gcse.c (store_killed_in_insn): Handle PARALLELs.
(store_killed_in_pat): New.
gcc/testsuite/ChangeLog:
* gcc.target/i386/movsi-sm-1.c: New.

From-SVN: r124015
2007-04-21 06:48:37 +00:00
Richard Henderson c7a2139bef re PR target/31628 (stdcall function is miscompiled)
PR target/31628
        * config/i386/i386.c (type_has_variadic_args_p): Look for any
        TREE_LIST with a void_type_node value, not void_list_node exactly.

From-SVN: r124014
2007-04-20 16:53:37 -07:00
Douglas Gregor fda0adca8d standards.texi: Re-arrange into language-specific subsections.
2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>

	* doc/standards.texi: Re-arrange into language-specific
	subsections. Add a C++ section, documenting which standards we
	support.

From-SVN: r124013
2007-04-20 23:45:25 +00:00
Zdenek Dvorak 285463b5a2 tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
* tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
	* tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.

From-SVN: r124012
2007-04-20 23:27:51 +00:00
Daniel Jacobowitz 860532dff2 sysv4.h (STARTFILE_DEFAULT_SPEC): Include ecrti.o and crtbegin.o.
* config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
	ecrti.o and crtbegin.o.
	(LIB_DEFAULT_SPEC): Include -lc.
	(ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.

From-SVN: r124006
2007-04-20 21:56:53 +00:00