- 28 Jul, 2011 5 commits
-
-
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 21 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 -
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 -
* config/i386/i386.c (ix86_expand_move): Do not explicitly check the mode of symbolic_opreand RTXes. From-SVN: r176834
Uros Bizjak committed -
* 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 -
* 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 -
* 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 -
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. * 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 -
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. (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections before .debug_line, not after it. From-SVN: r176819
Jakub Jelinek committed -
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 -
From-SVN: r176816
GCC Administrator committed
-
- 26 Jul, 2011 14 commits
-
-
2011-07-26 H.J. Lu <hongjiu.lu@intel.com> PR target/47372 * config/i386/i386.c (ix86_delegitimize_address): Call simplify_gen_subreg for PIC with mode of x only if modes of x and orig_x are different. From-SVN: r176812
H.J. Lu committed -
* 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: r176811
Jakub Jelinek committed -
/cp 2011-07-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/49776 * typeck.c (cp_build_modify_expr): Check digest_init return value for error_mark_node. /testsuite 2011-07-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/49776 * g++.dg/cpp0x/constexpr-49776.C: New. From-SVN: r176809
Paolo Carlini committed -
"Bug 47046 - gcc.target/i386/sse4_1-movntdqa.c ICEs with -fgraphite-identity" The problem here is that we are left with the following code to be translated in the new representation following the transform that Graphite has chosen: D.2709_14 = j_33 * i_32; D.2710_15 = D.2709_14 * i_32; D.2711_16 = D.2710_15 * sign_34; *D.2708_13 = D.2711_16; In this particular case we have a nonlinear expression "i * i" for which we have to generate code following the new graphite_iv variables. The patch fixes the function that detects whether we are passing non linear stuff to graphite: evolution_function_is_affine_p. It seems like for the moment evolution_function_is_affine_p is testing whether an evolution function is affine only in the innermost loop, without looking recursively at what happens in outer loops. The chrec for this case is: {0, +, {0, +, {1, +, 2}_1}_1}_2 and we are testing whether the evolution is affine only for the loop_2, which is true as we have {0, +, blah}_2 with blah invariant in loop_2. The patch adds the recursive call to evolution_function_is_affine_p. Bootstrapped and tested on amd64-linux. 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/47046 * tree-chrec.h (evolution_function_is_affine_p): Recursively call evolution_function_is_affine_p on CHREC_RIGHT. * gcc.dg/graphite/id-pr47046.c: New. From-SVN: r176805
Sebastian Pop committed -
2011-07-26 Sebastian Pop <sebastian.pop@amd.com> * tree-data-ref.c (max_stmt_executions_tree): Do not call lang_hooks.types.type_for_size. From-SVN: r176804
Sebastian Pop committed -
2011-07-26 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/47653 * gcc.dg/graphite/run-id-pr47593.c: New. From-SVN: r176803
Sebastian Pop committed -
2011-07-26 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/47653 * graphite-scop-detection.c (graphite_can_represent_loop): Discard loops using wrapping semantics. * gcc.dg/graphite/run-id-pr47653.c: New. * gcc.dg/graphite/interchange-3.c: Do not use unsigned types for induction variables. * gcc.dg/graphite/scop-16.c: Same. * gcc.dg/graphite/scop-17.c: Same. * gcc.dg/graphite/scop-21.c: Same. From-SVN: r176802
Sebastian Pop committed -
With this patch we avoid instantiating ADDR_EXPR: it makes no sense to translate &b[i] into &b[{0, +, 1}_1]. Bootstrapped and tested on amd64-linux. 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/48805 * tree-scalar-evolution.c (instantiate_scev_r): Return chrec_dont_know for ADDR_EXPR. * gcc.dg/graphite/id-pr48805.c: New. From-SVN: r176801
Sebastian Pop committed -
* configure.ac: Set have_compiler based on whether gcc directory exists, rather than on whether gcc is in configdirs. * configure: Rebuild. From-SVN: r176800
Ian Lance Taylor committed -
PR target/47369 PR target/49853 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode if legitimize_tls_address returned operand in wrong mode. Allow SImode and DImode symbolic operand for PIC. Call convert_to_mode if legitimize_pic_address returned operand in wrong mode. Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com> From-SVN: r176798
Uros Bizjak committed -
2011-07-26 Martin Jambor <mjambor@suse.cz> * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and return false for invariants. From-SVN: r176797
Martin Jambor committed -
2011-07-26 H.J. Lu <hongjiu.lu@intel.com> * testsuite/demangle-expected: Remove an extra line. From-SVN: r176796
H.J. Lu committed -
* config/i386/i386.md (add->lea splitter): Implement using SWI mode iterator. Change operand 2 predicate to <nonmemory_operand>. (add->lea zext splitter): Change operand 2 predicate to x86_64_nonmemory_operand. From-SVN: r176795
Uros Bizjak committed -
2011-07-26 Richard Guenther <rguenther@suse.de> * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block frequency makes everything hot. From-SVN: r176794
Richard Guenther committed
-