Arnaud Charlet [Wed, 27 Apr 2016 12:47:56 +0000 (14:47 +0200)]
[multiple changes]
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.
From-SVN: r235495
Arnaud Charlet [Wed, 27 Apr 2016 12:42:03 +0000 (14:42 +0200)]
[multiple changes]
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.
From-SVN: r235494
Arnaud Charlet [Wed, 27 Apr 2016 12:37:55 +0000 (14:37 +0200)]
[multiple changes]
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.
From-SVN: r235493
Arnaud Charlet [Wed, 27 Apr 2016 12:30:49 +0000 (14:30 +0200)]
[multiple changes]
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.
From-SVN: r235492
Arnaud Charlet [Wed, 27 Apr 2016 12:26:50 +0000 (14:26 +0200)]
[multiple changes]
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.
From-SVN: r235491
Bob Duff [Wed, 27 Apr 2016 12:20:54 +0000 (12:20 +0000)]
exp_ch3.adb (Expand_N_Object_Declaration): Rewrite an object declaration of the form "X ...
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.
From-SVN: r235488
Jonathan Wakely [Wed, 27 Apr 2016 11:57:58 +0000 (12:57 +0100)]
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.
From-SVN: r235486
Bernd Schmidt [Wed, 27 Apr 2016 11:43:58 +0000 (11:43 +0000)]
* doc/invoke.texi (-frename-registers): Also enabled at -Os.
From-SVN: r235485
Nick Clifton [Wed, 27 Apr 2016 11:29:20 +0000 (11:29 +0000)]
re PR go/49889 (Calling a function whose name is obscured by a local variable does not produce an error)
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.
From-SVN: r235484
Arnaud Charlet [Wed, 27 Apr 2016 11:01:35 +0000 (13:01 +0200)]
[multiple changes]
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
From-SVN: r235483
Arnaud Charlet [Wed, 27 Apr 2016 10:58:41 +0000 (12:58 +0200)]
[multiple changes]
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
From-SVN: r235482
Prathamesh Kulkarni [Wed, 27 Apr 2016 10:50:07 +0000 (10:50 +0000)]
Fix ChangeLog entry for r235478
From-SVN: r235481
Bin Cheng [Wed, 27 Apr 2016 10:49:58 +0000 (10:49 +0000)]
Fix typo in gcc/testsuite/ChangeLog for revision 235436.
From-SVN: r235480
Eric Botcazou [Wed, 27 Apr 2016 10:49:35 +0000 (10:49 +0000)]
gigi.h (gnat_to_gnu_entity): Adjust prototype.
* 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.
From-SVN: r235479
Prathamesh Kulkarni [Wed, 27 Apr 2016 10:46:16 +0000 (10:46 +0000)]
params.def (MAX_PARTITION_SIZE): New param.
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.
From-SVN: r235478
Richard Biener [Wed, 27 Apr 2016 10:42:08 +0000 (10:42 +0000)]
re PR ipa/70785 (LTO bootstrap with IPA PTA is broken)
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.
From-SVN: r235477
Bernd Schmidt [Wed, 27 Apr 2016 09:48:56 +0000 (09:48 +0000)]
invoke.texi (Warning Options): Add -Wmemset-elt-size.
* 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.
From-SVN: r235475
Eric Botcazou [Wed, 27 Apr 2016 07:49:49 +0000 (07:49 +0000)]
re PR ada/70759 (Ada rts fails to build with -mabi=ilp32)
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.
From-SVN: r235472
Jakub Jelinek [Wed, 27 Apr 2016 07:48:34 +0000 (09:48 +0200)]
* gennews (files): Add files for GCC 6.
From-SVN: r235470
Jakub Jelinek [Wed, 27 Apr 2016 07:45:57 +0000 (09:45 +0200)]
re PR sanitizer/70683 (-fcompare-debug bug with -fsanitize=address)
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.
From-SVN: r235469
Svante Signell [Wed, 27 Apr 2016 07:38:41 +0000 (07:38 +0000)]
Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
* gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
* s-osinte-gnu.ads: Small tweaks.
* s-osinte-gnu.adb: New file.
From-SVN: r235467
Sebastian Huber [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.
From-SVN: r235466
Joel Sherrill [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.
From-SVN: r235465
GCC Administrator [Wed, 27 Apr 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r235464
Martin Sebor [Tue, 26 Apr 2016 22:57:34 +0000 (22:57 +0000)]
PR c++/66639 - declare __func__ , __FUNCTION__ & __PRETTY_FUNCTION__ constexpr
PR c++/66639 - declare __func__ , __FUNCTION__ & __PRETTY_FUNCTION__ constexpr
* g++.dg/cpp1y/func_constexpr.C: New test.
From-SVN: r235458
Patrick Palka [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.
From-SVN: r235456
Senthil Kumar Selvaraj [Tue, 26 Apr 2016 20:56:29 +0000 (20:56 +0000)]
pr69102.c: Require scheduling support.
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.
From-SVN: r235454
Zhouyi Zhou [Tue, 26 Apr 2016 20:52:16 +0000 (20:52 +0000)]
toplev.c (backend_init_target): Avoid calling init_reload when using LRA.
2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
* toplev.c (backend_init_target): Avoid calling init_reload when using
LRA.
From-SVN: r235453
Ian Lance Taylor [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
From-SVN: r235452
Jakub Jelinek [Tue, 26 Apr 2016 20:32:05 +0000 (22:32 +0200)]
reorg.c (try_merge_delay_insns): Declare i and j inside the for loops rather than one for the whole function.
* reorg.c (try_merge_delay_insns): Declare i and j inside the
for loops rather than one for the whole function.
From-SVN: r235451
Marc Glisse [Tue, 26 Apr 2016 15:03:08 +0000 (17:03 +0200)]
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.
From-SVN: r235448
Marek Polacek [Tue, 26 Apr 2016 15:01:09 +0000 (15:01 +0000)]
re PR c/70791 (-Wnested-externs prints inconsistent column number)
PR c/70791
* c-decl.c (pushdecl): Pass LOCUS down to warning.
* gcc.dg/Wnested-externs-2.c: New test.
From-SVN: r235447
Marek Polacek [Tue, 26 Apr 2016 14:59:40 +0000 (14:59 +0000)]
re PR c/67784 (Incorrect parsing when using declarations in for loops and typedefs)
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.
From-SVN: r235446
Jason Merrill [Tue, 26 Apr 2016 14:05:51 +0000 (10:05 -0400)]
* c-c++-common/cpp/pr63831-1.c: Don't test for C++ values here.
From-SVN: r235445
Marc Glisse [Tue, 26 Apr 2016 14:02:09 +0000 (16:02 +0200)]
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.
From-SVN: r235444
Bernd Schmidt [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.
From-SVN: r235443
Bernd Schmidt [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.
From-SVN: r235442
Bernd Schmidt [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.
From-SVN: r235441
Kyrylo Tkachov [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.
From-SVN: r235440
Martin Jambor [Tue, 26 Apr 2016 11:51:23 +0000 (13:51 +0200)]
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.
From-SVN: r235439
Marek Polacek [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;
+}
From-SVN: r235438
Bin Cheng [Tue, 26 Apr 2016 11:16:07 +0000 (11:16 +0000)]
tree-if-conv.c (any_pred_load_store): New static variable.
* 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.
From-SVN: r235437
Bin Cheng [Tue, 26 Apr 2016 11:10:47 +0000 (11:10 +0000)]
re PR tree-optimization/70771 (ICE on valid code at -O3 on x86_64-linux-gnu in operator[], at vec.h:714)
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.
From-SVN: r235436
Rainer Orth [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.
From-SVN: r235435
Rainer Orth [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.
From-SVN: r235434
Rainer Orth [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.
From-SVN: r235432
Bernd Schmidt [Tue, 26 Apr 2016 08:48:14 +0000 (08:48 +0000)]
* gcc.target/i386/lzcnt-1.c: Allow a different lzcntw output register.
From-SVN: r235431
Jakub Jelinek [Tue, 26 Apr 2016 06:10:43 +0000 (08:10 +0200)]
re PR bootstrap/70704 (AIX bootstrap comparison failure)
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.
From-SVN: r235430
GCC Administrator [Tue, 26 Apr 2016 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r235428
Uros Bizjak [Mon, 25 Apr 2016 21:57:42 +0000 (23:57 +0200)]
i386.md (*movxi_internal_avx512f): Use insn type attribute instead of which_alternative.
* 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.
From-SVN: r235422
Joseph Myers [Mon, 25 Apr 2016 20:41:18 +0000 (21:41 +0100)]
* sv.po: Update.
From-SVN: r235419
Uros Bizjak [Mon, 25 Apr 2016 19:20:45 +0000 (21:20 +0200)]
predicates.md (const0_operand): Do not match const_wide_int code.
* config/i386/predicates.md (const0_operand): Do not match
const_wide_int code.
(const1_operand): Ditto.
From-SVN: r235417
Uros Bizjak [Mon, 25 Apr 2016 19:15:26 +0000 (21:15 +0200)]
i386.md (*movoi_internal_avx): Set mode attribute to XI for SSE constm1 operands and TARGET_AVX512VL.
* 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.
From-SVN: r235416
Jason Merrill [Mon, 25 Apr 2016 17:44:15 +0000 (13:44 -0400)]
* gdbinit.in: Skip is-a.h.
From-SVN: r235415
Jason Merrill [Mon, 25 Apr 2016 17:21:49 +0000 (13:21 -0400)]
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.
From-SVN: r235414
William Schmidt [Mon, 25 Apr 2016 16:18:00 +0000 (16:18 +0000)]
Correct ChangeLog entry
From-SVN: r235413
Bill Schmidt [Mon, 25 Apr 2016 16:17:26 +0000 (16:17 +0000)]
rs6000-builtin.def: Correct pasto error for stxvd2x and stxvw4x built-in functions.
2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* rs6000-builtin.def: Correct pasto error for stxvd2x and stxvw4x
built-in functions.
From-SVN: r235412
H.J. Lu [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.
From-SVN: r235411
DJ Delorie [Mon, 25 Apr 2016 11:59:44 +0000 (07:59 -0400)]
msp430.md (ashlhi3): Optimize one bit shifts.
* config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
(ashrhi3): Likewise.
(lshrhi3): Likewise.
From-SVN: r235410
Nick Clifton [Mon, 25 Apr 2016 11:13:35 +0000 (11:13 +0000)]
cmpd.c (__mspabi_cmpf): Add prototype.
* 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.
From-SVN: r235409
Richard Biener [Mon, 25 Apr 2016 10:49:55 +0000 (10:49 +0000)]
re PR tree-optimization/70780 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
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.
From-SVN: r235407
Michael Collison [Mon, 25 Apr 2016 05:57:07 +0000 (05:57 +0000)]
ChangeLog (2016-04-25): Fix ChangeLog formatting.
2016-04-25 Michael Collison <michael.collison@linaro.org>
* ChangeLog(2016-04-25): Fix ChangeLog formatting.
From-SVN: r235403
Michael Collison [Mon, 25 Apr 2016 05:03:09 +0000 (05:03 +0000)]
neon.md (widen_<us>sum<mode>): New patterns where mode is VQI to improve mixed mode vectorization.
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.
From-SVN: r235402
GCC Administrator [Mon, 25 Apr 2016 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r235401
Uros Bizjak [Sun, 24 Apr 2016 22:03:15 +0000 (00:03 +0200)]
i386.md (*lea<mode>_general_4): Use const_0_to_3_operand predicate for operand 2.
* config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
predicate for operand 2.
From-SVN: r235397
Uros Bizjak [Sun, 24 Apr 2016 20:58:02 +0000 (22:58 +0200)]
i386-protos.h (standard_sse_constant_p): Add machine_mode argument.
* config/i386/i386-protos.h (standard_sse_constant_p): Add
machine_mode argument.
* config/i386/i386.c (standard_sse_constant_p): Return 2 for
constm1_rtx operands. For VOIDmode constants, get mode from
pred_mode. Check mode size if the mode is supported by ABI.
(standard_sse_constant_opcode): Do not use standard_constant_p.
Strictly check ABI support for all-ones operands.
(ix86_legitimate_constant_p): Handle TImode, OImode and XImode
immediates. Update calls to standard_sse_constant_p.
(ix86_expand_vector_move): Update calls to standard_sse_constant_p.
(ix86_rtx_costs): Ditto.
* config/i386/i386.md (*movxi_internal_avx512f): Use
nonimmediate_or_sse_const_operand instead of vector_move_operand.
Use (v,BC) alternative instead of (v,C). Use register_operand
checks instead of MEM_P.
(*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
of vector_move_operand. Add (v,BC) alternative and corresponding avx2
isa attribute. Use register_operand checks instead of MEM_P.
(*movti_internal): Use nonimmediate_or_sse_const_operand for
TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
alternative and corresponding sse2 isa attribute.
(*movtf_internal, *movdf_internal, *movsf_interal): Update calls
to standard_sse_constant_p.
(FP constant splitters): Ditto.
* config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
(C): Ditto.
* config/i386/predicates.md (constm1_operand): Remove.
(nonimmediate_or_sse_const_operand): Rewrite using RTX.
* config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
vector_all_ones_operand instead of constm1_operand.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r235396
Jonathan Wakely [Sun, 24 Apr 2016 18:06:54 +0000 (19:06 +0100)]
libstdc++/70762 fix fallback implementation of nonexistent_path
PR libstdc++/70762
* testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
static counter to return a different path on every call.
From-SVN: r235395
Trevor Saunders [Sun, 24 Apr 2016 08:45:38 +0000 (08:45 +0000)]
make avail_stores a vec<rtx_insn *>
gcc/ChangeLog:
2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* print-rtl.c (print_rtx_insn_vec): New function.
* print-rtl.h: New prototype.
* store-motion.c (struct st_expr): Make avail_stores a vector.
(st_expr_entry): Adjust.
(free_st_expr_entry): Likewise.
(print_store_motion_mems): Likewise.
(find_moveable_store): Likewise.
(compute_store_table): Likewise.
(delete_store): Likewise.
(build_store_vectors): Likewise.
From-SVN: r235394
Trevor Saunders [Sun, 24 Apr 2016 08:45:13 +0000 (08:45 +0000)]
stop using rtx_insn_list in reorg.c
gcc/ChangeLog:
2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* reorg.c (try_merge_delay_insns): Make merged_insns a vector.
From-SVN: r235393
Trevor Saunders [Sun, 24 Apr 2016 07:47:38 +0000 (07:47 +0000)]
add some utility methods to vec
gcc/ChangeLog:
2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* vec.h (vec_safe_contains): New function.
(vec::contains): Likewise.
(vec::begin): Likewise.
(vec::end): Likewise.
From-SVN: r235392
GCC Administrator [Sun, 24 Apr 2016 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r235390
Jakub Jelinek [Sat, 23 Apr 2016 05:28:16 +0000 (07:28 +0200)]
re PR sanitizer/70712 (False positive from AddressSanitizer with use of 'alignas')
PR sanitizer/70712
* cfgexpand.c (expand_stack_vars): Fix typo.
* c-c++-common/asan/pr70712.c: New test.
From-SVN: r235384
Ian Lance Taylor [Sat, 23 Apr 2016 04:58:00 +0000 (04:58 +0000)]
compiler: Expose runtime code through Func_expression.
Enables us to easily check if a Call_expression is a call to a runtime
function and, if so, which runtime function is corresponds to.
This will be used during escape analysis.
Reviewed-on: https://go-review.googlesource.com/18544
From-SVN: r235383
Tim Shen [Sat, 23 Apr 2016 03:58:37 +0000 (03:58 +0000)]
re PR libstdc++/70745 (Wrong handling of regex_constant::match_not_eow and regex_constant::match_not_bow)
PR libstdc++/70745
* include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
Fix the match_not_bow and match_not_eow behavior.
* testsuite/28_regex/regression.cc: Add testcase.
From-SVN: r235382
Trevor Saunders [Sat, 23 Apr 2016 02:37:43 +0000 (02:37 +0000)]
add basic .gitattributes files to notice whitespace issues
gcc/testsuite/ChangeLog:
2016-04-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* .gitattributes: New file.
/ChangeLog:
2016-04-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* .gitattributes: New file.
From-SVN: r235381
Ian Lance Taylor [Sat, 23 Apr 2016 00:41:03 +0000 (00:41 +0000)]
cmd/go: bring in final version of gccgo pkg-config support
This updates gccgo to the final version of https://golang.org/cl/18790,
by Michael Hudson-Doyle.
Update golang/go#11739.
Reviewed-on: https://go-review.googlesource.com/22400
From-SVN: r235380
GCC Administrator [Sat, 23 Apr 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r235379
Segher Boessenkool [Fri, 22 Apr 2016 21:18:49 +0000 (23:18 +0200)]
Add myself as maintainer for the PowerPC port
* MAINTAINERS (rs6000/powerpc port): Add myself.
From-SVN: r235373
Christophe Lyon [Fri, 22 Apr 2016 19:28:58 +0000 (19:28 +0000)]
[testsuite] gcc-dg: handle all return values when shouldfail is set
2016-04-22 Christophe Lyon <christophe.lyon@linaro.org>
* lib/gcc-dg.exp (${tool}_load): Add default return value handler.
From-SVN: r235372
Jason Merrill [Fri, 22 Apr 2016 16:16:27 +0000 (12:16 -0400)]
* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.
From-SVN: r235371
Jason Merrill [Fri, 22 Apr 2016 16:16:21 +0000 (12:16 -0400)]
* parser.c (cp_parser_perform_range_for_lookup): Decay the array.
From-SVN: r235370
Dominique d'Humieres [Fri, 22 Apr 2016 13:48:28 +0000 (15:48 +0200)]
submodule_14.f08: Add cleanup-submodules.
2016-04-22 Dominique d'Humieres <dominiq@lps.ens.fr>
* gfortran.dg/submodule_14.f08: Add cleanup-submodules.
* gfortran.dg/submodule_15.f08: Likewise.
From-SVN: r235367
Szabolcs Nagy [Fri, 22 Apr 2016 11:00:42 +0000 (11:00 +0000)]
[PATCH 2/2] (header usage fix) include c++ headers in system.h
2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
* system.h (list, map, set, vector): Include conditionally.
* auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
* graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
* ipa-icf.c (INCLUDE_LIST): Define.
* config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
* config/sh/sh.c (INCLUDE_VECTOR): Define.
* config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
(INCLUDE_LIST, INCLUDE_VECTOR): Define.
* cp/logic.cc (INCLUDE_LIST): Define.
* fortran/trans-common.c (INCLUDE_MAP): Define.
From-SVN: r235362
Szabolcs Nagy [Fri, 22 Apr 2016 10:57:56 +0000 (10:57 +0000)]
[PATCH 1/2] (header usage fix) remove unused system header includes
2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
* auto-profile.c: Remove <string.h> include.
* ipa-icf-gimple.c: Remove <list> include.
* diagnostic.c: Remove <new> include.
* genmatch.c: Likewise.
* pretty-print.c: Likewise.
* toplev.c: Likewise
* c/c-objc-common.c: Likewise.
* cp/error.c: Likewise.
* fortran/error.c: Likewise.
From-SVN: r235361
Richard Biener [Fri, 22 Apr 2016 09:05:10 +0000 (09:05 +0000)]
lto-streamer-in.c (input_ssa_names): Do not allocate GIMPLE_NOP for all SSA names.
2016-04-22 Richard Biener <rguenther@suse.de>
* lto-streamer-in.c (input_ssa_names): Do not allocate
GIMPLE_NOP for all SSA names.
* lto-streamer-out.c (output_ssa_names): Do not output
SSA names that should have been released.
From-SVN: r235360
Richard Biener [Fri, 22 Apr 2016 06:59:32 +0000 (06:59 +0000)]
re PR tree-optimization/70740 (ICE when compiling the Linux kernel (net/wireless/util.o))
2016-04-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/70740
* tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
VDEF.
* gcc.dg/torture/pr70740.c: New testcase.
From-SVN: r235359
Waldemar Brodkorb [Fri, 22 Apr 2016 05:43:43 +0000 (05:43 +0000)]
* config/m68k/linux-atomic.c: Do not include unistd.h
From-SVN: r235358
GCC Administrator [Fri, 22 Apr 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r235357
H.J. Lu [Thu, 21 Apr 2016 22:01:34 +0000 (22:01 +0000)]
X86: Fix a typo in call_insn_operand
r231923 has
;; Test for a valid operand for a call instruction.
;; Allow constant call address operands in Pmode only.
(define_special_predicate "call_insn_operand"
(ior (match_test "constant_call_address_operand
(op, mode == VOIDmode ? mode : Pmode)")
(match_operand 0 "call_register_no_elim_operand")
- (and (not (match_test "TARGET_X32"))
- (match_operand 0 "memory_operand"))))
+ (ior (and (not (match_test "TARGET_X32"))
+ (match_operand 0 "sibcall_memory_operand"))
^^^^^^^^^^^^^^^^^^^^^^^ A typo.
+ (and (match_test "TARGET_X32 && Pmode == DImode")
+ (match_operand 0 "GOT_memory_operand")))))
"sibcall_memory_operand" should be "memory_operand".
gcc/
PR target/70750
* config/i386/predicates.md (call_insn_operand): Replace
sibcall_memory_operand with memory_operand.
gcc/testsuite/
PR target/70750
* gcc.target/i386/pr70750-1.c: New test.
* gcc.target/i386/pr70750-2.c: Likewise.
From-SVN: r235353
Patrick Palka [Thu, 21 Apr 2016 21:58:08 +0000 (21:58 +0000)]
vrp: remove redundant has_single_use tests
gcc/ChangeLog:
* tree-vrp.c (register_edge_assert_for_2): Remove redundant
has_single_use() tests.
(register_edge_assert_for_1): Likewise.
(find_assert_locations_1): Check the liveness bitmap instead of
checking has_single_use().
From-SVN: r235352
Patrick Palka [Thu, 21 Apr 2016 21:55:35 +0000 (21:55 +0000)]
Reuse the saved_scope structures allocated by push_to_top_level
gcc/cp/ChangeLog:
* name-lookup.c (free_saved_scope): New free list of saved_scope
structures.
(push_to_top_level): Attempt to reuse a saved_scope struct
from free_saved_scope instead of allocating a new one each time.
(pop_from_top_level_1): Chain the now-unused saved_scope structure
onto free_saved_scope.
From-SVN: r235351
Joseph Myers [Thu, 21 Apr 2016 20:59:01 +0000 (21:59 +0100)]
* sv.po: Update.
From-SVN: r235349
Paolo Carlini [Thu, 21 Apr 2016 19:42:34 +0000 (19:42 +0000)]
re PR c++/70540 (ICE on invalid code in cxx_incomplete_type_diagnostic, at cp/typeck2.c:569)
/cp
2016-04-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70540
* semantics.c (process_outer_var_ref): Unconditionally return
error_mark_node when mark_used returns false.
/testsuite
2016-04-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70540
* g++.dg/cpp0x/auto48.C: New.
From-SVN: r235348
Marek Polacek [Thu, 21 Apr 2016 16:52:51 +0000 (16:52 +0000)]
re PR c++/70513 (ICE on invalid C++ code on x86_64-linux-gnu: Segmentation fault)
PR c++/70513
* parser.c (cp_parser_enum_specifier): Check and possibly error for
extra qualification.
* g++.dg/cpp0x/forw_enum12.C: New test.
* g++.dg/cpp0x/forw_enum13.C: New test.
From-SVN: r235347
Kirill Yukhin [Thu, 21 Apr 2016 15:29:29 +0000 (15:29 +0000)]
AVX-512. PR target/70728. Use separate constraint for AVX-512BW
PR target/70728
gcc/
* gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
Extract AVX-512BW constraint from AVX.
gcc/testsuite/
* gcc.target/i386/pr70728.c: New test.
From-SVN: r235344
Joseph Myers [Thu, 21 Apr 2016 15:23:29 +0000 (16:23 +0100)]
Regenerate .pot files.
gcc/po:
* gcc.pot: Regenerate.
libcpp/po:
* cpplib.pot: Regenerate.
From-SVN: r235342
Richard Biener [Thu, 21 Apr 2016 14:09:33 +0000 (14:09 +0000)]
re PR tree-optimization/70725 (Internal compiler error (ICE) on valid code)
2016-04-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/70725
* tree-if-conv.c (if_convertible_phi_p): Adjust guard
for phi_convertible_by_degenerating_args.
(predicate_all_scalar_phis): Handle single-argument PHIs.
From-SVN: r235341
Alexander Monakov [Thu, 21 Apr 2016 13:11:47 +0000 (16:11 +0300)]
libgomp nvptx plugin: make cuMemFreeHost error non-fatal
From-SVN: r235339
Maxim Ostapenko [Thu, 21 Apr 2016 12:19:54 +0000 (12:19 +0000)]
Cherry-pick r266868 from upstream.
PR sanitizer/70624
* asan/asan_mac.cc: Cherry pick upstream r266868.
From-SVN: r235338
Richard Biener [Thu, 21 Apr 2016 11:52:50 +0000 (11:52 +0000)]
re PR middle-end/70747 (ICE on valid code on x86_64-linux-gnu: verify_gimple failed)
2016-04-21 Richard Biener <rguenther@suse.de>
PR middle-end/70747
* fold-const.c (fold_comparison): Return properly typed
constant boolean.
* gcc.dg/pr70747.c: New testcase.
From-SVN: r235335