]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years agoMake SRA qsort comparator transitive
jamborm [Tue, 26 Sep 2017 17:15:29 +0000 (17:15 +0000)] 
Make SRA qsort comparator transitive

2017-09-26  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (compare_access_positions): Put integral types first,
stabilize sorting of integral types, remove conditions putting
non-full-precision integers last.
(sort_and_splice_var_accesses): Disable scalarization if a
non-integert would be represented by a non-full-precision integer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253207 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-26 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Tue, 26 Sep 2017 16:49:13 +0000 (16:49 +0000)] 
2017-09-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.dg/gomp/associate1.f90: Really commit change
from 2017-09-25.
* gfortran.dg/predcom-1.f: Likewise.
* gfortran.dg/unconstrained_commons.f: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253206 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoEnable no-exec stacks for more targets using the Linux kernel.
jsm28 [Tue, 26 Sep 2017 16:35:53 +0000 (16:35 +0000)] 
Enable no-exec stacks for more targets using the Linux kernel.

Building glibc for many different configurations and running the
compilation parts of the testsuite runs into failures of the
elf/check-execstack test for hppa and microblaze.  Those
configurations default to executable stacks in the Linux kernel
because of VM_DATA_DEFAULT_FLAGS definitions including VM_EXEC
(VM_DATA_DEFAULT_FLAGS being the default definition of
VM_STACK_DEFAULT_FLAGS).

This fails because those configurations are not generating
.note.GNU-stack sections to indicate that programs do not need an
executable stack.  This patch fixes GCC to generate those sections on
those architectures (when configured for a target using the Linux
kernel), as it does on other architectures, together with adding that
section to libgcc .S sources, with the same code as used on other
architectures (or a variant using "#ifdef __linux__" instead of the
usual "#if defined(__ELF__) && defined(__linux__)" for microblaze, as
that configuration doesn't use elfos.h and so doesn't define __ELF__).

This suffices to eliminate that glibc test failure.  (For hppa, the
compilation parts of the glibc testsuite still fail because of the
separate elf/check-textrel failure.)

gcc:
* config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
* config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
* config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
conditionals inside the function instead of around it.  Call
file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
(TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.

libgcc:
* config/microblaze/crti.S, config/microblaze/crtn.S,
config/microblaze/divsi3.S, config/microblaze/moddi3.S,
config/microblaze/modsi3.S, config/microblaze/muldi3_hard.S,
config/microblaze/mulsi3.S,
config/microblaze/stack_overflow_exit.S,
config/microblaze/udivsi3.S, config/microblaze/umodsi3.S,
config/pa/milli64.S: Add .note.GNU-stack section.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253204 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-26 Richard Biener <rguenther@suse.de>
rguenth [Tue, 26 Sep 2017 14:28:13 +0000 (14:28 +0000)] 
2017-09-26  Richard Biener  <rguenther@suse.de>

* graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
fold in ...
(scop_detection::build_scop_breadth): ... this.  Removed.
(scop_detection::loop_is_valid_in_scop): Fold into single caller.
(scop_detection::harmful_stmt_in_bb): Likewise.
(scop_detection::graphite_can_represent_stmt): Likewise.
(scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
(scop_detection::can_represent_loop): Remove recursion, fold in ...
(scop_detection::can_represent_loop_1): ... this.  Removed.
(scop_detection::harmful_loop_in_region): Simplify after inlining
the above and remove more quadraticness.
(build_scops): Adjust.
* tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
quadraticness.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253203 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR target/82267
jakub [Tue, 26 Sep 2017 13:59:18 +0000 (13:59 +0000)] 
PR target/82267
* config/i386/i386.c (ix86_print_operand_address_as): Only test
REGNO (base) == SP_REG if base is a REG.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253202 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR middle-end/35691
jakub [Tue, 26 Sep 2017 13:58:11 +0000 (13:58 +0000)] 
PR middle-end/35691
* tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
if it is different SSA_NAME.
(optimize_range_tests_cmp_bitwise): New function.
(optimize_range_tests): Call it.

* gcc.dg/pr35691-5.c: New test.
* gcc.dg/pr35691-6.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253201 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix changelog entry.
krebbel [Tue, 26 Sep 2017 11:50:30 +0000 (11:50 +0000)] 
Fix changelog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253200 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-26 Richard Biener <rguenther@suse.de>
rguenth [Tue, 26 Sep 2017 11:05:42 +0000 (11:05 +0000)] 
2017-09-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82321
* graphite.c (canonicalize_loop_closed_ssa): Properly check
for the def being inside the loop.

* gcc.dg/graphite/pr82321.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253199 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Fix vmslg instruction and builtin.
krebbel [Tue, 26 Sep 2017 10:35:53 +0000 (10:35 +0000)] 
S/390: Fix vmslg instruction and builtin.

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vx-builtins.md ("vmslg"): Add missing operand in
assembler output.
* config/s390/s390-builtins.def: Fix constraint on op4.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253198 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Fix vector fp unordered compares
krebbel [Tue, 26 Sep 2017 10:35:27 +0000 (10:35 +0000)] 
S/390: Fix vector fp unordered compares

V2DF mode was still hard-coded here.

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_vec_compare): Use the new mode
independent expanders.
* config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
("vec_ordered", "vec_unordered"): New expanders.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253197 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Set the preferred mode for float vectors
krebbel [Tue, 26 Sep 2017 10:35:00 +0000 (10:35 +0000)] 
S/390: Set the preferred mode for float vectors

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
for SFmode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253196 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Fix rtl standard names for vector unpack low->lo
krebbel [Tue, 26 Sep 2017 10:34:35 +0000 (10:34 +0000)] 
S/390: Fix rtl standard names for vector unpack low->lo

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
vec_unpacks_lo_v16qi.
("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253195 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Add FP vec_pack/unpack
krebbel [Tue, 26 Sep 2017 10:34:08 +0000 (10:34 +0000)] 
S/390: Add FP vec_pack/unpack

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vector.md ("vec_unpacks_lo_v4sf")
("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253194 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Add support for vec_shr
krebbel [Tue, 26 Sep 2017 10:33:37 +0000 (10:33 +0000)] 
S/390: Add support for vec_shr

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/predicates.md ("const_shift_by_byte_operand"): New
predicate.
* config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
and V16QI.
("*vec_slb<mode>"): New insn pattern.
("vec_shr_<mode>"): New expander.
* config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
and force the shift count operand to V16QImode.
("vec_srb<mode>"): Set shift count mode to V16QI.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253193 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Add widening vector mult lo/hi patterns
krebbel [Tue, 26 Sep 2017 10:32:58 +0000 (10:32 +0000)] 
S/390: Add widening vector mult lo/hi patterns

Add support for widening vector multiply lo/hi patterns.  These do not
directly match on IBM Z instructions but can be emulated with even/odd
+ vector merge.

gcc/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vector.md ("vec_widen_umult_lo_<mode>")
("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
("vec_widen_smult_hi_<mode>"): New expander definitions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253192 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoEnable vect testcases on S/390.
krebbel [Tue, 26 Sep 2017 10:32:01 +0000 (10:32 +0000)] 
Enable vect testcases on S/390.

Add s390 platform checks where appropriate.

gcc/testsuite/ChangeLog:

2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* lib/target-supports.exp: Enable tests for S/390.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253191 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[ARM] PR82175 - fix -mcpu=native not working correctly.
rearnsha [Tue, 26 Sep 2017 09:33:49 +0000 (09:33 +0000)] 
[ARM] PR82175 - fix -mcpu=native not working correctly.

The new option processing machinery relies on %< rules in the specs to
suppress options that are rewritten.  Suppression appears to be a two
phase process where the option is partially suppressed when %< is
processed and then fully suppressed at the end of the string.  Strings
are separated by commas and there can be multiple strings used to form
DRIVER_SELF_SPECS.

The fix in this case is to separate the driver self specs for ARM into
separate rules as described; this forces the -m{cpu,tune,arch}=native
options to be properly removed before proceeding to the next rule set.

PR target/82175
* config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253189 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-26 Richard Biener <rguenther@suse.de>
rguenth [Tue, 26 Sep 2017 07:29:51 +0000 (07:29 +0000)] 
2017-09-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82320
* tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
isn't a change.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253188 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[testsuite][arm] Fix check_effective_target_vect_hw_misalign check.
clyon [Tue, 26 Sep 2017 04:57:49 +0000 (04:57 +0000)] 
[testsuite][arm] Fix check_effective_target_vect_hw_misalign check.

2017-09-26  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/target-supports.exp (check_effective_target_vect_hw_misalign):
Fix arm check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253187 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR demangler/82195
nathan [Tue, 26 Sep 2017 02:38:12 +0000 (02:38 +0000)] 
PR demangler/82195
* cp-demangle.c (d_encoding): Strip return type when name is a
LOCAL_NAME.
(d_local_name): Strip return type of enclosing TYPED_NAME.
* testsuite/demangle-expected: Add and adjust tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253186 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Tue, 26 Sep 2017 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253185 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
law [Mon, 25 Sep 2017 23:13:55 +0000 (23:13 +0000)] 
* config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
prototype for new argument.
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
mostly extracted from rs6000_emit_allocate_stack.
(rs6000_emit_probe_stack_range_stack_clash): New function.
(rs6000_emit_allocate_stack): Call
rs6000_emit_probe_stack_range_stack_clash as needed.
(rs6000_emit_probe_stack_range): Add additional argument
to call to gen_probe_stack_range{si,di}.
(output_probe_stack_range): New.
(output_probe_stack_range_1): Renamed from output_probe_stack_range.
(output_probe_stack_range_stack_clash): New.
(rs6000_emit_prologue): Emit notes into dump file as requested.
* rs6000.md (allocate_stack): Handle -fstack-clash-protection.
(probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
Add additional operand and pass it to output_probe_stack_range.

* lib/target-supports.exp
(check_effective_target_supports_stack_clash_protection): Enable for
rs6000 and powerpc targets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253179 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR tree-optimization/82163
amker [Mon, 25 Sep 2017 17:32:36 +0000 (17:32 +0000)] 
PR tree-optimization/82163
* tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
(checking_verify_loop_closed_ssa): New parameter.
* tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
(check_loop_closed_ssa_stmt): Delete.
(check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
(verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
(tree_transform_and_unroll_loop): Check loop closed ssa form only for
changed loops.

gcc/testsuite
* gcc.dg/tree-ssa/pr82163.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253161 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoBRIGFE fixes:
visit0r [Mon, 25 Sep 2017 17:17:29 +0000 (17:17 +0000)] 
BRIGFE fixes:

* brig-builtins.def: Treat HSAIL barrier builtins as
  setjmp/longjump style functions.

* brigfrontend/brig-to-generic.cc: Ensure per WI copies of
  private variables are aligned too.

* rt/workitems.c: Assume the host runtime allocates the work group
  memory.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253160 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Mon, 25 Sep 2017 16:49:48 +0000 (16:49 +0000)] 
2017-09-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

* lang.opt:  Add -Wdo-subscript.
* frontend-passes.c (do_t): New type.
(doloop_list): Use variable of do_type.
(if_level): Variable to track if levels.
(select_level): Variable to track select levels.
(gfc_run_passes): Initialize i_level and select_level.
(doloop_code): Record current level of if + select
level in doloop_list.  Add seen_goto if there could
be a branch outside the loop. Use different type for
doloop_list.
(doloop_function): Call do_intent and do_subscript; move
functionality of checking INTENT to do_intent.
(insert_index_t): New type, for callback_insert_index.
(callback_insert_index): New function.
(insert_index): New function.
(do_subscript): New function.
(do_intent): New function.
(gfc_code_walker): Keep track of if_level and select_level.
* invoke.texi: Document -Wdo-subscript.

2017-09-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.dg/do_subscript_1.f90: New test.
* gfortran.dg/do_subscript_2.f90: New test.
* gfortran.dg/gomp/associate1.f90: Add out of bounds warning.
* gfortran.dg/predcom-1.f: Adjust loop bounds.
* gfortran.dg/unconstrained_commons.f: Add out of bounds warning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253156 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoTurn CONSTANT_ALIGNMENT into a hook
rsandifo [Mon, 25 Sep 2017 16:04:27 +0000 (16:04 +0000)] 
Turn CONSTANT_ALIGNMENT into a hook

The definition:

  #define CONSTANT_ALIGNMENT(EXP, ALIGN) \
    (TREE_CODE (EXP) == STRING_CST \
     && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))

was very common, so the patch adds a canned definition for that,
called constant_alignment_word_strings.  Some ports had a variation
that used a port-local FASTEST_ALIGNMENT instead of BITS_PER_WORD;
the patch uses constant_alignment_word_strings if FASTEST_ALIGNMENT
was always BITS_PER_WORD and a port-local hook function otherwise.

2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* target.def (constant_alignment): New hook.
* defaults.h (CONSTANT_ALIGNMENT): Delete.
* doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
(TARGET_CONSTANT_ALIGNMENT): ...this new hook.
* doc/tm.texi: Regenerate.
* targhooks.h (default_constant_alignment): Declare.
(constant_alignment_word_strings): Likewise.
* targhooks.c (default_constant_alignment): New function.
(constant_alignment_word_strings): Likewise.
* builtins.c (get_object_alignment_2): Use targetm.constant_alignment
instead of CONSTANT_ALIGNMENT.
* varasm.c (align_variable, get_variable_align, build_constant_desc)
(force_const_mem): Likewise.
* config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
* config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
(aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
definition.
* config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
* config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
(CONSTANT_ALIGNMENT): Likewise.
* config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(arm_constant_alignment): New function.
* config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
* config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
* config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
* config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(cris_constant_alignment): New function.
* config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
* config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(epiphany_constant_alignment): New function.
* config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
* config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
* config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
* config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
* config/i386/i386-protos.h (ix86_constant_alignment): Delete.
* config/i386/i386.c (ix86_constant_alignment): Make static.
Use the same interface as the target hook.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
* config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
* config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
* config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
* config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
* config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
* config/microblaze/microblaze.c (microblaze_constant_alignment):
New function.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
* config/mips/mips.c (mips_constant_alignment): New function.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
* config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
* config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(mmix_constant_alignment): Make static.  Use the same interface
as the target hook.
* config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
* config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
* config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
* config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
* config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(rs6000_constant_alignment): New function.
* config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
* config/riscv/riscv.c (riscv_constant_alignment): New function.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
* config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(rs6000_constant_alignment): New function.
* config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
* config/s390/s390.c (s390_constant_alignment): New function.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
* config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
* config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(sparc_constant_alignment): New function.
* config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
* config/spu/spu.c (spu_constant_alignment): New function.
(TARGET_CONSTANT_ALIGNMENT): Redefine.
* config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
* config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
* config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
* config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
constant_alignment_word_strings.
* config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
* config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(visium_constant_alignment): New function.
* config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
* config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
(xtensa_constant_alignment): New function.
* system.h (CONSTANT_ALIGNMENT): Poison.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253154 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR c/81854
uros [Mon, 25 Sep 2017 14:59:19 +0000 (14:59 +0000)] 
PR c/81854
* src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
target as a C++ function with no prototype.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253153 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[gcc]
willschm [Mon, 25 Sep 2017 14:35:02 +0000 (14:35 +0000)] 
[gcc]

2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
(rs6000_builtin_valid_without_lhs): New helper function.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253152 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[gcc/testsuite]
willschm [Mon, 25 Sep 2017 14:17:05 +0000 (14:17 +0000)] 
[gcc/testsuite]

2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>

    * gcc.target/powerpc/fold-vec-st-char.c: New.
    * gcc.target/powerpc/fold-vec-st-double.c: New.
    * gcc.target/powerpc/fold-vec-st-float.c: New.
    * gcc.target/powerpc/fold-vec-st-int.c: New.
    * gcc.target/powerpc/fold-vec-st-longlong.c: New.
    * gcc.target/powerpc/fold-vec-st-pixel.c: New.
    * gcc.target/powerpc/fold-vec-st-short.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253151 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoChange permute index type to unsigned short
rsandifo [Mon, 25 Sep 2017 13:26:12 +0000 (13:26 +0000)] 
Change permute index type to unsigned short

This patch changes the element type of (auto_)vec_perm_indices from
unsigned char to unsigned short.  This is needed for fixed-length
2048-bit SVE.  (SVE is variable-length by default, but it's possible
to ask for specific vector lengths if you want to.)

2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* target.h (vec_perm_indices): Use unsigned short rather than
unsigned char.
(auto_vec_perm_indices): Likewise.
* config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
Use unsigned int rather than unsigned char.
* config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253150 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Richard Biener <rguenther@suse.de>
rguenth [Mon, 25 Sep 2017 13:19:16 +0000 (13:19 +0000)] 
2017-09-25  Richard Biener  <rguenther@suse.de>

* cfgloop.h (sort_sibling_loops): Declare.
* cfgloop.c (sort_sibling_loops_cmp): New helper.
(sort_sibling_loops): New function sorting the sibling loop list
in RPO order.
* graphite.c (graphite_transform_loops): Sort sibling loops.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253149 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoUpdate interface to TARGET_VECTORIZE_VEC_PERM_CONST_OK
rsandifo [Mon, 25 Sep 2017 12:57:49 +0000 (12:57 +0000)] 
Update interface to TARGET_VECTORIZE_VEC_PERM_CONST_OK

This patch makes TARGET_VECTORIZE_VEC_PERM_CONST_OK take the permute
vector in the form of a vec_perm_indices instead of an unsigned char *.
It follows on from the recent patch that did the same in target-independent
code.

It was easy to make ARM and AArch64 use vec_perm_indices internally
as well, and converting AArch64 helps with SVE.  I did try doing the same
for the other ports, but the surgery needed was much more invasive and
much less obviously correct.

2017-09-22  Richard Sandiford  <richard.sandifird@linaro.org>

gcc/
* target.def (vec_perm_const_ok): Change sel parameter to
vec_perm_indices.
* optabs-query.c (can_vec_perm_p): Update accordingly.
* doc/tm.texi: Regenerate.
* config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
auto_vec_perm_indices and remove separate nelt field.
(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
(aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
(aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
(aarch64_expand_vec_perm_const): Update accordingly.
(aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
to vec_perm_indices.
* config/arm/arm.c (expand_vec_perm_d): Change perm to
auto_vec_perm_indices and remove separate nelt field.
(arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
(arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
(arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
accordingly.
(arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
to vec_perm_indices.
* config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
sel to vec_perm_indices.
* config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
* config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
* config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
Likewise.
* config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253148 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[PR82155] Fix crash in dwarf2out_abstract_function
pmderodat [Mon, 25 Sep 2017 12:26:36 +0000 (12:26 +0000)] 
[PR82155] Fix crash in dwarf2out_abstract_function

This patch is an attempt to fix the crash reported in PR82155.

When generating a C++ class method for a class that is itself nested in
a class method, dwarf2out_early_global_decl currently leaves the
existing context DIE as it is if it already exists.  However, it is
possible that this call happens at a point where this context DIE is
just a declaration that is itself not located in its own context.

From there, if dwarf2out_early_global_decl is not called on any of the
FUNCTION_DECL in the context chain, DIEs will be left badly scoped and
some (such as the nested method) will be removed by the type pruning
machinery.  As a consequence, dwarf2out_abstract_function will will
crash when called on the corresponding DECL because it asserts that the
DECL has a DIE.

This patch fixes this crash making dwarf2out_early_global_decl process
context DIEs the same way we process abstract origins for FUNCTION_DECL:
if the corresponding DIE exists but is only a declaration, call
dwarf2out_decl anyway on it so that it is turned into a more complete
DIE and so that it is relocated in the proper context.

Bootstrapped and regtested on x86_64-linux.

gcc/

PR debug/82155
* dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
on the FUNCTION_DECL function context if it has a DIE that is a
declaration.

gcc/testsuite/

* g++.dg/pr82155.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253147 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Richard Biener <rguenther@suse.de>
rguenth [Mon, 25 Sep 2017 11:40:23 +0000 (11:40 +0000)] 
2017-09-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82285
* tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
enumeral types.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253146 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[nvptx] Add exit after call to noreturn function
vries [Mon, 25 Sep 2017 10:36:23 +0000 (10:36 +0000)] 
[nvptx] Add exit after call to noreturn function

2017-09-25  Tom de Vries  <tom@codesourcery.com>

PR target/80035
PR target/81069
* config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
noreturn function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253145 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Justin Squirek <squirek@adacore.com>
pmderodat [Mon, 25 Sep 2017 10:07:11 +0000 (10:07 +0000)] 
2017-09-25  Justin Squirek  <squirek@adacore.com>

* aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb,
exp_dbug.adb, exp_unst.adb, exp_util.adb, frontend.adb, gnat1drv.adb,
gnatdll.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb,
gnatfind.adb, libgnat/a-cfhama.ads, libgnat/a-exetim__mingw.adb,
libgnat/a-strmap.adb, libgnat/a-teioed.adb, libgnat/g-alvety.ads,
libgnat/g-expect.adb, libgnat/g-regist.adb, libgnat/g-socket.adb,
libgnat/g-socthi__mingw.ads, libgnat/s-stausa.adb,
libgnat/s-tsmona__linux.adb, libgnat/s-tsmona__mingw.adb,
libgnarl/s-taenca.adb, libgnarl/s-tassta.adb, libgnarl/s-tarest.adb,
libgnarl/s-tpobop.adb, make.adb, makeusg.adb, namet.adb, output.ads,
put_scos.adb, repinfo.adb, rtsfind.adb, scn.ads, sem_attr.adb,
sem_aux.ads, sem_warn.ads, targparm.adb, xr_tabls.adb, xref_lib.adb:
Removal of ineffective use-clauses.
* exp_ch9.adb (Is_Simple_Barrier_Name): Check for false positives with
constant folded barriers.
* ghost.adb, sprint.adb, sem_ch10.adb, sem_warn.adb: Change access to
Subtype_Marks and Names list in use-clause nodes to their new singular
counterparts (e.g. Subtype_Mark, Name).
* par.adb, par-ch8.adb (Append_Use_Clause): Created to set
Prev_Ids and More_Ids in use-clause nodes.
(P_Use_Clause): Modify to take a list as a parameter.
(P_Use_Package_Clause, P_Use_Type_Clause): Divide names and
subtype_marks within an aggregate use-clauses into individual clauses.
* par-ch3.adb, par-ch10.adb, par-ch12.adb: Trivally modify call to
P_Use_Clause to match its new behavior.
* sem.adb (Analyze): Mark use clauses for non-overloaded entities.
* sem_ch4.adb (Try_One_Interp): Add sanity check to handle previous
errors.
* sem_ch6.adb (Analyze_Generic_Subprogram_Body,
Analyze_Subprogram_Body_Helper): Update use clause chain at the end of
the declarative region.
* sem_ch7.adb (Analyze_Package_Body_Helper): Update use clause chain
after analysis (Analyze_Package_Specification): Update use clause chain
when there is no body.
* sem_ch8.ads, sem_ch8.adb (Analyze_Use_Package, Analyze_Use_Type): Add
parameter to determine weither the installation of scopes should also
propagate on the use-clause "chain".
(Mark_Use_Clauses): Created to traverse use-clause chains and determine
what constitutes a valid "use" of a clause.
(Update_Use_Clause_Chain): Created to aggregate common machinary used
to clean up use-clause chains (and warn on ineffectiveness) at the end
of declaritive regions.
* sem_ch8.adb (Analyze_Package_Name): Created to perform analysis on a
package name from a use-package clause.
(Analyze_Package_Name_List): Created to perform analysis on a list of
package names (similar to Analyze_Package_Name).
(Find_Most_Prev): Created to traverse to the beginning of a given
use-clause chain.
(Most_Decendant_Use_Clause): Create to identify which clause from a
given set is highest in scope (not always the most prev).
(Use_One_Package, Use_One_Type): Major cleanup and reorganization to
handle the new chaining algorithm, also many changes related to
redundant clauses. A new parameter has also been added to force
installation to handle certain cases.
* sem_ch9.adb (Analyze_Entry_Body, Analyze_Protected_Body,
Analyze_Task_Body): Mark use clauses on relevant entities.
* sem_ch10.adb, sem_ch10.ads (Install_Context_Clauses,
Install_Parents): Add parameter to determine weither the installation
of scopes should also propagate on the use-clause "chain".
* sem_ch12.adb (Inline_Instance_Body): Add flag in call to
Install_Context to avoid redundant chaining of use-clauses.
* sem_ch13.adb: Minor reformatting.
* sem_res.adb (Resolve): Mark use clauses on operators.
(Resolve_Call, Resolve_Entity_Name): Mark use clauses on relevant
entities.
* sinfo.adb, sinfo.ads (Is_Effective_Use_Clause,
Set_Is_Effective_Use_Clause): Add new flag to N_Use_Clause nodes to
represent any given clause's usage/reference/necessity.
(Prev_Use_Clause, Set_Prev_Use_Clause): Add new field to N_Use_Clause
nodes to allow loose chaining of redundant clauses.
(Set_Used_Operations, Set_Subtype_Mark, Set_Prev_Ids, Set_Names,
Set_More_Ids, Set_Name): Modify set procedure calls to reflect
reorganization in node fields.
* types.ads (Source_File_Index): Adjust index bounds.
(No_Access_To_Source_File): New constant.

2017-09-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_One_Aspect): In ASIS mode make a full copy of
the expression to be used in the generated attribute specification
(rather than relocating it) to avoid resolving a potentially malformed
tree when the expression is resolved through an ASIS-specific call to
Resolve_Aspect_Expressions.  This manifests itself as a crash on a
function with parameter associations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253144 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Yannick Moy <moy@adacore.com>
pmderodat [Mon, 25 Sep 2017 09:51:49 +0000 (09:51 +0000)] 
2017-09-25  Yannick Moy  <moy@adacore.com>

* exp_spark.adb (Expand_SPARK_Indexed_Component,
Expand_SPARK_Selected_Component): New procedures to insert explicit
dereference if required.
(Expand_SPARK): Call the new procedures.

2017-09-25  Patrick Bernardi  <bernardi@adacore.com>

* libgnat/a-stwiun.adb, libgnat/s-stchop__vxworks.adb,
libgnat/g-socthi__vxworks.ads, libgnat/a-stzunb.adb,
libgnat/a-strunb.adb, libgnarl/s-osinte__lynxos178.adb,
libgnarl/s-intman__vxworks.adb, libgnarl/s-osinte__darwin.adb,
libgnarl/a-exetim__darwin.adb: Removed ineffective use-clauses.

2017-09-25  Vasiliy Fofanov  <fofanov@adacore.com>

* adaint.c (win32_wait): Properly handle error and take into account
the WIN32 limitation on the number of simultaneous wait objects.

2017-09-25  Yannick Moy  <moy@adacore.com>

* sem_ch3.adb (Constant_Redeclaration): Do not insert a call to the
invariant procedure in GNATprove mode.
* sem_ch5.adb (Analyze_Assignment): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253143 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Richard Biener <rguenther@suse.de>
rguenth [Mon, 25 Sep 2017 09:48:31 +0000 (09:48 +0000)] 
2017-09-25  Richard Biener  <rguenther@suse.de>

* graphite-optimize-isl.c (optimize_isl): Fail and dump if
ISL errors other than isl_error_quota happen.  Dump if the
schedule is the same.
* graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
errors instead of aborting inside ISL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253142 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Piotr Trojanek <trojanek@adacore.com>
pmderodat [Mon, 25 Sep 2017 09:34:10 +0000 (09:34 +0000)] 
2017-09-25  Piotr Trojanek  <trojanek@adacore.com>

* adabkend.adb (Call_Back_End): Fix wording of "front-end" and
"back-end" in comments.

2017-09-25  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): The extra accessibility check in a
call that appears in a classwide precondition and that mentions an
access formal of the subprogram, must use the accessibility level of
the actual in the call. This is one case in which a reference to a
formal parameter appears outside of the body of the subprogram.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253141 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Hristian Kirtchev <kirtchev@adacore.com>
pmderodat [Mon, 25 Sep 2017 09:24:26 +0000 (09:24 +0000)] 
2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Replace_Actual_Discriminants): Replace a discriminant
for GNATprove.
(Resolve_Entry): Clean up predicate

2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Constituent): Raise Unrecoverable_Error rather
than Program_Error because U_E is more in line with respect to the
intended behavior.

2017-09-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Resolve_Aspect_Expressions): The expression for aspect
Storage_Size does not freeze, and thus can include references to
deferred constants.

2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_spark.adb (Expand_SPARK_Potential_Renaming): Do not process a
reference when it appears within a pragma of no significance to SPARK.
(In_Insignificant_Pragma): New routine.
* sem_prag.ads: Add new table Pragma_Significant_In_SPARK.

2017-09-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Analyze_Associations, case N_Formal_Package): If the
actual is a renaming, indicate that it is the renamed package that must
be frozen before the instantiation.

2017-09-25  Yannick Moy  <moy@adacore.com>

* doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo in description
of dimensionality system in GNAT UG.
* gnat_ugn.texi: Regenerate.

2017-09-25  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb: Call Check_Safe_Pointers from the frontend in
GNATprove_Mode when switch -gnatdF used.

2017-09-25  Piotr Trojanek  <trojanek@adacore.com>

* adabkend.adb (Call_Back_End): Reset Current_Error_Node when starting
the backend.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253140 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc/ada/
pmderodat [Mon, 25 Sep 2017 09:06:22 +0000 (09:06 +0000)] 
gcc/ada/

2017-09-25  Javier Miranda  <miranda@adacore.com>

* exp_imgv.adb (Expand_Image_Attribute): Disable the optimized
expansion of user-defined enumeration types when the generation of
names for enumeration literals is suppressed.

2017-09-25  Gary Dismukes  <dismukes@adacore.com>

* libgnarl/s-taprop__linux.adb: Minor reformatting.

2017-09-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Resolve_Aspect_Expressions): Do not resolve identifiers
that appear as selector names of parameter associations, as these are
never resolved by visibility.

2017-09-25  Justin Squirek  <squirek@adacore.com>

* sem_res.adb (Resolve_Entry): Generate reference for index entities.

gcc/testsuite/

2017-09-25  Justin Squirek  <squirek@adacore.com>

* gnat.dg/entry_family.adb: New testcase

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253139 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Doug Rupp <rupp@adacore.com>
pmderodat [Mon, 25 Sep 2017 08:52:51 +0000 (08:52 +0000)] 
2017-09-25  Doug Rupp  <rupp@adacore.com>

* libgnarl/s-taprop__linux.adb (Compute_Base_Monotonic_Clock): Refine.

2017-09-25  Javier Miranda  <miranda@adacore.com>

* exp_imgv.adb (Is_User_Defined_Enumeration_Type): New subprogram.
(Expand_User_Defined_Enumeration_Image): New subprogram.
(Expand_Image_Attribute): Enable speed-optimized expansion of
user-defined enumeration types when we are compiling with optimizations
enabled.

2017-09-25  Piotr Trojanek  <trojanek@adacore.com>

* sem_util.adb (Has_Null_Abstract_State): Remove, as an exactly same
routine is already provided by Einfo.
* einfo.adb (Has_Null_Abstract_State): Replace with the body from
Sem_Util, which had better comments and avoided double calls to
Abstract_State.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253138 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Patch, Darwin] Fix PR80556 by linking the system unwinder ahead of libgcc_eh.
iains [Mon, 25 Sep 2017 08:47:41 +0000 (08:47 +0000)] 
[Patch, Darwin] Fix PR80556 by linking the system unwinder ahead of libgcc_eh.

PR target/80556
* config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
of libgcc_eh for m64.
* config/i386/darwin64.h: Likewise.

/* WORKAROUND pr80556:
   For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
   from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
   the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
   updated to include new images, and might not even be valid for a single
   image.
   Therefore, for 64b exes at least, we must use the libunwind implementation,
   even when static-libgcc is specified.  We put libSystem first so that
   unwinder symbols are satisfied from there.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253137 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Bob Duff <duff@adacore.com>
pmderodat [Mon, 25 Sep 2017 08:46:40 +0000 (08:46 +0000)] 
2017-09-25  Bob Duff  <duff@adacore.com>

* exp_ch3.adb: Rename Comp_Type_Simple to be Comp_Simple_Init.

2017-09-25  Doug Rupp  <rupp@adacore.com>

* libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable.
(Compute_Base_Monotonic_Clock): New function.
(Timed_Sleep): Adjust to use Base_Monotonic_Clock.
(Timed_Delay): Likewise.
(Monotonic_Clock): Likewise.
* s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253136 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Ed Schonberg <schonberg@adacore.com>
pmderodat [Mon, 25 Sep 2017 08:40:27 +0000 (08:40 +0000)] 
2017-09-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Save_References_In_Aggregate): Small correction to
previous change.

2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb:
Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253135 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-25 Richard Biener <rguenther@suse.de>
rguenth [Mon, 25 Sep 2017 07:25:31 +0000 (07:25 +0000)] 
2017-09-25  Richard Biener  <rguenther@suse.de>

PR middle-end/82144
* dwarf2out.c (gen_enumeration_type_die): Do not add alignment
attribute for incomplete types nor twice for complete ones.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253134 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd myself as nvptx maintainer
vries [Mon, 25 Sep 2017 07:11:31 +0000 (07:11 +0000)] 
Add myself as nvptx maintainer

2017-09-25  Tom de Vries  <tom@codesourcery.com>

* MAINTAINERS (CPU Port Maintainers): Add myself as nvptx maintainer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253133 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRemove unnecessary fold_convert in gfc_(un)likely
jb [Mon, 25 Sep 2017 06:44:18 +0000 (06:44 +0000)] 
Remove unnecessary fold_convert in gfc_(un)likely

This patch removes an unnecessary fold_convert to boolean_type_node at
the end of gfc_likely and gfc_unlikely.  It makes no difference to the
generated code, but makes tree dumps a little bit cleaner.

2017-09-25  Janne Blomqvist  <jb@gcc.gnu.org>
        * trans.c (gfc_unlikely): Remove unnecessary fold_convert.
        (gfc_likely): Likewise.

Regtested on x86_64-pc-linux-gnu.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253132 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Mon, 25 Sep 2017 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253131 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agox32: Encode %esp as %rsp to avoid 0x67 prefix
hjl [Sun, 24 Sep 2017 21:37:09 +0000 (21:37 +0000)] 
x32: Encode %esp as %rsp to avoid 0x67 prefix

Since the upper 32 bits of stack register are always zero for x32, we
can encode %esp as %rsp to avoid 0x67 prefix in address if there is no
index or base register.

gcc/

PR target/82267
* config/i386/i386.c (ix86_print_operand_address_as): Encode
%esp as %rsp to avoid 0x67 prefix if there is no index or base
register.

gcc/testsuite/

PR target/82267
* gcc.target/i386/pr82267.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253127 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 24 Sep 2017 14:26:55 +0000 (14:26 +0000)] 
2017-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
PR fortran/66328

* gfortran.dg/data_derived_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253126 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 24 Sep 2017 13:51:39 +0000 (13:51 +0000)] 
2017-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/54633
* gfortran.dg/intrinsic_bounds_1.f90: New test.
* gfortran.dg/intrinsic_param_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253125 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago+2017-09-24 Dominique d'Humieres <dominiq@lps.ens.fr>
dominiq [Sun, 24 Sep 2017 13:47:11 +0000 (13:47 +0000)] 
+2017-09-24  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR libgfortran/79612
* runtime/bounds.c: Use GFC_ASSERT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253124 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 24 Sep 2017 08:39:00 +0000 (08:39 +0000)] 
2017-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
    Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/80118
* expr.c (gfc_get_full_arrayspec_from_expr): If there is
no symtree, set array spec to NULL.

2017-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
    Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/80118
* gfortran.dg/zero_sized_7.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253123 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sun, 24 Sep 2017 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253122 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR bootstrap/82306
uros [Sat, 23 Sep 2017 14:26:06 +0000 (14:26 +0000)] 
PR bootstrap/82306
* config/i386/i386.opt (mprefer-avx256): Use
ix86_target_flags variable.
* config/i386/i386.c (ix86_target_string): Move
-mprefer-avx256 to flag2_opts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253118 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-23 Janus Weil <janus@gcc.gnu.org>
janus [Sat, 23 Sep 2017 13:15:20 +0000 (13:15 +0000)] 
2017-09-23  Janus Weil  <janus@gcc.gnu.org>

PR fortran/82143
* lang.opt: Add the options -fdefault-real-10 and -fdefault-real-16.
Rename flag_default_real to flag_default_real_8.
* invoke.texi: Add documentation.
* module.c (use_iso_fortran_env_module): flag_default_real is renamed.
* trans-types.c (gfc_init_kinds): Implement the flags
-fdefault-real-10 and -fdefault-real-16. Make -fdefault-double-8 work
without -fdefault-real-8.

2017-09-23  Janus Weil  <janus@gcc.gnu.org>

PR fortran/82143
* gfortran.dg/promotion_3.f90: New test case.
* gfortran.dg/promotion_4.f90: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253117 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris
dansan [Sat, 23 Sep 2017 11:02:54 +0000 (11:02 +0000)] 
PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris

gcc/testsuite:
* gcc.target/i386/pr82196-1.c: (b): Remove volatile asm.
* gcc.target/i386/pr82196-2.c: (b): Likewise.

libgcc:
* configure.ac: Add Check for HAVE_AS_AVX.
* config.in: Regenerate.
* configure: Likewise.
* config/i386/i386-asm.h: Include auto-target.h from libgcc.
(SSE_SAVE, SSE_RESTORE): Emit .byte sequence for !HAVE_AS_AVX.
Correct out-of-date comments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253116 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sat, 23 Sep 2017 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253114 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR bootstrap/81926
ebotcazou [Fri, 22 Sep 2017 20:20:25 +0000 (20:20 +0000)] 
PR bootstrap/81926
* cp-objcp-common.c (cp_get_debug_type): Do only one lookup.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253109 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR middle-end/35691
jakub [Fri, 22 Sep 2017 18:56:23 +0000 (18:56 +0000)] 
PR middle-end/35691
* match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
and x != -1 | y != -1 into (x & y) != -1.

* gcc.dg/pr35691-1.c: Use -fdump-tree-forwprop1-details
instead of -fdump-tree-forwprop-details in dg-options.
* gcc.dg/pr35691-2.c: Likewise.
* gcc.dg/pr35691-3.c: New test.
* gcc.dg/pr35691-4.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253107 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR sanitizer/81929
jakub [Fri, 22 Sep 2017 18:55:21 +0000 (18:55 +0000)] 
PR sanitizer/81929
* tree.c (struct replace_placeholders_t): Add pset field.
(replace_placeholders_r): Call cp_walk_tree with d->pset as
last argument instead of NULL.  Formatting fix.
(replace_placeholders): Add pset variable, add its address
into data.  Pass &pset instead of NULL to cp_walk_tree.

* g++.dg/ubsan/pr81929.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253106 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago debug/xcoff,cmd: add XCOFF support
ian [Fri, 22 Sep 2017 18:49:52 +0000 (18:49 +0000)] 
debug/xcoff,cmd: add XCOFF support

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253105 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-22 Steve Ellcey <sellcey@cavium.com>
sje [Fri, 22 Sep 2017 18:04:18 +0000 (18:04 +0000)] 
2017-09-22  Steve Ellcey  <sellcey@cavium.com>

* config.gcc: Add new case statement to set
default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
s390x-*-linux* case statements.   Added aarch64 to the list of
supported architectures.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253104 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR82289: Computing peeling costs for irrelevant drs
rsandifo [Fri, 22 Sep 2017 17:04:51 +0000 (17:04 +0000)] 
PR82289: Computing peeling costs for irrelevant drs

This PR shows that we weren't filtering out irrelevant stmts in
vect_get_peeling_costs_all_drs (unlike related loops in which
we iterate over all datarefs).

2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/82289
* tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
STMT_VINFO_RELEVANT_P.

gcc/testsuite/
PR tree-optimization/82289
* gcc.dg/vect/pr82289.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253103 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agorange_int_cst_p handling in extract_range_from_binary_expr_1
rsandifo [Fri, 22 Sep 2017 17:00:56 +0000 (17:00 +0000)] 
range_int_cst_p handling in extract_range_from_binary_expr_1

extract_range_from_binary_expr_1 had:

      if (range_int_cst_p (&vr0)
          && range_int_cst_p (&vr1)
          && TYPE_OVERFLOW_WRAPS (expr_type))
        ...
      ...
      extract_range_from_multiplicative_op_1 (vr, code, &vr0, &vr1);

but extract_range_from_multiplicative_op_1 also requires range_int_cst_p.
I think we should bail out if either range isn't a constant.

This might only be theoretical with current sources, but it's needed
once polynomial constants are added.

2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
for VR_RANGE only; don't allow VR_ANTI_RANGE.
(extract_range_from_binary_expr_1): Don't call
extract_range_from_multiplicative_op_1 if !range_int_cst_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253102 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoLet the target choose a vectorisation alignment
rsandifo [Fri, 22 Sep 2017 16:44:29 +0000 (16:44 +0000)] 
Let the target choose a vectorisation alignment

The vectoriser aligned vectors to TYPE_ALIGN unconditionally, although
there was also a hard-coded assumption that this was equal to the type
size.  This was inconvenient for SVE for two reasons:

- When compiling for a specific power-of-2 SVE vector length, we might
  want to align to a full vector.  However, the TYPE_ALIGN is governed
  by the ABI alignment, which is 128 bits regardless of size.

- For vector-length-agnostic code it doesn't usually make sense to align,
  since the runtime vector length might not be a power of two.  Even for
  power of two sizes, there's no guarantee that aligning to the previous
  16 bytes will be an improveent.

This patch therefore adds a target hook to control the preferred
vectoriser (as opposed to ABI) alignment.

2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* target.def (preferred_vector_alignment): New hook.
* doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
hook.
* doc/tm.texi: Regenerate.
* targhooks.h (default_preferred_vector_alignment): Declare.
* targhooks.c (default_preferred_vector_alignment): New function.
* tree-vectorizer.h (dataref_aux): Add a target_alignment field.
Expand commentary.
(DR_TARGET_ALIGNMENT): New macro.
(aligned_access_p): Update commentary.
(vect_known_alignment_in_bytes): New function.
* tree-vect-data-refs.c (vect_calculate_required_alignment): New
function.
(vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
Calculate the misalignment based on the target alignment rather than
the vector size.
(vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
(vect_enhance_data_refs_alignment): Mask the byte misalignment with
the target alignment, rather than masking the element misalignment
with the number of elements in a vector.  Also use the target
alignment when calculating the maximum number of peels.
(vect_find_same_alignment_drs): Use vect_calculate_required_alignment
instead of TYPE_ALIGN_UNIT.
(vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
(vect_create_addr_base_for_vector_ref): Update call accordingly.
(vect_create_data_ref_ptr): Likewise.
(vect_setup_realignment): Realign by ANDing with
-DR_TARGET_MISALIGNMENT.
* tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
the number of peels based on DR_TARGET_ALIGNMENT.
* tree-vect-stmts.c (get_group_load_store_type): Compare the gap
with the guaranteed alignment boundary when deciding whether
overrun is OK.
(vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
(ensure_base_align): Remove stmt_info parameter.  Get the
target base alignment from DR_TARGET_ALIGNMENT.
(vectorizable_store): Update call accordingly.   Interpret
DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
TYPE_ALIGN_UNIT.
(vectorizable_load): Likewise.

gcc/testsuite/
* gcc.dg/vect/vect-outer-3a.c: Adjust dump scan for new wording
of alignment message.
* gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253101 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix testsuite fallout from r252976.
msebor [Fri, 22 Sep 2017 16:30:35 +0000 (16:30 +0000)] 
Fix testsuite fallout from r252976.

gcc/testsuite/ChangeLog:

PR c/81854
* gcc.target/i386/pr80732.c: Correct a type error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253100 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd a vect_get_scalar_dr_size helper function
rsandifo [Fri, 22 Sep 2017 16:26:43 +0000 (16:26 +0000)] 
Add a vect_get_scalar_dr_size helper function

This patch adds a helper function for getting the number of bytes
accessed by an unvectorised data reference, which helps when general
modes have a variable size.

2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* tree-vectorizer.h (vect_get_scalar_dr_size): New function.
* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
(vect_enhance_data_refs_alignment): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253099 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[arm] Improve error checking in parsecpu.awk
vp [Fri, 22 Sep 2017 16:24:46 +0000 (16:24 +0000)] 
[arm] Improve error checking in parsecpu.awk

This patch adds a bit more error checking to parsecpu.awk to ensure
that statements are not missing arguments or have excess arguments
beyond those permitted.  It also slightly improves the handling of
errors so that we terminate properly if parsing fails and be as
helpful as we can while in the parsing phase.

2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>

* config/arm/parsecpu.awk (fatal): Note that we've encountered an
error.  Only quit immediately if parsing is complete.
(BEGIN): Initialize fatal_err and parse_done.
(begin fpu, end fpu): Check number of arguments.
(begin arch, end arch): Likewise.
(begin cpu, end cpu): Likewise.
(cname, tune for, tune flags, architecture, fpu, option): Likewise.
(optalias): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253098 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[arm] auto-generate arm-isa.h from CPU descriptions
vp [Fri, 22 Sep 2017 16:17:11 +0000 (16:17 +0000)] 
[arm] auto-generate arm-isa.h from CPU descriptions

This patch autogenerates arm-isa.h from new entries in arm-cpus.in.
This has the primary advantage that it makes the description file more
self-contained, but it also solves the 'array dimensioning' problem
that Tamar recently encountered.  It adds two new constructs to
arm-cpus.in: features and fgroups.  Fgroups are simply a way of naming
a group of feature bits so that they can be referenced together.  We
follow the convention that feature bits are all lower case, while
fgroups are (predominantly) upper case. This is helpful as in some
contexts they share the same namespace. Most of the minor changes in
this patch are related to adopting this new naming convention.

2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>

* config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
* config/arm/arm-isa.h: Delete.  Move definitions to ...
* arm-cpus.in: ... here.  Use new feature and fgroup values.
* config/arm/arm.c (arm_option_override): Use lower case for feature
bit names.
* config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
(TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
* config/arm/parsecpu.awk (END): Add new command 'isa'.
(isa_pfx): Delete.
(print_isa_bits_for): New function.
(gen_isa): New function.
(gen_comm_data): Use print_isa_bits_for.
(define feature): New keyword.
(define fgroup): New keyword.
* config/arm/t-arm (TM_H): Remove.
(GTM_H): Add arm-isa.h.
(arm-isa.h): Add rule to generate file.
* common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
case for feature bit names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253097 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoC++: underline parameters in mismatching function calls
dmalcolm [Fri, 22 Sep 2017 14:49:52 +0000 (14:49 +0000)] 
C++: underline parameters in mismatching function calls

gcc/cp/ChangeLog:
* call.c (get_fndecl_argument_location): New function.
(convert_like_real): Use it  when complaining about argument type
mismatches.
* cp-tree.h (struct cp_parameter_declarator): Add "loc" field.
* parser.c (make_parameter_declarator): Add "loc" param and use
it to initialize the new field.
(cp_parser_translation_unit): Add UNKNOWN_LOCATION for "loc" of
the "no_parameters" parameter.
(cp_parser_parameter_declaration_list): Set the location of the
result of grokdeclarator to be the parameter's loc, assuming no
errors.
(cp_parser_parameter_declaration): Generate a location for the
parameter and pass to make_parameter_declarator.

gcc/testsuite/ChangeLog:
* g++.dg/diagnostic/param-type-mismatch.C: Update expected results
to reflect highlighting of parameters; add test coverage for
callback parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253096 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR sanitizer/77631
ian [Fri, 22 Sep 2017 13:38:10 +0000 (13:38 +0000)] 
PR sanitizer/77631
* configure.ac: Check for lstat and readlink.
* elf.c (lstat, readlink): Provide dummy versions if real versions
are not available.
* configure, config.h.in: Rebuild.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253095 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Sep 2017 13:16:21 +0000 (13:16 +0000)] 
2017-09-22  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
single caller.
(graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
print of no dependency loops ...
* graphite.c (graphite_transform_loops): ... here.
(canonicalize_loop_closed_ssa_form): Work from inner to outer
loops.
(same_close_phi_node, remove_duplicate_close_phi,
make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
(canonicalize_loop_closed_ssa): ... here and simplify.
* graphite-optimize-isl.c: Include tree-vectorizer.h.
(optimize_isl): Use dump_printf_loc to tell when we stopped
optimizing because of an ISL timeout.

* gcc.dg/graphite/scop-24.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253094 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Sep 2017 12:00:55 +0000 (12:00 +0000)] 
2017-09-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82291
* tree-if-conv.c (predicate_mem_writes): Make sure to
remove writes in blocks predicated with false.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253093 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Sep 2017 10:05:34 +0000 (10:05 +0000)] 
2017-09-22  Richard Biener  <rguenther@suse.de>

* sese.c: Include cfganal.h.
(if_region_set_false_region): Remove.
(create_if_region_on_edge): Likewise.
(move_sese_in_condition): Re-implement without destroying
dominators.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253092 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-22 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 22 Sep 2017 08:38:31 +0000 (08:38 +0000)] 
2017-09-22  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/52832
* gfortran.dg/associate_31.f90 : Remove failing test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253091 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-21 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Sep 2017 07:31:32 +0000 (07:31 +0000)] 
2017-09-21  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
Verify both BBs contain loop PHI nodes before dispatching to
copy_loop_phi_args.
(graphite_regenerate_ast_isl): Do not recompute dominators,
do not verify three times.  Restructure for clarity.
* graphite-scop-detection.c (same_close_phi_node,
remove_duplicate_close_phi, make_close_phi_nodes_unique,
defined_in_loop_p, canonicalize_loop_closed_ssa,
canonicalize_loop_closed_ssa_form): Simplify, remove excess
checking and SSA rewrite, move to ...
* graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
(graphite_initialize): Do not pass in ctx, do not reset the
SCEV cache, compute only dominators.
(graphite_transform_loops): Allocate ISL ctx after
graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
Maintain post-dominators only around build_scops.
* sese.c (if_region_set_false_region): Make static.  Free
and recompute dominators.
(move_sese_in_condition): Assert we don't get called with
post-dominators computed.
* sese.h (if_region_set_false_region): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253090 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago/gcc
uros [Fri, 22 Sep 2017 05:13:33 +0000 (05:13 +0000)] 
/gcc
        * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
mode attribute for TARGET_AVX512VL.

* config/i386/i386.opt (mprefer-avx256): New option.
* config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
to flag_opts.
(ix86_preferred_simd_mode): Return 256-bit AVX modes
for TARGET_PREFER_AVX256.
* doc/invoke.texi (x86 Options): Document -mprefer-avx256.

/testsuite

        * gcc.target/i386/avx512f-constant-set.c: New test.

* g++.dg/ext/pr57362.C: Test __attribute__((target("prefer-avx256"))).
* gcc.target/i386/avx512f-prefer.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253089 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Fri, 22 Sep 2017 00:16:16 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253088 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago<commit missing files>
meissner [Thu, 21 Sep 2017 22:41:08 +0000 (22:41 +0000)] 
<commit missing files>

2017-09-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/float128-fma1.c: New test.
* gcc.target/powerpc/float128-fma2.c: Likewise.
* gcc.target/powerpc/float128-sqrt1.c: Likewise.
* gcc.target/powerpc/float128-sqrt2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253083 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
law [Thu, 21 Sep 2017 22:03:59 +0000 (22:03 +0000)] 
* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
Fix dump output if the only stack space is for pushed registers.

* lib/target-supports.exp
(check_effective_target_frame_pointer_for_non_leaf): Add
case for x86 Solaris.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253082 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix spu build after r253072
rsandifo [Thu, 21 Sep 2017 21:36:27 +0000 (21:36 +0000)] 
Fix spu build after r253072

2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
of insn_cost.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253080 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR go/82284
ian [Thu, 21 Sep 2017 18:44:39 +0000 (18:44 +0000)] 
PR go/82284
* elf.c (backtrace_initialize): Set pd.exe_filename.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253078 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-21 Paul Thomas <pault@gcc.gnu.org>
pault [Thu, 21 Sep 2017 18:40:21 +0000 (18:40 +0000)] 
2017-09-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/52832
* match.c (gfc_match_associate): Before failing the association
try again, allowing a proc pointer selector.

PR fortran/80120
PR fortran/81903
PR fortran/82121
* primary.c (gfc_match_varspec): Introduce 'tgt_expr', which
points to the associate selector, if any. Go through selector
references, after resolution for variables, to catch any full
or section array references. If a class associate name does
not have the same declared type as the selector, resolve the
selector and copy the declared type to the associate name.
Before throwing a no implicit type error, resolve all allowed
selector expressions, and copy the resulting typespec.

PR fortran/67543
* resolve.c (resolve_assoc_var): Selector must cannot be the
NULL expression and it must have a type.

PR fortran/78152
* resolve.c (resolve_symbol): Allow associate names to be
coarrays.

2017-09-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/78512
* gfortran.dg/associate_26.f90 : New test.

PR fortran/80120
* gfortran.dg/associate_27.f90 : New test.

PR fortran/81903
* gfortran.dg/associate_28.f90 : New test.

PR fortran/82121
* gfortran.dg/associate_29.f90 : New test.

PR fortran/67543
* gfortran.dg/associate_30.f90 : New test.

PR fortran/52832
* gfortran.dg/associate_31.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253077 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR c/81882 - attribute ifunc documentation uses invalid code
msebor [Thu, 21 Sep 2017 17:19:16 +0000 (17:19 +0000)] 
PR c/81882 - attribute ifunc documentation uses invalid code

gcc/ChangeLog:

PR c/81882
* doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
code (in C++) or code that triggers warnings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253076 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[demangler PATCH]: Revert and update generic lambda demangling
nathan [Thu, 21 Sep 2017 15:52:31 +0000 (15:52 +0000)] 
[demangler PATCH]: Revert and update generic lambda demangling

https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01482.html
PR demangler/82195
* cp-demangle.c (d_name): Revert addition of 'toplevel' parm.
(has_return_type): Recurse for DEMANGLE_COMPONENT_LOCAL_NAME.
(d_encoding): Revert d_name change.  Use is_fnqual_component_type
to strip modifiers that do not belong.
(d_special_name, d_class_enum_type): Revert d_name call change.
(d_expresion_1): Commonize DEMANGLE_COMPONENT_UNARY building.
(d_local_name): Revert parsing of a function type.
(d_print_comp_inner): An inner LOCAL_NAME might contain a
TEMPLATE.
* testsuite/demangle-expected: Add & adjust tests

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253075 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * stor-layout.c (bit_from_pos): Do not distribute the conversion.
ebotcazou [Thu, 21 Sep 2017 15:45:36 +0000 (15:45 +0000)] 
* stor-layout.c (bit_from_pos): Do not distribute the conversion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253074 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-21 Tamar Christina <tamar.christina@arm.com>
tnfchris [Thu, 21 Sep 2017 14:45:03 +0000 (14:45 +0000)] 
2017-09-21  Tamar Christina  <tamar.christina@arm.com>

PR testsuite/78421
* lib/target-supports.exp (check_effective_target_vect_hw_misalign):
Invert arm check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253073 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRename existing insn_cost to insn_sched_cost
segher [Thu, 21 Sep 2017 14:32:34 +0000 (14:32 +0000)] 
Rename existing insn_cost to insn_sched_cost

haifa-sched exports an insn_cost function, but it is only used in a
few places and specialised to scheduling.  This patch renames it to
insn_sched_cost.

* haifa-sched.c: Rename insn_cost to insn_sched_cost.
* sched-rgn.c: Ditto.
* sel-sched-ir.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253072 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago gcc/fortran/
cesar [Thu, 21 Sep 2017 13:59:26 +0000 (13:59 +0000)] 
gcc/fortran/
* openmp.c (gfc_match_oacc_wait): Don't restrict wait directive
arguments to constant integers.

gcc/testsuite/
* gfortran.dg/goacc/wait.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253071 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agotoplev: read from /dev/urandom only when needed
amonakov [Thu, 21 Sep 2017 12:58:14 +0000 (12:58 +0000)] 
toplev: read from /dev/urandom only when needed

* toplev.h (set_random_seed): Adjust return type.
* toplev.c (init_local_tick): Move eager initialization of random_seed
to get_random_seed.  Adjust comment.
(init_random_seed): Inline to get_random_seed, delete.
(get_random_seed): Initialize random_seed lazily.
(set_random_seed): Do not return previous value.
(print_switch_value): Do not call get_random_seed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253069 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoipa: fix dumping with deleted multiversioning nodes
amonakov [Thu, 21 Sep 2017 12:54:38 +0000 (12:54 +0000)] 
ipa: fix dumping with deleted multiversioning nodes

2017-09-21  Evgeny Kudryashov <kudryashov@ispras.ru>

* cgraph.c (delete_function_version): New, broken out from...
(cgraph_node::delete_function_version): ...here.  Rename to
cgraph_node::delete_function_version_by_decl.  Update all uses.
(cgraph_node::remove): Call delete_function_version.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253066 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR sanitizer/81715
jakub [Thu, 21 Sep 2017 12:26:34 +0000 (12:26 +0000)] 
PR sanitizer/81715
* tree-inline.c (expand_call_inline): Emit clobber stmts for
VAR_DECLs to which addressable non-volatile parameters are mapped
and for id->retvar after the return value assignment.  Clear
id->retval and id->retbnd after inlining.

* g++.dg/tree-ssa/pr8781.C (noop): Change argument type from
const predicate to const predicate & to avoid UB.
* g++.dg/opt/pr81715.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253065 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Sep 2017 12:12:33 +0000 (12:12 +0000)] 
2017-09-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82276
PR tree-optimization/82244
* tree-vrp.c (build_assert_expr_for): Set
SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
has it set.
(remove_range_assertions): Revert earlier change.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253062 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR71951: Fix unwinding with -fomit-frame-pointer
wilco [Thu, 21 Sep 2017 12:08:12 +0000 (12:08 +0000)] 
PR71951: Fix unwinding with -fomit-frame-pointer

As described in PR71951, if libgcc is built with -fomit-frame-pointer,
unwinding crashes, for example while doing a backtrace.  The underlying
reason is the Dwarf unwinder does not setup the frame pointer register
in the initialization code.  When later unwinding a function that uses
the frame pointer, it tries to read FP using _Unwind_GetGR, and this
crashes if has never restored FP.  To unwind correctly the first frame
must save and restore FP (it is unwound in a special way so that it
uses SP instead of FP).  This is done by adding -fno-omit-frame-pointer.

    gcc/
PR target/71951
* config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253061 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2017-09-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Sep 2017 12:02:58 +0000 (12:02 +0000)] 
2017-09-21  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
Restore valid IL after code generation errors.
* graphite.c (graphite_transform_loops): Diagnose code
generation issues as MSG_MISSED_OPTIMIZATION and continue
with processing SCOPs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253060 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoMake more use of simplify_gen_binary
rsandifo [Thu, 21 Sep 2017 11:14:01 +0000 (11:14 +0000)] 
Make more use of simplify_gen_binary

This patch replaces various places that previously used:

  if (GET_CODE (y) == CONST_INT)
    ... plus_constant (..., x, [-]INTVAL (y)) ...
  else
    ... gen_rtx_PLUS/MINUS (..., x, y) ...

with single calls to simplify_gen_binary.  This allows
them to handle polynomial integers as well as constants.

2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* calls.c (compute_argument_addresses): Use simplify_gen_binary
rather than choosing between plus_constant and gen_rtx_<CODE>.
* expr.c (emit_push_insn): Likewise.
(expand_expr_real_2): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253059 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd copy_rtx call to RTL loop unroller
rsandifo [Thu, 21 Sep 2017 11:10:48 +0000 (11:10 +0000)] 
Add copy_rtx call to RTL loop unroller

This is needed if the step is an unshared constant, like many
(const ...)s are.  Without this patch, libgfortran would fail
to build for SVE.

2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* loop-unroll.c (split_iv): Call copy_rtx on the step.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253058 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix unguarded uses of tree_to_uhwi
rsandifo [Thu, 21 Sep 2017 11:06:48 +0000 (11:06 +0000)] 
Fix unguarded uses of tree_to_uhwi

This patch uses tree_fits_uhwi_p to protect a previously unguarded
use of tree_to_uhwi.  Previously we would ICE for variable-sized types.

2017-09-20  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
calling tree_to_uhwi.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253057 138bc75d-0d04-0410-961f-82ee72b054a4