1. 28 Jul, 2011 5 commits
    • re PR target/49687 ([avr] Missed optimization for widening MUL) · 296799ba
      	
      	PR target/49687
      	* config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
      	Add _muluhisi3, _mulshisi3, _usmulhisi3.
      	* config/avr/libgcc.S (__mulsi3): Rewrite.
      	(__mulhisi3): Rewrite.
      	(__umulhisi3): Rewrite.
      	(__usmulhisi3): New.
      	(__muluhisi3): New.
      	(__mulshisi3): New.
      	(__mulohisi3): New.
      	(__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
      	declare.
      	* config/avr/predicates.md (pseudo_register_operand): Rewrite.
      	(pseudo_register_or_const_int_operand): New.
      	(combine_pseudo_register_operand): New.
      	(u16_operand): New.
      	(s16_operand): New.
      	(o16_operand): New.
      	* config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
      	* config/avr/avr.md (QIHI, QIHI2): New mode iterators.
      	(any_extend, any_extend2): New code iterators.
      	(extend_prefix): New code attribute.
      	(mulsi3): Rewrite. Turn insn to expander.
      	(mulhisi3): Ditto.
      	(umulhisi3): Ditto.
      	(usmulhisi3): New expander.
      	(*mulsi3): New insn-and-split.
      	(mulu<mode>si3): New insn-and-split.
      	(muls<mode>si3): New insn-and-split.
      	(mulohisi3): New insn-and-split.
      	(*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
      	*usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
      	*sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
      	*ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
      	insn-and-split.
      	(*mulsi3_call): Rewrite.
      	(*mulhisi3_call): Rewrite.
      	(*umulhisi3_call): Rewrite.
      	(*usmulhisi3_call): New insn.
      	(*muluhisi3_call): New insn.
      	(*mulshisi3_call): New insn.
      	(*mulohisi3_call): New insn.
      	(extendqihi2): Use combine_pseudo_register_operand as predicate
      	for operand 1.
      	(extendqisi2): Ditto.
      	(zero_extendqihi2): Ditto.
      	(zero_extendqisi2): Ditto.
      	(zero_extendhisi2): Ditto.
      	(extendhisi2): Ditto. Don't early-clobber operand 0.
      
      From-SVN: r176862
      Georg-Johann Lay committed
    • linux-unwind.h (frob_update_context <__powerpc64__>): Leave r2 REG_UNSAVED if… · 2374a88a
      linux-unwind.h (frob_update_context <__powerpc64__>): Leave r2 REG_UNSAVED if stopped on the instruction that saves r2 in a plt call stub.
      
      	* config/rs6000/linux-unwind.h (frob_update_context <__powerpc64__>):
      	Leave r2 REG_UNSAVED if stopped on the instruction that saves r2
      	in a plt call stub.  Do restore r2 if stopped on bctrl.
      
      From-SVN: r176861
      Alan Modra committed
    • i386.c (add->lea splitter): Add SWI mode to PLUS RTX. · d8fa1b73
      	* config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
      
      From-SVN: r176860
      Uros Bizjak committed
    • i386.exp (check_effective_target_bmi): Make sure the builtin isn't optimized away. · 542550cf
      	* gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure
      	the builtin isn't optimized away.
      
      From-SVN: r176859
      Jakub Jelinek committed
    • Daily bump. · 1c9275a9
      From-SVN: r176856
      GCC Administrator committed
  2. 27 Jul, 2011 21 commits
    • re PR fortran/45586 (ICE non-trivial conversion at assignment) · 4bfd470b
      2011-07-27  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/45586
              * trans-types.c (gfc_get_derived_type): Ensure that pointer
              component types are marked as nonrestricted.
      
      2011-07-27  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/45586
              * gfortran.dg/lto/pr45586-2_0.f90: New.
      
      From-SVN: r176852
      Tobias Burnus committed
    • re PR middle-end/49875 (FAIL: c-c++-common/cxxbitfields-4.c) · fa8a398e
             PR middle-end/49875
              * c-c++-common/cxxbitfields-4.c: Check for smaller than long
              moves.
              * c-c++-common/cxxbitfields-5.c: Same.
      
      From-SVN: r176848
      Aldy Hernandez committed
    • re PR c++/49813 ([C++0x] sinh vs asinh vs constexpr) · fa459900
      2011-07-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/49813
      	* include/c_global/cmath: Use _GLIBCXX_CONSTEXPR and constexpr.
      
      From-SVN: r176847
      Paolo Carlini committed
    • target-supports.exp (check_effective_target_mmap): Use check_function_available. · a5f9523c
      	* lib/target-supports.exp (check_effective_target_mmap): Use
      	check_function_available.
      
      From-SVN: r176846
      Ulrich Weigand committed
    • Propagate the source location of a template's function_decl to the template_decl built out of it. · ce77c22f
      Propagate the source location of a template's function_decl to the
      template_decl built out of it.  Without this, specializations
      generated before the template was defined get the location of the
      closing ')' instead of the location of the template's name, which can
      produce inconsistent locations between translation units, which makes
      gold's ODR checker unhappy.
      
      	* gcc/cp/pt.c (build_template_decl): Copy the function_decl's source
      	location to the new template_decl.
      	* gcc/testsuite/g++.old-deja/g++.pt/crash60.C: Updated.
      	* libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Updated.
      
      From-SVN: r176845
      Jeffrey Yasskin committed
    • re PR target/49866 (-mcmodel=large tail call fails to assemble) · f22cfb2e
      	PR target/49866
      	* gcc.target/i386/pr49866.c: New test.
      
      From-SVN: r176842
      Jakub Jelinek committed
    • Add BMI testcases. · 084e45a5
      2011-07-27  Yukhin Kirill  <kirill.yukhin@intel.com>
      
      	* gcc.target/i386/i386.exp (check_effective_target_bmi): New.
      	* gcc.target/i386/bmi-andn-1.c: New test.
      	* gcc.target/i386/bmi-andn-1a.c: Likewise.
      	* gcc.target/i386/bmi-andn-2.c: Likewise.
      	* gcc.target/i386/bmi-andn-2a.c: Likewise.
      	* gcc.target/i386/bmi-bextr-1.c: Likewise.
      	* gcc.target/i386/bmi-bextr-1a.c: Likewise.
      	* gcc.target/i386/bmi-bextr-2.c: Likewise.
      	* gcc.target/i386/bmi-bextr-2a.c: Likewise.
      	* gcc.target/i386/bmi-blsi-1.c: Likewise.
      	* gcc.target/i386/bmi-blsi-1a.c: Likewise.
      	* gcc.target/i386/bmi-blsi-2.c: Likewise.
      	* gcc.target/i386/bmi-blsi-2a.c: Likewise.
      	* gcc.target/i386/bmi-blsmsk-1.c: Likewise.
      	* gcc.target/i386/bmi-blsmsk-1a.c: Likewise.
      	* gcc.target/i386/bmi-blsmsk-2.c: Likewise.
      	* gcc.target/i386/bmi-blsmsk-2a.c: Likewise.
      	* gcc.target/i386/bmi-blsr-1.c: Likewise.
      	* gcc.target/i386/bmi-blsr-1a.c: Likewise.
      	* gcc.target/i386/bmi-blsr-2.c: Likewise.
      	* gcc.target/i386/bmi-blsr-2a.c: Likewise.
      	* gcc.target/i386/bmi-tzcnt-1.c: Likewise.
      	* gcc.target/i386/bmi-tzcnt-1a.c: Likewise.
      	* gcc.target/i386/bmi-tzcnt-2.c: Likewise.
      	* gcc.target/i386/bmi-tzcnt-2a.c: Likewise.
      
      From-SVN: r176840
      Yukhin Kirill committed
    • Fix PR49471: canonicalize_loop_ivs should not generate unsigned types. · 3689198d
      2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
      
      	PR tree-optimization/49471
      	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
      	iv only when the largest type is unsigned.  Do not call
      	lang_hooks.types.type_for_size.
      
      	* testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
      	* testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
      
      From-SVN: r176838
      Sebastian Pop committed
    • PR45450: disable legality check after an openscop read · 27165edd
      2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
      
      	PR middle-end/45450
      	* graphite-poly.c (apply_poly_transforms): Disable legality check
      	after an openscop read.
      
      From-SVN: r176837
      Sebastian Pop committed
    • Fix PR47691: do not abort compilation when code generation fails · bd4a54da
      2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
      
      	PR middle-end/47691
      	* graphite-clast-to-gimple.c (translate_clast_user): Update use of
      	copy_bb_and_scalar_dependences.
      	* sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
      	(graphite_copy_stmts_from_block): Update call to rename_uses.
      	(copy_bb_and_scalar_dependences): Update call to
      	graphite_copy_stmts_from_block.
      	* sese.h (copy_bb_and_scalar_dependences): Update declaration.
      
      	* gfortran.dg/graphite/id-pr47691.f: New.
      
      From-SVN: r176836
      Sebastian Pop committed
    • re PR target/49313 (Inefficient libgcc implementations for avr) · 04c9ea12
      	
      	PR target/49313
      	* config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
      	(__ctzsi2): Result for 0 may be undefined.
      	(__ctzhi2): Result for 0 may be undefined.
      	(__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
      	(__popcountsi2): Ditto. And don't clobber r26.
      	(__popcountdi2): Ditto. And don't clobber r27.
      	* config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
      	(parityhi2): New expand.
      	(paritysi2): New expand.
      	(popcounthi2): New expand.
      	(popcountsi2): New expand.
      	(clzhi2): New expand.
      	(clzsi2): New expand.
      	(ctzhi2): New expand.
      	(ctzsi2): New expand.
      	(ffshi2): New expand.
      	(ffssi2): New expand.
      	(copysignsf3): New insn.
      	(bswapsi2): New expand.
      	(*parityhi2.libgcc): New insn.
      	(*parityqihi2.libgcc): New insn.
      	(*paritysihi2.libgcc): New insn.
      	(*popcounthi2.libgcc): New insn.
      	(*popcountsi2.libgcc): New insn.
      	(*popcountqi2.libgcc): New insn.
      	(*popcountqihi2.libgcc): New insn-and-split.
      	(*clzhi2.libgcc): New insn.
      	(*clzsihi2.libgcc): New insn.
      	(*ctzhi2.libgcc): New insn.
      	(*ctzsihi2.libgcc): New insn.
      	(*ffshi2.libgcc): New insn.
      	(*ffssihi2.libgcc): New insn.
      	(*bswapsi2.libgcc): New insn.
      
      From-SVN: r176835
      Georg-Johann Lay committed
    • i386.c (ix86_expand_move): Do not explicitly check the mode of symbolic_opreand RTXes. · 479a4921
      	* config/i386/i386.c (ix86_expand_move): Do not explicitly check
      	the mode of symbolic_opreand RTXes.
      
      From-SVN: r176834
      Uros Bizjak committed
    • predicates.md (x86_64_movabs_operand): Reject pic32_bit_operand operands. · 7aecd4e8
      	* config/i386/predicates.md (x86_64_movabs_operand): Reject
      	pic32_bit_operand operands.
      	* config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
      	in DImode.
      
      From-SVN: r176833
      Uros Bizjak committed
    • avx-os-support.h: New. · 5019a14e
      	* gcc.target/i386/avx-os-support.h: New.
      	* gcc.target/i386/avx-check.h: Include avx-os-support.h
      	(main): Check avx_os_support before the test is run.
      	* gcc.target/i386/aes-avx-check.h: Ditto.
      	* gcc.target/i386/pclmul-avx-check.h: Ditto.
      
      From-SVN: r176829
      Uros Bizjak committed
    • i386.c (ix86_option_override_internal): Allow -mabi for 32-bit, too. · 2fe83a0c
              * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
              for 32-bit, too.
              (ix86_handle_abi_attribute): Allow function attributes
              ms_abi/sysv_abi in 32-bit mode, too.
              * doc/extend.texi: Adjust attribute documentation.
      
              * gcc.target/i386/aggregate-ret3.c: New test.
              * gcc.target/i386/aggregate-ret4.c: New test.
      
      From-SVN: r176828
      Kai Tietz committed
    • gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR expression handling. · eb9820c0
      2011-07-27  Kai Tietz  <ktietz@redhat.com>
      
              * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
              expression handling.
              (and_var_with_comparison_1): Likewise.
      
      From-SVN: r176827
      Kai Tietz committed
    • params.h (ALLOW_STORE_DATA_RACES): New. · 1169e45d
      	* params.h (ALLOW_STORE_DATA_RACES): New.
      	* params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
      	* Makefile.in (expr.o): Depend on PARAMS_H.
      	* machmode.h (get_best_mode): Add argument.
      	* fold-const.c (optimize_bit_field_compare): Add argument to
      	get_best_mode.
      	(fold_truthop): Same.
      	* ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
      	* expr.c (emit_group_store): Same.
      	(copy_blkmode_from_reg): Same.
      	(write_complex_part): Same.
      	(optimize_bitfield_assignment_op): Add argument.
      	Add argument to get_best_mode.
      	(get_bit_range): New.
      	(expand_assignment): Calculate maxbits and pass it down
      	accordingly.
      	(store_field): New argument.
      	(expand_expr_real_2): New argument to store_field.
      	Include params.h.
      	* expr.h (store_bit_field): New argument.
      	* stor-layout.c (get_best_mode): Restrict mode expansion by taking
      	into account maxbits.
      	* calls.c (store_unaligned_arguments_into_pseudos): New argument
      	to store_bit_field.
      	* expmed.c (store_bit_field_1): New argument.  Use it.
      	(store_bit_field): Same.
      	(store_fixed_bit_field): Same.
      	(store_split_bit_field): Same.
      	(extract_bit_field_1): Pass new argument to get_best_mode.
      	(extract_bit_field): Same.
      	* stmt.c (store_bit_field): Pass new argument to store_bit_field.
      	* doc/invoke.texi: Document parameter allow-store-data-races.
      
      From-SVN: r176824
      Aldy Hernandez committed
    • re PR fortran/49755 (ALLOCATE with STAT= produces invalid code for already allocated vars) · 4f13e17f
      2011-07-26  Daniel Carrera  <dcarrera@gmail.com>
      
      	PR fortran/49755
      	* trans.c (gfc_allocate_using_malloc): Change function signature.
      	Return nothing. New parameter "pointer". Eliminate temorary variables.
      	(gfc_allocate_using_lib): Ditto.
      	(gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
      	and gfc_allocate_using_malloc. Do not free and then reallocate a
      	variable that is already allocated.
      	(gfc_likely): New function. Basedon gfc_unlikely.
      	* trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
      	Instructions to modify the array descriptor are stored in this block
      	while other instructions continue to be stored in "pblock".
      	(gfc_array_allocate): Update call to gfc_array_init_size. Move the
      	descriptor_block so that the array descriptor is only updated if
      	the array was allocated successfully.
      	Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
      	* trans.h (gfc_allocate_allocatable): Change function signature.
      	Function now returns void.
      	(gfc_allocate_using_lib): Ditto, and new function parameter.
      	(gfc_allocate_using_malloc): Ditto.
      	* trans-openmp.c (gfc_omp_clause_default_ctor,
      	gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
      	to gfc_allocate_allocatable with gfc_allocate_using_malloc.
      	* trans-stmt.c (gfc_trans_allocate): Update function calls for
      	gfc_allocate_allocatable and gfc_allocate_using_malloc.
      
      
      
      2011-07-26  Daniel Carrera  <dcarrera@gmail.com>
      
      	PR fortran/49755
      	* gfortran.dg/multiple_allocation_1.f90: Fix test. Allocating an
      	allocated array should *not* change its size.
      	* gfortran.dg/multiple_allocation_3.f90: New test.
      
      From-SVN: r176822
      Daniel Carrera committed
    • dwarf2out.c (output_macinfo_op): Ensure fd->filename points to GC allocated copy of the string. · 7bbdd4e9
      	* dwarf2out.c (output_macinfo_op): Ensure fd->filename points
      	to GC allocated copy of the string.
      	(dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
      	before .debug_line, not after it.
      
      From-SVN: r176819
      Jakub Jelinek committed
    • tree-vrp.c (extract_range_from_binary_expr): Remove TRUTH-binary cases and add new bitwise-cases. · aebf4828
      2011-07-27  Kai Tietz  <ktietz@redhat.com>
      
              * tree-vrp.c (extract_range_from_binary_expr): Remove
              TRUTH-binary cases and add new bitwise-cases.
              (extract_range_from_assignment): Likewise.
              (register_edge_assert_for_1): Likeiwise.
              (register_edge_assert_for): Likewise.
              (simplify_truth_ops_using_ranges): Likewise.
              (simplify_stmt_using_ranges): Likewise.
      
      From-SVN: r176818
      Kai Tietz committed
    • Daily bump. · d2a99e87
      From-SVN: r176816
      GCC Administrator committed
  3. 26 Jul, 2011 14 commits