Commit Graph

113797 Commits

Author SHA1 Message Date
Jakub Jelinek 0e642d0671 re PR c++/51430 (ICE with array as static const member)
PR c++/51430
	* pt.c (tsubst_decl): Don't call strip_array_domain on
	error_mark_node.

	* g++.dg/template/static32.C: New test.

From-SVN: r182063
2011-12-06 20:52:39 +01:00
Uros Bizjak 70d63e4883 pr51396.C: Use dg-additional-options.
* g++.dg/opt/pr51396.C: Use dg-additional-options.

From-SVN: r182061
2011-12-06 19:46:18 +01:00
Ian Lance Taylor 6c025f46f0 libgo: Remove more os.Error cases.
From Rainer Orth.

From-SVN: r182060
2011-12-06 18:13:04 +00:00
Tobias Burnus 0173c67b30 re PR fortran/51435 (Bad association status after null() of derived type component)
2011-12-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51435
        * expr.c (gfc_has_default_initializer): Fix handling of
        DT with initialized pointer components.

2011-12-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51435
        * gfortran.dg/default_initialization_5.f90: New.

From-SVN: r182059
2011-12-06 19:10:01 +01:00
Georg-Johann Lay a032008aa9 avr.c (avr_file_start): Fix missing ,
* config/avr/avr.c (avr_file_start): Fix missing ,

From-SVN: r182058
2011-12-06 17:18:10 +00:00
Jakub Jelinek 762f777039 re PR target/51354 (ICE in maybe_record_trace_start)
PR target/51354
	* config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
	unconditionally.

	* gcc.c-torture/compile/pr51354.c: New test.

From-SVN: r182056
2011-12-06 18:15:11 +01:00
Paolo Carlini 66403b3862 re PR c++/51431 (ICE with invalid use of abstract class)
/cp
2011-12-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51431
	* init.c (build_value_init): Check build_aggr_init_expr return
	value for error_mark_node.

/testsuite
2011-12-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51431
	* g++.dg/other/abstract3.C: New.

From-SVN: r182055
2011-12-06 17:12:17 +00:00
Jonathan Wakely 62b547b5f6 re PR libstdc++/51183 (pair piecewise_construct_t constructor copies)
2011-12-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Chris Jefferson  <chris@bubblescope.net>

	PR libstdc++/51183
	* include/std/stl_pair.h (pair<>::__cons, pair<>::__do_cons): Remove.
	(pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Only declare.
	(pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
	Declare.
	* include/std/tuple (pair<>::__cons, pair<>::__do_cons): Remove.
	(pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
	Define.
	(pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Define,
	delegating to the latter.
	* testsuite/20_util/pair/piecewise2.cc: New.

Co-Authored-By: Chris Jefferson <chris@bubblescope.net>

From-SVN: r182054
2011-12-06 15:13:04 +00:00
Georg-Johann Lay 6232acfe4d avr-mcus.def (avr_mcu_types): ATtiny4313 and AT86RF401 have a 16-bit SP (their manual is bogus).
* config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
	AT86RF401 have a 16-bit SP (their manual is bogus).
	Forward-port from gcc-4_6-branch r181936 2011-12-02.

From-SVN: r182053
2011-12-06 15:08:39 +00:00
Georg-Johann Lay 28c5e6b58f Forward-port from gcc-4_6-branch r181936 2011-12-02.
libgcc/
	Forward-port from gcc-4_6-branch r181936 2011-12-02.

	PR target/51345
	PR target/51002
	* config/avr/lib1funcs.S (__prologue_saves__,
	__epilogue_restores__, __divdi3_moddi3): Enclose parts using
	__SP_H__ in !defined (__AVR_HAVE_8BIT_SP__).  Add FIXME comments.

gcc/
	Forward-port from gcc-4_6-branch r181936 2011-12-02.

	PR target/51002
	* config/avr/avr.md (movhi_sp_r): Set insn condition to
	!AVR_HAVE_8BIT_SP.
	* config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
	%B0,__SP_H__" if AVR_HAVE_8BIT_SP.
	(avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.

From-SVN: r182052
2011-12-06 15:04:09 +00:00
Georg-Johann Lay 562f552bd8 re PR target/51409 ([avr] Build fails if configured for other languages than from c-family)
PR target/51409
	PR target/49868
	* config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
	ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
	ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
	(avr_addrspace_t): New typedef.
	(avr_addrspace): New declaration.
	* config/avr/avr-c.c (avr_toupper): New static function.
	(avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
	avr_addrspace to get address space information.
	* config/avr/avr.c (avr_addrspace): New variable.
	(avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
	avr_asm_named_section, avr_section_type_flags,
	avr_asm_select_section, avr_addr_space_address_mode, 
	avr_addr_space_convert, avr_emit_movmemhi): Use it.
	(avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
	(avr_pgm_segment): Remove.

From-SVN: r182051
2011-12-06 14:39:25 +00:00
Jakub Jelinek 5de62d003b re PR libgomp/51132 (FAIL: libgomp.graphite/force-parallel-[678].c)
PR libgomp/51132
	* testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
	to file scope.
	* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
	* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
	* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
	* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
	* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.

From-SVN: r182050
2011-12-06 15:32:54 +01:00
Richard Guenther f748cd6bb4 re PR tree-optimization/49997 (ICE in inline_small_functions with -fnon-call-exceptions)
2011-12-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49997
	* gcc.dg/torture/pr49997.c: New testcase.

From-SVN: r182049
2011-12-06 13:45:19 +00:00
Richard Guenther f7fb28800d re PR lto/50601 (New LTO failures)
2011-12-06  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50601
	* varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
	quirk adjustjment ...
	* passes.c (rest_of_decl_compilation): ... here.

From-SVN: r182048
2011-12-06 13:26:09 +00:00
Richard Guenther 52f26be409 re PR middle-end/51436 (ICE(segfault) in gimplify_and_update_call_from_tree gimple-fold.c:603)
2011-12-06  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51436
	* gimple-fold.c (gimplify_and_update_call_from_tree): Guard
	vdef check for the fact we do not have virtual operands when
	not optimizing.

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

From-SVN: r182045
2011-12-06 12:17:31 +00:00
Richard Guenther b55eb41058 re PR tree-optimization/51245 (ICE in vn_reference_insert_pieces, at tree-ssa-sccvn.c:1983)
2011-12-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51245
	* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
	New function.
	(vn_reference_lookup_3): Use it.  Properly valueize all refs
	we create.

	* gcc.dg/torture/pr51245.c: New testcase.

From-SVN: r182044
2011-12-06 11:41:00 +00:00
Dodji Seketeli 230f834641 PR c++/51427 - Better diagnostic when union/struct tags conflicts
gcc/cp/

	PR c++/51427
	* parser.c (cp_parser_check_class_key): Add note about earlier
	declaration.

gcc/testsuite/

	PR c++/51427
	* g++.dg/diagnostic/wrong-tag-1.C

From-SVN: r182043
2011-12-06 11:06:49 +01:00
Iain Sandoe aa383ddaea rs6000.c (darwin_rs6000_override_options): Initialize rs6000_current_abi.
gcc:

	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
	rs6000_current_abi.

From-SVN: r182042
2011-12-06 09:52:11 +00:00
Richard Guenther d829c408d2 re PR tree-optimization/51363 (ICE: in gimple_rhs_has_side_effects, at gimple.c:2530 with -O -fno-tree-ccp)
2011-12-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51363
	* gimple.c (gimple_rhs_has_side_effects): Remove.
	* gimple.h (gimple_rhs_has_side_effects): Likewise.
	* tree-ssa-dom.c (optimize_stmt): Simplify conditional.

From-SVN: r182041
2011-12-06 09:02:17 +00:00
Alan Modra 59b719ec82 re PR target/50906 (e500 exception unwinding under "-Os" causes SIGSEGV)
PR target/50906
	* config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
	Do not mark r11 setup as frame-related.  Pass correct offset to
	rs6000_emit_savres_rtx.  Correct out-of-line rs6000_frame_related
	arguments.  Correct sp_offset.  Remove "offset" fudge from
	in-line rs6000_frame_related call.  Rename misleading variable.
	Fix comments and whitespace.  Tidy some expressions.
	(rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
	to r11 in out-of-line case.  Correct sp_offset.  Pass correct
	offset to rs6000_emit_savres_rtx.  Rename misleading variable.
	Fix comments and whitespace.  Tidy some expressions.
	(rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
	adjustment when !saving_GPRs_inline.  Correct register mode
	used in address calcs.
	(rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
	!restoring_GPRs_inline.

From-SVN: r182039
2011-12-06 14:11:44 +10:30
Ramana Radhakrishnan 6184a33dce Fix formatting character for vmov.f64 case.
From-SVN: r182038
2011-12-06 01:03:04 +00:00
GCC Administrator b46f602394 Daily bump.
From-SVN: r182037
2011-12-06 00:18:36 +00:00
Ramana Radhakrishnan 19d13e3e10 Fix earlier Changelog entry to match the
commit.

From-SVN: r182033
2011-12-05 23:56:25 +00:00
Paolo Carlini 8972079e90 initializer_list: Do not declare anything if __GXX_EXPERIMENTAL_CXX0X__ is not defined.
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* libsupc++/initializer_list: Do not declare anything if
	__GXX_EXPERIMENTAL_CXX0X__ is not defined.

From-SVN: r182031
2011-12-05 23:16:16 +00:00
Fabien Chêne be4d41449d Fix cp/ChangeLog
From-SVN: r182030
2011-12-05 23:07:06 +01:00
Fabien Chêne a9727434c3 re PR c++/51319 (Eigen3 enums not accepted)
gcc/testsuite/ChangeLog

2011-12-05  Fabien Chene  <fabien@gcc.gnu.org>

	PR c++/51319
	* g++.dg/lookup/using50.C: New.
	* g++.dg/lookup/using51.C: New.

gcc/cp/ChangeLog

2011-12-05  Fabien Chene  <fabien@gcc.gnu.org>

	PR c++/51319
	* semantics.c (finish_id_expression): Strip using declarations
	early in the function.

From-SVN: r182029
2011-12-05 23:04:40 +01:00
Jakub Jelinek 0fb808ea7a re PR tree-optimization/51396 (ICE: verify_flow_info failed: BB 4 can not throw but has an EH edge with -O2 -fnon-call-exceptions -mfma4)
PR tree-optimization/51396
	* tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
	if MUL_RESULT has zero uses.

	* g++.dg/opt/pr51396.C: New test.

From-SVN: r182028
2011-12-05 21:56:14 +01:00
Jakub Jelinek 17fe0fdbad re PR debug/51410 (duplicate variable DIE)
PR debug/51410
	* c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
	for debug info if scope is file_scope.

	* gcc.dg/debug/dwarf2/pr51410.c: New test.

From-SVN: r182027
2011-12-05 21:51:07 +01:00
Jakub Jelinek 156030d35f re PR c/51339 (ICE: in convert_move, at expr.c:326 with -fopenmp and parallel for)
PR c/51339
	* c-decl.c (c_finish_incomplete_decl, finish_decl): Call
	relayout_decl instead of layout_decl.

	* gcc.dg/gomp/pr51339.c: New test.

From-SVN: r182026
2011-12-05 21:49:38 +01:00
Paolo Carlini a9eba00e1b re PR c++/51399 ([c++0x] [4.7 Regression] ICE with invalid initializer list)
/cp
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51399
	* init.c (perform_member_init): Early return if init is error_mark_node.

/testsuite
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51399
	* g++.dg/cpp0x/initlist62.C: New.

From-SVN: r182025
2011-12-05 20:44:50 +00:00
Thomas Koenig 671b487dc3 re PR fortran/51338 (seg fault in gfc_dep_compare_expr with -O2)
2011-12-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/51338
	* dependency.c (are_identical_variables):  Handle case where
	end fields of substring references are NULL.

2011-12-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/51338
	* gfortran.dg/assumed_charlen_substring_1.f90:  New test.

From-SVN: r182024
2011-12-05 20:11:44 +00:00
Richard Sandiford dfa51991ef resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK if there is in epilogue.
gcc/
	* resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
	if there is in epilogue.

From-SVN: r182023
2011-12-05 19:32:16 +00:00
Richard Sandiford fae67e1dc4 optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target to emit_library_call_value.
gcc/
	* optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
	to emit_library_call_value.
	(expand_atomic_compare_and_swap): Likewise.

From-SVN: r182021
2011-12-05 19:24:53 +00:00
Richard Sandiford 2b808bd9a8 pr46338.C: Add dg-require-profiling.
gcc/testsuite/
	* g++.dg/debug/pr46338.C: Add dg-require-profiling.
	* g++.dg/torture/pr39732.C: Likewise.
	* g++.dg/torture/pr40642.C: Likewise.
	* gcc.c-torture/compile/pr44686.c: Likewise.
	* gcc.dg/20050309-1.c: Likewise.
	* gcc.dg/20050330-2.c: Likewise.
	* gcc.dg/20051201-1.c: Likewise.
	* gcc.dg/gomp/pr27573.c: Likewise.
	* gcc.dg/pr46255.c: Likewise.
	* gcc.dg/profile-dir-1.c: Likewise.
	* gcc.dg/profile-dir-2.c: Likewise.
	* gcc.dg/profile-dir-3.c: Likewise.
	* gcc.dg/profile-generate-1.c: Likewise.
	* gfortran.dg/gomp/pr27573.f90: Likewise.
	* gcc.dg/profile-generate-3.c: Be specific about the type of
	profiling required.

From-SVN: r182020
2011-12-05 19:24:30 +00:00
Paolo Carlini ca2507dca9 re PR c++/51414 (Broken diagnostic with invalid use of __underlying_type)
/cp
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51414
	* semantics.c (finish_underlying_type): Use %qT, not %qE for the
	error message.

/testsuite
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51414
	* g++.dg/ext/underlying_type11.C: New.

From-SVN: r182017
2011-12-05 18:21:18 +00:00
Uros Bizjak 6778ae9d4b re PR testsuite/51128 (New LTO failures)
PR testsuite/51128
	* gcc.dg/torture/pr23821.c: Skip if -fno-fat-lto-objects was passed.
	* gcc.dg/torture/pr39074.c: Ditto.
	* gcc.dg/torture/pr39074-2.c: Ditto.
	* gcc.dg/torture/pr42898.c: Ditto.
	* gcc.dg/torture/pr42898-2.c: Ditto.
	* gcc.dg/torture/pr45704.c: Ditto.
	* gcc.dg/torture/pr50472.c: Ditto.
	* gcc.dg/torture/pta-callused-1.c: Ditto.
	* gcc.dg/torture/pta-ptrarith-1.c: Ditto.
	* gcc.dg/torture/pta-ptrarith-2.c: Ditto.
	* gcc.dg/torture/pta-ptrarith-3.c: Ditto.
	* gcc.dg/torture/pta-escape-1.c: Ditto.
	* gcc.dg/torture/ipa-pta-1.c: Ditto.
	* gcc.dg/torture/ssa-pta-fn-1.c: Ditto.

From-SVN: r182016
2011-12-05 18:59:32 +01:00
Vladimir Makarov 27508f5fa3 re PR other/50775 (Register allocator sets up frame and frame pointer with low register pressure)
2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR other/50775
	* ira-int.h (struct ira_object): Remove add_data.
	(OBJECT_ADD_DATA): Remove.

	* ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
	initialization.

	* ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
	allocno_hard_regs_t, allocno_hard_regs.
	(object_hard_regs_node_t, object_hard_regs_node): Rename to
	allocno_hard_regs_node_t and allocno_hard_regs_node.
	(struct allocno_color_data): Add new member last_process.  Move
	profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
	from object_color_data.
	(object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
	Remove.
	(curr_allocno_process): New static variable.
	(object_hard_regs_eq, object_hard_regs_htab): Rename to
	allocno_hard_regs_eq and allocno_hard_regs_htab.
	(init_object_hard_regs, finish_object_hard_regs): Rename to
	init_allocno_hard_regs and finish_allocno_hard_regs.
	(object_hard_regs_compare, object_hard_regs_node_t): Rename to
	allocno_hard_regs_compare and allocno_hard_regs_node_t.
	(create_new_object_hard_regs_node): Rename to
	create_new_allocno_hard_regs_node.
	(add_new_object_hard_regs_node_to_forest): Rename to
	add_new_allocno_hard_regs_node_to_forest.
	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
	Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
	(setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
	(remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
	(enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
	Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
	(object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
	allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
	(object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
	allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
	(object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
	(setup_object_hard_regs_subnode_index): Rename to
	setup_allocno_hard_regs_subnode_index.
	(get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
	(form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
	(finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
	(finish_object_hard_regs_nodes_forest): Rename to
	finish_allocno_hard_regs_nodes_forest.
	(setup_left_conflict_sizes_p): Use allocno data instead of object
	ones.  Process conflict allocnos once.
	(update_left_conflict_sizes_p): Use allocno data instead of object
	ones.  Change prototype signature.
	(empty_profitable_hard_regs): Use allocno data instead of object
	ones.
	(setup_profitable_hard_regs): Ditto.
	(get_conflict_profitable_regs): Rename to
	get_conflict_and_start_profitable_regs.  Use allocno data for
	profitable regs calculation.
	(check_hard_reg_p): Change prototype signature.  Check profitable
	regs for allocno not the objects.
	(assign_hard_reg): Process conflict allocnos only once for
	updating conflict costs.
	(setup_allocno_available_regs_num): Use allocno data instead of
	object ones.  Modify debug output.
	(color_pass): Remove initialization and finalization of object
	color data.

From-SVN: r182015
2011-12-05 17:02:54 +00:00
Kazu Hirata 100ed614f4 re PR target/51408 (Miscompilation in arm.md:*minmax_arithsi)
gcc/
	PR target/51408
	* config/arm/arm.md (*minmax_arithsi): Always require the else
	clause in the MINUS case.

gcc/testsuite/
	PR target/51408
	* gcc.dg/pr51408.c: New.

From-SVN: r182014
2011-12-05 16:11:35 +00:00
Jason Merrill c4ce224c4b * init.c (expand_default_init): Unshare args in ctor delegation.
From-SVN: r182013
2011-12-05 10:49:34 -05:00
Ville Voutilainen 238e471cad Implement C++11 delegating constructors.
* cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS.
	* error.c (maybe_warn_cpp0x): Adjust.
	* parser.c (cp_parser_mem_initializer_list): Use it.  Diagnose
	multiple initializers if a delegating initializer is present.
	* call.c (build_special_member_call): Convert an assert into an if.
	* init.c (perform_target_ctor): New.
	(emit_mem_initializers): Use it.
	(expand_member_init, expand_default_init): Adjust.

Co-Authored-By: Pedro Lamarão <pedro.lamarao@gmail.com>

From-SVN: r182012
2011-12-05 10:49:25 -05:00
Paolo Carlini 12c574caf6 re PR c++/51404 ([c++0x] [4.7 Regression] ICE with invalid use of auto)
/cp
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51404
	* typeck2.c (build_functional_cast): Early return error_mark_node
	for invalid uses of 'auto'.
	* parser.c (cp_parser_direct_declarator): When
	cp_parser_constant_expression returns error do not produce further
	diagnostic for the bound.

/testsuite
2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51404
	* g++.dg/cpp0x/auto28.C: New.

From-SVN: r182011
2011-12-05 15:46:30 +00:00
Richard Guenther 546d314cf6 re PR tree-optimization/50904 (pessimization when -fno-protect-parens is enabled by -Ofast)
2011-12-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50904
	* tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
	(MEM_ANALYZABLE): New.
	(memory_references): Remove clobbered_vops and vop_ref_map
	members, add all_refs_stored_in_loop member.
	(memref_free): Adjust.
	(mem_ref_alloc): Likewise.
	(gather_mem_refs_stmt): Do not record clobbers, instead
	record refs for unanalyzable stmts.
	(gather_mem_refs_in_loops): Do not propagate clobbers.
	(struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
	record_vop_access, get_vop_accesses, get_vop_stores,
	add_vop_ref_mapping): Remove.
	(create_vop_ref_mapping_loop): Adjust to simply record all
	stores.
	(analyze_memory_references): Adjust.
	(refs_independent_p): Check for not analyzable refs.
	(can_sm_ref_p): Likewise.
	(ref_indep_loop_p_1): Simplify.
	(tree_ssa_lim_finalize): Adjust.

	* tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
	rather than magic constants.  Assign zero cost to PAREN_EXPR
	and SSA_NAME copies.  Assign cost proportional to the vector
	size for vector constructors.

From-SVN: r182010
2011-12-05 14:36:44 +00:00
Richard Guenther 14cd91f923 tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
2011-12-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
	* tree-ssa-alias.c (ao_ref_init): Initialize it.
	(ao_ref_init_from_ptr_and_size): Likewise.
	(refs_may_alias_p_1): Two volatile accesses conflict.
	(ref_maybe_used_by_call_p_1): Likewise.
	(call_may_clobber_ref_p_1): Likewise.
	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
	volatile_p field.

From-SVN: r182009
2011-12-05 14:31:44 +00:00
Matthew Gretton-Dann 68872bedca * gcc/testsuite/gcc.dg/torture/vec-cvt-1.c (FLTTEST): Call rand instead of random.
From-SVN: r182008
2011-12-05 12:02:22 +00:00
Richard Guenther bc590dfb1f tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA names.
2011-12-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (verify_ssa): Verify SSA names in the loop
	over all SSA names.  Remove SSA operand checking, call
	verify_ssa_operands.
	* tree-ssa-operands.h (verify_ssa_operands): Declare.
	* tree-ssa-operands.c (verify_ssa_operands): New function.

From-SVN: r182007
2011-12-05 11:05:24 +00:00
Arnaud Charlet 76264f602a [multiple changes]
2011-12-05  Bob Duff  <duff@adacore.com>

	* sem_ch4.adb: Minor comment fix.

2011-12-05  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add documentation for -gnatw.e.

2011-12-05  Bob Duff  <duff@adacore.com>

	* treepr.adb (pn): Print something useful for
	Elmt_Ids. Add Write_Eol to 'when others' case, so the output
	will be seen immediately in gdb.

2011-12-05  Ed Schonberg  <schonberg@adacore.com>

	* lib-writ.adb (Output_Main_Program_Line): A generic subprogram
	is never a main program.

2011-12-05  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb: Various minor adjustments to dominance markers
	generation.

2011-12-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): If the function is
	a completion, generate a body reference for its defining entity,
	before rewriting the node as a body.
	* sem_util.adb (Defining_Entity): Add entry for expression
	function.

From-SVN: r182006
2011-12-05 11:44:58 +01:00
Ramana Radhakrishnan 7f3d8f56e7 Use vcvt from fixed to floating point where applicable.
2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
         * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
         * config/arm/constraints.md ("Dt"): New constraint.
         * config/arm/predicates.md (const_double_vcvt_power_of_two_reciprocal):
          New.
         * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New.
         (*arm_combine_vcvt_f32_u32): New.

From-SVN: r182005
2011-12-05 10:42:53 +00:00
Arnaud Charlet 3128f9557f [multiple changes]
2011-12-05  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias
	to the Comes_From_Source check, to deal properly with the case
	of indirect inheritance of "=".

2011-12-05  Thomas Quinot  <quinot@adacore.com>

	PR ada/51307
	* s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal,
	not a macro.

2011-12-05  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance
	information in SCOs.

From-SVN: r182004
2011-12-05 11:31:58 +01:00
Dodji Seketeli 9b554be990 Add 'inline' to prototype of tokens_buff_remove_last_token
libcpp/

	* macro.c (tokens_buff_remove_last_token)
	(tokens_buff_put_token_to): Add an 'inline' function specifier to
	the prototype.

From-SVN: r182002
2011-12-05 10:20:59 +01:00
Richard Guenther 89faf322d8 cgraph.c (cgraph_create_edge_1): Initialize call_stmt_cannot_inline_p from the stmt if possible.
2011-12-05  Richard Guenther  <rguenther@suse.de>

	* cgraph.c (cgraph_create_edge_1): Initialize
	call_stmt_cannot_inline_p from the stmt if possible.
	(cgraph_make_edge_direct): Likewise.
	* gimple-streamer-in.c (input_gimple_stmt): Do not
	call gimple_call_set_cannot_inline.
	* gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift
	values.
	(gimple_call_set_cannot_inline): Remove.
	(gimple_call_cannot_inline_p): Likewise.
	* ipa-inline-analysis.c (initialize_inline_failed): Look
	at the edge call_stmt_cannot_inline_p flag.
	* ipa-inline.c (can_inline_edge_p): Likewise.
	(early_inliner): Only update the edge flag.
	* ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
	(ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
	* cgraphunit.c (assemble_thunk): Likewise.
	* gimple-fold.c (gimple_fold_call): Likewise.

	* tree.h (CALL_CANNOT_INLINE_P): Remove.
	* tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
	* builtins.c (expand_builtin_alloca): With -fmudflap do not expand
	alloca calls inline.
	* cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
	* gimple.c (gimple_build_call_from_tree): Do not read
	CALL_CANNOT_INLINE_P.
	* gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.

From-SVN: r182001
2011-12-05 08:51:53 +00:00