- 28 Jul, 2011 30 commits
-
-
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 -
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 -
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 -
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 -
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 -
* include/line-map.h (struct line_maps): Remove unused field last_listed. Update all users. From-SVN: r176898
Gabriel Charette committed -
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 -
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 -
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 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. From-SVN: r176891
Aldy Hernandez committed -
* 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 -
* 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 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 -
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 -
From-SVN: r176874
Uros Bizjak committed -
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 -
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 -
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. (__gnat_install_handler): Explain sa_sigaction use. From-SVN: r176870
Rainer Orth committed -
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 -
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 -
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 -
PR target/49313 Undo r176835 from trunk 2011-07-27 Georg-Johann Lay From-SVN: r176865
Georg-Johann Lay committed -
From-SVN: r176863
Alan Modra committed -
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 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 -
* config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX. From-SVN: r176860
Uros Bizjak committed -
* gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure the builtin isn't optimized away. From-SVN: r176859
Jakub Jelinek committed -
From-SVN: r176856
GCC Administrator committed
-
- 27 Jul, 2011 10 commits
-
-
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 -
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 -
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 -
* 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. 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 -
PR target/49866 * gcc.target/i386/pr49866.c: New test. From-SVN: r176842
Jakub Jelinek committed -
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 -
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 -
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 -
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
-