gcc.git
11 years agoMerge ubsan into trunk.
Marek Polacek [Fri, 30 Aug 2013 16:12:58 +0000 (16:12 +0000)]
Merge ubsan into trunk.

From-SVN: r202113

11 years agoinstall.texi (Prerequisites): Note regression in Tcl 8.6 with RE patterns.
Mike Stump [Fri, 30 Aug 2013 15:45:18 +0000 (15:45 +0000)]
install.texi (Prerequisites): Note regression in Tcl 8.6 with RE patterns.

* doc/install.texi (Prerequisites): Note regression in Tcl 8.6
with RE patterns.

From-SVN: r202112

11 years agocgraph.c (cgraph_function_body_availability): Handle weakref correctly.
Jan Hubicka [Fri, 30 Aug 2013 15:41:26 +0000 (17:41 +0200)]
cgraph.c (cgraph_function_body_availability): Handle weakref correctly.

* cgraph.c (cgraph_function_body_availability): Handle weakref
correctly.
* passes.def: Remove pass_fixup_cfg.
* ipa-inline.c (ipa_inline): When not optimizing, do not inline;
track when we need to remove functions.
(gate_ipa_inline): Execute inlining always; add comment why.
(pass_data_ipa_inline): Remove TODO_remove_functions.
* ipa-inline-analysis.c (inline_generate_summary): When not optimizing
do not produce summaries.
* symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
(symtab_nonoverwritable_alias): Assert we are not called on weakref.
* varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
constant pool and vtable.

From-SVN: r202111

11 years agore PR c++/51424 ([C++11] G++ should diagnose self-delegating constructors)
Paolo Carlini [Fri, 30 Aug 2013 15:39:01 +0000 (15:39 +0000)]
re PR c++/51424 ([C++11] G++ should diagnose self-delegating constructors)

/cp
2013-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/51424
* cp-tree.h (LOOKUP_DELEGATING_CONS): Add.
* init.c (perform_target_ctor): Use it.
* call.c (build_special_member_call): Diagnose self-delegating
constructors.

/testsuite
2013-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/51424
* g++.dg/cpp0x/dc8.C: New.
* g++.dg/template/meminit1.C: Adjust.

From-SVN: r202110

11 years agoc-pretty-print.h (c_pretty_printer::declaration): Now a virtual member function.
Gabriel Dos Reis [Fri, 30 Aug 2013 15:28:51 +0000 (15:28 +0000)]
c-pretty-print.h (c_pretty_printer::declaration): Now a virtual member function.

c-family/
* c-pretty-print.h (c_pretty_printer::declaration): Now a virtual
member function.
(c_pretty_printer::declaration_specifiers): Likewise.
(c_pretty_printer::declarator): Likewise.
(c_pretty_printer::abstract_declarator): Likewise.
(c_pretty_printer::direct_abstract_declarator): Likewise.
(c_pretty_printer::direct_declarator): Likewise.
(c_pretty_printer::function_specifier): Likewise.
(pp_declaration): Adjust.
(pp_declaration_specifiers): Likewise.
(pp_abstract_declarator): Likewise.
(pp_direct_declarator): Likewise.
(pp_function_specifier): Likewise.
(pp_direct_abstract_declarator): Remove as unused.
(pp_c_declaration): Remove.
(pp_c_declaration_specifiers): Likewise.
(pp_c_declarator): Likewise.
(pp_c_direct_declarator): Likewise.
(pp_c_function_specifier): Likewise.
(pp_c_direct_abstract_declarator): Likewise.
* c-pretty-print.c (c_pretty_printer::abstract_declarator): Rename
from pp_c_abstract_declarator.  Adjust.
(c_pretty_printer::direct_abstract_declarator):  Rename from
pp_c_direct_abstract_declarator.  Adjust.
(c_pretty_printer::function_specifier): Rename from
pp_c_function_specifier.  Adjust.
(c_pretty_printer::declaration_specifiers): Rename from
pp_c_declaration_specifiers.  Adjust.
(c_pretty_printer::direct_declarator): Rename from
pp_c_direct_declarator.  Adjust.
(c_pretty_printer::declarator): Rename from pp_c_declarator.  Adjust.
(c_pretty_printer::declaration): Rename from pp_c_declaration.  Adjust.
(c_pretty_printer::c_pretty_printer): Do not assign to
declaration, declaration_specifiers, declarator,
direct_declarator, direct_abstract_declarator, function_specifier.

cp/
* cxx-pretty-print.h (cxx_pretty_printer::declaration): Declare as
overrider.
(cxx_pretty_printer::declaration_specifiers): Likewise.
(cxx_pretty_printer::function_specifier): Likewise.
(cxx_pretty_printer::declarator): Likewise.
(cxx_pretty_printer::direct_declarator): Likewise.
(cxx_pretty_printer::abstract_declarator): Likewise.
(cxx_pretty_printer::direct_abstract_declarator): Likewise.
(pp_cxx_declaration): Remove.
* cxx-pretty-print.c (cxx_pretty_printer::function_specifier):
Rename from pp_cxx_function_specifier.  Adjust.
(cxx_pretty_printer::declaration_specifiers): Rename from
pp_cxx_decl_specifier_seq.  Adjust.
(cxx_pretty_printer::direct_declarator): Rename from
pp_cxx_direct_declarator.  Adjust.
(cxx_pretty_printer::declarator): Rename from pp_cxx_declarator.
Adjust.
(cxx_pretty_printer::abstract_declarator): Rename from
pp_cxx_abstract_declarator.  Adjust.
(cxx_pretty_printer::direct_abstract_declarator): Rename from
pp_cxx_direct_abstract_declarator.  Adjust.
(cxx_pretty_printer::declaration): Rename from
pp_cxx_declaration.  Adjust.
(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
declaration, declaration_specifiers, function_specifier,
declarator, direct_declarator, abstract_declarator,
direct_abstract_declarator.
* error.c (dump_decl): Adjust.

From-SVN: r202109

11 years agoarm_neon.h (__AARCH64_UINT64_C, [...]): New arm_neon.h's internal macros to specify...
Tejas Belagod [Fri, 30 Aug 2013 15:04:58 +0000 (16:04 +0100)]
arm_neon.h (__AARCH64_UINT64_C, [...]): New arm_neon.h's internal macros to specify 64-bit constants.

2013-08-30  Tejas Belagod  <tejas.belagod@arm.com>

gcc/
* config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C): New
arm_neon.h's internal macros to specify 64-bit constants. Avoid using
stdint.h's macros.

From-SVN: r202108

11 years agorecog.c (verify_changes): Verify that changes[i].old is non-zero before applying...
Joern Rennecke [Fri, 30 Aug 2013 14:20:29 +0000 (14:20 +0000)]
recog.c (verify_changes): Verify that changes[i].old is non-zero before applying REG_P.

        * recog.c (verify_changes): Verify that changes[i].old is non-zero
        before applying REG_P.

From-SVN: r202107

11 years agoMove testsuite changes to correct ChangeLog, and delete a new
Teresa Johnson [Fri, 30 Aug 2013 13:17:22 +0000 (13:17 +0000)]
Move testsuite changes to correct ChangeLog, and delete a new
test that should not have been committed.

2013-08-30  Teresa Johnson  <tejohnson@google.com>

* gcc.dg/inline-dump.c: Delete inadvertant commit.

From-SVN: r202106

11 years agore PR tree-optimization/58277 (wrong code at -O3)
Jakub Jelinek [Fri, 30 Aug 2013 12:41:17 +0000 (14:41 +0200)]
re PR tree-optimization/58277 (wrong code at -O3)

PR tree-optimization/58277
* tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
after seeing too many stmts with vdef in between dombb and current
bb, invalidate everything.

* gcc.c-torture/execute/pr58277-1.c: New test.
* gcc.c-torture/execute/pr58277-2.c: New test.

From-SVN: r202104

11 years agofold-const.c (fold_single_bit_test): Fix overflow test.
Richard Biener [Fri, 30 Aug 2013 11:52:15 +0000 (11:52 +0000)]
fold-const.c (fold_single_bit_test): Fix overflow test.

2013-08-30  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_single_bit_test): Fix overflow test.

From-SVN: r202103

11 years agofunction.c (assign_parm_setup_reg): For a parameter passed by pointer and which can...
Eric Botcazou [Fri, 30 Aug 2013 11:13:20 +0000 (11:13 +0000)]
function.c (assign_parm_setup_reg): For a parameter passed by pointer and which can live in a register...

* function.c (assign_parm_setup_reg): For a parameter passed by pointer
and which can live in a register, always retrieve the value on entry.
* var-tracking.c (add_stores): Treat the copy on entry for a parameter
passed by invisible reference specially.
(emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
(vt_add_function_parameter): Correctly deal with a parameter passed by
invisible reference.

From-SVN: r202102

11 years agoAdd custom HTM fast path for RTM on x86_64.
Torvald Riegel [Fri, 30 Aug 2013 10:33:41 +0000 (10:33 +0000)]
Add custom HTM fast path for RTM on x86_64.

* libitm_i.h (gtm_thread): Assign an asm name to serial_lock.
(htm_fastpath): Assign an asm name.
* libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom
HTM fast paths.
(_ITM_actions): Likewise.
* config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on
x86_64.
* config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path.
* config/posix/rwlock.h (gtm_rwlock): Update comments.  Move summary
field to the start of the structure.
* config/linux/rwlock.h (gtm_rwlock): Update comments.
* beginend.cc (gtm_thread::begin_transaction): Add retry policy
handling for custom HTM fast paths.

From-SVN: r202101

11 years agoCorrect previous patch to not mark terminate as LEAF.
Jan Hubicka [Fri, 30 Aug 2013 09:39:20 +0000 (11:39 +0200)]
Correct previous patch to not mark terminate as LEAF.

* class.c (build_vtbl_initializer): Drop LEAF
* decl.c (cxx_init_decl_processing): Likewise.
(push_throw_library_fn): Likewise.
* except.c (init_exception_processing): Likewise.
(do_begin_catch): Likewise.
(do_end_catch): Likewise.
(do_allocate_exception): Likewise.

From-SVN: r202100

11 years agoclass.c (build_vtbl_initializer): Make __cxa_deleted_virtual ECF_NORETURN | ECF_LEAF
Jan Hubicka [Fri, 30 Aug 2013 08:14:37 +0000 (10:14 +0200)]
class.c (build_vtbl_initializer): Make __cxa_deleted_virtual ECF_NORETURN | ECF_LEAF

* class.c (build_vtbl_initializer): Make __cxa_deleted_virtual
ECF_NORETURN | ECF_LEAF
* cp-tree.h (build_library_fn_ptr, build_cp_library_fn_ptr,
push_library_fn, push_void_library_fn): Update prototype.
* decl.c (build_library_fn_1): Remove.
(push_cp_library_fn, build_cp_library_fn): Update to take ECF flags.
(cxx_init_decl_processing): Update; global_delete_fndecl is ECF_NOTROW;
__cxa_pure_virtual is ECF_NORETURN | ECF_NORETURN | ECF_LEAF.
(build_library_fn_1): Add ecf_flags argument; rename to ...
(build_library_fn): ... this one.
(build_cp_library_fn): Take ecf_flags; do not copy NOTHROW flag.
(build_library_fn_ptr): Take ecf_flags.
(build_cp_library_fn_ptr): Likewise.
(push_library_fn): Likewise.
(push_cp_library_fn): Likewise.
(push_void_library_fn): Likewise.
(push_throw_library_fn): All throws are ECF_NORETURN.
(__cxa_atexit, __cxa_thread_atexit): Add ECF_LEAF | ECF_NOTHROW attributes.
(expand_static_init): __cxa_guard_acquire, __cxa_guard_release,
__cxa_guard_abort are ECF_NOTHROW | ECF_LEAF.
* except.c (init_exception_processing): terminate is
ECF_NOTHROW | ECF_NORETURN | ECF_LEAF.
(declare_nothrow_library_fn): Add ecf_flags parameter.
(__cxa_get_exception_ptr): Is ECF_NOTHROW | ECF_PURE | ECF_LEAF |
ECF_TM_PURE.
(do_begin_catch): cxa_begin_catch and _ITM_cxa_begin_catch
are ECF_NOTHROW | ECF_LEAF.
(do_end_catch): __cxa_end_catch and _ITM_cxa_end_catch is
ECF_LEAF.
(do_allocate_exception): _cxa_allocate_exception
and _ITM_cxa_allocate_exception are ECF_NOTHROW | ECF_MALLOC
| ECF_LEAF
(do_free_exception): __cxa_free_exception is
ECF_NOTHROW | ECF_LEAF.
* rtti.c (build_dynamic_cast_1): __dynamic_cast
is ECF_LEAF | ECF_PURE | ECF_NOTHROW.

From-SVN: r202099

11 years ago* tree.c (set_call_expr_flags): Fix handling of TM_PURE.
Jan Hubicka [Fri, 30 Aug 2013 08:11:41 +0000 (10:11 +0200)]
* tree.c (set_call_expr_flags): Fix handling of TM_PURE.

From-SVN: r202098

11 years agore PR tree-optimization/58228 (wrong code (with vectorization?) at -O3 on x86_64...
Richard Biener [Fri, 30 Aug 2013 07:49:54 +0000 (07:49 +0000)]
re PR tree-optimization/58228 (wrong code (with vectorization?) at -O3 on x86_64-linux-gnu)

2013-08-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/58228
* tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
allow invariant loads in nested loop vectorization.

* gcc.dg/torture/pr58228.c: New testcase.

From-SVN: r202097

11 years agore PR tree-optimization/58223 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Fri, 30 Aug 2013 07:48:53 +0000 (07:48 +0000)]
re PR tree-optimization/58223 (wrong code at -O3 on x86_64-linux-gnu)

2013-08-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/58223
* tree-loop-distribution.c (has_anti_dependence): Rename to ...
(has_anti_or_output_dependence): ... this and adjust to also
look for output dependences.
(mark_nodes_having_upstream_mem_writes): Adjust.
(rdg_flag_uses): Likewise.

* gcc.dg/torture/pr58223.c: New testcase.
* gcc.dg/tree-ssa/ldist-16.c: Flip expected behavior.

From-SVN: r202096

11 years agore PR tree-optimization/58010 (ICE in vect_create_epilog_for_reduction, at tree-vect...
Richard Biener [Fri, 30 Aug 2013 07:47:54 +0000 (07:47 +0000)]
re PR tree-optimization/58010 (ICE in vect_create_epilog_for_reduction, at tree-vect-loop.c:4378)

2013-08-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/58010
* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
assert that we have a loop-closed PHI.

* gcc.dg/pr58010.c: New testcase.

From-SVN: r202095

11 years agolto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
Jan Hubicka [Fri, 30 Aug 2013 07:33:56 +0000 (09:33 +0200)]
lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.

* lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
* cgraph.c (cgraph_release_function_body): Free decl_in_state.
* lto-section-in.c (lto_free_function_in_decl_state): New function.
(lto_free_function_in_decl_state_for_node): New function.

From-SVN: r202094

11 years agolto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
Jan Hubicka [Fri, 30 Aug 2013 07:33:06 +0000 (09:33 +0200)]
lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.

* lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
* cgraph.c (cgraph_release_function_body): Free decl_in_state.
* lto-section-in.c (lto_free_function_in_decl_state): New function.
(lto_free_function_in_decl_state_for_node): New function.

* lto.c (read_cgraph_and_symbols): Remove ggc_collect;
clear section node; add comment why we do not collect.

From-SVN: r202093

11 years agoDaily bump.
GCC Administrator [Fri, 30 Aug 2013 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r202092

11 years agoNew vectorizer messages; message format change.
Xinliang David Li [Thu, 29 Aug 2013 21:06:08 +0000 (21:06 +0000)]
New vectorizer messages; message format change.

From-SVN: r202088

11 years agoSupport dumping type bindings and 'mutable' qualifier in lambda diagnostics.
Adam Butcher [Thu, 29 Aug 2013 20:54:49 +0000 (21:54 +0100)]
Support dumping type bindings and 'mutable' qualifier in lambda diagnostics.

* error.c (dump_lambda_function): New function, dependent on ...
(dump_substitution): ... this new function, factored out of ...
(subst_to_string): ... here and ...
(dump_function_decl): ... here.  Updated to early-out with call to
dump_lambda_function after determining template bindings.

From-SVN: r202087

11 years agocgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME of the clone...
Eric Botcazou [Thu, 29 Aug 2013 19:52:33 +0000 (19:52 +0000)]
cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME of the clone from the DECL_NAME of the original function.

* cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
of the clone from the DECL_NAME of the original function.

From-SVN: r202086

11 years ago* gcc_update (configure): Update to handle svn 1.8.1.
Mike Stump [Thu, 29 Aug 2013 19:06:33 +0000 (19:06 +0000)]
* gcc_update (configure): Update to handle svn 1.8.1.

From-SVN: r202084

11 years agoregex.h (basic_regex<>::assign): Don't lose _M_traits.
Tim Shen [Thu, 29 Aug 2013 18:33:07 +0000 (18:33 +0000)]
regex.h (basic_regex<>::assign): Don't lose _M_traits.

2013-08-29  Tim Shen  <timshen91@gmail.com>

* include/bits/regex.h (basic_regex<>::assign): Don't lose _M_traits.
  (regex_iterator<>::regex_iterator): Return nullptr when regex_search
     failed.
  (regex_token_iterator<>::_M_end_of_seq): Should be defined true when
    _M_result is(not isn't) nullptr.
* include/bits/regex_compiler.h: Store _Compiler::_M_traits by reference
  instead of by value.
* include/bits/regex_executor.h (_DFSExecutor<>::_DFSExecutor): Add
  _M_traits to _DFSExecutor.
* include/bits/regex_executor.tcc (__get_executor<>): Pass traits to
  _DFSExecutor too.
* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
  New.
* testsuite/28_regex/iterators/regex_token_iterator/wchar_t/
  wstring_02.cc: New.

From-SVN: r202082

11 years agopasses.c (register_pass): Add overload.
Oleg Endo [Thu, 29 Aug 2013 18:29:33 +0000 (18:29 +0000)]
passes.c (register_pass): Add overload.

* passes.c (register_pass): Add overload.
* tree-pass.h (register_pass): Forward declare it.  Add comment.

From-SVN: r202081

11 years agoRevert accidental checkin.
Jan Hubicka [Thu, 29 Aug 2013 16:24:13 +0000 (16:24 +0000)]
Revert accidental checkin.

From-SVN: r202080

11 years agolto.c (compare_tree_sccs_1): Compare DECL_FINAL_P...
Jan Hubicka [Thu, 29 Aug 2013 16:23:40 +0000 (18:23 +0200)]
lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P...

* lto.c (compare_tree_sccs_1): Compare  DECL_FINAL_P,
DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
TYPE_FINAL_P.

* lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P.
DECL_CXX_CONSTRUCTOR_P. DECL_CXX_DESTRUCTOR_P.
TYPE_FINAL_P.
* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields):
DECL_FINAL_P. DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
(unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P
(pack_ts_type_common_value_fields): Add TYPE_FINAL_P.

From-SVN: r202079

11 years agodumpfile.c (dump_loc): Output column number.
Teresa Johnson [Thu, 29 Aug 2013 13:51:04 +0000 (13:51 +0000)]
dumpfile.c (dump_loc): Output column number.

2013-08-29  Teresa Johnson  <tejohnson@google.com>

* dumpfile.c (dump_loc): Output column number.
* dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
* doc/invoke.texi: Document optall -fopt-info flag.
* profile.c (read_profile_edge_counts): Use new dump framework.
(compute_branch_probabilities): Ditto.
* passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
when pass not in any opt group.
* pass_manager.h (pass_manager::get_pass_profile): New method.
* value-prof.c (check_counter): Use new dump framework.
(check_ic_target): Ditto.
* coverage.c (get_coverage_counts): Ditto.
(coverage_init): Setup new dump framework.

* testsuite/gcc.dg/pr40209.c: Use -fopt-info.
* testsuite/gcc.dg/pr26570.c: Ditto.
* testsuite/gcc.dg/pr32773.c: Ditto.
* testsuite/g++.dg/tree-ssa/dom-invalid.C: Ditto.
* testsuite/gcc.dg/inline-dump.c: New test.

From-SVN: r202077

11 years agore PR tree-optimization/58246 (wrong code at -O1 and above)
Richard Biener [Thu, 29 Aug 2013 13:04:19 +0000 (13:04 +0000)]
re PR tree-optimization/58246 (wrong code at -O1 and above)

2013-08-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/58246
* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
handle the dominance check inside a basic-block.

* gcc.dg/torture/pr58246.c: New testcase.

From-SVN: r202071

11 years agore PR fortran/52243 (Avoid reallocation for: array1 = array1 / scalar for performance)
Thomas Koenig [Thu, 29 Aug 2013 11:44:41 +0000 (11:44 +0000)]
re PR fortran/52243 (Avoid reallocation for:  array1 = array1 / scalar  for performance)

2013-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/52243
* trans-expr.c (is_runtime_conformable):  New function.
* gfc_trans_assignment_1:  Use it.

2013-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/52243
* gfortran.dg/realloc_on_assign_14.f90:  Remove warning made
obsolete by patch.
* gfortran.dg/realloc_on_assign_19.f90:  New test.

From-SVN: r202070

11 years agore PR middle-end/57287 (Bogus uninitialized warning with abnormal control flow)
Richard Biener [Thu, 29 Aug 2013 11:20:16 +0000 (11:20 +0000)]
re PR middle-end/57287 (Bogus uninitialized warning with abnormal control flow)

2013-08-29  Richard Biener  <rguenther@suse.de>

PR middle-end/57287
* tree-ssa-copy.c (may_propagate_copy): Allow propagating
of default defs that appear in abnormal PHI nodes.

* gcc.dg/pr57287-2.c: New testcase.

From-SVN: r202069

11 years agore PR tree-optimization/57685 (GCC stuck in an infinite loop)
Richard Biener [Thu, 29 Aug 2013 07:45:59 +0000 (07:45 +0000)]
re PR tree-optimization/57685 (GCC stuck in an infinite loop)

2013-08-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57685
* tree-vrp.c (register_edge_assert_for_1): Recurse only for
single-use operands to avoid exponential complexity.

* gcc.dg/torture/pr57685.c: New testcase.

From-SVN: r202068

11 years agogo-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if the struct is not hidden.
Ian Lance Taylor [Thu, 29 Aug 2013 00:49:36 +0000 (00:49 +0000)]
go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if the struct is not hidden.

* go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if
the struct is not hidden.
(Gcc_backend::immutable_struct_set_init): Don't set TREE_PUBLIC.

From-SVN: r202065

11 years agoDaily bump.
GCC Administrator [Thu, 29 Aug 2013 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r202064

11 years agore PR c++/58255 ([C++11] explicit delegating constructor with no arguments wrongly...
Paolo Carlini [Wed, 28 Aug 2013 22:40:34 +0000 (22:40 +0000)]
re PR c++/58255 ([C++11] explicit delegating constructor with no arguments wrongly rejected)

/cp
2013-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58255
* init.c (build_aggr_init): When init == void_type_node do not
set LOOKUP_ONLYCONVERTING.

/testsuite
2013-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58255
* g++.dg/cpp0x/dc7.C: New.

From-SVN: r202061

11 years agoReplace fixed size array that was holding vtable pointers with a vector, allowing...
Caroline Tice [Wed, 28 Aug 2013 21:06:43 +0000 (14:06 -0700)]
Replace fixed size array that was holding vtable pointers with a vector, allowing dynamic resizing.

Replace fixed size array that was holding vtable pointers
with a vector, allowing dynamic resizing.  ALso fix issues with
warning diagnostics.

From-SVN: r202060

11 years agoipa-inline.c (edge_badness): Fix integer underflow.
Dehao Chen [Wed, 28 Aug 2013 18:11:33 +0000 (18:11 +0000)]
ipa-inline.c (edge_badness): Fix integer underflow.

2013-08-28  Dehao Chen  <dehao@google.com>

* ipa-inline.c (edge_badness): Fix integer underflow.

From-SVN: r202059

11 years agogtm-builtins.def (_ITM_free): Declare leaf.
Uros Bizjak [Wed, 28 Aug 2013 17:42:19 +0000 (19:42 +0200)]
gtm-builtins.def (_ITM_free): Declare leaf.

* gtm-builtins.def (_ITM_free): Declare leaf.

From-SVN: r202058

11 years agoApparently I forgot to commit the ChangeLog when I committed the change to libvtv...
Caroline Tice [Wed, 28 Aug 2013 16:36:22 +0000 (09:36 -0700)]
Apparently I forgot to commit the ChangeLog when I committed the change to libvtv previously.

Apparently I forgot to commit the ChangeLog when I committed
the change to libvtv previously.  Fixing that now.

From-SVN: r202056

11 years agore PR target/58067 (ICE in GFortran recog.c:2158)
Jakub Jelinek [Wed, 28 Aug 2013 16:31:41 +0000 (18:31 +0200)]
re PR target/58067 (ICE in GFortran recog.c:2158)

PR target/58067
* config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
(*tls_local_dynamic_base_64_largepic): Likewise.
(tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
Remove predicate from call operand.
* config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.

From-SVN: r202055

11 years agotree-ssa-threadedge.c (thread_around_empty_block): Remove checks for the number of...
Jeff Law [Wed, 28 Aug 2013 15:07:45 +0000 (09:07 -0600)]
tree-ssa-threadedge.c (thread_around_empty_block): Remove checks for the number of predecessors and successors allowed.

        * tree-ssa-threadedge.c (thread_around_empty_block): Remove
        checks for the number of predecessors and successors allowed.
        * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
        which require copying a joiner block if there is a request which
        is a subpath that requires no joiner block copying.

From-SVN: r202054

11 years agolto-streamer-out.c (DFS_write_tree_body): Drop BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_...
Jan Hubicka [Wed, 28 Aug 2013 15:04:15 +0000 (15:04 +0000)]
lto-streamer-out.c (DFS_write_tree_body): Drop BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.

* lto-streamer-out.c (DFS_write_tree_body): Drop
BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
(hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields):
Do not read DECL_ERROR_ISSUED.
(unpack_ts_decl_with_vis_value_fields): Do not read
DECL_DEFER_OUTPUT.
(lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
write DECL_ERROR_ISSUED..
(pack_ts_decl_with_vis_value_fields): Do not write
DECL_DEFER_OUTPUT.
(write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
* print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
* tree.h (tree_decl_common): Update comment.
(DECL_ERROR_ISSUED): Remove.

From-SVN: r202053

11 years agolto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED, DECL_DEFER_OUTPUT and DECL_IN_TE...
Jan Hubicka [Wed, 28 Aug 2013 15:03:43 +0000 (17:03 +0200)]
lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED, DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.

* lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
(unify_scc): Do checking assert.

* lto-streamer-out.c (DFS_write_tree_body): Drop
BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
(hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields):
Do not read DECL_ERROR_ISSUED.
(unpack_ts_decl_with_vis_value_fields): Do not read
DECL_DEFER_OUTPUT.
(lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
write DECL_ERROR_ISSUED..
(pack_ts_decl_with_vis_value_fields): Do not write
DECL_DEFER_OUTPUT.
(write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
* print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
* tree.h (tree_decl_common): Update comment.
(DECL_ERROR_ISSUED): Remove.

From-SVN: r202052

11 years agoPR spam/58261
Jakub Jelinek [Wed, 28 Aug 2013 14:41:27 +0000 (16:41 +0200)]
PR spam/58261
PR spam/58262
Fix up ChangeLog entry whitespace.

From-SVN: r202051

11 years agore PR middle-end/58257 (Bogus warning with OpenMP collapsed loops)
Jakub Jelinek [Wed, 28 Aug 2013 10:08:59 +0000 (12:08 +0200)]
re PR middle-end/58257 (Bogus warning with OpenMP collapsed loops)

PR middle-end/58257
* omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.

* c-c++-common/gomp/pr58257.c: New test.

From-SVN: r202049

11 years agoChangeLog: Fix whitespace.
Uros Bizjak [Wed, 28 Aug 2013 09:34:15 +0000 (11:34 +0200)]
ChangeLog: Fix whitespace.

* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.

From-SVN: r202048

11 years agore PR tree-optimization/56933 (Vectorizer missing read-write dependency for interleav...
Richard Biener [Wed, 28 Aug 2013 07:51:10 +0000 (07:51 +0000)]
re PR tree-optimization/56933 (Vectorizer missing read-write dependency for interleaved accesses)

2013-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56933
* gcc.dg/vect/pr56933.c: Properly guard runtime with check_vect ().

From-SVN: r202044

11 years ago* builtins.def (free): Declare leaf.
Jan Hubicka [Wed, 28 Aug 2013 07:10:47 +0000 (09:10 +0200)]
* builtins.def (free): Declare leaf.

From-SVN: r202043

11 years agolto-partition.c (lto_balanced_map): Always base order on source file order.
Jan Hubicka [Wed, 28 Aug 2013 06:51:27 +0000 (08:51 +0200)]
lto-partition.c (lto_balanced_map): Always base order on source file order.

* lto-partition.c (lto_balanced_map): Always base order on
source file order.

Co-Authored-By: Martin Liska <marxin.liska@gmail.com>
From-SVN: r202041

11 years agoInitial version of gdb hooks
David Malcolm [Wed, 28 Aug 2013 03:01:20 +0000 (03:01 +0000)]
Initial version of gdb hooks

     * MAINTAINERS (gdbhooks.py): Add myself as maintainer

    gcc/
     * gdbhooks.py: New.
     * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
     * configure: Regenerate.

From-SVN: r202040

11 years agoDaily bump.
GCC Administrator [Wed, 28 Aug 2013 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r202039

11 years agoipa-prop.h (ipa_pass_through_data): New field type_preserved.
Martin Jambor [Tue, 27 Aug 2013 21:41:15 +0000 (23:41 +0200)]
ipa-prop.h (ipa_pass_through_data): New field type_preserved.

2013-08-27  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.h (ipa_pass_through_data): New field type_preserved.
(ipa_ancestor_jf_data): Likewise.
(ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
(ipa_get_jf_pass_through_type_preserved): New function.
(ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
(ipa_get_jf_ancestor_type_preserved): New function.
* ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved
flag.
(ipa_get_jf_ancestor_result): Likewise.
(propagate_vals_accross_pass_through): Use
ipa_get_jf_pass_through_result to do all the value mappings.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
type_preserved flag.
(ipa_set_jf_cst_copy): New function.
(ipa_set_jf_simple_pass_through): Set the type_preserved flag.
(ipa_set_jf_arith_pass_through): Likewise.
(ipa_set_ancestor_jf): Likewise.
(compute_complex_assign_jump_func): Set type_preserved instead of
punting.
(ipa_compute_jump_functions_for_edge): Likewise.
(combine_known_type_and_ancestor_jfs): Honor type_preserved.
(update_jump_functions_after_inlining): Update type_preserved.
Explicitely create jump functions when combining one with
pass_through.
(ipa_write_jump_function): Stream the type_preserved flags.
(ipa_read_jump_function): Likewise.

From-SVN: r202036

11 years agoMakefile.in (omp-low.o): Depend on $(TARGET_H).
Jakub Jelinek [Tue, 27 Aug 2013 18:38:00 +0000 (20:38 +0200)]
Makefile.in (omp-low.o): Depend on $(TARGET_H).

* Makefile.in (omp-low.o): Depend on $(TARGET_H).
* cfgloop.h (struct loop): Add safelen, force_vect, simduid.
* function.h (struct function): Add has_force_vect_loops and
has_simduid_loops.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle
GF_OMP_FOR_KIND*.
* gimple.c (gimple_build_omp_critical): Add KIND argument and
handle it.
* gimple.def: Update CLAUSES comments.
* gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
(gimple_build_omp_for): Add argument to prototype.
(gimple_omp_for_kind): New.
(gimple_omp_for_set_kind): New.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
GOVD_DATA_SHARE_CLASS.
(enum omp_region_type): Add ORT_SIMD.
(gimple_add_tmp_var): Handle ORT_SIMD.
(gimplify_var_or_parm_decl): Same.
(is_gimple_stmt): Same.
(omp_firstprivatize_variable): Same.
(omp_add_variable): Only use splay_tree_insert if lookup failed.
(omp_notice_variable): Handle ORT_SIMD.
(omp_is_private): Add SIMD argument and handle it as well as
ORT_SIMD.
(omp_check_private): Handle ORT_SIMD.
(gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
OMP_CLAUSE_SAFELEN.
(gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
Handle OMP_CLAUSE_LASTPRIVATE.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
OMP_CLAUSE_SAFELEN.
(gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
(gimplify_expr): Handle OMP_SIMD.
* internal-fn.c (expand_GOMP_SIMD_LANE): New.
(expand_GOMP_SIMD_VF): New.
(expand_GOMP_SIMD_LAST_LANE): New.
* internal-fn.def (GOMP_SIMD_LANE): New.
(GOMP_SIMD_VF): New.
(GOMP_SIMD_LAST_LANE): New.
* omp-low.c: Include target.h.
(extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
OMP_CLAUSE_SAFELEN.
(check_omp_nesting_restrictions): Same.
(omp_max_vf): New.
(lower_rec_simd_input_clauses): New.
(lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
OMP_CLAUSE_LINEAR.
(lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
(expand_omp_build_assign): New.
(expand_omp_for_init_counts): New.
(expand_omp_for_init_vars): New.
(extract_omp_for_update_vars): New.
(expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
and rewrite accordingly.
(expand_omp_simd): New.
(expand_omp_for): Use expand_omp_simd.
(lower_omp_for_lastprivate): Unshare vinit when appropriate.
(lower_omp_for): Do not lower the body.
* tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
in their own loops.
* tree-flow.h (find_omp_clause): Remove prototype.
* tree-if-conv.c (main_tree_if_conversion): Run if doing if
conversion, forcing vectorization of the loop, or if
flag_tree_vectorize.
(gate_tree_if_conversion): Similarly.
* tree-inline.c (remap_gimple_stmt): Pass for kind argument to
gimple_build_omp_for.
(copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
* tree-parloops (create_parallel_loop): Pass kind argument to
gimple_build_omp_for.
* tree-pretty-print.c (dump_omp_clause): Add cases for
OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
OMP_CLAUSE__SIMDUID_.
(dump_generic_node): Handle OMP_SIMD.
* tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
unroll OMP_SIMD loops here.
* tree-ssa-loop.c (gate_tree_vectorize): Run if
has_force_vect_loops.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
loop->safelen
(vect_analyze_data_refs): Handle simd loops.
* tree-vect-loop.c (vectorizable_live_operation): Handle
IFN_GOMP_SIMD*.
* tree-vect-stmts.c (vectorizable_call): Handle
IFN_GOMP_SIMD_LANE.
(vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
(vectorizable_load): Same.
* tree-vectorizer.c: Include hash-table.h and
tree-ssa-propagate.h.
(struct simduid_to_vf): New.
(simduid_to_vf::hash): New.
(simduid_to-vf::equal): New.
(struct simd_array_to_simduid): New.
(simd_array_to_simduid::hash): New.
(simd_array_to_simduid::equal): New.
(adjust_simduid_builtins): New.
(struct note_simd_array_uses_struct): New.
(note_simd_array_uses_cb): New.
(note_simd_array_uses): New.
(vectorize_loops): Handle simd hints and adjust simd builtins
accordingly.
* tree-vectorizer.h (struct _stmt_vec_info): Add
simd_lane_access_p field.
(STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
* tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
(omp_clause_code_name): Same.
(walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
* tree.def (OMP_SIMD): New entry.
* tree.h (enum omp_clause_code): Add entries for
OMP_CLAUSE_LINEAR, OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
OMP_CLAUSE__SIMDUID_.
(OMP_CLAUSE_DECL): Adjust range for new clauses.
(OMP_CLAUSE_LINEAR_NO_COPYIN): New.
(OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
(OMP_CLAUSE_LINEAR_STEP): New.
(OMP_CLAUSE_SAFELEN_EXPR): New.
(OMP_CLAUSE__SIMDUID__DECL): New.
(find_omp_clause): New prototype.
cp/
* cp-tree.h (CP_OMP_CLAUSE_INFO): Adjust range for new clauses.

Co-Authored-By: Aldy Hernandez <aldyh@redhat.com>
From-SVN: r202029

11 years agoUpdate Haswell processor detection
H.J. Lu [Tue, 27 Aug 2013 18:11:23 +0000 (18:11 +0000)]
Update Haswell processor detection

* config/i386/driver-i386.c (host_detect_local_cpu): Update
Haswell processor detection.

From-SVN: r202028

11 years agore PR target/57927 (-march=core-avx2 different than -march=native on INTEL Haswell...
Christian Widmer [Tue, 27 Aug 2013 17:24:37 +0000 (17:24 +0000)]
re PR target/57927 (-march=core-avx2  different than -march=native on INTEL Haswell (i7-4700K))

PR target/57927
* config/i386/driver-i386.c (host_detect_local_cpu): Add detection
of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
AVX2 capable processors.

From-SVN: r202026

11 years agoarm_neon.h: Replace all inline asm implementations of vget_low_* with implementations...
Tejas Belagod [Tue, 27 Aug 2013 15:22:10 +0000 (16:22 +0100)]
arm_neon.h: Replace all inline asm implementations of vget_low_* with implementations in...

2013-08-27  Tejas Belagod  <tejas.belagod@arm.com>

        * config/aarch64/arm_neon.h: Replace all inline asm implementations
        of vget_low_* with implementations in terms of other intrinsics.

From-SVN: r202023

11 years agoRemove experimental LRA test
Nick Clifton [Tue, 27 Aug 2013 15:22:07 +0000 (15:22 +0000)]
Remove experimental LRA test

From-SVN: r202022

11 years agore PR middle-end/57219 (__builtin_isinf_sign source comments more restrictive than...
Marc Glisse [Tue, 27 Aug 2013 12:39:21 +0000 (14:39 +0200)]
re PR middle-end/57219 (__builtin_isinf_sign source comments more restrictive than documentation)

2013-08-27  Marc Glisse  <marc.glisse@inria.fr>

PR middle-end/57219
* doc/extend.texi (__builtin_isinf_sign): Restrict the return
values to -1, 0 and 1.

From-SVN: r202021

11 years agoaarch64.md (unspec): Add UNSPEC_SISD_SSHL...
Vidya Praveen [Tue, 27 Aug 2013 10:50:26 +0000 (11:50 +0100)]
aarch64.md (unspec): Add UNSPEC_SISD_SSHL...

gcc/

2013-08-27  Vidya Praveen  <vidyapraveen@arm.com>

* config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
(<optab><mode>3_insn): Remove.
(aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
(aarch64_lshr_sisd_or_int_<mode>3): Likewise.
(aarch64_ashr_sisd_or_int_<mode>3): Likewise.
(define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
(define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
(define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
(define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
(aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
(aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
(ror<mode>3_insn): Likewise.
* config/aarch64/predicates.md (aarch64_simd_register): New.

gcc/testsuite/

2013-08-27  Vidya Praveen  <vidyapraveen@arm.com>

* gcc.target/aarch64/scalar_shift_1.c: New.

From-SVN: r202020

11 years agore PR tree-optimization/57521 (wrong code for expressions in loop at -O3)
Richard Biener [Tue, 27 Aug 2013 10:10:34 +0000 (10:10 +0000)]
re PR tree-optimization/57521 (wrong code for expressions in loop at -O3)

2013-08-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57521
* tree-if-conv.c (if_convertible_bb_p): Verify that at least
one edge is non-critical.
(find_phi_replacement_condition): Make sure to use a non-critical
edge.  Cleanup and remove old bug workarounds.
(bb_postdominates_preds): Remove.
(if_convertible_loop_p_1): Do not compute post-dominators.
(combine_blocks): Do not free post-dominators.
(main_tree_if_conversion): Likewise.
(pass_data_if_conversion): Add TODO_verify_ssa.

* gcc.dg/torture/pr57521.c: New testcase.

From-SVN: r202019

11 years agore PR rtl-optimization/57860 (wrong code for bitwise ops with long long literal on...
Jakub Jelinek [Tue, 27 Aug 2013 09:24:52 +0000 (11:24 +0200)]
re PR rtl-optimization/57860 (wrong code for bitwise ops with long long literal on x86_64-linux (32-bit mode))

PR rtl-optimization/57860
PR rtl-optimization/57861
PR rtl-optimization/57875
PR rtl-optimization/57876
PR rtl-optimization/57877
* gcc.c-torture/execute/pr57860.c: New test.
* gcc.c-torture/execute/pr57861.c: New test.
* gcc.c-torture/execute/pr57875.c: New test.
* gcc.c-torture/execute/pr57876.c: New test.
* gcc.c-torture/execute/pr57877.c: New test.

From-SVN: r202018

11 years agodecl.c (grokfndecl): Remove old bison hack.
Paolo Carlini [Tue, 27 Aug 2013 08:41:09 +0000 (08:41 +0000)]
decl.c (grokfndecl): Remove old bison hack.

2013-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokfndecl): Remove old bison hack.

From-SVN: r202017

11 years ago* config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
DJ Delorie [Tue, 27 Aug 2013 04:22:05 +0000 (00:22 -0400)]
* config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.

From-SVN: r202016

11 years agoMakefile.am: Add regex_scanner.{h,tcc}.
Tim Shen [Tue, 27 Aug 2013 02:49:22 +0000 (02:49 +0000)]
Makefile.am: Add regex_scanner.{h,tcc}.

2013-08-26  Tim Shen  <timshen91@gmail.com>

* include/Makefile.am: Add regex_scanner.{h,tcc}.
* include/Makefile.in: Regenerate.
* include/bits/regex.h (match_search): Handle the `__first == __last`
  situation correctly.
* include/bits/regex_compiler.h: Move _Scanner...
* include/bits/regex_scanner.h: ...to here. New.
* include/bits/regex_compiler.tcc: Move _Scanner...
* include/bits/regex_scanner.tcc: ...to here, too. New.
* include/bits/regex_executor.tcc: Use value instead of reference for
  submatch.
* include/std/regex: Add regex_scanner.h
* testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: New.
* testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: New.
* testsuite/28_regex/algorithms/regex_match/ecma/cstring_hex.cc: New.
* testsuite/28_regex/algorithms/regex_match/ecma/empty_range.cc: New.
* testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: New.

From-SVN: r202015

11 years agofunction.c (assign_parm_find_data_types): Set passed_mode and nominal_mode to the...
Yufeng Zhang [Tue, 27 Aug 2013 02:45:17 +0000 (02:45 +0000)]
function.c (assign_parm_find_data_types): Set passed_mode and nominal_mode to the TYPE_MODE of nominal_type for the built...

gcc/
* function.c (assign_parm_find_data_types): Set passed_mode and
nominal_mode to the TYPE_MODE of nominal_type for the built
pointer type in case of the struct-pass-by-reference.

From-SVN: r202014

11 years agoDaily bump.
GCC Administrator [Tue, 27 Aug 2013 00:17:02 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r202013

11 years agoMove myself from libvtv "Various Reviewers" to libvtv
Caroline Tice [Mon, 26 Aug 2013 22:27:56 +0000 (15:27 -0700)]
Move myself from libvtv "Various Reviewers" to libvtv
"Various Maintainers".

From-SVN: r202010

11 years agoavr.opt (mfract-convert-truncate): New option.
Joern Rennecke [Mon, 26 Aug 2013 16:57:28 +0000 (16:57 +0000)]
avr.opt (mfract-convert-truncate): New option.

        * config/avr/avr.opt (mfract-convert-truncate): New option.
        * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
        is set, round negative fractional integers according to n1169
        when converting to integer types.

From-SVN: r202008

11 years agoAdd PR marker to PR id in ChangeLog.
Joern Rennecke [Mon, 26 Aug 2013 16:54:29 +0000 (17:54 +0100)]
Add PR marker to PR id in ChangeLog.

From-SVN: r202007

11 years agore PR c/35649 (Incorrect printf warning: expect double has float)
Joern Rennecke [Mon, 26 Aug 2013 16:52:19 +0000 (16:52 +0000)]
re PR c/35649 (Incorrect printf warning: expect double has float)

2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
            Joseph Myers  <joseph@codesourcery.com>

        c/35649
        * c-typeck.c (c_common_type): Prefer double_type_node over
        other REAL_TYPE types with the same precision.
        (convert_arguments): Likewise.

Amend patch as suggested:
From:   "Joseph S. Myers" <joseph@codesourcery.com>
In convert_arguments I think you should be comparing TYPE_MAIN_VARIANT
(valtype) against double_type_node and long_double_type_node, rather than
just valtype.

This is PR c/35649 (so include that number in your ChangeLog entry and
close that bug as fixed).

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r202006

11 years agoavr-stdint.h (INT16_TYPE): Change default to "int".
Joern Rennecke [Mon, 26 Aug 2013 16:39:25 +0000 (16:39 +0000)]
avr-stdint.h (INT16_TYPE): Change default to "int".

        * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
        (UINT16_TYPE): Change default to "unsigned int".

From-SVN: r202005

11 years agoc-typeck.c (c_common_type): Prefer double_type_node over other REAL_TYPE types with...
Joern Rennecke [Mon, 26 Aug 2013 16:22:37 +0000 (16:22 +0000)]
c-typeck.c (c_common_type): Prefer double_type_node over other REAL_TYPE types with the same precision.

        * c-typeck.c (c_common_type): Prefer double_type_node over
        other REAL_TYPE types with the same precision.
        (convert_arguments): Likewise.

From-SVN: r202004

11 years agocgraph.c (cgraph_propagate_frequency): Do not assume that virtual methods can not...
Jan Hubicka [Mon, 26 Aug 2013 15:42:10 +0000 (17:42 +0200)]
cgraph.c (cgraph_propagate_frequency): Do not assume that virtual methods can not be called indirectly when...

* cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
methods can not be called indirectly when their address is not taken.

From-SVN: r202003

11 years ago* gimple-fold.c (gimple_get_virt_method_for_binfo): Use ctor_for_folding.
Jan Hubicka [Mon, 26 Aug 2013 15:40:40 +0000 (17:40 +0200)]
* gimple-fold.c (gimple_get_virt_method_for_binfo): Use ctor_for_folding.

From-SVN: r202002

11 years agoipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors can be unshared.
Jan Hubicka [Mon, 26 Aug 2013 15:38:33 +0000 (17:38 +0200)]
ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors can be unshared.

* ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
can be unshared.

From-SVN: r202001

11 years agoreload.c (find_valid_class): Allow classes that do not include FIRST_PSEUDO_REGISTER...
Joern Rennecke [Mon, 26 Aug 2013 15:32:55 +0000 (15:32 +0000)]
reload.c (find_valid_class): Allow classes that do not include FIRST_PSEUDO_REGISTER - 1.

* reload.c (find_valid_class): Allow classes that do not include
FIRST_PSEUDO_REGISTER - 1.

From-SVN: r202000

11 years agocgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting...
Jan Hubicka [Mon, 26 Aug 2013 15:29:28 +0000 (17:29 +0200)]
cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting...

* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
fix edge count/frequency when speculation failed; fix type check
for the direct call.

From-SVN: r201999

11 years ago* ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
Jan Hubicka [Mon, 26 Aug 2013 15:24:41 +0000 (17:24 +0200)]
* ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.

From-SVN: r201998

11 years agoipa-inline-transform.c (inline_transform): Be ready for basic block to be changed...
Jan Hubicka [Mon, 26 Aug 2013 15:23:48 +0000 (17:23 +0200)]
ipa-inline-transform.c (inline_transform): Be ready for basic block to be changed by edge redirection.

* ipa-inline-transform.c (inline_transform): Be ready for basic block
to be changed by edge redirection.

From-SVN: r201997

11 years agocgraph.c (cgraph_speculative_call_info): Fix parameter order and formating; add sanit...
Jan Hubicka [Mon, 26 Aug 2013 13:02:39 +0000 (15:02 +0200)]
cgraph.c (cgraph_speculative_call_info): Fix parameter order and formating; add sanity check.

* cgraph.c (cgraph_speculative_call_info): Fix parameter order and formating;
add sanity check.
(cgraph_resolve_speculation): Add FIXME about scaling profiles.
(cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
* ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
(resolve_noninline_speculation): Update callee keys, too.

From-SVN: r201996

11 years agotree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
Jan Hubicka [Mon, 26 Aug 2013 11:42:03 +0000 (13:42 +0200)]
tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.

* tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
(DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
* cp-tree.h (DECL_CONSTRUCTOR_P, DECL_DESTRUCTOR_P): Use
middle-end flag.

From-SVN: r201994

11 years agoi386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED into proper place.
Joern Rennecke [Mon, 26 Aug 2013 11:04:08 +0000 (11:04 +0000)]
i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED into proper place.

        * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
        into proper place.

From-SVN: r201993

11 years agoi386.c (ix86_return_in_memory): Do not remove ATTRIBUTE_UNUSED on function argument.
Uros Bizjak [Mon, 26 Aug 2013 09:21:51 +0000 (11:21 +0200)]
i386.c (ix86_return_in_memory): Do not remove ATTRIBUTE_UNUSED on function argument.

* config/i386/i386.c (ix86_return_in_memory): Do not
remove ATTRIBUTE_UNUSED on function argument.

From-SVN: r201990

11 years agoReally commit all changes
Gabriel Dos Reis [Mon, 26 Aug 2013 09:15:22 +0000 (09:15 +0000)]
Really commit all changes

From-SVN: r201989

11 years agoi386.c (ix86_debug_options): Remove prototype.
Uros Bizjak [Mon, 26 Aug 2013 09:02:04 +0000 (11:02 +0200)]
i386.c (ix86_debug_options): Remove prototype.

* config/i386/i386.c (ix86_debug_options): Remove prototype.
(x86_64_elf_select_section): Ditto.
(ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
arguments.
(ix86_pass_by_reference): Ditto.
(ix86_return_in_memory): Ditto.
(output_set_got): Ditto.
(ix86_unary_operator_ok): Ditto.
(ix86_expand_builtin): Ditto.

From-SVN: r201988

11 years agoc-pretty-print.h (c_pretty_printer::unary_expression): Now a virtual member function.
Gabriel Dos Reis [Mon, 26 Aug 2013 08:37:24 +0000 (08:37 +0000)]
c-pretty-print.h (c_pretty_printer::unary_expression): Now a virtual member function.

c-family/
* c-pretty-print.h (c_pretty_printer::unary_expression): Now a
virtual member function.
(c_pretty_printer::multiplicative_expression): Likewise.
(c_pretty_printer::conditional_expression): Likewise.
(c_pretty_printer::assignment_expression): Likewise.
(c_pretty_printer::expression): Likewise.
(pp_unary_expression): Adjust.
(pp_multiplicative_expression): Likewise.
(pp_assignment_expression): Likewise.
(pp_conditional_expression): Likewise.
(pp_expression): Likewise.
* c-pretty-print.c (c_pretty_printer::unary_expression): Rename
from pp_c_unary_expression.  Adjust.
(c_pretty_printer::multiplicative_expression): Rename from
pp_c_multiplicative_expression.  Adjust.
(c_pretty_printer::conditional_expression): Rename from
pp_c_conditional_expression.  Adjust.
(c_pretty_printer::assignment_expression): Rename from
pp_c_assignment_expression.  Adjust.
(c_pretty_printer::expression): Rename from pp_c_expression.  Adjust.
(c_pretty_printer::c_pretty_printer): Do not assign to
unary_expression, multiplicative_expression,
conditional_expression, expression.

cp/
* cxx-pretty-print.h (cxx_pretty_printer::unary_expression):
Declare as overrider.
(cxx_pretty_printer::multiplicative_expression): Likewise.
(cxx_pretty_printer::conditional_expression): Likewise.
(cxx_pretty_printer::assignment_expression): Likewise.
(cxx_pretty_printer::expression): Likewise.
* cxx-pretty-print.c (cxx_pretty_printer::unary_expression):
Rename from pp_cxx_unary_expression.  Adjust.
(cxx_pretty_printer::multiplicative_expression): Rename from
pp_cxx_multiplicative_expression.  Adjust.
(cxx_pretty_printer::conditional_expression): Rename from
pp_cxx_conditional_expression.  Adjust.
(cxx_pretty_printer::assignment_expression): Rename from
pp_cxx_assignment_expression.  Adjust.
(cxx_pretty_printer::expression): Rename from pp_cxx_expression.
Adjust.
(cxx_pretty_printer::cxx_pretty_printer): Dot not assign to
unary_expression, multiplicative_expression,
conditional_expression, assignment_expression, expression.

From-SVN: r201987

11 years agoc-pretty-print.h (c_pretty_printer::postfix_expression): Now a virtual member function.
Gabriel Dos Reis [Mon, 26 Aug 2013 03:12:38 +0000 (03:12 +0000)]
c-pretty-print.h (c_pretty_printer::postfix_expression): Now a virtual member function.

c-family/
* c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
virtual member function.
(pp_postfix_expression): Adjust.
(pp_c_postfix_expression): Remove.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
from pp_c_postfix_expression.  Adjust.
(c_pretty_printer::c_pretty_printer): Do not assign to
postfix_expression.

cp/
* cxx-pretty-print.h (cxx_pretty_printer::postfix_expression):
Declare as overrider.
* cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
Rename from pp_cxx_postfix_expression.  Adjust.
(pp_cxx_expression): Use pp_postfix_expression.
(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
postfix_expression.

From-SVN: r201985

11 years agoDaily bump.
GCC Administrator [Mon, 26 Aug 2013 00:16:54 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r201984

11 years agore PR fortran/58146 (Array slice bounds checking)
Thomas Koenig [Sun, 25 Aug 2013 22:55:12 +0000 (22:55 +0000)]
re PR fortran/58146 (Array slice bounds checking)

2013-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/58146
* array.c (gfc_ref_dimen_size):  If possible, use
gfc_dep_difference to calculate array refrence
sizes.  Fall back to integer code otherwise.
* dependency.c (discard_nops).  Move up.
Also discarde widening integer conversions.
(gfc_dep_compare_expr):  Use discard_nops.

2013-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/58146
* gfortran.dg/bounds_check_18.f90:  New test.

From-SVN: r201981

11 years agoc-pretty-print.h (c_pretty_printer::primary_expression): Now a virtua member function.
Gabriel Dos Reis [Sun, 25 Aug 2013 18:05:29 +0000 (18:05 +0000)]
c-pretty-print.h (c_pretty_printer::primary_expression): Now a virtua member function.

c-family/
* c-pretty-print.h (c_pretty_printer::primary_expression): Now a
virtua member function.
(pp_primary_expression): Adjust.
(pp_c_primary_expression): Remove.
* c-pretty-print.c (c_pretty_printer::primary_expression): Rename
from pp_c_primary_expression.  Adjust.
(pp_c_initializer_list): Use pp_primary_expression.
(c_pretty_printer::c_pretty_printer): Do not assign to
primary_expression.

cp/
* cxx-pretty-print.h (cxx_pretty_printer::primary_expression): Now
an overrider of c_pretty_printer::primary_expression.
* cxx-pretty-print.c (cxx_pretty_printer::primary_expression):
Rename from pp_cxx_primary_expression.  Adjust.
(pp_cxx_postfix_expression): Use pp_primary_expression.
(pp_cxx_ctor_initializer): Likewise.
(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
primary_expression.

From-SVN: r201978

11 years agocgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
Jan Hubicka [Sun, 25 Aug 2013 09:47:00 +0000 (11:47 +0200)]
cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.

* cgraph.c (cgraph_turn_edge_to_speculative):
Fix debug output.

From-SVN: r201977

11 years ago* g++.dg/ipa/devirt-14.C: Fix typo.
Jan Hubicka [Sun, 25 Aug 2013 09:45:34 +0000 (11:45 +0200)]
* g++.dg/ipa/devirt-14.C: Fix typo.

From-SVN: r201976

11 years agotree.h (TYPE_FINAL_P, [...]): New macros.
Jan Hubicka [Sun, 25 Aug 2013 09:43:34 +0000 (11:43 +0200)]
tree.h (TYPE_FINAL_P, [...]): New macros.

* tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
(tree_decl_with_vis): Add FINAL field.

* cp-tree.h (struct lang_type_class): Free is_final bit.
(CLASSTYPE_FINAL): Define using TYPE_FINAL_P.
(DECL_FINAL_P): Remove.
* pt.c (instantiate_class_template_1): Guard that CLASSTYPE_FINAL
is called on CLASS_TYPE_P.

From-SVN: r201975

11 years agoc-pretty-print.h (c_pretty_printer::translate_string): Declare.
Gabriel Dos Reis [Sun, 25 Aug 2013 05:51:54 +0000 (05:51 +0000)]
c-pretty-print.h (c_pretty_printer::translate_string): Declare.

c-family/
* c-pretty-print.h (c_pretty_printer::translate_string): Declare.
* c-pretty-print.c (M_): Remove.
(c_pretty_printer::translate_string): Define.
(pp_c_type_specifier): Use it.
(pp_c_primary_expression): Likewise.
(pp_c_expression): Likewise.

cp/
* cxx-pretty-print.c (M_): Remove.
(pp_cxx_unqualified_id): Use translate_string instead of M_.
(pp_cxx_canonical_template_parameter): Likewise.

From-SVN: r201974

11 years agoc-pretty-print.h (c_pretty_printer::id_expression): Now a virtual function.
Gabriel Dos Reis [Sun, 25 Aug 2013 00:24:27 +0000 (00:24 +0000)]
c-pretty-print.h (c_pretty_printer::id_expression): Now a virtual function.

c-family/
* c-pretty-print.h (c_pretty_printer::id_expression): Now a
virtual function.
(pp_c_id_expression): Remove.
(pp_id_expression): Adjust.
* c-pretty-print.c (c_pretty_printer::id_expression): Rename from
pp_c_id_expression.  Adjust.
(pp_c_postfix_expression): Use pp_id_expression.
(c_pretty_printer::c_pretty_printer): Do not assign to id_expression.

cp/
* cxx-pretty-print.h (cxx_pretty_printer::id_expression): Declare.
* cxx-pretty-print.c (cxx_pretty_printer::id_expression): Rename
from pp_cxx_id_expression.  Adjust.
(pp_cxx_userdef_literal): Use pp_id_expression.
(pp_cxx_primary_expression): Likewise.
(pp_cxx_direct_declarator): Likewise.
(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
id_expression.

From-SVN: r201973

11 years agoDaily bump.
GCC Administrator [Sun, 25 Aug 2013 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r201972

11 years agoc-pretty-print.h (c_pretty_printer::constant): Now a virtual member function.
Gabriel Dos Reis [Sat, 24 Aug 2013 22:29:37 +0000 (22:29 +0000)]
c-pretty-print.h (c_pretty_printer::constant): Now a virtual member function.

* c-pretty-print.h (c_pretty_printer::constant): Now a virtual
member function.
(pp_constant): Adjust.
(pp_c_constant): Remove.
* c-pretty-print.c (c_pretty_printer::constant): Rename from
pp_c_constant.  Adjust.
(pp_c_constant)
(pp_c_primary_expression): Call pp_constant in lieu of pp_c_constant.
(c_pretty_printer::c_pretty_printer): Remove assignment to constant.

cp/
* cxx-pretty-print.h (cxx_pretty_printer::constant): Now a member
function, overriding c_pretty_printer::constant.
* cxx-pretty-print.c (cxx_pretty_printer::constant): Rename from
pp_cxx_constant.  Adjust.
(cxx_pretty_printer::cxx_pretty_printer): Do not assign to constant.

From-SVN: r201969

11 years agotree-ssa-pre.c (do_regular_insertion): Include the expression in the debugging dump...
Jeff Law [Sat, 24 Aug 2013 04:48:19 +0000 (22:48 -0600)]
tree-ssa-pre.c (do_regular_insertion): Include the expression in the debugging dump when the expression is fully redundant.

        * tree-ssa-pre.c (do_regular_insertion): Include the expression
        in the debugging dump when the expression is fully redundant.

From-SVN: r201963