Bernd Schmidt [Wed, 5 Oct 2011 20:42:21 +0000 (20:42 +0000)]
function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap if profiling after the prologue.
* function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
if profiling after the prologue.
From-SVN: r179577
Uros Bizjak [Wed, 5 Oct 2011 19:41:27 +0000 (21:41 +0200)]
* ChangeLog: Update my previous entry.
From-SVN: r179574
Uros Bizjak [Wed, 5 Oct 2011 19:40:14 +0000 (21:40 +0200)]
vect.exp (VEC_CFLAGS): Append "-fdump-tree-veclower2".
* 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
Jakub Jelinek [Wed, 5 Oct 2011 18:09:56 +0000 (20:09 +0200)]
re PR tree-optimization/50613 (ICE: tree check: expected ssa_name, have 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
Richard Henderson [Wed, 5 Oct 2011 17:45:36 +0000 (10:45 -0700)]
Fix vect-shuffle-* test cases.
From-SVN: r179566
Uros Bizjak [Wed, 5 Oct 2011 17:41:01 +0000 (19:41 +0200)]
vect.exp (VEC_CFLAGS): Move initialization after DEFAULT_VECTFLAGS initialization.
* gcc.dg/vect/vect.exp (VEC_CFLAGS): Move initialization after
DEFAULT_VECTFLAGS initialization.
From-SVN: r179565
Richard Henderson [Wed, 5 Oct 2011 17:40:58 +0000 (10:40 -0700)]
i386: Rewrite ix86_expand_vshuffle.
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
Richard Henderson [Wed, 5 Oct 2011 17:40:49 +0000 (10:40 -0700)]
Fix lower_vec_shuffle.
1: It can never fail.
2: It should mask the input indicies.
From-SVN: r179563
Uros Bizjak [Wed, 5 Oct 2011 17:24:01 +0000 (19:24 +0200)]
i386.c (distance_non_agu_define): Simplify calculation of "found".
* config/i386/i386.c (distance_non_agu_define): Simplify calculation
of "found". Simplify return value calculation.
(distance_agu_use): Ditto.
From-SVN: r179561
Bernd Schmidt [Wed, 5 Oct 2011 17:17:12 +0000 (17:17 +0000)]
re PR bootstrap/50621 (Bootstrap failure)
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
DJ Delorie [Wed, 5 Oct 2011 15:07:21 +0000 (11:07 -0400)]
rx.opt (mpid): Define.
* 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
Richard Guenther [Wed, 5 Oct 2011 14:35:15 +0000 (14:35 +0000)]
re PR tree-optimization/38885 (missed FRE with BIT_FIELD_REF and vectors)
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
Bernd Schmidt [Wed, 5 Oct 2011 12:59:23 +0000 (12:59 +0000)]
invoke.texi (-fshrink-wrap): Document.
* 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
Richard Guenther [Wed, 5 Oct 2011 12:25:35 +0000 (12:25 +0000)]
tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of vector type.
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
Uros Bizjak [Wed, 5 Oct 2011 12:21:30 +0000 (14:21 +0200)]
avx256-unaligned-load-3.c (dg-options): Add -mtune=generic.
* 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
Georg-Johann Lay [Wed, 5 Oct 2011 11:16:10 +0000 (11:16 +0000)]
avr-protos.h (avr_out_addto_sp): New prototype.
* 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
Richard Guenther [Wed, 5 Oct 2011 10:54:14 +0000 (10:54 +0000)]
gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops with an 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
Nick Clifton [Wed, 5 Oct 2011 10:26:58 +0000 (10:26 +0000)]
rx.md (tablejump): Add missing label.
* 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
Andreas Krebbel [Wed, 5 Oct 2011 10:20:04 +0000 (10:20 +0000)]
expmed.c (expand_mult_highpart_optab): Replace optab_handler with the new 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
Richard Guenther [Wed, 5 Oct 2011 09:31:40 +0000 (09:31 +0000)]
re PR middle-end/50609 (FAIL: gcc.c-torture/execute/pr23135.c compilation, -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
Uros Bizjak [Wed, 5 Oct 2011 08:05:14 +0000 (10:05 +0200)]
i386.c (ix86_emit_binop): New static function.
* 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
Uros Bizjak [Wed, 5 Oct 2011 06:12:39 +0000 (08:12 +0200)]
builtin-complex-1.c: Use dg-add-options ieee.
* gcc.dg/torture/builtin-complex-1.c: Use dg-add-options ieee.
From-SVN: r179536
David S. Miller [Wed, 5 Oct 2011 03:25:58 +0000 (03:25 +0000)]
Add support for more sparc VIS 3.0 instructions.
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
GCC Administrator [Wed, 5 Oct 2011 00:26:24 +0000 (00:26 +0000)]
Daily bump.
From-SVN: r179534
Ian Lance Taylor [Tue, 4 Oct 2011 23:16:32 +0000 (23:16 +0000)]
Fix global var initialized to function call with calls as arguments.
From-SVN: r179529
Paolo Carlini [Tue, 4 Oct 2011 22:19:44 +0000 (22:19 +0000)]
re PR libstdc++/49561 ([C++0x] std::list::size complexity)
2011-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49561
* include/bits/stl_list.h (_List_base<>::_List_impl::_M_size):
Add in C++0x mode.
(_List_base<>::_List_impl, _List_base<>::_M_get_node,
_List_base<>::_M_put_node, _List_base<>::_List_base(_List_base&&),
list<>::size, list<>::swap, list<>::splice): Use it.
(operator==(const list<>&, const list<>&)): Rewrite in C++0x mode.
* include/bits/list.tcc (list<>::erase): Likewise.
(list<>::merge): Adjust in C++0x mode.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r179528
Paolo Carlini [Tue, 4 Oct 2011 21:42:43 +0000 (21:42 +0000)]
48698.cc (g): Fix return type, avoid -Wall warning.
2011-10-04 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/20_util/bind/48698.cc (g): Fix return type, avoid -Wall
warning.
From-SVN: r179526
Richard Henderson [Tue, 4 Oct 2011 21:04:10 +0000 (14:04 -0700)]
c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
* c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
Avoid save_expr unless two_arguments.
From-SVN: r179525
Jonathan Wakely [Tue, 4 Oct 2011 20:34:54 +0000 (20:34 +0000)]
alloc_traits.h (__alloc_traits::max_size): Define.
2011-10-04 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/ext/alloc_traits.h (__alloc_traits::max_size): Define.
(__alloc_traits::rebind): Define.
* include/bits/stl_vector.h: Use them.
* testsuite/util/testsuite_allocator.h (SimpleAllocator): Define.
* testsuite/23_containers/vector/allocator/minimal.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r179523
Janus Weil [Tue, 4 Oct 2011 18:37:13 +0000 (20:37 +0200)]
re PR fortran/35831 ([F95] Shape mismatch check missing for dummy procedure argument)
2011-10-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/35831
* interface.c (check_dummy_characteristics): Check the array shape.
2011-10-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/35831
* gfortran.dg/dummy_procedure_6.f90: New.
From-SVN: r179520
Ozkan Sezer [Tue, 4 Oct 2011 16:42:35 +0000 (16:42 +0000)]
mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
2011-10-04 Ozkan Sezer <sezeroz@gmail.com>
* config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to
_REENTRANT.
* config/i386/mingw32.h (CPP_SPEC): Likewise.
From-SVN: r179511
David S. Miller [Tue, 4 Oct 2011 15:45:49 +0000 (15:45 +0000)]
Small -m{cpu,tune}=native fix under Linux/Sparc.
* config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
under Linux.
From-SVN: r179510
Jakub Jelinek [Tue, 4 Oct 2011 15:25:53 +0000 (17:25 +0200)]
re PR middle-end/50604 (verify_gimple failed: type mismatch in binary expression)
PR tree-optimization/50604
* builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
last argument to memcpy has size_type_node type instead of
ssizetype.
* tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
instead of TREE_TYPE (len) as type for newlen.
* gcc.dg/pr50604.c: New test.
From-SVN: r179508
Andi Kleen [Tue, 4 Oct 2011 14:12:37 +0000 (14:12 +0000)]
Maintain order of LTO sections
Currently when reading in LTO sections from ld -r files they can
get randomly reordered based on hash tables and random IDs.
This causes reordering later when the final code is generated and
also makes crashes harder to reproduce.
This patch maintains explicit lists based on the input order and uses
those lists to preserve that order when starting the rest of the
LTO passes.
This is the first step to working -fno-toplevel-reorder for
LTO. But this needs more changes because the LTO partitioner
can still reorder.
This add two lists: one for the section and another one for
the file_decl_datas. This is needed because the sections are
walked twice through different data structures.
In addition some code becomes slightly cleaner because we don't need
to pass state through abstract callbacks anymore, but
can just use direct type safe calls.
gcc/lto/:
2011-10-02 Andi Kleen <ak@linux.intel.com>
* lto-object.c (lto_obj_add_section_data): Add list.
(lto_obj_add_section): Fill in list.
(ltoobj_build_section_table): Pass through list.
* lto.c (file_data_list): Declare.
(create_subid_section_table): Pass arguments directly.
Fill in list of file_datas.
(lwstate): Delete.
(lto_create_files_from_ids): Pass in direct arguments.
Don't maintain list.
(lto_file_read): Use explicit section and file data lists.
(lto_read_all_file_options): Pass in section_list.
* lto.h (lto_obj_build_section_table): Add list.
(lto_section_slot): Add next.
(lto_section_list): Declare.
From-SVN: r179505
Rainer Orth [Tue, 4 Oct 2011 14:02:29 +0000 (14:02 +0000)]
Don't XFAIL gcc.dg/graphite/interchange-14.c (PR tree-optimization/49662)
From-SVN: r179503
Jakub Jelinek [Tue, 4 Oct 2011 13:36:24 +0000 (15:36 +0200)]
re PR tree-optimization/50522 (C++ std::valarray vectorization missed optimization)
PR tree-optimization/50522
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
TYPE_RESTRICT.
(ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
unconditionally.
From-SVN: r179502
Jakub Jelinek [Tue, 4 Oct 2011 12:34:06 +0000 (14:34 +0200)]
fold-const.c (fold_unary_loc): Don't optimize POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by casting the...
* fold-const.c (fold_unary_loc): Don't optimize
POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
casting the inner pointer if it isn't TYPE_RESTRICT.
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
* gcc.dg/tree-ssa/restrict-4.c: New test.
From-SVN: r179500
Joseph Myers [Tue, 4 Oct 2011 11:24:23 +0000 (12:24 +0100)]
config.gcc (i[34567]86-*-elf*, [...]): Use i386/t-crtstuff.
* config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use
i386/t-crtstuff.
From-SVN: r179498
Artjoms Sinkarovs [Tue, 4 Oct 2011 10:01:32 +0000 (10:01 +0000)]
vector-compare-1.c: Fix trailing white spaces.
2011-10-04 Artem Shinkarov <artyom.shinkaroff@gmail.com>
* gcc.c-torture/execute/vector-compare-1.c: Fix trailing white
spaces.
(main): Use __typeof to get result type of comparison.
From-SVN: r179497
Jan Hubicka [Tue, 4 Oct 2011 09:46:56 +0000 (11:46 +0200)]
lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
* lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
* lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
* lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
* lto-cgraph.c (order_base): New static var.
(lto_output_node): Stream in order.
(lto_output_varpool_node): Stream out order.
(input_node): Stream in order.
(input_varpool_node): Stream out order.
(input_cgraph_1): Initialize order base; update call of
lto_input_toplevel_asms.
From-SVN: r179496
Georg-Johann Lay [Tue, 4 Oct 2011 08:23:03 +0000 (08:23 +0000)]
re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
* config/avr/avr-protos.h (avr_legitimize_reload_address): New
prototype.
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
from here...
* config/avr/avr.c (avr_legitimize_reload_address) ...to this new
function. Log if avr_log.legitimize_reload_address.
From-SVN: r179494
Eric Botcazou [Tue, 4 Oct 2011 07:40:07 +0000 (07:40 +0000)]
* config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
From-SVN: r179493
Andreas Krebbel [Tue, 4 Oct 2011 07:27:01 +0000 (07:27 +0000)]
longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local variables.
2011-10-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd.
From-SVN: r179491
Ira Rosen [Tue, 4 Oct 2011 07:21:46 +0000 (07:21 +0000)]
* lib/target-supports.exp
(check_effective_target_vect_multiple_sizes):
Make et_vect_multiple_sizes_saved global.
(check_effective_target_vect64): Make et_vect64_saved global.
From-SVN: r179490
David S. Miller [Tue, 4 Oct 2011 06:34:22 +0000 (06:34 +0000)]
More consistent access to sparc %ger register.
* config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
GSR_REG an input operand to UNSPEC instead of a parallel USE.
(faligndata<V64I:mode>_vis): Likewise and use DI mode.
(alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
Reference GSR_REG in DI mode, simplify convoluted expressions by using
zero_extract.
(bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
From-SVN: r179489
Maxim Kuvyrkov [Tue, 4 Oct 2011 02:23:17 +0000 (02:23 +0000)]
* tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
From-SVN: r179486
GCC Administrator [Tue, 4 Oct 2011 00:17:40 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r179484
Joseph Myers [Mon, 3 Oct 2011 20:15:53 +0000 (21:15 +0100)]
* de.po: Update.
From-SVN: r179478
Jakub Jelinek [Mon, 3 Oct 2011 20:09:56 +0000 (22:09 +0200)]
godump.c (go_output_typedef): Support printing enum values that don't fit in a signed HOST_WIDE_INT.
* godump.c (go_output_typedef): Support printing enum values that
don't fit in a signed HOST_WIDE_INT.
Co-Authored-By: Ian Lance Taylor <iant@google.com>
From-SVN: r179477
Anatoly Sokolov [Mon, 3 Oct 2011 19:39:50 +0000 (23:39 +0400)]
cris.c (cris_output_addr_const_extra): Make static.
* config/cris/cris.c (cris_output_addr_const_extra): Make static.
(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
* config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
From-SVN: r179476
Anatoly Sokolov [Mon, 3 Oct 2011 19:16:29 +0000 (23:16 +0400)]
m68k.c (m68k_output_addr_const_extra): Make static.
* config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
(TARGET_OUTPUT_ADDR_CONST_EXTRA): Define.
* config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
From-SVN: r179474
Jonathan Wakely [Mon, 3 Oct 2011 19:11:53 +0000 (19:11 +0000)]
pointer_to.cc: Define equality operator and use.
2011-10-03 Jonathan Wakely <jwakely.gcc@gmail.com>
* testsuite/20_util/pointer_traits/pointer_to.cc: Define equality
operator and use.
From-SVN: r179473
Steve Ellcey [Mon, 3 Oct 2011 17:57:40 +0000 (17:57 +0000)]
re PR target/49967 (The -static-libstdc++ does not work on HP-UX (IA64 B.11.23, probably others))
2011-10-03 Steve Ellcey <sje@cup.hp.com>
PR target/49967
* configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
(gcc_cv_ld_static_option): Ditto.
(gcc_cv_ld_dynamic_option): Ditto.
* configure: Regenerate.
From-SVN: r179472
David S. Miller [Mon, 3 Oct 2011 17:55:10 +0000 (17:55 +0000)]
Minor fixup to the sparc bshuffle pattern.
* config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap GSR_REG in
a USE, since it's now a true arg to the UNSPEC.
From-SVN: r179470
Richard Henderson [Mon, 3 Oct 2011 17:11:11 +0000 (10:11 -0700)]
Fix Artem's name spelling, at request.
From-SVN: r179469
Richard Henderson [Mon, 3 Oct 2011 17:08:43 +0000 (10:08 -0700)]
Fix broken commit wrt vect-shuffle-N.c tests.
From-SVN: r179468
David S. Miller [Mon, 3 Oct 2011 16:41:07 +0000 (16:41 +0000)]
Minor fixups to the sparc bmask/bshuffle patterns.
* config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
and 'si' patterns which describe the GSR changes explicitly in the
RTL using zero_extract.
(bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
From-SVN: r179465
Paolo Carlini [Mon, 3 Oct 2011 15:28:47 +0000 (15:28 +0000)]
hashtable.h (_Hashtable<>::insert(value_type&&), [...]): Don't define here...
2011-10-03 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
insert(const_iterator, value_type&&)): Don't define here...
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>): ... define here instead.
From-SVN: r179464
Artjoms Sinkarovs [Mon, 3 Oct 2011 15:13:26 +0000 (08:13 -0700)]
Vector shuffling patch from Artem Shinkarov.
From-SVN: r179462
Jakub Jelinek [Mon, 3 Oct 2011 09:06:38 +0000 (11:06 +0200)]
re PR tree-optimization/50587 (ICE init_range_entry, at tree-ssa-reassoc.c:1698 caused by recent change)
PR tree-optimization/50587
* tree-ssa-reassoc.c (init_range_entry): Stop iterating when
arg0 is not a SSA_NAME.
From-SVN: r179447
Richard Sandiford [Mon, 3 Oct 2011 08:11:43 +0000 (08:11 +0000)]
ipa-inline-analysis.c (MAX_TIME): Update comment.
gcc/
* ipa-inline-analysis.c (MAX_TIME): Update comment.
From-SVN: r179446
Jason Merrill [Mon, 3 Oct 2011 04:32:35 +0000 (00:32 -0400)]
pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
* pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
Change unsubstituted_packs to bool.
From-SVN: r179444
Jason Merrill [Mon, 3 Oct 2011 04:32:20 +0000 (00:32 -0400)]
parser.c (cp_parser_range_for): Don't try to deduce from {} in a template.
* parser.c (cp_parser_range_for): Don't try to deduce from {}
in a template.
From-SVN: r179443
David S. Miller [Mon, 3 Oct 2011 00:52:32 +0000 (17:52 -0700)]
Add missing changelog details in previous commit.
* config/sparc/predicates.md (const_one_operand): Delete.
From-SVN: r179442
Richard Henderson [Mon, 3 Oct 2011 00:46:54 +0000 (17:46 -0700)]
Add missing sparc shift zero extensions, and fix shift attributes.
* config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
conditional insn type setting, we always emit a shift.
(*ashlsi3_extend, *lshrsi3_extend0): New patterns.
(*lshrsi3_extend): Rename to *lshrsi3_extend1.
Co-Authored-By: David S. Miller <davem@davemloft.net>
From-SVN: r179441
GCC Administrator [Mon, 3 Oct 2011 00:19:00 +0000 (00:19 +0000)]
Daily bump.
From-SVN: r179440
Jason Merrill [Sun, 2 Oct 2011 21:45:01 +0000 (17:45 -0400)]
re PR c++/35722 ([C++0x] Variadic templates expansion into non-variadic class template)
PR c++/35722
Implement N2555 (expanding pack expansion to fixed parm list)
* pt.c (coerce_template_parms): Allow expanding a pack expansion
to a fixed-length argument list.
(unify_pack_expansion): Handle explicit args properly.
(unify) [TREE_VEC]: Handle pack expansions here.
[TYPE_ARGUMENT_PACK]: Not here.
(tsubst_pack_expansion): Don't try to do partial substitution.
(pack_deducible_p): New.
(fn_type_unification): Use it.
(find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
of a type parameter.
(check_non_deducible_conversion): Split from type_unification_real.
(unify_one_argument): Split from type_unification_real...
(unify_pack_expansion): ...and here. Drop call_args_p parm.
(type_unification_real, unify, more_specialized_fn): Adjust.
From-SVN: r179436
Jason Merrill [Sun, 2 Oct 2011 21:44:52 +0000 (17:44 -0400)]
class.c (fixed_type_or_null): Handle NSDMI.
* class.c (fixed_type_or_null): Handle NSDMI.
* method.c (walk_field_subobs): Disable NSDMI noexcept checking
for now.
From-SVN: r179435
Gerald Pfeifer [Sun, 2 Oct 2011 20:51:29 +0000 (20:51 +0000)]
* invoke.texi (SPARC Options): Refer to GNU/Linux.
From-SVN: r179434
Richard Sandiford [Sun, 2 Oct 2011 18:29:27 +0000 (18:29 +0000)]
re PR target/50579 (gcc.target/mips/
20020620-1.c FAILs on IRIX 6.5)
gcc/testsuite/
PR target/50579
* gcc.target/mips/mips.exp (mips_long32_abi_p, mips_long64_abi_p):
New procedures.
(mips-dg-options): Force an ABI option if the current ABI is
incompatible with the required -mlong setting. Likewise force
a long setting if the current one is incompatible with the
chosen ABI. Keep abi_test_option_p, abi and eabi_p updated
throughout procedure.
* gcc.target/mips/abi-o64-long64.c: Require -mno-abicalls
instead of addressing=absolute.
From-SVN: r179433
Richard Sandiford [Sun, 2 Oct 2011 17:46:11 +0000 (17:46 +0000)]
mips.c (mips_frame_barrier): New function.
gcc/
* config/mips/mips.c (mips_frame_barrier): New function.
(mips_expand_prologue): Call it after allocating stack space.
(mips_deallocate_stack): New function.
(mips_expand_epilogue): Call mips_frame_barrier and
mips_deallocate_stack.
gcc/testsuite/
* gcc.target/mips/stack-1.c: New test.
From-SVN: r179432
Richard Sandiford [Sun, 2 Oct 2011 17:45:10 +0000 (17:45 +0000)]
re PR target/49696 (ICE on mips when compiling drizzle)
gcc/
PR target/49696
* config/mips/sync.md (sync_<optab>_12): Allow zero operands.
(sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
(sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
gcc/testsuite/
* gcc.dg/pr49696.c: New test.
From-SVN: r179431
Jan Hubicka [Sun, 2 Oct 2011 15:06:11 +0000 (17:06 +0200)]
* cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
From-SVN: r179430
Jan Hubicka [Sun, 2 Oct 2011 14:30:50 +0000 (16:30 +0200)]
cgraphunit.c (ipa_passes): Remove unrechable nodes.
* cgraphunit.c (ipa_passes): Remove unrechable nodes.
* lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
* ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
functions are reachable when address is taken.
* ipa-inline-analysis.c (reset_inline_edge_summary): New
* gcc.dg/ipa/ctor-empty-1.c: Update dump file.
From-SVN: r179429
Jan Hubicka [Sun, 2 Oct 2011 14:28:18 +0000 (16:28 +0200)]
* ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
From-SVN: r179428
Jan Hubicka [Sun, 2 Oct 2011 13:59:28 +0000 (15:59 +0200)]
ipa-inline-analysis.c (reset_inline_edge_summary): New function.
* ipa-inline-analysis.c (reset_inline_edge_summary): New function.
(reset_inline_summary): New function.
(compute_inline_parameters, inline_node_removal_hook,
inline_edge_removal_hook): Use it.
(inline_free_summary): Reset holders correctly.
(inline_generate_summary): Free summary before computing it.
From-SVN: r179427
Paolo Carlini [Sun, 2 Oct 2011 12:31:40 +0000 (12:31 +0000)]
re PR preprocessor/36819 (memleak in split_quote_chain)
2011-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR preprocessor/36819
* incpath.c (merge_include_chains): Call free_path on
heads[QUOTE] and tails[QUOTE].
From-SVN: r179426
Revital Eres [Sun, 2 Oct 2011 11:14:53 +0000 (11:14 +0000)]
Fix r179381: add missing period in testsuite/Changelog.
From-SVN: r179425
Jan Hubicka [Sun, 2 Oct 2011 10:41:24 +0000 (12:41 +0200)]
re PR lto/47247 (Linker plugin specification makes it difficult to handle COMDATs)
PR lto/47247
* lto-plugin.c (get_symbols_v2): New variable.
(write_resolution): Use V2 API when available.
(onload): Handle LDPT_GET_SYMBOLS_V2.
* lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
when resolution is already availbale from plugin.
(lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
* cgraph.c (ld_plugin_symbol_resolution): Add prevailing_def_ironly_exp.
* lto-cgraph.c (LDPR_NUM_KNOWN): Update.
* ipa.c (varpool_externally_visible_p): IRONLY variables are never
externally visible.
* varasm.c (resolution_to_local_definition_p): Add
LDPR_PREVAILING_DEF_IRONLY_EXP.
(resolution_local_p): Likewise.
* common.c (lto_resolution_str): Add new resolution.
* common.h (lto_resolution_str): Likewise.
From-SVN: r179424
David S. Miller [Sun, 2 Oct 2011 02:21:20 +0000 (02:21 +0000)]
Start adding support for VIS 3.0 instructions.
gcc/
* config/sparc/sparc.opt (VIS3): New option.
* doc/invoke.texi: Document it.
* config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
not capable of such instructions.
* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
to 0x300 when TARGET_VIS3.
* config/sparc/sparc-modes.def: Create 16-byte vector modes.
* config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
(V64N8, VASS): New mode iterators.
(vis3_shift, vis3_addsub_ss): New code iterators.
(vbits, vconstr): New mode attributes.
(vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
(cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
fmean16_vis, fpadd64_vis, fpsub64_vis, <vis3_addsub_ss_insn><vbits>_vis,
fucmp<code>8<P:mode>_vis): New VIS 3.0 instruction patterns.
* config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
default when targetting capable cpus. TARGET_VIS3 implies
TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is
disabled.
(sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
(sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
is ignored.
* config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
__vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
__vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
__vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
__vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
__vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
__vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
__vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
* doc/extend.texi: Document new VIS 3.0 builtins.
gcc/testsuite/
* gcc.target/sparc/cmask.c: New test.
* gcc.target/sparc/fpadds.c: New test.
* gcc.target/sparc/fshift.c: New test.
* gcc.target/sparc/fucmp.c: New test.
* gcc.target/sparc/vis3misc.c: New test.
From-SVN: r179421
GCC Administrator [Sun, 2 Oct 2011 00:17:58 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r179420
Eric Botcazou [Sat, 1 Oct 2011 19:42:54 +0000 (19:42 +0000)]
* ira-color.c (assign_hard_reg): Fix typo.
From-SVN: r179415
François Dumont [Sat, 1 Oct 2011 19:21:57 +0000 (19:21 +0000)]
vector (vector<>::erase(iterator, iterator): Check iterators equality using normal iterators.
2011-10-01 François Dumont <fdumont@gcc.gnu.org>
* include/debug/vector (vector<>::erase(iterator, iterator): Check
iterators equality using normal iterators.
* include/debug/deque (deque<>::erase(iterator, iterator): Likewise.
From-SVN: r179414
Janus Weil [Sat, 1 Oct 2011 11:41:41 +0000 (13:41 +0200)]
re PR fortran/50585 (ICE with assumed length character array argument)
2011-10-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/50585
* interface.c (get_expr_storage_size): Check if 'length' component is
associated.
2011-10-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/50585
* gfortran.dg/assumed_charlen_arg_2.f90: New.
From-SVN: r179413
GCC Administrator [Sat, 1 Oct 2011 00:17:57 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r179410
Jason Merrill [Fri, 30 Sep 2011 17:47:40 +0000 (13:47 -0400)]
cp-tree.h (TREE_NEGATED_INT): Remove.
* cp-tree.h (TREE_NEGATED_INT): Remove.
* semantics.c (finish_unary_op_expr): Don't set it.
From-SVN: r179400
Janis Johnson [Fri, 30 Sep 2011 17:33:41 +0000 (17:33 +0000)]
re PR c++/44473 (iterators already defined for std::vector when using std::decimal)
gcc/cp
PR c++/44473
* mangle.c (write_type): Handle CV qualifiers for decimal classes.
gcc/testsuite
PR c++/44473
* g++.dg/dfp/44473-1.C: New test.
* g++.dg/dfp/44473-2.C: New test.
* g++.dg/dfp/mangle-1.C: New test.
* g++.dg/dfp/mangle-2.C: New test.
* g++.dg/dfp/mangle-3.C: New test.
* g++.dg/dfp/mangle-4.C: New test.
* g++.dg/dfp/mangle-5.C: New test.
From-SVN: r179399
H.J. Lu [Fri, 30 Sep 2011 16:29:06 +0000 (16:29 +0000)]
Add missing ','.
2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
* doc/extend.texi: Add missing ','.
From-SVN: r179397
H.J. Lu [Fri, 30 Sep 2011 15:48:51 +0000 (15:48 +0000)]
Use 64bit integer for LTO symbol ID.
gcc/lto
2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
Andi Kleen <ak@linux.intel.com>
PR lto/50568
* lto.c (lto_splay_tree_delete_id): New.
(lto_splay_tree_compare_ids): Likewise.
(lto_splay_tree_lookup): Likewise.
(lto_splay_tree_id_equal_p): Likewise.
(lto_splay_tree_insert): Likewise.
(lto_splay_tree_new): Likewise.
(lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
(create_subid_section_table): Use lto_splay_tree_lookup and
lto_splay_tree_insert.
(lto_file_read): Use lto_splay_tree_new.
lto-plugin/
2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
Andi Kleen <ak@linux.intel.com>
PR lto/50568
* lto-plugin.c (sym_aux): Change id to unsigned long long.
(plugin_symtab): Likewise.
(dump_symtab): Likewise.
(resolve_conflicts): Likewise.
(process_symtab): Likewise.
Co-Authored-By: Andi Kleen <ak@linux.intel.com>
From-SVN: r179395
Bernd Schmidt [Fri, 30 Sep 2011 15:37:43 +0000 (15:37 +0000)]
c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above.
* common/config/c6x/c6x-common.c (c6x_option_optimization_table):
Enable -fmodulo-sched at -O2 and above.
* config/c6x/c6x.md (doloop_end): New expander.
(mvilc, sploop, spkernel, loop_end): New patterns.
(loop_end with memory destination splitter): New.
* config/c6x/c6x.c: Include "hw-doloop.h".
(enum unitreqs): New.
(unit_req_table): New typedef.
(unit_reqs): New static variable.
(unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
(struct c6x_sched_context): New member last_scheduled_iter0.
(init_sched_state): Initialize it.
(c6x_variable_issue): Update it.
(sploop_max_uid_iter0): New static variable.
(c6x_sched_reorder_1): Be careful about issuing sploop.
(c6x_reorg): Call c6x_hwlooops before the final schedule.
From-SVN: r179393
Georg-Johann Lay [Fri, 30 Sep 2011 15:15:23 +0000 (15:15 +0000)]
re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
* config/avr/avr-protos.h (avr_log_t): New field address_cost.
* config/avr/avr.c (avr_address_cost): Use it.
* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
(avr_log_vadump): Unknown %-codes finish printing.
From-SVN: r179391
Jakub Jelinek [Fri, 30 Sep 2011 15:01:27 +0000 (17:01 +0200)]
re PR inline-asm/50571 (Undesirable folding in "m" constrained asm operands)
PR inline-asm/50571
* gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
input constraints allow mem and not reg, pass true instead of
false as second argument to maybe_fold_reference.
* gcc.dg/pr50571.c: New test.
From-SVN: r179389
Jakub Jelinek [Fri, 30 Sep 2011 15:00:12 +0000 (17:00 +0200)]
re PR tree-optimization/46309 (optimization a==3||a==1)
PR tree-optimization/46309
* fold-const.c (make_range, merge_ranges): Remove prototypes.
(make_range_step): New function.
(make_range): Use it.
* tree.h (make_range_step): New prototypes.
* Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
* tree-ssa-reassoc.c: Include diagnostic-core.h.
(struct range_entry): New type.
(init_range_entry, range_entry_cmp, update_range_test,
optimize_range_tests): New functions.
(reassociate_bb): Call optimize_range_tests.
* gcc.dg/pr46309.c: New test.
From-SVN: r179388
Jakub Jelinek [Fri, 30 Sep 2011 14:58:27 +0000 (16:58 +0200)]
tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix
handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
(ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
* gcc.dg/strlenopt-21.c: New test.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r179387
Jan Beulich [Fri, 30 Sep 2011 14:56:01 +0000 (14:56 +0000)]
Split out LTO's writing of top level asm nodes in preparation of extending what...
Split out LTO's writing of top level asm nodes in preparation of extending
what needs to be written out when top level asm-s get enhanced to accept a
limited set of input operands.
gcc/
2011-09-30 Jan Beulich <jbeulich@suse.com>
* lto-cgraph.c (output_cgraph): Remove processing of
'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
(input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
lto_input_toplevel_asms() instead.
* lto-section-in.c (lto_section_name): Add "asm" entry.
* lto-streamer-in.c (lto_input_toplevel_asms): New.
* lto-streamer-out.c (lto_output_toplevel_asms): New.
* lto-streamer.h (LTO_minor_version): Bump.
(enum lto_section_type): Add LTO_section_asm.
(struct lto_asm_header): New.
(lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
* tree-streamer.h (streamer_write_string_cst): Declare.
* tree-streamer-out.c (write_string_cst): Rename to
streamer_write_string_cst and make global. Handle incoming string
being NULL.
(streamer_write_tree_header): Adjust call to renamed function.
From-SVN: r179386
Bernd Schmidt [Fri, 30 Sep 2011 14:12:34 +0000 (14:12 +0000)]
sched-ebb.c (schedule_ebb): No longer static.
* sched-ebb.c (schedule_ebb): No longer static. Remove declaration.
New arg modulo_scheduling. All callers changed. Move note handling
code here from schedule_ebbs.
(schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
out of schedule_ebbs.
(schedule_ebbs): Call them. Remove note handling code moved to
schedule_ebb.
* sched-int.h (schedule_ebb, schedule_ebbs_init,
schedule_ebbs_finish): Declare.
From-SVN: r179385
Iain Sandoe [Fri, 30 Sep 2011 13:44:48 +0000 (13:44 +0000)]
Partial reversion of r179358.
ada:
Partial reversion of r179358.
* gcc-interface/Makefile.in (Darwin): Partial reversion of previous
change to powerpc section.
From-SVN: r179384
Bernd Schmidt [Fri, 30 Sep 2011 13:33:54 +0000 (13:33 +0000)]
haifa-sched.c (modulo_ii, [...]): New static variables.
* haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
modulo_last_stage): New static variables.
(set_modulo_params, discard_delay_pairs_above): New functions.
(struct delay_pair): New member stages.
(htab_i2_traverse, htab_i1_traverse): New static functions.
(record_delay_slot_pair): New arg stages. All callers changed.
Record it.
(pair_delay): Take stages into account.
(add_delay_dependencies): Don't do so for stage pairs.
(struct sched_block_state): New member modulo_epilogue.
(save_backtrack_point): Don't set SHADOW_P for stage pairs.
(unschedule_insns_until): Decrease modulo_insns_scheduled.
Set HARD_DEP without using or.
(resolve_dependencies): New static function.
(prune_ready_list): New arg modulo_epilogue_p. All callers changed.
If it is true, allow only insns with INSN_EXACT_TICK set.
(schedule_block): Return bool, always true for normal scheduling,
true or false depending on modulo scheduling success otherwise.
Add bookkeeping for modulo scheduling, and call resolve_dependencies
on everything left over after a modulo schedule.
(haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
* sched-int.h (schedule_block, record_delay_slot_pair): Adjust
declarations.
(set_modulo_params, discard_delay_pairs_above): Declare.
* params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
* doc/invoke.texi (--param): Document it.
From-SVN: r179383
Richard Guenther [Fri, 30 Sep 2011 13:33:14 +0000 (13:33 +0000)]
re PR tree-optimization/50574 (gcc.c-torture/execute/vector-compare-1.c FAILs on SPARC)
2011-09-30 Richard Guenther <rguenther@suse.de>
PR middle-end/50574
* tree-cfg.c (verify_gimple_comparison): Compare component
mode sizes for vector comparisons.
From-SVN: r179382
Revital Eres [Fri, 30 Sep 2011 13:25:30 +0000 (13:25 +0000)]
SMS: Support instructions with REG_INC_NOTE
From-SVN: r179381