platform/upstream/gcc.git
16 years agoacinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Tidy checks in case of POSIX threads.
Paolo Carlini [Thu, 4 Sep 2008 18:57:42 +0000 (18:57 +0000)]
acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Tidy checks in case of POSIX threads.

2008-09-04  Paolo Carlini  <paolo.carlini@oracle.com>

  * acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Tidy checks in case of
POSIX threads.
* configure: Regenerate.

From-SVN: r139994

16 years agore PR middle-end/37243 (IRA causes wrong code generation)
Richard Sandiford [Thu, 4 Sep 2008 18:47:35 +0000 (18:47 +0000)]
re PR middle-end/37243 (IRA causes wrong code generation)

gcc/
PR middle-end/37243
* ira-build.c (form_loop_tree): Reverse BB walk.
(create_bb_allocnos): Likewise.
* ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
(mark_reg_store): Rename to...
(mark_ref_live): ...this and take a df_ref argument instead of
note_stores arguments.  Assert that we have a register.
(mark_reg_clobber): Delete.
(def_conflicts_with_inputs_p): New function.
(mark_reg_conflicts): Delete.
(mark_reg_death): Rename to...
(mark_ref_dead): ...this and take a df_ref argument instead of
a register.  Assert that we have a register.
(process_bb_node_lives): Hoist frequency calculation out of
instruction walk.  Convert from a forwards scan to a backwards scan.
Use DF_REF_USES and DF_REF_DEFS instead of register notes and
note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
(create_allocno_live_ranges): Don't create regs_set.

From-SVN: r139993

16 years agortl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND or REG_LABEL_TARGET.
Ian Lance Taylor [Thu, 4 Sep 2008 17:32:38 +0000 (17:32 +0000)]
rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND or REG_LABEL_TARGET.

./: * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
or REG_LABEL_TARGET.
* calls.c (emit_library_call_value_1): Use MEM_P rather than
comparing MODE with MEM.
* gimple.c (gimple_build_predict): Cast END_PREDICTORS before
comparing with GF_PREDICT_TAKEN.
(gimple_get_lhs): Change code to enum gimple_code.
(gimple_set_lhs): Likewise.
* ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
* omp-low.c (find_omp_clause): Change kind parameter to enum
omp_clause_code.
* tree-flow.h (find_omp_clause): Update declaration.
* regrename.c (clear_dead_regs): Change kind parameter to enum
reg_note.
* reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
GET_MODE.
* see.c (see_get_extension_data): Change return type to enum
entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
(see_gen_normalized_extension): Change extension_code parameter to
enum entry_type.
(see_seek_pre_extension_expr): Change extension_code to enum
entry_type.
(see_merge_one_def_extension): Likewise.
(see_handle_relevant_defs): Likewise.
(see_handle_relevant_uses): Likewise.
(see_analyze_one_def): Likewise.
* tree-cfg.c (need_fake_edge_p): Compare gimple code with
GIMPLE_ASM rather than ASM_EXPR.
* tree-ssa-alias.c (is_escape_site): Compare gimple code with
GIMPLE_RETURN rather than RETURN_EXPR.
* tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
(evaluate_stmt): Likewise.
* tree-vect-analyze.c (vect_analyze_operations): Change relevance
to enum vect_relevant.
(vect_mark_stmts_to_be_vectorized): Change assertion to not
compare gimple codes with tree codes.
cp/:
* parser.c (check_no_duplicate_clause): Change code parameter to
enum omp_clause_code.
fortran/:
* symbol.c (generate_isocbinding_symbol): Compare
gfc_notification_std with ERROR rather than FAILURE.
* resolve.c (check_assumed_size_reference): Compare array type
with AR_FULL rather than DIMEN_ELEMENT.
(resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
FL_VARIABLE.

From-SVN: r139991

16 years agoarm.c (arm_size_rtx_costs): Call cost function.
Paul Brook [Thu, 4 Sep 2008 16:43:24 +0000 (16:43 +0000)]
arm.c (arm_size_rtx_costs): Call cost function.

2008-09-04  Paul Brook  <paul@codesourcery.com>

* config/arm/arm.c (arm_size_rtx_costs): Call cost function.

From-SVN: r139990

16 years agobfin.c (bfin_function_ok_for_sibcall): Restore a null pointer check lost in the recen...
Bernd Schmidt [Thu, 4 Sep 2008 16:10:09 +0000 (16:10 +0000)]
bfin.c (bfin_function_ok_for_sibcall): Restore a null pointer check lost in the recent no-unit-at-a-time patch.

* config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
pointer check lost in the recent no-unit-at-a-time patch.

From-SVN: r139989

16 years agore PR middle-end/37243 (IRA causes wrong code generation)
H.J. Lu [Thu, 4 Sep 2008 15:46:05 +0000 (15:46 +0000)]
re PR middle-end/37243 (IRA causes wrong code generation)

2008-09-04  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/37243
* gfortran.dg/pr37243.f: New.

From-SVN: r139987

16 years agomutex (once_flag): Construct __gthread_once_t in a temporary variable before assignin...
Chris Fairles [Thu, 4 Sep 2008 14:35:54 +0000 (14:35 +0000)]
mutex (once_flag): Construct __gthread_once_t in a temporary variable before assigning to _M_once...

2008-09-04  Chris Fairles  <chris.fairles@gmail.com>

        * include/std/mutex (once_flag): Construct __gthread_once_t in a
temporary variable before assigning to _M_once to avoid initialization
errors.

From-SVN: r139986

16 years agore PR middle-end/37343 (ICE in expand_expr_real_1, at expr.c:7290)
Jan Hubicka [Thu, 4 Sep 2008 10:45:57 +0000 (12:45 +0200)]
re PR middle-end/37343 (ICE in expand_expr_real_1, at expr.c:7290)

PR middle-end/37343
* tree-switch-conversion.c (check_final_bb): Accept only IP
invariants.
* g++.dg/torture/pr37343.C New file.

From-SVN: r139983

16 years agoslp-perm-1.c: Add call to check_vect.
Ira Rosen [Thu, 4 Sep 2008 10:41:50 +0000 (10:41 +0000)]
slp-perm-1.c: Add call to check_vect.

        * gcc.dg/vect/slp-perm-1.c: Add call to check_vect.
        * gcc.dg/vect/slp-perm-2.c, gcc.dg/vect/slp-perm-3.c,
        gcc.dg/vect/slp-perm-4.c, gcc.dg/vect/slp-perm-5.c,
        gcc.dg/vect/slp-perm-6.c, gcc.dg/vect/slp-perm-7.c,
        gcc.dg/vect/slp-perm-8.c, gcc.dg/vect/slp-perm-9.c: Likewise.

From-SVN: r139982

16 years agotree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Break out from ...
Jan Hubicka [Thu, 4 Sep 2008 10:34:35 +0000 (12:34 +0200)]
tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Break out from ...

* tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
Break out from ...
(vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
using_ranges argument.
(vrp_evaluate_conditional): Avoid bogus warning for type range.
(vrp_visit_cond_stmt): Update call of
vrp_evaluate_conditional_warnv_with_ops

From-SVN: r139981

16 years agore PR tree-optimization/37345 (Segfault in decl_function_context (TYPE_MAIN_VARIANT))
Jan Hubicka [Thu, 4 Sep 2008 10:30:26 +0000 (12:30 +0200)]
re PR tree-optimization/37345 (Segfault in decl_function_context (TYPE_MAIN_VARIANT))

PR tree-optimization/37345
PR tree-optimization/37358
PR tree-optimization/37357
* tree.c (build_function_type_skip_args): Build distinct type copy;
set TYPE_CONTEXT.
(build_function_decl_skip_args): Set type of new decl not orig decl;
clear DECL_VINDEX for methods turned into functions.

From-SVN: r139980

16 years agoconfigure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
Nick Clifton [Thu, 4 Sep 2008 09:43:08 +0000 (09:43 +0000)]
configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.

        * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler
        check.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
        alignment field, if it is supported.

From-SVN: r139979

16 years agot-mingw32 (SHLIB_LC): Change order of import libraries.
Kai Tietz [Thu, 4 Sep 2008 08:25:25 +0000 (08:25 +0000)]
t-mingw32 (SHLIB_LC): Change order of import libraries.

2008-09-04  Kai Tietz  <kai.tietz@onevision.com>

* config/i386/t-mingw32 (SHLIB_LC): Change order of import
libraries.

From-SVN: r139977

16 years agoconfigure.ac (--with-cloog-polylib): New.
Sebastian Pop [Thu, 4 Sep 2008 05:57:10 +0000 (05:57 +0000)]
configure.ac (--with-cloog-polylib): New.

2008-09-03  Sebastian Pop  <sebastian.pop@amd.com>

* configure.ac (--with-cloog-polylib): New.
(--disable-cloog-version-check): New.
(--disable-ppl-version-check): New.
* configure: Re-generate.

From-SVN: r139973

16 years ago2008-09-03 Tobias Grosser <grosser@fim.uni-passau.de>
Tobias Grosser [Thu, 4 Sep 2008 01:15:41 +0000 (01:15 +0000)]
2008-09-03  Tobias Grosser  <grosser@fim.uni-passau.de>

* gcc/testsuite/lib/target-supports.exp
(check_effective_target_fgraphite): Fix test. Graphite is only available
with -O1.

From-SVN: r139970

16 years ago[multiple changes]
David Edelsohn [Thu, 4 Sep 2008 01:03:38 +0000 (21:03 -0400)]
[multiple changes]

2008-09-03  David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.c (processor_target_table): Do not
        enable VMX for POWER6.

2008-09-03  Anton Blanchard  <anton@samba.org>

        * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
        emit memory barrier before operation.

From-SVN: r139969

16 years agognu.ver: Also export __once_functor_lock...
Paolo Carlini [Thu, 4 Sep 2008 00:57:57 +0000 (00:57 +0000)]
gnu.ver: Also export __once_functor_lock...

2008-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

* config/abi/pre/gnu.ver: Also export __once_functor_lock; tighten
GLIBCXX_3.4 exports (necessary in case of undef _GLIBCXX_HAVE_TLS).

* Makefile.in: Regenerate.
* src/Makefile.in: Likewise.
* doc/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* libmath/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.

From-SVN: r139968

16 years agoDaily bump.
GCC Administrator [Thu, 4 Sep 2008 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139966

16 years agoacinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Fix typo in last commit, check _POSIX_TIMEOU...
Paolo Carlini [Wed, 3 Sep 2008 22:50:59 +0000 (22:50 +0000)]
acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Fix typo in last commit, check _POSIX_TIMEOUTS, not _POSIX_TIMERS.

2008-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

* acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Fix typo in last commit,
check _POSIX_TIMEOUTS, not _POSIX_TIMERS.
* configure: Regenerate.

From-SVN: r139963

16 years agore PR testsuite/37325 (Visibility test fails)
John David Anglin [Wed, 3 Sep 2008 22:50:07 +0000 (22:50 +0000)]
re PR testsuite/37325 (Visibility test fails)

PR testsuite/37325
* config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
default_elf_asm_output_external.

From-SVN: r139962

16 years agoacinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Check _POSIX_TIMERS too.
Paolo Carlini [Wed, 3 Sep 2008 22:31:29 +0000 (22:31 +0000)]
acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Check _POSIX_TIMERS too.

2008-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

* acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Check _POSIX_TIMERS too.
* configure: Regenerate.

From-SVN: r139961

16 years agovector-4.c: Add -mavx for x86.
H.J. Lu [Wed, 3 Sep 2008 22:08:03 +0000 (22:08 +0000)]
vector-4.c: Add -mavx for x86.

2008-09-03  H.J. Lu  <hongjiu.lu@intel.com>

* gcc.c-torture/compile/vector-4.c: Add -mavx for x86.

* gcc.target/i386/avx-3.c: Require DFP support.

From-SVN: r139960

16 years agocondition_variable: Use new deleted ctors.
Chris Fairles [Wed, 3 Sep 2008 22:02:04 +0000 (22:02 +0000)]
condition_variable: Use new deleted ctors.

2008-09-03  Chris Fairles  <chris.fairles@gmail.com>

        * include/std/condition_variable: Use new deleted ctors.
        * include/std/mutex: Likewise plus implement timed_mutex,
recursive_timed_mutex and call_once.
* src/condition_variable.cc: Implement wait(). Use gthread types.
Remove _GTHREADS_HAS_COND checks in favor of global
_GLIBCXX_HAS_GTHREADS.
* src/mutex.cc (call_once): Implementation using TLS with mutex
fallback.
* config/abi/pre/gnu.ver: Add exported symbols.
* testsuite/lib/libstdc++.exp (check_v3_target_gthreads): New.
* testsuite/lib/dg-options.exp (dg-require-gthreads): Likewise.
* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Use
dg-require-gthreads and dg-require-cstdint.
* testsuite/30_threads/lock_guard/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
        * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
Likewise.
        * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/unique_lock/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
        * testsuite/30_threads/mutex/cons/assign_neg.cc: Also adjust dg-error
lines for deleted members.
        * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/call_once/once_flag.cc: New.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise
* testsuite/30_threads/condition_variable/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.

From-SVN: r139959

16 years agore PR c++/37348 (internal compiler error: tree check: expected var_decl, have field_d...
Jakub Jelinek [Wed, 3 Sep 2008 20:34:35 +0000 (22:34 +0200)]
re PR c++/37348 (internal compiler error: tree check: expected var_decl, have field_decl in cp_finish_decl, at cp/decl.c:5461)

PR c++/37348
* decl.c (cp_finish_decl): Only set
DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL.

* g++.dg/parse/crash45.C: New test.

From-SVN: r139956

16 years agore PR c++/37189 (OpenMP task construct with implicit firstprivate variables ICEs)
Jakub Jelinek [Wed, 3 Sep 2008 20:33:21 +0000 (22:33 +0200)]
re PR c++/37189 (OpenMP task construct with implicit firstprivate variables ICEs)

PR c++/37189
* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New
extern decls.
* decl2.c (mark_used): If defer_mark_used_calls, push decl into
deferred_mark_used_calls vector and exit early.
* decl.c (defer_mark_used_calls, deferred_mark_used_calls): New
variables.
(finish_function): Set defer_mark_used_calls for the duration of the
function.  Call mark_used on any queued decls.

* g++.dg/gomp/pr37189.C: New test.

From-SVN: r139955

16 years agore PR debug/37322 (FAIL: gfortran.dg/debug/pr35154-dwarf2.f)
Jakub Jelinek [Wed, 3 Sep 2008 20:28:52 +0000 (22:28 +0200)]
re PR debug/37322 (FAIL: gfortran.dg/debug/pr35154-dwarf2.f)

PR debug/37322
* gfortran.dg/debug/pr35154-dwarf2.f: Fix up scan-assembler regexps.

From-SVN: r139954

16 years agoh8300.c (expand_a_shift): Avoid invalid RTL sharing.
Jeff Law [Wed, 3 Sep 2008 20:22:49 +0000 (14:22 -0600)]
h8300.c (expand_a_shift): Avoid invalid RTL sharing.

* h8300.c (expand_a_shift): Avoid invalid RTL sharing.

From-SVN: r139953

16 years agore PR middle-end/37243 (IRA causes wrong code generation)
Vladimir Makarov [Wed, 3 Sep 2008 20:20:57 +0000 (20:20 +0000)]
re PR middle-end/37243 (IRA causes wrong code generation)

2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-opt/37243

* ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
all_allocnos.

* ira-color.c (print_loop_title): Use all_allocnos.
(color_pass): Ditto.  Don't add border_allocnos.  Check that
subloop allocno in the correspdoning bitmap all_allocnos.

* ira-emit.c (change_loop): Use all_allocnos.

* ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
Ditto.
(ira_create_allocno): Set up all_allocnos bit for the created
allocno.
(create_cap_allocno): Remove setting mentioned_allocnos.
(create_insn_allocnos): Ditto.
(remove_unnecessary_allocnos): Use all_allocnos.
(check_allocno_creation): Check that allocnos are in the
corresponding bitmap all_allocnos.

From-SVN: r139952

16 years agoalpha.c (alpha_split_lock_test_and_set): Move memory barrier to below the test-and...
Richard Henderson [Wed, 3 Sep 2008 20:15:27 +0000 (13:15 -0700)]
alpha.c (alpha_split_lock_test_and_set): Move memory barrier to below the test-and-set.

        * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
        memory barrier to below the test-and-set.
        (alpha_split_lock_test_and_set_12): Likewise.

From-SVN: r139950

16 years agore PR middle-end/37243 (IRA causes wrong code generation)
Vladimir Makarov [Wed, 3 Sep 2008 20:12:27 +0000 (20:12 +0000)]
re PR middle-end/37243 (IRA causes wrong code generation)

2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-opt/37243

* ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
(process_regs_for_copy): Process subregs.  Refine check when cost
is taken into account in ira-costs.c.
(process_reg_shuffles): Use REG_SUBREG_P.
(add_insn_allocno_copies): Ditto.  Ignore modes.

* ira-color.c (conflict_allocno_vec): New.
(COST_HOP_DIVISOR): New macro.
(update_copy_costs_1): Use it.
(update_conflict_hard_regno_costs): New function.
(assign_hard_reg): Use it.
(ira_color): Allocate and free conflict_allocno_vec.

From-SVN: r139949

16 years agore PR rtl-optimization/37296 (Bootstrap failure compiling libgcc)
Vladimir Makarov [Wed, 3 Sep 2008 19:49:30 +0000 (19:49 +0000)]
re PR rtl-optimization/37296 (Bootstrap failure compiling libgcc)

2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-opt/37296

* ira-int.h (ira_sort_insn_chain): Remove.

* ira.c (basic_block_order_nums, chain_insn_order,
chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
(ira): Don't call ira_sort_insn_chain.

* reload1.c (reload): Don't call ira_sort_insn_chain.

From-SVN: r139948

16 years agore PR middle-end/36445 (ICE in expand_expr_real_1 with -O1 with vector registers)
Andrew Pinski [Wed, 3 Sep 2008 19:27:35 +0000 (19:27 +0000)]
re PR middle-end/36445 (ICE in expand_expr_real_1 with -O1 with vector registers)

2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/36445
        * g++.dg/torture/pr36445.C: New test.

From-SVN: r139947

16 years agore PR middle-end/37293 (r139762 breaks libstdc++ build on darwin)
Andrew Pinski [Wed, 3 Sep 2008 18:48:27 +0000 (18:48 +0000)]
re PR middle-end/37293 (r139762 breaks libstdc++ build on darwin)

2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/37293
        * cgraphunit.c (update_call_expr): Remove eh regions from statements
        which become non throw.
        (cgraph_function_versioning): Also clear DECL_WEAK.  Call
        update_call_expr after updating the flags on the decl.

2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/37293
        * g++.dg/torture/ipa-cp-1.C: New test.

From-SVN: r139946

16 years agore PR tree-optimization/37315 (gcc.c-torture/execute/931018-1.c int-compare.c ieee...
Jan Hubicka [Wed, 3 Sep 2008 18:16:26 +0000 (20:16 +0200)]
re PR tree-optimization/37315 (gcc.c-torture/execute/931018-1.c  int-compare.c ieee/inf-2.c mzero6.c)

PR tree-optimization/37315
* cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
* cgraphunit.c (verify_cgraph_node): drop gimple_body check.
(cgraph_analyze_functions): Use node->analyzed
(cgraph_mark_functions_to_output): Likewise.
(cgraph_expand_function): All functions can be released after
expanding.
(cgraph_optimize): Use gimple_has_body_p.
* ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
(cgraph_decide_inlining_incrementally): Likewise.
(inline_transform): Inline transform.
* tree-inline.c (initialize_cfun): Do now shallow copy structure;
copy fields needed.
(inlinable_function_p): Drop gimple_body check.
(expand_call_inline): Use gimple_has_body_p.
* gimple.c (gimple_has_body_p): New.
* gimple.h (gimple_has_body_p): Add prototype.
* tree-cfg.c (execute_build_cfg): Remove gimple_body.
(dump_function_to_file): Use gimple_has_body_p check.

From-SVN: r139945

16 years agocondition_variable: Use new deleted ctors.
Chris Fairles [Wed, 3 Sep 2008 17:47:32 +0000 (17:47 +0000)]
condition_variable: Use new deleted ctors.

2008-09-03  Chris Fairles  <chris.fairles@gmail.com>

        * include/std/condition_variable: Use new deleted ctors.
        * include/std/mutex: Likewise plus implement timed_mutex,
recursive_timed_mutex and call_once.
* src/condition_variable.cc: Implement wait(). Use gthread types.
Remove _GTHREADS_HAS_COND checks in favor of global
_GLIBCXX_HAS_GTHREADS.
* src/mutex.cc (call_once): Implementation using TLS with mutex
fallback.
* config/abi/pre/gnu.ver: Add exported symbols.
* testsuite/lib/libstdc++.exp (check_v3_target_gthreads): New.
* testsuite/lib/dg-options.exp (dg-require-gthreads): Likewise.
* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Use
dg-require-gthreads and dg-require-cstdint.
* testsuite/30_threads/lock_guard/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
        * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
Likewise.
        * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/unique_lock/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
        * testsuite/30_threads/mutex/cons/assign_neg.cc: Also adjust dg-error
lines for deleted members.
        * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/call_once/once_flag.cc: New.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise
* testsuite/30_threads/condition_variable/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.

From-SVN: r139944

16 years agocondition_variable: Use new deleted ctors.
Chris Fairles [Wed, 3 Sep 2008 17:46:09 +0000 (17:46 +0000)]
condition_variable: Use new deleted ctors.

2008-09-03  Chris Fairles  <chris.fairles@gmail.com>

        * include/std/condition_variable: Use new deleted ctors.
        * include/std/mutex: Likewise plus implement timed_mutex,
recursive_timed_mutex and call_once.
* src/condition_variable.cc: Implement wait(). Use gthread types.
Remove _GTHREADS_HAS_COND checks in favor of global
_GLIBCXX_HAS_GTHREADS.
* src/mutex.cc (call_once): Implementation using TLS with mutex
fallback.
* config/abi/pre/gnu.ver: Add exported symbols.
* testsuite/lib/libstdc++.exp (check_v3_target_gthreads): New.
* testsuite/lib/dg-options.exp (dg-require-gthreads): Likewise.
* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Use
dg-require-gthreads and dg-require-cstdint.
* testsuite/30_threads/lock_guard/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
        * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
Likewise.
        * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/unique_lock/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
        * testsuite/30_threads/mutex/cons/assign_neg.cc: Also adjust dg-error
lines for deleted members.
        * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
        * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/call_once/once_flag.cc: New.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise
* testsuite/30_threads/condition_variable/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.

From-SVN: r139943

16 years agoFix up PR number - PR c++/37346
Jakub Jelinek [Wed, 3 Sep 2008 17:30:35 +0000 (19:30 +0200)]
Fix up PR number - PR c++/37346

From-SVN: r139941

16 years agoconfigure.ac: Always pass -DCLOOG_PPL_BACKEND to the cloog test.
Richard Guenther [Wed, 3 Sep 2008 16:08:05 +0000 (16:08 +0000)]
configure.ac: Always pass -DCLOOG_PPL_BACKEND to the cloog test.

2008-09-03  Richard Guenther  <rguenther@suse.de>

* configure.ac: Always pass -DCLOOG_PPL_BACKEND to the
cloog test.
* configure: Re-generate.

From-SVN: r139940

16 years ago* g++.dg/ext/java-2.C: Disable on AIX.
David Edelsohn [Wed, 3 Sep 2008 13:18:42 +0000 (13:18 +0000)]
* g++.dg/ext/java-2.C: Disable on AIX.

From-SVN: r139938

16 years agore PR target/37436 (arm-cross-g++. internal compiler error: in extract_insn, at recog...
Jakub Jelinek [Wed, 3 Sep 2008 13:03:56 +0000 (15:03 +0200)]
re PR target/37436 (arm-cross-g++. internal compiler error: in extract_insn, at recog.c:1990)

PR c++/37436
* gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
substatements.
* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.

* g++.dg/gomp/pr37436.C: New test.

From-SVN: r139937

16 years agogcc/
Bernd Schmidt [Wed, 3 Sep 2008 12:23:19 +0000 (12:23 +0000)]
gcc/
From Michael Frysinger  <michael.frysinger@analog.com>
* config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
for bf538.

gcc/testsuite/
From Mike Frysinger  <michael.frysinger@analog.com>
* gcc.target/bfin/mcpu-bf522.c: Check SILICON_REVISION is 0x0001.
* gcc.target/bfin/mcpu-bf523.c: Likewise.
* gcc.target/bfin/mcpu-bf524.c: Likewise.
* gcc.target/bfin/mcpu-bf525.c: Likewise.
* gcc.target/bfin/mcpu-bf526.c: Likewise.
* gcc.target/bfin/mcpu-bf527.c: Likewise.
* gcc.target/bfin/mcpu-bf542.c: Likewise.
* gcc.target/bfin/mcpu-bf544.c: Likewise.
* gcc.target/bfin/mcpu-bf547.c: Likewise.
* gcc.target/bfin/mcpu-bf548.c: Likewise.
* gcc.target/bfin/mcpu-bf549.c: Likewise.

From-SVN: r139935

16 years agoMove picochip directory to correct location.
Paul Brook [Wed, 3 Sep 2008 12:19:34 +0000 (12:19 +0000)]
Move picochip directory to correct location.

From-SVN: r139934

16 years agoAdd picoChip port.
Hari Sandanagobalane [Wed, 3 Sep 2008 12:10:49 +0000 (12:10 +0000)]
Add picoChip port.

2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>

Add picoChip port.
* MAINTAINERS: Add picoChip maintainers.
libgcc/
* config.host: Add picochip-*-*.
gcc/
* doc/extend.texi: Document picoChip builtin functions.
* doc/invoke.texi: Document picoChip options.
* doc/contrib.texi: Add picoChip contribution.
* doc/md.texi: Document picoChip constraints.
* config.gcc: Add picochip-*-*.
* config/picochip/: Add new port.

From-SVN: r139932

16 years agore PR ada/37328 (ACATS la14021 ICE in gimple_assign_set_rhs1, at gimple.h:1747)
Richard Guenther [Wed, 3 Sep 2008 11:35:18 +0000 (11:35 +0000)]
re PR ada/37328 (ACATS la14021 ICE in gimple_assign_set_rhs1, at gimple.h:1747)

2008-09-03  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/37328
* tree-sra.c (sra_build_assignment): Gimplify properly.
(generate_copy_inout): Take the correct stmt as definition,
remove bogus assert.

From-SVN: r139931

16 years agoFrom Michael Frysinger <michael.frysinger@analog.com>
Bernd Schmidt [Wed, 3 Sep 2008 09:49:29 +0000 (09:49 +0000)]
From Michael Frysinger  <michael.frysinger@analog.com>
* config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.

From-SVN: r139930

16 years agobfin.c (bfin_expand_prologue): Honour no_stack_limit attribute.
Bernd Schmidt [Wed, 3 Sep 2008 09:32:18 +0000 (09:32 +0000)]
bfin.c (bfin_expand_prologue): Honour no_stack_limit attribute.

* config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
attribute.

From-SVN: r139928

16 years agogthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
Danny Smith [Wed, 3 Sep 2008 06:07:34 +0000 (06:07 +0000)]
gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.

* gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is
defined.
(__gthread_setspecific): Revert 2008-08-31 change to
__GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API
case.

From-SVN: r139927

16 years agore PR c++/37208 (C++0x deleted functions and SFINAE)
Jason Merrill [Wed, 3 Sep 2008 04:10:27 +0000 (00:10 -0400)]
re PR c++/37208 (C++0x deleted functions and SFINAE)

        PR c++/37208
        * call.c (build_over_call): Make =delete work with SFINAE.
        * class.c (resolve_address_of_overloaded_function): Likewise.

        * cp-tree.h (struct lang_decl_flags): Rename threadprivate_p to
        threadprivate_or_deleted_p.
        (CP_DECL_THREADPRIVATE_P): Adjust.
        (DECL_DELETED_FN): Likewise.
        (SD_UNINITIALIZED, SD_INITIALIZED, SD_DEFAULTED): New macros.
        (SD_DELETED): New macro.
        * parser.c (cp_parser_init_declarator): Use them.
        * decl.c (start_decl): Use them.

        * decl2.c (mark_used): Give =deleted error even in sizeof.

        * typeck2.c (check_narrowing): Downgrade narrowing error to
        permerror.

From-SVN: r139926

16 years agodiagnostic.c (error_at): New.
Aldy Hernandez [Wed, 3 Sep 2008 01:00:04 +0000 (01:00 +0000)]
diagnostic.c (error_at): New.

        * diagnostic.c (error_at): New.
        * toplev.h (error_at): New prototype.
        * c-typeck.c (build_array_ref): Call error_at instead of error.
        Pass location to pedwarn.
cp/
        * typeck.c (build_array_ref): Use new location argument.
        * class.c (build_vtbl_ref_1): Pass location to build_array_ref.
        * call.c (build_new_op): Same.
        * decl2.c (grok_array_decl): Same.
        * cp-tree.h (build_array_ref): Add location argument to prototype.

From-SVN: r139924

16 years agoDaily bump.
GCC Administrator [Wed, 3 Sep 2008 00:16:33 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139922

16 years agopr33009.c: xfail on hppa*-*-*.
John David Anglin [Tue, 2 Sep 2008 23:43:21 +0000 (23:43 +0000)]
pr33009.c: xfail on hppa*-*-*.

* gcc.c-torture/compile/pr33009.c: xfail on hppa*-*-*.
* gcc.c-torture/compile/pr11832.c: Likewise.

From-SVN: r139919

16 years agoFix previous changelog entry.
Adam Nemet [Tue, 2 Sep 2008 21:45:45 +0000 (21:45 +0000)]
Fix previous changelog entry.

From-SVN: r139918

16 years ago* sel-sched.c (fur_orig_expr_found): Mark arguments unused.
Adam Nemet [Tue, 2 Sep 2008 21:41:16 +0000 (21:41 +0000)]
* sel-sched.c (fur_orig_expr_found): Mark arguments unused.

From-SVN: r139916

16 years agoAdd the Graphite merge entry.
Sebastian Pop [Tue, 2 Sep 2008 20:02:37 +0000 (20:02 +0000)]
Add the Graphite merge entry.

From-SVN: r139912

16 years agodwarf2out.c (tree_add_const_value_attribute): Only handle VAR_DECL and CONST_DECL.
Jakub Jelinek [Tue, 2 Sep 2008 19:59:58 +0000 (21:59 +0200)]
dwarf2out.c (tree_add_const_value_attribute): Only handle VAR_DECL and CONST_DECL.

* dwarf2out.c (tree_add_const_value_attribute): Only handle
VAR_DECL and CONST_DECL.

From-SVN: r139911

16 years agoi386.c (X86_64_VARARGS_SIZE): Removed.
H.J. Lu [Tue, 2 Sep 2008 19:49:41 +0000 (19:49 +0000)]
i386.c (X86_64_VARARGS_SIZE): Removed.

* config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
(setup_incoming_varargs_64): Assume cum != NULL. Set/check
ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
Don't set ix86_save_varrargs_registers.
(ix86_setup_incoming_varargs): Assume cum != NULL.
(ix86_va_start): Check ix86_varargs_gpr_size and
ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
from frame pointer if ix86_varargs_gpr_size == 0.
(ix86_compute_frame_layout): Updated.
* config/i386/i386.h (ix86_save_varrargs_registers): Removed.
(ix86_varargs_gpr_size): Define.
(ix86_varargs_fpr_size): Likewise.
(machine_function): Remove save_varrargs_registers.
Add varargs_gpr_size and varargs_fpr_size.

* gcc.target/i386/amd64-abi-3.c: New test.
* gcc.target/i386/amd64-abi-4.c: Likewise.
* gcc.target/i386/amd64-abi-5.c: Likewise.
* gcc.target/i386/amd64-abi-6.c: Likewise.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r139910

16 years agoalpha.c (va_list_skip_additions, [...]): Tuplify.
Jakub Jelinek [Tue, 2 Sep 2008 19:28:34 +0000 (21:28 +0200)]
alpha.c (va_list_skip_additions, [...]): Tuplify.

* config/alpha/alpha.c (va_list_skip_additions,
alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
(alpha_gimplify_va_arg): Call unshare_expr on second use of
offset_field.

From-SVN: r139909

16 years agore PR tree-optimization/36766 (natGC.cc:229: internal compiler error: Segmentation...
Jakub Jelinek [Tue, 2 Sep 2008 19:13:47 +0000 (21:13 +0200)]
re PR tree-optimization/36766 (natGC.cc:229: internal compiler error: Segmentation fault)

PR tree-optimization/36766
* tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
for already removed basic blocks.

* g++.dg/tree-ssa/pr36766.C: New test.

From-SVN: r139908

16 years agore PR testsuite/36332 (FAIL: gcc.dg/torture/type-generic-1.c execution test on power...
Jakub Jelinek [Tue, 2 Sep 2008 18:46:29 +0000 (20:46 +0200)]
re PR testsuite/36332 (FAIL: gcc.dg/torture/type-generic-1.c  execution test on powerpc-*)

PR target/36332
* real.c (real_maxval): Clear a lower bit to make real_maxval
match get_max_float for IBM long double format.

* gcc.c-torture/execute/ieee/pr36332.c: New test.

From-SVN: r139906

16 years agoconfigure.ac: Use m4_quote to quote the expansion of m4_do.
Andreas Schwab [Tue, 2 Sep 2008 18:43:30 +0000 (18:43 +0000)]
configure.ac: Use m4_quote to quote the expansion of m4_do.

* configure.ac: Use m4_quote to quote the expansion of m4_do.
* configure: Regenerate.

From-SVN: r139905

16 years agore PR c/37171 (Canonical spelling optimization dependency)
Jakub Jelinek [Tue, 2 Sep 2008 18:42:48 +0000 (20:42 +0200)]
re PR c/37171 (Canonical spelling optimization dependency)

PR c/37171
* g++.dg/ext/attrib34.C: New test.

From-SVN: r139904

16 years agosimplify-rtx.c (simplify_binary_operation_1): Check for CONST...
Richard Sandiford [Tue, 2 Sep 2008 18:39:32 +0000 (18:39 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Check for CONST...

gcc/
* simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
checking for a non-VOID CONSTANT_P.

From-SVN: r139903

16 years ago* predict.c (pass_strip_predict_hints): Avoid bugs dump file.
Jan Hubicka [Tue, 2 Sep 2008 18:10:54 +0000 (20:10 +0200)]
* predict.c (pass_strip_predict_hints): Avoid bugs dump file.

From-SVN: r139898

16 years ago* expmed.c (expand_divmod): Fix test of smod_pow2_cheap and sdiv_pow2_cheap
Jan Hubicka [Tue, 2 Sep 2008 18:09:05 +0000 (20:09 +0200)]
* expmed.c (expand_divmod): Fix test of smod_pow2_cheap and sdiv_pow2_cheap

From-SVN: r139897

16 years agoexpr.c (emit_group_store): Don't assert stack temp mode size.
H.J. Lu [Tue, 2 Sep 2008 16:36:49 +0000 (16:36 +0000)]
expr.c (emit_group_store): Don't assert stack temp mode size.

2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>

* expr.c (emit_group_store): Don't assert stack temp mode size.

From-SVN: r139894

16 years agobackport: configure: Regenerate.
Sebastian Pop [Tue, 2 Sep 2008 16:31:04 +0000 (16:31 +0000)]
backport: configure: Regenerate.

2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
    Tobias Grosser  <grosser@fim.uni-passau.de>
    Jan Sjodin  <jan.sjodin@amd.com>
    Harsha Jagasia  <harsha.jagasia@amd.com>
    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
    Konrad Trifunovic  <konrad.trifunovic@inria.fr>
    Adrien Eliche  <aeliche@isty.uvsq.fr>

Merge from graphite branch.
* configure: Regenerate.
* Makefile.in: Regenerate.
* configure.ac (host_libs): Add ppl and cloog.
Add checks for PPL and CLooG.
* Makefile.def (ppl, cloog): Added modules and dependences.
* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.

gcc/
* graphite.c: New.
* graphite.h: New.
* tree-loop-linear.c (perfect_loop_nest_depth): Export.
* doc/invoke.texi (-floop-block, -floop-interchange,
-floop-strip-mine): Document new flags.
* tree-into-ssa.c (gimple_vec): Moved...
* tree-loop-distribution.c (rdg_component): Moved...
* cfgloopmanip.c: Include tree-flow.h.
(update_dominators_in_loop): New.
(create_empty_if_region_on_edge): New.
(create_empty_loop_on_edge): New.
(loopify): Use update_dominators_in_loop.
* tree-pass.h (pass_graphite_transforms): Declared.
* configure: Regenerate.
* tree-phinodes.c (make_phi_node): Export.
(add_phi_node_to_bb): New, split from create_phi_node.
* tree-chrec.c (for_each_scev_op): New.
* tree-chrec.h (for_each_scev_op): Declared.
* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
(remove_statement): Call get_phi_with_result.
* config.in (HAVE_cloog): Undef.
* gdbinit.in (pgg): New.
* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
* tree-ssa-loop.c (graphite_transforms): New.
(gate_graphite_transforms): New.
(pass_graphite_transforms): New.
* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
HAVE_cloog): Defined.
* tree-vectorizer.c (rename_variables_in_bb): Export.
* tree-data-ref.c (dr_may_alias_p): Export.
(stmt_simple_memref_p): New.
(find_data_references_in_stmt): Export.
(find_data_references_in_loop): Export.
(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
(create_rdg_vertices): Export.
(build_empty_rdg): New.
(build_rdg): Call build_empty_rdg.  Free dependence_relations.
* tree-data-ref.h (rdg_component): ... here.
(scop_p): New.
(struct data_reference): Add a field scop.
(DR_SCOP): New.
(find_data_references_in_loop): Declared.
(find_data_references_in_stmt): Declared.
(create_rdg_vertices): Declared.
(dr_may_alias_p): Declared.
(stmt_simple_memref_p): Declared.
(struct rdg_edge): Add a field ddr_p relation.
(build_empty_rdg): Declared.
* lambda.h (lambda_matrix): Declare a VEC of.
(find_induction_var_from_exit_cond): Declared.
(lambda_vector_compare): New.
* common.opt (fgraphite, floop-strip-mine,
floop-interchange, floop-block): New flags.
* lambda-code.c (find_induction_var_from_exit_cond): Export.
* cfgloop.c (is_loop_exit): New.
* cfgloop.h (is_loop_exit): Declared.
(create_empty_if_region_on_edge): Declared.
(create_empty_loop_on_edge): Declared.
* tree-flow.h (add_phi_node_to_bb): Declared.
(make_phi_node): Declared.
(rename_variables_in_bb): Declared.
(perfect_loop_nest_depth): Declared.
(graphite_transform_loops): Declared.
* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
(graphite.o-warn): Add -Wno-error.
(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
(INCLUDES): Add PPLINC, CLOOGINC.
(OBJS-common): Add graphite.o.
(graphite.o): Add rule.
* gimple.h (gimple_vec): ... here.
* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
* passes.c (init_optimization_passes): Schedule
pass_graphite_transforms.

testsuite/

* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18}.c: New.
* gcc.dg/graphite/graphite.exp: New.
* gcc.dg/graphite/scop-matmult.c: New.
* gcc.dg/graphite/block-0.c: New.
* lib/target-supports.exp (check_effective_target_fgraphite): New.
* gfortran.dg/graphite/block-1.f90: New.
* gfortran.dg/graphite/scop-{1,2}.f: New.
* gfortran.dg/graphite/block-{1,3,4}.f90: New.
* gfortran.dg/graphite/graphite.exp: New.

Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>
From-SVN: r139893

16 years agore PR target/37283 (Cannot build crtbegin.o for ARM)
Samuel Tardieu [Tue, 2 Sep 2008 16:23:29 +0000 (16:23 +0000)]
re PR target/37283 (Cannot build crtbegin.o for ARM)

    gcc/
PR target/37283
* opts.c (decode_options): Move processing of -fno-unit-at-a-time
and -fno-toplevel-reorder after handle_options.

From-SVN: r139892

16 years agoarm.c (arm_tune_cortex_a9): Define.
Paul Brook [Tue, 2 Sep 2008 15:01:52 +0000 (15:01 +0000)]
arm.c (arm_tune_cortex_a9): Define.

2008-09-02  Paul Brook  <paul@codesourcery.com>

* config/arm/arm.c (arm_tune_cortex_a9): Define.
(arm_override_options): Set arm_tune_cortex_a9.
(arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
(arm_issue_rate): Handle cortexa9.
* config/arm/arm.h (arm_tune_cortex_a9): Declare.
* config/arm/arm-cores.def: Add cortex-a9.
* config/arm/arm-tune.md: Regenerate.
* config/arm/arm.md: Include cortex-a9.md.
(generic_sched, generic_vfp): Add cortexa9.
* config/arm/cortex-a9.md: New file.

From-SVN: r139891

16 years agore PR tree-optimization/37327 (another ice in set_value_range, at tree-vrp.c:397)
Richard Guenther [Tue, 2 Sep 2008 13:48:11 +0000 (13:48 +0000)]
re PR tree-optimization/37327 (another ice in set_value_range, at tree-vrp.c:397)

2008-09-02  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/37327
* tree-vrp.c (register_new_assert_for): Make sure to not have
TREE_OVERFLOW set on the bound.

* gcc.c-torture/compile/pr37327.c: New testcase.

From-SVN: r139890

16 years agoFixed typo in date of the 2008-09-01 MOVE_RATIO commit.
Andrey Belevantsev [Tue, 2 Sep 2008 13:02:44 +0000 (17:02 +0400)]
Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.

2008-09-02  Alexander Monakov  <amonakov@ispras.ru>

        Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.

        * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
        * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
        spec_info->mask.

From-SVN: r139889

16 years agospu.md (divdf3): Removed.
Victor Kaplansky [Tue, 2 Sep 2008 12:38:32 +0000 (12:38 +0000)]
spu.md (divdf3): Removed.

2008-09-02  Victor Kaplansky  <victork@il.ibm.com>

  * gcc/config/spu/spu.md (divdf3): Removed.

Testsuite Changelog:

  * gcc.dg/fastmath-2.c: New.

From-SVN: r139888

16 years agore PR tree-optimization/37095 (Trouble with covariant return)
Jakub Jelinek [Tue, 2 Sep 2008 10:33:46 +0000 (12:33 +0200)]
re PR tree-optimization/37095 (Trouble with covariant return)

PR tree-optimization/37095
* cgraph.c (cgraph_node): When creating new cgraph node after
assembler_name_hash has been populated, record it in the hash
table.

* g++.dg/inherit/thunk9.C: New test.

From-SVN: r139887

16 years agore PR fortran/37228 (F2008: Support g0.<d> edit descriptor)
Jerry DeLisle [Tue, 2 Sep 2008 08:50:13 +0000 (08:50 +0000)]
re PR fortran/37228 (F2008: Support g0.<d> edit descriptor)

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/37228
* io.c (check_format): Allow specifying precision with g0 format.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/37301
PR libfortran/37228
* io/io.h (write_real_g0): Declare new function to handle g0.d format.
* io/transfer.c (formatted_transfer_scalar): Use new function.
* io/format.c (parse_format_list): Enable g0.d.
* io/write.c (write_a_char4): Delete unused var.
(set_fnode_default): New function to set the default fnode w, d, and e
factored from write_real. (write_real): Use new factored function.
(write_real_g0): New function that sets d to that passed by g0.d format
specifier and set format to ES.  Default values for w and e are used
from the new function, set_fnode_default.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/37228
* gfortran.dg/fmt_g0_4.f08: Revised test.

From-SVN: r139886

16 years agogfortran.h (struct gfc_namespace): New member `implicit_loc'.
Daniel Kraft [Tue, 2 Sep 2008 08:13:21 +0000 (10:13 +0200)]
gfortran.h (struct gfc_namespace): New member `implicit_loc'.

2008-09-02  Daniel Kraft  <d@domob.eu>

* gfortran.h (struct gfc_namespace): New member `implicit_loc'.
(gfc_add_abstract): New method.
* decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
(gfc_match_derived_decl): Copy abstract attribute in derived symbol.
* dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
only to allow for ABSTRACT types.
* parse.c (parse_interface): Use new gfc_add_abstract.
* primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
type is constructed.
* resolve.c (resolve_typespec_used): New method.
(resolve_fl_derived): Check type in respect to ABSTRACT attribute and
check that no component is of an ABSTRACT type.
(resolve_symbol): Check that no symbol is of an ABSTRACT type.
(resolve_types): Check IMPLICIT declarations for ABSTRACT types.
* symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
(gfc_add_abstract): New method.

2008-09-02  Daniel Kraft  <d@domob.eu>

* gfortran.dg/abstract_type_1.f90: New test.
* gfortran.dg/abstract_type_2.f03: New test.
* gfortran.dg/abstract_type_3.f03: New test.
* gfortran.dg/abstract_type_4.f03: New test.

From-SVN: r139885

16 years agoinvoke.texi: Document -mword-relocations.
Paul Brook [Tue, 2 Sep 2008 01:44:33 +0000 (01:44 +0000)]
invoke.texi: Document -mword-relocations.

2008-09-01  Paul Brook  <paul@codesourcery.com>

* doc/invoke.texi: Document -mword-relocations.
* config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
(arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
(arm_emit_movpair): New function.
(arm_print_operand <c>): Handle sybolic addresses.
* config/arm/arm.h (TARGET_USE_MOVT): Define.
(TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
* config/arm/arm.opt: Add -mword-relocations.
* config/arm/arm.md (movsi): Use arm_emit_movpair.
(arm_movt, arm_movw): New.

From-SVN: r139881

16 years agoerror.c: Fix cast for printf.
Jerry DeLisle [Tue, 2 Sep 2008 01:14:04 +0000 (01:14 +0000)]
error.c: Fix cast for printf.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

* runtime/error.c: Fix cast for printf.

From-SVN: r139880

16 years agoDaily bump.
GCC Administrator [Tue, 2 Sep 2008 00:16:42 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139878

16 years agotype_traits (__make_unsigned_selector<>): Consider enums of size smaller than short.
Mark Mitchell [Mon, 1 Sep 2008 23:24:09 +0000 (23:24 +0000)]
type_traits (__make_unsigned_selector<>): Consider enums of size smaller than short.

* include/std/type_traits (__make_unsigned_selector<>): Consider
enums of size smaller than short.
(__make_signed_selector<>): Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Adjust line numbers.
* testsuite/20_util/make_usigned/requirements/typedefs_neg.cc:
Adjust line numbers.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc:
Ensure test_enum is the same size as short.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Ensure test_enum is the same size as short.

From-SVN: r139875

16 years agoarm.c (arm_override_options): Set arm_abi earlier.
Paul Brook [Mon, 1 Sep 2008 23:20:34 +0000 (23:20 +0000)]
arm.c (arm_override_options): Set arm_abi earlier.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.c (arm_override_options): Set arm_abi earlier.
Allow Interworking on ARMv4 EABI based targets.
* config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
(SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.

From-SVN: r139874

16 years agothumb2.md (thumb2_negscc): Match the correct operand for optimized LT0 test.
Paul Brook [Mon, 1 Sep 2008 22:02:55 +0000 (22:02 +0000)]
thumb2.md (thumb2_negscc): Match the correct operand for optimized LT0 test.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
optimized LT0 test.  Remove optimization for GT.

From-SVN: r139873

16 years agopa64-hpux.h (LIB_SPEC): Link against librt when building static openmp applications.
John David Anglin [Mon, 1 Sep 2008 17:56:38 +0000 (17:56 +0000)]
pa64-hpux.h (LIB_SPEC): Link against librt when building static openmp applications.

* pa64-hpux.h (LIB_SPEC): Link against librt when building static
openmp applications.
* pa-hpux11.h (LIB_SPEC): Likewise.

From-SVN: r139870

16 years agoira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is defined.
John David Anglin [Mon, 1 Sep 2008 17:53:43 +0000 (17:53 +0000)]
ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is defined.

* ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is
defined.

From-SVN: r139869

16 years agopredict.c (maybe_hot_count_p, [...]): When profile is present, use only counts; when...
Jan Hubicka [Mon, 1 Sep 2008 16:28:06 +0000 (18:28 +0200)]
predict.c (maybe_hot_count_p, [...]): When profile is present, use only counts; when guessed use only frequencies.

* predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
present, use only counts; when guessed use only frequencies.
(estimate_bb_frequencies): Use function_frequency.
* profile.c (compute_branch_probabilities): Exit early when
profile reading failed. Set profile_status.
(branch_prob): Do not set profile_status.

From-SVN: r139868

16 years agotree.c (protected_set_expr_location): New.
Aldy Hernandez [Mon, 1 Sep 2008 15:02:27 +0000 (15:02 +0000)]
tree.c (protected_set_expr_location): New.

        * tree.c (protected_set_expr_location): New.
        * tree.h (protected_set_expr_location): New prototype.
        * c-tree.h (build_array_ref): Add argument.
        (parser_build_unary_op): Same.
        * c-typeck.c (build_indirect_ref): Handle new location argument.
        (build_array_ref): Same.
        (parser_build_unary_op): Same.
        * gimplify.c (gimplify_asm_expr): Set input_location before calling
        error.
        * c-omp.c (c_finish_omp_atomic): Pass location when calling
        build_indirect_ref.
        * c-common.c (finish_label_address_expr): Handle new location
        argument.
        * c-common.h (build_indirect_ref): Add argument.
        (finish_label_address_expr): Same.
        * c-parser.c (c_parser_unary_expression): Pass location to build
        functions.
        (c_parser_postfix_expression): Same.
objc/
        * objc-act.c (build_typed_selector_reference): Pass input_location to
        build_unary_op calls.
        (build_selector_reference): Same, but to build_array_ref.
        (objc_substitute_decl): Same.
        (build_ivar_reference): Same, but to build_indirect_ref.
        (get_super_receiver): Same.
testsuite/
        * gcc.dg/20010516-1.c: Test for columns.
cp/
        * typeck.c (build_x_indirect_ref): Add location argument.
        * class.c (build_base_path): Pass location to build_indirect_ref.
        * pt.c (tsubst_copy_and_build): Pass location to
        finish_label_address_expr.
        * parser.c (cp_parser_unary_expression): Same.

From-SVN: r139867

16 years agore PR fortran/37193 ("USE mod, ONLY: i, i=>j" does not import "i")
Daniel Kraft [Mon, 1 Sep 2008 13:43:10 +0000 (15:43 +0200)]
re PR fortran/37193 ("USE mod, ONLY: i, i=>j" does not import "i")

2008-09-01  Daniel Kraft  <d@domob.eu>

PR fortran/37193
* module.c (read_module): Initialize use_only flag on used symbols.

2008-09-01  Daniel Kraft  <d@domob.eu>

PR fortran/37193
* gfortran.dg/use_rename_4.f90: New test.
* gfortran.dg/use_rename_5.f90: New test.

From-SVN: r139866

16 years agoarm.md: Include cortex-r4f.md.
Paul Brook [Mon, 1 Sep 2008 13:40:49 +0000 (13:40 +0000)]
arm.md: Include cortex-r4f.md.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.md: Include cortex-r4f.md.
(attr fpu): Update type list.
(attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
fconstd, fcmps and fcmpd.
(attr tune_cortexr4): Define.
(attr generic_sched, attr generic_vfp): Use tune_cortexr4.
* config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
* config/arm/arm.c (arm_issue_rate): Add cortexr4f.
* config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn
types.
* config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
cortex_a8_vfp_farith: Ditto.
* config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
* config/arm/cortex-r4.md: Use tune_cortexr4.
* config/arm/cortex-r4f.md: New file.

From-SVN: r139865

16 years agore PR tree-optimization/37305 (ice in set_value_range, at tree-vrp.c:397)
Richard Guenther [Mon, 1 Sep 2008 13:39:42 +0000 (13:39 +0000)]
re PR tree-optimization/37305 (ice in set_value_range, at tree-vrp.c:397)

2008-09-01  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/37305
* tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
the result of constant conversions.
(fold_gimple_assign): Likewise.

* gcc.c-torture/compile/pr37305.c: New testcase.

From-SVN: r139864

16 years agosel-sched-ir.c (cmp_v_in_regset_pool): Surround with #ifdef ENABLE_CHECKING.
Andrey Belevantsev [Mon, 1 Sep 2008 12:40:32 +0000 (16:40 +0400)]
sel-sched-ir.c (cmp_v_in_regset_pool): Surround with #ifdef ENABLE_CHECKING.

        * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
        #ifdef ENABLE_CHECKING.

From-SVN: r139863

16 years agosel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
Andrey Belevantsev [Mon, 1 Sep 2008 12:38:44 +0000 (16:38 +0400)]
sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.

        * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
        * sched-int.h (print_insn, print_pattern, print_value): Declare also
        when !INSN_SCHEDULING.

From-SVN: r139862

16 years ago* config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
Andreas Schwab [Mon, 1 Sep 2008 12:35:24 +0000 (12:35 +0000)]
* config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.

From-SVN: r139861

16 years agoarm.c (arm_no_early_mul_dep): Handle multiply-subtract.
Paul Brook [Mon, 1 Sep 2008 12:28:06 +0000 (12:28 +0000)]
arm.c (arm_no_early_mul_dep): Handle multiply-subtract.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.

From-SVN: r139860

16 years agore PR tree-optimization/36449 (Incorrect code generated for access to a large struct)
Jakub Jelinek [Mon, 1 Sep 2008 11:34:47 +0000 (13:34 +0200)]
re PR tree-optimization/36449 (Incorrect code generated for access to a large struct)

PR middle-end/36449
* g++.dg/opt/pr36449.C: New test.

From-SVN: r139859

16 years agogfc-internals.texi (F2003 OOP), [...]): New chapter and section to document the inter...
Daniel Kraft [Mon, 1 Sep 2008 10:55:50 +0000 (12:55 +0200)]
gfc-internals.texi (F2003 OOP), [...]): New chapter and section to document the internals of type-bound procedures.

2008-09-01  Daniel Kraft  <d@domob.eu>

* gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
and section to document the internals of type-bound procedures.
(gfc_expr): Document EXPR_COMPCALL.
* gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
* dump-parse-tree.c (show_compcall): New method.
(show_expr): Call it for EXPR_COMPCALL.
(show_typebound), (show_f2k_derived): New methods.
(show_symbol): Call show_f2k_derived.
(show_code_node): Handle EXEC_COMPCALL.
* primary.c (gfc_match_varspec): Don't initialize removed `derived' in
primary->value.compcall.

From-SVN: r139857

16 years ago* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
Jan Hubicka [Mon, 1 Sep 2008 09:33:23 +0000 (09:33 +0000)]
* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.

From-SVN: r139856

16 years agoexpr.c (MOVE_BY_PIECES_P, [...]): Pass speed operand.
Jan Hubicka [Mon, 1 Sep 2008 09:27:39 +0000 (09:27 +0000)]
expr.c (MOVE_BY_PIECES_P, [...]): Pass speed operand.

* expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): Pass speed operand.
* expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
* gimplify.c (gimplify_init_constructor): Add speed operand.
* tree-sra.c (decide_block_copy): Likewise.
* tree-inline.c (estimate_move_cost): Likewise.
* config/alpha/alpha.h (MOVE_RATIO): Update.
* config/frv/frv.c (MOVE_RATIO): Update.
* config/spu/spu.h (MOVE_RATIO): Update.
* config/sparc/sparc.h (MOVE_RATIO): Update.
* config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
* config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
* config/cris/cris.h (MOVE_RATIO): Update.
* config/mn10300/mn10300.h (MOVE_RATIO): Update.
* config/arm/arm.h (MOVE_RATIO): Update.
* config/pa/pa.md: Update uses of MOVE_RATIO
* config/pa/pa.h (MOVE_RATIO): Update.
* config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, CLEAR_RATIO, SET_RATIO): Update.
* config/h8300/h8300.h (MOVE_RATIO): Update.
* config/v850/v850.h (MOVE_RATIO): Update.
* config/bfin/bfin.h (MOVE_RATIO): Update.

From-SVN: r139855

16 years agosel-sched.h, [...]: New files.
Andrey Belevantsev [Mon, 1 Sep 2008 08:57:00 +0000 (12:57 +0400)]
sel-sched.h, [...]: New files.

2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
        Dmitry Melnik  <dm@ispras.ru>
        Dmitry Zhurikhin  <zhur@ispras.ru>
        Alexander Monakov  <amonakov@ispras.ru>
        Maxim Kuvyrkov  <maxim@codesourcery.com>

* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
sel-sched-dump.c, sel-sched-ir.c: New files.
* Makefile.in (OBJS-common): Add selective scheduling object
files.
(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
(sched-vis.o): Add dependency on $(INSN_ATTR_H).
* cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
* cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
(make_forwarder_block): Update loop latch if we have redirected
the loop latch edge.
* cfgloop.c (get_loop_body_in_custom_order): New function.
* cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
(CP_FALLTHRU_PREHEADERS): Likewise.
(get_loop_body_in_custom_order): Declare.
* cfgloopmanip.c (has_preds_from_loop): New.
(create_preheader): Honor CP_FALLTHRU_PREHEADERS.
Assert that the preheader edge will be fall thru when it is set.
* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
fsel-sched-substitution, fselective-scheduling): New flags.
     * cse.c (hash_rtx_cb): New.
(hash_rtx): Use it.
* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
sel_sched_insn_cnt): New counters.
* final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
* genattr.c (main): Output maximal_insn_latency prototype.
* genautomata.c (output_default_latencies): New. Factor its code from ...
(output_internal_insn_latency_func): ... here.
(output_internal_maximal_insn_latency_func): New.
(output_maximal_insn_latency_func): New.
* hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
(struct hard_reg_set_iterator): New.
(hard_reg_set_iter_init, hard_reg_set_iter_set,
hard_reg_set_iter_next): New functions.
(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
* lists.c (remove_free_INSN_LIST_node,
remove_free_EXPR_LIST_node): New functions.
* loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
(loop_optimizer_finalize): Do not verify flow info after reload.
* recog.c (validate_replace_rtx_1): New parameter simplify.
Default it to true.  Update all uses.  Factor out simplifying
code to ...
(simplify_while_replacing): ... this new function.
(validate_replace_rtx_part,
validate_replace_rtx_part_nosimplify): New.
* recog.h (validate_replace_rtx_part,
validate_replace_rtx_part_nosimplify): Declare.
* rtl.c (rtx_equal_p_cb): New.
(rtx_equal_p): Use it.
* rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
(remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
* vecprim.h: Add a vector type for unsigned int.
* haifa-sched.c: Include vecprim.h and cfgloop.h.
(issue_rate, sched_verbose_param, note_list, dfa_state_size,
ready_try, cycle_issued_insns, spec_info): Make global.
(readyp): Initialize.
(dfa_lookahead): New global variable.
(old_max_uid, old_last_basic_block): Remove.
(h_i_d): Make it a vector.
(INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
through HID macro.
(after_recovery, adding_bb_to_current_region_p):
New variables to handle correct insertion of the recovery code.
(struct ready_list): Move declaration to sched-int.h.
(rgn_n_insns): Removed.
(rtx_vec_t): Move to sched-int.h.
(find_insn_reg_weight): Remove.
(find_insn_reg_weight1): Rename to find_insn_reg_weight.
(haifa_init_h_i_d, haifa_finish_h_i_d):
New functions to initialize / finalize haifa instruction data.
(extend_h_i_d, init_h_i_d): Rewrite.
(unlink_other_notes): Move logic to add_to_note_list.  Handle
selective scheduler.
(ready_lastpos, ready_element, ready_sort, reemit_notes,
find_fallthru_edge): Make global, remove static prototypes.
(max_issue): Make global.  Add privileged_n and state parameters.  Use
them.
(extend_global, extend_all): Removed.
(init_before_recovery): Add new param.  Fix the handling of the case
when we insert a recovery code before the EXIT which has a predecessor
with a fallthrough edge to it.
(create_recovery_block): Make global.  Rename to
sched_create_recovery_block.  Update.
(change_pattern): Rename to sched_change_pattern.  Make global.
(speculate_insn): Rename to sched_speculate_insn.  Make global.
Split haifa-specific functionality into ...
(haifa_change_pattern): New static function.
(sched_extend_bb): New static function.
(sched_init_bbs): New function.
(current_sched_info): Change type to struct haifa_sched_info.
(insn_cost): Adjust for selective scheduling.
(dep_cost_1): New function.  Move logic from ...
(dep_cost): ... here.
(dep_cost): Use dep_cost_1.
(contributes_to_priority_p): Use sched_deps_info instead of
current_sched_info.
(priority): Adjust to work with selective scheduling.  Process the
corner case when all dependencies don't contribute to priority.
(rank_for_schedule): Use ds_weak instead of dep_weak.
(advance_state): New function.  Move logic from ...
(advance_one_cycle): ... here.
(add_to_note_list, concat_note_lists): New functions.
(rm_other_notes): Make static.  Adjust for selective scheduling.
(remove_notes, restore_other_notes): New functions.
(move_insn): Add two arguments.  Update assert.  Don't call
reemit_notes.
(choose_ready): Remove lookahead variable, use dfa_lookahead.
Remove more_issue, max_points.  Move the code to initialize
max_lookahead_tries to max_issue.
(schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
ready.  Adjust use of move_insn.  Call restore_other_notes.
(luid): Remove.
(sched_init, sched_finish): Move Haifa-specific initialization/
finalization to ...
(haifa_sched_init, haifa_sched_finish): ... respectively.
New functions.
(setup_sched_dump): New function.
(haifa_init_only_bb): New static function.
(haifa_speculate_insn): New static function.
(try_ready): Use haifa_* instead of speculate_insn and
change_pattern.
(extend_ready, extend_all): Remove.
(sched_extend_ready_list, sched_finish_ready_list): New functions.
(create_check_block_twin, add_to_speculative_block): Use
haifa_insns_init instead of extend_global.  Update to use new
initialization functions.  Change parameter.  Factor out code from
create_check_block_twin to ...
(sched_create_recovery_edges) ... this new function.
(add_block): Remove.
(sched_scan_info): New.
(extend_bb): Use sched_scan_info.
(init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
static functions for walking through scheduling region.
(sched_luids): New vector variable to replace uid_to_luid.
(luids_extend_insn): New function.
(sched_max_luid): New variable.
(luids_init_insn): New function.
(sched_init_luids, sched_finish_luids): New functions.
(insn_luid): New debug function.
(sched_extend_target): New function.
(haifa_init_insn): New static function.
(sched_init_only_bb): New hook.
(sched_split_block): New hook.
(sched_split_block_1): New function.
(sched_create_empty_bb): New hook.
(sched_create_empty_bb_1): New function.
(common_sched_info, ready): New global variables.
(current_sched_info_var): Remove.
(move_block_after_check): Use common_sched_info.
(haifa_luid_for_non_insn): New static function.
(init_before_recovery): Use haifa_init_only_bb instead of
add_block.
(increase_insn_priority): New.
* modulo-sched.c: (issue_rate): Remove static declaration.
(sms_sched_info): Change type to haifa_sched_info.
(sms_sched_deps_info, sms_common_sched_info): New variables.
(setup_sched_infos): New.
(sms_schedule): Initialize them.  Call haifa_sched_init/finish.
Do not call regstat_free_calls_crossed.
(sms_print_insn): Use const_rtx.
* params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
PARAM_SCHED_MEM_TRUE_DEP_COST): New.
* sched-deps.c (sched_deps_info): New.  Update all relevant uses of
current_sched_info to use it.
(enum reg_pending_barrier_mode): Move to sched-int.h.
(h_d_i_d): New variable. Initialize to NULL.
({true, output, anti, spec, forward}_dependency_cache): Initialize
to NULL.
(estimate_dep_weak): Remove static declaration.
(sched_has_condition_p): New function.  Adjust users of
sched_get_condition to use it instead.
(conditions_mutex_p): Add arguments indicating which conditions are
reversed.  Use them.
(sched_get_condition_with_rev): Rename from sched_get_condition.  Add
argument to indicate whether returned condition is reversed.  Do not
generate new rtx when condition should be reversed; indicate it by
setting new argument instead.
(add_dependence_list_and_free): Add deps parameter.
Update all users.  Do not free dependence list when
deps context is readonly.
(add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
contexts.
(remove_from_dependence_list, remove_from_both_dependence_lists): New.
(remove_from_deps): New. Use the above functions.
(cur_insn, can_start_lhs_rhs_p): New static variables.
(add_or_update_back_dep_1): Initialize present_dep_type.
(haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
haifa_note_dep): New functions implementing dependence hooks for
the Haifa scheduler.
(note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
note_dep): New functions.
(ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
functions.
(init_deps): Initialize last_reg_pending_barrier and deps->readonly.
(free_deps): Initialize deps->reg_last.
(sched_analyze_reg, sched_analyze_1, sched_analyze_2,
sched_analyze_insn): Update to use dependency hooks infrastructure
and readonly contexts.
(deps_analyze_insn): New function.  Move part of logic from ...
(sched_analyze): ... here.  Also move some logic to ...
(deps_start_bb): ... here.  New function.
(add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
sel_sched_p.
(sched_deps_init): New function.  Move code from ...
(init_dependency_caches): ... here.  Remove.
(init_deps_data_vector): New.
(sched_deps_finish): New function.  Move code from ...
(free_dependency_caches): ... here.  Remove.
(init_deps_global, finish_deps_global): Adjust for use with
selective scheduling.
(get_dep_weak): Move logic to ...
(get_dep_weak_1): New function.
(ds_merge): Move logic to ...
(ds_merge_1): New static function.
(ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
(ds_get_max_dep_weak): New function.
* sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
(n_insns): Rename to rgn_n_insns.
(debug_ebb_dependencies): New function.
(init_ready_list): Use it.
(begin_schedule_ready): Use sched_init_only_bb.
(ebb_print_insn): Indicate when an insn starts a new cycle.
(contributes_to_priority, compute_jump_reg_dependencies,
add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
(add_block1): Remove to ebb_add_block.
(ebb_sched_deps_info, ebb_common_sched_info): New variables.
(schedule_ebb): Initialize them.  Use remove_notes instead of
rm_other_notes.  Use haifa_local_init/finish.
(schedule_ebbs): Use haifa_sched_init/finish.
* sched-int.h: Include vecprim.h, remove rtl.h.
(struct ready_list): Delete declaration.
(sched_verbose_param, enum sched_pass_id_t,
bb_vec_t, insn_vec_t, rtx_vec_t): New.
(struct sched_scan_info_def): New structure.
(sched_scan_info, sched_scan, sched_init_bbs,
sched_init_luids, sched_finish_luids, sched_extend_target,
haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
(struct common_sched_info_def): New.
(common_sched_info, haifa_common_sched_info,
sched_emulate_haifa_p): Declare.
(sel_sched_p): New.
(sched_luids): Declare.
(INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
(sched_max_luid, insn_luid): Declare.
(note_list, remove_notes, restore_other_notes, bb_note): Declare.
(sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
print_insn, print_pattern, print_value, haifa_classify_insn,
sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
setup_sched_dump, sched_init, sched_finish,
sel_insn_is_speculation_check): Export.
(struct ready_list): Move from haifa-sched.c.
(ready_try, ready, max_issue): Export.
(ebb_compute_jump_reg_dependencies, find_fallthru_edge,
sched_init_only_bb, sched_split_block, sched_split_block_1,
sched_create_empty_bb, sched_create_empty_bb_1,
sched_create_recovery_block, sched_create_recovery_edges): Export.
(enum reg_pending_barrier_mode): Export.
(struct deps): New fields `last_reg_pending_barrier' and `readonly'.
(deps_t): New.
(struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
print_insn field.  Move add_block and fix_recovery_cfg to
common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
(struct sched_deps_info_def): ... this new structure.
(sched_deps_info): Declare.
(struct spec_info_def): Remove weakness_cutoff, add
data_weakness_cutoff and control_weakness_cutoff.
(spec_info): Declare.
(struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
dep_count field.
(struct haifa_insn_data): Rename to struct _haifa_insn_data.
(haifa_insn_data_def, haifa_insn_data_t): New typedefs.
(current_sched_info): Change type to struct haifa_sched_info.
(haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
(h_d_i_d): New variable.
(HDID): New accessor macro.
(h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
(HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
and HDID.
(IS_SPECULATION_CHECK_P): Update for selective scheduler.
(enum SCHED_FLAGS): Update for selective scheduler.
(enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
(init_dependency_caches, free_dependency_caches): Delete declarations.
(deps_analyze_insn, remove_from_deps, get_dep_weak_1,
estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
ds_to_dt): Export.
(rm_other_notes): Delete declaration.
(schedule_block): Remove one argument.
(cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
ready_element, ready_lastpos, sched_extend_ready_list,
sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
concat_note_lists): Export.
(struct region): Move from sched-rgn.h.
(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
BLOCK_TO_BB, CONTAINING_RGN): Export.
(ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
(current_nr_blocks, current_blocks, target_bb): Likewise.
(dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
sched_rgn_local_init, extend_regions,
rgn_make_new_region_out_of_new_block, compute_priorities,
debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
extend_rgns, deps_join rgn_setup_common_sched_info,
rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
(get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
increase_insn_priority): Likewise.
* sched-rgn.c: Include sel-sched.h.
(ref_counts): New static variable.  Use it ...
(INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
(FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
(sched_is_disabled_for_current_region_p): Delete static declaration.
(struct region): Move to sched-int.h.
(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
ebb_head): Define and initialize.
(RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
sched-int.h.
(find_single_block_region): Add new argument to indicate that EBB
regions should be constructed.
(debug_live): Delete declaration.
(current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
declaration.
(init_regions): Delete declaration.
(debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
rgn_estimate_number_of_insns): New.
(too_large): Use estimate_number_of_insns.
(haifa_find_rgns): New. Move the code from ...
(find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
(free_trg_info): New.
(compute_trg_info): Allocate candidate tables here instead of ...
(init_ready_list): ... here.
(rgn_print_insn): Use const_rtx.
(contributes_to_priority, extend_regions): Delete static declaration.
(add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
(add_block1): Rename to rgn_add_block.
(debug_rgn_dependencies): Delete static qualifier.
(new_ready): Use sched_deps_info.  Simplify.
(rgn_common_sched_info, rgn_const_sched_deps_info,
rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
(region_sched_info): Rename to rgn_const_sched_info.
(deps_join): New, extracted from ...
(propagate_deps): ... here.
(compute_block_dependences, debug_dependencies): Update for selective
scheduling.
(free_rgn_deps, compute_priorities): New functions.
(sched_rgn_init, sched_rgn_finish, rgn_setup_region,
sched_rgn_compute_dependencies): New functions.
(schedule_region): Use them.
(sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
rgn_setup_common_sched_info, rgn_setup_sched_infos):
New functions.
(schedule_insns): Call new functions that were split out.
(rgn_make_new_region_out_of_new_block): New.
(get_rgn_sched_max_insns_priority): New.
(rest_of_handle_sched, rest_of_handle_sched2): Call selective
scheduling when appropriate.
* sched-vis.c: Include insn-attr.h.
(print_value, print_pattern): Make global.
(print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
* target-def.h (TARGET_SCHED_ADJUST_COST_2,
TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
hooks.  Initialize them to 0.
(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
* target.h (struct gcc_target): Add them.  Rename gen_check field to
gen_spec_check.
* flags.h (sel_sched_switch_set): Declare.
* opts.c (sel_sched_switch_set): New variable.
(decode_options): Unset flag_sel_sched_pipelining_outer_loops if
pipelining is disabled from command line.
(common_handle_option): Record whether selective scheduling is
requested from command line.
* doc/invoke.texi: Document new flags and parameters.
* doc/tm.texi: Document new target hooks.
* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
(dfa_state_size): Do not declare locally.
* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
* config/rs6000/rs6000.c (rs6000_init_sched_context,
rs6000_alloc_sched_context, rs6000_set_sched_context,
rs6000_free_sched_context): New functions.
(struct _rs6000_sched_context): New.
(rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
scheduling.
(rs6000_sched_finish): Do not run for selective scheduling.

Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>
Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru>
Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
From-SVN: r139854

16 years agoImplement late-specified return type using 'auto'.
Jason Merrill [Mon, 1 Sep 2008 03:33:19 +0000 (23:33 -0400)]
Implement late-specified return type using 'auto'.

        * cp-tree.h (struct cp_declarator): Add late_return_type field to
        function declarator.
        * parser.c (cp_parser_late_return_type_opt): New fn.
        (cp_parser_direct_declarator): Use it.
        (make_call_declarator): Put it in the declarator.
        * decl.c (grokdeclarator): Splice in late-specified return type.
        * pt.c (splice_late_return_type): New fn.

From-SVN: r139848

16 years agoDaily bump.
GCC Administrator [Mon, 1 Sep 2008 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139846

16 years agofrv.c (frv_rtx_costs): Update forward declaration.
Jan Hubicka [Sun, 31 Aug 2008 20:49:42 +0000 (22:49 +0200)]
frv.c (frv_rtx_costs): Update forward declaration.

* frv.c (frv_rtx_costs): Update forward declaration.
* spu.c (spu_rtx_costs): Likewise.
* pdp11.c: Include df.h
(pdp11_output_function_epilogue): Use df_set_regs_ever_live.
* m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
(m68hc11_rtx_costs_1): Fix call of rtx_cost.
* iq2000.c (iq2000_address_cost): Add speed argument.
(iq2000_rtx_costs): Likewise.
* mn10300.c (mn10300_address_cost_1): Remove speed argument;
update call of mn10300_address_cost.
* mcore.c: Include df.h
(mcore_rtx_costs): Update prototype.
* score3.c: Include df.h
(score3_rtx_costs): Remove speed argument.
* score7.c: Include df.h
(score7_address_cost): Remove speed argument.
* score-protos.h (score_address_cost): Update prototype.
* score.c: Include df.h
(score_rtx_costs): Update call of costs functions.
* v850.c (v850_rtx_costs): Add bool argument.

From-SVN: r139843

16 years ago* config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
Hans-Peter Nilsson [Sun, 31 Aug 2008 18:33:51 +0000 (18:33 +0000)]
* config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.

From-SVN: r139840