1. 28 Jul, 2011 30 commits
    • m32c.c (m32c_secondary_reload_class): Allow PSI registers to be reloaded in HI… · 13a23442
      m32c.c (m32c_secondary_reload_class): Allow PSI registers to be reloaded in HI classes when the target is HI.
      
      * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
      registers to be reloaded in HI classes when the target is HI.
      
      From-SVN: r176903
      DJ Delorie committed
    • Replace v1, v2, lb, ub with bound_one, bound_two · 6c6c79a9
      2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
      	bound_one, bound_two.
      
      From-SVN: r176902
      Sebastian Pop committed
    • Fix PR48648: Handle CLAST assignments. · 0c43dbaf
      The CLAST produced by CLooG-ISL contains an assignment and GCC chokes
      on it.  The exact CLAST contains an assignment followed by an if:
      
      scat_1 = max(0,ceild(T_4-7,8));
      if (scat_1 <= min(1,floord(T_4-1,8))) {
        S7(scat_1);
      }
      
      This is equivalent to a loop that iterates only once, and so CLooG
      generates an assignment followed by an if instead of a loop.  This is
      an important optimization that was improved in ISL, that allows
      if-conversion: imagine GCC having to figure out that a loop like the
      following actually iterates only once, and can be converted to an if:
      
      for (scat_1 = max(0,ceild(T_4-7,8)); scat_1 <= min(1,floord(T_4-1,8)); scat_1++)
        S7(scat_1);
      
      This patch implements the translation of CLAST assignments.
      Bootstrapped and tested on amd64-linux.
      
      2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	PR middle-end/48648
      	* graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
      	CLAST assignments.
      	(translate_clast): Same.
      	(translate_clast_assignment): New.
      
      	* gcc.dg/graphite/id-pr48648.c: New.
      
      From-SVN: r176901
      Sebastian Pop committed
    • Fix PR49876: Continue code generation with integer_zero_node on gloog_error · 60cf26cc
      When setting gloog_error, graphite should continue code generation
      without early returns, as otherwise the SSA representation would not
      be complete.  So set the new expression to integer_zero_node, that
      would not require more SSA updates, and continue code generation as
      nothing happened.
      
      Regstrapped on amd64-linux.
      
      2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	PR tree-optimization/49876
      	* sese.c (rename_uses): Do not return false on gloog_error: set
      	the new_expr to integer_zero_node and continue code generation.
      	(graphite_copy_stmts_from_block): Remove early exit on gloog_error.
      
      From-SVN: r176900
      Sebastian Pop committed
    • re PR c++/49813 ([C++0x] sinh vs asinh vs constexpr) · f715f0c1
      2011-07-28  Paolo Carlini  <paolo.carlini@oracle.com>
      
              PR c++/49813
              * semantics.c (potential_constant_expression_1):  Handle FMA_EXPR.
      
      	Checking this in for Paolo.
      
      From-SVN: r176899
      Paolo Carlini committed
    • line-map.h (struct line_maps): Remove unused field last_listed. · 0681d04c
      * include/line-map.h (struct line_maps):
      Remove unused field last_listed. Update all users.
      
      From-SVN: r176898
      Gabriel Charette committed
    • re PR fortran/31067 (MINLOC should sometimes be inlined (gas_dyn is sooooo sloooow)) · d2663912
      	PR fortran/31067
      	* frontend-passes.c (optimize_minmaxloc): New function.
      	(optimize_expr): Call it.
      
      	* gfortran.dg/maxloc_2.f90: New test.
      	* gfortran.dg/maxloc_3.f90: New test.
      	* gfortran.dg/minloc_1.f90: New test.
      	* gfortran.dg/minloc_2.f90: New test.
      	* gfortran.dg/minloc_3.f90: New test.
      	* gfortran.dg/minmaxloc_7.f90: New test.
      
      From-SVN: r176897
      Jakub Jelinek committed
    • Use long long for 64bit int. · 5fce9126
      2010-07-28  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/i386/64/sfp-machine.h (_FP_W_TYPE): Always use _WIN64
      	version.
      	(_FP_WS_TYPE): Likewise.
      	(_FP_I_TYPE): Likewise.
      
      From-SVN: r176894
      H.J. Lu committed
    • Check ia32 instead of ilp32 for ia32 tests. · f53d712f
      2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
      	for ia32 instead of ilp32.
      
      	* testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
      	* testsuite/libgomp.c/atomic-6.c: Likewise.
      
      From-SVN: r176893
      H.J. Lu committed
    • re PR debug/49846 (entryval: missing DW_TAG_GNU_call_site_parameter for… · 4fe249e7
      re PR debug/49846 (entryval: missing DW_TAG_GNU_call_site_parameter for stack-passed `double' parameter)
      
      	PR debug/49846
      	* var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
      	arguments also check if they aren't initialized with a MODE_INT
      	mode of the same size.
      
      From-SVN: r176892
      Jakub Jelinek committed
    • expr.c (get_bit_range): Handle *MEM_REF's. · 86f98641
              * expr.c (get_bit_range): Handle *MEM_REF's.
      
      From-SVN: r176891
      Aldy Hernandez committed
    • rtlanal.c (tablejump_p): False for returns. · dc0ff1c8
      	* rtlanal.c (tablejump_p): False for returns.
      	* reorg.c (first_active_target_insn): New static function.
      	(find_end_label): Set JUMP_LABEL for a new returnjump.
      	(optimize_skip, get_jump_flags, rare_destination,
      	mostly_true_jump, get_branch_condition,
      	steal_delay_list_from_target, own_thread_p,
      	fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
      	fill_eager_delay_slots, relax_delay_slots, make_return_insns,
      	dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
      	* jump.c (delete_related_insns): Likewise.
      	(jump_to_label_p): New function.
      	(redirect_target): New static function.
      	(redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
      	(redirect_jump_1): Assert that the new label is nonnull.
      	(redirect_jump): Likewise.
      	(redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
      	* ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
      	exit block.
      	(dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
      	changed.  Ensure that the right label is passed to redirect_jump.
      	* function.c (emit_return_into_block,
      	thread_prologue_and_epilogue_insns): Ensure new returnjumps have
      	ret_rtx in their JUMP_LABEL.
      	* print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
      	* emit-rtl.c (skip_consecutive_labels): Allow the caller to
      	pass ret_rtx as label.
      	* cfglayout.c (fixup_reorder_chain): Use
      	force_nonfallthru_and_redirect rather than force_nonfallthru.
      	(duplicate_insn_chain): Copy JUMP_LABELs for returns.
      	* rtl.h (ANY_RETURN_P): New macro.
      	(jump_to_label_p): Declare.
      	* resource.c (find_dead_or_set_registers): Handle ret_rtx in
      	JUMP_LABELs.
      	(mark_target_live_regs): Likewise.
      	* basic-block.h (force_nonfallthru_and_redirect): Declare.
      	* cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
      	* config/alpha/alpha.c (alpha_tablejump_addr_vec,
      	alpha_tablejump_best_label): Remove functions.
      	* config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
      	alpha_tablejump_best_label): Remove declarations.
      	* config/sh/sh.c (barrier_align, split_branches): Adjust for
      	ret_rtx in JUMP_LABELs.
      	* config/arm/arm.c (is_jump_table): Likewise.
      
      From-SVN: r176881
      Bernd Schmidt committed
    • predicates.md (pic_32bit_opreand): Do not define as special predicate. · a2e49bb2
      	* config/i386/predicates.md (pic_32bit_opreand): Do not define as
      	special predicate.  Remove explicit mode checks.
      
      From-SVN: r176879
      Uros Bizjak committed
    • dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize… · b3882148
      dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize DW_AT_data_member_location containing just...
      
      	* dwarf2out.c (resolve_addr): For -gdwarf-2 don't
      	optimize DW_AT_data_member_location containing just
      	DW_OP_plus_uconst.
      
      From-SVN: r176878
      Jakub Jelinek committed
    • re PR debug/49871 (-gdwarf-3 creates invalid DWARF3 with DW_AT_data_member_location attribute) · 64153cce
      	PR debug/49871
      	* dwarf2out.c (size_of_die, value_format, output_die): Use
      	DW_FORM_udata instead of DW_FORM_data[48] for
      	dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
      
      	* gcc.dg/debug/dwarf2/pr49871.c: New test.
      
      From-SVN: r176876
      Jakub Jelinek committed
    • * ChangeLog: Remove mess. · 844bf05b
      From-SVN: r176874
      Uros Bizjak committed
    • Update length attribute on *tls_global_dynamic_64. · 0465f4f8
      2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/i386/i386.md (*tls_global_dynamic_64): Update length
      	attribute.
      
      From-SVN: r176873
      H.J. Lu committed
    • re PR target/47715 ([x32] TLS doesn't work) · f51c4a8a
      	PR target/47715
      	* config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
      	tls_symbolic_operand check.  Update code sequence for TARGET_X32.
      	(tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
      	(tls_dynamic_gnu2_64): Ditto.
      	(*tls_dynamic_gnu2_lea_64): Ditto.
      	(*tls_dynamic_gnu2_call_64): Ditto.
      	(*tls_dynamic_gnu2_combine_64): Ditto.
      
      From-SVN: r176872
      Uros Bizjak committed
    • Set need_64bit_hwint to yes for x86 targets. · 5e9627ca
      gcc/
      
      2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config.gcc: Set need_64bit_hwint to yes for x86 targets.
      
      libcpp/
      
      2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* configure.ac: Set need_64bit_hwint to yes for x86 targets.
      	* configure: Regenerated.
      
      From-SVN: r176871
      H.J. Lu committed
    • init.c (__gnat_error_handler): Cast reason to int. · 6da2ca7d
      	* init.c (__gnat_error_handler): Cast reason to int.
      	(__gnat_install_handler): Explain sa_sigaction use.
      
      From-SVN: r176870
      Rainer Orth committed
    • Only expand strlen to Pmode. · 40b9321d
      2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR target/47364
      	* config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
      
      From-SVN: r176868
      H.J. Lu committed
    • vfp.md ("*movdf_vfp"): Handle the VFP constraints before the core constraints. · 95f89bb3
      
      
      2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
      
      	* config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
      	before the core constraints. Adjust attributes.
      	(*thumb2_movdf_vfp"): Likewise.
      
      From-SVN: r176867
      Ramana Radhakrishnan committed
    • tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case. · 98958241
      2011-07-28  Kai Tietz  <ktietz@redhat.com>
      
              * tree-vrp.c (simplify_stmt_using_ranges): Remove
              TRUTH_NOT_EXPR case.
              (simplify_truth_ops_using_ranges): Likewise.
              (build_assert_expr_for): Likewise.
              (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
              and handle BIT_NOT_EXPR for truth-operation.
      
      From-SVN: r176866
      Kai Tietz committed
    • re PR target/49313 (Inefficient libgcc implementations for avr) · f627fef2
      	PR target/49313
      	Undo r176835 from trunk
      	2011-07-27  Georg-Johann Lay
      
      From-SVN: r176865
      Georg-Johann Lay committed
    • update copyright · c35c943f
      From-SVN: r176863
      Alan Modra committed
    • 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 10 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