Commit Graph

108265 Commits

Author SHA1 Message Date
Jason Merrill
f702927724 * call.c (build_over_call): Handle trivial dtor.
From-SVN: r172809
2011-04-21 00:28:25 -04:00
Jason Merrill
31603723a0 * search.c (lookup_fnfields_slot): Call complete_type.
From-SVN: r172808
2011-04-21 00:28:17 -04:00
Jason Merrill
8adaafcf03 re PR c++/48594 (Rejects valid with pointer-to-member in template)
PR c++/48594
	* decl2.c (build_offset_ref_call_from_tree): Move
	non-dependency of object outside condition.

From-SVN: r172807
2011-04-21 00:28:06 -04:00
GCC Administrator
8f69f5d0c9 Daily bump.
From-SVN: r172802
2011-04-21 00:18:21 +00:00
Nathan Froyd
b861891b12 mips.c (mips16_build_function_stub): Call build_function_type_list instead of build_function_type.
* config/mips/mips.c (mips16_build_function_stub): Call
	build_function_type_list instead of build_function_type.
	(mips16_build_call_stub): Likewise.

From-SVN: r172796
2011-04-20 20:24:31 +00:00
Nathan Froyd
34149ed568 mep.c (mep_init_builtins): Call build_function_type_list instead of build_function_type.
* config/mep/mep.c (mep_init_builtins): Call build_function_type_list
	instead of build_function_type.

From-SVN: r172795
2011-04-20 20:22:52 +00:00
Nathan Froyd
1252641271 pa.c (pa_init_builtins): Call build_function_type_list instead of build_function_type.
* config/pa/pa.c (pa_init_builtins): Call build_function_type_list
	instead of build_function_type.

From-SVN: r172794
2011-04-20 20:21:35 +00:00
Uros Bizjak
3b84d61f44 re PR target/48678 (unable to find a register to spill in class ‘GENERAL_REGS’)
PR target/48678
	* config/i386/i386.md (insv): Change operand 0 constraint to
	"register_operand".  Change operand 1 and 2 constraint to
	"const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
	* config/i386/sse.md (sse4_1_pinsrb): Export.
	(sse2_pinsrw): Ditto.
	(sse4_1_pinsrd): Ditto.
	(sse4_1_pinsrq): Ditto.
	* config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
	* config/i386/i386.c (ix86_expand_pinsr): New.

testsuite/ChangeLog:

	PR target/48678
	* gcc.target/i386/sse2-pinsrw.c: New test.
	* gcc.target/i386/avx-vpinsrw.c: Ditto.
	* gcc.target/i386/sse4_1-insvqi.c: Ditto.
	* gcc.target/i386/sse2-insvhi.c: Ditto.
	* gcc.target/i386/sse4_1-insvsi.c: Ditto.
	* gcc.target/i386/sse4_1-insvdi.c: Ditto.

From-SVN: r172792
2011-04-20 21:58:23 +02:00
Jason Merrill
8efcbecad5 re PR c++/48657 (could not convert template argument ‘VectorDimension’ to ‘unsigned int’)
PR c++/48657
	* decl.c (cp_finish_decl): Simplify template handling.

From-SVN: r172790
2011-04-20 15:39:02 -04:00
Easwaran Raman
4a25752bbd cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable containing union type only with -fstrict-aliasing.
2011-04-20  Easwaran Raman  <eraman@google.com>

	* cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
	containing union type only with -fstrict-aliasing.

2011-04-20  Easwaran Raman  <eraman@google.com>

	* gcc.dg/stack-layout-1.c: New test.

From-SVN: r172788
2011-04-20 18:34:59 +00:00
Easwaran Raman
1809ba94d4 MAINTAINERS (Write After Approval): Add myself.
2011-04-20  Easwaran Raman  <eraman@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r172787
2011-04-20 18:24:22 +00:00
Jim Meyering
046957830e remove useless if-before-free tests
Change "if (E) free (E);" to "free (E);" everywhere except in the
libgo/, intl/, zlib/ and classpath/ directories.
Also transform equivalent variants like
"if (E != NULL) free (E);" and allow an extra cast on the
argument to free.  Otherwise, the tested and freed "E"
expressions must be identical, modulo white space.

From-SVN: r172785
2011-04-20 18:19:03 +00:00
Jim Meyering
53eebfbf94 discourage unnecessary use of if before free
* README.Portability: Explain why "if (P) free (P)" is best avoided.

From-SVN: r172784
2011-04-20 18:18:43 +00:00
Jakub Jelinek
6788475ac1 re PR tree-optimization/48611 (ICE: SIGSEGV in remap_eh_region_nr (tree-inline.c:1194) with -Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop on basic code)
PR tree-optimization/48611
	* tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
	beyond ERT_MUST_NOT_THROW region.

From-SVN: r172783
2011-04-20 20:18:16 +02:00
Tobias Burnus
8721a387af re PR fortran/48588 (ICE (segfault) in gfc_get_nodesc_array_type)
2011-04-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48588
        PR fortran/48692

        * module.c (fix_mio_expr): Commit created symbol.

From-SVN: r172782
2011-04-20 20:07:52 +02:00
Kai Tietz
c988e08f67 Fixed recent testcases for backslash hell typo.
From-SVN: r172781
2011-04-20 19:42:51 +02:00
Catherine Moore
0eda40338e mips.opt (mfix-24k): New.
2011-04-20  Catherine Moore  <clm@codesourcery.com>

	* config/mips/mips.opt (mfix-24k): New.
	* config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
	* config/mips/mips.md (length): Increase by 4 for stores if
	fixing 24K errata.
	* config/mips/mips.c (mips_reorg_process_insns): Do not allow
	all noreorder if fixing 24K errata.
	* doc/invoke.texi: Document mfix-24k.

From-SVN: r172780
2011-04-20 12:54:32 -04:00
Chung-Lin Tang
0147574725 arm.c (arm_legitimize_reload_address): For NEON quad-word modes, reduce to 9-bit index range when above 1016 limit.
2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_legitimize_reload_address): For NEON
	quad-word modes, reduce to 9-bit index range when above 1016
	limit.

From-SVN: r172779
2011-04-20 16:48:28 +00:00
Daniel Jacobowitz
cfc99488e7 vect-shift-3.c, [...]: New.
2011-04-20  Daniel Jacobowitz  <dan@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/vect/vect-shift-3.c, gcc.dg/vect/vect-shift-4.c: New.
	* lib/target-supports.exp (check_effective_target_vect_shift_char): New
	function.

From-SVN: r172778
2011-04-20 16:39:37 +00:00
Andrew Stubbs
bc2c1a606a arm.c (arm_gen_constant): Move movw support ....
2011-04-20  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (arm_gen_constant): Move movw support ....
	(const_ok_for_op): ... to here.

From-SVN: r172777
2011-04-20 16:33:48 +00:00
Kai Tietz
583722ee58 ChangeLog gcc/
2011-04-20  Kai Tietz  <ktietz@redhat.com>

	* fold-const.c (fold_binary_loc): Add handling for
	(X & ~Y) | (~X & Y) and (X && !Y) | (!X && Y) optimization
	to (X ^ Y).

ChangeLog gcc/testsuite

2011-04-20  Kai Tietz  <ktietz@redhat.com>

	* gcc.dg/binio-xor1.c: New test.
	* gcc.dg/binio-xor2.c: New test.
	* gcc.dg/binio-xor3.c: New test.
	* gcc.dg/binio-xor4.c: New test.
	* gcc.dg/binio-xor5.c: New test.

From-SVN: r172776
2011-04-20 18:16:28 +02:00
Andrew Stubbs
422c0989b5 arm.c (arm_gen_constant): Remove redundant can_invert.
2011-04-20  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.

From-SVN: r172775
2011-04-20 16:14:02 +00:00
Richard Guenther
d7978bff88 re PR c/47892 (Fails to vectorize comparison code, if-conversion fails)
2011-04-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47892
	* tree-if-conv.c (if_convertible_stmt_p): Const builtins
	are if-convertible.

	* gcc.dg/vect/fast-math-ifcvt-1.c: New testcase.

From-SVN: r172774
2011-04-20 15:50:26 +00:00
Eric Botcazou
9d12f71a54 Fix long line and tidy up
From-SVN: r172773
2011-04-20 15:30:47 +00:00
Eric Botcazou
818412ba52 vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>

        * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.

From-SVN: r172771
2011-04-20 15:00:15 +00:00
Tristan Gingold
b501ce4ebc vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2011-04-20  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.

From-SVN: r172770
2011-04-20 14:30:58 +00:00
Georg-Johann Lay
516edfdd8a re PR target/18145 (Do not emit __do_copy_data or __do_clear_bss if .data or .bss is empty.)
PR target/18145

	* config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
	(TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.

	* config/avr/avr-protos.h (avr_asm_output_aligned_common):
	New prototype.

	* config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
	(avr_asm_named_section,	avr_asm_output_aligned_common,
	avr_output_data_section_asm_op,	avr_output_bss_section_asm_op):
	New functions to update...
	(avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
	(avr_asm_init_sections): Overwrite section callbacks for
	data_section, bss_section.
	(avr_file_start): Move output of __do_copy_data, __do_clear_bss
	from here to...
	(avr_file_end): ...here.

From-SVN: r172769
2011-04-20 13:38:05 +00:00
Richard Guenther
dafc951101 re PR rtl-optimization/48695 (Runtime with an array of std::vectors)
2011-04-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48695
	* tree-ssa-alias.c (aliasing_component_refs_p): Compute base
	objects and types here.  Adjust for their offset before
	comparing.

	* g++.dg/torture/pr48695.C: New testcase.

From-SVN: r172768
2011-04-20 13:11:06 +00:00
Richard Sandiford
d72dd5f9ec Revert accidental commit.
From-SVN: r172764
2011-04-20 09:28:48 +00:00
Richard Sandiford
267d3070f7 Revert last patch.
From-SVN: r172763
2011-04-20 09:25:42 +00:00
Eric Botcazou
0b2ddd9ce3 * bootstrap-lto.mk: Remove obsolete requirement.
From-SVN: r172761
2011-04-20 09:24:48 +00:00
Richard Sandiford
c2d7ab2aea md.texi (vec_load_lanes, [...]): Document.
gcc/
	* doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
	* optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
	convert_optab_index values.
	(vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
	* genopinit.c (optabs): Initialize the new optabs.
	* internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
	* internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
	(expand_STORE_LANES): New functions.
	* tree.h (build_array_type_nelts): Declare.
	* tree.c (build_array_type_nelts): New function.
	* tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
	(vect_model_load_cost): Likewise.
	(vect_store_lanes_supported, vect_load_lanes_supported)
	(vect_record_strided_load_vectors): Declare.
	* tree-vect-data-refs.c (vect_lanes_optab_supported_p)
	(vect_store_lanes_supported, vect_load_lanes_supported): New functions.
	(vect_transform_strided_load): Split out statement recording into...
	(vect_record_strided_load_vectors): ...this new function.
	* tree-vect-stmts.c (create_vector_array, read_vector_array)
	(write_vector_array, create_array_ref): New functions.
	(vect_model_store_cost): Add store_lanes_p argument.
	(vect_model_load_cost): Add load_lanes_p argument.
	(vectorizable_store): Try to use store-lanes functions for
	interleaved stores.
	(vectorizable_load): Likewise load-lanes and loads.
	* tree-vect-slp.c (vect_get_and_check_slp_defs)
	(vect_build_slp_tree):

From-SVN: r172760
2011-04-20 09:10:36 +00:00
Richard Sandiford
1da0876c95 tree-vect-stmts.c (vectorizable_store): Only chain one related statement per copy.
gcc/
	* tree-vect-stmts.c (vectorizable_store): Only chain one related
	statement per copy.

From-SVN: r172759
2011-04-20 08:23:03 +00:00
Richard Sandiford
25583c4f45 Makefile.in (INTERNAL_FN_DEF, [...]): Define.
gcc/
	* Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
	(GIMPLE_H): Include $(INTERNAL_FN_H).
	(OBJS-common): Add internal-fn.o.
	(internal-fn.o): New rule.
	* internal-fn.def: New file.
	* internal-fn.h: Likewise.
	* internal-fn.c: Likewise.
	* gimple.h: Include internal-fn.h.
	(GF_CALL_INTERNAL): New gf_mask.
	(gimple_statement_call): Put fntype into a union with a new
	internal_fn field.
	(gimple_build_call_internal): Declare.
	(gimple_build_call_internal_vec): Likewise.
	(gimple_call_same_target_p): Likewise.
	(gimple_call_internal_p): New function.
	(gimple_call_internal_fn): Likewise.
	(gimple_call_fntype): Return null for internal calls.
	(gimple_call_set_fntype): Assert that the function is not internal.
	(gimple_call_set_fn): Likewise.
	(gimple_call_set_fndecl): Likewise.
	(gimple_call_set_internal_fn): New function.
	(gimple_call_addr_fndecl): Handle null functions.
	(gimple_call_return_type): Likewise null types.
	* gimple.c (gimple_build_call_internal_1): New function.
	(gimple_build_call_internal): Likewise.
	(gimple_build_call_internal_vec): Likewise.
	(gimple_call_same_target_p): Likewise.
	(gimple_call_flags): Handle calls to internal functions.
	(gimple_call_fnspec): New function.
	(gimple_call_arg_flags, gimple_call_return_flags): Use it.
	(gimple_has_side_effects): Handle null functions.
	(gimple_rhs_has_side_effects): Likewise.
	(gimple_call_copy_skip_args): Handle calls to internal functions.
	* cfgexpand.c (expand_call_stmt): Likewise.
	* expr.c (expand_expr_real_1): Assert that the call isn't internal.
	* gimple-fold.c (gimple_fold_call): Handle null functions.
	(gimple_fold_stmt_to_constant_1): Don't fold
	calls to internal functions.
	* gimple-low.c (gimple_check_call_args): Handle calls to internal
	functions.
	* gimple-pretty-print.c (dump_gimple_call): Likewise.
	* ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
	* tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
	(do_warn_unused_result): Likewise.
	* tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
	* tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
	* tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
	the target of a call.
	(initialize_hash_element): Update accordingly.
	(hashable_expr_equal_p): Use gimple_call_same_target_p.
	(iterative_hash_hashable_expr): Handle calls to internal functions.
	(print_expr_hash_elt): Likewise.
	* tree-ssa-pre.c (can_value_number_call): Likewise.
	(eliminate): Handle null functions.
	* tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
	* tree-ssa-structalias.c (get_fi_for_callee): Likewise.
	(find_func_aliases): Likewise.
	* value-prof.c (gimple_ic_transform): Likewise.
	(gimple_indirect_call_to_profile): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Likewise.
	* lto-streamer-out.c (output_gimple_stmt): Likewise.

From-SVN: r172758
2011-04-20 08:21:25 +00:00
Georg-Johann Lay
7da29ed0cb pr42629.c: Add dg-require-effective-target int32plus
* gcc.dg/pr42629.c: Add dg-require-effective-target int32plus
	* gcc.c-torture/execute/cmpsi-2.c: Ditto
	* gcc.c-torture/execute/pr45262.c: Ditto
	* gcc.dg/torture/pr43165.c: Ditto.
	* gcc.dg/torture/pr47228.c: Ditto.
	* gcc.dg/tree-ssa/pr45144.c: Ditto.
	* gcc.dg/ipa/pr45644.c: Ditto.
	* gcc.c-torture/compile/pr43191.c: Ditto. Remove dg-skip-if for
	PDP11.

From-SVN: r172757
2011-04-20 06:33:01 +00:00
Jason Merrill
68a29e1cf4 re PR c++/46304 (g++ crashes with ICE in bitmap_first_set_bit, at bitmap.c:770)
PR c++/46304
	* typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.

From-SVN: r172754
2011-04-20 02:30:41 -04:00
Jerry DeLisle
b48de48389 re PR libfortran/48602 (Invalid F conversion of G descriptor for values close to powers of 10)
2011-04-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/48602
	* io/write_float.def (output_float_FMT_G): Fix reversal in conditional.
	Use asm volatile to mark temp variable, avoiding optimization errors.

From-SVN: r172753
2011-04-20 04:18:25 +00:00
Jan Hubicka
1a3118e962 ipa-inline-transform.c (save_inline_function_body): Add comments.
* ipa-inline-transform.c (save_inline_function_body): Add comments.
	* ipa-inline.c (inline_small_functions): Compute summaries first, populate
	heap later.

From-SVN: r172751
2011-04-20 01:04:51 +00:00
GCC Administrator
8d6a938b89 Daily bump.
From-SVN: r172750
2011-04-20 00:18:18 +00:00
Jason Merrill
c45413fef6 re PR c++/45267 (inlining fails with -m32)
PR c++/45267
	* decl.c (duplicate_decls): Keep always_inline attribute
	in sync with DECL_DISREGARD_INLINE_LIMITS.

From-SVN: r172744
2011-04-19 20:06:19 -04:00
Ian Lance Taylor
8f88846854 statement.cc no longer includes gcc headers.
* go-system.h: Include "intl.h".
	* Make-lang.in (GO_SYSTEM_H): Add intl.h.
	(go/statements.o): Remove dependencies on intl.h $(TREE_H)
	$(GIMPLE_H) convert.h tree-iterator.h $(TREE_FLOW_H) $(REAL_H).

From-SVN: r172743
2011-04-19 23:26:19 +00:00
Ian Lance Taylor
0c6caf5ab0 Change general statement method to always use backend interface.
From-SVN: r172740
2011-04-19 22:30:46 +00:00
Jan Hubicka
fee8b6dadd cgraph.h (save_inline_function_body): Remove.
* cgraph.h (save_inline_function_body): Remove.
	* ipa-inline-transform.c: New file, broke out of...
	* ipa-inline.c: ... this one; Update toplevel comment.
	(ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
	make global.
	(update_noncloned_frequencies): Move to ipa-inline-transform.c
	(cgraph_mark_inline_edge): Rename to inline_call; move to
	ipa-inline-transform.c.
	(cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
	move to ipa-inline-transform.c
	(recursive_inlining, inline_small_functions, flatten_function,
	ipa_inline, inline_always_inline_functions,
	early_inline_small_functions): Update.
	(inline_transform): Move to ipa-inline-transform.c.
	* ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
	Declare.
	* Makefile.in (ipa-inline-transform.o): New file.
	* cgraphunit.c (save_inline_function_body): Move to
	ipa-inline-transform.c

From-SVN: r172739
2011-04-19 22:28:54 +00:00
Kaz Kojima
61eca8d71b re PR testsuite/48676 ([sh] Unaligned userspace access in gcc.dg/torture/pr37868.c)
PR testsuite/48676
	* gcc.dg/torture/pr37868.c: Skip on sh*-*-*.

From-SVN: r172738
2011-04-19 21:58:41 +00:00
Ian Lance Taylor
9131ad6747 Use backend interface for temporary variables.
* go-gcc.cc (Gcc_backend::temporary_variable): New function.

From-SVN: r172737
2011-04-19 21:52:41 +00:00
DJ Delorie
f067961248 m32c.c (m32c_emit_epilogue): Don't try to push registers if we already know there aren't any.
* config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
registers if we already know there aren't any.
(m32c_emit_epilogue): Don't emit a barrier here.
(m32c_emit_eh_epilogue): Likewise.
* config/m32c/blkmov.md (movstr): Don't fail on wrong-type
operands at expand time.
* config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
int" wchar type.
(REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
duplicates.  Provide aliases instead.
* config/m32c/prologue.md (eh_return): Emit a barrier here.
(eh_epilogue): Add a "(return)" here as a hint to other parts of
the compiler.

From-SVN: r172735
2011-04-19 16:37:11 -04:00
Anatoly Sokolov
32257ddc4e sparc.h (GENERAL_OR_I64, [...]): Remove.
* config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
	* config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
	(general_or_i64_p, sparc_register_move_cost): New function.

From-SVN: r172732
2011-04-19 22:23:23 +04:00
Ian Lance Taylor
5ad7db5fa3 Use backend interface for blocks.
* go-gcc.cc (class Bblock): Define.
	(Gcc_backend::if_statement): Change then_block and else_block to
	Bblock*.
	(Gcc_backend::block): New function.
	(Gcc_backend::block_add_statements): New function.
	(Gcc_backend::block_statement): New function.
	(tree_to_block, block_to_tree): New functions.

From-SVN: r172731
2011-04-19 18:20:05 +00:00
Janne Blomqvist
f7d2e5d418 Use XCNEWVAR instead of xcalloc
From-SVN: r172730
2011-04-19 21:18:08 +03:00
Janne Blomqvist
6c13c5f2ac Use XDELETEVEC instead of free
From-SVN: r172729
2011-04-19 20:57:05 +03:00