1. 29 Jul, 2011 15 commits
  2. 28 Jul, 2011 25 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