platform/upstream/gcc.git
8 years agoaarch64.c (all_extensions): Removed unused static variable.
Kugan Vivekanandarajah [Wed, 18 May 2016 00:46:58 +0000 (00:46 +0000)]
aarch64.c (all_extensions): Removed unused static variable.

gcc/ChangeLog:

2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

* config/aarch64/aarch64.c (all_extensions): Removed unused static variable.

From-SVN: r236355

8 years agoDaily bump.
GCC Administrator [Wed, 18 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236354

8 years ago* da.po: Update.
Joseph Myers [Wed, 18 May 2016 00:13:34 +0000 (01:13 +0100)]
* da.po: Update.

From-SVN: r236349

8 years ago* da.po, sv.po: Update.
Joseph Myers [Wed, 18 May 2016 00:10:15 +0000 (01:10 +0100)]
* da.po, sv.po: Update.

From-SVN: r236347

8 years ago20030222-1.c: Skip on ptx.
Nathan Sidwell [Tue, 17 May 2016 21:28:11 +0000 (21:28 +0000)]
20030222-1.c: Skip on ptx.

* gcc.c-torture/execute/20030222-1.c: Skip on ptx.
* gcc.dg/pr68671.c: Fix ptx xfail-if.
* gcc.dg/torture/pr54261-1.c: Allocate atomic var statically.
* gcc.dg/torture/type-generic-1.c: Enable UNSAFE for ptx.

From-SVN: r236346

8 years agonvptx.c (nvptx_function_arg_boundary): New.
Nathan Sidwell [Tue, 17 May 2016 21:16:49 +0000 (21:16 +0000)]
nvptx.c (nvptx_function_arg_boundary): New.

* config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
(TARGET_FUNCTION_ARG_BOUNDARY): Override.

testsuite/
* gcc.target/nvptx/abi-vararg-3.c: New.

From-SVN: r236345

8 years agoFold bit_not through ASR and rotate
Mikhail Maltsev [Tue, 17 May 2016 20:50:22 +0000 (20:50 +0000)]
Fold bit_not through ASR and rotate

gcc/

PR tree-optimization/54579
PR middle-end/55299
* match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.

gcc/testsuite

PR tree-optimization/54579
PR middle-end/55299
* gcc.dg/fold-notrotate-1.c: New test.
* gcc.dg/fold-notshift-1.c: New test.
* gcc.dg/fold-notshift-2.c: New test.

From-SVN: r236344

8 years agore PR ipa/71146 (error: __builtin_unreachable or __builtin_trap call with arguments)
Marek Polacek [Tue, 17 May 2016 20:00:41 +0000 (20:00 +0000)]
re PR ipa/71146 (error: __builtin_unreachable or __builtin_trap call with arguments)

PR ipa/71146
* tree-inline.c (expand_call_inline): Call
maybe_remove_unused_call_args.

* g++.dg/ipa/pr71146.C: New test.

From-SVN: r236343

8 years agojit: gcc diagnostics are jit errors
David Malcolm [Tue, 17 May 2016 19:28:47 +0000 (19:28 +0000)]
jit: gcc diagnostics are jit errors

libgccjit performs numerous checks at the API boundary, but
if these succeed, it ignores errors and other diagnostics emitted
within the core of gcc, and treats the compile of a gcc_jit_context
as having succeeded.

This patch ensures that if any diagnostics are emitted, they
are visible from the libgccjit API, and that the the context is
flagged as having failed.

For now any kind of diagnostic is treated as a jit error,
so warnings and notes also count as errors.

gcc/jit/ChangeLog:
* dummy-frontend.c: Include diagnostic.h.
(jit_begin_diagnostic): New function.
(jit_end_diagnostic): New function.
(jit_langhook_init): Register jit_begin_diagnostic
and jit_end_diagnostic with the global_dc.
* jit-playback.c: Include diagnostic.h.
(gcc::jit::playback::context::add_diagnostic): New method.
* jit-playback.h (struct diagnostic_context): Add forward
declaration.
(gcc::jit::playback::context::add_diagnostic): New method.

gcc/testsuite/ChangeLog:
* jit.dg/test-error-array-bounds.c: New test case.

From-SVN: r236342

8 years agojit: document gcc_jit_context_new_call_through_ptr
David Malcolm [Tue, 17 May 2016 19:17:19 +0000 (19:17 +0000)]
jit: document gcc_jit_context_new_call_through_ptr

gcc/jit/ChangeLog:
* docs/topics/expressions.rst (Function calls): Document
gcc_jit_context_new_call_through_ptr.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r236341

8 years agoFix minor doc bugs, signalling typo, major version changes rare.
Jim Wilson [Tue, 17 May 2016 18:50:22 +0000 (18:50 +0000)]
Fix minor doc bugs, signalling typo, major version changes rare.

gcc/
* doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
* doc/invoke.texi (-mnan=2008): Change signalling to signaling.
* doc/md.texi (fmin@var{m}3): Likewise.

From-SVN: r236340

8 years agox & C -> x if we know that x & ~C == 0
Marc Glisse [Tue, 17 May 2016 17:57:27 +0000 (19:57 +0200)]
x & C -> x if we know that x & ~C == 0

2016-05-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (X & C): New transformation.

gcc/testsuite/
* gcc.dg/tree-ssa/and-1.c: New testcase.

From-SVN: r236338

8 years ago~X & Y to X ^ Y in some cases
Marc Glisse [Tue, 17 May 2016 17:54:28 +0000 (19:54 +0200)]
~X & Y to X ^ Y in some cases

2016-05-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (~X & Y): New transformation.

gcc/testsuite/
* gcc.dg/tree-ssa/pr69270.c: Adjust.
* gcc.dg/tree-ssa/andnot-1.c: New testcase.

From-SVN: r236337

8 years agoVRP: range info of new variables
Marc Glisse [Tue, 17 May 2016 17:50:55 +0000 (19:50 +0200)]
VRP: range info of new variables

2016-05-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* tree-vrp.c (simplify_truth_ops_using_ranges): Set range
information for new SSA_NAME.
(simplify_conversion_using_ranges): Get range through get_range_info
instead of get_value_range.

gcc/testsuite/
* gcc.dg/tree-ssa/pr69270.c: Adjust.
* gcc.dg/tree-ssa/vrp99.c: New testcase.

From-SVN: r236336

8 years ago[AArch64, 4/4] Reimplement vmvn* intrinscis, remove inline assembly
Jiong Wang [Tue, 17 May 2016 16:41:18 +0000 (16:41 +0000)]
[AArch64, 4/4] Reimplement vmvn* intrinscis, remove inline assembly

gcc/
* config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
Remove inline assembly.
(vmvn_s16): Likewise.
(vmvn_s32): Likewise.
(vmvn_u8): Likewise.
(vmvn_u16): Likewise.
(vmvn_u32): Likewise.
(vmvnq_s8): Likewise.
(vmvnq_s16): Likewise.
(vmvnq_s32): Likewise.
(vmvnq_u8): Likewise.
(vmvnq_u16): Likewise.
(vmvnq_u32): Likewise.
(vmvn_p8): Likewise.
(vmvnq_p16): Likewise.

From-SVN: r236334

8 years ago[AArch64, 3/4] Reimplement multiply by element to get rid of inline assembly
Jiong Wang [Tue, 17 May 2016 16:39:39 +0000 (16:39 +0000)]
[AArch64, 3/4] Reimplement multiply by element to get rid of inline assembly

gcc/
* config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
Use builtin.
(vmul_n_s16): Likewise.
(vmul_n_s32): Likewise.
(vmul_n_u16): Likewise.
(vmul_n_u32): Likewise.
(vmulq_n_f32): Likewise.
(vmulq_n_f64): Likewise.
(vmulq_n_s16): Likewise.
(vmulq_n_s32): Likewise.
(vmulq_n_u16): Likewise.
(vmulq_n_u32): Likewise.

gcc/testsuite/
* gcc.target/aarch64/simd/vmul_elem_1.c: Use intrinsics.

From-SVN: r236333

8 years ago[AArch64, 2/4] Extend vector mutiply by element to all supported modes
Jiong Wang [Tue, 17 May 2016 16:37:19 +0000 (16:37 +0000)]
[AArch64, 2/4] Extend vector mutiply by element to all supported modes

gcc/
* config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".

gcc/testsuite/
* gcc.target/aarch64/simd/vmul_elem_1.c: New.

From-SVN: r236332

8 years ago[AArch64, 1/4] Add the missing support of vfms_n_f32, vfmsq_n_f32, vfmsq_n_f64
Jiong Wang [Tue, 17 May 2016 16:34:46 +0000 (16:34 +0000)]
[AArch64, 1/4]  Add the missing support of vfms_n_f32, vfmsq_n_f32, vfmsq_n_f64

gcc/
* config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
to *aarch64_fma4_elt_from_dup<mode>.
(*aarch64_fnma4_elt_to_128df): Rename to
*aarch64_fnma4_elt_from_dup<mode>.
* config/aarch64/arm_neon.h (vfma_n_f64): New.
(vfms_n_f32): Likewise.
(vfms_n_f64): Likewise.
(vfmsq_n_f32): Likewise.
(vfmsq_n_f64): Likewise.

gcc/testsuite/
* gcc.target/aarch64/fmla_intrinsic_1.c: Allow ".d[index]" besides
".2d[index]" when scan the assembly.
* gcc.target/aarch64/fmls_intrinsic_1.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: New entry for
float64x1.
* gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c: New.

From-SVN: r236331

8 years ago* wide-int.h: Change fixed_wide_int_storage from class to struct.
Gerald Pfeifer [Tue, 17 May 2016 14:56:45 +0000 (14:56 +0000)]
* wide-int.h: Change fixed_wide_int_storage from class to struct.

From-SVN: r236324

8 years agore PR tree-optimization/71132 (gcc ICE at -O3 on valid code on x86_64-linux-gnu with...
Richard Biener [Tue, 17 May 2016 12:53:30 +0000 (12:53 +0000)]
re PR tree-optimization/71132 (gcc ICE at -O3 on valid code on x86_64-linux-gnu with “seg fault”)

2016-05-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71132
* tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
Only add control dependences for blocks in the loop.
(build_rdg): Adjust.
(generate_code_for_partition): Return whether loop should
be destroyed and delay that.
(distribute_loop): Likewise.
(pass_loop_distribution::execute): Record loops to be destroyed
and perform delayed destroying of loops.

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

From-SVN: r236320

8 years agothink1.C: Fix dg-do and dg-skip order.
Christophe Lyon [Tue, 17 May 2016 12:22:33 +0000 (12:22 +0000)]
think1.C: Fix dg-do and dg-skip order.

* g++.dg/inherit/think1.C: Fix dg-do and dg-skip order.

From-SVN: r236319

8 years ago[AArch64] PR target/70809: Delete aarch64_vmls<mode> pattern
Kyrylo Tkachov [Tue, 17 May 2016 12:15:05 +0000 (12:15 +0000)]
[AArch64] PR target/70809: Delete aarch64_vmls<mode> pattern

PR target/70809
* config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.

* gcc.target/aarch64/pr70809_1.c: New test.

From-SVN: r236318

8 years ago[Patch AArch64] Delete ASM_OUTPUT_DEF and fallback to default .set directive
James Greenhalgh [Tue, 17 May 2016 11:10:10 +0000 (11:10 +0000)]
[Patch AArch64] Delete ASM_OUTPUT_DEF and fallback to default .set directive

gcc/

* config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.

From-SVN: r236317

8 years ago[AArch64][tests] Skip cpu-diagnostics tests when overriding -mcpu
Kyrylo Tkachov [Tue, 17 May 2016 10:22:07 +0000 (10:22 +0000)]
[AArch64][tests] Skip cpu-diagnostics tests when overriding -mcpu

* gcc.target/aarch64/cpu-diagnostics-1.c: Skip if -mcpu is overriden.
* gcc.target/aarch64/cpu-diagnostics-2.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-3.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-4.c: Likewise.

From-SVN: r236316

8 years agore PR target/71114 (Several test suite failures on x86_64-apple-darwin* after revisio...
Ilya Enkovich [Tue, 17 May 2016 09:28:15 +0000 (09:28 +0000)]
re PR target/71114 (Several test suite failures on x86_64-apple-darwin* after revision r236090)

gcc/

PR target/71114
* config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
insertion point for instructions generated by validize_mem.

gcc/testsuite/

PR target/71114
* gcc.target/i386/pr70799-1.c: Fix scan for Darwin.

From-SVN: r236315

8 years agore PR sanitizer/71160 (libasan: Backport support for malloc within dlsym)
Jakub Jelinek [Tue, 17 May 2016 09:17:54 +0000 (11:17 +0200)]
re PR sanitizer/71160 (libasan: Backport support for malloc within dlsym)

PR sanitizer/71160
* asan/asan_malloc_linux.cc: Cherry pick upstream r254395
and r269633.

From-SVN: r236314

8 years ago[Patch onbious] Fix indentation in c-typeck.c parser_build_unary_op
James Greenhalgh [Tue, 17 May 2016 09:02:19 +0000 (09:02 +0000)]
[Patch onbious] Fix indentation in c-typeck.c parser_build_unary_op

gcc/c/

* c-typeck.c (parser_build_unary_op): Fix formatting.

From-SVN: r236313

8 years ago[Patch obvious AArch64] Wrap SHIFT_COUNT_TRUNCATED in brackets
James Greenhalgh [Tue, 17 May 2016 08:56:57 +0000 (08:56 +0000)]
[Patch obvious AArch64] Wrap SHIFT_COUNT_TRUNCATED in brackets

* config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
in brackets.

From-SVN: r236312

8 years ago[AArch64 trivial] Don't define a macro when a variable will do
James Greenhalgh [Tue, 17 May 2016 08:54:19 +0000 (08:54 +0000)]
[AArch64 trivial] Don't define a macro when a variable will do

* config/aarch64/aarch64.c
(aarch64_output_simd_mov_immediate): Make "buf_size" a variable
rather than a macro.

From-SVN: r236311

8 years agooacc-init.c (acc_init): Remove !cached_base_dev condition on call to gomp_init_target...
Chung-Lin Tang [Tue, 17 May 2016 08:07:52 +0000 (08:07 +0000)]
oacc-init.c (acc_init): Remove !cached_base_dev condition on call to gomp_init_targets_once.

2016-05-17  Chung-Lin Tang  <cltang@codesourcery.com>

libgomp/
* oacc-init.c (acc_init): Remove !cached_base_dev condition on call
to gomp_init_targets_once.
(acc_set_device_type): Remove !cached_base_dev condition on call to
gomp_init_targets_once, move call to before acc_device_lock acquire,
to avoid deadlock.
(acc_get_device_num): Remove !cached_base_dev condition on call to
gomp_init_targets_once.
(acc_set_device_num): Likewise.

From-SVN: r236310

8 years agoDaily bump.
GCC Administrator [Tue, 17 May 2016 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236305

8 years agoconfig.guess: Import version 2016-04-02 (newest).
Jakub Sejdak [Mon, 16 May 2016 22:13:37 +0000 (22:13 +0000)]
config.guess: Import version 2016-04-02 (newest).

* config.guess: Import version 2016-04-02 (newest).
* config.sub: Import version 2016-05-10 (newest).

From-SVN: r236301

8 years agoconfigure.ac: Add ARC support to libgloss.
Jeff Law [Mon, 16 May 2016 20:37:43 +0000 (14:37 -0600)]
configure.ac: Add ARC support to libgloss.

2016-05-13  Anton Kolesov  <anton.kolesov@synopsys.com>

* configure.ac: Add ARC support to libgloss.
* configure: Regenerate

From-SVN: r236300

8 years agoipa-inline-analysis.c (compute_inline_parameters): Disable inlinig into instrumentati...
Jan Hubicka [Mon, 16 May 2016 19:33:02 +0000 (21:33 +0200)]
ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig into instrumentation thunks.

* ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
into instrumentation thunks.
* cif-code.def (CIF_CHKP): New.

From-SVN: r236299

8 years agoxopintrin.h: Correct "unsinged" typo in the comments.
Uros Bizjak [Mon, 16 May 2016 18:56:33 +0000 (20:56 +0200)]
xopintrin.h: Correct "unsinged" typo in the comments.

* config/i386/xopintrin.h: Correct "unsinged" typo in the comments.

From-SVN: r236297

8 years ago[hsa] Increase hsa symbol alignment to natural one
Martin Jambor [Mon, 16 May 2016 17:49:44 +0000 (19:49 +0200)]
[hsa] Increase hsa symbol alignment to natural one

2016-05-16  Martin Jambor  <mjambor@suse.cz>

* hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
(get_symbol_for_decl): Sorry if a global symbol in under-aligned.

libgomp/
        * testsuite/libgomp.hsa.c/complex-align-2.c: New test.

From-SVN: r236295

8 years agogimple.c (maybe_remove_unused_call_args): Fix typos in the commentary.
Marek Polacek [Mon, 16 May 2016 17:33:23 +0000 (17:33 +0000)]
gimple.c (maybe_remove_unused_call_args): Fix typos in the commentary.

* gimple.c (maybe_remove_unused_call_args): Fix typos in the
commentary.

From-SVN: r236294

8 years ago[PR 70857] Copy RESULT_DECL of HSA outlined kernel function
Martin Jambor [Mon, 16 May 2016 15:40:30 +0000 (17:40 +0200)]
[PR 70857] Copy RESULT_DECL of HSA outlined kernel function

2016-05-16  Martin Jambor  <mjambor@suse.cz>

PR hsa/70857
* omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
the outlined kernel function.

From-SVN: r236291

8 years agoUpdate documentation of AArch64 options for GCC6 to be more accurate,
Wilco Dijkstra [Mon, 16 May 2016 14:55:15 +0000 (14:55 +0000)]
Update documentation of AArch64 options for GCC6 to be more accurate,

fix a few minor mistakes and remove some duplication.

        * doc/invoke.texi (AArch64 Options): Various updates.

From-SVN: r236290

8 years agoEnable LSA/DLSA for MSA.
Robert Suchanek [Mon, 16 May 2016 14:21:02 +0000 (14:21 +0000)]
Enable LSA/DLSA for MSA.

* config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
(ISA_HAS_DLSA): Ditto.

From-SVN: r236289

8 years agoCorrect the latency of loads in M5100
Matthew Fortune [Mon, 16 May 2016 14:20:47 +0000 (14:20 +0000)]
Correct the latency of loads in M5100

gcc/
* config/mips/m5100.md (m51_int_load): Update the latency to 2.

From-SVN: r236288

8 years agonvptx.c (nvptx_mangle_decl_assembler_name): Revert.
Nathan Sidwell [Mon, 16 May 2016 13:16:28 +0000 (13:16 +0000)]
nvptx.c (nvptx_mangle_decl_assembler_name): Revert.

* config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
(nvptx_name_replacement): Restore.  Add comment.
(write_fn_proto, write_fn_proto_from_insn,
nvptx_output_call_insn): Restore
(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.

From-SVN: r236286

8 years agoSome patterns are using '%w2' for immediate operands...
Wilco Dijkstra [Mon, 16 May 2016 12:52:22 +0000 (12:52 +0000)]
Some patterns are using '%w2' for immediate operands...

Some patterns are using '%w2' for immediate operands, which means that a zero
immediate is actually emitted as 'wzr' or 'xzr'.  This not only changes an
immediate operand into a register operand but may emit illegal instructions
from legal RTL (eg. ORR x0, SP, xzr rather than ORR x0, SP, 0).

* config/aarch64/aarch64.md
(add<mode>3_compareC_cconly_imm): Remove use of %w.
(add<mode>3_compareC_imm): Likewise.
(<optab>si3_uxtw): Split into register and immediate variants.
(andsi3_compare0_uxtw): Likewise.
(and<mode>3_compare0): Likewise.
(and<mode>3nr_compare0): Likewise.
(stack_protect_test_<mode>): Don't use %x for memory operands.

From-SVN: r236285

8 years agoFix multi-line brackets in mips-cpus.def
Matthew Fortune [Mon, 16 May 2016 12:45:31 +0000 (12:45 +0000)]
Fix multi-line brackets in mips-cpus.def

gcc/
* config/mips/mips-cpus.def (p5600): Add multi-line brackets.

From-SVN: r236284

8 years agodecl.c (gnat_to_gnu_entity): Do not build a specific type for the object if it is...
Eric Botcazou [Mon, 16 May 2016 11:33:01 +0000 (11:33 +0000)]
decl.c (gnat_to_gnu_entity): Do not build a specific type for the object if it is deemed a constant.

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
a specific type for the object if it is deemed a constant.

From-SVN: r236283

8 years agofreeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to components of...
Eric Botcazou [Mon, 16 May 2016 11:20:45 +0000 (11:20 +0000)]
freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to components of any elementary types and of...

* freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to
components of any elementary types and of composite types.

From-SVN: r236282

8 years agofreeze.adb (Freeze_Array_Type): Call Addressable predicate instead of testing for...
Eric Botcazou [Mon, 16 May 2016 11:16:42 +0000 (11:16 +0000)]
freeze.adb (Freeze_Array_Type): Call Addressable predicate instead of testing for individual sizes.

* freeze.adb (Freeze_Array_Type): Call Addressable predicate instead
of testing for individual sizes.
(Freeze_Entity): Rework implementation of pragma Implicit_Packing for
array types, in particular test for suitable sizes upfront and do not
mimic the processing that will be redone later in Freeze_Array_Type.

From-SVN: r236281

8 years agotrans.c (elaborate_all_entities_for_package): Also skip formal objects.
Eric Botcazou [Mon, 16 May 2016 11:11:47 +0000 (11:11 +0000)]
trans.c (elaborate_all_entities_for_package): Also skip formal objects.

* gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip
formal objects.

From-SVN: r236280

8 years ago* doc/gnat_rm/implementation_defined_attributes.rst
Eric Botcazou [Mon, 16 May 2016 11:08:53 +0000 (11:08 +0000)]
* doc/gnat_rm/implementation_defined_attributes.rst
(Scalar_Storage_Order): Adjust restriction for packed array types.
* einfo.ads (Is_Bit_Packed_Array): Adjust description.
(Is_Packed): Likewise.
(Is_Packed_Array_Impl_Type): Likewise.
(Packed_Array_Impl_Type): Likewise.
* exp_ch4.adb (Expand_N_Indexed_Component): Do not do anything special
if the prefix is not a packed array implemented specially.
* exp_ch6.adb (Expand_Actuals): Expand indexed components only for
bit-packed array types.
* exp_pakd.adb (Install_PAT): Set Is_Packed_Array_Impl_Type flag on
the PAT before analyzing its declaration.
(Create_Packed_Array_Impl_Type): Remove redundant statements.
* freeze.adb (Check_Component_Storage_Order): Reject packed array
components only if they are bit packed.
(Freeze_Array_Type): Fix logic detecting bit packing and do not bit
pack for composite types whose size is multiple of a byte.
Create the implementation type for packed array types only when it is
needed, i.e. bit packing or packing because of holes in index types.
Make sure the Has_Non_Standard_Rep and Is_Packed flags agree.
* gcc-interface/gigi.h (make_packable_type): Add MAX_ALIGN parameter.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
Call maybe_pad_type instead of building the padding type manually.
(gnat_to_gnu_entity) <E_Array_Subtype>: Do not assert that
Packed_Array_Impl_Type is present for packed arrays.
(gnat_to_gnu_component_type): Also handle known alignment for packed
types by passing it to make_packable_type.
* gcc-interface/utils.c (make_packable_type): Add MAX_ALIGN parameter
and deal with it in the array case.  Adjust recursive call.  Simplify
computation of new size and cap the alignment to BIGGEST_ALIGNMENT.

From-SVN: r236279

8 years agoThis patch fixes the attributes of integer immediate shifts which were...
Wilco Dijkstra [Mon, 16 May 2016 11:01:36 +0000 (11:01 +0000)]
This patch fixes the attributes of integer immediate shifts which were...

This patch fixes the attributes of integer immediate shifts which were
incorrectly modelled as register controlled shifts.  Also change EXTR
attribute to being a rotate.

* gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
Split integer shifts into shift_reg and bfm.
(aarch64_lshr_sisd_or_int_<mode>3): Likewise.
(aarch64_ashr_sisd_or_int_<mode>3): Likewise.
(ror<mode>3_insn): Likewise.
(<optab>si3_insn_uxtw): Likewise.
(<optab><mode>3_insn): Change to rotate_imm.
(extr<mode>5_insn_alt): Likewise.
(extrsi5_insn_uxtw): Likewise.
(extrsi5_insn_uxtw_alt): Likewise.

From-SVN: r236278

8 years agofreeze.adb (Check_Component_Storage_Order): Also get full view of enclosing type.
Thomas Quinot [Mon, 16 May 2016 10:58:20 +0000 (10:58 +0000)]
freeze.adb (Check_Component_Storage_Order): Also get full view of enclosing type.

* freeze.adb (Check_Component_Storage_Order): Also get full view of
enclosing type.

From-SVN: r236277

8 years agoRemove TARGET_INVALID_PARAMETER_TYPE and TARGET_INVALID_RETURN_TYPE hooks.
Matthew Wahab [Mon, 16 May 2016 10:22:25 +0000 (10:22 +0000)]
Remove TARGET_INVALID_PARAMETER_TYPE and TARGET_INVALID_RETURN_TYPE hooks.

c/
2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>

* c-decl.c (grokdeclarator): Remove errmsg and use of
targetm.invalid_return_type.
(grokparms): Remove errmsg and use of
targetm.invalid_parameter_type.

cp/
2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>

* decl.c (grokdeclarator): Remove errmsg and use of
targetm.invalid_return_type.
(grokparms): Remove errmsg and use of
targetm.invalid_parameter_type.

gcc/
2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>

* doc/tm.texi: Regenerate.
* doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
(TARGET_INVALID_RETURN_TYPE): Remove.
* system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
TARGET_INVALID_RETURN_TYPE.
* target.def (invalid_parameter_type): Remove.
(invalid_return_type): Remove.

From-SVN: r236276

8 years agoexp_util.adb (Remove_Side_Effects): Also make a constant if we need to capture the...
Eric Botcazou [Mon, 16 May 2016 10:14:19 +0000 (10:14 +0000)]
exp_util.adb (Remove_Side_Effects): Also make a constant if we need to capture the value for a small not...

* exp_util.adb (Remove_Side_Effects): Also make a constant if we need
to capture the value for a small not by-reference record type.
* freeze.ads (Check_Compile_Time_Size): Adjust comment.
* freeze.adb (Set_Small_Size): Likewise.  Accept a size in the range
of 33 .. 64 bits.
(Check_Compile_Time_Size): Merge scalar and access type cases. Change
variable name in array type case.  For the computation of the packed
size, deal with record components and remove redundant test.
(Freeze_Array_Type): Also adjust packing status when the size of the
component type is in the range 33 .. 64 bits.
* doc/gnat_rm/representation_clauses_and_pragmas.rst: Turn primitive
into elementary type throughout.  Minor tweaks.
(Alignment Clauses): Document actual alignment of packed array types.
(Pragma Pack for Arrays): List only the 3 main cases and adjust.  Add
"simple" to the record case.  Document effect on non packable types.
(Pragma Pack for Records): Likewise.  Add record case and adjust.

From-SVN: r236275

8 years agoipa-inline-analysis.c (compute_inline_parameters): Be more reailistic on estimating...
Jan Hubicka [Mon, 16 May 2016 10:10:28 +0000 (12:10 +0200)]
ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic on estimating thunk bodies...

* ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
calls from thunk.
* ipa-inline-transform.c (inline_call): When inlining into thunk produce
gimple body.
(preserve_function_body_p): No need to preserve function body
* cif-codes.def (CIF_THUNK): Remove.
* cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.

* g++.dg/ipa/ivinline-7.C: Do not xfail.
* g++.dg/ipa/ivinline-9.C: Do not xfail.

From-SVN: r236274

8 years ago* tree-inline.c (expand_call_inline): recurse after inlining thunk.
Jan Hubicka [Mon, 16 May 2016 10:01:57 +0000 (12:01 +0200)]
* tree-inline.c (expand_call_inline): recurse after inlining thunk.

From-SVN: r236273

8 years agotree.c (free_lang_data_in_decl): Also set target/optimization flags for thunks.
Jan Hubicka [Mon, 16 May 2016 09:59:25 +0000 (11:59 +0200)]
tree.c (free_lang_data_in_decl): Also set target/optimization flags for thunks.

* tree.c (free_lang_data_in_decl): Also set target/optimization flags
for thunks.

From-SVN: r236272

8 years agoipa-inline.c (report_inline_failed_reason): Look into thunks, too
Jan Hubicka [Mon, 16 May 2016 09:56:19 +0000 (11:56 +0200)]
ipa-inline.c (report_inline_failed_reason): Look into thunks, too

* ipa-inline.c (report_inline_failed_reason): Look into thunks, too
(inline_small_functions): Do not look for function symbol when resetting
caches.

From-SVN: r236271

8 years agolto-cgraph.c (compute_ltrans_boundary, [...]): Fix handling of inline thunks
Jan Hubicka [Mon, 16 May 2016 09:55:14 +0000 (11:55 +0200)]
lto-cgraph.c (compute_ltrans_boundary, [...]): Fix handling of inline thunks

* lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
of inline thunks
* lto-partition.c (add_symbol_to_partition_1): Likewise.

From-SVN: r236270

8 years ago[ARM] Enable __fp16 as a function parameter and return type.
Matthew Wahab [Mon, 16 May 2016 09:31:58 +0000 (09:31 +0000)]
[ARM] Enable __fp16 as a function parameter and return type.

gcc/
2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
    Jiong Wang  <jiong.wang@arm.com>

* config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
Define __ARM_FP16_ARGS when appropriate.
* config/arm/arm.c (arm_invalid_parameter_type): Remove
declaration.
(arm_invalid_return_type): Likewise.
(TARGET_INVALID_PARAMETER_TYPE): Remove.
(TARGET_INVALID_RETURN_TYPE): Remove.
(aapcs_vfp_sub_candidate): Allow HFmode.
(aapcs_vfp_allocate): Add comment.  Support HFmode.
(aapcs_vfp_allocate_return_reg): Likewise.
(struct aapcs_cp_arg_layout): Slightly reword comments for
is_return_candidate and allocate_return_reg.
(output_mov_vfp): Update assert.
(arm_hard_regno_mode_ok): Remove comment, update HF-mode
condition.
(arm_invalid_parameter_type): Remove.
(amr_invalid_return_type): Remove.
* config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
* config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
* config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.

gcc/testsuite/
2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>

* g++.dg/ext/arm-fp16/fp16-param-1.c: Update expected output.  Add
test for __ARM_FP16_ARGS.
* g++.dg/ext/arm-fp16/fp16-return-1.c: Update expected output.
* gcc.target/arm/aapcs/neon-vect10.c: New.
* gcc.target/arm/aapcs/neon-vect9.c: New.
* gcc.target/arm/aapcs/vfp18.c: New.
* gcc.target/arm/aapcs/vfp19.c: New.
* gcc.target/arm/aapcs/vfp20.c: New.
* gcc.target/arm/aapcs/vfp21.c: New.
* gcc.target/arm/fp16-aapcs-1.c: New.
* g++.target/arm/fp16-param-1.c: Update expected output.  Add
test for __ARM_FP16_ARGS.
* g++.target/arm/fp16-return-1.c: Update expected output.

Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
From-SVN: r236269

8 years agoMove wrong ChangeLog entry from toplevel to gcc ChangeLog.
Matthew Wahab [Mon, 16 May 2016 09:20:50 +0000 (09:20 +0000)]
Move wrong ChangeLog entry from toplevel to gcc ChangeLog.

From-SVN: r236268

8 years agoconfigure.ac: Add ACX_NONCANONICAL_HOST.
Eric Botcazou [Mon, 16 May 2016 08:55:12 +0000 (08:55 +0000)]
configure.ac: Add ACX_NONCANONICAL_HOST.

gnattools/
* configure.ac: Add ACX_NONCANONICAL_HOST.
* configure: Regenerate.
* Makefile.in: Replace host_alias with host_noncanonical.
(gnattools-cross): Do not rename the tools.
gcc/
* configure.ac: Add ACX_NONCANONICAL_HOST.
* configure: Regenerate.
* Makefile.in: Set host_noncanonical.
gcc/ada
* gcc-interface/Make-lang.in (GNATMAKE_FOR_HOST): In the canadian
cross case, use host_noncanonical instead of host as prefix.
(GNATBIND_FOR_HOST): Likewise.
(GNATLINK_FOR_HOST): Likewise.
(GNATLS_FOR_HOST): Likewise.

From-SVN: r236267

8 years ago[AArch64] Remove an unused reload hook.
Matthew Wahab [Mon, 16 May 2016 08:46:00 +0000 (08:46 +0000)]
[AArch64] Remove an unused reload hook.

    * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
    * config/aarch64/arch64-protos.h
    (aarch64_legitimize_reload_address): Remove.
    * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
    Remove.

From-SVN: r236266

8 years ago[testsuite] PR70227, skip g++.dg/lto/pr69589_0.C on targets without -rdynamic support
Jiong Wang [Mon, 16 May 2016 08:11:42 +0000 (08:11 +0000)]
[testsuite] PR70227, skip g++.dg/lto/pr69589_0.C on targets without -rdynamic support

  PR testsuite/70227
  * g++.dg/lto/pr69589_0.C: Skip arm and aarch64 bare-metal targets.

From-SVN: r236265

8 years agoDaily bump.
GCC Administrator [Mon, 16 May 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236263

8 years agore PR fortran/69603 (ICE: segfault with -fimplicit-none and proc_ptr_comp_24.f90)
Harald Anlauf [Sun, 15 May 2016 18:34:57 +0000 (18:34 +0000)]
re PR fortran/69603 (ICE: segfault with -fimplicit-none and proc_ptr_comp_24.f90)

2016-05-15  Harald Anlauf  <anlauf@gmx.de>

PR fortran/69603
* interface.c (compare_parameter): Check for non-NULL pointer.

2016-05-15  Harald Anlauf  <anlauf@gmx.de>

PR fortran/69603
* gfortran.dg/pr69603.f90: New testcase.

From-SVN: r236253

8 years agoDaily bump.
GCC Administrator [Sun, 15 May 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236248

8 years agodec_union_4.f90: Fix endian issue.
Fritz Reese [Sat, 14 May 2016 16:00:35 +0000 (16:00 +0000)]
dec_union_4.f90: Fix endian issue.

2016-05-14  Fritz Reese  <fritzoreese@gmail.com>

* gfortran.dg/dec_union_4.f90: Fix endian issue.

2016-05-14  Fritz Reese  <fritzoreese@gmail.com>

* gfortran.texi: Update example of DEC UNION extension.

From-SVN: r236242

8 years agore PR fortran/71047 (Allocatable component of INTENT(OUT) dummy not set correctly)
Fritz Reese [Sat, 14 May 2016 15:29:13 +0000 (15:29 +0000)]
re PR fortran/71047 (Allocatable component of INTENT(OUT) dummy not set correctly)

2016-05-14  Fritz Reese <fritzoreese@gmail.com>

PR fortran/71047
* expr.c (gfc_default_initializer): Avoid extra component refs in
constructors for derived types and classes.

2016-05-14  Fritz Reese <fritzoreese@gmail.com>
PR fortran/71047
* gfortran.dg/pr71047.f08: New test.

From-SVN: r236241

8 years agore PR target/71097 (Additional testsuite failures with -mcmodel=medium)
Uros Bizjak [Sat, 14 May 2016 13:22:45 +0000 (15:22 +0200)]
re PR target/71097 (Additional testsuite failures with -mcmodel=medium)

PR target/71097
* config/i386/i386.md (*movtf_internal): Before register allocation,
do not allow FP constants for CM_MEDIUM memory model, allow only
standard FP constants for CM_LARGE and CM_LARGE_PIC models.
(*movxf_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.

From-SVN: r236240

8 years agoi * gcc.dg/vect/pr66636.c (foo): Add __attribute__((noinline,noclone)).
Uros Bizjak [Sat, 14 May 2016 09:07:13 +0000 (11:07 +0200)]
i * gcc.dg/vect/pr66636.c (foo): Add __attribute__((noinline,noclone)).

From-SVN: r236238

8 years agoDaily bump.
GCC Administrator [Sat, 14 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236237

8 years agocombine: Don't call extract_left_shift with count < 0 (PR67483)
Segher Boessenkool [Fri, 13 May 2016 23:01:40 +0000 (01:01 +0200)]
combine: Don't call extract_left_shift with count < 0 (PR67483)

If the compiled program does a shift by a negative amount, combine will
happily work with that, but it shouldn't then do an undefined operation
in GCC itself.  This patch fixes the first case mentioned in the bug
report (I haven't been able to reproduce the second case, on trunk at
least).

PR rtl-optimization/67483
* combine.c (make_compound_operation): Don't call extract_left_shift
with negative shift amounts.

From-SVN: r236232

8 years agoImplement C11 DR#423 resolution (ignore function return type qualifiers).
Joseph Myers [Fri, 13 May 2016 21:35:39 +0000 (22:35 +0100)]
Implement C11 DR#423 resolution (ignore function return type qualifiers).

The resolution of C11 DR#423, apart from doing things with the types
of expressions cast to qualified types which are only in standard
terms observable with _Generic and which agree with how GCC has
implemented _Generic all along, also specifies that qualifiers are
discarded from function return types: "derived-declarator-type-list
function returning T" becomes "derived-declarator-type-list function
returning the unqualified version of T" in the rules giving types for
function declarators.  This means that declarations of a function with
both qualified and unqualified return types are now compatible,
similar to how different declarations can vary in whether a function
argument is declared with a qualifier or unqualified type.

This patch implements this resolution.  Since the motivation for the
change was _Generic, the resolution is restricted to C11 mode; there's
no reason to consider there to be a defect in this regard in older
standard versions.  Some less-obvious issues are handled as follows:

* As usual, and as with function arguments, _Atomic is not considered
  a qualifier for this purpose; that is, function declarations must
  agree regarding whether the return type is atomic.

* By 6.9.1#2, a function definition cannot return qualified void.  But
  with this change, specifying "const void" in the declaration
  produces the type "function returning void", which is perfectly
  valid, so "const void f (void) {}" is no longer an error.

* The application to restrict is less clear.  The way I am
  interpreting it in this patch is that "unqualified version of T" is
  not valid if T is not valid, as in the case where T is a
  restrict-qualified version of a type that cannot be restrict
  qualified (non-pointer, or pointer-to-function).  But it's possible
  to argue the other way from the wording.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/c:
* c-decl.c (grokdeclarator): For C11, discard qualifiers on
function return type.

gcc/testsuite:
* gcc.dg/qual-return-5.c, gcc.dg/qual-return-6.c: New tests.
* gcc.dg/call-diag-2.c, gcc.dg/qual-return-2.c ,
gcc.dg/qual-return-3.c, gcc.dg/qual-return-4.c: Use -std=gnu99.

From-SVN: r236231

8 years agoc++/60049 - Right and left shift undefined behavior not an error in a constexpr
Martin Sebor [Fri, 13 May 2016 20:55:26 +0000 (20:55 +0000)]
c++/60049 - Right and left shift undefined behavior not an error in a constexpr
Add new test.

From-SVN: r236225

8 years agoescape: Implement the discovery phase.
Ian Lance Taylor [Fri, 13 May 2016 20:42:36 +0000 (20:42 +0000)]
escape: Implement the discovery phase.

    Implements the discovery phase according the SCC algorithm used in
    gc/esc.go.  Traverse all functions to find components that are either
    trivial or recursive.  The discovered function groups will be analyzed
    from the bottom-up to allow for an inter-procedural analysis.

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

From-SVN: r236224

8 years agojit: use FINAL and OVERRIDE throughout
David Malcolm [Fri, 13 May 2016 20:27:50 +0000 (20:27 +0000)]
jit: use FINAL and OVERRIDE throughout

Mark most virtual functions in gcc/jit as being FINAL OVERRIDE.
gcc::jit::recording::lvalue::access_as_rvalue is the sole OVERRIDE
that isn't a FINAL.

gcc/jit/ChangeLog:
* jit-playback.h: Within namespace gcc:jit::playback...
(compile_to_memory::postprocess): Mark with FINAL OVERRIDE.
(compile_to_file::postprocess): Likewise.
(function::finalizer): Likewise.
(block::finalizer): Likewise.
(source_file::finalizer): Likewise.
(source_line::finalizer): Likewise.
* jit-recording.c (gcc::jit::rvalue_usage_validator):: Likewise.
* jit-recording.h: Within namespace gcc::jit::recording...
(string::replay_into): Mark with FINAL OVERRIDE.
(string::make_debug_string): Likewise.
(string::write_reproducer): Likewise.
(location::replay_into): Likewise.
(location::dyn_cast_location): Likewise.
(location::make_debug_string): Likewise.
(location::write_reproducer): Likewise.
(memento_of_get_type::dereference): Likewise.
(memento_of_get_type::accepts_writes_from): Likewise.
(memento_of_get_type::is_int): Likewise.
(memento_of_get_type::is_float): Likewise.
(memento_of_get_type::is_bool): Likewise.
(memento_of_get_type::is_pointer): Likewise.
(memento_of_get_type::is_array): Likewise.
(memento_of_get_type::is_void): Likewise.
(memento_of_get_type::replay_into): Likewise.
(memento_of_get_type::make_debug_string): Likewise.
(memento_of_get_type::write_reproducer): Likewise.
(memento_of_get_pointer::dereference): Likewise.
(memento_of_get_pointer::accepts_writes_from): Likewise.
(memento_of_get_pointer::replay_into): Likewise.
(memento_of_get_pointer::is_int): Likewise.
(memento_of_get_pointer::is_float): Likewise.
(memento_of_get_pointer::is_bool): Likewise.
(memento_of_get_pointer::is_pointer): Likewise.
(memento_of_get_pointer::is_array): Likewise.
(memento_of_get_pointer::make_debug_string): Likewise.
(memento_of_get_pointer::write_reproducer): Likewise.
(memento_of_get_const::dereference): Likewise.
(memento_of_get_const::accepts_writes_from): Likewise.
(memento_of_get_const::unqualified): Likewise.
(memento_of_get_const::is_int): Likewise.
(memento_of_get_const::is_float): Likewise.
(memento_of_get_const::is_bool): Likewise.
(memento_of_get_const::is_pointer): Likewise.
(memento_of_get_const::is_array): Likewise.
(memento_of_get_const::void replay_into): Likewise;
(memento_of_get_const::make_debug_string): Likewise.
(memento_of_get_const::write_reproducer): Likewise.
(memento_of_get_volatile::dereference): Likewise.
(memento_of_get_volatile::unqualified): Likewise.
(memento_of_get_volatile::is_int): Likewise.
(memento_of_get_volatile::is_float): Likewise.
(memento_of_get_volatile::is_bool): Likewise.
(memento_of_get_volatile::is_pointer): Likewise.
(memento_of_get_volatile::is_array): Likewise.
(memento_of_get_volatile::replay_into): Likewise;
(memento_of_get_volatile::make_debug_string): Likewise.
(memento_of_get_volatile::write_reproducer): Likewise.
(array_type::dereference): Likewise.
(array_type::is_int): Likewise.
(array_type::is_float): Likewise.
(array_type::is_bool): Likewise.
(array_type::is_pointer): Likewise.
(array_type::is_array): Likewise.
(array_type::replay_into): Likewise;
(array_type::make_debug_string): Likewise.
(array_type::write_reproducer): Likewise.
(function_type::dereference): Likewise.
(function_type::function_dyn_cast_function_type): Likewise.
(function_type::function_as_a_function_type): Likewise.
(function_type::is_int): Likewise.
(function_type::is_float): Likewise.
(function_type::is_bool): Likewise.
(function_type::is_pointer): Likewise.
(function_type::is_array): Likewise.
(function_type::replay_into): Likewise;
(function_type::make_debug_string): Likewise.
(function_type::write_reproducer): Likewise.
(field::replay_into): Likewise;
(field::write_to_dump): Likewise.
(field::make_debug_string): Likewise.
(field::write_reproducer): Likewise.
(compound_type::dereference): Likewise.
(compound_type::is_int): Likewise.
(compound_type::is_float): Likewise.
(compound_type::is_bool): Likewise.
(compound_type::is_pointer): Likewise.
(compound_type::is_array): Likewise.
(compound_type::has_known_size): Likewise.
(struct_::dyn_cast_struct): Likewise.
(struct_::replay_into): Likewise.
(struct_::access_as_type): Likewise.
(struct_::make_debug_string): Likewise.
(struct_::write_reproducer): Likewise.
(fields::replay_into): Likewise.
(fields::write_to_dump): Likewise.
(fields::make_debug_string): Likewise.
(fields::write_reproducer): Likewise.
(union_::replay_into): Likewise.
(union_::make_debug_string): Likewise.
(union_::write_reproducer): Likewise.
(lvalue::access_as_rvalue): Mark with OVERRIDE.
(param::replay_into): Mark with FINAL OVERRIDE.
(param::visit_children): Likewise.
(param::dyn_cast_param): Likewise.
(param::access_as_rvalue): Likewise.
(param::access_as_lvalue): Likewise.
(param::make_debug_string): Likewise.
(param::write_reproducer): Likewise.
(param::get_precedence): Likewise.
(function::replay_into): Likewise.
(function::write_to_dump): Likewise.
(function::make_debug_string): Likewise.
(function::write_reproducer): Likewise.
(block::write_to_dump): Likewise.
(block::make_debug_string): Likewise.
(block::write_reproducer): Likewise.
(block::replay_into): Likewise.
(global::replay_into): Likewise;
(global::visit_children): Likewise.
(global::write_to_dump): Likewise.
(global::make_debug_string): Likewise.
(global::write_reproducer): Likewise.
(global::get_precedence): Likewise.
(memento_of_new_rvalue_from_const::replay_into): Likewise.
(memento_of_new_rvalue_from_const::visit_children): Likewise.
(memento_of_new_rvalue_from_const::is_constant): Likewise.
(memento_of_new_rvalue_from_const::get_wide_int): Likewise.
(memento_of_new_rvalue_from_const::make_debug_string): Likewise.
(memento_of_new_rvalue_from_const::write_reproducer): Likewise.
(memento_of_new_rvalue_from_const::get_precedence): Likewise.
(memento_of_new_string_literal::replay_into): Likewise.
(memento_of_new_string_literal::visit_children): Likewise.
(memento_of_new_string_literal::make_debug_string): Likewise.
(memento_of_new_string_literal::write_reproducer): Likewise.
(memento_of_new_string_literal::get_precedence): Likewise.
(unary_op::replay_into): Likewise.
(unary_op::visit_children): Likewise.
(unary_op::make_debug_string): Likewise.
(unary_op::write_reproducer): Likewise.
(unary_op::get_precedence): Likewise.
(binary_op::replay_into): Likewise.
(binary_op::visit_children): Likewise.
(binary_op::make_debug_string): Likewise.
(binary_op::write_reproducer): Likewise.
(binary_op::get_precedence): Likewise.
(comparison::replay_into): Likewise.
(comparison::visit_children): Likewise.
(comparison::make_debug_string): Likewise.
(comparison::write_reproducer): Likewise.
(comparison::get_precedence): Likewise.
(cast::replay_into): Likewise.
(cast::visit_children): Likewise.
(cast::make_debug_string): Likewise.
(cast::write_reproducer): Likewise.
(cast::get_precedence): Likewise.
(call::replay_into): Likewise.
(call::visit_children): Likewise.
(call::make_debug_string): Likewise.
(call::write_reproducer): Likewise.
(call::get_precedence): Likewise.
(call_through_ptr::replay_into): Likewise.
(call_through_ptr::visit_children): Likewise.
(call_through_ptr::make_debug_string): Likewise.
(call_through_ptr::write_reproducer): Likewise.
(call_through_ptr::get_precedence): Likewise.
(array_access::replay_into): Likewise.
(array_access::visit_children): Likewise.
(array_access::make_debug_string): Likewise.
(array_access::write_reproducer): Likewise.
(array_access::get_precedence): Likewise.
(access_field_of_lvalue::replay_into): Likewise.
(access_field_of_lvalue::visit_children): Likewise.
(access_field_of_lvalue::make_debug_string): Likewise.
(access_field_of_lvalue::write_reproducer): Likewise.
(access_field_of_lvalue::get_precedence): Likewise.
(access_field_rvalue::replay_into): Likewise.
(access_field_rvalue::visit_children): Likewise.
(access_field_rvalue::make_debug_string): Likewise.
(access_field_rvalue::write_reproducer): Likewise.
(access_field_rvalue::get_precedence): Likewise.
(dereference_field_rvalue::replay_into): Likewise.
(dereference_field_rvalue::visit_children): Likewise.
(dereference_field_rvalue::make_debug_string): Likewise.
(dereference_field_rvalue::write_reproducer): Likewise.
(dereference_field_rvalue::get_precedence): Likewise.
(dereference_rvalue::replay_into): Likewise.
(dereference_rvalue::visit_children): Likewise.
(dereference_rvalue::make_debug_string): Likewise.
(dereference_rvalue::write_reproducer): Likewise.
(dereference_rvalue::get_precedence): Likewise.
(get_address_of_lvalue::replay_into): Likewise.
(get_address_of_lvalue::visit_children): Likewise.
(get_address_of_lvalue::make_debug_string): Likewise.
(get_address_of_lvalue::write_reproducer): Likewise.
(get_address_of_lvalue::get_precedence): Likewise.
(local::replay_into): Likewise.
(local::visit_children): Likewise.
(local::write_to_dump): Likewise.
(local::make_debug_string): Likewise.
(local::write_reproducer): Likewise.
(local::get_precedence): Likewise.
(statement::write_to_dump): Likewise.
(eval::replay_into): Likewise.
(eval::make_debug_string): Likewise.
(eval::write_reproducer): Likewise.
(assignment::replay_into): Likewise.
(assignment::make_debug_string): Likewise.
(assignment::write_reproducer): Likewise.
(assignment_op::replay_into): Likewise.
(assignment_op::make_debug_string): Likewise.
(assignment_op::write_reproducer): Likewise.
(comment::replay_into): Likewise.
(comment::make_debug_string): Likewise.
(comment::write_reproducer): Likewise.
(conditional::replay_into): Likewise.
(conditional::get_successor_blocks): Likewise.
(conditional::make_debug_string): Likewise.
(conditional::write_reproducer): Likewise.
(jump::replay_into): Likewise.
(jump::get_successor_blocks): Likewise.
(jump::make_debug_string): Likewise.
(jump::write_reproducer): Likewise.
(return_::replay_into): Likewise.
(return_::get_successor_blocks): Likewise.
(return_::make_debug_string): Likewise.
(return_::write_reproducer): Likewise.
(case_::replay_into): Likewise.
(case_::write_reproducer): Likewise.
(case_::make_debug_string): Likewise.
(switch_::replay_into): Likewise.
(switch_::get_successor_blocks): Likewise.
(switch_::make_debug_string): Likewise.
(switch_::write_reproducer): Likewise.

From-SVN: r236223

8 years agore PR bootstrap/71071 (ICE --enable-checking=fold : fold check: original tree changed...
Jakub Jelinek [Fri, 13 May 2016 20:24:22 +0000 (22:24 +0200)]
re PR bootstrap/71071 (ICE --enable-checking=fold : fold check: original tree changed by fold)

PR bootstrap/71071
* fold-const.c (fold_checksum_tree): Allow modification
of TYPE_ALIAS_SET during folding.

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

From-SVN: r236222

8 years agoFix type-dependence and the current instantiation.
Jason Merrill [Fri, 13 May 2016 19:18:35 +0000 (15:18 -0400)]
Fix type-dependence and the current instantiation.

PR c++/10200
PR c++/69753
* pt.c (tsubst_decl): Use uses_template_parms.
(instantiate_template_1): Handle non-dependent calls in templates.
(value_dependent_expression_p): Handle BASELINK, FUNCTION_DECL.
(type_dependent_expression_p): Only consider innermost template args.
(dependent_template_arg_p): Check enclosing class of a template here.
(dependent_template_p): Not here.
(type_dependent_object_expression_p): New.
* typeck.c (finish_class_member_access_expr): Use it.
* parser.c (cp_parser_postfix_expression): Use it.
(cp_parser_postfix_dot_deref_expression): Use it.  Use comptypes
to detect the current instantiation.
(cp_parser_lookup_name): Really implement DR 141.
* search.c (lookup_field_r): Prefer a dependent using-declaration.
(any_dependent_bases_p): Split out from...
* name-lookup.c (do_class_using_decl): ...here.
* call.c (build_new_method_call_1): Use it.
* semantics.c (finish_call_expr): 'this' doesn't make a call dependent.
* tree.c (non_static_member_function_p): Remove.
* typeck2.c (build_x_arrow): Use dependent_scope_p.

From-SVN: r236221

8 years agoImprove diagnostic for forgotten ().
Jason Merrill [Fri, 13 May 2016 19:17:47 +0000 (15:17 -0400)]
Improve diagnostic for forgotten ().

* parser.c (cp_parser_postfix_dot_deref_expression): Use
complete_type_or_else for unknown_type_node, too.

From-SVN: r236220

8 years agotree-vect.h (check_vect): Handle AVX2, remove XOP handling.
Uros Bizjak [Fri, 13 May 2016 17:27:13 +0000 (19:27 +0200)]
tree-vect.h (check_vect): Handle AVX2, remove XOP handling.

* gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2,
remove XOP handling.

From-SVN: r236216

8 years agoi386.c (ix86_compute_frame_layout, [...]): Use HOST_WIDE_INT_C macro.
Jakub Jelinek [Fri, 13 May 2016 17:26:53 +0000 (19:26 +0200)]
i386.c (ix86_compute_frame_layout, [...]): Use HOST_WIDE_INT_C macro.

* config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
(ix86_split_to_parts): Likewise.  Fix up formatting.

From-SVN: r236215

8 years agoCast to unsigned HOST_WIDE_INT in printf format
H.J. Lu [Fri, 13 May 2016 16:51:27 +0000 (16:51 +0000)]
Cast to unsigned HOST_WIDE_INT in printf format

* tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
printf format.

From-SVN: r236214

8 years agonvptx.c (nvptx_mangle_decl_assembler_name): New.
Nathan Sidwell [Fri, 13 May 2016 15:51:24 +0000 (15:51 +0000)]
nvptx.c (nvptx_mangle_decl_assembler_name): New.

* config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
(nvptx_name_replacement): Delete.
(write_fn_proto, write_fn_proto_from_insn,
nvptx_output_call_insn): Remove nvptx_name_replacement call.
(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
* langhooks.c (add_builtin_funcction_common): Call
targetm.mangle_decl_assembler_name.

From-SVN: r236212

8 years agolibstdc++/71073 add system_header pragma to Debug Mode headers
Jonathan Wakely [Fri, 13 May 2016 14:47:46 +0000 (15:47 +0100)]
libstdc++/71073 add system_header pragma to Debug Mode headers

PR libstdc++/71073
* include/debug/bitset: Add #pragma GCC system_header.
* include/debug/deque: Likewise.
* include/debug/list: Likewise.
* include/debug/map: Likewise.
* include/debug/set: Likewise.
* include/debug/string: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* include/debug/functions.h: Adjust whitespace.

From-SVN: r236211

8 years agonvptx.c (write_fn_proto): Handle BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
Nathan Sidwell [Fri, 13 May 2016 12:57:50 +0000 (12:57 +0000)]
nvptx.c (write_fn_proto): Handle BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.

gcc/
* config/nvptx/nvptx.c (write_fn_proto): Handle
BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.

gcc/testsuite/
* gcc.dg/atomic-noinline-aux.c: Include stddef.h. Fix
__atomic_is_lock_free declaration.

From-SVN: r236209

8 years agoIVOPTS dump fall-out
Martin Liska [Fri, 13 May 2016 12:51:29 +0000 (14:51 +0200)]
IVOPTS dump fall-out

* tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
and PRIu64 in printf format.

From-SVN: r236208

8 years ago[obvious] Typo fix in tree-ssa-loop-ivanon.c
Kyrylo Tkachov [Fri, 13 May 2016 12:36:01 +0000 (12:36 +0000)]
[obvious] Typo fix in tree-ssa-loop-ivanon.c

* tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
comment.

From-SVN: r236206

8 years ago[obvious] Fix param name in dump file
Kyrylo Tkachov [Fri, 13 May 2016 12:33:55 +0000 (12:33 +0000)]
[obvious] Fix param name in dump file

* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
Change --param max-completely-peeled-times to
--param max-completely-peel-times in dump file printing.

From-SVN: r236205

8 years agore PR tree-optimization/42587 (bswap not recognized for memory)
Richard Biener [Fri, 13 May 2016 12:27:18 +0000 (12:27 +0000)]
re PR tree-optimization/42587 (bswap not recognized for memory)

2016-05-13  Richard Biener  <rguenther@suse.de>

PR tree-optimization/42587
* tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
(find_bswap_or_nop_1): Likewise.
(bswap_replace): Likewise.

* gcc.dg/optimize-bswapsi-4.c: New testcase.

From-SVN: r236204

8 years agoFix ASAN bootstrap (uninitialized variable warning)
Martin Liska [Fri, 13 May 2016 11:16:59 +0000 (13:16 +0200)]
Fix ASAN bootstrap (uninitialized variable warning)

* tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
Initialize a variable with default value.

From-SVN: r236203

8 years agoEnhance explanation of halt_on_error.
Martin Liska [Fri, 13 May 2016 11:12:35 +0000 (13:12 +0200)]
Enhance explanation of halt_on_error.

* doc/invoke.texi: Enhance explanation of error recovery
of sanitizers.

From-SVN: r236202

8 years agoEnhance dumps of IVOPTS
Martin Liska [Fri, 13 May 2016 10:44:17 +0000 (12:44 +0200)]
Enhance dumps of IVOPTS

* tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
(struct cost_pair): Change inv_expr_id (int) to inv_expr
(iv_inv_expr_ent *).
(struct iv_inv_expr_ent): Comment struct fields.
(sort_iv_inv_expr_ent): New function.
(struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
(struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
a hash_map between iv_inv_expr_ent and number of usages.
(niter_for_exit): Fix coding style.
(tree_ssa_iv_optimize_init): Use renamed variable.
(determine_base_object): Fix coding style.
(alloc_iv): Likewise.
(find_interesting_uses_outside): Likewise.
(add_candidate_1): Likewise.
(add_standard_iv_candidates): Likewise.
(set_group_iv_cost): Replace inv_expr_id with inv_expr.
(prepare_decl_rtl): Fix coding style.
(get_address_cost): Likewise.
(get_shiftadd_cost): Likewise.
(force_expr_to_var_cost): Likewise.
(compare_aff_trees): Likewise.
(get_expr_id): Restructure the function.
(get_loop_invariant_expr_id): Renamed to
get_loop_invariant_expr.
(get_computation_cost_at): Replace usage of inv_expr_id with
inv_expr.
(get_computation_cost): Likewise.
(determine_group_iv_cost_generic): Likewise.
(determine_group_iv_cost_address): Likewise.
(iv_period): Fix coding style.
(iv_elimination_compare_lt): Likewise.
(may_eliminate_iv): Likewise.
(determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
inv_expr.
(determine_group_iv_costs): Dump invariant expressions.
(iv_ca_recount_cost): Use the newly added hash_map.
(iv_ca_set_remove_invariants): Fix coding style.
(iv_ca_set_add_invariants): Fix coding style.
(iv_ca_set_no_cp): Utilize the newly added hash_map for used
invariants.
(iv_ca_set_cp): Likewise.
(iv_ca_new): Initialize the newly added hash_map and remove
initialization of fields.
(iv_ca_free): Delete the hash_map.
(iv_ca_dump): Dump invariant expressions.
(iv_ca_extend): Fix coding style.
(try_add_cand_for): Likewise.
(create_new_ivs): Dump information about # of avg iterations and
# of used invariant expressions.
(rewrite_use_compare): Fix coding style.
(free_loop_data): Set default value for max_inv_expr_id.
* g++.dg/tree-ssa/ivopts-3.C: Change test-case to follow
the new format of dump output.

From-SVN: r236200

8 years agocse.c (rest_of_handle_cse): Use cleanup_cfg returned value cse_cfg_altered computation.
Ilya Enkovich [Fri, 13 May 2016 09:55:58 +0000 (09:55 +0000)]
cse.c (rest_of_handle_cse): Use cleanup_cfg returned value cse_cfg_altered computation.

gcc/

* cse.c (rest_of_handle_cse): Use cleanup_cfg
returned value cse_cfg_altered computation.
(rest_of_handle_cse2): Likewise.
(rest_of_handle_cse_after_global_opts): Likewise.

gcc/testsuite/

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

From-SVN: r236199

8 years agoFix PR target/53440 - handle generic thunks better for TARGET_32BIT.
Ramana Radhakrishnan [Fri, 13 May 2016 09:32:29 +0000 (09:32 +0000)]
Fix PR target/53440 - handle generic thunks better for TARGET_32BIT.

This partially fixes PR target/53440 atleast in ARM and
Thumb2 state. I haven't yet managed to get my head around
rewriting the Thumb1 support yet.

Tested on armhf with a bootstrap and regression test
with no regressions.

Queued for stage1 now as it isn't technically a regression.

regards
Ramana

2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/53440
        * config/arm/arm.c (arm32_output_mi_thunk): New.
        (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
        to split Thumb1 vs TARGET_32BIT functionality.
        (arm_thumb1_mi_thunk): New.

        * g++.dg/inherit/thunk1.C: Support arm / aarch64.

From-SVN: r236198

8 years agoSet TARGET_OMIT_STRUCT_RETURN_REG to true
Ramana Radhakrishnan [Fri, 13 May 2016 09:23:28 +0000 (09:23 +0000)]
Set TARGET_OMIT_STRUCT_RETURN_REG to true

The reason this caught my eye on aarch64 is because
the return value register (x0) is not identical to the register in which
the hidden parameter for AArch64 is set (x8). Thus setting this to true
seems to be quite reasonable and shaves off 100 odd mov x0, x8's from
cc1 in a bootstrap build.

I don't expect this to make a huge impact on performance but as they
say every little counts.  The AAPCS64 is quite explicit about not
requiring that the contents of x8 be kept live.

Bootstrapped and regression tested on aarch64.

Ok to apply ?

Ramana

gcc/
* config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set to
true.

gcc/testsuite

* gcc.target/aarch64/struct_return.c: New test.

From-SVN: r236197

8 years agoFix SEGV in ix86_in_large_data_p (PR target/71080)
Rainer Orth [Fri, 13 May 2016 09:08:15 +0000 (09:08 +0000)]
Fix SEGV in ix86_in_large_data_p (PR target/71080)

PR target/71080
* config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.

From-SVN: r236196

8 years agobuiltins.c (expand_builtin_memcmp): Do not emit the call here.
Eric Botcazou [Fri, 13 May 2016 08:49:20 +0000 (08:49 +0000)]
builtins.c (expand_builtin_memcmp): Do not emit the call here.

* builtins.c (expand_builtin_memcmp): Do not emit the call here.
(expand_builtin_trap): Emit a regular call.
(set_builtin_user_assembler_name): Remove obsolete cases.
* dse.c (scan_insn): Adjust.
* except.c: Include calls.h.
(sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
emit a regular call to setjmp.
* expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
(block_move_libcall_safe_for_call_parm): Use memcpy builtin.
(emit_block_move_via_libcall): Delete.
(block_move_fn): Delete.
(init_block_move_fn): Likewise.
(emit_block_move_libcall_fn): Likewise.
(emit_block_op_via_libcall): New function.
(set_storage_via_libcall): Tidy up and use memset builtin.
(block_clear_fn): Delete.
(init_block_clear_fn): Likewise.
(clear_storage_libcall_fn): Likewise.
(expand_assignment): Call emit_block_move_via_libcall.
Do not include gt-expr.h.
* expr.h (emit_block_op_via_libcall): Declare.
(emit_block_copy_via_libcall): New inline function.
(emit_block_move_via_libcall): Likewise.
(emit_block_comp_via_libcall): Likewise.
(block_clear_fn): Delete.
(init_block_move_fn): Likewise.
(init_block_clear_fn): Likewise.
(emit_block_move_via_libcall): Likewise.
(set_storage_via_libcall): Add default parameter value.
* libfuncs.h (enum libfunc_index): Remove obsolete values.
(abort_libfunc): Delete.
(memcpy_libfunc): Likewise.
(memmove_libfunc): Likewise.
(memcmp_libfunc): Likewise.
(memset_libfunc): Likewise.
(setbits_libfunc): Likewise.
(setjmp_libfunc): Likewise.
(longjmp_libfunc): Likewise.
(profile_function_entry_libfunc): Likewise.
(profile_function_exit_libfunc): Likewise.
(gcov_flush_libfunc): Likewise.
* optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
and DECL_VISIBILITY on the declaration.
(init_optabs): Do not initialize obsolete libfuncs.
* optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
* tree-core.h (ECF_RET1): Define.
(ECF_TM_PURE): Adjust.
(ECF_TM_BUILTIN): Likewise.
* tree.c (set_call_expr_flags): Deal with ECF_RET1.
(build_common_builtin_nodes): Initialize abort builtin.
Add ECF_RET1 on memcpy, memmove and memset builtins.
Pass final flags for alloca and alloca_with_align builtins.
* config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
obsolete builtins.
* config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
* config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
set_storage_via_libcall and call emit_block_copy_via_libcall.

From-SVN: r236195

8 years agoDaily bump.
GCC Administrator [Fri, 13 May 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236189

8 years ago* fi.po: Update.
Joseph Myers [Thu, 12 May 2016 21:00:28 +0000 (22:00 +0100)]
* fi.po: Update.

From-SVN: r236183

8 years agoi386.md (*call_got_x32): Change operand 0 to DImode before it is passed to ix86_outpu...
Uros Bizjak [Thu, 12 May 2016 18:34:54 +0000 (20:34 +0200)]
i386.md (*call_got_x32): Change operand 0 to DImode before it is passed to ix86_output_call_operand.

* config/i386/i386.md (*call_got_x32): Change operand 0 to
DImode before it is passed to ix86_output_call_operand.
(*call_value_got_x32): Ditto for operand 1.

From-SVN: r236182