]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
8 years ago[PR 70857] Copy RESULT_DECL of HSA outlined kernel function
jamborm [Mon, 16 May 2016 15:40:30 +0000 (15:40 +0000)] 
[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.

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

8 years agoUpdate documentation of AArch64 options for GCC6 to be more accurate,
wilco [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.

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

8 years agoEnable LSA/DLSA for MSA.
rts [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.

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

8 years agoCorrect the latency of loads in M5100
rts [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.

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

8 years ago * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
nathan [Mon, 16 May 2016 13:16:28 +0000 (13:16 +0000)] 
* 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.

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

8 years agoSome patterns are using '%w2' for immediate operands, which means that a zero
wilco [Mon, 16 May 2016 12:52:22 +0000 (12:52 +0000)] 
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.

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

8 years agoFix multi-line brackets in mips-cpus.def
mpf [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.

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

8 years ago * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
ebotcazou [Mon, 16 May 2016 11:33:01 +0000 (11:33 +0000)] 
* 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.

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

8 years ago * freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to
ebotcazou [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 composite types.

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

8 years ago * freeze.adb (Freeze_Array_Type): Call Addressable predicate instead
ebotcazou [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_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.

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

8 years ago * gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip
ebotcazou [Mon, 16 May 2016 11:11:47 +0000 (11:11 +0000)] 
* gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip
formal objects.

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

8 years ago * doc/gnat_rm/implementation_defined_attributes.rst
ebotcazou [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.

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

8 years agoThis patch fixes the attributes of integer immediate shifts which were
wilco [Mon, 16 May 2016 11:01:36 +0000 (11:01 +0000)] 
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.

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

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

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

8 years agoRemove TARGET_INVALID_PARAMETER_TYPE and TARGET_INVALID_RETURN_TYPE hooks.
mwahab [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.

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

8 years ago * exp_util.adb (Remove_Side_Effects): Also make a constant if we need
ebotcazou [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 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.

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

8 years ago * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
hubicka [Mon, 16 May 2016 10:10:28 +0000 (10:10 +0000)] 
* 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.

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

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

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

8 years ago * tree.c (free_lang_data_in_decl): Also set target/optimization flags
hubicka [Mon, 16 May 2016 09:59:25 +0000 (09:59 +0000)] 
* tree.c (free_lang_data_in_decl): Also set target/optimization flags
for thunks.

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

8 years ago * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
hubicka [Mon, 16 May 2016 09:56:19 +0000 (09:56 +0000)] 
* ipa-inline.c (report_inline_failed_reason): Look into thunks, too
(inline_small_functions): Do not look for function symbol when resetting
caches.

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

8 years ago * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
hubicka [Mon, 16 May 2016 09:55:14 +0000 (09:55 +0000)] 
* lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
of inline thunks
* lto-partition.c (add_symbol_to_partition_1): Likewise.

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

8 years ago[ARM] Enable __fp16 as a function parameter and return type.
mwahab [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.

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

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

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

8 years agognattools/
ebotcazou [Mon, 16 May 2016 08:55:12 +0000 (08:55 +0000)] 
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.

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

8 years ago[AArch64] Remove an unused reload hook.
mwahab [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.

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

8 years ago[testsuite] PR70227, skip g++.dg/lto/pr69589_0.C on targets without -rdynamic support
jiwang [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.

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

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

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

8 years ago2016-05-15 Harald Anlauf <anlauf@gmx.de>
kargl [Sun, 15 May 2016 18:34:57 +0000 (18:34 +0000)] 
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.

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

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

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

8 years ago2016-05-14 Fritz Reese <fritzoreese@gmail.com>
kargl [Sat, 14 May 2016 16:00:35 +0000 (16:00 +0000)] 
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.

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

8 years ago2016-05-14 Fritz Reese <fritzoreese@gmail.com>
kargl [Sat, 14 May 2016 15:29:13 +0000 (15:29 +0000)] 
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.

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

8 years ago PR target/71097
uros [Sat, 14 May 2016 13:22:45 +0000 (13:22 +0000)] 
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.

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

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

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

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

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

8 years agocombine: Don't call extract_left_shift with count < 0 (PR67483)
segher [Fri, 13 May 2016 23:01:40 +0000 (23:01 +0000)] 
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.

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

8 years agoImplement C11 DR#423 resolution (ignore function return type qualifiers).
jsm28 [Fri, 13 May 2016 21:35:39 +0000 (21:35 +0000)] 
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.

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

8 years agoc++/60049 - Right and left shift undefined behavior not an error in a constexpr
msebor [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.

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

8 years ago escape: Implement the discovery phase.
ian [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

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

8 years agojit: use FINAL and OVERRIDE throughout
dmalcolm [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.

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

8 years ago PR bootstrap/71071
jakub [Fri, 13 May 2016 20:24:22 +0000 (20:24 +0000)] 
PR bootstrap/71071
* fold-const.c (fold_checksum_tree): Allow modification
of TYPE_ALIAS_SET during folding.

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

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

8 years ago Fix type-dependence and the current instantiation.
jason [Fri, 13 May 2016 19:18:35 +0000 (19:18 +0000)] 
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.

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

8 years ago Improve diagnostic for forgotten ().
jason [Fri, 13 May 2016 19:17:47 +0000 (19:17 +0000)] 
Improve diagnostic for forgotten ().

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

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

8 years ago * gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2,
uros [Fri, 13 May 2016 17:27:13 +0000 (17:27 +0000)] 
* gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2,
remove XOP handling.

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

8 years ago * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
jakub [Fri, 13 May 2016 17:26:53 +0000 (17:26 +0000)] 
* 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.

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

8 years agoCast to unsigned HOST_WIDE_INT in printf format
hjl [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.

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

8 years ago * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
nathan [Fri, 13 May 2016 15:51:24 +0000 (15:51 +0000)] 
* 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.

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

8 years agolibstdc++/71073 add system_header pragma to Debug Mode headers
redi [Fri, 13 May 2016 14:47:46 +0000 (14:47 +0000)] 
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.

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

8 years ago gcc/
nathan [Fri, 13 May 2016 12:57:50 +0000 (12:57 +0000)] 
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.

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

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

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

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

8 years ago[obvious] Typo fix in tree-ssa-loop-ivanon.c
ktkachov [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.

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

8 years ago[obvious] Fix param name in dump file
ktkachov [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.

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

8 years ago2016-05-13 Richard Biener <rguenther@suse.de>
rguenth [Fri, 13 May 2016 12:27:18 +0000 (12:27 +0000)] 
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.

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

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

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

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

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

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

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

8 years agoEnhance dumps of IVOPTS
marxin [Fri, 13 May 2016 10:44:17 +0000 (10:44 +0000)] 
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.

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

8 years agogcc/
ienkovich [Fri, 13 May 2016 09:55:58 +0000 (09:55 +0000)] 
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.

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

8 years agoFix PR target/53440 - handle generic thunks better for TARGET_32BIT.
ramana [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.

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

8 years agoSet TARGET_OMIT_STRUCT_RETURN_REG to true
ramana [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.

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

8 years agoFix SEGV in ix86_in_large_data_p (PR target/71080)
ro [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.

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

8 years ago * builtins.c (expand_builtin_memcmp): Do not emit the call here.
ebotcazou [Fri, 13 May 2016 08:49:20 +0000 (08:49 +0000)] 
* 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.

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

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

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

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

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

8 years ago * config/i386/i386.md (*call_got_x32): Change operand 0 to
uros [Thu, 12 May 2016 18:34:54 +0000 (18:34 +0000)] 
* 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.

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

8 years ago[LRA] PR70904, relax the restriction on subreg reload for wide mode
jiwang [Thu, 12 May 2016 17:00:52 +0000 (17:00 +0000)] 
[LRA] PR70904, relax the restriction on subreg reload for wide mode

2016-05-12  Jiong Wang  <jiong.wang@arm.com>

gcc/
  PR rtl-optimization/70904
  * lra-constraint.c (process_addr_reg): Relax the restriction on
  subreg reload for wide mode.

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

8 years ago PR c/70756
mpolacek [Thu, 12 May 2016 15:28:08 +0000 (15:28 +0000)] 
PR c/70756
* c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
size_in_bytes and pass LOC to it.

* c-decl.c (build_compound_literal): Pass LOC down to
c_incomplete_type_error.
* c-tree.h (require_complete_type): Adjust declaration.
(c_incomplete_type_error): Likewise.
* c-typeck.c (require_complete_type): Add location parameter, pass it
down to c_incomplete_type_error.
(c_incomplete_type_error): Add location parameter, pass it down to
error_at.
(build_component_ref): Pass location down to c_incomplete_type_error.
(default_conversion): Pass location down to require_complete_type.
(build_array_ref): Likewise.
(build_function_call_vec): Likewise.
(convert_arguments): Likewise.
(build_unary_op): Likewise.
(build_c_cast): Likewise.
(build_modify_expr): Likewise.
(convert_for_assignment): Likewise.
(c_finish_omp_clauses): Likewise.

* call.c (build_new_op_1): Pass LOC to cp_build_modify_expr.
* cp-tree.h (cp_build_modify_expr): Update declaration.
(cxx_incomplete_type_error, cxx_incomplete_type_diagnostic): New inline
overloads.
* cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Pass INPUT_LOCATION to
cp_build_modify_expr.
* decl2.c (set_guard): Likewise.
(handle_tls_init): Likewise.
* init.c (perform_member_init): Likewise.
(expand_virtual_init): Likewise.
(build_new_1): Likewise.
(build_vec_delete_1): Likewise.
(get_temp_regvar): Likewise.
(build_vec_init): Likewise.
* method.c (do_build_copy_assign): Likewise.
(assignable_expr): Likewise.
* semantics.c (finish_omp_for): Likewise.
* typeck.c (cp_build_binary_op): Pass LOCATION to pointer_diff and
cp_pointer_int_sum.
(cp_pointer_int_sum): Add location parameter.  Pass it down to
pointer_int_sum.
(pointer_diff): Add location parameter.  Use it.
(build_modify_expr): Pass location down to cp_build_modify_expr.
(cp_build_modify_expr): Add location parameter.  Use it.
(build_x_modify_expr): Pass location down to cp_build_modify_expr.
* typeck2.c (cxx_incomplete_type_diagnostic,
cxx_incomplete_type_error): Add location parameter.

* langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
* langhooks.c (lhd_incomplete_type_error): Add location parameter.
* langhooks.h (incomplete_type_error): Likewise.
* tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
parameter, pass it down to incomplete_type_error.
* tree.h (size_in_bytes): New inline overload.
(size_in_bytes_loc): Renamed from size_in_bytes.

* c-c++-common/pr70756-2.c: New test.
* c-c++-common/pr70756.c: New test.

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

8 years agoAdd dg-require-atomic-builtins to test
redi [Thu, 12 May 2016 14:08:45 +0000 (14:08 +0000)] 
Add dg-require-atomic-builtins to test

PR libstdc++/71081
* testsuite/experimental/memory_resource/1.cc: Require atomics.

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

8 years ago2016-05-12 Richard Biener <rguenther@suse.de>
rguenth [Thu, 12 May 2016 13:46:26 +0000 (13:46 +0000)] 
2016-05-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71059
* tree-ssa-pre.c (phi_translate_1): Fully fold translated
nary before looking up or entering the expression into the VN
hashes.
* tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
Make sure to re-use NARYs without result as inserted by
phi-translation.

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

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

8 years ago2016-05-12 Richard Biener <rguenther@suse.de>
rguenth [Thu, 12 May 2016 13:05:13 +0000 (13:05 +0000)] 
2016-05-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71062
* tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
field.
* tree-ssa-structalias.c (set_uids_in_ptset): Set vars_contains_restrict
if the var is a restrict tag.
* tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
do not disambiguate pointers against it.
(dump_points_to_solution): Re-structure and adjust for new
vars_contains_restrict flag.
* gimple-pretty-print.c (pp_points_to_solution): Likewise.

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

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

8 years agoDocument ASAN_OPTIONS="halt_on_error" env variable.
marxin [Thu, 12 May 2016 12:36:16 +0000 (12:36 +0000)] 
Document ASAN_OPTIONS="halt_on_error" env variable.

* doc/invoke.texi: Explain connection between -fsanitize-recover=address
and ASAN_OPTIONS="halt_on_error=1".

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

8 years agogcc/
ienkovich [Thu, 12 May 2016 11:27:49 +0000 (11:27 +0000)] 
gcc/

PR tree-optimization/71006
* tree-vect-loop.c (vect_determine_vectorization_factor): Don't
consider COND_EXPR as a mask producer.

gcc/testsuite/

PR tree-optimization/71006
* gcc.dg/pr71006.c: New test.

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

8 years ago PR driver/71063
mpolacek [Thu, 12 May 2016 10:59:11 +0000 (10:59 +0000)] 
PR driver/71063
* opts.c (common_handle_option): Detect missing argument for --help^.

* gcc.dg/opts-7.c: New test.

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

8 years ago[ARM] PR target/70830: Avoid POP-{reglist}^ when returning from interrupt handlers
ktkachov [Thu, 12 May 2016 09:56:46 +0000 (09:56 +0000)] 
[ARM] PR target/70830: Avoid POP-{reglist}^ when returning from interrupt handlers

PR target/70830
* config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
when popping the PC and within an interrupt handler routine.
Add missing tab to output of "ldmfd".
(output_return_instruction): Output LDMFD with SP update rather
than POP when returning from interrupt handler.

* gcc.target/arm/interrupt-1.c: Change dg-compile to dg-assemble.
Add -save-temps to dg-options.
Scan for ldmfd rather than pop instruction.
* gcc.target/arm/interrupt-2.c: Likewise.
* gcc.target/arm/pr70830.c: New test.

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

8 years ago * config/i386/i386.md (isa): Add x64_avx512dq, enable if
jakub [Thu, 12 May 2016 08:35:20 +0000 (08:35 +0000)] 
* config/i386/i386.md (isa): Add x64_avx512dq, enable if
TARGET_64BIT && TARGET_AVX512DQ.
* config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
(*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
(*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
*vec_extractv2di_0_sse): Use v constraint instead of x constraint.
(*vec_extractv4si): Add avx512dq and avx512bw alternatives.
(*vec_extractv4si_zext): Add avx512dq alternative.
(*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
use v instead of x constraint in other alternatives where possible.

* gcc.target/i386/avx512bw-vpextr-1.c: New test.
* gcc.target/i386/avx512dq-vpextr-1.c: New test.

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

8 years ago * config/i386/sse.md (sse2_loadld): Use v instead of x
jakub [Thu, 12 May 2016 08:34:38 +0000 (08:34 +0000)] 
* config/i386/sse.md (sse2_loadld): Use v instead of x
constraint in alternatives 0,1,4.

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

8 years ago * config/i386/sse.md (pinsr_evex_isa): New mode attr.
jakub [Thu, 12 May 2016 08:34:11 +0000 (08:34 +0000)] 
* config/i386/sse.md (pinsr_evex_isa): New mode attr.
(<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
v constraints instead of x and <pinsr_evex_isa> isa attribute.

* gcc.target/i386/avx512bw-vpinsr-1.c: New test.
* gcc.target/i386/avx512dq-vpinsr-1.c: New test.
* gcc.target/i386/avx512vl-vpinsr-1.c: New test.

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

8 years ago PR target/71019
jakub [Thu, 12 May 2016 08:33:14 +0000 (08:33 +0000)] 
PR target/71019
* config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
<sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
is not emitted unless TARGET_AVX512BW.
(<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
for the result operand.

* gcc.target/i386/avx512vl-pack-1.c: New test.
* gcc.target/i386/avx512vl-pack-2.c: New test.
* gcc.target/i386/avx512bw-pack-2.c: New test.

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

8 years ago * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
jakub [Thu, 12 May 2016 08:32:31 +0000 (08:32 +0000)] 
* config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
constraint instead of x in avx alternatives.  Use maybe_evex instead
of vex prefix.

* gcc.target/i386/avx512vl-vinsertps-1.c: New test.

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

8 years ago * config/i386/constraints.md (Yv): New constraint.
jakub [Thu, 12 May 2016 08:30:25 +0000 (08:30 +0000)] 
* config/i386/constraints.md (Yv): New constraint.
* config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
* config/i386/i386.md (avx512fvecmode): New mode attr.
(*pushtf): Use v constraint instead of x.
(*movtf_internal): Likewise.  For TARGET_AVX512VL and
xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
(*absneg<mode>2): Use Yv constraint instead of x constraint.
(*absnegtf2_sse): Likewise.
(copysign<mode>3_const, copysign<mode>3_var): Likewise.
* config/i386/sse.md (*andnot<mode>3): Add avx512vl and
avx512f alternatives.
(*andnottf3, *<code><mode>3, *<code>tf3): Likewise.

* gcc.target/i386/avx512dq-abs-copysign-1.c: New test.
* gcc.target/i386/avx512vl-abs-copysign-1.c: New test.
* gcc.target/i386/avx512vl-abs-copysign-2.c: New test.

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

8 years ago2016-05-12 Richard Biener <rguenther@suse.de>
rguenth [Thu, 12 May 2016 07:29:33 +0000 (07:29 +0000)] 
2016-05-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71060
* tree-data-ref.c (initialize_data_dependence_relation): Do not
require exact match of DR_BASE_OBJECT but only matching address and
type.

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

8 years ago2016-05-12 Richard Biener <rguenther@suse.de>
rguenth [Thu, 12 May 2016 07:18:58 +0000 (07:18 +0000)] 
2016-05-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70986
* cfganal.c: Include cfgloop.h.
(dfs_find_deadend): Prefer to take edges exiting loops.

* gcc.dg/torture/pr70986-1.c: New testcase.
* gcc.dg/torture/pr70986-2.c: Likewise.
* gcc.dg/torture/pr70986-3.c: Likewise.

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

8 years agoDaily bump.
gccadmin [Thu, 12 May 2016 00:16:18 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
wschmidt [Wed, 11 May 2016 21:38:40 +0000 (21:38 +0000)] 
2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/pr70963.c: Require at least power8 at both
compile and run time.

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

8 years agoPR43651: add warning for duplicate qualifier
miyuki [Wed, 11 May 2016 20:23:37 +0000 (20:23 +0000)] 
PR43651: add warning for duplicate qualifier

gcc/c/

PR c/43651
* c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
is enabled.
* c-errors.c (pedwarn_c90): Return true if warned.
* c-tree.h (pedwarn_c90): Change return type to bool.
(enum c_declspec_word): Add new enumerator cdw_atomic.

gcc/

PR c/43651
* doc/invoke.texi (Wduplicate-decl-specifier): Document new option.

gcc/testsuite/

PR c/43651
* gcc.dg/Wduplicate-decl-specifier-c11.c: New test.
* gcc.dg/Wduplicate-decl-specifier.c: Likewise.

gcc/c-family/

PR c/43651
* c.opt (Wduplicate-decl-specifier): New option.

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

8 years ago * gcc.target/i386/sse-13.c: Add dg-add-options bind_pic_locally
uros [Wed, 11 May 2016 19:16:58 +0000 (19:16 +0000)] 
* gcc.target/i386/sse-13.c: Add dg-add-options bind_pic_locally
directive.
* gcc.target/i386/pr66746.c: Ditto.

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

8 years ago * config/i386/i386.c (legitimize_pic_address): Use
uros [Wed, 11 May 2016 19:11:00 +0000 (19:11 +0000)] 
* config/i386/i386.c (legitimize_pic_address): Use
copy_to_suggested_reg instead of gen_movsi.

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

8 years ago[gcc]
meissner [Wed, 11 May 2016 18:38:10 +0000 (18:38 +0000)] 
[gcc]
2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/predicates.md (quad_memory_operand): Move most of
the code into quad_address_p and call it to share code with
vsx_quad_dform_memory_operand.
(vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
d-form support.
* config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
bit instead of being a separate word.  Split -mpower9-dform into
two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
* config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
for the register class supporting 128-bit quad word memory
offsets.
(mode_supports_vsx_dform_quad): Helper function to return if the
register class uses quad word memory offsets.
(rs6000_debug_addr_mask): Add support for quad word memory
offsets.
(rs6000_debug_reg_global): Always print if we are using LRA or
not.
(rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
instructions are enabled, set up the appropriate addr_masks for
128-bit types.
(rs6000_init_hard_regno_mode_ok): wb constraint is now based on
-mpower9-dform-scalar, instead of -mpower9-dform.
(rs6000_option_override_internal): Split -mpower9-dform into two
switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
-mpower9-dform switch sets or clears both.  If we are not using
the LRA register allocator, do not enable -mpower9-dform-vector by
default.  If we are using LRA, enable -mpower9-dform-vector and
-mvsx-timode if it is appropriate.  Issue a warning if either
-mpower9-dform-vector or -mvsx-timode are explicitly used without
enabling LRA.
(quad_address_offset_p): New helper function to return if the
offset is legal for quad word memory instructions.
(quad_address_p): New function to determin if GPR or vector
register quad word memory addresses are legal.
(mem_operand_gpr): Validate quad word address offsets.
(reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
d-form (register + offset) instructions.
(offsettable_ok_by_alignment): Likewise.
(rs6000_legitimate_offset_address_p): Likewise.
(legitimate_lo_sum_address_p): Likewise.
(rs6000_legitimize_address): Likewise.
(rs6000_legitimize_reload_address): Add more debug statements for
-mdebug=addr.
(rs6000_legitimate_address_p): Add support for ISA 3.0 vector
d-form instructions.
(rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
d-form instructions.  Distinguish different cases in debug
output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
d-form instructions.
(rs6000_preferred_reload_class): Likewise.
(rs6000_output_move_128bit): Add support for ISA 3.0 d-form
instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
of the ISA 2.06 indexed memory instructions.
(rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
use them to save/restore the saved vector registers instead of
using Altivec instructions.
(rs6000_emit_epilogue): Likewise.
(rs6000_lra_p): Use TARGET_LRA instead of the old option word.
(rs6000_opt_masks): Split -mpower9-dform into
-mpower9-dform-scalar and -mpower9-dform-vector.
(rs6000_print_options_internal): Print -mno-<switch> if <switch>
was not selected.
* config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
ISA 3.0 vector indexed memory instructions, and fold the code into
the normal mov<mode> patterns.
(p9_vecstore_<mode>): Likewise.
(vsx_mov<mode>): Add support for ISA 3.0 vector d-form
instructions.
(vsx_movti_64bit): Likewise.
(vsx_movti_32bit): Likewise.
* config/rs6000/constraints.md (wO constraint): New constraint for
ISA 3.0 vector d-form support.
* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
-mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
include -mpower9-dform-vector until we switch over to LRA.
(POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
switches, -mpower9-dform-scalar and -mpower9-dform-vector.
* config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
* doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
for -mpower9-dform and -mlra.
* doc/md.texi (wO constraint): Document wO constraint.

[gcc/testsuite]
2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/dform-3.c: New test for ISA 3.0 vector d-form
support.
* gcc.target/powerpc/dform-1.c: Add -mlra option to silence
warning when using -mvsx-timode.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/dform-2.c: Likewise.
* gcc.target/powerpc/pr68805.c: Likewise.

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

8 years agogenautomata.c cleanup
amonakov [Wed, 11 May 2016 18:13:11 +0000 (18:13 +0000)] 
genautomata.c cleanup

* genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
* genautomata.c (output_internal_insn_code_evaluation): Simplify.
Move handling of non-insn arguments inline into the sole user:
(output_trans_func): ...here.
(output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
in emitted function prototype.
(output_internal_insn_latency_func): Ditto.  Simplify.
(output_internal_maximal_insn_latency_func): Ditto.  Delete
always-unused argument.
(output_insn_latency_func): Ditto.
(output_maximal_insn_latency_func): Ditto.

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

8 years ago * gcc.dg/attr-opt-1.c: Move to c-c++-common/.
mpolacek [Wed, 11 May 2016 17:09:43 +0000 (17:09 +0000)] 
* gcc.dg/attr-opt-1.c: Move to c-c++-common/.
* gcc.dg/pr18079-2.c: Remove file.

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

8 years ago PR c++/71024
mpolacek [Wed, 11 May 2016 17:07:37 +0000 (17:07 +0000)] 
PR c++/71024
* c-common.c (diagnose_mismatched_attributes): New function.
* c-common.h (diagnose_mismatched_attributes): Declare.

* c-decl.c (diagnose_mismatched_decls): Factor out code to
diagnose_mismatched_attributes and call it.

* decl.c (duplicate_decls): Call diagnose_mismatched_decls.

* c-c++-common/attributes-3.c: New test.

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

8 years ago * gcc.dg/pr68671.c: Xfail on PTX -- assembler crash.
nathan [Wed, 11 May 2016 15:50:20 +0000 (15:50 +0000)] 
* gcc.dg/pr68671.c: Xfail on PTX -- assembler crash.
* gcc.c-torture/execute/pr68185.c: Likewise.
* gcc.dg/ipa/pr70306.c: Requires global constructors.
* gcc.dg/pr69634.c: Requires scheduling.
* gcc.dg/torture/pr66178.c: Require label values.
* gcc.dg/setjmp-6.c: Require indirect jumps.

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

8 years ago2016-05-11 Richard Biener <rguenther@suse.de>
rguenth [Wed, 11 May 2016 14:04:32 +0000 (14:04 +0000)] 
2016-05-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71055
* tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
sth with precision not equal to access size verify we don't chop
off bits.

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

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

8 years ago2016-05-11 Richard Biener <rguenther@suse.de>
rguenth [Wed, 11 May 2016 13:59:34 +0000 (13:59 +0000)] 
2016-05-11  Richard Biener  <rguenther@suse.de>

PR debug/71057
* dwarf2out.c (retry_incomplete_types): Set early_dwarf.
(dwarf2out_finish): Move retry_incomplete_types call ...
(dwarf2out_early_finish): ... here.

* g++.dg/debug/pr71057.C: New testcase.

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

8 years ago PR fortran/70855
jakub [Wed, 11 May 2016 13:16:48 +0000 (13:16 +0000)] 
PR fortran/70855
* frontend-passes.c (inline_matmul_assign): Disable in !$omp workshare.

* gfortran.dg/gomp/pr70855.f90: New test.

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

8 years agolibstdc++/71049 fix --disable-libstdcxx-dual-abi bootstrap
redi [Wed, 11 May 2016 12:39:28 +0000 (12:39 +0000)] 
libstdc++/71049 fix --disable-libstdcxx-dual-abi bootstrap

PR libstdc++/71049
* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
exception constructors with __sso_string parameters.

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

8 years ago2016-05-11 Richard Biener <rguenther@suse.de>
rguenth [Wed, 11 May 2016 10:24:11 +0000 (10:24 +0000)] 
2016-05-11  Richard Biener  <rguenther@suse.de>

PR middle-end/71002
* alias.c (reference_alias_ptr_type): Preserve alias-set zero
if the langhook insists on it.
* fold-const.c (make_bit_field_ref): Add arg for the original
reference and preserve its alias-set.
(decode_field_reference): Take exp by reference and adjust it
to the original memory reference.
(optimize_bit_field_compare): Adjust callers.
(fold_truth_andor_1): Likewise.
* gimplify.c (gimplify_expr): Adjust in-SSA form test.

* g++.dg/torture/pr71002.C: New testcase.

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

8 years agogcc/
ienkovich [Wed, 11 May 2016 09:33:13 +0000 (09:33 +0000)] 
gcc/

PR middle-end/70807
* cfgrtl.h (delete_insn_and_edges): Now return bool.
* cfgrtl.c (delete_insn_and_edges): Likewise.
* config/i386/i386.c (convert_scalars_to_vector): Remove
redundant code.
* cse.c (cse_insn): Compute cse_cfg_altered.
(delete_trivially_dead_insns): Likewise.
(cse_cc_succs): Likewise.
(rest_of_handle_cse): Free dominance info if required.
(rest_of_handle_cse2): Likewise.
(rest_of_handle_cse_after_global_opts): Likewise.

gcc/testsuite/

PR middle-end/70807
* gcc.dg/pr70807.c: New test.

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

8 years agoPR c++/38611 - missing -Wattributes on a typedef with attribute aligned
msebor [Wed, 11 May 2016 03:04:03 +0000 (03:04 +0000)] 
PR c++/38611 - missing -Wattributes on a typedef with attribute aligned

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

8 years ago[RS6000] complex long double ABI_V4 fix
amodra [Wed, 11 May 2016 02:09:38 +0000 (02:09 +0000)] 
[RS6000] complex long double ABI_V4 fix

Revision 235794 regressed compat/scalar-by-value-6 for powerpc-linux
-m32 due to accidentally changing the ABI.  By another historical
accident, complex long double is stupidly passed in gprs for -m32.

* config/rs6000/rs6000.c (is_complex_IBM_long_double,
abi_v4_pass_in_fpr): New functions.
(rs6000_function_arg_boundary): Exclude complex IBM long double
from 64-bit alignment when ABI_V4.
(rs6000_function_arg, rs6000_function_arg_advance_1,
rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.

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

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

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

8 years agocfgcleanup: Handle a branch with just a return in both arms (PR71028)
segher [Tue, 10 May 2016 23:31:27 +0000 (23:31 +0000)] 
cfgcleanup: Handle a branch with just a return in both arms (PR71028)

If we have a conditional jump that has only a return in both the branch
path and the fallthrough path, and the return on the branch path can not
be made a conditional return, we will try to make a conditional return
from the fallthrough path, and that does not work because we then try
to redirect the (new) jump in the fallthrough block to the original
dest in the branch path, which is the exit block.

For the testcase on ARM we end up in this situation because before the
jump2 pass there are some other insns in the return blocks as well, but
the same insns in both, so those are moved above the conditional jump.
Only later (in the ce3 pass) are the conditional jump and two returns
melded into one return, so we need to handle this strange case here.

PR rtl-optimization/71028
* cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
jump with just a return in the fallthrough block if the branch
block contains just a returns as well.

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