platform/upstream/gcc.git
8 years ago[PATCH] tree-scalar-evolution.c: Handle LSHIFT by constant
Alan Lawrence [Thu, 5 Nov 2015 18:39:38 +0000 (18:39 +0000)]
[PATCH] tree-scalar-evolution.c: Handle LSHIFT by constant

gcc/:

PR tree-optimization/65963
* tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.

gcc/testsuite/:

* gcc.dg/pr68112.c: New.
* gcc.dg/vect/vect-strided-shift-1.c: New.

From-SVN: r229825

8 years agore PR c/68090 (VLA compound literal -- "confused by earlier errors, bailing out")
Marek Polacek [Thu, 5 Nov 2015 18:21:30 +0000 (18:21 +0000)]
re PR c/68090 (VLA compound literal  -- "confused by earlier errors, bailing out")

PR c/68090
* c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
deal with pre-evaluation on invalid types.

* gcc.dg/pr68090.c: New test.

From-SVN: r229823

8 years ago[Patch ifcvt] Teach RTL ifcvt to handle multiple simple set instructions
James Greenhalgh [Thu, 5 Nov 2015 18:11:12 +0000 (18:11 +0000)]
[Patch ifcvt] Teach RTL ifcvt to handle multiple simple set instructions

gcc/

* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
(noce_convert_multiple_sets): Likewise.
(noce_process_if_block): Call them.

gcc/testsuite/

* gcc.dg/ifcvt-4.c: New.

From-SVN: r229822

8 years agore PR c++/67846 (ICE on code with lambda expression on x86_64-linux-gnu in check_retu...
Paolo Carlini [Thu, 5 Nov 2015 16:47:40 +0000 (16:47 +0000)]
re PR c++/67846 (ICE on code with lambda expression on x86_64-linux-gnu in check_return_expr, at cp/typeck.c:8609)

/cp
2015-11-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67846
* parser.c (cp_parser_lambda_body): Check lambda_return_type
return value.
* typeck2.c (cxx_incomplete_type_diagnostic): Print member or
member function used invalidly.

/testsuite
2015-11-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67846
* g++.dg/cpp0x/lambda/lambda-ice15.C: New.

From-SVN: r229819

8 years agogimple-fold.c: Include omp-low.h.
Nathan Sidwell [Thu, 5 Nov 2015 15:46:59 +0000 (15:46 +0000)]
gimple-fold.c: Include omp-low.h.

* gimple-fold.c: Include omp-low.h.
(fold_internal_goacc_dim): New.
(gimple_fold_call): Call it.

From-SVN: r229816

8 years agogcc/
Jakub Jelinek [Thu, 5 Nov 2015 15:08:08 +0000 (16:08 +0100)]
gcc/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* builtin-types.def
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
* cgraph.h (enum cgraph_simd_clone_arg_type): Add
SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
(struct cgraph_simd_clone_arg): Adjust comment.
* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
to GOMP_target_ext.  Add num_teams and thread_limit arguments.
(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
to GOMP_target_data_ext.
(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
to GOMP_target_update_ext.
(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
OMP_CLAUSE_SCHEDULE_LAST value.
* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK.  Remove comment.
* tree-pretty-print.c (dump_omp_clause): Handle
GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
Simplify.  Print schedule clause modifiers.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
cases.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
(omp_default_clause): Tweak for
private/firstprivate/is_device_ptr variables on target
construct and use_device_ptr on target data.
(omp_check_private): Likewise.
(omp_notice_variable): For references check whether what it refers
to has mappable type, rather than the reference itself.
(omp_is_private): Diagnose linear iteration variables on non-simd
constructs.
(omp_no_lastprivate): Return true only for Fortran.
(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
lastprivate and linear when combined with distribute.  Gimplify
variable low-bound for array reduction.  Look through
POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
reductions.
(gimplify_adjust_omp_clauses_1): For implicit references to
variables with reference type and when not ref to scalar or
ref to pointer, map what they refer to using tofrom and
use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
Diagnose the same var on both firstprivate and lastprivate on
distribute construct.
(gimplify_omp_for): Fix up handling of predetermined
lastprivate or linear iter vars when combined with distribute.
(find_omp_teams, computable_teams_clause, optimize_target_teams): New
functions.
(gimplify_omp_workshare): Call optimize_target_teams.
* omp-low.c (struct omp_region): Add sched_modifiers field.
(struct omp_for_data): Likewise.
(omp_any_child_fn_dumped): New variable.
(extract_omp_for_data): Fill in sched_modifiers, and mask out
OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
from sched_kind.
(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
bits of OMP_CLAUSE_SCHED_KIND.
(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
for array section reductions.
(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
for distribute parallel for, if there are lastprivate clauses on the
for.
(lower_rec_input_clauses): Handle non-zero low-bound on array
section reductions.
(lower_reduction_clauses): Likewise.
(lower_send_clauses): Look through POINTER_PLUS_EXPR
for array section reductions.
(expand_parallel_call): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided.
(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
child_fn if current_function_decl has assembler name set, but child_fn
does not.  Dump the header and IL of the child function when not in SSA
form.
(expand_omp_target): Likewise.  Pass num_teams and thread_limit
arguments to BUILT_IN_GOMP_TARGET.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Initialize the extra _looptemp_ clause to fd->loop.n2.
(expand_omp_for): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
(expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
again if we have dumped any child functions.
(lower_omp_for_lastprivate): Determine the right count variable
for distribute simd, or distribute parallel for{, simd}.
(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
support.
(simd_clone_clauses_extract): Handle variable step
for references and arguments passed by reference.
(simd_clone_mangle): Mangle ref/uval/val variable steps.
(simd_clone_adjust_argument_types): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
(simd_clone_linear_addend): New function.
(simd_clone_adjust): Handle variable step like similarly
to constant step, use simd_clone_linear_addend to determine
the actual step at runtime.
gcc/c-family/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>

* c-common.h (c_finish_omp_atomic): Add TEST argument.
(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
* c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
save_expr or create_tmp_var* if TEST is true.
(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
Don't call add_stmt here.
(struct c_omp_check_loop_iv_data): New type.
(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
c_omp_check_loop_iv_exprs): New functions.
(c_omp_split_clauses): Adjust for lastprivate being allowed on
distribute.
(c_omp_declare_simd_clauses_to_numbers): Change
OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
(c_omp_declare_simd_clauses_to_decls): Similarly change those
from numbers to PARM_DECLs.
gcc/c/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* c-parser.c: Include context.h and gimple-expr.h.
(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
monotonic together with nonmonotonic.
(c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(c_parser_omp_target_data, c_parser_omp_target_enter_data,
c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
(c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
expressions on combined target teams before the target.
(c_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags.  Call c_finish_omp_clauses
in the parenthesized extended-list syntax case.
* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
declare target.
* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR.  For structure element based array sections use
GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
(c_finish_omp_clauses): Drop generic_field_head, structure
elements are now always mapped even as array section bases,
diagnose same var in data sharing and mapping clauses.  Diagnose if
linear step on declare simd is neither a constant nor a uniform
parameter.  Look through POINTER_PLUS_EXPR for array section
reductions.  Diagnose the same var or function appearing multiple
times on the same directive.  Fix up wording for the to clause if t
is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.
gcc/cp/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
(omp_privatize_field): Add SHARED argument.
* parser.c: Include context.h.
(cp_parser_omp_clause_schedule): Parse schedule
modifiers, diagnose monotonic together with nonmonotonic.
(cp_parser_omp_clause_linear): Add DECLARE_SIMD argument.  Parse
parameter name as linear step as id-expression rather than expression.
(cp_parser_omp_all_clauses): Adjust caller.
(cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
initialize it.  Adjust omp_privatize_field caller.
(cp_parser_omp_for_loop): Compute orig_inits, pass it's address
to finish_omp_for.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(cp_parser_omp_target_data,
cp_parser_omp_target_enter_data,
cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(cp_parser_omp_target): Likewise.  Evaluate num_teams and
thread_limit expressions on combined target teams before the target.
(cp_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags.  Call finish_omp_clauses
in the parenthesized extended-list syntax case.  Call
cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
(cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
instead of cp_parser_skip_to_pragma_eol.
* decl2.c (cplus_decl_attributes): Don't diagnose block scope vars inside
declare target.
* pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
use tsubst_omp_clause_decl instead of tsubst_expr on
OMP_CLAUSE_LINEAR_STEP.  Handle non-static data members in shared
clauses.
(tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
(tsubst_find_omp_teams): New function.
(tsubst_expr): Evaluate num_teams and thread_limit expressions on
combined target teams before the target.  Use OMP_FOR_ORIG_DECLS for
all OpenMP/OpenACC/Cilk+ looping constructs.  Adjust finish_omp_for
caller.
* semantics.c (omp_privatize_field): Add SHARED argument, if true,
always create artificial var and never put it into the hash table
or vector.
(handle_omp_array_sections_1): Adjust omp_privatize_field caller.
Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): For structure element
based array sections use GOMP_MAP_ALWAYS_POINTER instead of
GOMP_MAP_FIRSTPRIVATE_POINTER.  Encode low-bound into the MEM_REF,
either into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR.
(finish_omp_clauses): Adjust omp_privatize_field caller.  Drop
generic_field_head, structure elements are now always mapped even
as array section bases, diagnose same var in data sharing and
mapping clauses.  For references map what they refer to using
GOMP_MAP_ALWAYS_POINTER for structure elements and
GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise.  Diagnose if linear step
on declare simd is neither a constant nor a uniform parameter.
Allow non-static data members on shared clauses.  Look through
POINTER_PLUS_EXPR for array section reductions.  Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.  Diagnose the same var or
function appearing multiple times on the same directive.  Fix up
wording for the to clause if t is neither a FUNCTION_DECL nor a
VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
(handle_omp_for_class_iterator): Add ORIG_DECLS argument.  Call
c_omp_check_loop_iv_exprs on cond.
(finish_omp_for): Add ORIG_INITS argument.  Call
c_omp_check_loop_iv_exprs on ORIG_INITS elements.  Adjust
handle_omp_for_class_iterator caller.  Call c_omp_check_loop_iv.
Call add_stmt.
(finish_omp_atomic): Adjust c_finish_omp_atomic caller.
gcc/fortran/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>

* types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
gcc/testsuite/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>

* c-c++-common/gomp/clauses-2.c (foo): Adjust for diagnostics
of variables in both data sharing and mapping clauses and for
structure element based array sections being mapped rather than
privatized.
* c-c++-common/gomp/declare-target-2.c: Add various new tests.  Adjust
expected diagnostics wording in one case.
* c-c++-common/gomp/distribute-1.c: New test.
* c-c++-common/gomp/element-1.c: New test.
* c-c++-common/gomp/pr61486-2.c: Add #pragma omp declare target
and #pragma omp end declare target pair around the function.
Change s from a parameter to a file scope variable.
* c-c++-common/gomp/pr67521.c: Add dg-error directives.
* c-c++-common/gomp/reduction-1.c (foo): Don't expect diagnostics
on non-zero low-bound in reduction array sections.  Add further
tests.
* c-c++-common/gomp/schedule-modifiers-1.c: New test.
* c-c++-common/gomp/target-teams-1.c: New test.
* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
for expected mangling on x86_64/i?86.
* gcc.dg/gomp/declare-simd-3.c: New test.
* gcc.dg/gomp/declare-simd-4.c: New test.
* gcc.dg/gomp/for-20.c: New test.
* gcc.dg/gomp/for-21.c: New test.
* gcc.dg/gomp/for-22.c: New test.
* gcc.dg/gomp/for-23.c: New test.
* gcc.dg/gomp/for-24.c: New test.
* gcc.dg/gomp/linear-1.c: New test.
* gcc.dg/gomp/loop-1.c: New test.
* g++.dg/gomp/atomic-17.C: New test.
* g++.dg/gomp/clause-1.C (T::test): Don't expect error on
non-static data member in shared clause.  Add single construct.
* g++.dg/gomp/declare-simd-1.C: Add dg-options.  Add
scan-assembler-times directives for expected mangling on x86_64/i?86.
* g++.dg/gomp/declare-simd-3.C: Likewise.
* g++.dg/gomp/declare-simd-4.C: New test.
* g++.dg/gomp/declare-simd-5.C: New test.
* g++.dg/gomp/declare-target-1.C: New test.
* g++.dg/gomp/linear-2.C: New test.
* g++.dg/gomp/loop-1.C: New test.
* g++.dg/gomp/loop-2.C: New test.
* g++.dg/gomp/loop-3.C: New test.
* g++.dg/gomp/member-2.C (B::m2, B::m4): Don't expect error on
non-static data member in shared clause.
* g++.dg/gomp/member-3.C: New test.
* g++.dg/gomp/member-4.C: New test.
* g++.dg/gomp/pr38639.C (foo): Adjust dg-error.
(bar): Remove dg-message.
* g++.dg/gomp/target-teams-1.C: New test.
include/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
(GOMP_MAP_FLAG_ALWAYS): Remove.
(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(GOMP_MAP_ALWAYS_P): Define.
(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.
libgomp/
2015-11-05  Jakub Jelinek  <jakub@redhat.com>
    Ilya Verbin  <ilya.verbin@intel.com>

* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this.  Add num_teams and thread_limit
arguments.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
GOMP_target_data_ext and GOMP_target_update_ext instead of
GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
Export GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic and
GOMP_parallel_loop_nonmonotonic_guided.
* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
functions.
(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
Use gomp_map_val function.
(gomp_target_fallback_firstprivate): New static function.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this.  Add num_teams and thread_limit
arguments.  Move firstprivate fallback handling into a new
function.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
gomp_map_0len_lookup instead of gomp_map_lookup.
(omp_target_is_present): Use gomp_map_0len_lookup instead of
gomp_map_lookup.
* testsuite/libgomp.c/target-28.c: Likewise.
* testsuite/libgomp.c/monotonic-1.c: New test.
* testsuite/libgomp.c/monotonic-2.c: New test.
* testsuite/libgomp.c/nonmonotonic-1.c: New test.
* testsuite/libgomp.c/nonmonotonic-2.c: New test.
* testsuite/libgomp.c/pr66199-5.c: New test.
* testsuite/libgomp.c/pr66199-6.c: New test.
* testsuite/libgomp.c/pr66199-7.c: New test.
* testsuite/libgomp.c/pr66199-8.c: New test.
* testsuite/libgomp.c/pr66199-9.c: New test.
* testsuite/libgomp.c/reduction-11.c: New test.
* testsuite/libgomp.c/reduction-12.c: New test.
* testsuite/libgomp.c/reduction-13.c: New test.
* testsuite/libgomp.c/reduction-14.c: New test.
* testsuite/libgomp.c/reduction-15.c: New test.
* testsuite/libgomp.c/target-12.c (main): Adjust for
omp_target_is_present change for one-past-last element.
* testsuite/libgomp.c/target-17.c (foo): Drop tests where
the same var is both mapped and privatized.
* testsuite/libgomp.c/target-19.c (foo): Adjust for different
handling of zero-length array sections.
* testsuite/libgomp.c/target-28.c: New test.
* testsuite/libgomp.c/target-29.c: New test.
* testsuite/libgomp.c/target-30.c: New test.
* testsuite/libgomp.c/target-teams-1.c: New test.
* testsuite/libgomp.c++/member-6.C: New test.
* testsuite/libgomp.c++/member-7.C: New test.
* testsuite/libgomp.c++/monotonic-1.C: New test.
* testsuite/libgomp.c++/monotonic-2.C: New test.
* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
* testsuite/libgomp.c++/pr66199-3.C: New test.
* testsuite/libgomp.c++/pr66199-4.C: New test.
* testsuite/libgomp.c++/pr66199-5.C: New test.
* testsuite/libgomp.c++/pr66199-6.C: New test.
* testsuite/libgomp.c++/pr66199-7.C: New test.
* testsuite/libgomp.c++/pr66199-8.C: New test.
* testsuite/libgomp.c++/pr66199-9.C: New test.
* testsuite/libgomp.c++/reduction-11.C: New test.
* testsuite/libgomp.c++/reduction-12.C: New test.
* testsuite/libgomp.c++/target-13.C: New test.
* testsuite/libgomp.c++/target-14.C: New test.
* testsuite/libgomp.c++/target-15.C: New test.
* testsuite/libgomp.c++/target-16.C: New test.
* testsuite/libgomp.c++/target-17.C: New test.
* testsuite/libgomp.c++/target-18.C: New test.
* testsuite/libgomp.c++/target-19.C: New test.

Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
From-SVN: r229814

8 years agotarget.def (goacc.dim_limit): New hook.
Nathan Sidwell [Thu, 5 Nov 2015 13:50:13 +0000 (13:50 +0000)]
target.def (goacc.dim_limit): New hook.

* target.def (goacc.dim_limit): New hook.
* targhooks.h (default_goacc_dim_limit): Declare.
* doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
* doc/tm.texi: Rebuilt.
* omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
* omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
(default_goacc_dim_limit): New.
* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
(nvptx_goacc_dim_limit) New.
(TARGET_GOACC_DIM_LIMIT): Override.
* tree-vrp.c: Include omp-low.h, target.h.
(extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
IFN_GOACC_DIM_POS.

From-SVN: r229809

8 years agotree-vect-generic.c (do_compare): Use -1 for true result instead of 1.
Ilya Enkovich [Thu, 5 Nov 2015 12:21:33 +0000 (12:21 +0000)]
tree-vect-generic.c (do_compare): Use -1 for true result instead of 1.

gcc/

* tree-vect-generic.c (do_compare): Use -1 for true
result instead of 1.

From-SVN: r229808

8 years ago[Patch AArch64] Switch constant pools to separate rodata sections.
Ramana Radhakrishnan [Thu, 5 Nov 2015 09:48:53 +0000 (09:48 +0000)]
[Patch AArch64] Switch constant pools to separate rodata sections.

        Now that PR63304 is fixed and we have an option to address
any part of the memory using adrp / add or adrp / ldr instructions
it makes sense to switch out literal pools into their own
mergeable sections by default.

This would mean that by default we could now start getting
the benefits of constant sharing across the board, potentially
improving code size. The other advantage of doing so, for the
security conscious is that this prevents intermingling of literal
pools with code.

Wilco's kindly done some performance measurements and suggests that
there is not really a performance regression in doing this.
I've looked at the code size for SPEC2k6 today at -Ofast and
in general there is a good code size improvement as expected
by sharing said constants.

Tested on aarch64-none-elf with no regressions and bootstrapped
and regression tested in my tree for a number of days now.

2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/aarch64/aarch64.c
        (aarch64_can_use_per_function_literal_pools_p): New.
        (aarch64_use_blocks_for_constant_p): Adjust declaration
        and use aarch64_can_use_function_literal_pools_p.
        (aarch64_select_rtx_section): Update.

From-SVN: r229795

8 years agotarghooks.c (default_get_mask_mode): Use BLKmode in case target doesn't support requi...
Ilya Enkovich [Thu, 5 Nov 2015 09:46:10 +0000 (09:46 +0000)]
targhooks.c (default_get_mask_mode): Use BLKmode in case target doesn't support required vector mode.

gcc/

2015-10-29  Ilya Enkovich  <enkovich.gnu@gmail.com>

* targhooks.c (default_get_mask_mode): Use BLKmode in
case target doesn't support required vector mode.
* stor-layout.c (layout_type); Check for BLKmode.

From-SVN: r229794

8 years agoloadpre2.c: Avoid undefined behavior due to uninitialized variables.
Richard Biener [Thu, 5 Nov 2015 08:43:46 +0000 (08:43 +0000)]
loadpre2.c: Avoid undefined behavior due to uninitialized variables.

2015-11-05  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/loadpre2.c: Avoid undefined behavior due to
uninitialized variables.
* gcc.dg/tree-ssa/loadpre21.c: Likewise.
* gcc.dg/tree-ssa/loadpre22.c: Likewise.
* gcc.dg/tree-ssa/loadpre23.c: Likewise.
* gcc.dg/tree-ssa/loadpre24.c: Likewise.
* gcc.dg/tree-ssa/loadpre25.c: Likewise.
* gcc.dg/tree-ssa/loadpre4.c: Likewise.
* gcc.dg/ipa/inlinehint-2.c: Likewise.
* gcc.dg/ipa/pure-const-2.c: Likewise.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
* gcc.dg/tree-ssa/loop-23.c: Likewise.
* gcc.dg/tree-ssa/pr22051-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-sccvn-3.c: Likewise.
* gcc.dg/vect/pr30858.c: Likewise.
* gcc.dg/vect/pr33866.c: Likewise.
* gcc.dg/vect/pr37027.c: Likewise.
* c-c++-common/ubsan/null-10.c: Likewise.
* gcc.target/i386/incoming-8.c: Likewise.

From-SVN: r229793

8 years agoDaily bump.
GCC Administrator [Thu, 5 Nov 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r229790

8 years ago(cp_parser_oacc_single_int_clause): New function.
Cesar Philippidis [Wed, 4 Nov 2015 22:09:53 +0000 (14:09 -0800)]
(cp_parser_oacc_single_int_clause): New function.

gcc/cp/
* (cp_parser_oacc_single_int_clause): New function.
(cp_parser_oacc_clause_vector_length): Delete.
(cp_parser_omp_clause_num_gangs): Delete.
(cp_parser_omp_clause_num_workers): Delete.
(cp_parser_oacc_all_clauses): Use cp_parser_oacc_single_int_clause
for num_gangs, num_workers and vector_length.

From-SVN: r229786

8 years agoremove parameter_rename_map
Aditya Kumar [Wed, 4 Nov 2015 20:59:18 +0000 (20:59 +0000)]
remove parameter_rename_map

This map was used in the transition to the new scop detection: with the new scop
detection, we do not need this map anymore.

       * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
       Remove use of parameter_rename_map.
       (copy_def): Remove.
       (copy_internal_parameters): Remove.
       (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
       * sese.c (new_sese_info): Do not initialize parameter_rename_map.
       (free_sese_info): Do not free parameter_rename_map.
       (set_rename): Do not use parameter_rename_map.
       (rename_uses): Update call to set_rename.
       (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
       * sese.h (parameter_rename_map_t): Remove.
       (struct sese_info_t): Remove field parameter_rename_map.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r229783

8 years agoimprove debug of codegen
Aditya Kumar [Wed, 4 Nov 2015 20:59:12 +0000 (20:59 +0000)]
improve debug of codegen

- fix printing of ISL stmt and parameter names
- move dot_scop* functions outside of anonymous namespace.

  * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
  (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
  * graphite-scop-detection.c (dot_all_scops_1): Moved out of
  anonymous namespace.
  * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
  (isl_id_for_pbb): Use a buffer of size 10.
  (isl_id_for_ssa_name): Same.
  * sese.c (set_rename): Add more dumps.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r229782

8 years agoomp-low.c (struct omp_context): Remove reduction_map field.
Nathan Sidwell [Wed, 4 Nov 2015 20:54:24 +0000 (20:54 +0000)]
omp-low.c (struct omp_context): Remove reduction_map field.

* omp-low.c (struct omp_context): Remove reduction_map field.
(lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
(new_omp_context, delete_omp_context, scan_omp_target): Remove
reduction_map handling.
(lower_omp_target): Remove obsolete openacc reduction handling.

From-SVN: r229781

8 years agonvptx.c (nvptx_goacc_validate_dims): Add checking.
Nathan Sidwell [Wed, 4 Nov 2015 20:48:05 +0000 (20:48 +0000)]
nvptx.c (nvptx_goacc_validate_dims): Add checking.

gcc/
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.

libgomp/
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
and reduction copy.
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.

From-SVN: r229780

8 years ago* gnat.dg/slice9.adb: New test.
Eric Botcazou [Wed, 4 Nov 2015 20:32:54 +0000 (20:32 +0000)]
* gnat.dg/slice9.adb: New test.

From-SVN: r229779

8 years agoloop-red-g-1.c: New.
Nathan Sidwell [Wed, 4 Nov 2015 17:01:23 +0000 (17:01 +0000)]
loop-red-g-1.c: New.

* libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
* libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
* libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
* libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
* libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.

From-SVN: r229770

8 years ago* gfortran.dg/goacc/reduction-2.f95: Delete.
Nathan Sidwell [Wed, 4 Nov 2015 17:00:27 +0000 (17:00 +0000)]
* gfortran.dg/goacc/reduction-2.f95: Delete.

From-SVN: r229769

8 years agonvptx.c: Include gimple headers.
Nathan Sidwell [Wed, 4 Nov 2015 16:58:52 +0000 (16:58 +0000)]
nvptx.c: Include gimple headers.

* config/nvptx/nvptx.c: Include gimple headers.
(worker_red_size, worker_red_align, worker_red_name,
worker_red_sym): New.
(nvptx_option_override): Initialize worker reduction buffer.
(nvptx_file_end): Write out worker reduction buffer var.
(nvptx_expand_shuffle, nvptx_expand_worker_addr,
nvptx_expand_cmp_swap): New builtin expanders.
(enum nvptx_builtins): New.
(nvptx_builtin_decls): New.
(nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
(PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
(nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
nvptx_lockless_update): New helpers.
(nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
(nvptx_goacc_reduction): New.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
TARGET_BUILTIN_DECL): Override.
(TARGET_GOACC_REDUCTION): Override.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r229768

8 years agointernal-fn.def (GOACC_REDUCTION): New.
Nathan Sidwell [Wed, 4 Nov 2015 16:57:36 +0000 (16:57 +0000)]
internal-fn.def (GOACC_REDUCTION): New.

* internal-fn.def (GOACC_REDUCTION): New.
* internal-fn.h (enum ifn_goacc_reduction_kind): New.
* internal-fn.c (expand_GOACC_REDUCTION): New.
* target.def (goacc.reduction): New OpenACC hook.
* targhooks.h (default_goacc_reduction): Declare.
* doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
* doc/tm.texi: Rebuilt.
* omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
scan_sharing_clauses): Remove oacc reduction handling here.
(lower_rec_input_clauses): Don't handle OpenACC reductions here.
(oacc_lower_reduction_var_helper): Delete.
(lower_oacc_reductions): New.
(lower_reduction_clauses): Don't handle OpenACC reductions here.
(lower_oacc_head_tail): Call lower_oacc_reductions.
(oacc_gimple_assign, oacc_init_reduction_array,
oacc_initialize_reduction_data, oacc_finalize_reduction_data,
oacc_process_reduction_data): Delete.
(lower_omp_target): Remove old OpenACC reduction handling.  Insert
dummy OpenACC gang reduction for reductions at outer level.
(oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
(default_goacc_reduction): New.
(execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.

From-SVN: r229767

8 years agoPass manager: add support for termination of pass list
Martin Liska [Wed, 4 Nov 2015 16:50:45 +0000 (17:50 +0100)]
Pass manager: add support for termination of pass list

* cgraphunit.c (cgraph_node::expand_thunk): Call
allocate_struct_function before init_function_start.
(cgraph_node::expand): Use push_cfun and pop_cfun.
* config/i386/i386.c (ix86_code_end): Call
allocate_struct_function before init_function_start.
* config/rs6000/rs6000.c (rs6000_code_end): Likewise.
* function.c (init_function_start): Move preamble to all
callers.
* passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
(execute_one_pass): Handle newly added TODO_discard_function.
(execute_pass_list_1): Terminate if cfun equals to NULL.
(execute_pass_list): Do not push and pop cfun, expect that
cfun is set.
* tree-pass.h (TODO_discard_function): Define.

From-SVN: r229764

8 years agoENABLE_CHECKING refactoring: remove remaining occurrences
Mikhail Maltsev [Wed, 4 Nov 2015 15:01:46 +0000 (15:01 +0000)]
ENABLE_CHECKING refactoring: remove remaining occurrences

libcpp/

* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Remove ENABLE_CHECKING.

gcc/

* cfganal.c (inverted_post_order_compute): Remove conditional
compilation, use flag_checking.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Remove ENABLE_CHECKING.
* genconditions.c: Do not #undef ENABLE_CHECKING.
* sese.h (bb_in_region): Comment out broken check.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
conditional compilation, use flag_checking.

From-SVN: r229758

8 years agoENABLE_CHECKING refactoring: C family front ends
Mikhail Maltsev [Wed, 4 Nov 2015 14:32:42 +0000 (14:32 +0000)]
ENABLE_CHECKING refactoring: C family front ends

gcc/c-family/

* c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
flag_checking.

gcc/cp/

* call.c (validate_conversion_obstack): Define unconditionally.
* constexpr.c (maybe_constant_value, fold_non_dependent_expr): Use
gcc_checking_assert.
* cp-tree.h: Use CHECKING_P instead of ENABLE_CHECKING.
* decl2.c (cxx_post_compilation_parsing_cleanups): Use flag_checking.
* mangle.c (add_substitution): Likewise.
* method.c (maybe_explain_implicit_delete): Likewise.
* parser.c (cp_parser_template_argument_list): Remove conditional
compilation.
* pt.c (check_unstripped_args): Rename to...
(verify_unstripped_args): ... this and remove conditional compilation.
(retrieve_specialization): Guard call of verify_unstripped_args with
flag_checking.
(template_parm_to_arg): Remove conditional compilation.
(template_parms_to_args, coerce_template_parameter_pack,
coerce_template_parms): Likewise.
(tsubst_copy): Use flag_checking.
(type_unification_real): Remove conditional compilation.
(build_non_dependent_expr): Use flag_checking.
* tree.c (build_target_expr): Remove conditional compilation, use
gcc_checking_assert.
* typeck.c (comptypes): Likewise.
* typeck2.c (digest_init_r): Likewise.

From-SVN: r229756

8 years agoHandle recursive restrict in function parameter
Tom de Vries [Wed, 4 Nov 2015 14:18:43 +0000 (14:18 +0000)]
Handle recursive restrict in function parameter

2015-11-04  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/67742
* tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
field.
(push_fields_onto_fieldstack): Handle restrict_pointed_type field.
(create_variable_info_for_1): Add and handle handle_param parameter.
Add restrict handling.
(create_variable_info_for): Call create_variable_info_for_1 with extra
arg.
(make_param_constraints): Drop restrict_name parameter.  Ignore
vi->only_restrict_pointers.
(intra_create_variable_infos): Call create_variable_info_for_1 with
extra arg.  Remove restrict handling.  Call make_param_constraints with
one less arg.

* gcc.dg/tree-ssa/restrict-7.c: New test.
* gcc.dg/tree-ssa/restrict-8.c: New test.

From-SVN: r229755

8 years agoUse decl_type in create_variable_info_for_1
Tom de Vries [Wed, 4 Nov 2015 14:18:34 +0000 (14:18 +0000)]
Use decl_type in create_variable_info_for_1

2015-11-04  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
variable.

From-SVN: r229754

8 years ago* gnat.dg/slice9.adb: New test.
Eric Botcazou [Wed, 4 Nov 2015 08:50:46 +0000 (08:50 +0000)]
* gnat.dg/slice9.adb: New test.

From-SVN: r229735

8 years agogotest: fix handling of --goarch option
Ian Lance Taylor [Wed, 4 Nov 2015 01:52:40 +0000 (01:52 +0000)]
gotest: fix handling of --goarch option

    I managed to add a new --goarch option to gotest without noticing that
    the script already had one.  Worse, they set different variables.
    Remove the old option in favor of the new one.

    Reviewed-on: https://go-review.googlesource.com/16613

From-SVN: r229734

8 years agoDaily bump.
GCC Administrator [Wed, 4 Nov 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r229731

8 years agoremove usage of ROUND_TYPE_SIZE from encoding.c
Trevor Saunders [Tue, 3 Nov 2015 22:43:22 +0000 (22:43 +0000)]
remove usage of ROUND_TYPE_SIZE from encoding.c

gcc got rid of this target macro in 2003, so it seems safe to assume the
alternate path works fine on all targets.

libobjc/ChangeLog:

2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

PR libobjc/24775
* encoding.c (objc_layout_finish_structure): Remove usage of
ROUND_TYPE_SIZE.

From-SVN: r229727

8 years agoremove unused config/arm/coff.h
Trevor Saunders [Tue, 3 Nov 2015 22:43:17 +0000 (22:43 +0000)]
remove unused config/arm/coff.h

gcc/ChangeLog:

2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config/arm/coff.h: Remove.

From-SVN: r229726

8 years agoHandle auto parameter packs.
Jason Merrill [Tue, 3 Nov 2015 20:51:41 +0000 (15:51 -0500)]
Handle auto parameter packs.

* pt.c (struct find_parameter_pack_data): Add
type_pack_expansion_p field.
(find_parameter_packs_r): Use it to turn 'auto' into a parameter pack.
(uses_parameter_packs, make_pack_expansion)
(check_for_bare_parameter_packs, fixed_parameter_pack_p): Set it.

From-SVN: r229722

8 years agolibgomp.h (struct acc_dispatch_t): Remove args from exec_func.
Nathan Sidwell [Tue, 3 Nov 2015 20:18:33 +0000 (20:18 +0000)]
libgomp.h (struct acc_dispatch_t): Remove args from exec_func.

* libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
* plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
(GOMP_OFFLOAD_openacc_parallel): Likewise.
* oacc-host.c (host_openacc_exec): Likewise.
* oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.

From-SVN: r229721

8 years agolex.c (search_line_sse42): Correctly advance the pointer to an aligned address.
Uros Bizjak [Tue, 3 Nov 2015 19:05:50 +0000 (20:05 +0100)]
lex.c (search_line_sse42): Correctly advance the pointer to an aligned address.

* lex.c (search_line_sse42): Correctly advance the pointer to an
aligned address.

From-SVN: r229718

8 years agore PR c/67882 (surprising offsetof result on an invalid array member without diagnostic)
Martin Sebor [Tue, 3 Nov 2015 18:53:19 +0000 (11:53 -0700)]
re PR c/67882 (surprising offsetof result on an invalid array member without diagnostic)

PR c++-common/67882

* c-family/c-common.h (fold_offsetof_1): Add argument.
* c-family/c-common.c (fold_offsetof_1): Diagnose more invalid
offsetof expressions that reference elements past the end of
an array.

        * c-c++-common/builtin-offsetof-2.c: New test.

From-SVN: r229717

8 years agore PR fortran/67982 (Incorrect -Wunused-function warning)
Dominique d'Humieres [Tue, 3 Nov 2015 18:03:38 +0000 (19:03 +0100)]
re PR fortran/67982 (Incorrect -Wunused-function warning)

2015-11-03  Dominique d'Humieres <dominiq@lps.ens.fr>

PR fortran/67982
* gfortran.dg/warn_unused_function_3.f90: New test.

From-SVN: r229716

8 years agoRemove superfluous gcc/ prefixes
Eric Botcazou [Tue, 3 Nov 2015 17:25:24 +0000 (17:25 +0000)]
Remove superfluous gcc/ prefixes

From-SVN: r229715

8 years agogimple-expr.c (useless_type_conversion_p): Reinstate type canonical check for aggrega...
Eric Botcazou [Tue, 3 Nov 2015 17:19:30 +0000 (17:19 +0000)]
gimple-expr.c (useless_type_conversion_p): Reinstate type canonical check for aggregate types and beef up comment for mode...

* gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
check for aggregate types and beef up comment for mode check.

From-SVN: r229714

8 years ago* libsupc++/new: Declare sized deletes.
Jason Merrill [Tue, 3 Nov 2015 16:43:54 +0000 (11:43 -0500)]
* libsupc++/new: Declare sized deletes.

From-SVN: r229713

8 years agotree-vect-data-refs.c (vect_analyze_data_refs): Do not collect data references here.
Richard Biener [Tue, 3 Nov 2015 15:59:17 +0000 (15:59 +0000)]
tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect data references here.

2015-11-03  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
data references here.
* tree-vect-loop.c: Include cgraph.h.
(vect_analyze_loop_2): Collect data references here.
* tree-vect-slp.c (find_bb_location): Inline ...
(vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
Factor in vect_slp_transform_bb.
(vect_slp_transform_bb): Removed.
(vect_slp_analyze_bb_1): Collect data references here.
* tree-vectorizer.c (pass_slp_vectorize::execute): Call
vect_slp_bb.
* tree-vectorizer.h (vect_slp_bb): Declare.
(vect_slp_analyze_bb): Remove.
(vect_slp_transform_bb): Remove.
(find_bb_location): Remove.
(vect_analyze_data_refs): Remove stmt count reference parameter.

From-SVN: r229712

8 years agomksysinfo.sh: Make sure that CLONE_NEWUSER is defined.
Ian Lance Taylor [Tue, 3 Nov 2015 15:07:47 +0000 (15:07 +0000)]
mksysinfo.sh: Make sure that CLONE_NEWUSER is defined.

    Reviewed-on: https://go-review.googlesource.com/16588

From-SVN: r229711

8 years ago2015-11-03 Paolo Carlini <paolo.carlini@oracle.com>
Paolo Carlini [Tue, 3 Nov 2015 13:41:23 +0000 (13:41 +0000)]
2015-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

* Wrap ChangeLog entries to 80 columns.

From-SVN: r229707

8 years agomultiple_target.c (create_dispatcher_calls): Add target check on ifunc.
Evgeny Stupachenko [Tue, 3 Nov 2015 12:02:53 +0000 (12:02 +0000)]
multiple_target.c (create_dispatcher_calls): Add target check on ifunc.

2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>

gcc/
* multiple_target.c (create_dispatcher_calls): Add target check
on ifunc.
(create_target_clone): Change assembler name for versioned declarations.
gcc/testsuite/
* g++.dg/ext/mvc4.C: Add dg-require-ifunc condition.
* gcc.target/i386/mvc5.c: Ditto.
* gcc.target/i386/mvc7.c: Add dg-require-ifunc condition and checks on
resolver.

From-SVN: r229706

8 years agoOpenACC atomic directive
Thomas Schwinge [Tue, 3 Nov 2015 11:28:22 +0000 (12:28 +0100)]
OpenACC atomic directive

gcc/c-family/
* c-pragma.c (oacc_pragmas): Add "atomic".
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
gcc/c/
* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
gcc/cp/
* parser.c (cp_parser_omp_construct, cp_parser_pragma): Handle
PRAGMA_OACC_ATOMIC.
gcc/fortran/
* gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
ST_OACC_END_ATOMIC.
(gfc_exec_op): Add EXEC_OACC_ATOMIC.
* match.h (gfc_match_oacc_atomic): New prototype.
* openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
wrapper functions around...
(gfc_match_omp_oacc_atomic): ... this new function.
(oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
EXEC_OACC_ATOMIC.
* parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
(case_exec_markers): Add ST_OACC_ATOMIC.
(gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
(parse_omp_atomic): Rename to...
(parse_omp_oacc_atomic): ... this new function.  Add omp_p formal
parameter.  Adjust all users.
(parse_executable): Handle ST_OACC_ATOMIC.
(is_oacc): Handle EXEC_OACC_ATOMIC.
* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
EXEC_OACC_ATOMIC.
* st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
* trans-openmp.c (gfc_trans_oacc_directive): Handle
EXEC_OACC_ATOMIC.
* trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
gcc/
* builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
* omp-low.c (check_omp_nesting_restrictions): Allow
GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
contexts.
gcc/testsuite/
* c-c++-common/goacc-gomp/nesting-fail-1.c: Move "atomic" tests
from here to...
* c-c++-common/goacc-gomp/nesting-1.c: ... here, and expect them
to succeed.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
file.
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.

From-SVN: r229703

8 years ago[AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic
Bilyan Borisov [Tue, 3 Nov 2015 10:58:27 +0000 (10:58 +0000)]
[AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic

gcc/

* config/aarch64/aarch64-simd-builtins.def (fmulx): New.
* config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
* config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
builtin.
(vmulxq_f32): Likewise.
(vmulx_f64): New.
(vmulxq_f64): Rewrite to call fmulx builtin.
(vmulxs_f32): Likewise.
(vmulxd_f64): Likewise.
(vmulx_lane_f32): Remove.
* config/aarch64/iterators.md (UNSPEC): Add fmulx.

gcc/testsuite/

* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f32_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f32_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f64_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxs_f32_1.c: New.
* gcc/testsuite/gcc.target/aarch64/simd/vmulxd_f64_1.c: New.

From-SVN: r229702

8 years ago[AArch64] Fix ICE on (const_double:HF 0.0)
Alan Lawrence [Tue, 3 Nov 2015 10:35:31 +0000 (10:35 +0000)]
[AArch64] Fix ICE on (const_double:HF 0.0)

gcc/:

* config/aarch64/aarch64.md (*movhf_aarch64): Use
aarch64_reg_or_fp_zero for second operand.

gcc/testsuite/:

* gcc.target/aarch64/fp16/set_zero_1.c: New.

From-SVN: r229701

8 years agoChangeLog: Fix whitespace.
Uros Bizjak [Tue, 3 Nov 2015 08:45:55 +0000 (09:45 +0100)]
ChangeLog: Fix whitespace.

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

From-SVN: r229700

8 years agoMake the default constructors of tuple and pair conditionally explicit.
Ville Voutilainen [Tue, 3 Nov 2015 08:41:40 +0000 (10:41 +0200)]
Make the default constructors of tuple and pair conditionally explicit.

2015-11-03  Ville Voutilainen  <ville.voutilainen@gmail.com>

Make the default constructors of tuple and pair conditionally explicit.
* include/std/type_traits (is_unsigned, __is_array_unknown_bounds,
__is_default_constructible_atom, __is_default_constructible_safe,
__is_direct_constructible_new_safe, __is_direct_constructible_ref_cast,
__is_nt_default_constructible_impl, is_nothrow_default_constructible,
is_nothrow_constructible, is_nothrow_assignable,
is_trivially_constructible, is_trivially_copy_constructible,
is_trivially_move_constructible, is_trivially_assignable,
is_trivially_copy_assignable, is_trivially_move_assignable,
is_trivially_destructible): Simplify.
* include/std/type_traits (
__do_is_implicitly_default_constructible_impl,
__is_implicitly_default_constructible_impl,
__is_implicitly_default_constructible_safe,
__is_implicitly_default_constructible): New.
* include/bits/stl_pair.h (pair::pair()): Use it.
* include/std/tuple (tuple<_T1, _T2>::tuple): Use it.
* include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New.
* include/std/tuple (tuple<_Types...>::tuple()): Use it.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc: New.
* testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.

From-SVN: r229699

8 years agomvc1.c: Move to ...
Uros Bizjak [Tue, 3 Nov 2015 08:34:42 +0000 (09:34 +0100)]
mvc1.c: Move to ...

* gcc.dg/mvc1.c: Move to ...
* gcc.target/i386/mvc1.c: ... here.  Require ifunc.
* gcc.dg/mvc2.c: Move to ...
* gcc.target/i386/mvc2.c: ... here.
* gcc.dg/mvc3.c: Move to ...
* gcc.target/i386/mvc3.c: ... here.
* gcc.dg/mvc4.c: Move to ...
* gcc.target/i386/mvc4.c: ... here.  Require ifunc.
* gcc.dg/mvc5.c: Move to ...
* gcc.target/i386/mvc5.c: ... here.
* gcc.dg/mvc6.c: Move to ...
* gcc.target/i386/mvc6.c: ... here.
* gcc.dg/mvc7.c: Move to ...
* gcc.target/i386/mvc7.c: ... here.

* g++.dg/ext/mvc1.C: Require ifunc.

From-SVN: r229697

8 years agodefer mark_addressable calls during expand till the end of expand
Alexandre Oliva [Tue, 3 Nov 2015 03:57:07 +0000 (03:57 +0000)]
defer mark_addressable calls during expand till the end of expand

for  gcc/ChangeLog

* gimple-expr.c: Include hash-set.h and rtl.h.
(mark_addressable_queue): New var.
(mark_addressable): Factor actual marking into...
(mark_addressable_1): ... this.  Queue it up during expand.
(mark_addressable_2): New.
(flush_mark_addressable_queue): New.
* gimple-expr.h (flush_mark_addressable_queue): Declare.
* cfgexpand.c: Include gimple-expr.h.
(pass_expand::execute): Flush mark_addressable queue.

From-SVN: r229696

8 years agoRemove ChangeLog entry unintentionally duplicated in the top level
Alexandre Oliva [Tue, 3 Nov 2015 03:52:56 +0000 (03:52 +0000)]
Remove ChangeLog entry unintentionally duplicated in the top level

From-SVN: r229695

8 years agoifcombine: factor out inner block viability test
Alexandre Oliva [Tue, 3 Nov 2015 00:31:18 +0000 (00:31 +0000)]
ifcombine: factor out inner block viability test

Bail out early if the inner block has side effects or is otherwise not
eligible for ifcombine.

for  gcc/ChangeLog

* tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
bb_no_side_effects_p tests...
(tree_ssa_ifcombine_bb): ... here.

From-SVN: r229691

8 years ago[PR68083] don't introduce undefined behavior in ifcombine
Alexandre Oliva [Tue, 3 Nov 2015 00:30:07 +0000 (00:30 +0000)]
[PR68083] don't introduce undefined behavior in ifcombine

The ifcombine pass may move a conditional access to an uninitialized
value before the condition that ensures it is always well-defined,
thus introducing undefined behavior.  Stop it from doing so.

for  gcc/ChangeLog

PR tree-optimization/68083
* tree-ssa-ifcombine.c: Include tree-ssa.h.
(bb_no_side_effects_p): Test for undefined uses too.
* tree-ssa.c (gimple_uses_undefined_value_p): New.
* tree-ssa.h (gimple_uses_undefined_value_p): Declare.

for  gcc/testsuite/ChangeLog

PR tree-optimization/68083
* gcc.dg/torture/pr68083.c: New.  From Zhendong Su.

From-SVN: r229690

8 years agoDaily bump.
GCC Administrator [Tue, 3 Nov 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r229689

8 years agolibgo: Bump version number.
Ian Lance Taylor [Mon, 2 Nov 2015 23:30:21 +0000 (23:30 +0000)]
libgo: Bump version number.

    Reviewed-on: https://go-review.googlesource.com/16583

From-SVN: r229686

8 years ago[PATCH] Avoid more irreducible loops in FSM threader
Jeff Law [Mon, 2 Nov 2015 23:25:06 +0000 (16:25 -0700)]
[PATCH] Avoid more irreducible loops in FSM threader

* tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
cases where the loop latch edge is in the middle of an FSM
path.

* gcc.dg/tree-ssa/ssa-thread-11.c: Verify that we do not have
irreducible loops in the CFG.

From-SVN: r229685

8 years agoRename make_restrict_var_constraints to make_param_constraints
Tom de Vries [Mon, 2 Nov 2015 23:23:28 +0000 (23:23 +0000)]
Rename make_restrict_var_constraints to make_param_constraints

2015-11-03  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
(make_param_constraints): ... this.  Add and handle restrict_name
parameter.  Handle is_full_var case.
(intra_create_variable_infos): Use make_param_constraints.

From-SVN: r229684

8 years agoReplace make_copy_constraint with make_constraint_from in make_restrict_var_constraints
Tom de Vries [Mon, 2 Nov 2015 23:23:19 +0000 (23:23 +0000)]
Replace make_copy_constraint with make_constraint_from in make_restrict_var_constraints

2015-11-03  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (make_restrict_var_constraints): Replace
make_copy_constraint call with make_constraint_from call.

From-SVN: r229683

8 years agofreebsd64.h (ASM_SPEC32): Adust spec to handle PIE executables.
Andreas Tobler [Mon, 2 Nov 2015 21:51:25 +0000 (22:51 +0100)]
freebsd64.h (ASM_SPEC32): Adust spec to handle PIE executables.

2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
    PIE executables.

From-SVN: r229680

8 years agomksysinfo.sh: Handle TIOCGPGRP if too complex for -dump-go-spec.
Ian Lance Taylor [Mon, 2 Nov 2015 20:23:09 +0000 (20:23 +0000)]
mksysinfo.sh: Handle TIOCGPGRP if too complex for -dump-go-spec.

    Reviewed-on: https://go-review.googlesource.com/16580

From-SVN: r229676

8 years agosyscall: Change raw_ioctl cmd type to uintptr.
Ian Lance Taylor [Mon, 2 Nov 2015 19:58:15 +0000 (19:58 +0000)]
syscall: Change raw_ioctl cmd type to uintptr.

    Attempt to fix a build bug report:

    ../../../../libgo/go/syscall/exec_linux.go:185:37: error: integer constant overflow
       _, err1 = raw_ioctl_ptr(sys.Ctty, TIOCSPGRP, unsafe.Pointer(&pgrp))

    Reviewed-on: https://go-review.googlesource.com/16539

From-SVN: r229674

8 years agolibcpp: Improvements to description of source_location in line-map.h
David Malcolm [Mon, 2 Nov 2015 19:47:03 +0000 (19:47 +0000)]
libcpp: Improvements to description of source_location in line-map.h

libcpp/ChangeLog:
* include/line-map.h (source_location): In the table in the
descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION,
LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION.
Add notes about ad-hoc values.

From-SVN: r229673

8 years agoMove constant folds for maths functions to new file
Richard Sandiford [Mon, 2 Nov 2015 16:34:16 +0000 (16:34 +0000)]
Move constant folds for maths functions to new file

The new routines operate on the built-in enum rather than on tree decls.
The idea is to extend this to handle internal functions too, with a
combined enum for both.

The patch also moves fold_fma too, with the same prototype.  The long-term
plan is to replace FMA_EXPR with an internal function, for consistency
with the way that things like SQRT will be handled.

Tested on x86_64-linux-gnu, arm-linux-gnueabi and aarch64-linux-gnu.

gcc/
* builtins.h (fold_fma): Move to fold-const-call.h.
* builtins.c: Include fold-const-call.h.
(mathfn_built_in_2): New function, split out from...
(mathfn_built_in_1): ...here.
(do_real_to_int_conversion, fold_const_builtin_pow)
(fold_const_builtin_logb, fold_const_builtin_significand)
(fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
(do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
(fold_builtin_sincos): Use fold_const_call to handle constants.
(fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
checks for ERROR_MARK.  Use fold_const_call to handle constant
folds for math functions.
(fold_fma): Move to fold-const-call.c.
* fold-const.c: Include fold-const-call.h.
* Makefile.in (OBJS): Add fold-const-call.o.
(PLUGIN_HEADERS): Add fold-const-call.h.
* realmpfr.h (real_from_mpfr): Allow the format to be specified
directly.
* realmpfr.c (real_from_mpfr): Likewise.
* fold-const-call.h, fold-const-call.c: New files.

From-SVN: r229669

8 years ago[ARM] neon-testgen.ml typo
Julian Brown [Mon, 2 Nov 2015 12:43:14 +0000 (12:43 +0000)]
[ARM] neon-testgen.ml typo

* config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
brackets and semicolon.

From-SVN: r229662

8 years agoRevert: tree-scalar-evolution.c: Handle LSHIFT by constant
Alan Lawrence [Mon, 2 Nov 2015 12:39:31 +0000 (12:39 +0000)]
Revert: tree-scalar-evolution.c: Handle LSHIFT by constant

gcc/:

tree-scalar-evolution.c (interpret_rhs_expr): Handle some
LSHIFT_EXPRs as equivalent MULT_EXPRs.

gcc/testsuite/:

gcc.dg/vect/vect-strided-shift.c: New.

From-SVN: r229660

8 years agoMove gcc.target/arm/pr67929_1.c test to execute.exp
Kyrylo Tkachov [Mon, 2 Nov 2015 12:23:36 +0000 (12:23 +0000)]
Move gcc.target/arm/pr67929_1.c test to execute.exp

PR target/67929
* gcc.target/arm/pr67929_1.c: Move to...
* gcc.c-torture/execute/pr67929_1.c: ... Here.
Remove arm-specific directives.  Add noclone, noinline
attributes.

From-SVN: r229657

8 years ago[PR middle-end/68166] Restore build with fold checking enabled
Thomas Schwinge [Mon, 2 Nov 2015 07:42:04 +0000 (08:42 +0100)]
[PR middle-end/68166] Restore build with fold checking enabled

gcc/
PR middle-end/68166
* fold-const.c: Include "md5.h".

From-SVN: r229652

8 years ago[PATCH] Avoid ssa-thread-11.c on various targets
Jeff Law [Mon, 2 Nov 2015 05:59:19 +0000 (22:59 -0700)]
[PATCH] Avoid ssa-thread-11.c on various targets

* gcc.dg/tree-ssa/ssa-thread-11.c: Update target selector.

From-SVN: r229651

8 years ago[PATCH] Fix vms targets
Jeff Law [Mon, 2 Nov 2015 05:27:14 +0000 (22:27 -0700)]
[PATCH] Fix vms targets

* vmsdbgout.c: Revert unused header file reduction patch.

From-SVN: r229650

8 years ago* config/mcore/mcore.c: Include regs.h.
Jeff Law [Mon, 2 Nov 2015 05:23:52 +0000 (22:23 -0700)]
* config/mcore/mcore.c: Include regs.h.

From-SVN: r229649

8 years agoDaily bump.
GCC Administrator [Mon, 2 Nov 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r229648

8 years agomksysinfo.sh: Handle TIOCSPGRP if too complex for -fdump-go-spec.
Ian Lance Taylor [Sun, 1 Nov 2015 20:51:23 +0000 (20:51 +0000)]
mksysinfo.sh: Handle TIOCSPGRP if too complex for -fdump-go-spec.

    Reviewed-on: https://go-review.googlesource.com/16534

From-SVN: r229645

8 years agore PR go/67968 (go1: internal compiler error: in write_specific_type_functions, at...
Ian Lance Taylor [Sun, 1 Nov 2015 20:46:04 +0000 (20:46 +0000)]
re PR go/67968 (go1: internal compiler error: in write_specific_type_functions, at go/gofrontend/types.cc:1812)

PR go/67968
    compiler: Traverse types of call expressions.

    https://gcc.gnu.org/PR67968 provides a test case that causes a gccgo
    crash on valid code.  The compiler failed to build the hash and equality
    functions required for a type descriptor.  The descriptor is for an
    unnamed type that is being returned by a function imported from a
    different package.  The unnamed type is being implicitly converted to an
    interface type by a return statement.  The fix is to ensure that the
    type of a call expression is always traversed.

    Test case sent out for the master testsuite as
    https://golang.org/cl/16532 .

From-SVN: r229642

8 years agopr67609-2.c: Include sse2-check.h.
Uros Bizjak [Sun, 1 Nov 2015 20:22:14 +0000 (21:22 +0100)]
pr67609-2.c: Include sse2-check.h.

* gcc.target/i386/pr67609-2.c: Include sse2-check.h.
(sse2_test): Rename from main.  Do not return 0.

From-SVN: r229641

8 years agopr46756.f: Remove XFAIL for AIX.
David Edelsohn [Sun, 1 Nov 2015 19:36:59 +0000 (19:36 +0000)]
pr46756.f: Remove XFAIL for AIX.

        * gfortran.dg/debug/pr46756.f: Remove XFAIL for AIX.
        * gfortran.dg/proc_ptr_39.f90: Require visibility.
        * gfortran.dg/read_dir.f90: XFAIL AIX.

From-SVN: r229640

8 years agoDaily bump.
GCC Administrator [Sun, 1 Nov 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r229639

8 years agoruntime: If no split stacks, allocate stacks using mmap on 64-bit systems.
Ian Lance Taylor [Sat, 31 Oct 2015 23:48:19 +0000 (23:48 +0000)]
runtime: If no split stacks, allocate stacks using mmap on 64-bit systems.

    When not using split stacks, libgo allocate large stacks for each
    goroutine.  On a 64-bit system, libgo allocates a maximum of 128G for
    the Go heap, and allocates 4M for each stack.  When the stacks are
    allocated from the Go heap, the result is that a program can only create
    32K goroutines, which is not enough for an active Go server.  This patch
    changes libgo to allocate the stacks using mmap directly, rather than
    allocating them out of the Go heap.  This change is only done for 64-bit
    systems when not using split stacks.  When using split stacks, the
    stacks are allocated using mmap directly anyhow.  On a 32-bit system,
    there is no maximum size for the Go heap, or, rather, the maximum size
    is the available address space anyhow.

    Reviewed-on: https://go-review.googlesource.com/16531

From-SVN: r229636

8 years agoMakefile.am (go_cmd_go_files): Update to Go 1.5.1 library by adding alldocs.go, doc...
Ian Lance Taylor [Sat, 31 Oct 2015 21:29:38 +0000 (21:29 +0000)]
Makefile.am (go_cmd_go_files): Update to Go 1.5.1 library by adding alldocs.go, doc.go, note.go.

* Makefile.am (go_cmd_go_files): Update to Go 1.5.1 library by
adding alldocs.go, doc.go, note.go.
* Makefile.in: Rebuild.

From-SVN: r229635

8 years agors6000: Rewrite rs6000_reg_live_or_pic_offset_p
Segher Boessenkool [Sat, 31 Oct 2015 19:50:09 +0000 (20:50 +0100)]
rs6000: Rewrite rs6000_reg_live_or_pic_offset_p

This function is quite a puzzle; untangle it.  No functional change.

2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.

From-SVN: r229634

8 years agors6000: Another PIC LRA fix
Segher Boessenkool [Sat, 31 Oct 2015 19:48:19 +0000 (20:48 +0100)]
rs6000: Another PIC LRA fix

This one for TARGET_TOC && TARGET_MINIMAL_TOC.  Without it, r30 is not
saved in the prologue for functions that do not use r30, but the register
is set later in the prologue anyhow.  This made all java tests fail.

2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
live as for using it elsewhere, for TARGET_MINIMAL_TOC.

From-SVN: r229633

8 years agoRemove support for N3994, terse range-for, which was not adopted.
Ville Voutilainen [Sat, 31 Oct 2015 19:42:01 +0000 (21:42 +0200)]
Remove support for N3994, terse range-for, which was not adopted.

/cp
2015-10-31  Ville Voutilainen  <ville.voutilainen@gmail.com>

Remove the implementation of N3994, terse range-for loops.
* parser.c (cp_parser_for_init_statement): Remove the parsing
of a terse range-for.

/testsuite
2015-10-31  Ville Voutilainen  <ville.voutilainen@gmail.com>

Remove the implementation of N3994, terse range-for loops.
* g++.dg/cpp1z/range-for1.C: Remove.

From-SVN: r229632

8 years agore PR bootstrap/68168 (r229609 breaks bootstrap)
Cesar Philippidis [Sat, 31 Oct 2015 17:55:03 +0000 (10:55 -0700)]
re PR bootstrap/68168 (r229609 breaks bootstrap)

PR Bootstrap/68168

gcc/fortran/
* openmp.c (resolve_omp_clauses): Pass &n->where when calling
gfc_error.

From-SVN: r229631

8 years ago* gnat.dg/discr45.adb: New test.
Eric Botcazou [Sat, 31 Oct 2015 17:13:32 +0000 (17:13 +0000)]
* gnat.dg/discr45.adb: New test.

From-SVN: r229630

8 years agoImplement multiple 'auto' feature from Concepts TS.
Jason Merrill [Sat, 31 Oct 2015 16:20:05 +0000 (12:20 -0400)]
Implement multiple 'auto' feature from Concepts TS.

* parser.c (cp_parser_type_id_1): Allow 'auto' if -fconcepts.
(cp_parser_template_type_arg): Likewise.
(get_concept_from_constraint): Split out most logic to...
* constraint.cc (placeholder_extract_concept_and_args): ...here.
(equivalent_placeholder_constraints, hash_placeholder_constraint): New.
* cxx-pretty-print.c (pp_cxx_constrained_type_spec): New.
* cxx-pretty-print.h: Declare it.
* error.c (dump_type) [TEMPLATE_TYPE_PARM]: Call it.
* pt.c (is_auto_r, extract_autos_r, extract_autos, auto_hash): New.
(type_uses_auto): Use is_auto_r.
(do_auto_deduction): Handle multiple 'auto's if -fconcepts.
* typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Compare
constraints.

From-SVN: r229629

8 years agoStreamline for_each_template_parm.
Jason Merrill [Sat, 31 Oct 2015 16:19:55 +0000 (12:19 -0400)]
Streamline for_each_template_parm.

* pt.c (for_each_template_parm_r): Use WALK_SUBTREE.
Return a meaningful value rather than error_mark_node.
(for_each_template_parm): Return a tree.
(uses_template_parms_level): Return bool.
* cp-tree.h: Adjust.

From-SVN: r229628

8 years agoImprove deduction failure diagnostics.
Jason Merrill [Sat, 31 Oct 2015 16:19:50 +0000 (12:19 -0400)]
Improve deduction failure diagnostics.

* pt.c (unify): Don't diagnose no common base if we already have
the same template.
(do_auto_deduction): Explain deduction failure.

From-SVN: r229627

8 years agopt.c (hash_tmpl_and_args): Use iterative_hash_object on template uid.
Jason Merrill [Sat, 31 Oct 2015 16:19:44 +0000 (12:19 -0400)]
pt.c (hash_tmpl_and_args): Use iterative_hash_object on template uid.

* pt.c (hash_tmpl_and_args): Use iterative_hash_object on template
uid.

From-SVN: r229626

8 years agoMake some functions static.
Jason Merrill [Sat, 31 Oct 2015 16:19:38 +0000 (12:19 -0400)]
Make some functions static.

* parser.c (synthesize_implicit_template_parm)
(finish_fully_implicit_template): Make static.

From-SVN: r229625

8 years agolibgo: Update from Go 1.5 to Go 1.5.1.
Ian Lance Taylor [Sat, 31 Oct 2015 15:23:52 +0000 (15:23 +0000)]
libgo: Update from Go 1.5 to Go 1.5.1.

    Reviewed-on: https://go-review.googlesource.com/16527

From-SVN: r229624

8 years agoggc-common.c : Restore needed header for checking=release.
Markus Trippelsdorf [Sat, 31 Oct 2015 10:57:33 +0000 (10:57 +0000)]
ggc-common.c : Restore needed header for checking=release.

       *ggc-common.c : Restore needed header for checking=release.

From-SVN: r229623

8 years agoTune pointer-plus folding
Tom de Vries [Sat, 31 Oct 2015 09:33:25 +0000 (09:33 +0000)]
Tune pointer-plus folding

2015-10-31  Tom de Vries  <tom@codesourcery.com>

* fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.

* gfortran.dg/assumed_type_2.f90: Update test.
* gfortran.dg/no_arg_check_2.f90: Same.

From-SVN: r229621

8 years agoDon't expect existing varinfo for arguments in intra_create_variable_infos
Tom de Vries [Sat, 31 Oct 2015 08:08:48 +0000 (08:08 +0000)]
Don't expect existing varinfo for arguments in intra_create_variable_infos

2015-10-31  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
existing varinfo for arguments.

From-SVN: r229620

8 years agoAdd initial constraints in create_function_info_for
Tom de Vries [Sat, 31 Oct 2015 08:08:39 +0000 (08:08 +0000)]
Add initial constraints in create_function_info_for

2015-10-31  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
create_function_info_for.  Dump constraints generated during
create_function_info_for. Move intra_create_variable_infos call and
function-return-values-escape bit to ...
(create_function_info_for): ... here, and merge
intra_create_variable_infos call with argument loop.  Add and handle
nonlocal_p parameter.

From-SVN: r229619

8 years agoImprove readability and structure of create_function_info_for
Tom de Vries [Sat, 31 Oct 2015 08:08:28 +0000 (08:08 +0000)]
Improve readability and structure of create_function_info_for

2015-10-31  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
updating is alap, and seperated from preceding code.  Make sure
insert_vi_for_tree is seperated from surrounding code.

From-SVN: r229618

8 years agoUse make_copy_constraint in ipa_pta_execute
Tom de Vries [Sat, 31 Oct 2015 08:08:18 +0000 (08:08 +0000)]
Use make_copy_constraint in ipa_pta_execute

2015-10-31  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.

From-SVN: r229617

8 years agoruntime: Remove now unnecessary pad field from ParFor.
Ian Lance Taylor [Sat, 31 Oct 2015 00:59:47 +0000 (00:59 +0000)]
runtime: Remove now unnecessary pad field from ParFor.

    It is not needed due to the removal of the ctx field.

    Reviewed-on: https://go-review.googlesource.com/16525

From-SVN: r229616

8 years agoDaily bump.
GCC Administrator [Sat, 31 Oct 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r229615

8 years agocompiler: Create pointer type for all types with methods.
Ian Lance Taylor [Fri, 30 Oct 2015 23:00:06 +0000 (23:00 +0000)]
compiler: Create pointer type for all types with methods.

    Reviewed-on: https://go-review.googlesource.com/16522

From-SVN: r229612

8 years ago* config-list.mk (nvptx-none): Add it.
Nathan Sidwell [Fri, 30 Oct 2015 22:31:54 +0000 (22:31 +0000)]
* config-list.mk (nvptx-none): Add it.

From-SVN: r229611