David S. Miller [Tue, 20 Sep 2011 17:40:46 +0000 (17:40 +0000)]
sparc.md (UNSPEC_ALIGNADDRL): New unspec.
* config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
(aligneddrl<P:mode>_vis): New pattern.
(edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
edge32l_vis): Adjust to take Pmode arguments, and return SImode.
* config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
alignaddrl insn, and adjust edge operations for updated types.
* config/sparc/visintrin.h: Likewise.
* doc/extend.texi: Make typing in VIS documentation match reality.
mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX to calculate unit, prefix_rep and prefix_data16 attributes.
* config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
to calculate unit, prefix_rep and prefix_data16 attributes.
(*mov<mode>_internal): Ditto for unit attribute.
(*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
(*movv2sf_internal): Ditto.
* config/i386/sse.md (VI1248_256): Remove mode iterator.
(avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
(*avx2_eq<mode>3): Ditto.
(avx2_gt<mode>3): Ditto.
* config/i386/i386.md (maxmin): New code iterator.
* config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
code iterator.
(*avx2_<maxmin:code><mode>3): Macroize isn from
*avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
maxmin code iterator.
(<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
(<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
<umaxmin:code>v16qi3.
Ira Rosen [Mon, 19 Sep 2011 11:46:00 +0000 (11:46 +0000)]
re PR tree-optimization/50413 (Incorrect instruction is used to shift value of 128 bit xmm0 registrer)
PR tree-optimization/50413
* tree-vect-data-refs.c (vect_analyze_data_refs): Fail to
vectorize a basic block if one of its data-refs can't be
analyzed.
* snames.ads-tmpl: Move declaration of Name_Annotate into range of
configuration pragma names so that Is_Configuration_Pragma_Name
will return True for Name_Annotate. Make corresponding change in
Pragma_Id enumeration type. This is needed to allow an Annotate
pragma to occur in a configuration pragma file (typically,
a gnat.adc file).
* gnat_ugn.texi: Add Annotate to the list of configuration pragmas.
* gnat_rm.texi: Note that pragma Annotate may be used as a
configuration pragma.
* exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function
for expansion of set membership.
(Expand_Alfa): Call expansion for N_In and N_Not_In nodes.
* exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure
visible for use in Alfa expansion.
* sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop
variable in Alfa mode.
2011-09-19 Thomas Quinot <quinot@adacore.com>
* s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT.
* freeze.adb (Build_Renamed_Body): Generic subprograms
instantiations cannot be poperly inlined by the compiler, do
not set the Body_To_Inline attribute in such cases.
* sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all
inlining-related flags from the generic subprogram declaration.
2011-09-19 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads
(Build_Stub_Type): Remove, instead copy components from
System.Partition_Interface.RACW_Stub_Type.
(RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine.
(Copy_Component_List): New subprogram.
2011-09-19 Yannick Moy <moy@adacore.com>
* lib-xref.adb (Generate_Reference): Ignore references to
constants in Standard.
* aspects.ads (Impl_Defined_Aspects): New array
* lib-writ.adb (No_Dependences): New name for No_Dependence
* restrict.adb (No_Dependences): New name for No_Dependence
(Check_Restriction_No_Specification_Of_Aspect): New
procedure.
(Set_Restriction_No_Specification_Of_Aspect): New procedure
(Restricted_Profile_Result): New variable
(No_Specification_Of_Aspects): New variable
(No_Specification_Of_Aspect_Warning): New variable
* restrict.ads (No_Dependences): New name for No_Dependence
(Check_Restriction_No_Specification_Of_Aspect): New procedure
(Set_Restriction_No_Specification_Of_Aspect): New procedure
* s-rident.ads: Add restriction
No_Implementation_Aspect_Specifications, this is also added to
the No_Implementation_Extensions profile.
* sem_ch13.adb (Analyze_Aspect_Specifications): Check
No_Implementation_Defined_Aspects
(Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
* sem_prag.adb (Analyze_Aspect_Specifications): Check
No_Implementation_Aspects
(Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
* snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name
2011-09-19 Yannick Moy <moy@adacore.com>
* lib-xref.adb (Generate_Reference): Take into account multiple
renamings for Alfa refs.
2011-09-19 Thomas Quinot <quinot@adacore.com>
* g-socthi-mingw.adb: Minor reformatting.
2011-09-19 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Set tagged type
expansion to False in mode Alfa
2011-09-19 Pascal Obry <obry@adacore.com>
* mingw32.h: Remove obsolete code needed for old versions
of MingW.
* sem_ch6.adb (Analyze_Expression_Function): When the expression
function is transformed into a declaration and a body, insert
body at the end of the declarative part, to prevent premature
freeze actions, and preserve original specification in the
subprogram declaration.
* gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
divide costs.
(niagara3_costs): New.
(sparc_option_override): Use it.
* gcc/config/sparc/niagara2.md: Adjust with more accurate
Niagara-3 reservations.
François Dumont [Sat, 17 Sep 2011 09:12:24 +0000 (09:12 +0000)]
hashtable.h (_Hashtable<>::__rehash_policy(const _RehashPolicy&)): Commit the modification of the policy only if no exception occured.
2011-09-17 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::__rehash_policy(const
_RehashPolicy&)): Commit the modification of the policy only if no
exception occured.
* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
New.
Jakub Jelinek [Fri, 16 Sep 2011 19:14:36 +0000 (21:14 +0200)]
sse.md (vec_extract_hi_<mode>, [...]): Use vextracti128 instead of vextractf128 for -mavx2 and integer vectors.
* config/i386/sse.md (vec_extract_hi_<mode>,
vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
vextracti128 instead of vextractf128 for -mavx2 and
integer vectors. For V4DFmode fix up mode attribute.
(VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
(vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
instead of V8SF mode attribute.
(avx2_extracti128): Change into define_expand.
* config/i386/i386.c (ix86_expand_vector_extract): Handle
32-byte vector modes if TARGET_AVX.
* gcc.target/i386/sse2-extract-1.c: New test.
* gcc.target/i386/avx-extract-1.c: New test.
re PR target/50358 (AVR: Implement [u]maddqihi4 [u]msubqihi4 patterns on the enhanced core)
PR target/50358
* config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
(*maddqi4, *maddqi4.const): New insns.
(*msubqi4, *msubqi4.const): New insns.
* config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for
HImode by 1 in the case of multiplying with a CONST_INT.
Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
Diego Novillo [Thu, 15 Sep 2011 21:00:03 +0000 (17:00 -0400)]
Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from @SYSROOT_CFLAGS_FOR_TARGET@.
* Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
@SYSROOT_CFLAGS_FOR_TARGET@.
* configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from
build-sysroot.
* configure: Regenerate.
(site.exp): Add definition of TEST_ALWAYS_FLAGS.
Remove setting of GCC_UNDER_TEST.
testsuite/ChangeLog
* lib/g++.exp (g++_init): Add $TEST_ALWAYS_FLAGS to
ALWAYS_CXXFLAGS, if defined.
* lib/gfortran.exp (gfortran_init): Add $TEST_ALWAYS_FLAGS to
ALWAYS_GFORTRANFLAGS, if defined.
* lib/go.exp (go_target_compile): Add $TEST_ALWAYS_FLAGS to
ALWAYS_GOCFLAGS, if defined.
* lib/obj-c++.exp (obj-c++_init): Add $TEST_ALWAYS_FLAGS to
ALWAYS_OBJCXXFLAGS, if defined.
* lib/gcc.exp (gcc_target_compile): Add $TEST_ALWAYS_FLAGS to
additional_flags, if defined.
* lib/gnat.exp (gnat_target_compile): Likewise.
* lib/objc.exp (objc_target_compile): Likewise.
* lib/target-supports-dg.exp (dg-add-options): Handle
TEST_ALWAYS_FLAGS.
* sem_ch6.adb (Analyze_Expression_Function): Code cleanup:
if the expression function is not a completion, create a
new specification for the generated declaration, and keep the
original specification in the generated body. Shorter code also
ensures that proper warnings are generated for unused formals
in all cases.
2011-09-15 Sergey Rybin <rybin@adacore.com>
* tree_io.ads: Update ASIS_Version_Number because of the changes
in the tree structures for expression functions.
2011-09-15 Arnaud Charlet <charlet@adacore.com>
* s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads,
s-taprop-posix.adb (CLOCK_MONOTONIC): New constant.
(CLOCK_REALTIME): Fix wrong value on some OSes.
* s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC.
François Dumont [Wed, 14 Sep 2011 19:50:20 +0000 (19:50 +0000)]
hashtable.h (_Hashtable<>::_M_rehash): Take and restore hash policy _M_prev_resize on exception.
2011-09-14 François Dumont <fdumont@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_M_rehash): Take and restore
hash policy _M_prev_resize on exception.
(_Hashtable<>::_M_insert_bucket): Capture hash policy next resize
before using it and use latter method to have it restored on exception.
(_Hashtable<>::_M_insert(_Arg&& __v, std::false_type): Likewise.
(_Hashtable<>::insert(_InputIterator, _InputIterator): Likewise.
(_Hashtable<>::rehash): Likewise.
* testsuite/23_containers/unordered_set/insert/hash_policy.cc: New.
* testsuite/23_containers/unordered_multiset/insert/hash_policy.cc:
Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178861
re PR fortran/34547 (NULL(): Fortran 2003 changes, accepts invalid, ICE on invalid)
2011-09-14 Tobias Burnus <burnus@net-b.de>
PR fortran/34547
PR fortran/50375
* check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
* resolve.c (resolve_transfer): Reject NULL without MOLD.
* interface.c (gfc_procedure_use): Reject NULL without MOLD
if no explicit interface is known.
(gfc_search_interface): Reject NULL without MOLD if it would
lead to ambiguity.