gcc.git
10 years agoc-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR in unsigned type.
Marek Polacek [Thu, 23 Oct 2014 13:02:02 +0000 (13:02 +0000)]
c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR in unsigned type.

* c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
in unsigned type.

* c-c++-common/ubsan/undefined-2.c: New test.

From-SVN: r216593

10 years agoavr.c: Fix GNU coding rules and typos.
Georg-Johann Lay [Thu, 23 Oct 2014 12:22:16 +0000 (12:22 +0000)]
avr.c: Fix GNU coding rules and typos.

* config/avr/avr.c: Fix GNU coding rules and typos.
* config/avr/avr.h: Dito.
* config/avr/avr-c.c: Dito.
* config/avr/avr.md: Dito.

From-SVN: r216592

10 years agoAVX. Fix block absq emit for non AVX-512 targets.
Kirill Yukhin [Thu, 23 Oct 2014 11:50:19 +0000 (11:50 +0000)]
AVX. Fix block absq emit for non AVX-512 targets.

gcc/
* config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
New.
(define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
iterator.
(define_expand "abs<mode>2"): Ditto.

gcc/testsuite/
* gcc.target/i386/pr63600.c: New.

From-SVN: r216591

10 years agoAVX-512. 81.1/n. Extend `function_code' field `tree_var_decl' structure.
Kirill Yukhin [Thu, 23 Oct 2014 11:44:12 +0000 (11:44 +0000)]
AVX-512. 81.1/n. Extend `function_code' field `tree_var_decl' structure.

gcc/
* tree-core.h (tree_var_decl): Extend `function_code' field
by one bit, move `regdecl_flag' field to ...
(tree_decl_with_vis): Here.
* tree.h (DECL_STATIC_CHAIN): Update struct name.

From-SVN: r216590

10 years agoFix gcc.dg/ipa/ipa-icf-21.c on 32-bit Linux/x86.
Rainer Orth [Thu, 23 Oct 2014 11:32:55 +0000 (11:32 +0000)]
Fix gcc.dg/ipa/ipa-icf-21.c on 32-bit Linux/x86.

* gcc.dg/ipa/ipa-icf-21.c: Add -msse2 to dg-options.

From-SVN: r216589

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:45:48 +0000 (12:45 +0200)]
[multiple changes]

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_eval.adb (Check_Non_Static_Context): Do not set
Is_Machine_Number on a literal of a fixed-point type.

2014-10-23  Robert Dewar  <dewar@adacore.com>

* mlib-prj.adb, sem_ch4.adb, exp_ch3.adb: Minor reformatting.

2014-10-23  Pierre-Marie Derodat  <derodat@adacore.com>

* exp_dbug.ads: Update ___XA parallel type specification.

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb (Copy_Array_Subtype_Attributes): Inherit the rep
chain of the source type.
* sem_ch13.adb (Analyze_Aspect_Specifications): Minor
reformatting of an error message.
* sem_util.adb (Inherit_Rep_Item_Chain): Do not inherit a rep
chain that has been inherited already.

From-SVN: r216588

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:39:50 +0000 (12:39 +0200)]
[multiple changes]

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Simplify analysis
in generic context, and generate body in this case as well,
to simplify ASIS traversals on the construct.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Complete_Object_Operation): Indicate that the
scope of the operation (s) is referenced, to prevent spurious
warnings about unused units.

2014-10-23  Johannes Kanig  <kanig@adacore.com>

* errout.adb (Error_Msg_Internal): Copy check flag, increment
check msg count.
* erroutc.adb (Delete_Msg) adjust check msg count.
(Output_Msg_Text) handle check msg case (do nothing).
(Prescan_Message) recognize check messages with severity prefixes.
* errutil.adb (Error_Msg) handle check flag, adjust counter.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_eval.adb (Subtypes_Statically_Match): For a generic actual
type, check for the presence of discriminants in its parent type,
against the presence of discriminants in the context type.

2014-10-23  Tristan Gingold  <gingold@adacore.com>

* adaint.c: __gnat_get_file_names_case_sensitive: Default is
true on arm-darwin.

2014-10-23  Arnaud Charlet  <charlet@adacore.com>

* pprint.adb (Expression_Image): Add handling of quantifiers.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* exp_pakd.adb (Expand_Packed_Element_Reference): If the
prefix is a source entity, generate a reference to it before
transformation, because rewritten node might not generate a
proper reference, leading to spurious warnings.

2014-10-23  Tristan Gingold  <gingold@adacore.com>

* init.c: Fix thinko in previous patch.

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration):
Inherit the rep chain of the implicit base type.
(Floating_Point_Type_Declaration): Inherit the rep chain of the
implicit base type.
(Ordinary_Fixed_Point_Type_Declaration): Inherit the rep chain of the
implicit base type.
(Signed_Integer_Type_Declaration): Inherit the rep chain of the
implicit base type.
* sem_util.ads, sem_util.adb (Inherit_Rep_Item_Chain): New routine.

2014-10-23  Pascal Obry  <obry@adacore.com>

* g-regist.adb, g-regist.ads: Add support for reading 32bit or 64bit
view of the registry.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Expand_N_Object_Declaration): If type is abstract,
return without expanding expression, to prevent subsequent crash.
* freeze.adb: better error message for illegal declaration.

From-SVN: r216587

10 years agosysdep.c (__gnat_localtime_tzoff): Properly delimit the substring which represents...
Hristian Kirtchev [Thu, 23 Oct 2014 10:33:06 +0000 (10:33 +0000)]
sysdep.c (__gnat_localtime_tzoff): Properly delimit the substring which represents the time zone on VxWorks.

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sysdep.c (__gnat_localtime_tzoff): Properly delimit the
substring which represents the time zone on VxWorks.

From-SVN: r216586

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:27:00 +0000 (12:27 +0200)]
[multiple changes]

2014-10-23  Vincent Celier  <celier@adacore.com>

* gnatls.adb: If --RTS= was not used, check if there is a default
runtime. If there is none, in verbose mode, indicate that the
default runtime is not available and show only the current
directory in the source and the object search paths.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Process_Formals): A thunk procedure with a
parameter of a limited view does not need a freeze node.

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch7.adb (Analyze_Package_Body_Helper):
The logic which hides local entities from external
visibility is now contained in routine Hide_Public_Entities.
(Hide_Public_Entities): New routine. Object and subprogram
renamings are now hidden from external visibility the same way
objects are.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Analyze_Attribute): The prefix of attribute Elaborated
does not require freezing, in particular if it denotes a generic
function.

From-SVN: r216585

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:19:58 +0000 (12:19 +0200)]
[multiple changes]

2014-10-23  Yannick Moy  <moy@adacore.com>

* sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always):
Disable analysis in GNATprove mode.

2014-10-23  Arnaud Charlet  <charlet@adacore.com>

* mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only).

2014-10-23  Arnaud Charlet  <charlet@adacore.com>

* gnat1drv.adb (Adjust_Global_Switches): Ignore style check
pragmas in codepeer mode.

2014-10-23  Gary Dismukes  <dismukes@adacore.com>

* gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ',').

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Inline_Instance_Body): Alphabetize
local variables and constants. Add constants Save_SM and Save_SMP
to capture SPARK_Mode-related attributes.  Compile the inlined
body with the SPARK_Mode of the enclosing context.

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sinfo.adb (Elaboration_Boolean): Removed.
(Set_Elaboration_Boolean): Removed.
* sinfo.ads Remove attribute Elaboration_Boolean along with its
occurrence in nodes.
(Elaboration_Boolean): Removed along with pragma Inline.
(Set_Elaboration_Boolean): Removed along with pragma Inline.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Constant_Redeclaration): Make error message more
explicit on a deferred constant whose object_definition is an
anonymous array.

2014-10-23  Vincent Celier  <celier@adacore.com>

* gnatls.adb: Never call Targparm.Get_Target_Parameters.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): In a generic
context do not create a body, and only pre-analyze the expression,
which may include incomplete views.

From-SVN: r216584

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:16:47 +0000 (12:16 +0200)]
[multiple changes]

2014-10-23  Robert Dewar  <dewar@adacore.com>

* sem_type.adb: Minor code reorganization (use Nkind_In, Ekind_In).
* sem_ch3.adb: Minor reformatting.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Analyze_Associations): If an actual for a formal
object is a call to a parameterless expression function, add
the function to the list of actuals to freeze.
* freeze.adb (Check_Expression_Function): Create freeze nodes of
outer types that may be references in the body of the expression.

From-SVN: r216583

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:14:28 +0000 (12:14 +0200)]
[multiple changes]

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.ads, checks.ads: Minor comment reformatting.

2014-10-23  Javier Miranda  <miranda@adacore.com>

* sem_eval (Test_In_Range): Disable removal of range_check for
VM targets.

2014-10-23  Robert Dewar  <dewar@adacore.com>

* erroutc.adb (Validate_Specific_Warnings): Fix test for -W
messages, which got disabled when we unconditionally added an
asterisk at the start of the string.

2014-10-23  Vincent Celier  <celier@adacore.com>

* gnatls.adb: Ensure that "gnatls -l" works even when there is
no default runtime.

2014-10-23  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch3.adb (Build_Derived_Private_Type): When the parent is
untagged and has discriminants, build the implicit full view after
building the derived type. Capture original declaration and type
here instead of...
(Copy_And_Build): ...here.
* sem_type.adb (Full_View_Covers): Handle the Underlying_Full_View.

From-SVN: r216582

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:11:21 +0000 (12:11 +0200)]
[multiple changes]

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Ensure_Valid): Update the subprogram
profile. Propagate the contex attributes to Insert_Valid_Check.
(Insert_Valid_Check): Update the subprogram profile. Propagate
the attributes of the context to Duplicate_Subexpr_No_Checks.
(Validity_Check_Range): Update the subprogram profile. Propagate
the context attribute to Ensure_Valid.
* checks.ads (Ensure_Valid): Update the subprogram profile
along with the comment on usage.
(Insert_Valid_Check): Update the subprogram profile along with the
comment on usage.
(Validity_Check_Range): Update the subprogram profile along with
the comment on usage.
* exp_util.adb (Build_Temporary): New routine.
(Duplicate_Subexpr_No_Checks): Update the subprogram
profile. Propagate the attributes of the context to Remove_Side_Effects.
(Remove_Side_Effects): Update the subprogram profile. Update all calls
to Make_Temporary to invoke Build_Temporary.
* exp_util.ads (Duplicate_Subexpr_No_Checks): Update
the subprogram profile along with the comment on usage.
(Remove_Side_Effects): Update the subprogram profile along with
the comment on usage.
* sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype
to the validity check machinery.  Explain the reason for this
propagation.

2014-10-23  Robert Dewar  <dewar@adacore.com>

* a-strsea.adb: Minor reformatting.

From-SVN: r216581

10 years ago[multiple changes]
Arnaud Charlet [Thu, 23 Oct 2014 10:09:31 +0000 (12:09 +0200)]
[multiple changes]

2014-10-23  Thomas Quinot  <quinot@adacore.com>

* bcheck.adb (Check_Consistent_SSO_Default): Exclude internal
units from consistency check.
* gnat_rm.texi (Default_Scalar_Storage_Order): Document that
consistency check excludes run-time units.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

* a-strsea.adb (Find_Token): Enable constraint checking in this
procedure, so that even when compiling with checks suppressed, as is
the case for the run-time, an exception is raised in this routine when
the input meets the conditions described in RM 2005 A.4.3 (68/1).

From-SVN: r216580

10 years agoMakefile.def: Add libcpp build module and dependencies.
Richard Biener [Thu, 23 Oct 2014 09:14:48 +0000 (09:14 +0000)]
Makefile.def: Add libcpp build module and dependencies.

2014-10-23  Richard Biener  <rguenther@suse.de>

* Makefile.def: Add libcpp build module and dependencies.
* configure.ac: Add libcpp build module.
* Makefile.in: Regenerate.
* configure: Likewise.

gcc/
* Makefile.in (BUILD_CPPLIB): Add.
(build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
Drop LIBIBERTY.

From-SVN: r216579

10 years agoFix gcc.dg/ipa/ipa-icf-2[18].c on Solaris
Rainer Orth [Thu, 23 Oct 2014 09:12:47 +0000 (09:12 +0000)]
Fix gcc.dg/ipa/ipa-icf-2[18].c on Solaris

* gcc.dg/ipa/ipa-icf-21.c: Restrict to i?86-*-* x86_64-*-*.
* gcc.dg/ipa/ipa-icf-28.c: Require init_priority.

From-SVN: r216578

10 years agoFix gnu11 fallout on SPARC
Rainer Orth [Thu, 23 Oct 2014 08:39:19 +0000 (08:39 +0000)]
Fix gnu11 fallout on SPARC

* include/gc.h [(sparc || __sparc) && sun] (GC_INIT): Remove
comment and definition.

From-SVN: r216577

10 years agoFix SPARC testsuite gnu11 fallout
Rainer Orth [Thu, 23 Oct 2014 08:35:38 +0000 (08:35 +0000)]
Fix SPARC testsuite gnu11 fallout

* gcc.target/sparc/20001013-1.c (main): Declare int return.
* gcc.target/sparc/mnofpu.c (e1e_rphy): Declare.
* gcc.target/sparc/sparc-ret.c (toto): Declare.
* gcc.target/sparc/ultrasp6.c (__assert, HSRate): Declare.
* gcc.target/sparc/ultrasp8.c (__malloc_lock, __malloc_unlock):
Declare.

From-SVN: r216576

10 years agofold-const.c (fold_binary_loc): Preserve side-effects of X - X when simplifying to 0.
Richard Biener [Thu, 23 Oct 2014 08:25:55 +0000 (08:25 +0000)]
fold-const.c (fold_binary_loc): Preserve side-effects of X - X when simplifying to 0.

2014-10-22  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Preserve side-effects of
X - X when simplifying to 0.
* stor-layout.c (finish_bitfield_representative): Strip
side-effects of evaluating the difference of two DECL_FIELD_OFFSET.

From-SVN: r216575

10 years agoCommit old ChangeLog entry forgotten in commit of actual change.
Ian Lance Taylor [Thu, 23 Oct 2014 03:34:02 +0000 (03:34 +0000)]
Commit old ChangeLog entry forgotten in commit of actual change.

PR go/55969
* configure.ac: Disable libgo on some systems where it does not
work.

From-SVN: r216573

10 years agore PR libstdc++/63497 (std::regex can't handle [^class] correctly and cause runtime...
Tim Shen [Thu, 23 Oct 2014 03:15:52 +0000 (03:15 +0000)]
re PR libstdc++/63497 (std::regex can't handle [^class] correctly and cause runtime crash)

PR libstdc++/63497
include/bits/regex_executor.h (_Executor::_M_word_boundary): Remove
unused parameter.
include/bits/regex_executor.tcc (_Executor::_M_dfs,
_Executor::_M_word_boundary): Avoid dereferecing _M_current at _M_end
or other invalid position.

From-SVN: r216572

10 years agoDaily bump.
GCC Administrator [Thu, 23 Oct 2014 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r216571

10 years agore PR lto/63603 (Linking with -fno-lto still invokes LTO)
Richard Biener [Wed, 22 Oct 2014 20:51:00 +0000 (20:51 +0000)]
re PR lto/63603 (Linking with -fno-lto still invokes LTO)

2014-10-22  Richard Biener  <rguenther@suse.de>
            Tobias Burnus <burnus@net-b.de>

        PR lto/63603
        * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.

Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r216566

10 years agoDo not build soft-fp code at all for powerpc64-linux-gnu.
Joseph Myers [Wed, 22 Oct 2014 17:29:14 +0000 (18:29 +0100)]
Do not build soft-fp code at all for powerpc64-linux-gnu.

When I added support for using soft-fp in libgcc
<https://gcc.gnu.org/ml/gcc-patches/2006-03/msg00689.html>, libgcc
configuration was still done in the gcc/ directory, meaning that the
variables set in makefile fragments could not depend on the multilib
being built.  Thus, building the soft-fp code for powerpc64-linux-gnu
was disabled in the same way as had been done with fp-bit: the code
was built, but with #ifndef __powerpc64__ wrappers around it so that
the resulting objects were empty.

Now that libgcc configuration is done in the toplevel libgcc
directory, such uses of softfp_wrap_start / softfp_wrap_end are better
replaced by configure-time conditionals that determine whether to use
soft-fp for a given multilib.  This patch does so for
powerpc*-*-linux*.  The same would appear to apply to
powerpc*-*-freebsd* (using rs6000/t-freebsd64), but I have not made
any changes there.  t-ppc64-fp is also used by AIX targets, but they
don't use soft-fp anyway so the changes are of no consequence to them.

The same principle of replacing softfp_wrap_start / softfp_wrap_end
with configure-time conditionals also applies to
softfp_exclude_libgcc2, which was intended for cases where soft-fp is
being used on hard-float multilibs and so it is desirable on those
multilibs for a few functions to come from libgcc2.c rather than
soft-fp (but the soft-fp versions would be more efficient on
soft-float multilibs).  Now we have hardfp.c and t-hardfp, those are
better to use in that case, to minimize the size of the bulk of the
functions that are only present for ABI compatibility and should never
be called by newly compiled code.

I intend followup patches to switch 32-bit hard-float multilibs to use
t-hardfp as far as possible (for all non-libgcc2.c operations for
classic hard float; for all except __unord* for e500v2; for all SFmode
operations except __unordsf2 for e500v1).  After that will come making
the soft-fp operations, in the remaining cases for which they are
built because they are actually needed for code compiled by current
GCC, into compat symbols when building for glibc 2.19 or later, so
that the glibc versions (with exception and rounding mode support) get
used instead (2.19 or later is needed for all the functions to be
exported from glibc as non-compat symbols).  In turn, that is required
before implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float
and e500, as that can only be properly effective when GCC-compiled
code is actually interoperating correctly with the exception and
rounding mode state used by <fenv.h> functions.

Tested with no regressions with cross to powerpc64-linux-gnu (in
addition, verified that stripped libgcc_s.so.1 is identical before and
after the patch).

* config.host (powerpc*-*-linux*): Only use soft-fp for 32-bit
configurations.
* config/rs6000/t-ppc64-fp (softfp_wrap_start, softfp_wrap_end):
Remove variables.

From-SVN: r216564

10 years agoauto-profile.c: Change order of header files.
Dehao Chen [Wed, 22 Oct 2014 17:11:17 +0000 (17:11 +0000)]
auto-profile.c: Change order of header files.

gcc/ChangeLog:

2014-10-22  Dehao Chen  <dehao@google.com>

        * auto-profile.c: Change order of header files.

From-SVN: r216563

10 years agore PR tree-optimization/63530 (GCC generates incorrect aligned store on ARM after...
Guozhi Wei [Wed, 22 Oct 2014 15:56:59 +0000 (15:56 +0000)]
re PR tree-optimization/63530 (GCC generates incorrect aligned store on ARM after the loop is unrolled.)

PR tree-optimization/63530
tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
pointer alignment according to DR_MISALIGNMENT.
gcc.dg/vect/pr63530.c: New testcase.

From-SVN: r216562

10 years agoReset global state ipa-icf.c:optimizer
David Malcolm [Wed, 22 Oct 2014 15:10:02 +0000 (15:10 +0000)]
Reset global state ipa-icf.c:optimizer

gcc/
* ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.

From-SVN: r216561

10 years agocfgbuild.h: New.
Andrew MacLeod [Wed, 22 Oct 2014 14:26:56 +0000 (14:26 +0000)]
cfgbuild.h: New.

2014-10-22  Andrew MacLeod  <amacleod@redhat.com>

* cfgbuild.h: New.  Add prototypes for cfgbuild.c.
* cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
* cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
* dominance.h: New.  Add prototypes for dominance.c.
* cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
* cfghooks.h: (struct profile_record) Relocate here.
Relocate 2 prototypes from basic-block.h.
* basic-block.h: Move prototypes and struct to new header files.
Include cfgbuild.h, cfgcleanup.h, and dominance.h.
* rtl.h: Move a few prototypes to new header files.
* cfgcleanup.c (merge_memattrs): Make static.
* genopinit.c (main): Add predict.h to list of includes.
* predict.h: Update prototype list to match predict.c.
* predict.c (maybe_hot_count_p): Export.
(cgraph_edge::maybe_hot_p): Move to cgraph.c.
(cgraph_node::optimize_for_size_p): Move to cgraph.h.
* cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
* cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
* profile.h: Adjust prototypes.
* ifcvt.h: New.  Relocate struct ce_if_block here.
* ifcvt.c: Include ifcvt.h.

* config/frv/frv.c: Include ifcvt.h.
* config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.

From-SVN: r216559

10 years agolra.c (lra): Remove call to recog_init.
Richard Sandiford [Wed, 22 Oct 2014 12:03:00 +0000 (12:03 +0000)]
lra.c (lra): Remove call to recog_init.

gcc/
* lra.c (lra): Remove call to recog_init.
* config/i386/i386.md (preferred_for_speed): New attribute
(*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
"enabled".  Remove check for sched1.

gcc/testsuite/
* gcc.target/i386/conversion-2.c: New test.

From-SVN: r216557

10 years agorecog.h (recog_data_d): Remove enabled_alternatives.
Richard Sandiford [Wed, 22 Oct 2014 12:02:39 +0000 (12:02 +0000)]
recog.h (recog_data_d): Remove enabled_alternatives.

gcc/
* recog.h (recog_data_d): Remove enabled_alternatives.
* recog.c (extract_insn): Don't set it.
* reload.c (find_reloads): Call get_enabled_alternatives.

From-SVN: r216556

10 years agorecog.h (constrain_operands): Add an alternative_mask parameter.
Richard Sandiford [Wed, 22 Oct 2014 12:02:26 +0000 (12:02 +0000)]
recog.h (constrain_operands): Add an alternative_mask parameter.

gcc/
* recog.h (constrain_operands): Add an alternative_mask parameter.
(constrain_operands_cached): Likewise.
(get_preferred_alternatives): Declare new form.
* recog.c (get_preferred_alternatives): New bb-taking instance.
(constrain_operands): Take the set of available alternatives as
a parameter.
(check_asm_operands, insn_invalid_p, extract_constrain_insn)
(extract_constrain_insn_cached): Update calls to constrain_operands.
* caller-save.c (reg_save_code): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
* ree.c (combine_reaching_defs): Likewise.
* reload.c (can_reload_into): Likewise.
* reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
(gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
(emit_insn_if_valid_for_reload): Likewise.
* reorg.c (fill_slots_from_thread): Likewise.
* config/i386/i386.c (ix86_attr_length_address_default): Likewise.
* config/pa/pa.c (pa_can_combine_p): Likewise.
* config/rl78/rl78.c (insn_ok_now): Likewise.
* config/sh/sh.md (define_peephole2): Likewise.
* final.c (final_scan_insn): Update call to constrain_operands_cached.

From-SVN: r216555

10 years agomd.texi: Document "preferred_for_size" and "preferred_for_speed" attributes.
Richard Sandiford [Wed, 22 Oct 2014 12:02:11 +0000 (12:02 +0000)]
md.texi: Document "preferred_for_size" and "preferred_for_speed" attributes.

gcc/
* doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
attributes.
* genattr.c (main): Handle "preferred_for_size" and
"preferred_for_speed" in the same way as "enabled".
* recog.h (bool_attr): New enum.
(target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
(get_preferred_alternatives, check_bool_attrs): Declare.
* recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
(get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
New functions.
(get_enabled_alternatives): Use get_bool_attr_mask.
* ira-costs.c (record_reg_classes): Use get_preferred_alternatives
instead of recog_data.enabled_alternatives.
* ira.c (ira_setup_alts): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
* ira-lives.c (preferred_alternatives): New variable.
(process_bb_node_lives): Set it.
(check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
(single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
of recog_data.enabled_alternatives.
* lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
to preferred_alternatives.
* lra-constraints.c (process_alt_operands): Update accordingly.
* lra.c (lra_set_insn_recog_data): Likewise.
(lra_update_insn_recog_data): Assert check_bool_attrs.

From-SVN: r216554

10 years agorecog.h (extract_constrain_insn): Declare.
Richard Sandiford [Wed, 22 Oct 2014 12:01:59 +0000 (12:01 +0000)]
recog.h (extract_constrain_insn): Declare.

gcc/
* recog.h (extract_constrain_insn): Declare.
* recog.c (extract_constrain_insn): New function.
* lra.c (check_rtl): Use it.
* postreload.c (reload_cse_simplify_operands): Likewise.
* reg-stack.c (check_asm_stack_operands): Likewise.
(subst_asm_stack_regs): Likewise.
* regcprop.c (copyprop_hardreg_forward_1): Likewise.
* regrename.c (build_def_use): Likewise.
* sel-sched.c (get_reg_class): Likewise.
* config/arm/arm.c (note_invalid_constants): Likewise.
* config/s390/predicates.md (execute_operation): Likewise.

From-SVN: r216553

10 years agoNew syntax for -fsanitize-recover.
Jakub Jelinek [Wed, 22 Oct 2014 11:07:10 +0000 (13:07 +0200)]
New syntax for -fsanitize-recover.

2014-10-22  Jakub Jelinek  <jakub@redhat.com>
    Yury Gribov  <y.gribov@samsung.com>

gcc/
* common.opt (flag_sanitize_recover): New variable.
(fsanitize-recover): Remove Var/Init, deprecate.
(fsanitize-recover=): New option.
* doc/invoke.texi (fsanitize-recover): Update docs.
* opts.c (finish_options): Use opts->x_flag_sanitize
instead of flag_sanitize.  Prohibit -fsanitize-recover
for anything besides UBSan.  Formatting.
(common_handle_option): Handle OPT_fsanitize_recover_
and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
instead of flag_sanitize.
* asan.c (pass_sanopt::execute): Fix up formatting.
* ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load, ubsan_instrument_float_cast,
instrument_nonnull_arg, instrument_nonnull_return): Check
bits in flag_sanitize_recover bitmask instead of
flag_sanitize_recover as bool flag.

gcc/c-family/
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
instead of flag_sanitize_recover as bool flag.

gcc/testsuite/
* c-c++-common/ubsan/align-1.c: Update cmdline options.
* c-c++-common/ubsan/align-3.c: Likewise.
* c-c++-common/ubsan/bounds-1.c: Likewise.
* c-c++-common/ubsan/div-by-zero-7.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-10.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-7.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-8.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-9.c: Likewise.
* c-c++-common/ubsan/nonnull-2.c: Likewise.
* c-c++-common/ubsan/nonnull-3.c: Likewise.
* c-c++-common/ubsan/object-size-3.c: Likewise.
* c-c++-common/ubsan/overflow-1.c: Likewise.
* c-c++-common/ubsan/overflow-add-1.c: Likewise.
* c-c++-common/ubsan/overflow-add-3.c: Likewise.
* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
* c-c++-common/ubsan/pr59503.c: Likewise.
* c-c++-common/ubsan/pr60613-1.c: Likewise.
* c-c++-common/ubsan/save-expr-1.c: Likewise.
* c-c++-common/ubsan/shift-3.c: Likewise.
* c-c++-common/ubsan/shift-6.c: Likewise.
* c-c++-common/ubsan/undefined-1.c: Likewise.
* c-c++-common/ubsan/vla-2.c: Likewise.
* c-c++-common/ubsan/vla-3.c: Likewise.
* c-c++-common/ubsan/vla-4.c: Likewise.
* g++.dg/ubsan/cxx11-shift-1.C: Likewise.
* g++.dg/ubsan/return-2.C: Likewise.
* c-c++-common/ubsan/recovery-1.c: New test.
* c-c++-common/ubsan/recovery-2.c: New test.
* c-c++-common/ubsan/recovery-3.c: New test.
* c-c++-common/ubsan/recovery-common.inc: New file.

Co-Authored-By: Yury Gribov <y.gribov@samsung.com>
From-SVN: r216552

10 years agolib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk...
Georg-Johann Lay [Wed, 22 Oct 2014 10:40:30 +0000 (10:40 +0000)]
lib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk r216525.

* config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code
introduced with 2014-10-21 trunk r216525.

From-SVN: r216550

10 years ago[ARM] Add missing '\' in macro define.
Jiong Wang [Wed, 22 Oct 2014 09:57:19 +0000 (09:57 +0000)]
[ARM] Add missing '\' in macro define.

  gcc/
    * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.

From-SVN: r216548

10 years ago[ARM] Add ACLE 2.0 predefined marco __ARM_FEATURE_IDIV
Renlin Li [Wed, 22 Oct 2014 09:07:18 +0000 (09:07 +0000)]
[ARM] Add ACLE 2.0 predefined marco __ARM_FEATURE_IDIV

2014-10-22  Renlin Li <renlin.li@arm.com>

  gcc/
    * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
    __ARM_FEATURE_IDIV__.

From-SVN: r216547

10 years agoMakefile.in (s-match): Adjust dependencies to only catch match.pd.
Richard Biener [Wed, 22 Oct 2014 08:55:45 +0000 (08:55 +0000)]
Makefile.in (s-match): Adjust dependencies to only catch match.pd.

2014-10-22  Richard Biener  <rguenther@suse.de>

* Makefile.in (s-match): Adjust dependencies to only catch
match.pd.

From-SVN: r216545

10 years ago[AArch64] Update target testcases for gnu11
Jiong Wang [Wed, 22 Oct 2014 08:51:16 +0000 (08:51 +0000)]
[AArch64] Update target testcases for gnu11

  gcc/testsuite/
    * gcc.target/aarch64/pic-constantpool1.c: Add explicit declaration.
    * gcc.target/aarch64/pic-symrefplus.c: Likewise.
    * gcc.target/aarch64/reload-valid-spoff.c: Likewise.
    * gcc.target/aarch64/vect.x: Likewise.
    * gcc.target/aarch64/vect-ld1r.x: Add return type.
    * gcc.target/aarch64/vect-fmax-fmin.c: Likewise.
    * gcc.target/aarch64/vect-fp.c: Likewise.

From-SVN: r216544

10 years ago[Dejagnu] fix gcc-dg-prune glitch when filtering "relocation truncation" error
Jiong Wang [Wed, 22 Oct 2014 08:44:44 +0000 (08:44 +0000)]
[Dejagnu] fix gcc-dg-prune glitch when filtering "relocation truncation" error

  gcc/testsuite/
    * lib/compat.exp (compat-run): Remove "unresolved".
    * lib/gcc-defs.exp (${tools}_check_compile): Update code logic for
    unsupported testcase.

From-SVN: r216543

10 years agoMakefile.in (OBJS): Add gimple-match.o and generic-match.o.
Richard Biener [Wed, 22 Oct 2014 08:42:37 +0000 (08:42 +0000)]
Makefile.in (OBJS): Add gimple-match.o and generic-match.o.

2014-10-22  Richard Biener  <rguenther@suse.de>
Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
(MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
(gimple-match.c): Generate by triggering s-match.
(generic-match.c): Likewise.
(s-match): Rule to build gimple-match.c and generic-match.c
by running the genmatch generator program.
(build/hash-table.o): Dependencies to build hash-table.c for the host.
(build/genmatch.o): Dependencies to build genmatch.
(genprog): Add match.
(build/genmatch): Likewise.
(TEXI_GCCINT_FILES): Add match-and-simplify.texi.
* generic-match-head.c: New file.
* gimple-match-head.c: Likewise.
* gimple-match.h: Likewise.
* genmatch.c: Likewise.
* match.pd: Likewise.
* builtins.h (fold_builtin_n): Export.
* builtins.c (fold_builtin_n): Likewise.
* gimple-fold.h (gimple_build): Declare various overloads.
(gimple_simplify): Likewise.
(gimple_convert): Re-implement in terms of gimple_build.
* gimple-fold.c (gimple_convert): Remove.
(gimple_build): New functions.

* doc/match-and-simplify.texi: New file.
* doc/gccint.texi: Add menu item Match and Simplify and include
match-and-simplify.texi.

Co-Authored-By: Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
From-SVN: r216542

10 years agore PR target/63594 (ICE: in ix86_vector_duplicate_value, at config/i386/i386.c:39831...
Jakub Jelinek [Wed, 22 Oct 2014 06:58:57 +0000 (08:58 +0200)]
re PR target/63594 (ICE: in ix86_vector_duplicate_value, at config/i386/i386.c:39831 with -mavx512f)

PR target/63594
* config/i386/i386.c (ix86_expand_vector_init_duplicate): For
V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
even for just TARGET_AVX2, not only for
TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
call ix86_vector_duplicate_value only if TARGET_AVX512BW,
otherwise build it using concatenation of 256-bit
broadcast.
* config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
avx512 broadcast patterns.
(vec_dup<mode>): Likewise.  For avx2 use
v<sseintprefix>broadcast<bcstscalarsuff> instead of
vbroadcast<ssescalarmodesuffix>.
(AVX2_VEC_DUP_MODE): New mode iterator.
(*vec_dup<mode>): New TARGET_AVX2 define_insn with
AVX2_VEC_DUP_MODE iterator, add a splitter for that.

* gcc.dg/pr63594-1.c: New test.
* gcc.dg/pr63594-2.c: New test.
* gcc.target/i386/sse2-pr63594-1.c: New test.
* gcc.target/i386/sse2-pr63594-2.c: New test.
* gcc.target/i386/avx-pr63594-1.c: New test.
* gcc.target/i386/avx-pr63594-2.c: New test.
* gcc.target/i386/avx2-pr63594-1.c: New test.
* gcc.target/i386/avx2-pr63594-2.c: New test.
* gcc.target/i386/avx512f-pr63594-1.c: New test.
* gcc.target/i386/avx512f-pr63594-2.c: New test.
* gcc.target/i386/avx512f-vec-init.c: Adjust expected
insn counts.

From-SVN: r216541

10 years agore PR target/63542 (My build log is full of "non-delegitimized UNSPEC UNSPEC_GOT...
Jakub Jelinek [Wed, 22 Oct 2014 06:56:36 +0000 (08:56 +0200)]
re PR target/63542 (My build log is full of "non-delegitimized UNSPEC UNSPEC_GOT (0) found in variable location")

PR target/63542
* config/i386/i386.c (ix86_pic_register_p): Also return
true if x is a hard register with ORIGINAL_REGNO equal to
pic_offset_table_rtx pseudo REGNO.
(ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
after reload, subtract GOT_SYMBOL_NAME symbol if possible.

* gcc.target/i386/pr63542-1.c: New test.
* gcc.target/i386/pr63542-2.c: New test.

From-SVN: r216540

10 years agogengtype.h (obstack_chunk_alloc, [...]): Remove cast.
Alan Modra [Wed, 22 Oct 2014 01:41:31 +0000 (12:11 +1030)]
gengtype.h (obstack_chunk_alloc, [...]): Remove cast.

gcc/
* gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
* coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
(gcc_obstack_init): Use obstack_specify_allocation in place of
_obstack_begin.
* genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
(regexp_representation): Likewise.
* godump.c (go_output_type): Likewise.
gcc/java/
* mangle.c (finish_mangling): Cast result of obstack_base to (char *).
* typeck.c (build_java_argument_signature): Likewise.
(build_java_signature): Likewise.
gcc/objc/
* objc-encoding.c (encode_array): Cast result of obstack_base.
(encode_type): Likewise.
libcpp/
* symtab.c (ht_create): Use obstack_specify_allocation in place of
_obstack_begin.
* files.c (_cpp_init_files): Likewise.
* init.c (cpp_create_reader): Likewise.
* identifiers.c (_cpp_init_hashtable): Likewise.

From-SVN: r216539

10 years agoDaily bump.
GCC Administrator [Wed, 22 Oct 2014 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r216538

10 years agoconfig.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
John David Anglin [Tue, 21 Oct 2014 22:55:02 +0000 (22:55 +0000)]
config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.

* config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
* config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
* config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.

From-SVN: r216530

10 years agoinvoke.texi (pedantic-errors): Explain better.
Manuel López-Ibáñez [Tue, 21 Oct 2014 22:37:55 +0000 (22:37 +0000)]
invoke.texi (pedantic-errors): Explain better.

2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>

* doc/invoke.texi (pedantic-errors): Explain better.

From-SVN: r216528

10 years agoavr-c.c (avr_cpu_cpp_builtins): Don't define __MEMX for avrtiny.
Joern Rennecke [Tue, 21 Oct 2014 20:12:01 +0000 (20:12 +0000)]
avr-c.c (avr_cpu_cpp_builtins): Don't define __MEMX for avrtiny.

gcc:

2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
    Vidya Praveen <vidya.praveen@atmel.com>
    Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
    Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
    Pitchumani Sivanupandi <Pitchumani.S@atmel.com>

* config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
__MEMX for avrtiny.
* config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
(avr_nonconst_pointer_addrspace): Likewise.
* config/avr/avr.h (AVR_HAVE_LPM): Define.

Added AVRTINY architecture to avr target.
* config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
(base_arch_s): member added for AVRTINY architecture.
* config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
respectively. LAST_CALLEE_SAVED_REG macro added for the last register
in callee saved register list.
(avr_option_override): CCP address updated for AVRTINY.
(avr_init_expanders): tmp and zero rtx initialized as per arch.
Reset avr_have_dimode if AVRTINY.
(sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
(emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
(avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
(expand_epilogue): Likewise.
(avr_print_operand): Print CCP address in case of AVRTINY also.
<TBD>bad address
(function_arg_regno_p): Check different register list for arguments
if AVRTINY.
(init_cumulative_args): Check for AVRTINY to update number of argument
registers.
(tiny_valid_direct_memory_access_range): New function. Return false if
direct memory access range is not in accepted range for AVRTINY.
(avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
indirect load (with displacement) for AVRTINY.
(out_movqi_r_mr): Updated instruction length for AVRTINY. Call
avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
(avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
indirect load (no displacement) for AVRTINY.
(avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
indirect load (with displacement) for AVRTINY.
(avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
indirect load for pre-decrement address.
(out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
functions. Update instruction length for AVRTINY.
(avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
SImode.
(avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
(out_movsi_r_mr): Likewise, for SImode.
(avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
indirect store (no displacement) for AVRTINY.
(avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
indirect store (with displacement) for AVRTINY.
(out_movsi_mr_r): Emit out insn for IO address store. Update store
instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
store functions.
(avr_out_load_psi_reg_no_disp_tiny): New function to handle register
indirect load (no displacement) for PSImode in AVRTINY.
(avr_out_load_psi_reg_disp_tiny): New function to handle register
indirect load (with displacement) for PSImode in AVRTINY.
(avr_out_load_psi): Call PSImode register indirect load functions for
AVRTINY. Update instruction length for AVRTINY.
(avr_out_store_psi_reg_no_disp_tiny): New function to handle register
indirect store (no displacement) for PSImode in AVRTINY.
(avr_out_store_psi_reg_disp_tiny): New function to handle register
indirect store (with displacement) for PSImode in AVRTINY.
(avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
register indirect store functions for AVRTINY.
(avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
register indirect store (with displacement) for AVRTINY.
(out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
register indirect store function for QImode in AVRTINY.
(avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
(avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
indirect store (no displacement) for HImode in AVRTINY.
(avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
indirect store (with displacement) for HImode in AVRTINY.
(avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
indirect store for post-increment address in HImode.
(out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
register indirect store function for HImode in AVRTINY.
(avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
in case of AVRTINY.
(order_regs_for_local_alloc): Updated register allocation order for
AVRTINY.
(avr_conditional_register_usage): New function. It is a target hook
(TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
used registers list and register allocation order for AVRTINY.
(avr_return_in_memory): Update return value size for AVRTINY.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
for AVRTINY arch and tiny program memory base address.
* config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
(avr_texinfo): Added description for AVRTINY arch.
* config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
STATIC_CHAIN_REGNUM for AVRTINY.
* config/avr/avr-mcus.def: Added AVRTINY arch devices.
* config/avr/avr.md: Added constants for tmp/ zero registers in
AVRTINY. Attributes for AVRTINY added.
(mov<mode>): Move src/ dest address to register if it is not in AVRTINY
memory access range.
(mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
in AVRTINY memory access range.
(*mov<mode>): Likewise for HImode and SImode.
(*movsf): Likewise for SFmode.
(delay_cycles_2): Updated instructions to be emitted as AVRTINY does
not have sbiw.
* config/avr/avr-protos.h: Added function prototype for
tiny_valid_direct_memory_access_range.
* config/avr/avr-tables.opt: Regenerate.
* gcc/config/avr/t-multilib: Regenerate.
* doc/avr-mmcu.texi: Regenerate.

gcc/testsuite:

2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>

* gcc.target/avr/tiny-memx.c: New test.

* gcc.target/avr/tiny-caller-save.c: New test.

libgcc:

2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
    Vidya Praveen <vidya.praveen@atmel.com>
    Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
    Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
    Pitchumani Sivanupandi <Pitchumani.S@atmel.com>

* config/avr/lib1funcs.S (__do_global_dtors): Go back to descending
order.

Updated library functions for AVRTINY arch.
* config/avr/lib1funcs.S: Updated zero/tmp regs for AVRTINY.
Replaced occurrences of r0/r1 with tmp/zero reg macros.
Added wsubi/ wadi macros that expands conditionally as sbiw/ adiw
or AVRTINY equivalent. Replaced occurrences of sbiw/adiw with
wsubi/wadi macors.
(__mulsi3_helper): Update stack, preserve callee saved regs and
argument from stack. Restore callee save registers.
(__mulpsi3): Likewise.
(__muldi3, __udivmodsi4, __divmodsi4, __negsi2, __umoddi3, __udivmod64,
__moddi3, __adddi3, __adddi3_s8, __subdi3, __cmpdi2, __cmpdi2_s8,
__negdi2, __prologue_saves__, __epilogue_restores__): Excluded for
AVRTINY.
(__tablejump2__): Added lpm equivalent instructions for AVRTINY.
(__do_copy_data): Added new definition for AVRTINY.
(__do_clear_bss): Replace r17 by r18 to preserve zero reg for AVRTINY.
(__load_3, __load_4, __xload_1, __xload_2, __xload_3,
__xload_4, __movmemx_qi, __movmemx_hi): Excluded for AVRTINY.
* config/avr/lib1funcs-fixed.S: Replaced occurrences of r0/r1 with
tmp/zero reg macros. Replaced occurrences of sbiw/adiw with wsubi/wadi
macors.
   * config/avr/t-avr (LIB1ASMFUNCS): Remove unsupported functions for
AVRTINY.

Fix broken long multiplication on tiny arch.

Co-Authored-By: Pitchumani Sivanupandi <pitchumani.s@atmel.com>
Co-Authored-By: Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
Co-Authored-By: Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
Co-Authored-By: Vidya Praveen <vidya.praveen@atmel.com>
From-SVN: r216525

10 years agoinvoke.texi (AARCH64/mtune): Document thunderx as an available option also.
Andrew Pinski [Tue, 21 Oct 2014 18:30:35 +0000 (18:30 +0000)]
invoke.texi (AARCH64/mtune): Document thunderx as an available option also.

2014-10-21  Andrew Pinski  <apinski@cavium.com>

* doc/invoke.texi (AARCH64/mtune): Document thunderx as an
available option also.
* config/aarch64/aarch64-cost-tables.h: New file.
* config/aarch64/aarch64-cores.def (thunderx): New core.
* config/aarch64/aarch64-tune.md: Regenerate.
* config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
of config/arm/aarch-cost-tables.h.
(thunderx_regmove_cost): New variable.
(thunderx_tunings): New variable.

From-SVN: r216524

10 years agoAdd AutoFDO.
Dehao Chen [Tue, 21 Oct 2014 17:59:30 +0000 (17:59 +0000)]
Add AutoFDO.

gcc/ChangeLog:

2014-10-21  Dehao Chen  <dehao@google.com>

* auto-profile.c: New file.
* auto-profile.h: New file.
* basic-block.h (maybe_hot_count_p): New export func.
(add_working_set): New export func.
* gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
(GCOV_TAG_AFDO_FUNCTION): Likewise.
(GCOV_TAG_AFDO_WORKING_SET): Likewise.
* opts.c (enable_fdo_optimizations): New func.
(common_handle_option): Handle -fauto-profile flag.
* ipa-inline.c (want_early_inline_function_p): Iterative-einline.
(class pass_early_inline): Export early_inliner.
(early_inliner): Likewise.
(pass_early_inline::execute): Likewise.
* ipa-inline.h (early_inliner): Likewise.
* predict.c (maybe_hot_count_p): New export func.
(counts_to_freqs): AutoFDO logic.
(rebuild_frequencies): Likewise.
* tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
* profile.c (add_working_set): New func.
* Makefile.in (auto-profile.o): New object file.
* passes.def (pass_ipa_auto_profile): New pass.
* tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
* tree-pass.h (make_pass_ipa_auto_profile): New pass.
* toplev.c (compile_file): AutoFDO logic.
* doc/invoke.texi (-fauto-profile): New doc.
* coverage.c (coverage_init): AutoFDO logic.
* common.opt (-fauto-profile): New flag.
* timevar.def (TV_IPA_AUTOFDO): New tag.
* value-prof.c (gimple_alloc_histogram_value): New export func.
(check_ic_target): Likewise.
* value-prof.h (gimple_alloc_histogram_value): Likewise.
(check_ic_target): Likewise.

From-SVN: r216523

10 years agoState cleanups from jit branch
David Malcolm [Tue, 21 Oct 2014 16:55:38 +0000 (16:55 +0000)]
State cleanups from jit branch

gcc/ChangeLog:
* cgraph.c (cgraph_c_finalize): New function.
* cgraph.h (cgraph_c_finalize): New prototype.
(cgraphunit_c_finalize): New prototype.
* cgraphunit.c (first_analyzed): Move from analyze_functions
to file-scope.
(first_analyzed_var): Likewise.
(analyze_functions): Move static variables into file-scope.
(cgraphunit_c_finalize): New function.
* diagnostic.c (diagnostic_finish): Free the memory for
context->classify_diagnostic and context->printer, running the
destructor for the latter.
(bt_stop): Use toplev::main.
* dwarf2out.c (dwarf2out_finalize): New function.
* dwarf2out.h (dwarf2out_c_finalize): New prototype.
* gcse.c (gcse_c_finalize): New function.
* gcse.h (gcse_c_finalize): New prototype.
* ggc-page.c (init_ggc): Make idempotent.
* input.c (input_location): Initialize to UNKNOWN_LOCATION.
* ipa-cp.c (ipa_cp_c_finalize): New function.
* ipa-prop.h (ipa_cp_c_finalize): New prototype.
* ipa-pure-const.c (function_insertion_hook_holder): Move to be
a field of class pass_ipa_pure_const.
(node_duplication_hook_holder): Likewise.
(node_removal_hook_holder): Likewise.
(register_hooks): Convert to method...
(pass_ipa_pure_const::register_hooks): ...here, converting
static variable init_p into...
(pass_ipa_pure_const::init_p): ...new field.
(pure_const_generate_summary): Update invocation of
register_hooks to invoke as a method of current_pass.
(pure_const_read_summary): Likewise.
(propagate): Convert to...
(pass_ipa_pure_const::execute): ...method.
* ipa-reference.c (ipa_init): Move static bool init_p from here
to...
(ipa_init_p): New file-scope variable, so that it can be reset
when repeatedly invoking the compiler within one process by...
(ipa_reference_c_finalize): New function.
* ipa-reference.h (ipa_reference_c_finalize): New.
* main.c (main): Replace invocation of toplev_main with
construction of a toplev instance, and call its "main" method.
* params.c (global_init_params): Add an assert that
params_finished is false.
(params_c_finalize): New.
* params.h (params_c_finalize): New.
* passes.c (execute_ipa_summary_passes): Set "current_pass" before
invoking generate_summary, for the benefit of pass_ipa_pure_const.
(ipa_write_summaries_2): Assign "pass" to "current_pass" global
before calling write_summary hook.
(ipa_write_optimization_summaries_1): Likewise when calling
write_optimization_summary hook.
(ipa_read_summaries_1): Likewise for read_summary hook.
(ipa_read_optimization_summaries_1): Likewise for
read_optimization_summary hook.
(execute_ipa_stmt_fixups): Likewise.
* stringpool.c (init_stringpool): Clean up if we're called more
than once.
* timevar.c (timevar_init): Ignore repeated calls.
* toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
"ipa-prop.h".
(general_init): Reset "input_location" to UNKNOWN_LOCATION.
(initialize_rtl): Move static local "initialized_once"
into file scope, and rename to...
(rtl_initialized): New variable.
(do_compile): Move timevar initialization from here to
toplev::start_timevars.
(toplev::toplev, toplev::~toplev, toplev::start_timevars,
toplev::finalize): New functions.
(toplev_main): Rename to...
(toplev::main): ...this.
* toplev.h (class toplev): New class.

From-SVN: r216522

10 years agoloop-doloop.c: Include loop-unroll.h.
Andrew MacLeod [Tue, 21 Oct 2014 16:29:55 +0000 (16:29 +0000)]
loop-doloop.c: Include loop-unroll.h.

2014-10-21  Andrew MacLeod  <amacleod@redhat.com>

        * loop-doloop.c: Include loop-unroll.h.

From-SVN: r216521

10 years agoprog_bar.cc: Qualify size_t.
Joern Rennecke [Tue, 21 Oct 2014 16:24:45 +0000 (16:24 +0000)]
prog_bar.cc: Qualify size_t.

        * testsuite/util/io/prog_bar.cc: Qualify size_t.
        * testsuite/util/io/prog_bar.hpp: Likewise.
        * testsuite/util/io/verified_cmd_line_input.hpp: Likewise.

From-SVN: r216520

10 years agocompiler: Remove obsolete hidden_fields_are_ok code.
Ian Lance Taylor [Tue, 21 Oct 2014 16:00:50 +0000 (16:00 +0000)]
compiler: Remove obsolete hidden_fields_are_ok code.

The language used to forbid assigning structs with hidden
fields, but that was changed before the Go 1 release.  At the
time the change was experimental, so I left the old code in
the compiler.  At this point it's clearly not experimental, so
this removes the unused code.

From-SVN: r216519

10 years agocfg.h: New.
Andrew MacLeod [Tue, 21 Oct 2014 15:17:12 +0000 (15:17 +0000)]
cfg.h: New.

2014-10-21  Andrew MacLeod  <amacleod@redhat.com>

* cfg.h: New.  Header file for cfg.c.
* cfganal.h: New.  Header file for cfganal.c.
* lcm.h: New.  Header file for lcm.c.
* loop-unroll.h: New.  Header file for loop-unroll.h.
* cfgloop.h: (unroll_loops): Remove prototype.
* basic-block.h: Move prototypes and structs to new header files.
Include cfg.h, cfganal.h, and lcm.h.
* loop-init.c: Include loop-unroll.h.
* loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
* modulo-sched.c: Include loop-unroll.h.

From-SVN: r216518

10 years ago[ARM] Update testcases for GNU11
Jiong Wang [Tue, 21 Oct 2014 14:41:01 +0000 (14:41 +0000)]
[ARM] Update testcases for GNU11

2014-10-21  Jiong Wang  <jiong.wang@arm.com>

* gcc.target/arm/20031108-1.c (Proc_7): Add explicit declaration.
(Proc_1): Add return type.
* gcc.target/arm/cold-lc.c (show_stack): Add explict declaration.
* gcc.target/arm/neon-modes-2.c (foo): Likewise.
* gcc.target/arm/pr43920-2.c (lseek): Likewise.
* gcc.target/arm/pr44788.c (foo): Likewise.
* gcc.target/arm/pr55642.c (abs): Likewise.
* gcc.target/arm/pr58784.c (f): Likewise.
* gcc.target/arm/pr60650.c (foo1, foo2): Likewise.
* gcc.target/arm/vfp-ldmdbs.c (bar): Likewise.
* gcc.target/arm/vfp-ldmias.c (bar): Likewise.
* gcc.target/arm/pr60650-2.c (fn1, fn2): Add return type and add type
for local variables.
* lib/target-supports.exp
(check_effective_target_arm_crypto_ok_nocache): Add declaration for
vaeseq_u8.
(check_effective_target_arm_neon_fp16_ok_nocache): Add declaration for
vcvt_f16_f32.
(check_effective_target_arm_neonv2_ok_nocache): Add declaration for
vfma_f32.
* gcc.target/arm/pr51968.c: Add -Wno-implicit-function-declaration.

From-SVN: r216517

10 years agoparser.c (cp_parser_unary_expression): Add default arguments.
Paolo Carlini [Tue, 21 Oct 2014 14:14:06 +0000 (14:14 +0000)]
parser.c (cp_parser_unary_expression): Add default arguments.

2014-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

* parser.c (cp_parser_unary_expression): Add default arguments.
(cp_parser_cast_expression, cp_parser_sizeof_operand,
cp_parser_omp_atomic): Adjust.

From-SVN: r216516

10 years agoImplement more Library Fundamentals v1 variable templates.
Ville Voutilainen [Tue, 21 Oct 2014 13:10:51 +0000 (16:10 +0300)]
Implement more Library Fundamentals v1 variable templates.

2014-10-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

Implement more Library Fundamentals v1 variable templates.
* include/Makefile.am: Add ratio, chrono and system_error.
* include/Makefile.in: Regenerate.
* include/experimental/chrono: New.
* include/experimental/ratio: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple (tuple_size_v): Likewise.
* testsuite/experimental/chrono/value.cc: Likewise.
* testsuite/experimental/ratio/value.cc: Likewise.
* testsuite/experimental/system_error/value.cc: Likewise.
* testsuite/experimental/tuple/tuple_size.cc: Likewise.

From-SVN: r216513

10 years ago* gcc.dg/bf-spl1.c (main): Fix implicit int.
Andreas Schwab [Tue, 21 Oct 2014 12:55:30 +0000 (12:55 +0000)]
* gcc.dg/bf-spl1.c (main): Fix implicit int.

From-SVN: r216512

10 years agotree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of MARKER_BYTE_UNKNOWN marke...
Thomas Preud'homme [Tue, 21 Oct 2014 12:38:36 +0000 (12:38 +0000)]
tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of MARKER_BYTE_UNKNOWN markers when handling casts.

2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
    MARKER_BYTE_UNKNOWN markers when handling casts.

    gcc/testsuite/
    * gcc.dg/optimize-bswaphi-1.c: New bswap pass test.

From-SVN: r216511

10 years agotree-ssa-phiopt.c (value_replacement): Properly verify we are the non-singleton PHI.
Richard Biener [Tue, 21 Oct 2014 12:31:52 +0000 (12:31 +0000)]
tree-ssa-phiopt.c (value_replacement): Properly verify we are the non-singleton PHI.

2014-10-21  Richard Biener  <rguenther@suse.de>

* tree-ssa-phiopt.c (value_replacement): Properly verify we
are the non-singleton PHI.

From-SVN: r216510

10 years agodevirt-42.C: Fix dump scanning routines.
Richard Biener [Tue, 21 Oct 2014 12:30:18 +0000 (12:30 +0000)]
devirt-42.C: Fix dump scanning routines.

2014-10-21  Richard Biener  <rguenther@suse.de>

* g++.dg/ipa/devirt-42.C: Fix dump scanning routines.
* g++.dg/ipa/devirt-46.C: Likewise.
* g++.dg/ipa/devirt-47.C: Likewise.
* g++.dg/tree-prof/pr35545.C: Likewise.

From-SVN: r216509

10 years agore PR tree-optimization/63563 (ICE: in vectorizable_store, at tree-vect-stmts.c:5106...
Jakub Jelinek [Tue, 21 Oct 2014 12:23:11 +0000 (14:23 +0200)]
re PR tree-optimization/63563 (ICE: in vectorizable_store, at tree-vect-stmts.c:5106 with -mavx2)

PR tree-optimization/63563
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
if either dra or drb stmts are not normal loads/stores.

* gcc.target/i386/pr63563.c: New test.

From-SVN: r216507

10 years agoFix date of last ChangeLog entry.
Jonathan Wakely [Tue, 21 Oct 2014 12:13:43 +0000 (13:13 +0100)]
Fix date of last ChangeLog entry.

From-SVN: r216506

10 years agoinclhack.def (glibc_c99_inline_4): Add pthread.h to files.
Uros Bizjak [Tue, 21 Oct 2014 10:58:26 +0000 (12:58 +0200)]
inclhack.def (glibc_c99_inline_4): Add pthread.h to files.

* inclhack.def (glibc_c99_inline_4): Add pthread.h to files.
* fixincl.x: Regenerate.

From-SVN: r216505

10 years agoi386.c (expand_vec_perm_1): Fix expand_vec_perm_palignr case.
Ilya Tocar [Tue, 21 Oct 2014 09:51:49 +0000 (09:51 +0000)]
i386.c (expand_vec_perm_1): Fix expand_vec_perm_palignr case.

* config/i386/i386.c (expand_vec_perm_1): Fix
expand_vec_perm_palignr case.
* config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
VI1_AVX512.

From-SVN: r216504

10 years agore PR libquadmath/55821 (Release tarballs (unconditionally) install libquadmath.info...
Francois-Xavier Coudert [Tue, 21 Oct 2014 08:59:17 +0000 (08:59 +0000)]
re PR libquadmath/55821 (Release tarballs (unconditionally) install libquadmath.info when libquadmath is not supported)

PR libquadmath/55821
* Makefile.am: Unconditionally define libquadmath_TEXINFOS.
* Makefile.in: Regenerate.

From-SVN: r216503

10 years agoRevert r216483.
Kirill Yukhin [Tue, 21 Oct 2014 07:58:54 +0000 (07:58 +0000)]
Revert r216483.

From-SVN: r216502

10 years agocfgloopanal.c (seq_cost): Delete.
Zhenqiang Chen [Tue, 21 Oct 2014 03:38:37 +0000 (03:38 +0000)]
cfgloopanal.c (seq_cost): Delete.

2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* cfgloopanal.c (seq_cost): Delete.
* rtl.h (seq_cost): New prototype.
* rtlanal.c (seq_cost): New function.
* tree-ssa-loop-ivopts.c (seq_cost): Delete.

From-SVN: r216501

10 years agoDaily bump.
GCC Administrator [Tue, 21 Oct 2014 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r216500

10 years agocompiler, runtime: Add type information to single object allocation.
Ian Lance Taylor [Mon, 20 Oct 2014 19:12:44 +0000 (19:12 +0000)]
compiler, runtime: Add type information to single object allocation.

From-SVN: r216490

10 years agoreflect: allocate correct type in assignTo and cvtT2I
Ian Lance Taylor [Mon, 20 Oct 2014 18:04:55 +0000 (18:04 +0000)]
reflect: allocate correct type in assignTo and cvtT2I

Backport https://codereview.appspot.com/155450044 from the
master Go library.  Original description:

I came across this while debugging a GC problem in gccgo.
There is code in assignTo and cvtT2I that handles assignment
to all interface values.  It allocates an empty interface even
if the real type is a non-empty interface.  The fields are
then set for a non-empty interface, but the memory is recorded
as holding an empty interface.  This means that the GC has
incorrect information.

This is extremely unlikely to fail, because the code in the GC
that handles empty interfaces looks like this:

obj = nil;
typ = eface->type;
if(typ != nil) {
        if(!(typ->kind&KindDirectIface) || !(typ->kind&KindNoPointers))
                obj = eface->data;

In the current runtime the condition is always true--if
KindDirectIface is set, then KindNoPointers is clear--and we
always want to set obj = eface->data.  So the question is what
happens when we incorrectly store a non-empty interface value
in memory marked as an empty interface.  In that case
eface->type will not be a *rtype as we expect, but will
instead be a pointer to an Itab.  We are going to use this
pointer to look at a *rtype kind field.  The *rtype struct
starts out like this:

type rtype struct {
        size          uintptr
        hash          uint32            // hash of type; avoids computation in hash tables
        _             uint8             // unused/padding
        align         uint8             // alignment of variable with this type
        fieldAlign    uint8             // alignment of struct field with this type
        kind          uint8             // enumeration for C

An Itab always has at least two pointers, so on a
little-endian 64-bit system the kind field will be the high
byte of the second pointer.  This will normally be zero, so
the test of typ->kind will succeed, which is what we want.

On a 32-bit system it might be possible to construct a failing
case by somehow getting the Itab for an interface with one
method to be immediately followed by a word that is all ones.
The effect would be that the test would sometimes fail and the
GC would not mark obj, leading to an invalid dangling
pointer.  I have not tried to construct this test.

I noticed this in gccgo, where this error is much more likely
to cause trouble for a rather random reason: gccgo uses a
different layout of rtype, and in gccgo the kind field happens
to be the low byte of a pointer, not the high byte.

From-SVN: r216489

10 years agore PR c++/63601 (Segfault on usage of 'this' in unevaluated context inside lambda)
Jason Merrill [Mon, 20 Oct 2014 17:29:02 +0000 (13:29 -0400)]
re PR c++/63601 (Segfault on usage of 'this' in unevaluated context inside lambda)

PR c++/63601
* lambda.c (current_nonlambda_function): New.
* semantics.c (finish_this_expr): Use it.
* cp-tree.h: Declare it.

From-SVN: r216488

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 17:17:12 +0000 (19:17 +0200)]
[multiple changes]

2014-10-20  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch3.adb (Build_Derived_Private_Type): When the parent
is untagged and has discriminants, build the implicit full
view even if the derived type is a completion, and make it
the Underlying_Full_View of the type.
(Copy_And_Build): Fix Is_Completion actual parameter in the calls to
Build_Derived_Type.
(Build_Derived_Record_Type): Likewise.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: Add guard to convention setting.

From-SVN: r216487

10 years agocfgrtl.h: New.
Andrew MacLeod [Mon, 20 Oct 2014 15:30:50 +0000 (15:30 +0000)]
cfgrtl.h: New.

2014-10-20  Andrew MacLeod  <amacleod@redhat.com>

* cfgrtl.h: New.  Add prototypes for cfgrtl.c.
* basic-block.h: Remove prototypes for cfgrtl.c.
* cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
prototypes to cfgrtl.h.
* profile.h (profile_info): Add extern export declaration.
* rtl.h: Remove prototypes for cfgrtl.h.
* tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
* ipa-inline.c: Include profile.h.
* loop-unroll.c: Ditto.
* modulo-sched.c: Ditto.
* postreload-gcse.c: Ditto.
* predict.c: Ditto.
* sched-ebb.c: Ditto.
* sched-rgn.c: Ditto.
* tracer.c: Ditto.
* tree-ssa-loop-ivcanon.c: Ditto.

From-SVN: r216485

10 years agore PR c/63307 (Cilk+ breaks -fcompare-debug bootstrap)
Igor Zamyatin [Mon, 20 Oct 2014 15:22:09 +0000 (15:22 +0000)]
re PR c/63307 (Cilk+ breaks -fcompare-debug bootstrap)

PR c/63307
gcc/c-family/
* cilk.c: Include vec.h.
(struct cilk_decls): New structure.
(wrapper_parm_cb): Split this function to...
(fill_decls_vec): ...this...
(create_parm_list): ...and this.
(compare_decls): New function.
(for_local_cb): Remove.
(wrapper_local_cb): Ditto.
(build_wrapper_type): For now first traverse and fill vector of
declarations then sort it and then deal with sorted vector.
(cilk_outline): Ditto.
(declare_one_free_variable): Ditto.

From-SVN: r216483

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 15:06:52 +0000 (17:06 +0200)]
[multiple changes]

2014-10-20  Robert Dewar  <dewar@adacore.com>

* sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor
reformatting.

2014-10-20  Robert Dewar  <dewar@adacore.com>

* par-prag.adb (Add_List_Pragma_Entry): New procedure.
* par.adb (P_Pragma): Document requirement to handle multiple calls.

2014-10-20  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
Fix error of bad inheritance of this pragma from with'ed unit.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype,
inherit convention from parent type, because the subtype may
have been declared on a partial view, prior to the pragma on
the parent.

2014-10-20  Olivier Hainque  <hainque@adacore.com>
    Tristan Gingold  <gingold@adacore.com>

* gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7.
Misc clean ups.

2014-10-20  Nicolas Roche  <roche@adacore.com>

* gcc-interface/Make-lang.in: ensure that automatically generated
dependency are referencing generated gnatvsn rather than original
one.

From-SVN: r216482

10 years agognat_ugn.texi: Minor reformatting.
Gary Dismukes [Mon, 20 Oct 2014 14:34:37 +0000 (14:34 +0000)]
gnat_ugn.texi: Minor reformatting.

2014-10-20  Gary Dismukes  <dismukes@adacore.com>

* gnat_ugn.texi: Minor reformatting.
* sem_ch3.adb: Minor reformatting.

From-SVN: r216480

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 14:32:17 +0000 (16:32 +0200)]
[multiple changes]

2014-10-20  Vincent Celier  <celier@adacore.com>

* prj-attr.adb: New project level attribute Runtime.
* prj-conf.adb (Get_Project_Runtimes): New procedure to get
the attributes Runtime declared in the main project, to use
in auto-configuration.
(Get_Or_Create_Configuration_File): Call Get_Project_Runtimes.
* prj-proc.adb (Runtime_Defaults): New table to store
the default values of attributes Runtime (<language>).
(Set_Default_Runtime_For): New procedure to store the default
value of a Runtime (<language>) in table Runtime_Defaults.
(Expression): Use the value stored in table Runtime_Defaults as
the default for Runtime (<language>).
* prj-proc.ads (Set_Default_Runtime_For): New procedure.
* prj.ads (Attribute_Default_Value): New enumerated value
Runtime_Value.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Object_Declaration): If the type is
an unconstrained unchecked_union type, rewrite declaration
as a renaming to prevent attempt to retrieve non- existent
discriminants from expression.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* gnat_ugn.texi: Minor reformatting.

From-SVN: r216479

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 14:27:24 +0000 (16:27 +0200)]
[multiple changes]

2014-10-20  Tristan Gingold  <gingold@adacore.com>

* init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on
arm-darwin.
* raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for
unused arguments.

2014-10-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_attr.adb (Analyze_Attribute): Replace
variables CS and PS with Proc_Id and Subp_Id to better illustrate
their purpose. Account for the case where _Postconditions
has not been generated yet and the context is aspect/pragma
Refined_Post. In that scenario the expected prefix of attribute
'Result is the current scope.

2014-10-20  Robert Dewar  <dewar@adacore.com>

* par-ch4.adb (P_Expression): Handle extraneous comma/semicolon
in middle of expression with logical operators.

2014-10-20  Robert Dewar  <dewar@adacore.com>

* par-ch13.adb (Possible_Misspelled_Aspect): New function.

2014-10-20  Steve Baird  <baird@adacore.com>

* pprint.adb: Improve Expression_Image function.

From-SVN: r216477

10 years agognat_rm.texi: Document No_Tagged_Streams pragma and aspect.
Robert Dewar [Mon, 20 Oct 2014 14:24:15 +0000 (14:24 +0000)]
gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.

2014-10-20  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.
* snames.ads-tmpl: Add entry for pragma No_Tagged_Streams.
* aspects.ads, aspects.adb: Add aspect No_Tagged_Streams.
* einfo.adb (No_Tagged_Streams_Pragma): New field.
* einfo.ads: Minor reformatting (reorder entries).
(No_Tagged_Streams_Pragma): New field.
* exp_ch3.adb: Minor comment update.
* opt.ads (No_Tagged_Streams): New variable.
* par-prag.adb: Add dummy entry for pragma No_Tagged_Streams.
* sem.ads (Save_No_Tagged_Streams): New field in scope record.
* sem_attr.adb (Check_Stream_Attribute): Check stream ops
prohibited by No_Tagged_Streams.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Set
No_Tagged_Streams_Pragma.
(Analyze_Subtype_Declaration): ditto.
(Build_Derived_Record_Type): ditto.
(Record_Type_Declaration): ditto.
* sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams.
(Push_Scope): Save No_Tagged_Streams.
* sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new
pragma.

From-SVN: r216476

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 14:22:09 +0000 (16:22 +0200)]
[multiple changes]

2014-10-20  Robert Dewar  <dewar@adacore.com>

* sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads,
sem_ch13.adb: Minor reformatting.

2014-10-20  Javier Miranda  <miranda@adacore.com>

* exp_ch3.adb (Expand_N_Object_Declaration): Expand the
declaration of a class-wide limited object containing an
initializing expression into a renaming declaration.  Required to
avoid passing such declaration to the backend and also to avoid
generating an extra copy.

From-SVN: r216475

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 14:17:37 +0000 (16:17 +0200)]
[multiple changes]

2014-10-20  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb (List_Inlining_Info): Minor tweaks.
(Add_Inlined_Body): Inline the enclosing package
if it is not internally generated, even if it doesn't come
from source.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Process_Function_Call): If the first actual
denotes a discrete type, the mode must be interpreted as a slice
of an array returned by a parameterless call.

2014-10-20  Vasiliy Fofanov  <fofanov@adacore.com>

* prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit
searching for runtime referenced by a simple name on a project path.

2014-10-20  Olivier Hainque  <hainque@adacore.com>

* vxworks-x86-link.spec: New file.
* system-vxworks-x86.ads: Add pragma Linker_Options to link with
vxworks-x86-link.spec.

2014-10-20  Vincent Celier  <celier@adacore.com>

* opt.ads (Origin_Of_Target): New type.
(Target_Origin): New variable.
* prj-conf.adb (Parse_Project_And_Apply_Config): Record
Target_Value and Target_Origin.  If target was not specified
on the command line with --target=, check if attribute Target
is declared in the main project. If it is and it is not the
native target, parse again the projects so that 'Target get
the new value. Fail if the target has changed again.  Invoke
Process_Project_And_Apply_Config with Do_Phase_1 set to False
is Process_Project_Tree_Phase_1 has already been invoked.
* prj-conf.ads (Process_Project_And_Apply_Config): New Boolean
parameter Do_Phase_1, defaulted to True.
* prj-proc.adb (Expression): Check the special values and
defaults for attribute Target.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze
the subprogram spec of the body in full, because it will be
reanalyzed when the declaration itself is analyzed;  otherwise. a
formal may end up duplicated in the list of formals leading to
spurious conformance errors with an existing declaration.

From-SVN: r216473

10 years agosem_ch13.adb: Improve error recovery on illegal aspect.
Ed Schonberg [Mon, 20 Oct 2014 14:13:02 +0000 (14:13 +0000)]
sem_ch13.adb: Improve error recovery on illegal aspect.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: Improve error recovery on illegal aspect.

From-SVN: r216472

10 years ago[multiple changes]
Arnaud Charlet [Mon, 20 Oct 2014 14:11:43 +0000 (16:11 +0200)]
[multiple changes]

2014-10-20  Arnaud Charlet  <charlet@adacore.com>

* set_targ.adb (Write_Target_Dependent_Values, Write_Line):
Fix calling C APIs with no trailing NUL char by calling better
wrappers instead.

2014-10-20  Tristan Gingold  <gingold@adacore.com>

* gnat_ugn.texi: Document that gdb users must be in group
_developer on mac os.

2014-10-20  Arnaud Charlet  <charlet@adacore.com>

* a-tgdico.ads: Fix typo.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Convert_To_Assignments): Do not create a
transient scope for a component whose type requires it, if the
context is an initialization procedure, because the target of
the assignment must be visible outside of the block.

2014-10-20  Tristan Gingold  <gingold@adacore.com>

* tracebak.c: Define PC_ADJUST for arm-darwin.
* env.c: Remove darwin specific code.
* raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.

2014-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
is incomplete rather than private, and full type declaration
has aspects, analyze aspects on the full view rather than
the incomplete view, to prevent freezing anomalies with the
class-wide type.

From-SVN: r216470

10 years agoslsr-19.c: Make robust against operand order changes.
Richard Biener [Mon, 20 Oct 2014 12:44:32 +0000 (12:44 +0000)]
slsr-19.c: Make robust against operand order changes.

2014-10-20  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/slsr-19.c: Make robust against operand order changes.
* gcc.dg/tree-ssa/reassoc-20.c: Likewise.

From-SVN: r216465

10 years agoMakefile.am: Move ctype.cc, ctype_configure_char.cc and ctype_members.cc to ...
Jonathan Wakely [Mon, 20 Oct 2014 12:34:10 +0000 (13:34 +0100)]
Makefile.am: Move ctype.cc, ctype_configure_char.cc and ctype_members.cc to ...

* src/c++98/Makefile.am: Move ctype.cc, ctype_configure_char.cc and
ctype_members.cc to ...
* src/c++11/Makefile.am: Here.
* src/c++98/Makefile.in: Regenerate.
* src/c++11/Makefile.in: Regenerate.
* src/c++98/ctype.cc: Move file to ...
* src/c++11/ctype.cc: Here, define ctype_base::blank.
* config/abi/pre/gnu.ver: Export ctype_base::blank.
* config/locale/generic/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Handle blank. Update comments.
* config/locale/gnu/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
* config/os/aix/ctype_base.h (ctype_base::blank): Declare.
* config/os/bionic/ctype_base.h (ctype_base::blank): Likewise.
* config/os/bsd/darwin/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/darwin/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/dragonfly/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/dragonfly/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/freebsd/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/freebsd/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/netbsd/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/openbsd/ctype_base.h (ctype_base::blank): Likewise.
* config/os/djgpp/ctype_base.h (ctype_base::blank): Likewise.
* config/os/generic/ctype_base.h (ctype_base::blank): Declare.
* config/os/generic/ctype_inline.h (ctype<char>::is): Use blank.
* config/os/gnu-linux/ctype_base.h (ctype_base::blank): Declare.
* config/os/hpux/ctype_base.h (ctype_base::blank): Likewise.
* config/os/mingw32-w64/ctype_base.h (ctype_base::blank): Declare.
* config/os/mingw32-w64/ctype_configure_char.cc
(ctype<char>::classic_table()): Set blank bit for space and tab.
* config/os/mingw32/ctype_base.h (ctype_base::blank): Declare.
* config/os/mingw32/ctype_configure_char.cc
(ctype<char>::classic_table()): Set blank bit for space and tab.
* config/os/newlib/ctype_base.h (ctype_base::blank): Declare.
* config/os/qnx/qnx6.1/ctype_base.h (ctype_base::blank): Likewise.
* config/os/solaris/solaris2.10/ctype_base.h (ctype_base::blank):
Likewise.
* config/os/tpf/ctype_base.h (ctype_base::blank): Likewise.
* config/os/uclibc/ctype_base.h (ctype_base::blank): Likewise.
* config/os/vxworks/ctype_base.h (ctype_base::blank): Likewise.
* include/bits/locale_facets.h (isblank): Define.
* include/bits/localefwd.h (isblank): Declare.
* testsuite/22_locale/classification/isblank.cc: New.
* testsuite/22_locale/ctype_base/blank.cc: New.

From-SVN: r216464

10 years agotree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping operands to get a def...
Richard Biener [Mon, 20 Oct 2014 12:28:10 +0000 (12:28 +0000)]
tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping operands to get a def operand kind match.

2014-10-20  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
operands to get a def operand kind match.  Signal mismatches
to the parent so we can try swapping its operands.
(vect_build_slp_tree): Try swapping operands if they have
a mismatched operand kind.

From-SVN: r216463

10 years agore PR debug/60655 (ICE: output_operand: invalid expression as operand)
Alan Modra [Mon, 20 Oct 2014 11:54:22 +0000 (22:24 +1030)]
re PR debug/60655 (ICE: output_operand: invalid expression as operand)

PR debug/60655
* simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
Increase "ops" array size.  Correct array size tests.  Init
n_constants in loop.  Break out of innermost loop when finding
a trivial CONST expression.

From-SVN: r216462

10 years agore PR tree-optimization/63583 (ICF does not check that the template strings are the...
Martin Liska [Mon, 20 Oct 2014 10:44:54 +0000 (12:44 +0200)]
re PR tree-optimization/63583 (ICF does not check that the template strings are the same)

PR ipa/63583

* ipa-icf-gimple.c (func_checker::compare_gimple_asm):
Gimple tempate string is compared.

* gcc.dg/ipa/pr63595.c: New test.

From-SVN: r216458

10 years agovarasm.c (const_alias_set): Remove.
Uros Bizjak [Mon, 20 Oct 2014 09:21:09 +0000 (11:21 +0200)]
varasm.c (const_alias_set): Remove.

* varasm.c (const_alias_set): Remove.
(init_varasm_once): Remove initialization of const_alias_set.
(build_constant_desc): Do not set alias set to const_alias_set.

From-SVN: r216454

10 years agoPR 63589 Fix splitting of PATH in find_addr2line.
Janne Blomqvist [Mon, 20 Oct 2014 07:53:37 +0000 (10:53 +0300)]
PR 63589 Fix splitting of PATH in find_addr2line.

2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>

PR libfortran/63589
* configure.ac: Check for strtok_r.
* runtime/main.c (gfstrtok_r): Fallback implementation of
strtok_r.
(find_addr2line): Use strtok_r to split PATH.
* config.h.in: Regenerated.
* configure: Regenerated.

From-SVN: r216449

10 years agoDaily bump.
GCC Administrator [Mon, 20 Oct 2014 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r216447

10 years agoFix race in libstdc++ testsuite
Maxim Kuvyrkov [Sun, 19 Oct 2014 21:07:29 +0000 (21:07 +0000)]
Fix race in libstdc++ testsuite

* testsuite/lib/libstdc++.exp (v3-copy-file): New proc split from ...
(v3-copy-files): ... this.  Update.
(check_v3_target_fileio): Fix race on cin_unget-1.txt file.

From-SVN: r216444

10 years agore PR fortran/48979 (FRACTION und EXPONENT return invalid results for infinity/NaN)
Francois-Xavier Coudert [Sun, 19 Oct 2014 20:49:27 +0000 (20:49 +0000)]
re PR fortran/48979 (FRACTION und EXPONENT return invalid results for infinity/NaN)

PR fortran/48979

* trans-const.c (gfc_build_nan): New function.
* trans-const.h (gfc_build_nan): New prototype.
* trans-intrinsic.c (gfc_conv_intrinsic_exponent): Handle special
values.
(gfc_conv_intrinsic_minmaxval): Use gfc_build_nan.
(gfc_conv_intrinsic_fraction): Handle special values.
(gfc_conv_intrinsic_spacing): Likewise.
(gfc_conv_intrinsic_rrspacing): Likewise.
(gfc_conv_intrinsic_set_exponent): Likewise.

* gfortran.dg/ieee/intrinsics_2.F90: New test.

From-SVN: r216443

10 years agoSet SECTION_EXCLUDE flag for LTO sections.
Ilya Verbin [Sun, 19 Oct 2014 19:40:59 +0000 (19:40 +0000)]
Set SECTION_EXCLUDE flag for LTO sections.

gcc/
* configure: Regenerate.
* configure.ac: Move the test for section attribute specifier "e" in GAS
out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
* langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
* varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
ifdef HAVE_GAS_SECTION_EXCLUDE.

From-SVN: r216442

10 years agomd.texi (RTL Template): Correct equivalent match_operand expression.
Andreas Schwab [Sun, 19 Oct 2014 17:47:29 +0000 (17:47 +0000)]
md.texi (RTL Template): Correct equivalent match_operand expression.

* doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
match_operand expression.

From-SVN: r216441

10 years agore PR c/63567 (Linux kernel build error due to non-static initializers)
Marek Polacek [Sun, 19 Oct 2014 16:47:35 +0000 (16:47 +0000)]
re PR c/63567 (Linux kernel build error due to non-static initializers)

PR c/63567
* c-typeck.c (output_init_element): Allow initializing objects with
static storage duration with compound literals even in C99 and add
pedwarn for it.

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

From-SVN: r216440

10 years agors6000.c (rs6000_atomic_assign_expand_fenv): New function.
Adhemerval Zanella [Sun, 19 Oct 2014 13:49:26 +0000 (13:49 +0000)]
rs6000.c (rs6000_atomic_assign_expand_fenv): New function.

2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
            David Edelsohn  <dje.gcc@gmail.com>

        * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
        function.
        (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
* gcc.dg/atomic/c11-atomic-exec-5.c
(test_main_long_double_add_overflow): Define and run only for
LDBL_MANT_DIG != 106.
(test_main_complex_long_double_add_overflow): Likewise.
(test_main_long_double_sub_overflow): Likewise.
(test_main_complex_long_double_sub_overflow): Likewise.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
From-SVN: r216437

10 years agoDaily bump.
GCC Administrator [Sun, 19 Oct 2014 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r216432