PR c/79428
* c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
instead of c_parser_skip_until_found.
* c-c++-common/cilk-plus/CK/pr79428-4.c: New test.
* c-c++-common/cilk-plus/CK/pr79428-7.c: New test.
* c-c++-common/goacc/pr79428-1.c: New test.
* c-c++-common/gomp/pr79428-2.c: New test.
* c-c++-common/gomp/pr79428-5.c: New test.
* c-c++-common/gomp/pr79428-6.c: New test.
* c-c++-common/pr79428-3.c: New test.
From-SVN: r245309
PR c/79413
* gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
not arbitrary TREE_CONSTANT.
* gcc.c-torture/compile/pr79413.c: New test.
From-SVN: r245304
2017-02-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/69823
* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
* gcc.dg/graphite/pr69823.c: New testcase.
From-SVN: r245295
The __NPS400__ define is currently created in CPP_SPEC unlike the other
target defines, which are created in arc-c.def. Further, the current
__NPS400__ define is (currently) only created when -mcpu=nps400 is
passed, which is fine, except that if GCC is configured using
--with-cpu=nps400 then the -mcpu option is not required and the
__NPS400__ define will not be created.
This commit moves the __NPS400__ define into arc-c.def inline with all
of the other target defines, and removes the code in CPP_SPEC that used
to create the define.
In order to support the creation of the define in arc-c.def, a new
TARGET_NPS400 macro is created in arc.h.
gcc/ChangeLog:
* config/arc/arc-c.def: Add __NPS400__ definition.
* config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
(TARGET_NPS400): Define.
From-SVN: r245294
Currently we only make the base_architecture globally available, this
means we can tell if we have selected arc700/archs/etc but it's not
possible to tell if the user has selected a specific cpu variant, for
example nps400.
One problem this causes is, for example, in arc-c.def, if we want to add
an __NPS400__ define then we need a flag we can check to determine if
this is the right thing to do.
In this commit the arc_selected_cpu variable (previously local within
arc.c) has been made global. Two other variables arc_base_cpu and
arc_selected_arch have been deleted, all of this information can be
found within (or through) arc_selected_cpu.
All uses of arc_base_cpu and arc_selected_arch have been updated. This
commit does not introduce any new defines (like __NPS400__), this is
just a restructuring commit.
The declaration of arc_selected_cpu has moved into arc-arch.h, in
contrast to the declaration of arc_base_cpu which was previously in
arc.h. This avoids a compilation issue when building libgcc, as the
structure and enums declared in arc-arch.h are not included for libgcc
then declaring an arc_selected_cpu (a struct type) in arc.h would result
in an unknown struct error. We got away with this for arc_base_cpu as
that was an enum type. The declaration of arc_selected_cpu in
arc.h could have been wrapped in a '#ifndef IN_LIBGCC2 ... #endif', but
it felt neater to simply move the declaration into arc-arch.h.
gcc/ChangeLog:
* config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
file.
(arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
pointer, arch_info.
(arc_cpu_types): Fill the arch_info field with a pointer into the
arc_arch_types table.
(arc_selected_cpu): Declare.
* config/arc/arc.c (arc_selected_cpu): Make global.
(arc_selected_arch): Delete.
(arc_base_cpu): Delete.
(arc_override_options): Remove references to deleted variables,
update access to arch information.
(ARC_OPT): Update access to arch information.
(ARC_OPTX): Likewise.
* config/arc/arc.h (arc_base_cpu): Remove declaration.
(TARGET_ARC600): Update access to arch information.
(TARGET_ARC601): Likewise.
(TARGET_ARC700): Likewise.
(TARGET_EM): Likewise.
(TARGET_HS): Likewise.
* config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
information.
From-SVN: r245293
gcc/testsuite/ChangeLog:
2017-02-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
PR target/68972
* g++.dg/cpp1y/vla-initlist1.C: Add dg-skip-if directive to
disable this test on power architecture.
From-SVN: r245280
* doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
name.
* doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
broken links to texts that are no longer online.
* doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
LCPC 2006 paper.
* doc/xml/manual/using.xml: Update links to memory model information.
* doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
Standard-Library Exception Safety".
* doc/html/*: Regenerate.
From-SVN: r245277
It was spelled Altivec in two user-facing messages in rs6000.opt; let's
be consistent.
PR translation/79397
* config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
of AltiVec.
From-SVN: r245276
2017-02-08 Martin Jambor <mjambor@suse.cz>
PR ipa/79375
* ipa-prop.c (ipa_alloc_node_params): Make static, return bool
whether allocation happened.
(ipa_initialize_node_params): Do not call ipa_alloc_node_params if
nothing was allocated.
From-SVN: r245275
PR tree-optimization/79408
* tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
constant, but SSA_NAME with a known integer range, use the minimum
of that range instead of op1 to determine if modulo can be replaced
with its first operand.
* gcc.dg/tree-ssa/pr79408.c: New test.
From-SVN: r245273
2017-02-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/71824
* graphite-scop-detection.c (scop_detection::build_scop_breadth):
Check all loops contained in the merged region.
* gcc.dg/graphite/pr71824-2.c: New testcase.
From-SVN: r245270
* doc/html/ext/lwg-active.html: Remove.
* doc/html/ext/lwg-closed.html: Ditto.
* doc/html/ext/lwg-defects.html: Ditto.
* doc/Makefile.am (xml_extradir): Remove.
(xml_extra): Ditto.
(stamp-html-docbook-lwg): Remove recipe...
(stamp-html-docbook-data): ...and its use here.
* doc/Makefile.in: Regenerate.
* doc/xml/manual/intro.xml: Shorten two paragraphs explaining
the relationship to the upstream working group.
Replace a local link to ../ext/lwg-active.html by the upstream one.
Replace all reference to ../ext/lwg-defects.html by a new entity
&DR; which refers to the upstream address.
From-SVN: r245258
PR middle-end/79399
* ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
type from int to size_t.
* ira-costs.c (struct_costs_size): Change type from int to size_t.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r245256
2017-02-04 Steven G. Kargl <kargl@gcc.gnu.org>
* trans-types.c (gfc_get_int_kind_from_width_isofortranen): Choose
REAL type with the widest precision if two (or more) have the same
storage size.
From-SVN: r245255
PR rtl-optimization/79386
* cprop.c (bypass_conditional_jumps): Initialize
bypass_last_basic_block already before splitting bbs after
unconditional traps...
(bypass_conditional_jumps): ... rather than here.
* gcc.c-torture/compile/pr79386.c: New test.
From-SVN: r245251
2017-02-07 Richard Biener <rguenther@suse.de>
c/
* gimple-parser.c (c_parser_gimple_expr_list): Simplify.
(c_parser_gimple_postfix_expression_after_primary):
Do not use c_build_function_call_vec to avoid folding and promotion.
Simplify.
* gcc.dg/gimplefe-23.c: New testcase.
* gcc.dg/gimplefe-24.c: Likewise.
From-SVN: r245244
operands.
gcc/
* config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
builtins to SImode and emit a zero-extend, if necessary.
From-SVN: r245243