Commit Graph

111912 Commits

Author SHA1 Message Date
Jason Merrill
62a405ddf3 * call.c (convert_class_to_reference)
(convert_class_to_reference_1): Remove.
	(reference_binding): Use build_user_type_conversion_1 instead.

From-SVN: r178789
2011-09-12 14:04:46 -04:00
Jason Merrill
e495f6b0c0 call.c (initialize_reference): Add flags parm.
* call.c (initialize_reference): Add flags parm.
	* decl.c (grok_reference_init): Likewise.
	(check_initializer): Pass it.
	* typeck.c (convert_for_initialization): Likewise.
	* cp-tree.h: Adjust.

From-SVN: r178788
2011-09-12 14:04:39 -04:00
Jason Merrill
dbbc379eaa cp-tree.h (LOOKUP_NO_RVAL_BIND): New.
* cp-tree.h (LOOKUP_NO_RVAL_BIND): New.
	* call.c (conditional_conversion): Use it.
	(reference_binding): Fix handling of xvalues.

From-SVN: r178787
2011-09-12 14:04:31 -04:00
Jason Merrill
4ce1e77017 call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P before forcing instantiation.
* call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P
	before forcing instantiation.

From-SVN: r178786
2011-09-12 14:04:23 -04:00
Jakub Jelinek
b58d339116 re PR rtl-optimization/50212 (ICE: in ei_container, at basic-block.h:610 with -fnon-call-exceptions -freorder-blocks-and-partition)
PR rtl-optimization/50212
	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.

	* g++.dg/other/pr50212.C: New test.

From-SVN: r178785
2011-09-12 19:55:36 +02:00
Jakub Jelinek
7d8102762c re PR debug/50299 (entryval: bigendian 32bit->64bit extension breaks address match)
PR debug/50299
	* calls.c (load_register_parameters): Use use_reg_mode instead
	of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
	entry.
	(expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
	for stack CALL_INSN_FUNCTION_USAGE uses.
	* expr.h (use_reg_mode): New prototype.
	(use_reg): Changed into inline around use_reg_mode.
	* expr.c (use_reg): Renamed to...
	(use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
	mode to that mode instead of VOIDmode.
	* var-tracking.c (prepare_call_arguments): Don't track parameters
	whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
	to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
	EXPR_LIST mode.

From-SVN: r178784
2011-09-12 17:49:38 +02:00
Georg-Johann Lay
886a64f901 re PR target/43746 (-fmerge-constants and -fmerge-all-constants don't work at AVR target)
gcc/
	PR target/43746
	* config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
	(progmem_section): New Variable.
	(avr_asm_init_sections): Initialize it.
	(TARGET_ASM_SELECT_SECTION): Define to...
	(avr_asm_select_section): ... this new Function.
	(avr_replace_prefix): New Function.
	(avr_asm_function_rodata_section): Use it.
	(avr_insert_attributes): Don't add section attribute for PROGMEM.
	(avr_section_type_flags): Use avr_progmem_p instead of section
	name to detect if object is in PROGMEM.
	(avr_asm_named_section): Set section name prefix for objects in
	PROGMEM.

testsuite/
	PR target/43746
	* testsuite/gcc.target/avr/torture/avr-torture.exp
	(AVR_TORTURE_OPTIONS): Add test cases "-O2 -fdata-sections" and
	"-O2 -fmerge-all-constants".

From-SVN: r178779
2011-09-12 10:06:46 +00:00
Jakub Jelinek
dc72b3137a re PR bootstrap/50352 (arm-linux-gnueabi bootstrap failure due to -Wformat error in arm.md)
PR bootstrap/50352
	* config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
	sprintf format string.

From-SVN: r178778
2011-09-12 11:33:36 +02:00
Richard Guenther
ba02d3bcce re PR middle-end/50343 (FAIL: gfortran.dg/graphite/id-22.f)
2011-09-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50343
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
	that the reduction is over an SSA name before checking its
	definition.

From-SVN: r178775
2011-09-12 06:01:15 +00:00
GCC Administrator
79196217fb Daily bump.
From-SVN: r178774
2011-09-12 00:19:00 +00:00
Daniel Krugler
ac65b7d221 re PR libstdc++/50159 ([C++0x] tuple_cat only accepts two arguments)
2011-09-11  Daniel Krugler  <daniel.kruegler@googlemail.com>

	PR libstdc++/50159
	* include/std/tuple (tuple_cat): Reimplement according to the
	resolution of LWG 1385.
	* include/std/type_traits: Define __and_ and __or_ for zero
	arguments too; minor tweaks.
	* testsuite/20_util/tuple/creation_functions/tuple_cat.cc: New.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Disable
	for now tuple_cat test.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* doc/xml/manual/status_cxx200x.xml: Update.

From-SVN: r178770
2011-09-11 22:10:21 +00:00
Thomas Koenig
fa11ae6c72 re PR fortran/50327 (Front-end optimization generates wrong code for BLAS's srotmg)
2011-09-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/50327
	* frontend-passes.c (dummy_expr_callback):  New function.
	(convert_do_while):  New function.
	(optimize_namespace):  Call code walker to convert do while loops.

2011-09-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/50327
	* gfortran.dg/do_while_1.f90:  New test.

From-SVN: r178768
2011-09-11 20:48:26 +00:00
Janus Weil
9795c59419 re PR fortran/35831 ([F95] Shape mismatch check missing for dummy procedure argument)
2011-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/35831
	PR fortran/47978
	* interface.c (check_dummy_characteristics): New function to check the
	characteristics of dummy arguments.
	(gfc_compare_interfaces,gfc_check_typebound_override): Call it here.


2011-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/35831
	PR fortran/47978
	* gfortran.dg/dynamic_dispatch_5.f03: Fix invalid test case.
	* gfortran.dg/proc_decl_26.f90: New.
	* gfortran.dg/typebound_override_2.f90: New.
	* gfortran.dg/typebound_proc_6.f03: Changed wording in error message.

From-SVN: r178767
2011-09-11 22:12:24 +02:00
Eric Botcazou
7e16989955 utils.c (maybe_unconstrained_array): In the reference to unconstrained array case, deal with each branch of a COND_EXPR.
* gcc-interface/utils.c (maybe_unconstrained_array): In the reference
	to unconstrained array case, deal with each branch of a COND_EXPR.
	* gcc-interface/utils2.c (build_allocator): Deal with each branch of
	a COND_EXPR in the initializer, if present.

From-SVN: r178766
2011-09-11 19:14:51 +00:00
Eric Botcazou
819a653eee decl.c (maybe_pad_type): Do not try to change the form of an addressable type.
* gcc-interface/decl.c (maybe_pad_type): Do not try to change the form
	of an addressable type.
	* gcc-interface/trans.c (gnat_gimplify_expr) <VIEW_CONVERT_EXPR>: New.
	Deal with those cases for which creating a temporary is mandatory.

From-SVN: r178764
2011-09-11 18:56:40 +00:00
Eric Botcazou
c946adde12 trans.c (call_to_gnu): Use local variable.
* gcc-interface/trans.c (call_to_gnu): Use local variable.  Make sure
	this is a real formal parameter before testing whether it is by ref.

From-SVN: r178763
2011-09-11 18:38:30 +00:00
Eric Botcazou
dddf8120db gigi.h (build_call_0_expr): Delete.
* gcc-interface/gigi.h (build_call_0_expr): Delete.
	(build_call_1_expr): Likewise.
	(build_call_2_expr): Likewise.
	(build_call_n_expr): New prototype.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr.
	* gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto.
	(Handled_Sequence_Of_Statements_to_gnu): Likewise.
	(Exception_Handler_to_gnu_zcx): Likewise.
	(gnat_to_gnu): Likewise.
	(build_binary_op_trapv): Likewise.
	* gcc-interface/utils2.c (build_call_0_expr): Delete.
	(build_call_1_expr): Likewise.
	(build_call_2_expr): Likewise.
	(build_call_n_expr): New function.
	(build_call_raise): Use build_call_n_expr.
	(build_call_raise_range): Likewise.
	(build_call_raise_column): Likewise.
	(build_call_alloc_dealloc_proc): Likewise.
	(maybe_wrap_malloc): Likewise.
	(maybe_wrap_free): Likewise.

From-SVN: r178762
2011-09-11 18:33:46 +00:00
Eric Botcazou
d8e3855467 trans.c (build_return_expr): Use void_type_node for MODIFY_EXPR.
* gcc-interface/trans.c (build_return_expr): Use void_type_node for
	MODIFY_EXPR.
	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Assert that
	the result type is null if ENABLE_CHECKING.  Set operation_type at the
	end unconditionally if not set in the previous cases.
	Use build2 and void_type_node for MODIFY_EXPR.
	(build_allocator): Use NULL_TREE for MODIFY_EXPR.

From-SVN: r178761
2011-09-11 18:28:05 +00:00
Richard Sandiford
bf0b8cbee5 cris.md: Use match_test rather than eq/ne symbol_ref throughout file.
gcc/
	* config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

From-SVN: r178760
2011-09-11 17:21:50 +00:00
Richard Sandiford
ae0087f281 mips.md: Use match_test rather than eq/ne symbol_ref throughout file.
gcc/
	* config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
	throughout file.
	* config/mips/sb1.md: Likewise.
	* config/mips/predicates.md: Replace (match_test "!...")
	with (not (match_test "..."))
	* config/mips/constraints.md: Likewise.

From-SVN: r178759
2011-09-11 17:19:55 +00:00
GCC Administrator
d42cbc6c9d Daily bump.
From-SVN: r178753
2011-09-11 00:20:00 +00:00
H.J. Lu
b0ad89b87b Check ia32 instead of ilp32.
2011-09-10  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.dg/sibcall-6.c: Check ia32 instead of ilp32.

From-SVN: r178749
2011-09-10 12:15:38 -07:00
Thomas Koenig
95928a1322 re PR fortran/49479 (reshape / optionals / zero sized arrays)
2011-09-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/49479
	* generated/m4/ifunction.m4:  Always call internal_malloc_size
	even when there is a zero-sized return array.
	* generated/generated/maxloc1_16_i16.c: Regenerated.
	* generated/generated/maxloc1_16_i1.c: Regenerated.
	* generated/generated/maxloc1_16_i2.c: Regenerated.
	* generated/generated/maxloc1_16_i4.c: Regenerated.
	* generated/generated/maxloc1_16_i8.c: Regenerated.
	* generated/generated/maxloc1_16_r10.c: Regenerated.
	* generated/generated/maxloc1_16_r16.c: Regenerated.
	* generated/generated/maxloc1_16_r4.c: Regenerated.
	* generated/generated/maxloc1_16_r8.c: Regenerated.
	* generated/generated/maxloc1_4_i16.c: Regenerated.
	* generated/generated/maxloc1_4_i1.c: Regenerated.
	* generated/generated/maxloc1_4_i2.c: Regenerated.
	* generated/generated/maxloc1_4_i4.c: Regenerated.
	* generated/generated/maxloc1_4_i8.c: Regenerated.
	* generated/generated/maxloc1_4_r10.c: Regenerated.
	* generated/generated/maxloc1_4_r16.c: Regenerated.
	* generated/generated/maxloc1_4_r4.c: Regenerated.
	* generated/generated/maxloc1_4_r8.c: Regenerated.
	* generated/generated/maxloc1_8_i16.c: Regenerated.
	* generated/generated/maxloc1_8_i1.c: Regenerated.
	* generated/generated/maxloc1_8_i2.c: Regenerated.
	* generated/generated/maxloc1_8_i4.c: Regenerated.
	* generated/generated/maxloc1_8_i8.c: Regenerated.
	* generated/generated/maxloc1_8_r10.c: Regenerated.
	* generated/generated/maxloc1_8_r16.c: Regenerated.
	* generated/generated/maxloc1_8_r4.c: Regenerated.
	* generated/generated/maxloc1_8_r8.c: Regenerated.
	* generated/generated/maxval_i16.c: Regenerated.
	* generated/generated/maxval_i1.c: Regenerated.
	* generated/generated/maxval_i2.c: Regenerated.
	* generated/generated/maxval_i4.c: Regenerated.
	* generated/generated/maxval_i8.c: Regenerated.
	* generated/generated/maxval_r10.c: Regenerated.
	* generated/generated/maxval_r16.c: Regenerated.
	* generated/generated/maxval_r4.c: Regenerated.
	* generated/generated/maxval_r8.c: Regenerated.
	* generated/generated/minloc1_16_i16.c: Regenerated.
	* generated/generated/minloc1_16_i1.c: Regenerated.
	* generated/generated/minloc1_16_i2.c: Regenerated.
	* generated/generated/minloc1_16_i4.c: Regenerated.
	* generated/generated/minloc1_16_i8.c: Regenerated.
	* generated/generated/minloc1_16_r10.c: Regenerated.
	* generated/generated/minloc1_16_r16.c: Regenerated.
	* generated/generated/minloc1_16_r4.c: Regenerated.
	* generated/generated/minloc1_16_r8.c: Regenerated.
	* generated/generated/minloc1_4_i16.c: Regenerated.
	* generated/generated/minloc1_4_i1.c: Regenerated.
	* generated/generated/minloc1_4_i2.c: Regenerated.
	* generated/generated/minloc1_4_i4.c: Regenerated.
	* generated/generated/minloc1_4_i8.c: Regenerated.
	* generated/generated/minloc1_4_r10.c: Regenerated.
	* generated/generated/minloc1_4_r16.c: Regenerated.
	* generated/generated/minloc1_4_r4.c: Regenerated.
	* generated/generated/minloc1_4_r8.c: Regenerated.
	* generated/generated/minloc1_8_i16.c: Regenerated.
	* generated/generated/minloc1_8_i1.c: Regenerated.
	* generated/generated/minloc1_8_i2.c: Regenerated.
	* generated/generated/minloc1_8_i4.c: Regenerated.
	* generated/generated/minloc1_8_i8.c: Regenerated.
	* generated/generated/minloc1_8_r10.c: Regenerated.
	* generated/generated/minloc1_8_r16.c: Regenerated.
	* generated/generated/minloc1_8_r4.c: Regenerated.
	* generated/generated/minloc1_8_r8.c: Regenerated.
	* generated/generated/minval_i16.c: Regenerated.
	* generated/generated/minval_i1.c: Regenerated.
	* generated/generated/minval_i2.c: Regenerated.
	* generated/generated/minval_i4.c: Regenerated.
	* generated/generated/minval_i8.c: Regenerated.
	* generated/generated/minval_r10.c: Regenerated.
	* generated/generated/minval_r16.c: Regenerated.
	* generated/generated/minval_r4.c: Regenerated.
	* generated/generated/minval_r8.c: Regenerated.
	* generated/generated/product_c10.c: Regenerated.
	* generated/generated/product_c16.c: Regenerated.
	* generated/generated/product_c4.c: Regenerated.
	* generated/generated/product_c8.c: Regenerated.
	* generated/generated/product_i16.c: Regenerated.
	* generated/generated/product_i1.c: Regenerated.
	* generated/generated/product_i2.c: Regenerated.
	* generated/generated/product_i4.c: Regenerated.
	* generated/generated/product_i8.c: Regenerated.
	* generated/generated/product_r10.c: Regenerated.
	* generated/generated/product_r16.c: Regenerated.
	* generated/generated/product_r4.c: Regenerated.
	* generated/generated/product_r8.c: Regenerated.
	* generated/generated/sum_c10.c: Regenerated.
	* generated/generated/sum_c16.c: Regenerated.
	* generated/generated/sum_c4.c: Regenerated.
	* generated/generated/sum_c8.c: Regenerated.
	* generated/generated/sum_i16.c: Regenerated.
	* generated/generated/sum_i1.c: Regenerated.
	* generated/generated/sum_i2.c: Regenerated.
	* generated/generated/sum_i4.c: Regenerated.
	* generated/generated/sum_i8.c: Regenerated.
	* generated/generated/sum_r10.c: Regenerated.
	* generated/generated/sum_r16.c: Regenerated.
	* generated/generated/sum_r4.c: Regenerated.
	* generated/generated/sum_r8.c: Regenerated.

From-SVN: r178748
2011-09-10 14:06:57 +00:00
Ian Lance Taylor
93d83339d5 Fix using package name as composite literal struct key.
From-SVN: r178747
2011-09-10 04:12:07 +00:00
Paolo Carlini
049d289351 tuple: Use everywhere std::size_t...
2011-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple: Use everywhere std::size_t... instead of int...
	* include/std/functional: Likewise.
	* include/std/scoped_allocator: Likewise.
	* include/bits/stl_pair.h: Likewise.

From-SVN: r178746
2011-09-10 00:47:02 +00:00
GCC Administrator
25e723bdec Daily bump.
From-SVN: r178745
2011-09-10 00:19:17 +00:00
Georg-Johann Lay
fcd682311e re PR target/49030 (ICE in get_arm_condition_code, at config/arm/arm.c:17180)
PR target/49030
	* gcc.dg/torture/pr49030.c: Run only if target int32plus.

From-SVN: r178736
2011-09-09 17:00:26 +00:00
Andrew Stubbs
54e73f8802 arm-cores.def (generic-armv7-a): New architecture.
2011-09-09  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm-cores.def (generic-armv7-a): New architecture.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm.c (arm_file_start): Output .arch directive when
	user passes -mcpu=generic-*.
	(arm_issue_rate): Add genericv7a support.
	* config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
	(ASM_CPU_SPEC): New define.
	* config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
	* config/arm/semi.h (ASM_SPEC): Likewise.
	* doc/invoke.texi (ARM Options): Document -mcpu=generic-*
	and -mtune=generic-*.

From-SVN: r178731
2011-09-09 13:57:41 +00:00
Iain Sandoe
c52571dff7 re PR target/49614 (FAIL: gcc.dg/vmx/gcc-bug-i.c -O0 (test for excess errors))
gcc/testsuite:

	PR target/49614
	* gcc.dg/vmx/gcc-bug-i.c (inline_me): Declare 'inline'.

From-SVN: r178730
2011-09-09 13:51:12 +00:00
Richard Guenther
107defbe86 re PR tree-optimization/50328 (reduction with constant or invariant not vectorized)
2011-09-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50328
	* tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
	constant or default-def operand.

	* gcc.dg/vect/fast-math-vect-outer-7.c: New testcase.

From-SVN: r178728
2011-09-09 12:35:11 +00:00
Richard Guenther
0aa1658649 tree-ssa-pre.c (create_expression_by_pieces): Fold the last statement.
2011-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (create_expression_by_pieces): Fold the
	last statement.

From-SVN: r178727
2011-09-09 12:31:33 +00:00
Richard Guenther
59401b92b3 gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator instead of a statement.
2011-09-09  Richard Guenther  <rguenther@suse.de>

	* gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
	instead of a statement.
	* gimple-fold.c (fold_stmt_inplace): Likewise.
	* sese.c (graphite_copy_stmts_from_block): Adjust.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
	fold_stmt.
	(forward_propagate_addr_into_variable_array_index): Likewise.
	(forward_propagate_addr_expr_1): adjust.
	(associate_plusminus): Likewise.
	(ssa_forward_propagate_and_combine): Likewise.
	* tree-ssa-mathopts.c (replace_reciprocal): Adjust.
	(execute_cse_reciprocals): Likewise.
	* tree-ssa.c (insert_debug_temp_for_var_def): Adjust.

From-SVN: r178726
2011-09-09 11:52:51 +00:00
Nick Clifton
cf13d9cf50 mn10300.c (mn10300_split_and_operand_count): Return a positive value to indicate that the bits at the bottom of the register...
* config/mn10300/mn10300.c (mn10300_split_and_operand_count):
	Return a positive value to indicate that the bits at the
	bottom of the register should be cleared.

From-SVN: r178724
2011-09-09 10:58:10 +00:00
Richard Guenther
64d9cb054e tree-ssa-operands.c (swap_tree_operands): Always adjust existing operand positions.
2011-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (swap_tree_operands): Always adjust
	existing operand positions.

From-SVN: r178723
2011-09-09 10:31:10 +00:00
Richard Guenther
ffd78b302f re PR middle-end/50333 (internal compiler error: in extract_ops_from_tree, at gimple.h:1909)
2011-09-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50333
	* tree-data-ref.c (split_constant_offset): Do not try to handle
	ternary ops.

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

From-SVN: r178720
2011-09-09 09:06:49 +00:00
GCC Administrator
f9e72719b2 Daily bump.
From-SVN: r178717
2011-09-09 00:19:15 +00:00
Paolo Carlini
ebb6e4af61 re PR libstdc++/50336 (LWG issue 445)
2011-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/50336
	* include/bits/streambuf_iterator.h (class istreambuf_iterator):
	Implement LWG 445 in C++0x mode.
	* testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
	New.

From-SVN: r178713
2011-09-08 22:42:21 +00:00
Dodji Seketeli
164bb913f2 re PR c/50332 (FAIL: gcc.dg/attr-invalid.c)
Fix PR c/50332

gcc/testsuite/

	* gcc.dg/attr-invalid.c: Adjust as __attribute__((used) is no
	longer ignored on typedefs.

From-SVN: r178712
2011-09-08 23:46:14 +02:00
Eric Botcazou
416de7d549 utils.c (unchecked_convert): Use a field of the right precision when converting to or from an integral type...
* gcc-interface/utils.c (unchecked_convert): Use a field of the right
	precision when converting to or from an integral type whose precision
	is not equal to its size.

From-SVN: r178711
2011-09-08 21:12:37 +00:00
Andrew Stubbs
c3c5a1ccc0 re PR tree-optimization/50318 (ICE optimizing widening multiply-and-accumulate)
2011-09-08  Andrew Stubbs  <ams@codesourcery.com>

	PR tree-optimization/50318

	gcc/
	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
	typo in use of mult_rhs1 and mult_rhs2.

	gcc/testsuite/
	* gcc.target/arm/pr50318-1.c: New file.

From-SVN: r178708
2011-09-08 19:45:37 +00:00
Uros Bizjak
a2e6888d20 * config/i386.c (standard_sse_constant_opcode): Fix last commit.
From-SVN: r178705
2011-09-08 20:30:43 +02:00
Uros Bizjak
974e0ad69d i386.c (standard_sse_constant_p): Handle AVX2 modes.
2011-09-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
	(standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.

testsuite/ChangeLog:

2011-09-08  Uros Bizjak  <ubizjak@gmail.com>

	* gcc.target/i386/all_one_m256i.c: New test.

From-SVN: r178704
2011-09-08 20:24:04 +02:00
Bernd Schmidt
bd2777de1f arm.md (push_multi): Emit predicates.
* config/arm/arm.md (push_multi): Emit predicates.
	(push_fp_multi): Likewise.
	* config/arm/arm.c (vfp_output_fstmd): Likewise.

From-SVN: r178700
2011-09-08 16:29:17 +00:00
Mikael Morin
e97b61c26e trans-array.c (gfc_trans_constant_array_constructor): Remove superfluous initialisation of DIM field.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_trans_constant_array_constructor): Remove
	superfluous initialisation of DIM field.
	(gfc_trans_array_constructor): Assert that DIMEN field is properly set.
	(gfc_conv_expr_descriptor): Ditto.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.

From-SVN: r178698
2011-09-08 15:40:48 +00:00
Mikael Morin
26f7753013 trans-array.h (gfc_get_scalar_ss): New prototype.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_scalar_ss): New prototype.
	* trans-array.c (gfc_get_scalar_ss): New function.
	(gfc_walk_variable_expr, gfc_walk_op_expr,
	gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	(gfc_trans_assignment_1): Ditto.
	* trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
	gfc_trans_where_3): Ditto.

From-SVN: r178697
2011-09-08 15:30:39 +00:00
Mikael Morin
a1ae4f435f trans-array.h (gfc_get_temp_ss): New prototype.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_temp_ss): New prototype.
	* trans-array.c (gfc_get_temp_ss): New function.
	(gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
	(gfc_conv_expr_descriptor): Ditto.
	* trans-expr.c (gfc_conv_subref_array_arg): Ditto.

From-SVN: r178696
2011-09-08 15:18:20 +00:00
Mikael Morin
6687727615 trans-array.h (gfc_get_array_ss): New prototype.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_array_ss): New prototype.
	* trans-array.c (gfc_get_array_ss): New function.
	(gfc_walk_variable_expr, gfc_walk_function_expr,
	gfc_walk_array_constructor): Re-use gfc_get_array_ss.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	* trans-intrinsic.c (gfc_walk_intrinsic_bound,
	gfc_walk_intrinsic_libfunc): Ditto.
	* trans-io.c (transfer_array_component): Ditto.

From-SVN: r178695
2011-09-08 15:07:01 +00:00
Paolo Carlini
2d49bd6e23 re PR c++/50324 ([C++0x] SFINAE does not handle the object creation of an incomplete type)
/cp
2011-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50324
	* typeck2.c (digest_init_r): Call complete_type_or_maybe_complain
	instead of complete_type_or_else.

/testsuite
2011-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50324
	* g++.dg/cpp0x/sfinae28.C: New.

From-SVN: r178694
2011-09-08 14:58:21 +00:00
Dodji Seketeli
3797cb21ff PR c++/33255 - Support -Wunused-local-typedefs warning
gcc/

	* c-decl.c (lookup_name): Use the new
	maybe_record_typedef_use.
	(pushdecl): Use the new
	record_locally_defined_typedef.
	(store_parm_decls): Allocate cfun->language.
	(finish_function): Use the new maybe_warn_unused_local_typedefs,
	and free cfun->language.
	(c_push_function_context): Allocate cfun->language here only if
	needed.
	(c_pop_function_context): Likewise, mark cfun->language
	for collection only when it should be done.
	* c-common.c (handle_used_attribute): Don't ignore TYPE_DECL
	nodes.
	* c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
	maybe_record_local_typedef_use.

gcc/c-family

	* c-common.h (struct c_language_function::local_typedefs): New
	field.
	(record_locally_defined_typedef, maybe_record_typedef_use)
	(maybe_warn_unused_local_typedefs): Declare new functions.
	* c-common.c (record_locally_defined_typedef)
	(maybe_record_typedef_use)
	(maybe_warn_unused_local_typedefs): Define new functions.
	* c.opt: Declare new -Wunused-local-typedefs flag.

gcc/cp

	* name-lookup.c (pushdecl_maybe_friend_1): Use the new
	record_locally_defined_typedef.
	* decl.c (finish_function): Use the new
	maybe_warn_unused_local_typedefs.
	(grokfield): Use the new record_locally_defined_typedef.
	* parser.c (lookup_name): Use the new maybe_record_typedef_use.

gcc/doc/

	* invoke.texi: Update documentation for -Wunused-local-typedefs.

gcc/testsuite/

	* g++.dg/warn/Wunused-local-typedefs.C: New test file.
	* c-c++-common/Wunused-local-typedefs.c: Likewise.

libstdc++-v3/

	* include/ext/bitmap_allocator.h
	(__detail::__mini_vector::__lower_bound): Remove unused typedef.
	* src/istream.cc (std::operator>>(basic_istream<char>& __in,
	basic_string<char>& __str)): Likewise.
	(std::getline): Likewise.
	* src/valarray.cc (__valarray_product): Likewise.

From-SVN: r178692
2011-09-08 15:54:24 +02:00
Enkovich Ilya
d275ab8b80 Improve AGU stalls avoidance optimization.
2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>

	* config/i386/i386-protos.h (ix86_lea_outperforms): New.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.

	* config/i386/i386.c (LEA_MAX_STALL): New.
	(increase_distance): Likewise.
	(insn_defines_reg): Likewise.
	(insn_uses_reg_mem): Likewise.
	(distance_non_agu_define_in_bb): Likewise.
	(distance_agu_use_in_bb): Likewise.
	(ix86_lea_outperforms): Likewise.
	(ix86_ok_to_clobber_flags): Likewise.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.
	(distance_non_agu_define): Search in pred BBs added.
	(distance_agu_use): Search in succ BBs added.
	(IX86_LEA_PRIORITY): Value changed from 2 to 0.
	(LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
	(ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.

	* config/i386/i386.md: Split added to transform non destructive
	add into move and add.
	(lea_1): transformed into insn_and_split to avoid AGU stalls.
	(lea<mode>_2): Likewise.

From-SVN: r178689
2011-09-08 06:41:27 -07:00