aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2011-10-06i386: Add AVX2 support to ix86_expand_vshuffle.Richard Henderson3-17/+135
From-SVN: r179624
2011-10-06Rework vector shuffle tests.Richard Henderson26-460/+526
Test vector sizes 8, 16, and 32. Test most data types for each size. From-SVN: r179623
2011-10-06vshuffle: Use correct mode for mask operand.Richard Henderson2-9/+12
From-SVN: r179622
2011-10-06tree-vect-patterns.c (vect_pattern_recog_1): Use vect_recog_func_ptr typedef ↵Jakub Jelinek2-7/+11
for the first argument. * tree-vect-patterns.c (vect_pattern_recog_1): Use vect_recog_func_ptr typedef for the first argument. (vect_pattern_recog): Rename vect_recog_func_ptr variable to vect_recog_func, use vect_recog_func_ptr typedef for it. From-SVN: r179621
2011-10-06re PR tree-optimization/49279 (Optimization incorrectly presuming constant ↵Jakub Jelinek7-21/+52
variable inside loop in g++ 4.5 and 4.6 with -O2 and -O3 for x86_64 targets) PR tree-optimization/49279 * tree-ssa-structalias.c (find_func_aliases): Don't handle CAST_RESTRICT. * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow restrict propagation. * tree-ssa.c (useless_type_conversion_p): Don't return false if TYPE_RESTRICT differs. * gcc.dg/tree-ssa/restrict-4.c: XFAIL. * gcc.c-torture/execute/pr49279.c: New test. From-SVN: r179620
2011-10-06function.c (thread_prologue_and_epilogue_insns): Build a vector of ↵Bernd Schmidt2-16/+18
unconverted simple return blocks rather than trying to... * function.c (thread_prologue_and_epilogue_insns): Build a vector of unconverted simple return blocks rather than trying to recompute them later based on bb_flags bitmap tests. From-SVN: r179619
2011-10-06tree-flow.h (get_var_ann): Don't declare.Michael Matz6-13/+36
* tree-flow.h (get_var_ann): Don't declare. * tree-flow-inline.h (get_var_ann): Remove. (set_is_used): Use var_ann, not get_var_ann. * tree-dfa.c (add_referenced_var): Inline body of get_var_ann. * tree-profile.c (gimple_gen_edge_profiler): Call find_referenced_var_in. (gimple_gen_interval_profiler): Ditto. (gimple_gen_pow2_profiler): Ditto. (gimple_gen_one_value_profiler): Ditto. (gimple_gen_average_profiler): Ditto. (gimple_gen_ior_profiler): Ditto. (gimple_gen_ic_profiler): Ditto plus call add_referenced_var. (gimple_gen_ic_func_profiler): Call add_referenced_var. * tree-mudflap.c (execute_mudflap_function_ops): Call add_referenced_var. From-SVN: r179618
2011-10-06tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs don't set ↵Jakub Jelinek2-10/+10
SSA_NAME_DEF_STMT that has been already set by... * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs don't set SSA_NAME_DEF_STMT that has been already set by gimple_build_assign_with_ops. (vect_recog_pow_pattern, vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type, vect_recog_over_widening_pattern): Likewise. From-SVN: r179615
2011-10-06tree.h (avoid_folding_inline_builtin): New prototype.Jakub Jelinek4-1/+14
* tree.h (avoid_folding_inline_builtin): New prototype. * builtins.c (avoid_folding_inline_builtin): No longer static. * gimple-fold.c (gimple_fold_builtin): Give up if avoid_folding_inline_builtin returns true. From-SVN: r179614
2011-10-06tree-vect-generic.c (vector_element): Look at previous generated results.Richard Guenther2-0/+16
2011-10-06 Richard Guenther <rguenther@suse.de> * tree-vect-generic.c (vector_element): Look at previous generated results. From-SVN: r179613
2011-10-06re PR c++/39950 (__unix__ macro is not predefined on AIX platform (C and C++))David Edelsohn2-0/+9
PR target/39950 * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define __powerpc__, __PPC__, __unix__. From-SVN: r179612
2011-10-06i386.opt (recip_mask, [...]): New variables and cl_target member.Michael Matz7-5/+145
* i386/i386.opt (recip_mask, recip_mask_explicit, x_recip_mask_explicit): New variables and cl_target member. (mrecip=): New option. * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV, RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks. (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV, TARGET_RECIP_VEC_SQRT): New tests. * i386/i386.md (divsf3): Check TARGET_RECIP_DIV. (sqrt<mode>2): Check TARGET_RECIP_SQRT. * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV. (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT. * i386/i386.c (ix86_option_override_internal): Set recip_mask for -mrecip and -mrecip=options. (ix86_function_specific_save): Save recip_mask_explicit. (ix86_function_specific_restore): Restore recip_mask_explicit. * doc/invoke.texi (ix86 Options): Document the new option. From-SVN: r179608
2011-10-06re PR target/49049 (ICE in copyprop_hardreg_forward_1, at regcprop.c:767)Bernd Schmidt4-9/+44
PR target/49049 * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. * gcc.c-torture/compile/pr49049.c: New test. From-SVN: r179607
2011-10-06re PR target/50305 (Inline asm reload failure when building Linux kernel)Ulrich Weigand4-0/+90
gcc/ PR target/50305 * config/arm/arm.c (arm_legitimize_reload_address): Recognize output of a previous pass through legitimize_reload_address. Do not attempt to optimize addresses if the base register is equivalent to a constant. gcc/testsuite/ PR target/50305 * gcc.target/arm/pr50305.c: New test. From-SVN: r179603
2011-10-06function.c (thread_prologue_and_epilogue_insns): Mark last_bb_active as ↵Andreas Krebbel2-1/+7
possibly unused. 2011-10-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * function.c (thread_prologue_and_epilogue_insns): Mark last_bb_active as possibly unused. It is unused for targets which do neither have "return" nor "simple_return" expanders. From-SVN: r179601
2011-10-06fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.Richard Biener1-22/+8
2011-10-06 Richard Guenther <rguenther@suse.de> * fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs. Make more efficient. * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands. (cprop_into_stmt): Don't propagate into virtual operands. (optimize_stmt): Really dump original statement. From-SVN: r179598
2011-10-06fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.Richard Guenther2-16/+17
2011-10-06 Richard Guenther <rguenther@suse.de> * fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs. Make more efficient. * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands. (cprop_into_stmt): Don't propagate into virtual operands. (optimize_stmt): Really dump original statement. From-SVN: r179597
2011-10-06* config/rx/rx.md (smin3): Revert previous delta.Nick Clifton2-5/+9
From-SVN: r179596
2011-10-06re PR tree-optimization/38884 (missed FRE with __real and __imag)Richard Guenther5-2/+108
2011-10-06 Richard Guenther <rguenther@suse.de> PR tree-optimization/38884 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads from aggregate SSA names. * gcc.dg/tree-ssa/ssa-fre-34.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-35.c: Likewise. From-SVN: r179593
2011-10-06tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace argument...Jakub Jelinek2-10/+21
* tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace argument, truncate it at the beginning instead of allocating there and freeing at the end. (vect_pattern_recog): Allocate stmts_to_replace here and free at end, pass its address to vect_pattern_recog_1. From-SVN: r179592
2011-10-05Add support for lzd and popc instructions on sparc.David S. Miller9-18/+170
gcc/ * config/sparc/sparc.opt (POPC): New option. * doc/invoke.texi: Document it. * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by default on Niagara-2 and later. * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. * config/sparc/sparc.md (SIDI): New mode iterator. (ffsdi2): Delete commented out pattern and comments. (popcount<mode>2, clz<mode>2): New expanders. (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus, *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns. gcc/testsuite/ * gcc.target/sparc/lzd.c: New test. * gcc.target/sparc/popc.c: New test. From-SVN: r179591
2011-10-06Fixes the spacing in ChangeLog entry.Artjoms Sinkarovs1-3/+4
From-SVN: r179589
2011-10-06Fix bconstp-3.c failure in PR50607.Artjoms Sinkarovs3-75/+97
From-SVN: r179588
2011-10-06Daily bump.GCC Administrator1-1/+1
From-SVN: r179586
2011-10-05strlenopt-21.c (dg-options): Remove -fdump-tree-optimized.Uros Bizjak4-1/+9
* gcc.dg/strlenopt-21.c (dg-options): Remove -fdump-tree-optimized. * gcc.dg/ipa/inline-5.c: Cleanup inline ipa dump. * g++.dg/other/final1.C: Cleanup original tree dump. From-SVN: r179579
2011-10-05function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap if ↵Bernd Schmidt2-0/+6
profiling after the prologue. * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap if profiling after the prologue. From-SVN: r179577
2011-10-05* ChangeLog: Update my previous entry.Uros Bizjak1-1/+4
From-SVN: r179574
2011-10-05vect.exp (VEC_CFLAGS): Append "-fdump-tree-veclower2".Uros Bizjak4-8/+8
* gcc.dg/vect/vect.exp (VEC_CFLAGS): Append "-fdump-tree-veclower2". * gcc.dg/vect/vec-scal-opt.c: Scan and cleanup veclower2 tree dump. * gcc.dg/vect/vec-scal-opt1.c: Ditto. * gcc.dg/vect/vec-scal-opt2.c: Ditto. From-SVN: r179573
2011-10-05re PR tree-optimization/50613 (ICE: tree check: expected ssa_name, have ↵Jakub Jelinek4-4/+40
addr_expr in find_equal_ptrs, at tree-ssa-strlen.c:712 with -foptimize-strlen -fno-tree-ccp) PR tree-optimization/50613 * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT operand is ADDR_EXPR, fallthru into ADDR_EXPR handling, and if it is neither that not SSA_NAME, give up. * gcc.dg/pr50613.c: New test. From-SVN: r179567
2011-10-05Fix vect-shuffle-* test cases.Richard Henderson9-214/+482
From-SVN: r179566
2011-10-05vect.exp (VEC_CFLAGS): Move initialization after DEFAULT_VECTFLAGS ↵Uros Bizjak2-3/+8
initialization. * gcc.dg/vect/vect.exp (VEC_CFLAGS): Move initialization after DEFAULT_VECTFLAGS initialization. From-SVN: r179565
2011-10-05i386: Rewrite ix86_expand_vshuffle.Richard Henderson4-111/+109
1: Handle TARGET_XOP. 2: Reduce code duplication. 3: Use ASHIFT instead of MULT for scaling. 4: Fix errors in building convert-to-v16qi indicies. 5: Handle v2di without sse4.1. From-SVN: r179564
2011-10-05Fix lower_vec_shuffle.Richard Henderson2-174/+104
1: It can never fail. 2: It should mask the input indicies. From-SVN: r179563
2011-10-05i386.c (distance_non_agu_define): Simplify calculation of "found".Uros Bizjak2-30/+31
* config/i386/i386.c (distance_non_agu_define): Simplify calculation of "found". Simplify return value calculation. (distance_agu_use): Ditto. From-SVN: r179561
2011-10-05re PR bootstrap/50621 (Bootstrap failure)Bernd Schmidt3-3/+17
PR bootstrap/50621 * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only if the function was not shrink-wrapped. (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached to an insn. * function.c (thread_prologue_and_epilogue_insns): Make sure the shrink_wrapped flag is set even if there is no dump file. From-SVN: r179560
2011-10-05rx.opt (mpid): Define.DJ Delorie9-41/+412
* config/rx/rx.opt (mpid): Define. * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid (MULTILIB_DIRNAMES): Add pid. * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val) (rx_num_interrupt_regs): New variable. (rx_gp_base_regnum): New function. Returns the number of the small data area register. (rx_pid_base_regnum): New function. Returns the number of the pid base register. (rx_decl_for_addr): New function. Returns the symbolic part of a MEM. (rx_pid_data_operand): New function. Returns whether an object is in the position independent data area. (rx_legitimize_address): New function. Puts undecided PID objects in the PID data area. (rx_is_legitimate_address): Add support for PID operands. (rx_print_operand_address): Likewise. (rx_print_operand): Likewise. (rx_maybe_pidify_operand): New function. Determine if an operand is suitable for PID addressing. (rx_gen_move_template): Add PID support. (rx_conditional_register_usage): Likewise. (rx_option_override): Initialise rx_num_interrupt_regs. (rx_is_legitimate_constant): Add support for PID constants. (TARGET_LEGITIMIZE_ADDRESS): Define. * config/rx/constraints.md (Rpid): Define. (Rpda): Define. * config/rx/rx.md (UNSPEC_PID_ADDR): Define. (tablejump): Add PID support. (mov<>): Likewise. (mov<>_internal): Likewise. (addsi3): Convert to an expander. Add PID support. (pid_addr): New pattern. * config/rx/rx.h (CPP_SPEC): Define. (ASM_SPEC): Pass -mpid and -mint-register on to assembler. (CASE_VECTOR_PC_RELATIVE): Define. (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode. * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype. * doc/invoke.texi (RX Options): Document -mpid command line option. Co-Authored-By: Nick Clifton <nickc@redhat.com> From-SVN: r179558
2011-10-05re PR tree-optimization/38885 (missed FRE with BIT_FIELD_REF and vectors)Richard Guenther4-2/+81
2011-10-05 Richard Guenther <rguenther@suse.de> PR tree-optimization/38885 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads from constants. * gcc.dg/tree-ssa/ssa-fre-33.c: New testcase. From-SVN: r179556
2011-10-05invoke.texi (-fshrink-wrap): Document.Bernd Schmidt11-147/+705
* doc/invoke.texi (-fshrink-wrap): Document. * opts.c (default_options_table): Add it. * common.opt (fshrink-wrap): Add. * function.c (emit_return_into_block): Remove useless declaration. (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx, requires_stack_frame_p, gen_return_pattern): New static functions. (emit_return_into_block): New arg simple_p. All callers changed. Use gen_return_pattern. (thread_prologue_and_epilogue_insns): Implement shrink-wrapping. * config/i386/i386.md (return): Expand into a simple_return. (simple_return): New expander): (simple_return_internal, simple_return_internal_long, simple_return_pop_internal_long, simple_return_indirect_internal): Renamed from return_internal, return_internal_long, return_pop_internal_long and return_indirect_internal; changed to use simple_return. * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand simple returns. (ix86_pad_returns): Likewise. * function.h (struct rtl_data): Add member shrink_wrapped. * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that are not jumps or sibcalls can't be compared. * gcc.target/i386/sw-1.c: New test. From-SVN: r179553
2011-10-05tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of vector type.Richard Guenther2-5/+31
2011-10-05 Richard Guenther <rguenther@suse.de> * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of vector type. (simplify_unary_expression): Handle BIT_FIELD_REFs. (try_to_simplify): Handle BIT_FIELD_REFs. From-SVN: r179549
2011-10-05avx256-unaligned-load-3.c (dg-options): Add -mtune=generic.Uros Bizjak3-2/+8
* gcc.target/i386/avx256-unaligned-load-3.c (dg-options): Add -mtune=generic. * gcc.target/i386/avx256-unaligned-store-3.c (dg-options): Ditto. From-SVN: r179548
2011-10-05avr-protos.h (avr_out_addto_sp): New prototype.Georg-Johann Lay4-143/+61
* config/avr/avr-protos.h (avr_out_addto_sp): New prototype. * config/avr/avr.c (avr_out_addto_sp): New function. (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP. * config/avr/avr.md (adjust_len): Add "addto_sp". (*movhi_sp): Remove insn. (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R. From-SVN: r179544
2011-10-05gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops with an ↵Richard Guenther3-9/+32
embedded expression valueize and fold that as well. 2011-10-05 Richard Guenther <rguenther@suse.de> * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops with an embedded expression valueize and fold that as well. * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name results from gimple_fold_stmt_to_constant_1. From-SVN: r179543
2011-10-05rx.md (tablejump): Add missing label.Nick Clifton2-9/+17
* config/rx/rx.md (tablejump): Add missing label. (adddi3_internal): Mark operand 0 as early-clobbered. (smaxsi3): Revert previous delta. (adc_internal): Fix whitespace in generated asm. (adc_flags): Likewise. From-SVN: r179542
2011-10-05expmed.c (expand_mult_highpart_optab): Replace optab_handler with the new ↵Andreas Krebbel2-2/+7
widening_optab_handler. 2011-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * expmed.c (expand_mult_highpart_optab): Replace optab_handler with the new widening_optab_handler. From-SVN: r179541
2011-10-05re PR middle-end/50609 (FAIL: gcc.c-torture/execute/pr23135.c compilation, ↵Richard Guenther2-2/+13
-O2 -flto (ICE)) 2011-10-05 Richard Guenther <rguenther@suse.de> PR tree-optimization/50609 * gimple-fold.c (fold_array_ctor_reference): Also handle vector typed constructors. (fold_ctor_reference): Dispatch to fold_array_ctor_reference for vector typed constructors. From-SVN: r179540
2011-10-05i386.c (ix86_emit_binop): New static function.Uros Bizjak2-62/+51
* config/i386/i386.c (ix86_emit_binop): New static function. (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl instructions. (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions. From-SVN: r179537
2011-10-05builtin-complex-1.c: Use dg-add-options ieee.Uros Bizjak3-27/+29
* gcc.dg/torture/builtin-complex-1.c: Use dg-add-options ieee. From-SVN: r179536
2011-10-04Add support for more sparc VIS 3.0 instructions.David S. Miller10-26/+542
gcc/ * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB, UNSPEC_XMUL): New unspecs. (muldi3_v8plus): Use output_v8plus_mult. (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend): New VIS 3.0 combiner patterns. (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis, fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64, umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus, xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0 builtins patterns. * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins. (output_v8plus_mult): New function. * config/sparc/sparc-protos.h: Declare it. * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd, __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd, __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics. * doc/extend.texi: Document new builtins. gcc/testsuite/ * gcc.target/sparc/fhalve.c: New test. * gcc.target/sparc/fnegop.c: New test. * gcc.target/sparc/xmul.c: New test. From-SVN: r179535
2011-10-05Daily bump.GCC Administrator1-1/+1
From-SVN: r179534
2011-10-04Fix global var initialized to function call with calls as arguments.Ian Lance Taylor1-0/+5
From-SVN: r179529