Commit Graph

11194 Commits

Author SHA1 Message Date
Jakub Jelinek 719bb4e3d3 Convert ChangeLog files to UTF-8.
Command used:
LC_ALL=C sed -i \
  -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \
  -e 's/\(Av\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \
  -e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\)dola/Esp\xc3\xadndola/' \
  -e 's/Schl\(u\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \
  -e 's/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \
  -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \
  -e 's/G\xfctlein/G\xc3\xbctlein/' \
  -e 's/G\xe1[b]or/G\xc3\xa1bor/' \
  -e 's/L\xf3ki/L\xc3\xb3ki/' \
  -e 's/Fautr\xc3 /Fautr\xc3\xa9 /' \
  -e 's/S\xe9[b]astian/S\xc3\xa9bastian/' \
  -e 's/Th\xef\xbf\xbd[d]ore/Th\xc3\xa9odore/' \
  -e 's/Cors\xc3\xc2\xa9pius/Cors\xc3\xa9pius/' \
  -e 's/K\xfchl/K\xc3\xbchl/' \
  -e 's/R\xf6nnerup/R\xc3\xb6nnerup/' \
  -e 's/L\xf8vset/L\xc3\xb8vset/' \
  -e 's/Ph\x81\xfb\x81\xf4ng-Th\x81\xe5o/Ph\xc3\xbb\xc3\xb4ng-Th\xc3\xa5o/' \
  -e 's/V\x81\xf5/V\xc3\xb5/' \
  -e 's/J\xf6nsson/J\xc3\xb6nsson/' \
  -e 's/V\xef\xbf\xbdis\xef\xbf\xbdnen/V\xc3\xa4is\xc3\xa4nen/' \
  -e 's/J\xef\xbf\xbdrg/J\xc3\xb6rg/' \
  -e 's/M\xef\xbf\xbdsli/M\xc3\xb6sli/' \
  -e 's/R\xe4ty/R\xc3\xa4ty/' \
  -e 's/2003\xc2\xad-/2003-/' \
  -e 's/\xc2\xa0/ /g' \
  -e 's/ \xa0/  /g' \
  -e 's/\xa0 //' \
  `find . -name \*ChangeLog\* | grep -v /.svn`

From-SVN: r140033
2008-09-05 13:07:45 +02:00
Jan Hubicka 0cf9dcf805 i386.c (decide_alg): Be more conservative about optimizing for size.
* i386.c (decide_alg): Be more conservative about optimizing for size.

	* gcc.target/i386/cold-attribute-1.c: Update testcase.

From-SVN: r140030
2008-09-05 08:44:11 +00:00
Ian Lance Taylor 84320b0be2 varasm.c (narrowing_initializer_constant_valid_p): New static function.
./:	* varasm.c (narrowing_initializer_constant_valid_p): New
	static function.
	(initializer_constant_valid_p): Call it.
testsuite/:
	* g++.dg/init/const7.C: New test.

From-SVN: r140025
2008-09-05 05:36:31 +00:00
Adam Nemet 5299815b88 mips.h (ISA_HAS_SEQ_SNE): New macro.
* config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
	* config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
	second operand is a reg_imm10_operand.
	* config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
	*sne_<GPR:mode><GPR2:mode>_sne): New patterns.
	(*seq_<GPR:mode><GPR2:mode>): Rename to
	*seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
	ISA_HAS_SEQ_SNE.
	(*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
	*seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
	ISA_HAS_SEQ_SNE.
	(*sne_<GPR:mode><GPR2:mode>): Rename to
	*sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
	ISA_HAS_SEQ_SNE.

testsuite/
	* gcc.target/mips/seq-1.c: New test.
	* gcc.target/mips/octeon-seq-1.c: New test.
	* gcc.target/mips/octeon-seq-2.c: New test.
	* gcc.target/mips/octeon-seq-3.c: New test.
	* gcc.target/mips/octeon-seq-4.c: New test.
	* gcc.target/mips/scc-2.c: Also pass on sltiu.
	* gcc.target/mips/scc-3.c: Likewise.

From-SVN: r140010
2008-09-04 22:19:49 +00:00
Adam Nemet c842413274 mips.h (ISA_HAS_EXTS): New macro.
* config/mips/mips.h (ISA_HAS_EXTS): New macro.
	* config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
	combining an arithmetic right shift by more than 31 and a
	trunction.  Don't match for out-of-range shift amounts.  Set
	attribute mode to <MODE>.
	(*lshr32_trunc<mode>): Name the pattern combining a logical right
	shift by 32 and and a truncation.  Set attribute mode to <MODE>.
	(*<optab>_trunc<mode>_exts): New pattern for truncated right
	shifts by less than 32.
	(extv): Change predicate on first operand to accept registers.
	Change predicate of the other operands from immediate_operand to
	const_int_operand.  Expand exts when source is a register.
	(extzv): Change predicate of the constant operands from
	immediate_operand to const_int_operand.
	(extzv<mode>): Change predicate of the constant operands from
	immediate_operand to const_int_operand and no constraint. Also
	remove mode.
	(*extzv_trunc<mode>_exts): New pattern.

testsuite/
	* gcc.target/mips/truncate-2.c: New test.
	* gcc.target/mips/octeon-exts-1.c: New test.
	* gcc.target/mips/octeon-exts-2.c: New test.
	* gcc.target/mips/octeon-exts-3.c: New test.
	* gcc.target/mips/octeon-exts-4.c: New test.

From-SVN: r140009
2008-09-04 21:24:31 +00:00
Adam Nemet 49912bcd97 mips.h (ISA_HAS_CINS): New macro.
* config/mips/mips.h (ISA_HAS_CINS): New macro.
	* config/mips/mips-protos.h (mask_low_and_shift_p,
	mask_low_and_shift_len): Declare.
	* config/mips/mips.c (mask_low_and_shift_p,
	mask_low_and_shift_len): New functions.
	(mips_print_operand): Handle new operand prefix "m".
	* config/mips/mips.md (*cins<mode>): New pattern.

testsuite/
	* gcc.target/mips/octeon-cins-1.c: New test.
	* gcc.target/mips/octeon-cins-2.c: New test.

From-SVN: r140008
2008-09-04 21:02:30 +00:00
Richard Guenther 6e1b67b364 trans-array.c (gfc_conv_array_parameter): Use correct types in building COND_EXPRs.
2008-09-04  Richard Guenther  <rguenther@suse.de>

	* trans-array.c (gfc_conv_array_parameter): Use correct types
	in building COND_EXPRs.
	* trans-expr.c (gfc_conv_missing_dummy): Likewise.
	* trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.

	* gfortran.dg/internal_pack_4.f90: Adjust pattern.

From-SVN: r140001
2008-09-04 19:32:02 +00:00
Daniel Kraft d555161825 re PR fortran/37099 (Wrong results when comparing a character array to a character expression)
2008-09-04  Daniel Kraft  <d@domob.eu>

	* PR fortran/37099
	* expr.c (simplify_const_ref): Update expression's character length
	when pulling out a substring reference.

2008-09-04  Daniel Kraft  <d@domob.eu>

	PR fortran/37099
	* gfortran.dg/string_compare_1.f90: New text.
	* gfortran.dg/string_compare_2.f90: New text.
	* gfortran.dg/string_compare_3.f90: New text.

From-SVN: r139997
2008-09-04 21:16:13 +02:00
H.J. Lu 04888e68e7 re PR middle-end/37243 (IRA causes wrong code generation)
2008-09-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/37243
	* gfortran.dg/pr37243.f: New.

From-SVN: r139987
2008-09-04 08:46:05 -07:00
Jan Hubicka d7f2fbf618 re PR middle-end/37343 (ICE in expand_expr_real_1, at expr.c:7290)
PR middle-end/37343
	* tree-switch-conversion.c (check_final_bb): Accept only IP
	invariants.
	* g++.dg/torture/pr37343.C New file.

From-SVN: r139983
2008-09-04 10:45:57 +00:00
Ira Rosen 0af0e8dca5 slp-perm-1.c: Add call to check_vect.
* gcc.dg/vect/slp-perm-1.c: Add call to check_vect.
        * gcc.dg/vect/slp-perm-2.c, gcc.dg/vect/slp-perm-3.c,
        gcc.dg/vect/slp-perm-4.c, gcc.dg/vect/slp-perm-5.c,
        gcc.dg/vect/slp-perm-6.c, gcc.dg/vect/slp-perm-7.c,
        gcc.dg/vect/slp-perm-8.c, gcc.dg/vect/slp-perm-9.c: Likewise.

From-SVN: r139982
2008-09-04 10:41:50 +00:00
Jan Hubicka 4db15d75ec re PR tree-optimization/37345 (Segfault in decl_function_context (TYPE_MAIN_VARIANT))
PR tree-optimization/37345
	PR tree-optimization/37358
	PR tree-optimization/37357
	* tree.c (build_function_type_skip_args): Build distinct type copy;
	set TYPE_CONTEXT.
	(build_function_decl_skip_args): Set type of new decl not orig decl;
	clear DECL_VINDEX for methods turned into functions.

From-SVN: r139980
2008-09-04 10:30:26 +00:00
Tobias Grosser 0da366c737 2008-09-03 Tobias Grosser <grosser@fim.uni-passau.de>
* gcc/testsuite/lib/target-supports.exp
	(check_effective_target_fgraphite): Fix test. Graphite is only available
	with -O1.

From-SVN: r139970
2008-09-04 01:15:41 +00:00
H.J. Lu 92f9cde563 vector-4.c: Add -mavx for x86.
2008-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.c-torture/compile/vector-4.c: Add -mavx for x86.

	* gcc.target/i386/avx-3.c: Require DFP support.

From-SVN: r139960
2008-09-03 15:08:03 -07:00
Jakub Jelinek 3e03c9591c re PR c++/37348 (internal compiler error: tree check: expected var_decl, have field_decl in cp_finish_decl, at cp/decl.c:5461)
PR c++/37348
	* decl.c (cp_finish_decl): Only set
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL.

	* g++.dg/parse/crash45.C: New test.

From-SVN: r139956
2008-09-03 22:34:35 +02:00
Jakub Jelinek 3368cdd3f5 re PR c++/37189 (OpenMP task construct with implicit firstprivate variables ICEs)
PR c++/37189
	* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New
	extern decls.
	* decl2.c (mark_used): If defer_mark_used_calls, push decl into
	deferred_mark_used_calls vector and exit early.
	* decl.c (defer_mark_used_calls, deferred_mark_used_calls): New
	variables.
	(finish_function): Set defer_mark_used_calls for the duration of the
	function.  Call mark_used on any queued decls.

	* g++.dg/gomp/pr37189.C: New test.

From-SVN: r139955
2008-09-03 22:33:21 +02:00
Jakub Jelinek 8660d96223 re PR debug/37322 (FAIL: gfortran.dg/debug/pr35154-dwarf2.f)
PR debug/37322
	* gfortran.dg/debug/pr35154-dwarf2.f: Fix up scan-assembler regexps.

From-SVN: r139954
2008-09-03 22:28:52 +02:00
Andrew Pinski e8f97b70cb re PR middle-end/36445 (ICE in expand_expr_real_1 with -O1 with vector registers)
2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/36445
        * g++.dg/torture/pr36445.C: New test.

From-SVN: r139947
2008-09-03 12:27:35 -07:00
Andrew Pinski c0ab1df3bb re PR middle-end/37293 (r139762 breaks libstdc++ build on darwin)
2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/37293
        * cgraphunit.c (update_call_expr): Remove eh regions from statements
        which become non throw.
        (cgraph_function_versioning): Also clear DECL_WEAK.  Call
        update_call_expr after updating the flags on the decl.

2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/37293
        * g++.dg/torture/ipa-cp-1.C: New test.

From-SVN: r139946
2008-09-03 11:48:27 -07:00
Jakub Jelinek 169e477d01 Fix up PR number - PR c++/37346
From-SVN: r139941
2008-09-03 19:30:35 +02:00
David Edelsohn e4b16c6d06 * g++.dg/ext/java-2.C: Disable on AIX.
From-SVN: r139938
2008-09-03 09:18:42 -04:00
Jakub Jelinek 05a26161b4 re PR target/37436 (arm-cross-g++. internal compiler error: in extract_insn, at recog.c:1990)
PR c++/37436
	* gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
	substatements.
	* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.

	* g++.dg/gomp/pr37436.C: New test.

From-SVN: r139937
2008-09-03 15:03:56 +02:00
Bernd Schmidt a6340be144 gcc/
From Michael Frysinger  <michael.frysinger@analog.com>
	* config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
	bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
	for bf538.

gcc/testsuite/
	From Mike Frysinger  <michael.frysinger@analog.com>
	* gcc.target/bfin/mcpu-bf522.c: Check SILICON_REVISION is 0x0001.
	* gcc.target/bfin/mcpu-bf523.c: Likewise.
	* gcc.target/bfin/mcpu-bf524.c: Likewise.
	* gcc.target/bfin/mcpu-bf525.c: Likewise.
	* gcc.target/bfin/mcpu-bf526.c: Likewise.
	* gcc.target/bfin/mcpu-bf527.c: Likewise.
	* gcc.target/bfin/mcpu-bf542.c: Likewise.
	* gcc.target/bfin/mcpu-bf544.c: Likewise.
	* gcc.target/bfin/mcpu-bf547.c: Likewise.
	* gcc.target/bfin/mcpu-bf548.c: Likewise.
	* gcc.target/bfin/mcpu-bf549.c: Likewise.

From-SVN: r139935
2008-09-03 12:23:19 +00:00
John David Anglin 24ce68eed9 pr33009.c: xfail on hppa*-*-*.
* gcc.c-torture/compile/pr33009.c: xfail on hppa*-*-*.
	* gcc.c-torture/compile/pr11832.c: Likewise.

From-SVN: r139919
2008-09-02 23:43:21 +00:00
H.J. Lu 4aab97f958 i386.c (X86_64_VARARGS_SIZE): Removed.
* config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
	(setup_incoming_varargs_64): Assume cum != NULL. Set/check
	ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
	ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
	Don't set ix86_save_varrargs_registers.
	(ix86_setup_incoming_varargs): Assume cum != NULL.
	(ix86_va_start): Check ix86_varargs_gpr_size and
	ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
	cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
	from frame pointer if ix86_varargs_gpr_size == 0.
	(ix86_compute_frame_layout): Updated.
	* config/i386/i386.h (ix86_save_varrargs_registers): Removed.
	(ix86_varargs_gpr_size): Define.
	(ix86_varargs_fpr_size): Likewise.
	(machine_function): Remove save_varrargs_registers.
	Add varargs_gpr_size and varargs_fpr_size.

	* gcc.target/i386/amd64-abi-3.c: New test.
	* gcc.target/i386/amd64-abi-4.c: Likewise.
	* gcc.target/i386/amd64-abi-5.c: Likewise.
	* gcc.target/i386/amd64-abi-6.c: Likewise.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r139910
2008-09-02 21:49:41 +02:00
Jakub Jelinek 833ee764e7 re PR tree-optimization/36766 (natGC.cc:229: internal compiler error: Segmentation fault)
PR tree-optimization/36766
	* tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
	for already removed basic blocks.

	* g++.dg/tree-ssa/pr36766.C: New test.

From-SVN: r139908
2008-09-02 21:13:47 +02:00
Jakub Jelinek c83c7e7e47 re PR testsuite/36332 (FAIL: gcc.dg/torture/type-generic-1.c execution test on powerpc-*)
PR target/36332
	* real.c (real_maxval): Clear a lower bit to make real_maxval
	match get_max_float for IBM long double format.

	* gcc.c-torture/execute/ieee/pr36332.c: New test.

From-SVN: r139906
2008-09-02 20:46:29 +02:00
Jakub Jelinek ef66fb294a re PR c/37171 (Canonical spelling optimization dependency)
PR c/37171
	* g++.dg/ext/attrib34.C: New test.

From-SVN: r139904
2008-09-02 20:42:48 +02:00
Sebastian Pop f8bf925265 backport: configure: Regenerate.
2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>
	    Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Konrad Trifunovic  <konrad.trifunovic@inria.fr>
	    Adrien Eliche  <aeliche@isty.uvsq.fr>

	Merge from graphite branch.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* configure.ac (host_libs): Add ppl and cloog.
	Add checks for PPL and CLooG.
	* Makefile.def (ppl, cloog): Added modules and dependences.
	* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
	(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.

gcc/
	* graphite.c: New.
	* graphite.h: New.
	* tree-loop-linear.c (perfect_loop_nest_depth): Export.
	* doc/invoke.texi (-floop-block, -floop-interchange,
	-floop-strip-mine): Document new flags.
	* tree-into-ssa.c (gimple_vec): Moved...
	* tree-loop-distribution.c (rdg_component): Moved...
	* cfgloopmanip.c: Include tree-flow.h.
	(update_dominators_in_loop): New.
	(create_empty_if_region_on_edge): New.
	(create_empty_loop_on_edge): New.
	(loopify): Use update_dominators_in_loop.
	* tree-pass.h (pass_graphite_transforms): Declared.
	* configure: Regenerate.
	* tree-phinodes.c (make_phi_node): Export.
	(add_phi_node_to_bb): New, split from create_phi_node.
	* tree-chrec.c (for_each_scev_op): New.
	* tree-chrec.h (for_each_scev_op): Declared.
	* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
	(remove_statement): Call get_phi_with_result.
	* config.in (HAVE_cloog): Undef.
	* gdbinit.in (pgg): New.
	* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
	* tree-ssa-loop.c (graphite_transforms): New.
	(gate_graphite_transforms): New.
	(pass_graphite_transforms): New.
	* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
	HAVE_cloog): Defined.
	* tree-vectorizer.c (rename_variables_in_bb): Export.
	* tree-data-ref.c (dr_may_alias_p): Export.
	(stmt_simple_memref_p): New.
	(find_data_references_in_stmt): Export.
	(find_data_references_in_loop): Export.
	(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
	(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
	(create_rdg_vertices): Export.
	(build_empty_rdg): New.
	(build_rdg): Call build_empty_rdg.  Free dependence_relations.
	* tree-data-ref.h (rdg_component): ... here.
	(scop_p): New.
	(struct data_reference): Add a field scop.
	(DR_SCOP): New.
	(find_data_references_in_loop): Declared.
	(find_data_references_in_stmt): Declared.
	(create_rdg_vertices): Declared.
	(dr_may_alias_p): Declared.
	(stmt_simple_memref_p): Declared.
	(struct rdg_edge): Add a field ddr_p relation.
	(build_empty_rdg): Declared.
	* lambda.h (lambda_matrix): Declare a VEC of.
	(find_induction_var_from_exit_cond): Declared.
	(lambda_vector_compare): New.
	* common.opt (fgraphite, floop-strip-mine,
	floop-interchange, floop-block): New flags.
	* lambda-code.c (find_induction_var_from_exit_cond): Export.
	* cfgloop.c (is_loop_exit): New.
	* cfgloop.h (is_loop_exit): Declared.
	(create_empty_if_region_on_edge): Declared.
	(create_empty_loop_on_edge): Declared.
	* tree-flow.h (add_phi_node_to_bb): Declared.
	(make_phi_node): Declared.
	(rename_variables_in_bb): Declared.
	(perfect_loop_nest_depth): Declared.
	(graphite_transform_loops): Declared.
	* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
	(graphite.o-warn): Add -Wno-error.
	(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
	(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
	(INCLUDES): Add PPLINC, CLOOGINC.
	(OBJS-common): Add graphite.o.
	(graphite.o): Add rule.
	* gimple.h (gimple_vec): ... here.
	* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
	* passes.c (init_optimization_passes): Schedule 
	pass_graphite_transforms.

testsuite/

	* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
	10,11,12,13,14,15,16,17,18}.c: New.
	* gcc.dg/graphite/graphite.exp: New.
	* gcc.dg/graphite/scop-matmult.c: New.
	* gcc.dg/graphite/block-0.c: New.
	* lib/target-supports.exp (check_effective_target_fgraphite): New.
	* gfortran.dg/graphite/block-1.f90: New.
	* gfortran.dg/graphite/scop-{1,2}.f: New.
	* gfortran.dg/graphite/block-{1,3,4}.f90: New.
	* gfortran.dg/graphite/graphite.exp: New.


Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>

From-SVN: r139893
2008-09-02 16:31:04 +00:00
Richard Guenther a1b969a0d2 re PR tree-optimization/37327 (another ice in set_value_range, at tree-vrp.c:397)
2008-09-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37327
	* tree-vrp.c (register_new_assert_for): Make sure to not have
	TREE_OVERFLOW set on the bound.

	* gcc.c-torture/compile/pr37327.c: New testcase.

From-SVN: r139890
2008-09-02 13:48:11 +00:00
Victor Kaplansky f6d5e84ac3 spu.md (divdf3): Removed.
2008-09-02  Victor Kaplansky  <victork@il.ibm.com>

  * gcc/config/spu/spu.md (divdf3): Removed.

Testsuite Changelog:

  * gcc.dg/fastmath-2.c: New.

From-SVN: r139888
2008-09-02 12:38:32 +00:00
Jakub Jelinek 1aeaf0f764 re PR tree-optimization/37095 (Trouble with covariant return)
PR tree-optimization/37095
	* cgraph.c (cgraph_node): When creating new cgraph node after
	assembler_name_hash has been populated, record it in the hash
	table.

	* g++.dg/inherit/thunk9.C: New test.

From-SVN: r139887
2008-09-02 12:33:46 +02:00
Jerry DeLisle 900e887f6d re PR fortran/37228 (F2008: Support g0.<d> edit descriptor)
2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37228
	* io.c (check_format): Allow specifying precision with g0 format.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/37301
	PR libfortran/37228
	* io/io.h (write_real_g0): Declare new function to handle g0.d format.
	* io/transfer.c (formatted_transfer_scalar): Use new function.
	* io/format.c (parse_format_list): Enable g0.d.
	* io/write.c (write_a_char4): Delete unused var.
	(set_fnode_default): New function to set the default fnode w, d, and e
	factored from write_real. (write_real): Use new factored function.
	(write_real_g0): New function that sets d to that passed by g0.d format
	specifier and set format to ES.  Default values for w and e are used
	from the new function, set_fnode_default.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37228
	* gfortran.dg/fmt_g0_4.f08: Revised test.

From-SVN: r139886
2008-09-02 10:50:13 +02:00
Daniel Kraft 52f4993488 gfortran.h (struct gfc_namespace): New member `implicit_loc'.
2008-09-02  Daniel Kraft  <d@domob.eu>

	* gfortran.h (struct gfc_namespace): New member `implicit_loc'.
	(gfc_add_abstract): New method.
	* decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
	(gfc_match_derived_decl): Copy abstract attribute in derived symbol.
	* dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
	only to allow for ABSTRACT types.
	* parse.c (parse_interface): Use new gfc_add_abstract.
	* primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
	type is constructed.
	* resolve.c (resolve_typespec_used): New method.
	(resolve_fl_derived): Check type in respect to ABSTRACT attribute and
	check that no component is of an ABSTRACT type.
	(resolve_symbol): Check that no symbol is of an ABSTRACT type.
	(resolve_types): Check IMPLICIT declarations for ABSTRACT types.
	* symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
	(gfc_add_abstract): New method.

2008-09-02  Daniel Kraft  <d@domob.eu>

	* gfortran.dg/abstract_type_1.f90: New test.
	* gfortran.dg/abstract_type_2.f03: New test.
	* gfortran.dg/abstract_type_3.f03: New test.
	* gfortran.dg/abstract_type_4.f03: New test.

From-SVN: r139885
2008-09-02 10:13:21 +02:00
Aldy Hernandez 6a3799eb00 tree.c (protected_set_expr_location): New.
* tree.c (protected_set_expr_location): New.
        * tree.h (protected_set_expr_location): New prototype.
        * c-tree.h (build_array_ref): Add argument.
        (parser_build_unary_op): Same.
        * c-typeck.c (build_indirect_ref): Handle new location argument.
        (build_array_ref): Same.
        (parser_build_unary_op): Same.
        * gimplify.c (gimplify_asm_expr): Set input_location before calling
        error.
        * c-omp.c (c_finish_omp_atomic): Pass location when calling
        build_indirect_ref.
        * c-common.c (finish_label_address_expr): Handle new location
        argument.
        * c-common.h (build_indirect_ref): Add argument.
        (finish_label_address_expr): Same.
        * c-parser.c (c_parser_unary_expression): Pass location to build
        functions.
        (c_parser_postfix_expression): Same.
objc/
        * objc-act.c (build_typed_selector_reference): Pass input_location to
        build_unary_op calls.
        (build_selector_reference): Same, but to build_array_ref.
        (objc_substitute_decl): Same.
        (build_ivar_reference): Same, but to build_indirect_ref.
        (get_super_receiver): Same.
testsuite/
        * gcc.dg/20010516-1.c: Test for columns.
cp/
        * typeck.c (build_x_indirect_ref): Add location argument.
        * class.c (build_base_path): Pass location to build_indirect_ref.
        * pt.c (tsubst_copy_and_build): Pass location to
        finish_label_address_expr.
        * parser.c (cp_parser_unary_expression): Same.

From-SVN: r139867
2008-09-01 15:02:27 +00:00
Daniel Kraft 3e1e5626dc re PR fortran/37193 ("USE mod, ONLY: i, i=>j" does not import "i")
2008-09-01  Daniel Kraft  <d@domob.eu>

	PR fortran/37193
	* module.c (read_module): Initialize use_only flag on used symbols.

2008-09-01  Daniel Kraft  <d@domob.eu>

	PR fortran/37193
	* gfortran.dg/use_rename_4.f90: New test.
	* gfortran.dg/use_rename_5.f90: New test.

From-SVN: r139866
2008-09-01 15:43:10 +02:00
Richard Guenther ff8b183bbb re PR tree-optimization/37305 (ice in set_value_range, at tree-vrp.c:397)
2008-09-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37305
	* tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
	the result of constant conversions.
	(fold_gimple_assign): Likewise.

	* gcc.c-torture/compile/pr37305.c: New testcase.

From-SVN: r139864
2008-09-01 13:39:42 +00:00
Jakub Jelinek 840018d9d1 re PR tree-optimization/36449 (Incorrect code generated for access to a large struct)
PR middle-end/36449
	* g++.dg/opt/pr36449.C: New test.

From-SVN: r139859
2008-09-01 13:34:47 +02:00
Paolo Carlini f885a45b90 re PR c/37271 (gcc.dg/pr37186.c doesn't work)
2008-08-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c/37271
	* gcc.dg/pr37186.c: Add dg-message command for line 5.

From-SVN: r139833
2008-08-31 15:09:38 +00:00
Richard Guenther 2b2587f577 re PR middle-end/37289 (ICE after non-trivial conversion at assignment)
2008-08-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37289
	* fold-const.c (fold_binary): Retain conversions in folding
	~A + 1 to -A.

	* gcc.dg/pr37289.c: New testcase.

From-SVN: r139831
2008-08-31 13:39:26 +00:00
Jakub Jelinek 847535b625 re PR target/37168 (ICE: in final_scan_insn, at final.c:2615 (altivec))
PR target/37168
	* config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
	prototype.
	* config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
	* config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
	Also split V4SFmode.
	* config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
	vector float modes.

	* gcc.target/powerpc/pr37168.c: New test.

From-SVN: r139828
2008-08-31 14:08:35 +02:00
Jan Hubicka 277b4867ee cold-attribute-1.c: New testcase.
* gcc.target/i386/cold-attribute-1.c: New testcase.
	* gcc.target/i386/cold-attribute-2.c: New testcase.
	* gcc.target/i386/cold-attribute-3.c: New testcase.
	* gcc.target/i386/cold-attribute-4.c: New testcase.
	* predict.c (PROB_VERY_LIKELY): Make small enough so things
	become cold.
	* predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.

From-SVN: r139827
2008-08-31 11:40:11 +00:00
Jakub Jelinek 8518c095a8 re PR debug/37287 (ICE (segfault) with new debugging patch)
PR debug/37287
	* dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
	add source coords.

	* gfortran.dg/pr37287-1.f90: New test.
	* gfortran.dg/pr37287-2.F90: New test.

From-SVN: r139826
2008-08-31 13:23:04 +02:00
Daniel Kraft e157f73660 gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
2008-08-31  Daniel Kraft  <d@domob.eu>

	* gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
	(struct gfc_tbp_generic): New type.
	(struct gfc_typebound_proc): Removed `target' and added union with
	`specific' and `generic' members; new members `overridden',
	`subroutine', `function' and `is_generic'.
	(struct gfc_expr): New members `derived' and `name' in compcall union
	member and changed type of `tbp' to gfc_typebound_proc.
	(gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
	* match.h (gfc_typebound_default_access): New global.
	(gfc_match_generic): New method.
	* decl.c (gfc_match_generic): New method.
	(match_binding_attributes): New argument `generic' and handle it.
	(match_procedure_in_type): Mark matched binding as non-generic.
	* interface.c (gfc_compare_interfaces): Made public.
	(gfc_compare_actual_formal): Ditto.
	(check_interface_1), (compare_parameter): Use new public names.
	(gfc_procedure_use), (gfc_search_interface): Ditto.
	* match.c (match_typebound_call): Set base-symbol referenced.
	* module.c (binding_generic): New global array.
	(current_f2k_derived): New global.
	(mio_typebound_proc): Handle IO of GENERIC bindings.
	(mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
	* parse.c (decode_statement): Handle GENERIC statement.
	(gfc_ascii_statement): Ditto.
	(typebound_default_access), (set_typebound_default_access): Removed.
	(gfc_typebound_default_access): New global.
	(parse_derived_contains): New default-access implementation and handle
	GENERIC statements encountered.
	* primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
	structure and removed check for SUBROUTINE/FUNCTION from here.
	* resolve.c (extract_compcall_passed_object): New method.
	(update_compcall_arglist): Use it.
	(resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
	(resolve_typebound_generic_call): New method.
	(resolve_typebound_call): Check target is a SUBROUTINE and handle calls
	to GENERIC bindings.
	(resolve_compcall): Ditto (check for target being FUNCTION).
	(check_typebound_override): Handle GENERIC bindings.
	(check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
	(resolve_typebound_procedure): Handle GENERIC bindings and set new
	attributes subroutine, function and overridden in gfc_typebound_proc.
	(resolve_fl_derived): Ensure extended type is resolved before the
	extending one is.
	* st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
	* symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.

2008-08-31  Daniel Kraft  <d@domob.eu>

	* gfortran.dg/typebound_generic_1.f03: New test.
	* gfortran.dg/typebound_generic_2.f03: New test.
	* gfortran.dg/typebound_generic_3.f03: New test.

From-SVN: r139822
2008-08-31 12:00:30 +02:00
Andrew Pinski 6aebac53f3 #define vector __attribute__((vector_size(16) )) struct struct1 { union { float a[3]...
#define vector __attribute__((vector_size(16) ))
struct struct1  {
  union { float a[3]; }    vmx;
  struct struct2   {
    struct2(const struct2& r) {}
  } w;
} __attribute__((aligned(16)));
struct struct3  {
  vector float vmx;
  operator const struct1& () const{
    return *reinterpret_cast<const struct1*>(this);
  }
};
struct3 func3( struct3 V1);
struct3 func2( void );
void func1( )  {
  struct1 vVec = func2() ;
  func3 ( (struct3&)vVec );
}

From-SVN: r139820
2008-08-30 19:40:13 -07:00
Jerry DeLisle 0006def8b8 re PR fortran/36895 (Namelist writting to internal files: Control characters wrong?)
2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/36895
	* gfortran.dg/namelist_53.f90: New test.

From-SVN: r139814
2008-08-31 00:07:58 +00:00
Michael Meissner 5779e7133d Change attribute((option(...))) to attribute((target(...))); Do not allocate tree nodes on x86 for builtins until we generate code for the ISA; Delete hot/cold functions changing optimization; Make C++ support target specific functions; Add #pragma GCC {push_options,pop_options,reset_options} instead of #pragma GCC {target,optimize} {push,reset,pop}
From-SVN: r139812
2008-08-30 23:50:40 +00:00
Mark Mitchell 3852d2bef6 mangle.c (write_type): Add target-specific manglings for non-fundamental types to the substitution table.
* mangle.c (write_type): Add target-specific manglings for
	non-fundamental types to the substitution table.

	* g++.dg/abi/mangle-neon.C: Add substitution test.

From-SVN: r139791
2008-08-29 22:19:24 +00:00
Jakub Jelinek bf09f0e0e9 re PR middle-end/37261 (Spurious (?) "integer overflow in expression" warnings)
PR c/37261
	* fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
	compute new & and | in type rather than TREE_TYPE (arg0).

	* gcc.dg/pr37261.c: New test.

From-SVN: r139784
2008-08-29 20:59:13 +02:00
Jakub Jelinek 04e74e0210 re PR fortran/23057 (Fortran common blocks are not described with DW_TAG_common_block)
PR fortran/23057
	* dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
	as DW_TAG_variable children of DW_TAG_common_block rather than
	DW_TAG_member children.  Put DW_AT_external to individual
	DW_TAG_variable DIEs, not to DW_TAG_common_block.

	* gfortran.dg/debug/pr35154-dwarf2.f: Adjust for replacement
	of DW_TAG_member with DW_TAG_variable.

From-SVN: r139775
2008-08-29 20:45:25 +02:00