1. 29 Jul, 2011 7 commits
  2. 28 Jul, 2011 32 commits
    • re PR rtl-optimization/49891 (ICE in redirect_jump_1) · e40a0b69
      	PR rtl-optimization/49891
      	* cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
      	newly created returnjumps.
      
      From-SVN: r176905
      Bernd Schmidt committed
    • expr.c (expand_expr_addr_expr_1): Detect a user request for a local frame in a naked function... · 69135c94
      * expr.c (expand_expr_addr_expr_1): Detect a user request for a
      local frame in a naked function, and produce a suitable error for
      that specific case.
      
      From-SVN: r176904
      DJ Delorie committed
    • 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
  3. 27 Jul, 2011 1 commit