]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years ago2016-04-28 Richard Biener <rguenther@suse.de>
rguenth [Thu, 28 Apr 2016 07:55:33 +0000 (07:55 +0000)] 
2016-04-28  Richard Biener  <rguenther@suse.de>

PR middle-end/70777
* fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
canonicalization.

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

9 years agogcc/
olegendo [Thu, 28 Apr 2016 01:18:13 +0000 (01:18 +0000)] 
gcc/
* common/config/sh/sh-common.c: Remove SH5 support.
* config/sh/constraints.md: Likewise.
* config/sh/config/sh/elf.h: Likewise.
* config/sh/linux.h: Likewise.
* config/sh/netbsd-elf.h: Likewise.
* config/sh/predicates.md: Likewise.
* config/sh/sh-c.c: Likewise.
* config/sh/sh-protos.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.h: Likewise.
* config/sh/sh.md: Likewise.
* config/sh/sh.opt: Likewise.
* config/sh/sync.md: Likewise.
* config/sh/sh64.h: Delete.
* config/sh/shmedia.h: Likewise.
* config/sh/shmedia.md: Likewise.
* config/sh/sshmedia.h: Likewise.
* config/sh/t-netbsd-sh5-64: Likewise.
* config/sh/t-sh64: Likewise.
* config/sh/ushmedia.h: Likewise.

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

9 years agoDaily bump.
gccadmin [Thu, 28 Apr 2016 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * config/i386/i386.md (sign_extend to memory peephole2s): Use
uros [Wed, 27 Apr 2016 23:51:30 +0000 (23:51 +0000)] 
* config/i386/i386.md (sign_extend to memory peephole2s): Use
general_reg_operand instead of register_operand predicate.

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

9 years ago2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Wed, 27 Apr 2016 22:39:43 +0000 (22:39 +0000)] 
2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* params.def (MIN_PARTITION_SIZE): Set default value to 10000.

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

9 years agomatch.pd: unsigned A - B > A --> A < B
glisse [Wed, 27 Apr 2016 21:30:27 +0000 (21:30 +0000)] 
match.pd: unsigned A - B > A --> A < B

2016-04-27  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (A - B > A, A + B < A): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/overflow-2.c: New testcase.
* gcc.dg/tree-ssa/minus-ovf.c: Likewise.

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

9 years agoReduce nesting of parentheses in conditionals generated by genattrtab
ppalka [Wed, 27 Apr 2016 21:18:05 +0000 (21:18 +0000)] 
Reduce nesting of parentheses in conditionals generated by genattrtab

gcc/ChangeLog:

* genattrtab.c (write_test_expr): New parameter EMIT_PARENS
which defaults to true.  Emit an outer pair of parentheses only if
EMIT_PARENS.  When continuing a chain of && or || (or & or |),
don't emit parentheses for the right-hand operand.

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

9 years ago * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
law [Wed, 27 Apr 2016 20:52:15 +0000 (20:52 +0000)] 
    * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.

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

9 years ago PR c++/69024
law [Wed, 27 Apr 2016 20:41:52 +0000 (20:41 +0000)] 
PR c++/69024
PR c++/68997
* cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
(cilk_recognize_spawn): Renamed from recognize_spawn and change to
external linkage.
(cilk_detect_and_unwrap): Corresponding changes.
(extract_free_variables): Don't extract free variables from
AGGR_INIT_EXPR slot.
* c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
(cilk_recognize_spawn): Likewise.

PR c++/69024
PR c++/68997
* cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
instead of cilk_detect_spawn_and_unwrap.
* cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
(find_spawn): New.
(cilk_cp_detect_spawn_and_unwrap): New.
* lambda.c: Include cp-cilkplus.h.
* parser.c: Include cp-cilkplus.h.
* cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
* cp-cilkpus.h: New file.

PR c++/69024
PR c++/68997
* g++.dg/cilk-plus/CK/pr68001.cc: Fix to not depend on broken
diagnostic.
* g++.dg/cilk-plus/CK/pr69024.cc: New test.
* g++.dg/cilk-plus/CK/pr68997.cc: New test.

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

9 years ago2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
wschmidt [Wed, 27 Apr 2016 20:22:27 +0000 (20:22 +0000)] 
2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
(altivec_lvx_<mode>_internal): Document.
(altivec_lvx_<mode>_2op): New define_insn.
(altivec_lvx_<mode>_1op): Likewise.
(altivec_lvx_<mode>_2op_si): Likewise.
(altivec_lvx_<mode>_1op_si): Likewise.
(altivec_stvx_<mode>): Remove.
(altivec_stvx_<mode>_internal): Document.
(altivec_stvx_<mode>_2op): New define_insn.
(altivec_stvx_<mode>_1op): Likewise.
(altivec_stvx_<mode>_2op_si): Likewise.
(altivec_stvx_<mode>_1op_si): Likewise.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Expand vec_ld and vec_st during parsing.
* config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
changes.
(altivec_expand_stvx_be): Likewise.
(altivec_expand_lv_builtin): Expand lvx built-ins to expose the
address-masking behavior in RTL.
(altivec_expand_stv_builtin): Expand stvx built-ins to expose the
address-masking behavior in RTL.
(altivec_expand_builtin): Change builtin code arguments for calls
to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
(insn_is_swappable_p): Avoid incorrect swap optimization in the
presence of lvx/stvx patterns.
(alignment_with_canonical_addr): New function.
(alignment_mask): Likewise.
(find_alignment_op): Likewise.
(recombine_lvx_pattern): Likewise.
(recombine_stvx_pattern): Likewise.
(recombine_lvx_stvx_patterns): Likewise.
(rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
stvx patterns from expand.
* config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
expansions.
(vector_altivec_store_<mode>): Likewise.

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

9 years ago[AArch64] Replace insn to zero up SIMD registers
evandro [Wed, 27 Apr 2016 19:52:58 +0000 (19:52 +0000)] 
[AArch64] Replace insn to zero up SIMD registers

gcc/
* config/aarch64/aarch64.md
(*movhf_aarch64): Add "movi %0, #0" to zero up register and
remove the "fp" attributes.
(*movsf_aarch64): Add "movi %0, #0" to zero up register and
add the "simd" attributes.
(*movdf_aarch64): Likewise.
(*movtf_aarch64): Remove the "fp" attributes.
* testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
* testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.

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

9 years agomaybe_set_first_label_num can take an rtx_code_label *
dmalcolm [Wed, 27 Apr 2016 18:22:12 +0000 (18:22 +0000)] 
maybe_set_first_label_num can take an rtx_code_label *

The function maybe_set_first_label_num acts on a CODE_LABEL; we can
capture that in the type system.

gcc/ChangeLog:
* emit-rtl.c (maybe_set_first_label_num): Strengthen param from
rtx to rtx_code_label *.
* rtl.h (maybe_set_first_label_num): Likewise.

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

9 years agodf: make df_problem instances "const"
dmalcolm [Wed, 27 Apr 2016 18:18:45 +0000 (18:18 +0000)] 
df: make df_problem instances "const"

The various struct df_problem instances are constant data; mark them
as such.

gcc/ChangeLog:
* df-core.c (df_add_problem): Make the problem param be const.
(df_remove_problem): Make local "problem" be const.
* df-problems.c (problem_RD): Make const.
(problem_LR): Likewise.
(problem_LIVE): Likewise.
(problem_MIR): Likewise.
(problem_CHAIN): Likewise.
(problem_WORD_LR): Likewise.
(problem_NOTE): Likewise.
(problem_MD): Likewise.
* df-scan.c (problem_SCAN): Likewise.
* df.h (struct df_problem): Make field "dependent_problem" be
const.
(struct dataflow): Likewise for field "problem".
(df_add_problem): Make param const.

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

9 years ago * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
uros [Wed, 27 Apr 2016 18:10:02 +0000 (18:10 +0000)] 
* config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
inter-unit moves to/from vector registers are enabled.  Do not disable
for TARGET_MMX.

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

9 years agoConvert DF_SCAN etc from #define to an enum
dmalcolm [Wed, 27 Apr 2016 18:08:46 +0000 (18:08 +0000)] 
Convert DF_SCAN etc from #define to an enum

Whilst debugging an issue in df, I noticed that there are
some #define constants that could be an enum (thus making them known
to gdb).

Convert them to a new enum, and update the "id" field of
struct df_problem.

gcc/ChangeLog:
* df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
#define to...
(enum df_problem_id): ...this new enum.
(struct df_problem): Convert field "id" from "int" to
enum df_problem_id.

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

9 years ago * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged
ebotcazou [Wed, 27 Apr 2016 18:08:39 +0000 (18:08 +0000)] 
* sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged
incomplete type without full view.
* sem_ch6.adb (Exchange_Limited_Views): Change into a function and
return the list of changes.
(Restore_Limited_Views): New procedure to undo the transformation made
by Exchange_Limited_Views.
(Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views
and call Restore_Limited_Views at the end, if need be.
(Possible_Freeze): Do not delay freezing because of incomplete types.
(Process_Formals): Remove kludges for class-wide types.
* types.h (By_Copy_Return): Delete.
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around.
(TYPE_DUMMY_IN_PROFILE_P): New macro.
* gcc-interface/gigi.h (update_profiles_with): Declare.
(finish_subprog_decl): Likewise.
(get_minimal_subprog_decl): Delete.
(create_subprog_type): Likewise.
(create_param_decl): Adjust prototype.
(create_subprog_decl): Likewise.
* gcc-interface/decl.c (defer_limited_with): Rename into...
(defer_limited_with_list): ...this.
(gnat_to_gnu_entity): Adjust to above renaming.
(finalize_from_limited_with): Likewise.
(tree_entity_vec_map): New structure.
(gt_pch_nx): New helpers.
(dummy_to_subprog_map): New hash table.
(gnat_to_gnu_param): Set the SLOC here.  Remove MECH parameter and
add FIRST parameter.  Deal with the mechanism here instead of...
Do not make read-only variant of types.  Simplify expressions.
In the by-ref case, test the mechanism before must_pass_by_ref
and also TYPE_IS_BY_REFERENCE_P before building the reference type.
(gnat_to_gnu_subprog_type): New static function extracted from...
Do not special-case the type_annotate_only mode.  Call
gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type.
Deal with dummy return types.  Likewise for parameter types.  Deal
with by-reference types explicitly and add a kludge for null procedures
with untagged incomplete types.  Remove assertion on the types and be
prepared for multiple elaboration of the declarations.  Skip the whole
CICO processing if the profile is incomplete.  Handle the completion of
a previously incomplete profile.
(gnat_to_gnu_entity) <E_Variable>: Rename local variable.
Adjust couple of calls to create_param_decl.
<E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>:
Remove specific deferring code.
<E_Access_Type>: Also deal with E_Subprogram_Type designated type.
Simplify handling of dummy types and remove obsolete comment.
Constify a couple of variables.  Do not set TYPE_UNIVERSAL_ALIASING_P
on dummy types.
<E_Access_Subtype>: Tweak comment and simplify condition.
<E_Subprogram_Type>: ...here.  Call it and clean up handling.  Remove
obsolete comment and adjust call to gnat_to_gnu_param.  Adjust call to
create_subprog_decl.
<E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of
inner break statements.  Tidy up condition guarding direct use of the
full view.
(get_minimal_subprog_decl): Delete.
(finalize_from_limited_with): Call update_profiles_with on dummy types
with TYPE_DUMMY_IN_PROFILE_P set.
(is_from_limited_with_of_main): Delete.
(associate_subprog_with_dummy_type): New function.
(update_profile): Likewise.
(update_profiles_with): Likewise.
(gnat_to_gnu_profile_type): Likewise.
(init_gnat_decl): Initialize dummy_to_subprog_map.
(destroy_gnat_decl): Destroy dummy_to_subprog_map.
* gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing
TYPE_UNIVERSAL_ALIASING_P.
(gnat_get_array_descr_info): Minor tweak.
* gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl.
(build_raise_check): Likewise.
(Compilation_Unit_to_gnu): Likewise.
(Identifier_to_gnu): Accept mismatches coming from a limited context.
(Attribute_to_gnu): Remove kludge for dispatch table entities.
(process_freeze_entity): Do not retrieve old definition if there is an
address clause on the entity.  Call update_profiles_with on dummy types
with TYPE_DUMMY_IN_PROFILE_P set.
* gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set
TYPE_REFERENCE_TO to the fat pointer type.
(create_subprog_type): Delete.
(create_param_decl): Remove READONLY parameter.
(finish_subprog_decl): New function extracted from...
(create_subprog_decl): ...here.  Call it.  Remove CONST_FLAG and
VOLATILE_FLAG parameters and adjust.
(update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained
case.

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

9 years agoFix comment in rtl.def
dmalcolm [Wed, 27 Apr 2016 17:54:42 +0000 (17:54 +0000)] 
Fix comment in rtl.def

Commit r210360 removed the first "i" field from the various instruction
nodes in rtx.def, moving it to an explicit "int insn_uid;" field
of the union "u2" within rtx_def.

Update the comment in rtl.def to reflect this change.  Also, fix
a stray apostrophe.

gcc/ChangeLog:
* rtl.def: Update comment for "things in the instruction chain" to
reflect the removal of the leading "i" field for INSN_UID in
r210360.  Fix bogus apostrophe.

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

9 years ago * config/i386/i386.md
uros [Wed, 27 Apr 2016 17:45:32 +0000 (17:45 +0000)] 
* config/i386/i386.md
(lea arith with mem operand + setcc peephole2): Set operator mode.

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

9 years agoExtend STV pass to 64-bit mode
hjl [Wed, 27 Apr 2016 17:32:40 +0000 (17:32 +0000)] 
Extend STV pass to 64-bit mode

128-bit SSE load and store instructions can be used for load and store
of 128-bit integers if they are the only operations on 128-bit integers.
To convert load and store of 128-bit integers to 128-bit SSE load and
store, the original STV pass, which is designed to convert 64-bit integer
operations to SSE2 operations in 32-bit mode, is extended to 64-bit mode
in the following ways:

1. Class scalar_chain is turned into base class.  The 32-bit specific
member functions are moved to the new derived class, dimode_scalar_chain.
The new derived class, timode_scalar_chain, is added to convert oad and
store of 128-bit integers to 128-bit SSE load and store.
2. Add the 64-bit version of scalar_to_vector_candidate_p and
remove_non_convertible_regs.  Only TImode load and store are allowed
for conversion.  If one instruction on the chain of dependent
instructions aren't TImode load or store, the chain of instructions
won't be converted.
3. In 64-bit, we only convert from TImode to V1TImode, which have the
same size.  The difference is only vector registers are allowed in
TImode so that 128-bit SSE load and store instructions will be used
for load and store of 128-bit integers.
4. Put the 64-bit STV pass before the CSE pass so that instructions
changed or generated by the STV pass can be CSEed.

convert_scalars_to_vector calls free_dominance_info in 64-bit mode to
work around ICE in fwprop pass:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70807

when building libgcc on Linux/x86-64.

gcc/

PR target/70155
* config/i386/i386.c (scalar_to_vector_candidate_p): Renamed
to ...
(dimode_scalar_to_vector_candidate_p): This.
(timode_scalar_to_vector_candidate_p): New function.
(scalar_to_vector_candidate_p): Likewise.
(timode_check_non_convertible_regs): Likewise.
(timode_remove_non_convertible_regs): Likewise.
(remove_non_convertible_regs): Likewise.
(remove_non_convertible_regs): Renamed to ...
(dimode_remove_non_convertible_regs): This.
(scalar_chain::~scalar_chain): Make it virtual.
(scalar_chain::compute_convert_gain): Make it pure virtual.
(scalar_chain::mark_dual_mode_def): Likewise.
(scalar_chain::convert_insn): Likewise.
(scalar_chain::convert_registers): Likewise.
(scalar_chain::add_to_queue): Make it protected.
(scalar_chain::emit_conversion_insns): Likewise.
(scalar_chain::replace_with_subreg): Likewise.
(scalar_chain::replace_with_subreg_in_insn): Likewise.
(scalar_chain::convert_op): Likewise.
(scalar_chain::convert_reg): Likewise.
(scalar_chain::make_vector_copies): Likewise.
(scalar_chain::convert_registers): New pure virtual function.
(class dimode_scalar_chain): New class.
(class timode_scalar_chain): Likewise.
(scalar_chain::mark_dual_mode_def): Renamed to ...
(dimode_scalar_chain::mark_dual_mode_def): This.
(timode_scalar_chain::mark_dual_mode_def): New function.
(timode_scalar_chain::convert_insn): Likewise.
(dimode_scalar_chain::convert_registers): Likewise.
(scalar_chain::compute_convert_gain): Renamed to ...
(dimode_scalar_chain::compute_convert_gain): This.
(scalar_chain::replace_with_subreg): Renamed to ...
(dimode_scalar_chain::replace_with_subreg): This.
(scalar_chain::replace_with_subreg_in_insn): Renamed to ...
(dimode_scalar_chain::replace_with_subreg_in_insn): This.
(scalar_chain::make_vector_copies): Renamed to ...
(dimode_scalar_chain::make_vector_copies): This.
(scalar_chain::convert_reg): Renamed to ...
(dimode_scalar_chain::convert_reg ): This.
(scalar_chain::convert_op): Renamed to ...
(dimode_scalar_chain::convert_op): This.
(scalar_chain::convert_insn): Renamed to ...
(dimode_scalar_chain::convert_insn): This.
(scalar_chain::convert): Call convert_registers.
(convert_scalars_to_vector): Change to scalar_chain pointer to
use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
in 32-bit mode.  Delete scalar_chain pointer.  Call
free_dominance_info in 64-bit mode.
(pass_stv::gate): Remove TARGET_64BIT check.
(ix86_option_override): Put the 64-bit STV pass before the CSE
pass.

gcc/testsuite/

PR target/70155
* gcc.target/i386/pr55247-2.c: Updated to check movti_internal
and movv1ti_internal patterns
* gcc.target/i386/pr70155-1.c: New test.
* gcc.target/i386/pr70155-2.c: Likewise.
* gcc.target/i386/pr70155-3.c: Likewise.
* gcc.target/i386/pr70155-4.c: Likewise.
* gcc.target/i386/pr70155-5.c: Likewise.
* gcc.target/i386/pr70155-6.c: Likewise.
* gcc.target/i386/pr70155-7.c: Likewise.
* gcc.target/i386/pr70155-8.c: Likewise.
* gcc.target/i386/pr70155-9.c: Likewise.
* gcc.target/i386/pr70155-10.c: Likewise.
* gcc.target/i386/pr70155-11.c: Likewise.
* gcc.target/i386/pr70155-12.c: Likewise.
* gcc.target/i386/pr70155-13.c: Likewise.
* gcc.target/i386/pr70155-14.c: Likewise.
* gcc.target/i386/pr70155-15.c: Likewise.
* gcc.target/i386/pr70155-16.c: Likewise.
* gcc.target/i386/pr70155-17.c: Likewise.
* gcc.target/i386/pr70155-18.c: Likewise.
* gcc.target/i386/pr70155-19.c: Likewise.
* gcc.target/i386/pr70155-20.c: Likewise.
* gcc.target/i386/pr70155-21.c: Likewise.
* gcc.target/i386/pr70155-22.c: Likewise.

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

9 years agoReplace ".{5}" with ".{5,6}" in avx512vl-vmovdqa64-1.c
hjl [Wed, 27 Apr 2016 15:51:22 +0000 (15:51 +0000)] 
Replace ".{5}" with ".{5,6}" in avx512vl-vmovdqa64-1.c

* gcc.target/i386/avx512vl-vmovdqa64-1.c: Replace ".{5}" with
".{5,6}".

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

9 years agoDWARF: turn dw_loc_descr_node field into hash map for frame offset check
pmderodat [Wed, 27 Apr 2016 15:03:40 +0000 (15:03 +0000)] 
DWARF: turn dw_loc_descr_node field into hash map for frame offset check

As discussed on
<https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01708.html>, this change
removes a field in the dw_loc_descr_node structure so we can get rid of
the CHECKING_P macro usage.

This field was used to perform consistency checks for frame offset in
DWARF procedures. As a replacement, this commit turns the "visited
nodes" set in resolve_args_picking_1 into a map that remembers for each
dw_loc_descr_node the frame offset associated to it, so that the
consistency check is still operational.

Boostrapped and regtested on x86_64-linux.

2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>

* dwarf2out.h (struct dw_loc_descr_node): Remove the
dw_loc_frame_offset field.
* dwarf2out.c (new_loc_descr): Likewise.
(resolve_args_picking_1): Turn the VISITED hash set into a
FRAME_OFFSET hash map. Use it to associate a frame offset to
visited nodes. Remove uses of the CHECKING_P macro.
(resolve_args_picking): Update call to resolve_args_picking_1.

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

9 years ago * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
amker [Wed, 27 Apr 2016 14:52:38 +0000 (14:52 +0000)] 
* tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
(free_loop_data): Release vuses of groups.

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

9 years ago * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
amker [Wed, 27 Apr 2016 14:51:26 +0000 (14:51 +0000)] 
* tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
instead of redundant use_id and boolean have_use_for.
(struct iv_use): Change sub_id into group_id.  Remove field next.
Move fields: related_cands, n_map_members, cost_map and selected
to ...
(struct iv_group): ... here.  New structure.
(struct iv_common_cand): Use structure declaration directly.
(struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
(MAX_CONSIDERED_USES): Rename macro to ...
(MAX_CONSIDERED_GROUPS): ... here.
(n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
(dump_iv, dump_use, dump_cand): Refactor format of dump information.
(dump_uses): Rename to ...
(dump_groups): ... here.  Update all uses.
(tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
(find_induction_variables): Refactor format of dump information.
(record_sub_use): Delete.
(record_use): Update all uses.
(record_group): New function.
(record_group_use, find_interesting_uses_op): Call above functions.
Update all uses.
(find_interesting_uses_cond): Ditto.
(group_compare_offset): New function.
(split_all_small_groups): Rename to ...
(split_small_address_groups_p): ... here.  Update all uses.
(split_address_groups):  Update all uses.
(find_interesting_uses): Refactor format of dump information.
(add_candidate_1): Update all uses.  Remove redundant check on iv,
base and step.
(add_candidate, record_common_cand): Remove redundant assert.
(add_iv_candidate_for_biv): Update use.
(add_iv_candidate_derived_from_uses): Update all uses.
(add_iv_candidate_for_groups, record_important_candidates): Ditto.
(alloc_use_cost_map): Ditto.
(set_use_iv_cost, get_use_iv_cost): Rename to ...
(set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
(determine_use_iv_cost_generic): Ditto.
(determine_group_iv_cost_generic): Ditto.
(determine_use_iv_cost_address): Ditto.
(determine_group_iv_cost_address): Ditto.
(determine_use_iv_cost_condition): Ditto.
(determine_group_iv_cost_cond): Ditto.
(determine_use_iv_cost): Ditto.
(determine_group_iv_cost): Ditto.
(set_autoinc_for_original_candidates): Update all uses.
(find_iv_candidates): Update all uses.  Refactor dump information.
(determine_use_iv_costs): Ditto.
(determine_iv_costs): Ditto.
(iv_ca_cand_for_use): Rename to ...
(iv_ca_cand_for_group): ... here.  Update all uses.
(iv_ca_add_use, iv_ca_add_group): Ditto.
(iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
(iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
(iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
(iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
(try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
(create_new_iv, adjust_iv_update_pos): Ditto.
(rewrite_use_address): Delete.
(rewrite_use_address_1): Rename to ...
(rewrite_use_address): ... here.
(rewrite_use_compare): Update all uses.
(rewrite_use): Delete.
(rewrite_uses): Rename to ...
(rewrite_groups): ... here.  Update all uses.
(remove_unused_ivs, free_loop_data): Update all uses.
(tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.

gcc/testsuite/ChangeLog
* gcc.dg/tree-ssa/pr64705.c: Revise check string.
* gcc.dg/tree-ssa/scev-9.c: Ditto.
* gcc.dg/tree-ssa/scev-10.c: Ditto.
* gcc.dg/tree-ssa/scev-11.c: Ditto.
* gcc.dg/tree-ssa/scev-12.c: Ditto.

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

9 years ago[rtlanal.c] Convert conditional compilation on WORD_REGISTER_OPERATIONS
ktkachov [Wed, 27 Apr 2016 14:38:10 +0000 (14:38 +0000)] 
[rtlanal.c] Convert conditional compilation on WORD_REGISTER_OPERATIONS

* rtlanal.c (nonzero_bits1): Convert preprocessor check
for WORD_REGISTER_OPERATIONS to runtime check.

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

9 years ago2016-04-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Apr 2016 14:10:04 +0000 (14:10 +0000)] 
2016-04-27  Richard Biener  <rguenther@suse.de>

PR ipa/70760
* tree-ssa-structalias.c (find_func_aliases_for_call): Use
aggregate_value_p to determine if a function result is
returned by reference.
(ipa_pta_execute): Functions having their address taken are
not automatically nonlocal.

* g++.dg/ipa/ipa-pta-2.C: New testcase.
* gcc.dg/ipa/ipa-pta-1.c: Adjust.

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

9 years ago PR sanitizer/70683
jakub [Wed, 27 Apr 2016 13:29:34 +0000 (13:29 +0000)] 
PR sanitizer/70683
* tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
* fold-const.c (operand_equal_p): If flag_checking and
OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
and if it returns non-zero, assert iterative_hash_expr on both
args is the same.

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

9 years ago cp/
nathan [Wed, 27 Apr 2016 13:28:44 +0000 (13:28 +0000)] 
cp/
* constexpr.c (get_fundef_copy): Use the original function for
non-recursive evaluations.
(save_fundef_copy): Always expect a slot to be available.

testsuite/
* g++.dg/cpp0x/constexpr-recursion3.C: New.
* g++.dg/ubsan/pr63956.C: Adjust error location.

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

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 13:28:30 +0000 (13:28 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* aa_util.adb, aa_util.ads: Removed, no longer used.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Pragma): An object
renaming declaration resulting from the expansion of an object
declaration is a suitable context for pragma Ghost.

2016-04-27  Doug Rupp  <rupp@adacore.com>

* init.c: Refine last checkin so the only requirement is the
signaling compilation unit is compiled with the same mode as
the compilation unit containing the initial landing pad.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal
specifications for Default_Iterator, including overloaded cases
where no interpretations are legal, and return types that are
not iterator types.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch5.adb (Expand_N_Assignment_Statement): Do not install
an accessibility check when the left hand side of the assignment
denotes a container cursor.
* exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed.
* sem_ch4.adb (Find_Indexing_Operations): New routine.
(Try_Container_Indexing): Code cleanup.

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

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 13:25:54 +0000 (13:25 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* errout.adb, errutil.adb: Minor reformatting.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post):
Check that the classwide version is illegal when the prefix is
an operation of an untagged synchronized type.

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

9 years ago2016-04-27 Arnaud Charlet <charleT@adacore.com>
charlet [Wed, 27 Apr 2016 13:22:48 +0000 (13:22 +0000)] 
2016-04-27  Arnaud Charlet  <charleT@adacore.com>

* sinput-l.ads, sem_ch13.adb: Minor editing.

2016-04-27  Doug Rupp  <rupp@adacore.com>

* init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]:
Bump the pc so the lower order bit is set.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is
enabled, report an empty range in a case construct.

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

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 13:15:25 +0000 (13:15 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb,
a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing.

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

9 years ago2016-04-27 Bob Duff <duff@adacore.com>
charlet [Wed, 27 Apr 2016 13:09:13 +0000 (13:09 +0000)] 
2016-04-27  Bob Duff  <duff@adacore.com>

* a-chtgop.adb (Adjust): Zero the tampering counts on assignment,
as is done for the other containers.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* ghost.adb (In_Subprogram_Body_Profile): New routine.
(Is_OK_Declaration): Treat an unanalyzed expression
function as an OK context.  Treat a reference to a Ghost entity
as OK when it appears within the profile of a subprogram body.

2016-04-27  Bob Duff  <duff@adacore.com>

* errout.ads: Document the fact that informational messages
don't have to be warnings.
* errout.adb (Error_Msg_Internal): In statistics counts, deal
correctly with informational messages that are not warnings.
(Error_Msg_NEL): Remove useless 'if' aroung Set_Posted, because
Set_Posted already checks for errors and ignores others.
* erroutc.adb (Prescan_Message): Set Is_Serious_Error to False
if Is_Info_Msg; the previous code was assuming that Is_Info_Msg
implies Is_Warning_Msg.
* errutil.adb (Error_Msg): In statistics counts, deal correctly
with informational messages that are not warnings.

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

9 years ago2016-04-27 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 27 Apr 2016 13:05:41 +0000 (13:05 +0000)] 
2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_util.ads, sem_util.adb (Is_Null_Record_Type): New predicate
to determine whether a record type is a null record.
* sem_ch3.adb (Analyze_Object_Declaration): If the type is a
null record and there is no expression in the declaration,
no predicate check applies to the object.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch7.adb (Analyze_Package_Body_Helper): The body of an
instantiated package should not cause freezing of previous contracts.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Analyze_Dimension): Handle subtype declarations
that do not come from source.
(Analyze_Dimension_Subtype_Declaration): Allow confirming
dimensions on subtype entity, either inherited from base type
or provided by aspect specification.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution):
Add scalar formal object Zero, to allow detection and report
when the matrix is singular.
* s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution):
Raise Constraint_Error if the Forward_Eliminate pass has
determined that determinant is Zero.o
* s-ngrear.adb (Solve): Add actual for Zero in corresponding
instantiations.
* s-ngcoar.adb (Solve): Ditto.

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 12:56:41 +0000 (12:56 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb: Minor reformatting.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Analyze_Dimension, case N_Identifier): Check
that identifier has a usable type before analysis, to handle
properly identifiers introduced after some lexical/syntactic
recovery that created new identifiers.

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

9 years ago2016-04-27 Bob Duff <duff@adacore.com>
charlet [Wed, 27 Apr 2016 12:55:18 +0000 (12:55 +0000)] 
2016-04-27  Bob Duff  <duff@adacore.com>

* a-coinve.adb, a-comutr.adb, a-conhel.adb, a-convec.adb,
exp_util.adb: Remove assertions that can fail in obscure cases when
assertions are turned on but tampering checks are turned off.

2016-04-27  Javier Miranda  <miranda@adacore.com>

* exp_ch6.adb (Add_Call_By_Copy_Code,
Add_Simple_Call_By_Copy_Code, Expand_Actuals): Handle formals
whose type comes from the limited view.

2016-04-27  Yannick Moy  <moy@adacore.com>

* a-textio.adb: Complete previous patch.

2016-04-27  Yannick Moy  <moy@adacore.com>

* inline.adb (Expand_Inlined_Call): Use Cannot_Inline instead of
Error_Msg_N to issue message about impossibility to inline call,
with slight change of message.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_spark.adb (Expand_Potential_Renaming): Removed.
(Expand_SPARK): Update the call to expand a potential renaming.
(Expand_SPARK_Potential_Renaming): New routine.
* exp_spark.ads (Expand_SPARK_Potential_Renaming): New routine.
* sem.adb Add with and use clauses for Exp_SPARK.
(Analyze): Expand a non-overloaded potential renaming for SPARK.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Constrain_Discriminated_Type): In an instance,
check full view for the presence of defaulted discriminants,
even when the partial view of a private type has no visible and
no unknown discriminants.

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 12:52:02 +0000 (12:52 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-xref.adb, exp_ch3.adb: Minor reformatting.

2016-04-27  Nicolas Roche  <roche@adacore.com>

* rtinit.c: Add weak symbol __gnat_do_argv_expansion.

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 12:47:56 +0000 (12:47 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Code
cleanup. Check the original node when trying to determine the node kind
of pragma Volatile's argument to account for untagged derivations
where the type is transformed into a constrained subtype.

2016-04-27  Olivier Hainque  <hainque@adacore.com>

* mkdir.c (__gnat_mkdir): Rework the vxworks section to use a
consistent posix interface on the caller side.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch10.adb (Build_Limited_View, Decorate_Type): If this
is a limited view of a type, initialize the Limited_Dependents
field to catch misuses of the type in a client unit.

2016-04-27  Thomas Quinot  <quinot@adacore.com>

* a-strunb-shared.adb (Finalize): add missing Reference call.
* s-strhas.adb: minor grammar fix and extension of comment
* sem_ch8.adb: minor whitespace fixes

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* lib-xref.adb (Get_Type_Reference): Handle properly the case
of an object declaration whose type definition is a class-wide
subtype and whose expression is a function call that returns a
classwide type.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_util.ads, sem_util.adb (Output_Entity): New routine.
(Output_Name): New routine.

2016-04-27  Bob Duff  <duff@adacore.com>

* exp_ch3.adb (Rewrite_As_Renaming): Disable previous change for now.

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

9 years ago2016-04-27 Vincent Celier <celier@adacore.com>
charlet [Wed, 27 Apr 2016 12:42:03 +0000 (12:42 +0000)] 
2016-04-27  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb: For "gnat ls -V -P", recognize switch
--unchecked-shared-lib-imports and set the flag
Opt.Unchecked_Shared_Lib_Imports accordingly.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part):
A generic subprogram is never a primitive operation, and thus
a classwide condition for it is not legal.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_aggr.adb, sem_dim.adb, sem_dim.ads, einfo.adb: Minor
reformatting.

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 12:37:55 +0000 (12:37 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Flag_Effectively_Volatile_Objects): New routine.
(Resolve_Actuals): Flag effectively volatile objects with enabled
property Async_Writers or Effective_Reads as illegal.
* sem_util.adb (Is_OK_Volatile_Context): Comment reformatting.

2016-04-27  Javier Miranda  <miranda@adacore.com>

* exp_ch3.adb (Make_Predefined_Primitive_Specs):
Do not generate the profile of the equality operator if it has
been explicitly defined as abstract in the parent type. Required
to avoid reporting an spurious error.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.ads, sem_dim.adb (Check_Expression_Dimensions): New
procedure to compute the dimension vector of a scalar expression
and compare it with the dimensions if its expected subtype. Used
for the ultimate components of a multidimensional aggregate,
whose components typically are themselves aggregates that are
expanded separately. Previous to this patch, dimensionality
checking on such aggregates generated spurious errors.
* sem_aggr.adb (Resolve_Array_Aggregate): Use
Check_Expression_Dimensions when needed.

2016-04-27  Javier Miranda  <miranda@adacore.com>

* einfo.ads, einfo.adb (Corresponding_Function): New attribute
(applicable to E_Procedure).
(Corresponding_Procedure): New attribute (applicable to E_Function).
* exp_util.adb (Build_Procedure_Form): Link the function with
its internally built proc and viceversa.
* sem_ch6.adb (Build_Subprogram_Declaration): Propagate the
attribute Rewritten_For_C and Corresponding_Procedure to the body.
* exp_ch6.adb (Rewritten_For_C_Func_Id): Removed.
(Rewritten_For_C_Proc_Id): Removed.
* exp_unst.adb (Note_Uplevel_Ref): Use the new attribute to
locate the corresponding procedure.

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 12:30:49 +0000 (12:30 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Export_Import): Signal that there is no
corresponding pragma.

2016-04-27  Bob Duff  <duff@adacore.com>

* exp_ch3.adb: Minor comment improvement.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): If the
return type is an untagged limited record with only access
discriminants and no controlled components, the return value does not
need to use the secondary stack.

2016-04-27  Javier Miranda  <miranda@adacore.com>

* exp_util.adb (Remove_Side_Effects): When
generating C code handle object declarations that have
discriminants and are initialized by means of a call to a
function.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* a-textio.adb (Get_Line function): Handle properly the case of
a line that has the same length as the buffer (or a multiple
thereof) and there is no line terminator.
* a-tigeli.adb (Get_Line procedure): Do not store an end_of_file
in the string when there is no previous line terminator and we
need at most one additional character.

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

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 12:26:50 +0000 (12:26 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* s-rident.ads: Make No_Implicit_Loops non partition wide.

2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* sem_ch11.adb (Analyze_Handled_Statements): check useless
assignments also in entries and task bodies, not only in
procedures and declaration blocks.
* sem_ch5.adb (Analyze_Block_Statement): check useless
assignements in declaration blocks as part of processing their
handled statement sequence, just like it was done for procedures
and now is also done for entries and task bodies.
* sem_warn.adb (Warn_On_Useless_Assignment): detect boundries
of entries and task bodies just like of procedures.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_util.adb (Is_Volatile_Function): Recognize
a function declared within a protected type as well as the
protected/unprotected version of a function.

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

9 years ago2016-04-27 Bob Duff <duff@adacore.com>
charlet [Wed, 27 Apr 2016 12:20:54 +0000 (12:20 +0000)] 
2016-04-27  Bob Duff  <duff@adacore.com>

* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite an object
declaration of the form "X : T := Func (...);", where T is
controlled, as a renaming.
* a-strunb-shared.adb (Finalize): Set the Unbounded_String Object
to be an empty string, instead of null-ing out the Reference.
* exp_util.adb (Needs_Finalization): Remove redundant code.

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

9 years agolibstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode
redi [Wed, 27 Apr 2016 11:57:58 +0000 (11:57 +0000)] 
libstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode

PR libstdc++/70767
* include/std/limits: Update comments about DRs.
(numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
numeric_limits<const volatile _Tp>): Define unconditionally.

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

9 years ago * doc/invoke.texi (-frename-registers): Also enabled at -Os.
bernds [Wed, 27 Apr 2016 11:43:58 +0000 (11:43 +0000)] 
* doc/invoke.texi (-frename-registers): Also enabled at -Os.

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

9 years ago PR middle-end/49889
nickc [Wed, 27 Apr 2016 11:29:20 +0000 (11:29 +0000)] 
PR middle-end/49889
gcc * varasm.c (merge_weak): Generate an error if an attempt is made
to convert a non-weak static function into a weak, public function.

testsuite * gcc.dg/pr49889.c: New test.

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 11:01:35 +0000 (11:01 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* aspects.ads Aspects Export and Import do not require delay. They
were classified as delayed aspects, but treated as non-delayed
by the analysis of aspects.
* freeze.adb (Copy_Import_Pragma): New routine.
(Wrap_Imported_Subprogram): Copy the import pragma by first
resetting all semantic fields to avoid an infinite loop when
performing the copy.
* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add
comment on the processing of aspects Export and Import
at the freeze point.
(Analyze_Aspect_Convention: New routine.
(Analyze_Aspect_Export_Import): New routine.
(Analyze_Aspect_External_Link_Name): New routine.
(Analyze_Aspect_External_Or_Link_Name): Removed.
(Analyze_Aspect_Specifications): Factor out the analysis of
aspects Convention, Export, External_Name, Import, and Link_Name
in their respective routines.  Aspects Export and Import should
not generate a Boolean pragma because their corresponding pragmas
have a very different syntax.
(Build_Export_Import_Pragma): New routine.
(Get_Interfacing_Aspects): New routine.

2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb (Add_Inlined_Body): Overhaul implementation,
robustify handling of -gnatn1, add special treatment for
expression functions.

2016-04-27  Doug Rupp  <rupp@adacore.com>

* g-traceb.ads: Update comment.
* exp_ch2.adb: minor style fix in object declaration

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

9 years ago2016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 27 Apr 2016 10:58:41 +0000 (10:58 +0000)] 
2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Check_Internal_Call): Do not
consider a call when it appears within pragma Initial_Condition
since the pragma is part of the elaboration statements of a
package body and may only call external subprograms or subprograms
whose body is already available.
(Within_Initial_Condition): New routine.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb (Build_Procedure_Form): Prevent double generation
of the procedure form when dealing with an expression function
whose return type is an array.
* sem_ch3.adb: Fix out-of order Has_Predicates setting.
* exp_ch6.adb: Proper conversion for inherited operation in C.
* sem_ch6.adb: Code cleanup.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-xref.ads, sem_ch10.adb: minor style fix in comment
* g-socket.adb: Minor reformatting.
* sinfo.ads: Minor comment correction.
* sem_warn.ads: minor grammar fix in comment

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

9 years agoFix ChangeLog entry for r235478
prathamesh3492 [Wed, 27 Apr 2016 10:50:07 +0000 (10:50 +0000)] 
Fix ChangeLog entry for r235478

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

9 years ago Fix typo in gcc/testsuite/ChangeLog for revision 235436.
amker [Wed, 27 Apr 2016 10:49:58 +0000 (10:49 +0000)] 
Fix typo in gcc/testsuite/ChangeLog for revision 235436.

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

9 years ago * gcc-interface/gigi.h (gnat_to_gnu_entity): Adjust prototype.
ebotcazou [Wed, 27 Apr 2016 10:49:35 +0000 (10:49 +0000)] 
* gcc-interface/gigi.h (gnat_to_gnu_entity): Adjust prototype.
(maybe_pad_type): Adjust comment.
(finish_record_type): Likewise.
(rest_of_record_type_compilation): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity): Change DEFINITION type
parameter from integer to boolean.  Adjust recursive calls.
<E_Subprogram_Type>: Use copy_type and remove redundant assignments.
<E_Signed_Integer_Subtype>:  Adjust comment.  Remove call to
rest_of_record_type_compilation.  Set TYPE_PADDING_P flag earlier.
Pass false to finish_record_type.  Set the debug type later.
<E_Record_Subtype>: Remove call to rest_of_record_type_compilation.
(gnat_to_gnu_component_type): Fix formatting.
(gnat_to_gnu_field_decl): Adjust call to gnat_to_gnu_entity.
(gnat_to_gnu_type): Likewise.
* gcc-interface/trans.c (Identifier_to_gnu): Likewise.
(Loop_Statement_to_gnu): Likewise.
(Subprogram_Body_to_gnu): Likewise.
(Exception_Handler_to_gnu_fe_sjlj): Likewise.
(Exception_Handler_to_gnu_gcc): Likewise.
(Compilation_Unit_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
(push_exception_label_stack): Likewise.
(elaborate_all_entities_for_package): Likewise.
(process_freeze_entity): Likewise.
(process_decls): Likewise.
(process_type): Likewise.
* gcc-interface/utils.c (struct deferred_decl_context_node): Tweak.
(maybe_pad_type): Adjust comments.  Set the debug type later.  Remove
call to rest_of_record_type_compilation.
(rest_of_record_type_compilation): Use copy_type.
(copy_type): Use correctly typed constants.
(gnat_signed_or_unsigned_type_for): Use copy_type.
* gcc-interface/utils2.c (nonbinary_modular_operation): Likewise.
(build_goto_raise): Adjust call tognat_to_gnu_entity.

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

9 years ago2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Wed, 27 Apr 2016 10:46:16 +0000 (10:46 +0000)] 
2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* params.def (MAX_PARTITION_SIZE): New param.
* invoke.texi: Document lto-max-partition.
lto/
* lto-partition.h (lto_balanced_map): New parameter.
* lto-partition.c (lto_balanced_map): New parameter
max_partition_size.
Check if partition size is greater than max_partition_size.
* lto.c (do_whole_program_analysis): Adjust calls to
lto_balanced_map() to pass 2nd argument.

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

9 years ago2016-04-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Apr 2016 10:42:08 +0000 (10:42 +0000)] 
2016-04-27  Richard Biener  <rguenther@suse.de>

PR ipa/70785
* tree-ssa-structalias.c (refered_from_nonlocal_fn): New
function cummulating used_from_other_partition, externally_visible
and force_output from aliases.
(refered_from_nonlocal_var): Likewise.
(ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
node flags properly.

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

9 years ago * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
bernds [Wed, 27 Apr 2016 09:48:56 +0000 (09:48 +0000)] 
* doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
(-Wmemset-elt-size): New item.
c-family/
* c.opt (Wmemset-elt-size): New option.
* c-common.c (warn_for_memset): New function.
* c-common.h (warn_for_memset): Declare.
c/
* c-parser.c (c_parser_postfix_expression_after_primary): Call
warn_for_memset instead of warning directly here.
cp/
* parser.c (cp_parser_postfix_expression): Call
warn_for_memset instead of warning directly here.
testsuite/
* c-c++-common/memset-array.c: New test.

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

9 years ago PR ada/70759
ebotcazou [Wed, 27 Apr 2016 07:49:49 +0000 (07:49 +0000)] 
PR ada/70759
* stor-layout.h (internal_reference_types): Delete.
* stor-layout.c (reference_types_internal): Likewise.
(internal_reference_types): Likewise.
(layout_type) <REFERENCE_TYPE>: Adjust.
ada/
* gcc-interface/misc.c (gnat_init): Do not call
internal_reference_types.

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

9 years ago * gennews (files): Add files for GCC 6.
jakub [Wed, 27 Apr 2016 07:48:34 +0000 (07:48 +0000)] 
* gennews (files): Add files for GCC 6.

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

9 years ago PR sanitizer/70683
jakub [Wed, 27 Apr 2016 07:45:57 +0000 (07:45 +0000)] 
PR sanitizer/70683
* tree.h (inchash::add_expr): Add FLAGS argument.
* tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
Formatting fix.  Adjust recursive calls.  For tcc_comparison,
if swap_tree_comparison (code) is smaller than code, hash that
and arguments in the other order.  Hash CONVERT_EXPR the same
as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
of ADDR_EXPR of decl as the decl itself.  Add or remove
OEP_ADDRESS_OF from recursive flags as needed.  For
FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
operands commutatively and only the third one normally.
For internal CALL_EXPR hash in CALL_EXPR_IFN.

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

9 years ago * gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
ebotcazou [Wed, 27 Apr 2016 07:38:41 +0000 (07:38 +0000)] 
* gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
* s-osinte-gnu.ads: Small tweaks.
* s-osinte-gnu.adb: New file.

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

9 years ago[libatomic] Add RTEMS support
sh [Wed, 27 Apr 2016 07:14:42 +0000 (07:14 +0000)] 
[libatomic] Add RTEMS support

gcc/

* config/rtems.h (LIB_SPEC): Add -latomic.

libatomic/

* configure.tgt (configure_tgt_pre_target_cpu_XCFLAGS): New variable.
(*-*-rtems*): New supported target.
* config/rtems/host-config.h: New file.
* config/rtems/lock.c: Likewise.

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

9 years ago[Microblaze] Redefine LINK_SPEC for RTEMS
sh [Wed, 27 Apr 2016 07:06:43 +0000 (07:06 +0000)] 
[Microblaze] Redefine LINK_SPEC for RTEMS

gcc/

* config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
xilink.ld and flags not relevant to RTEMS.

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

9 years agoDaily bump.
gccadmin [Wed, 27 Apr 2016 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

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

9 years agoPR c++/66639 - declare __func__ , __FUNCTION__ & __PRETTY_FUNCTION__ constexpr
msebor [Tue, 26 Apr 2016 22:57:34 +0000 (22:57 +0000)] 
PR c++/66639 - declare __func__ , __FUNCTION__ & __PRETTY_FUNCTION__ constexpr
* g++.dg/cpp1y/func_constexpr.C: New test.

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

9 years agoFix PR c++/70241 (inconsistent access with in-class enumeration)
ppalka [Tue, 26 Apr 2016 22:24:43 +0000 (22:24 +0000)] 
Fix PR c++/70241 (inconsistent access with in-class enumeration)

gcc/cp/ChangeLog:

PR c++/70241
* decl.c (build_enumerator): Set current_access_specifier when
declaring an enumerator belonging to an in-class enumeration.
* parser.c (cp_parser_check_access_in_redecleration): Also
consider in-class enumerations.

gcc/testsite/ChangeLog:

PR c++/70241
* g++.dg/cpp0x/enum32.C: New test.
* g++.dg/cpp0x/enum33.C: New test.

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

9 years ago2016-04-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
law [Tue, 26 Apr 2016 20:56:29 +0000 (20:56 +0000)] 
2016-04-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.c-torture/compile/pr69102.c: Require scheduling support.
* gcc.c-torture/compile/pr37669.c: Require >=32 bit integers.
* gcc.c-torture/execute/bitfld-6.c: Likewise.
* gcc.c-torture/execute/bitfld-7.c: Likewise.
* gcc.c-torture/execute/pr38151.c: Likewise.
* gcc.c-torture/execute/pr66556.c: Likewise.
* gcc.c-torture/execute/pr67781.c: Likewise.
* gcc.c-torture/execute/pr68648.c: Likewise.

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

9 years ago2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
law [Tue, 26 Apr 2016 20:52:16 +0000 (20:52 +0000)] 
2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>

* toplev.c (backend_init_target): Avoid calling init_reload when using
LRA.

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

9 years ago compiler: Add Enclosed_var_expression.
ian [Tue, 26 Apr 2016 20:37:58 +0000 (20:37 +0000)] 
compiler: Add Enclosed_var_expression.

    Introduces an abstraction for a variable referenced in a closure.
    This maintains the underlying expression which accesses a field within
    a closure variable and gives easy access to the underlying
    Named_object.

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

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

9 years ago * reorg.c (try_merge_delay_insns): Declare i and j inside the
jakub [Tue, 26 Apr 2016 20:32:05 +0000 (20:32 +0000)] 
* reorg.c (try_merge_delay_insns): Declare i and j inside the
for loops rather than one for the whole function.

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

9 years agomatch.pd: u + 3 < u is u > UINT_MAX - 3
glisse [Tue, 26 Apr 2016 15:03:08 +0000 (15:03 +0000)] 
match.pd: u + 3 < u is u > UINT_MAX - 3

2016-04-26  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (X + CST CMP X): New transformation.

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

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

9 years ago PR c/70791
mpolacek [Tue, 26 Apr 2016 15:01:09 +0000 (15:01 +0000)] 
PR c/70791
* c-decl.c (pushdecl): Pass LOCUS down to warning.

* gcc.dg/Wnested-externs-2.c: New test.

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

9 years ago PR c/67784
mpolacek [Tue, 26 Apr 2016 14:59:40 +0000 (14:59 +0000)] 
PR c/67784
* c-parser.c (c_parser_maybe_reclassify_token): New function factored
out of ...
(c_parser_for_statement): ... here.
(c_parser_if_statement): Use it.
(c_parser_switch_statement): Use it.
(c_parser_while_statement): Use it.

* gcc.dg/pr67784-3.c: New test.
* gcc.dg/pr67784-4.c: New test.
* gcc.dg/pr67784-5.c: New test.

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

9 years ago * c-c++-common/cpp/pr63831-1.c: Don't test for C++ values here.
jason [Tue, 26 Apr 2016 14:05:51 +0000 (14:05 +0000)] 
* c-c++-common/cpp/pr63831-1.c: Don't test for C++ values here.

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

9 years agomatch.pd: X + X --> X * 2 for integers
glisse [Tue, 26 Apr 2016 14:02:09 +0000 (14:02 +0000)] 
match.pd: X + X --> X * 2 for integers

2016-04-26  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
* fold-const.c (fold_binary_loc): Remove 2 transformations
superseded by match.pd.
* match.pd (x+x -> x*2): Generalize to integers.

gcc/testsuite/
* gcc.dg/fold-plusmult.c: Adjust.
* gcc.dg/no-strict-overflow-6.c: Adjust.
* gcc.dg/gomp/loop-1.c: Xfail some tests.

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

9 years agoi386: Add a variant peephole for lea rather than ops that clobber CC.
bernds [Tue, 26 Apr 2016 12:57:50 +0000 (12:57 +0000)] 
i386: Add a variant peephole for lea rather than ops that clobber CC.

* config/i386/i386.md (operation on memory peephole): Duplicate an
existing peephole and adapt it to match lea rather than an operation
that clobbers CC.

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

9 years agoEnable -frename-registers at -O2.
bernds [Tue, 26 Apr 2016 12:43:42 +0000 (12:43 +0000)] 
Enable -frename-registers at -O2.

PR rtl-optimization/57193
* opts.c (default_options_table): Add OPT_frename_registers at -O2
and above.
* doc/invoke.texi (-frename-registers, -O2): Update documentation.

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

9 years agoFix x86 testcases for -frename-registers.
bernds [Tue, 26 Apr 2016 12:25:52 +0000 (12:25 +0000)] 
Fix x86 testcases for -frename-registers.

* gcc.target/i386/avx512bw-vptestmb-1.c: Correct [xyz]mm register
number scans.
* gcc.target/i386/avx512bw-vptestmw-1.c: Likewise.
* gcc.target/i386/avx512bw-vptestnmb-1.c: Likewise.
* gcc.target/i386/avx512bw-vptestnmw-1.c: Likewise.
* gcc.target/i386/avx512cd-vpbroadcastmb2q-1.c: Likewise.
* gcc.target/i386/avx512cd-vpbroadcastmw2d-1.c: Likewise.
* gcc.target/i386/avx512dq-vfpclasspd-1.c: Likewise.
* gcc.target/i386/avx512dq-vfpclassps-1.c: Likewise.
* gcc.target/i386/avx512dq-vinsertf64x2-1.c: Likewise.
* gcc.target/i386/avx512dq-vinserti64x2-1.c: Likewise.
* gcc.target/i386/avx512f-gather-5.c: Likewise.
* gcc.target/i386/avx512f-vptestmd-1.c: Likewise.
* gcc.target/i386/avx512f-vptestmq-1.c: Likewise.
* gcc.target/i386/avx512f-vptestnmd-1.c: Likewise.
* gcc.target/i386/avx512f-vptestnmq-1.c: Likewise.
* gcc.target/i386/avx512f-vrndscaleps-1.c: Likewise.
* gcc.target/i386/avx512vl-vpbroadcastmb2q-1.c: Likewise.
* gcc.target/i386/avx512vl-vpbroadcastmw2d-1.c: Likewise.
* gcc.target/i386/avx512vl-vptestmd-1.c: Likewise.
* gcc.target/i386/avx512vl-vptestmq-1.c: Likewise.
* gcc.target/i386/avx512vl-vptestnmd-1.c: Likewise.
* gcc.target/i386/avx512vl-vptestnmq-1.c: Likewise.
* gcc.target/i386/pr32219-2.c: Allow registers other than %eax in
scans.
* gcc.target/i386/pr32219-4.c: Likewise.
* gcc.target/i386/pr32219-6.c: Likewise.
* gcc.target/i386/pr32219-8.c: Likewise.

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

9 years agoFix FAIL: gcc.dg/tree-ssa/minmax-2.c scan-tree-dump optimized "__builtin_fmin"
ktkachov [Tue, 26 Apr 2016 12:17:39 +0000 (12:17 +0000)] 
Fix FAIL: gcc.dg/tree-ssa/minmax-2.c scan-tree-dump optimized "__builtin_fmin"

* gcc.dg/tree-ssa/minmax-2.c: Require c99_runtime and add the
associated options.

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

9 years agoVerify __builtin_unreachable and __builtin_trap are not called with arguments
jamborm [Tue, 26 Apr 2016 11:51:23 +0000 (11:51 +0000)] 
Verify __builtin_unreachable and __builtin_trap are not called with arguments

2016-04-26  Martin Jambor  <mjambor@suse.cz>

* tree-cfg.c (verify_gimple_call): Check that calls to
__builtin_unreachable or __builtin_trap do not have actual arguments.

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

9 years agoBootstrapped/regtested on x86_64-linux, ok for trunk?
mpolacek [Tue, 26 Apr 2016 11:32:26 +0000 (11:32 +0000)] 
Bootstrapped/regtested on x86_64-linux, ok for trunk?

2016-04-25  Marek Polacek  <polacek@redhat.com>

PR c++/70744
* call.c (build_conditional_expr_1): Call cp_stabilize_reference
instead of stabilize_reference.
(build_over_call): Likewise.
* cp-tree.h (cp_stabilize_reference): Declare.
* tree.c (cp_stabilize_reference): New function.
* typeck.c (cp_build_unary_op): Call cp_stabilize_reference instead of
stabilize_reference.
(unary_complex_lvalue): Likewise.
(cp_build_modify_expr): Likewise.

* g++.dg/ext/cond2.C: New test.

diff --git gcc/cp/call.c gcc/cp/call.c
index 11f2d42..476e806 100644
--- gcc/cp/call.c
+++ gcc/cp/call.c
@@ -4634,7 +4634,7 @@ build_conditional_expr_1 (location_t loc, tree arg1, tree arg2, tree arg3,

       /* Make sure that lvalues remain lvalues.  See g++.oliva/ext1.C.  */
       if (real_lvalue_p (arg1))
- arg2 = arg1 = stabilize_reference (arg1);
+ arg2 = arg1 = cp_stabilize_reference (arg1);
       else
  arg2 = arg1 = save_expr (arg1);
     }
@@ -7644,8 +7644,9 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
         || (TREE_CODE (arg) == TARGET_EXPR
     && !unsafe_copy_elision_p (fa, arg)))
  {
-   tree to = stabilize_reference (cp_build_indirect_ref (fa, RO_NULL,
- complain));
+   tree to = cp_stabilize_reference (cp_build_indirect_ref (fa,
+    RO_NULL,
+    complain));

    val = build2 (INIT_EXPR, DECL_CONTEXT (fn), to, arg);
    return val;
@@ -7655,7 +7656,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
     && trivial_fn_p (fn)
     && !DECL_DELETED_FN (fn))
     {
-      tree to = stabilize_reference
+      tree to = cp_stabilize_reference
  (cp_build_indirect_ref (argarray[0], RO_NULL, complain));
       tree type = TREE_TYPE (to);
       tree as_base = CLASSTYPE_AS_BASE (type);
diff --git gcc/cp/cp-tree.h gcc/cp/cp-tree.h
index ec92718..0e46ae1 100644
--- gcc/cp/cp-tree.h
+++ gcc/cp/cp-tree.h
@@ -6494,6 +6494,7 @@ extern cp_lvalue_kind real_lvalue_p (const_tree);
 extern cp_lvalue_kind lvalue_kind (const_tree);
 extern bool lvalue_or_rvalue_with_address_p (const_tree);
 extern bool xvalue_p                         (const_tree);
+extern tree cp_stabilize_reference (tree);
 extern bool builtin_valid_in_constant_expr_p    (const_tree);
 extern tree build_min (enum tree_code, tree, ...);
 extern tree build_min_nt_loc (location_t, enum tree_code,
diff --git gcc/cp/tree.c gcc/cp/tree.c
index 112c8c7..137186f 100644
--- gcc/cp/tree.c
+++ gcc/cp/tree.c
@@ -296,6 +296,46 @@ xvalue_p (const_tree ref)
   return (lvalue_kind (ref) == clk_rvalueref);
 }

+/* C++-specific version of stabilize_reference.  */
+
+tree
+cp_stabilize_reference (tree ref)
+{
+  switch (TREE_CODE (ref))
+    {
+    /* We need to treat specially anything stabilize_reference doesn't
+       handle specifically.  */
+    case VAR_DECL:
+    case PARM_DECL:
+    case RESULT_DECL:
+    CASE_CONVERT:
+    case FLOAT_EXPR:
+    case FIX_TRUNC_EXPR:
+    case INDIRECT_REF:
+    case COMPONENT_REF:
+    case BIT_FIELD_REF:
+    case ARRAY_REF:
+    case ARRAY_RANGE_REF:
+    case COMPOUND_EXPR:
+    case ERROR_MARK:
+      break;
+    default:
+      cp_lvalue_kind kind = lvalue_kind (ref);
+      if ((kind & ~clk_class) != clk_none)
+ {
+   tree type = unlowered_expr_type (ref);
+   bool rval = !!(kind & clk_rvalueref);
+   type = cp_build_reference_type (type, rval);
+   /* This inhibits warnings in, eg, cxx_mark_addressable
+      (c++/60955).  */
+   warning_sentinel s (extra_warnings);
+   ref = build_static_cast (type, ref, tf_error);
+ }
+    }
+
+  return stabilize_reference (ref);
+}
+
 /* Test whether DECL is a builtin that may appear in a
    constant-expression. */

diff --git gcc/cp/typeck.c gcc/cp/typeck.c
index cef5604..7e12009 100644
--- gcc/cp/typeck.c
+++ gcc/cp/typeck.c
@@ -5912,7 +5912,7 @@ cp_build_unary_op (enum tree_code code, tree xarg, int noconvert,
  {
    tree real, imag;

-   arg = stabilize_reference (arg);
+   arg = cp_stabilize_reference (arg);
    real = cp_build_unary_op (REALPART_EXPR, arg, 1, complain);
    imag = cp_build_unary_op (IMAGPART_EXPR, arg, 1, complain);
    real = cp_build_unary_op (code, real, 1, complain);
@@ -6112,7 +6112,7 @@ unary_complex_lvalue (enum tree_code code, tree arg)
       tree lvalue = TREE_OPERAND (arg, 0);
       if (TREE_SIDE_EFFECTS (lvalue))
  {
-   lvalue = stabilize_reference (lvalue);
+   lvalue = cp_stabilize_reference (lvalue);
    arg = build2 (TREE_CODE (arg), TREE_TYPE (arg),
  lvalue, TREE_OPERAND (arg, 1));
  }
@@ -7496,7 +7496,7 @@ cp_build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs,
     case PREINCREMENT_EXPR:
       if (TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0)))
  lhs = build2 (TREE_CODE (lhs), TREE_TYPE (lhs),
-       stabilize_reference (TREE_OPERAND (lhs, 0)),
+       cp_stabilize_reference (TREE_OPERAND (lhs, 0)),
        TREE_OPERAND (lhs, 1));
       newrhs = cp_build_modify_expr (TREE_OPERAND (lhs, 0),
       modifycode, rhs, complain);
@@ -7516,7 +7516,7 @@ cp_build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs,
     case MODIFY_EXPR:
       if (TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0)))
  lhs = build2 (TREE_CODE (lhs), TREE_TYPE (lhs),
-       stabilize_reference (TREE_OPERAND (lhs, 0)),
+       cp_stabilize_reference (TREE_OPERAND (lhs, 0)),
        TREE_OPERAND (lhs, 1));
       newrhs = cp_build_modify_expr (TREE_OPERAND (lhs, 0), modifycode, rhs,
       complain);
@@ -7665,7 +7665,7 @@ cp_build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs,
       not intervene between the lvalue-to-rvalue conversion and the
       side effect associated with any single compound assignment
       operator. -- end note ]  */
-   lhs = stabilize_reference (lhs);
+   lhs = cp_stabilize_reference (lhs);
    rhs = rvalue (rhs);
    rhs = stabilize_expr (rhs, &init);
    newrhs = cp_build_binary_op (input_location,
diff --git gcc/testsuite/g++.dg/ext/cond2.C gcc/testsuite/g++.dg/ext/cond2.C
index e69de29..d9f1d59 100644
--- gcc/testsuite/g++.dg/ext/cond2.C
+++ gcc/testsuite/g++.dg/ext/cond2.C
@@ -0,0 +1,28 @@
+// PR c++/70744
+// { dg-do run }
+// { dg-options "" }
+
+static void
+fn1 (void)
+{
+  int x = 2;
+  ++x ? : 42;
+  if (x != 3)
+    __builtin_abort ();
+  --x ? : 42;
+  if (x != 2)
+    __builtin_abort ();
+  x++ ? : 42;
+  if (x != 3)
+    __builtin_abort ();
+  x-- ? : 42;
+  if (x != 2)
+    __builtin_abort ();
+}
+
+int
+main ()
+{
+  fn1 ();
+  return 0;
+}

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

9 years ago * tree-if-conv.c (any_pred_load_store): New static variable.
amker [Tue, 26 Apr 2016 11:16:07 +0000 (11:16 +0000)] 
* tree-if-conv.c (any_pred_load_store): New static variable.
(if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
any_pred_load_store instead of and_mask_load_store.
(if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
(if_convertible_loop_p, insert_gimplified_predicates): Ditto.
(combine_blocks, tree_if_conversion): Ditto.

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

9 years ago PR tree-optimization/70771
amker [Tue, 26 Apr 2016 11:10:47 +0000 (11:10 +0000)] 
PR tree-optimization/70771
PR tree-optimization/70775
* tree-if-conv.c (if_convertible_phi_p): Remove check on special
virtual PHI nodes.  Delete parameter.
(if_convertible_loop_p_1): Delete argument to above function.
(predicate_all_scalar_phis): Delete code handling single-argument
PHIs.
(tree_if_conversion): Mark and update virtual SSA.

gcc/testsuite/ChangeLog
PR tree-optimization/70771
PR tree-optimization/70775
* gcc.dg/pr70771.c: New test.
* gcc.dg/pr70771.c: New test.

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

9 years agoSupport .largecomm with Solaris as (PR target/61821)
ro [Tue, 26 Apr 2016 10:10:33 +0000 (10:10 +0000)] 
Support .largecomm with Solaris as (PR target/61821)

PR target/61821
* config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
(x86_elf_aligned_common): Rename to ...
(x86_elf_aligned_decl_common): ... this.
Add decl arg.  Switch to .lbss for largecomm object.  Use
LARGECOMM_SECTION_ASM_OP.
* config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
renaming.
* config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
(ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
Pass new decl arg.
* config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
[!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.

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

9 years agoSupport .lbss etc. sections with Solaris as (PR target/59407)
ro [Tue, 26 Apr 2016 10:06:16 +0000 (10:06 +0000)] 
Support .lbss etc. sections with Solaris as (PR target/59407)

PR target/59407
* config/i386/i386.c (SECTION_LARGE): Define.
(x86_64_elf_select_section): Set it for large data/bss sections.
Only clear SECTION_WRITE for .lrodata.
(x86_64_elf_section_type_flags): Set SECTION_LARGE for large
data/bss sections.
* config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
* varasm.c (default_elf_asm_named_section): Grow flagchars.
[MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
SECTION_MACH_DEP.
* doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
* doc/tm.texi: Regenerate.

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

9 years agoCompile libcilkrts with -funwind-tables (PR target/60290)
ro [Tue, 26 Apr 2016 08:55:02 +0000 (08:55 +0000)] 
Compile libcilkrts with -funwind-tables (PR target/60290)

PR target/60290
* Makefile.am (GENERAL_FLAGS): Add -funwind-tables.
* Makefile.in: Regenerate.

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

9 years ago * gcc.target/i386/lzcnt-1.c: Allow a different lzcntw output register.
bernds [Tue, 26 Apr 2016 08:48:14 +0000 (08:48 +0000)] 
* gcc.target/i386/lzcnt-1.c: Allow a different lzcntw output register.

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

9 years ago PR bootstrap/70704
jakub [Tue, 26 Apr 2016 06:10:43 +0000 (06:10 +0000)] 
PR bootstrap/70704
* configure.ac (--enable-stage1-checking): For --disable-checking or
implicit --enable-checking, make sure extra flag matches in between
stage1 and later checking.
* configure: Regenerated.
gcc/
* configure.ac (--enable-checking): Document extra flag, for
non-release builds default to --enable-checking=yes,extra.
If misc checking and extra checking, define CHECKING_P to 2 instead
of 1.
* common.opt (fchecking=): Add.
* doc/invoke.texi (-fchecking=): Document.
* doc/install.texi: Document --enable-checking changes.
* configure: Regenerated.
* config.in: Regenerated.
gcc/cp/
* pt.c (build_non_dependent_expr): Use flag_checking > 1 instead of
just flag_checking.

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

9 years agoDaily bump.
gccadmin [Tue, 26 Apr 2016 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
uros [Mon, 25 Apr 2016 21:57:42 +0000 (21:57 +0000)] 
* config/i386/i386.md (*movxi_internal_avx512f): Use insn type
attribute instead of which_alternative.
* config/i386/sse.md (*mov<mode>_internal): Ditto.
Use EXT_REX_SSE_REG_P where appropriate.

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

9 years ago * sv.po: Update.
jsm28 [Mon, 25 Apr 2016 20:41:18 +0000 (20:41 +0000)] 
* sv.po: Update.

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

9 years ago * config/i386/predicates.md (const0_operand): Do not match
uros [Mon, 25 Apr 2016 19:20:45 +0000 (19:20 +0000)] 
* config/i386/predicates.md (const0_operand): Do not match
const_wide_int code.
(const1_operand): Ditto.

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

9 years ago * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
uros [Mon, 25 Apr 2016 19:15:26 +0000 (19:15 +0000)] 
* config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
for SSE constm1 operands and TARGET_AVX512VL.
(*movti_internal): Ditto.
(*mov<mode>_or): Use constm1_operand predicate.
* config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
for SSE vector_all_ones operands and TARGET_AVX512VL.
* config/i386/predicates.md (constm1_operand): New predicate.
* config/i386/i386.c (standard_sse_constant_opcode): Simplify
emission of constant -1 load.

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

9 years ago * gdbinit.in: Skip is-a.h.
jason [Mon, 25 Apr 2016 17:44:15 +0000 (17:44 +0000)] 
* gdbinit.in: Skip is-a.h.

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

9 years ago Implement C++17 [[maybe_unused]] attribute.
jason [Mon, 25 Apr 2016 17:21:49 +0000 (17:21 +0000)] 
Implement C++17 [[maybe_unused]] attribute.

gcc/
* attribs.c (register_scoped_attributes): Fix logic.
* attribs.h: Declare register_scoped_attributes.
c-family/
* c-common.c (handle_unused_attribute): Accept CONST_DECL.
No longer static.
* c-common.h: Declare it.
* c-lex.c (c_common_has_attribute): Add maybe_unused.
cp/
* tree.c (std_attribute_table): New.
(init_tree): Register it.

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

9 years agoCorrect ChangeLog entry
wschmidt [Mon, 25 Apr 2016 16:18:00 +0000 (16:18 +0000)] 
Correct ChangeLog entry

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

9 years ago2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
wschmidt [Mon, 25 Apr 2016 16:17:26 +0000 (16:17 +0000)] 
2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* rs6000-builtin.def: Correct pasto error for stxvd2x and stxvw4x
built-in functions.

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

9 years agoRevert the last change in libatomic
hjl [Mon, 25 Apr 2016 12:41:43 +0000 (12:41 +0000)] 
Revert the last change in libatomic

Need to properly check if -march=i486 is really needed for -m32 build
of libatomic on Linux/x86 and Linux/x86-64.

PR target/70454
* configure.tgt (XCFLAGS): Revert the last change.

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

9 years ago * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
nickc [Mon, 25 Apr 2016 11:59:44 +0000 (11:59 +0000)] 
* config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
(ashrhi3): Likewise.
(lshrhi3): Likewise.

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

9 years ago * config/msp430/cmpd.c (__mspabi_cmpf): Add prototype.
nickc [Mon, 25 Apr 2016 11:13:35 +0000 (11:13 +0000)] 
* config/msp430/cmpd.c (__mspabi_cmpf): Add prototype.
(__mspabi_cmpd): Likewise.
* config/msp430/floathidf.c (__floathidf): Likewise.
* config/msp430/floathisf.c (__floathisf): Likewise
* config/msp430/floatunhidf.c (__floatunssidf): Likewise.
* config/msp430/floatunhisf.c (__floatunshisf): Likewise.
* config/msp430/lib2shift.c (__ashlsi3): Take a signed char as the
second parameter.
(__ashrsi3): Likewise.

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

9 years ago2016-04-25 Richard Biener <rguenther@suse.de>
rguenth [Mon, 25 Apr 2016 10:49:55 +0000 (10:49 +0000)] 
2016-04-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70780
* tree-ssa-pre.c (compute_antic_aux): Also return true if the block
wasn't visited yet.
(compute_antic): Mark blocks with abnormal preds as visited as
they have a final empty antic-in solution already.

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

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

9 years ago2016-04-25 Michael Collison <michael.collison@linaro.org>
collison [Mon, 25 Apr 2016 05:57:07 +0000 (05:57 +0000)] 
2016-04-25  Michael Collison  <michael.collison@linaro.org>
* ChangeLog(2016-04-25): Fix ChangeLog formatting.

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

9 years ago2016-04-25 Michael Collison <michael.collison@linaro.org>
collison [Mon, 25 Apr 2016 05:03:09 +0000 (05:03 +0000)] 
2016-04-25  Michael Collison  <michael.collison@linaro.org>

    * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
    mode is VQI to improve mixed mode vectorization.
    * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
    define_insn to match low half of signed vaddw.
    * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
    define_insn to match high half of signed vaddw.
    * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
    define_insn to match low half of unsigned vaddw.
    * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
    define_insn to match high half of unsigned vaddw.
    * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
    (arm_simd_check_vect_par_cnst_half_p): Likewise.
    * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
    for new function.
    (arm_simd_check_vect_par_cnst_half_p): Likewise.
    * config/arm/predicates.md (vect_par_constant_high): Support
    big endian and simplify by calling
    arm_simd_check_vect_par_cnst_half
    (vect_par_constant_low): Likewise.
    * testsuite/gcc.target/arm/neon-vaddws16.c: New test.
    * testsuite/gcc.target/arm/neon-vaddws32.c: New test.
    * testsuite/gcc.target/arm/neon-vaddwu16.c: New test.
    * testsuite/gcc.target/arm/neon-vaddwu32.c: New test.
    * testsuite/gcc.target/arm/neon-vaddwu8.c: New test.
    * testsuite/lib/target-supports.exp
      (check_effective_target_vect_widen_sum_hi_to_si_pattern): Indicate
      that arm neon support vector widen sum of HImode TO SImode.

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

9 years agoDaily bump.
gccadmin [Mon, 25 Apr 2016 00:16:25 +0000 (00:16 +0000)] 
Daily bump.

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