GCC Administrator [Sat, 20 Dec 2014 00:16:48 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218983
Ian Lance Taylor [Fri, 19 Dec 2014 22:21:01 +0000 (22:21 +0000)]
compiler: Add temporaries required in cases of interface conversion.
From-SVN: r218979
David Malcolm [Fri, 19 Dec 2014 20:34:39 +0000 (20:34 +0000)]
Fix casting non-"int" to bool.
gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::build_cast): In
case BOOLEAN_TYPE, don't assume that the source expression is
of type "int".
gcc/testsuite/ChangeLog:
* jit.dg/test-expressions.c (make_tests_of_casts): Add tests of
casting between "long" and "bool".
(verify_casts): Verify these new test cases.
From-SVN: r218977
Jan Hubicka [Fri, 19 Dec 2014 20:27:53 +0000 (21:27 +0100)]
hash-table.h (struct pointer_hash): Fix formating.
* hash-table.h (struct pointer_hash): Fix formating.
(hash_table_higher_prime_index): Declare pure.
(hash_table_mod2, hash_table_mod1, mul_mod): Move inline;
assume that uint64_t always exists.
(hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert.
(hash_table<Descriptor, Allocator, false>::expand ()): Fix formating.
(hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)):
Use checking assert.
* hash-table.c: Remove #if 0 code.
(hash_table_higher_prime_index): Use gcc_assert.
(mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h
From-SVN: r218976
Matthew Fortune [Fri, 19 Dec 2014 20:18:08 +0000 (20:18 +0000)]
MIPSR6: mips-img-elf mips-img-linux-gnu triplets and vendor updates
gcc/
* config.gcc: Support mips*-img-linux* and mips*-img-elf*.
* config/mips/mti-linux.h: Support mips32r6 as being the default arch.
* config/mips/t-img-elf: New.
* config/mips/t-img-linux: New.
gcc/testsuite/
* gcc.target/mips/pr37362.c: Skip for mips-img-elf.
From-SVN: r218975
Chris Manghane [Fri, 19 Dec 2014 20:17:42 +0000 (20:17 +0000)]
go-gcc.cc (array_constructor_expression): Don't construct arrays of zero-sized values.
* go-gcc.cc (array_constructor_expression): Don't construct arrays
of zero-sized values.
From-SVN: r218974
Matthew Fortune [Fri, 19 Dec 2014 20:17:36 +0000 (20:17 +0000)]
MIPS32R6 and MIPS64R6 support
gcc/
* config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support.
* config/mips/constraints.md (ZD): Add r6 restrictions.
* config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC.
* config/mips/loongson.md
(<u>div<mode>3, <u>mod<mode>3): Move to mips.md.
* config/mips/mips-cpus.def (mips32r6, mips64r6): Define.
* config/mips/mips-modes.def (CCF): New mode.
* config/mips/mips-protos.h
(mips_9bit_offset_address_p): New prototype.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6.
(mips_rtx_cost_data): Add pseudo-processors W32 and W64.
(mips_9bit_offset_address_p): New function.
(mips_rtx_costs): Account for R6 multiply and FMA instructions.
(mips_emit_compare): Implement R6 FPU comparisons.
(mips_expand_conditional_move): Implement R6 selects.
(mips_expand_conditional_trap): Account for removed trap immediate.
(mips_expand_block_move): Disable inline move when LWL/LWR are removed.
(mips_print_float_branch_condition): Update for R6 FPU branches.
(mips_print_operand): Handle CCF mode compares.
(mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save
MD_REGS for R6.
(mips_hard_regno_mode_ok_p): Support CCF mode.
(mips_mode_ok_for_mov_fmt_p): Likewise.
(mips_secondary_reload_class): CCFmode can be loaded directly.
(mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions.
(mips_option_override): Ensure R6 is used with fp64. Set default
mips_nan modes. Check for mips_nan support. Prevent DSP with R6.
(mips_conditional_register_usage): Disable MD_REGS for R6. Disable
FPSW for R6.
(mips_mulsidi3_gen_fn): Support R6 multiply instructions.
* config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define.
(TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64.
(ISA_HAS_JR): New macro.
(ISA_HAS_HILO): New macro.
(ISA_HAS_R6MUL): Likewise.
(ISA_HAS_R6DMUL): Likewise.
(ISA_HAS_R6DIV): Likewise.
(ISA_HAS_R6DDIV): Likewise.
(ISA_HAS_CCF): Likewise.
(ISA_HAS_SEL): Likewise.
(ISA_HAS_COND_TRAPI): Likewise.
(ISA_HAS_FP_MADDF_MSUBF): Likewise.
(ISA_HAS_LWL_LWR): Likewise.
(ISA_HAS_IEEE_754_LEGACY): Likewise.
(ISA_HAS_IEEE_754_2008): Likewise.
(ISA_HAS_PREFETCH_9BIT): Likewise.
(MIPSR6_9BIT_OFFSET_P): New macro.
(BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS.
(DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC.
(MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6.
(MIPS_ISA_LEVEL_SPEC): Likewise.
(MIPS_ISA_SYNCI_SPEC): Likewise.
(ISA_HAS_64BIT_REGS): Likewise.
(ISA_HAS_BRANCHLIKELY): Likewise.
(ISA_HAS_MUL3): Likewise.
(ISA_HAS_DMULT): Likewise.
(ISA_HAS_DDIV): Likewise.
(ISA_HAS_DIV): Likewise.
(ISA_HAS_MULT): Likewise.
(ISA_HAS_FP_CONDMOVE): Likewise.
(ISA_HAS_8CC): Likewise.
(ISA_HAS_FP4): Likewise.
(ISA_HAS_PAIRED_SINGLE): Likewise.
(ISA_HAS_MADD_MSUB): Likewise.
(ISA_HAS_FP_RECIP_RSQRT): Likewise.
* config/mips/mips.md (processor): Add w32 and w64.
(FPCC): New mode iterator.
(reg): Add CCF mode.
(fpcmp): New mode attribute.
(fcond): Add ordered, ltgt and ne codes.
(fcond): Update code attribute.
(sel): New code attribute.
(selinv): Likewise.
(ctrap<mode>4): Update condition.
(*conditional_trap_reg<mode>): New define_insn.
(*conditional_trap<mode>): Update condition.
(mul<mode>3): Expand R6 multiply instructions.
(<su>mulsi3_highpart): Likewise.
(<su>muldi3_highpart): Likewise.
(mul<mode>3_mul3_loongson): Rename...
(mul<mode>3_mul3_hilo): To this. Add R6 mul instruction.
(<u>mulsidi3_32bit_r6): New expander.
(<u>mulsidi3_32bit): Restrict to pre-r6 multiplies.
(<u>mulsidi3_32bit_r4000): Likewise.
(<u>mulsidi3_64bit): Likewise.
(<su>mulsi3_highpart_internal): Likewise.
(mulsidi3_64bit_r6dmul): New instruction.
(<su>mulsi3_highpart_r6): Likewise.
(<su>muldi3_highpart_r6): Likewise.
(fma<mode>4): Likewise.
(movccf): Likewise.
(*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise.
(*sel<mode>): Likewise.
(<u>div<mode>3): Moved from loongson.md. Add R6 instructions.
(<u>mod<mode>3): Likewise.
(extvmisalign<mode>): Require ISA_HAS_LWL_LWR.
(extzvmisalign<mode>): Likewise.
(insvmisalign<mode>): Likewise.
(mips_cache): Account for R6 displacement field sizes.
(*branch_fp): Rename...
(*branch_fp_<mode>): To this. Add CCFmode support.
(*branch_fp_inverted): Rename...
(*branch_fp_inverted_<mode>): To this. Add CCFmode support.
(s<code>_<mode>): Rename...
(s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this. Add FCCmode
condition support.
(s<code>_<mode> swapped): Rename...
(s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add
CCFmode condition support.
(mov<mode>cc GPR): Expand R6 selects.
(mov<mode>cc FPR): Expand R6 selects.
(*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2.
* config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to
mips.h.
(ASM_SPEC): Add mips32r6, mips64r6.
* config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update
for mips32r6/mips64r6.
* doc/invoke.texi: Document -mips32r6,-mips64r6.
* doc/md.texi: Update comment for ZD constraint.
libgcc/
* config.host: Support mipsisa32r6 and mipsisa64r6.
* config/mips/mips16.S: Do not build for R6.
gcc/testsuite/
* gcc.dg/torture/mips-hilo-2.c: Unconditionally pass for R6 onwards.
* gcc.dg/torture/pr19683-1.c: Likewise.
* gcc.target/mips/branch-cost-2.c: Require MOVN.
* gcc.target/mips/movcc-1.c: Likewise.
* gcc.target/mips/movcc-2.c: Likewise.
* gcc.target/mips/movcc-3.c: Likewise.
* gcc.target/mips/call-saved-4.c: Require LDC.
* gcc.target/mips/dmult-1.c: Require R5 or earlier.
* gcc.target/mips/fpcmp-1.c: Likewise.
* gcc.target/mips/fpcmp-2.c: Likewise.
* gcc.target/mips/neg-abs-2.c: Likewise.
* gcc.target/mips/timode-1.c: Likewise.
* gcc.target/mips/unaligned-1.c: Likewise.
* gcc.target/mips/madd-3.c: Require MADD.
* gcc.target/mips/madd-9.c: Likewise.
* gcc.target/mips/maddu-3.c: Likewise.
* gcc.target/mips/msub-3.c: Likewise.
* gcc.target/mips/msubu-3.c: Likewise.
* gcc.target/mips/mult-1.c: Require INS and not DMUL.
* gcc.target/mips/mips-ps-type-2.c: Require MADD.PS.
* gcc.target/mips/mips.exp (mips_option_groups): Add ins, dmul, ldc,
movn, madd, maddps.
(mips-dg-options): INS available from R2. LDC available from MIPS II,
DMUL is present in octeon. Describe all features removed from R6.
Co-Authored-By: Steve Ellcey <sellcey@imgtec.com>
From-SVN: r218973
David Malcolm [Fri, 19 Dec 2014 20:11:16 +0000 (20:11 +0000)]
Fix issue with string options and nested gcc_jit_contexts
gcc/jit/ChangeLog:
* jit-recording.c (gcc::jit::recording::context::context): When
copying string options from a parent context, take a copy of the
underlying buffers, rather than simply copying the pointer.
From-SVN: r218972
Segher Boessenkool [Fri, 19 Dec 2014 19:55:32 +0000 (20:55 +0100)]
re PR target/64268 (bootstrap failure (ICE in wide_int_to_tree, at tree.c:1438) on powerpc in libgcc, stage2)
PR target/64268
* combine.c (try_combine): Immediately return if any of I0,I1,I2
are the same insn.
From-SVN: r218971
David Malcolm [Fri, 19 Dec 2014 19:33:29 +0000 (19:33 +0000)]
Handle NULL in gcc_jit_context_set_str_option
gcc/jit/ChangeLog:
* jit-recording.c (gcc::jit::recording::context::set_str_option):
Handle NULL.
From-SVN: r218969
Janus Weil [Fri, 19 Dec 2014 19:28:57 +0000 (20:28 +0100)]
re PR fortran/64209 ([OOP] runtime segfault with CLASS(*), INTENT(OUT) dummy argument)
2014-12-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/64209
* trans-expr.c (gfc_trans_class_array_init_assign): Check if _def_init
component is non-NULL.
(gfc_trans_class_init_assign): Ditto.
2014-12-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/64209
* gfortran.dg/unlimited_polymorphic_19.f90: New.
From-SVN: r218968
Jonathan Wakely [Fri, 19 Dec 2014 18:16:39 +0000 (18:16 +0000)]
New std::string implementation.
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove.
(GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add.
* configure.ac: Use new macros.
* configure: Regenerate.
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
* include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI.
* include/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Export symbols related to new std::string.
Tighten old patterns to not match new symbols.
* config/locale/generic/monetary_members.cc: Guard some definitions
to not compile with new ABI.
* config/locale/gnu/monetary_members.cc: Likewise.
* config/locale/gnu/numeric_members.cc: Prevent double-free.
* config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128
exports. Tighten old patterns.
* doc/xml/manual/configure.xml: Document new configure options.
* doc/html/*: Regenerate.
* include/bits/basic_string.h (__cxx11::basic_string): Define new
non-reference-counted implementation in inline namespace __cxx11.
(stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use
inline namespace.
(literals::string_literals::operator"): Conditionally use abi-tag.
* include/bits/basic_string.tcc (__cxx11::basic_string): Define.
* include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and
LDBL_CXX11_ABI namespace macros.
* include/bits/locale_classes.h (locale::name()): Use abi_tag when
new ABI is in use.
(locale::_S_twinned_facets): New static member.
(locale::facet::__shim): Declare new type.
(locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New
functions for creating shims.
(locale::_Impl::_M_facet_unchecked): New member function for use
during construction.
(locale::_Impl::_M_init_extra): New member functions to create second
version of some facets.
(collate, collate_byname): Use abi_tag when new ABI is in use.
* include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro.
(numpunct, numpunct_byname): Use __cxx11 namespace.
(num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag
when new ABI is in use.
(num_get::__do_get, num_put::__do_put): Do not declare long double
compat functions for new ABI.
* include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on
definitions.
(numpunct, numpunct_byname): Qualify explicit instantiations.
* include/bits/locale_facets_nonio.h (time_get, time_get_byname,
moneypunct, moneypunct_byname, money_get, money_put, messages,
messages_byname): Use new inline namespace macros.
(money_get::__do_get, money_put::__do_put): Do not declare long
double compat functions for new ABI.
* include/bits/locale_facets_nonio.tcc (money_get, money_put): Use
new namespace macros.
(money_get::__do_get, money_put::__do_put): Do not define for new ABI.
* include/bits/localefwd.h (numpunct, numpunct_byname, collate,
collate_byname, time_get, time_get_byname, moneypunct,
moneypunct_byname, money_get, money_put, messages, messages_byname):
Use new namespace macros.
* include/bits/regex.h: Use inline namespace macros.
* include/bits/stl_list.h (_List_base, list): Use inline namespace
instead of abi-tag.
* include/bits/stringfwd.h (basic_string): Use namespace macros.
* include/std/iosfwd (basic_stringbuf, basic_istringstream,
basic_ostringstream, basic_stringstream): Likewise.
* include/std/sstream: Likewise.
(basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move.
* include/std/stdexcept (__cow_string, __sso_string): New types for
indirectly using std::string with either ABI.
(logic_error, runtime_error): Replace std::string member with
__cow_string when new ABI is in use. Declare non-inline copy
constructor and assignment operator. Declare const char* constructors.
(domain_error, invalid_argument, length_error, out_of_range,
range_error, overflow_error, underflow_error): Declare const char*
constructors.
* include/std/system_error (error_category): Replace with new
definition in inline namespace _V2.
(error_code::message, error_condition::message): Use abi_tag on
functions returning std::string.
* python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI.
* src/c++11/Makefile.am: Add new files.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI.
Define old error_category symbols.
* src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members
using old std::string ABI.
* src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define.
* src/c++11/cow-shim_facets.cc: Define shim facets using old ABI.
* src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old
std::string ABI.
* src/c++11/cow-stdexcept.cc: Define new constructors and assignment
operators.
(__cow_string, error_category::_M_message): Define.
* src/c++11/cow-string-inst.cc: Explicit instantiations using old
std::string. Include src/c++98/istream-string.cc.
* src/c++11/cow-wstring-inst.cc: Explicit instantiations using old
std::wstring.
* src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new
string.
* src/c++11/cxx11-ios_failure.cc: Add sanity check.
* src/c++11/cxx11-locale-inst.cc: Instantiate facets using new
std::string.
* src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI.
* src/c++11/cxx11-stdexcept.cc: Define constructors taking new
std::string.
* src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using
new std::wstring.
* src/c++11/fstream-inst.cc: Compile with new ABI.
* src/c++11/functexcept.cc: Compile with old ABI.
* src/c++11/random.cc: Compile with new ABI.
* src/c++11/sstream-inst.cc: Compile with new ABI.
* src/c++11/string-inst.cc: Explicit instantiations for new string.
* src/c++11/system_error.cc (__sso_string, error_category::_M_message):
Define.
* src/c++11/wstring-inst.cc: Compile with new ABI.
* src/c++98/Makefile.am: Compile some host files twice for old and
new std::string. Add new files.
* src/c++98/Makefile.in: Regenerate.
* src/c++98/compatibility-ldbl.cc: Compile with old ABI.
* src/c++98/compatibility.cc: Likewise.
* src/c++98/concept-inst.cc: Likewise.
* src/c++98/hash_tr1.cc: Likewise.
* src/c++98/istream-string.cc: New file defining functions that
work with istream and std::string moved from ...
* src/c++98/istream.cc: ... here.
* src/c++98/cow-istream-string.cc: Recompile istream-string.cc with
old ABI.
* src/c++98/locale-inst.cc: Adjust facet instantiations to work for
either ABI.
* src/c++98/locale.cc (locale::_M_install_facet,
locale::_M_install_cache): Handle twinned facets.
* src/c++98/locale-facets.cc: Compile with old std::string ABI.
(__verify_grouping): Define new overload and old std::string version.
* src/c++98/locale_init.cc: Initialize twinned facets.
* src/c++98/localename.cc: Likewise.
* src/c++98/misc-inst.cc: Instantiate C++98-only std::string members.
(__verify_grouping): Define new std::string version.
* src/c++98/stdexcept.cc: Compile with old std::string ABI.
* src/c++98/wlocale-inst.cc: Likewise.
* testsuite/18_support/50594.cc: Adjust to work with SSO strings.
* testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
Likewise.
* testsuite/21_strings/headers/string/synopsis.cc: Use inline
namespace macros.
* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so
correct exception type can be caught.
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
* testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
* testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI.
* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
* testsuite/util/exception/safety.h: Adjust member function types
for new std::string.
* testsuite/util/testsuite_abi.cc: Add new version and ignore
__float128 symbols in __cxx11 namespace.
From-SVN: r218964
Paolo Carlini [Fri, 19 Dec 2014 18:16:00 +0000 (18:16 +0000)]
2014-12-19 Paolo Carlini <paolo.carlini@oracle.com>
* Tweak ChangeLog.
From-SVN: r218963
Kai Tietz [Fri, 19 Dec 2014 18:03:20 +0000 (19:03 +0100)]
using30.C: Move ...
* g++.dg/template/using30.C: Move ...
* g++.dg/cpp0x/alias-decl-45.C: ... here.
From-SVN: r218962
Alan Lawrence [Fri, 19 Dec 2014 17:59:23 +0000 (17:59 +0000)]
[AArch64 3/3] Fix XOR_one_cmpl pattern; add SIMD-reg variants for BIC,ORN,EON
gcc/:
* config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3):
Reparameterize to...
(<NLOGICAL:optab>_one_cmpl<mode>3): with extra SIMD-register variant.
(xor_one_cmpl<mode>3): New define_insn_and_split.
* config/aarch64/iterators.md (NLOGICAL): New define_code_iterator.
gcc/testsuite/:
* gcc.target/aarch64/eon_1.c: New test.
From-SVN: r218961
Alan Lawrence [Fri, 19 Dec 2014 17:48:15 +0000 (17:48 +0000)]
[AArch64 2/3] Add SIMD-reg variants of logical operators and/ior/xor/not
* config/aarch64/aarch64.md (<optab><mode>3, one_cmpl<mode>2):
Add SIMD-register variant.
* config/aarch64/iterators.md (Vbtype): Add value for SI.
From-SVN: r218960
Paolo Carlini [Fri, 19 Dec 2014 17:47:58 +0000 (17:47 +0000)]
using30.C: Move...
2014-12-19 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/template/using30.C: Move...
* g++.dg/cpp0x/alias-decl-45.C: ... here.
From-SVN: r218959
Alan Lawrence [Fri, 19 Dec 2014 17:44:36 +0000 (17:44 +0000)]
[AArch64 1/3] Don't disparage add/sub in SIMD registers
* config/aarch64/aarch64.md (subdi3, adddi3_aarch64): Don't penalize
SIMD reg variant.
From-SVN: r218958
Paolo Carlini [Fri, 19 Dec 2014 16:50:31 +0000 (16:50 +0000)]
re PR c++/60493 (g++ throws segmentation fault on simple code)
2014-12-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60493
* g++.dg/template/crash120.C: New.
From-SVN: r218957
Kai Tietz [Fri, 19 Dec 2014 16:47:59 +0000 (17:47 +0100)]
re PR c++/61198 (Crash when selecting specializations through aliases.)
PR c++/61198
* g++.dg/template/using30.C: New file.
From-SVN: r218956
Kai Tietz [Fri, 19 Dec 2014 16:44:15 +0000 (17:44 +0100)]
re PR c++/61198 (Crash when selecting specializations through aliases.)
PR c++/61198
* pt.c (most_general_template): Don't break for template-alias.
From-SVN: r218955
Ian Lance Taylor [Fri, 19 Dec 2014 16:14:01 +0000 (16:14 +0000)]
compiler: More cases that need a temporary for interface conversion.
From-SVN: r218952
Martin Liska [Fri, 19 Dec 2014 12:40:50 +0000 (13:40 +0100)]
re PR ipa/63569 (Wrong code with volatile and ICF)
Fix for PR ipa/63569.
PR ipa/63569
* gcc.dg/ipa/pr63569.c: New test.
PR ipa/63569
* ipa-icf-gimple.c (func_checker::compare_operand): Add missing
comparison for volatile flag.
From-SVN: r218949
Jakub Jelinek [Fri, 19 Dec 2014 12:20:58 +0000 (13:20 +0100)]
re PR preprocessor/63831 (r217292 causes segfaults with -MM)
PR preprocessor/63831
* c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
and __has_cpp_attribute here.
* c-ppoutput.c (init_pp_output): Set cb->has_attribute to
c_common_has_attribute.
* c-common.h (c_common_has_attribute): New prototype.
* c-lex.c (init_c_lex): Set cb->has_attribute to
c_common_has_attribute instead of cb_has_attribute.
(get_token_no_padding): New function.
(cb_has_attribute): Renamed to ...
(c_common_has_attribute): ... this. No longer static. Use
get_token_no_padding, require ()s, don't build TREE_LIST
unnecessarily, fix up formatting, adjust diagnostics, call
init_attributes.
* directives.c (lex_macro_node): Remove __has_attribute__ handling.
* internal.h (struct spec_node): Remove n__has_attribute__ field.
(struct lexer_state): Remove in__has_attribute__ field.
* macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE.
* identifiers.c (_cpp_init_hashtable): Remove __has_attribute__
handling.
* init.c (builtin_array): Add __has_attribute and __has_cpp_attribute.
(cpp_init_special_builtins): Don't initialize __has_attribute
or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL.
* traditional.c (enum ls): Remove ls_has_attribute,
ls_has_attribute_close.
(_cpp_scan_out_logical_line): Remove __has_attribute__ handling.
* include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE.
* pch.c (cpp_read_state): Remove __has_attribute__ handling.
* expr.c (eval_token): Likewise.
(parse_has_attribute): Removed.
* c-c++-common/cpp/pr63831-1.c: New test.
* c-c++-common/cpp/pr63831-2.c: New test.
From-SVN: r218948
Kyrylo Tkachov [Fri, 19 Dec 2014 10:20:07 +0000 (10:20 +0000)]
[ARM][doc] Remove mention of Advanced RISC Machines
* doc/invoke.texi (ARM options): Remove mention of Advanced RISC
Machines.
From-SVN: r218897
James Greenhalgh [Fri, 19 Dec 2014 09:41:13 +0000 (09:41 +0000)]
Fix ChangeLog typo in 218895
From-SVN: r218896
Xingxing Pan [Fri, 19 Dec 2014 09:39:55 +0000 (09:39 +0000)]
[PATCH][ARM] Fix reservation pattern in cortex-a9-neon.md
gcc/
* config/arm/cortex-a9-neon.md (cortex_a9_neon_vmov): Change
reservation to cortex_a9_neon_dp.
From-SVN: r218895
Kaz Kojima [Fri, 19 Dec 2014 04:56:26 +0000 (04:56 +0000)]
* [SH] Split QI/HImode load/store via r0 when LRA is enabled.
From-SVN: r218892
Kaz Kojima [Fri, 19 Dec 2014 04:53:57 +0000 (04:53 +0000)]
* [SH] Add splitter to addsi3_compact.
From-SVN: r218891
Kaz Kojima [Fri, 19 Dec 2014 04:51:53 +0000 (04:51 +0000)]
* [SH] Modify movsi_ie and movsf_ie patterns for LRA.
From-SVN: r218890
Kaz Kojima [Fri, 19 Dec 2014 04:49:16 +0000 (04:49 +0000)]
* [SH] Miscellaneous changes for LRA.
From-SVN: r218889
Kaz Kojima [Fri, 19 Dec 2014 04:47:18 +0000 (04:47 +0000)]
* [SH] Add -mlra option.
From-SVN: r218888
Kaz Kojima [Fri, 19 Dec 2014 04:43:11 +0000 (04:43 +0000)]
* Add TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT target macro.
From-SVN: r218887
Kaz Kojima [Fri, 19 Dec 2014 04:40:11 +0000 (04:40 +0000)]
* Add TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV target macro.
From-SVN: r218886
Kaz Kojima [Fri, 19 Dec 2014 04:36:54 +0000 (04:36 +0000)]
lra-constraints.c (process_address_1): Swap base_term and index_term if INDEX_REG_CLASS is assigned to base_term...
* lra-constraints.c (process_address_1): Swap base_term and index_term
if INDEX_REG_CLASS is assigned to base_term already when INDEX_REG_CLASS
is a single register class.
From-SVN: r218885
Ian Lance Taylor [Fri, 19 Dec 2014 04:05:59 +0000 (04:05 +0000)]
compiler: Avoid multiple evaluations in interface conversions.
Added assertions for cases that might lead to multiple
evaluations, and fixed all the problems I saw.
Test case already in master Go testsuite
(https://go-review.googlesource.com/#/c/1710/).
From-SVN: r218884
GCC Administrator [Fri, 19 Dec 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218883
Paolo Carlini [Fri, 19 Dec 2014 00:02:05 +0000 (00:02 +0000)]
re PR c++/63723 (Narrowing conversion allowed in braced init list in SFINAE context)
2014-12-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63723
* g++.dg/cpp0x/sfinae54.C: New.
From-SVN: r218880
Jason Merrill [Thu, 18 Dec 2014 23:53:15 +0000 (18:53 -0500)]
re PR c++/64105 (ICE: in strip_typedefs, at cp/tree.c:1326)
PR c++/64105
* parser.c (cp_parser_simple_type_specifier): Make auto parameter
before -std=c++14 an error.
From-SVN: r218879
Paolo Carlini [Thu, 18 Dec 2014 23:43:46 +0000 (23:43 +0000)]
re PR c++/59204 (Incorrect metaprogram evaluation in SFINAE context)
2014-12-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59204
* g++.dg/cpp0x/sfinae53.C: New.
From-SVN: r218878
Jason Merrill [Thu, 18 Dec 2014 22:22:42 +0000 (17:22 -0500)]
re PR c++/64352 (No SFINAE with deleted function)
PR c++/64352
* pt.c (tsubst_copy_and_build): Pass complain to mark_used.
From-SVN: r218877
Jason Merrill [Thu, 18 Dec 2014 22:22:36 +0000 (17:22 -0500)]
re PR c++/64251 (Chromium build error only with --enable-checking=yes)
PR c++/64251
* decl2.c (mark_used): Don't mark if in_template_function.
From-SVN: r218876
Vladimir Makarov [Thu, 18 Dec 2014 21:50:48 +0000 (21:50 +0000)]
lra-constraints.c (lra-constraints.c): Exchange places of sclass and dclass.
2014-12-18 Vladimir Makarov <vmakarov@redhat.com>
* lra-constraints.c (lra-constraints.c): Exchange places of sclass
and dclass.
From-SVN: r218875
Vladimir Makarov [Thu, 18 Dec 2014 20:49:44 +0000 (20:49 +0000)]
re PR rtl-optimization/64291 (Miscompile t-div in GMP's testsuite)
2014-12-18 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/64291
* lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE.
(create_cands): Process only output reload insn with potential
cands.
2014-12-18 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/64291
* testsuite/gcc.target/i386/pr64291-[12].c: New tests.
From-SVN: r218874
Paolo Carlini [Thu, 18 Dec 2014 17:53:55 +0000 (17:53 +0000)]
re PR c++/60955 (Erroneous warning about taking address of register with std=c++1y)
/cp
2014-12-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60955
* pt.c (struct warning_sentinel): Move it...
* cp-tree.h: ... here.
* semantics.c (force_paren_expr): Use it.
/testsuite
2014-12-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60955
* g++.dg/warn/register-parm-1.C: New.
From-SVN: r218871
H.J. Lu [Thu, 18 Dec 2014 17:35:45 +0000 (17:35 +0000)]
X86-64: Add -mskip-rax-setup
The Linux kernel never passes floating point arguments around, vararg
functions or not. Hence no vector registers are ever used when calling a
vararg function. But gcc still dutifully emits an "xor %eax,%eax" before
each and every call of a vararg function. Since no callee use that for
anything, these instructions are redundant.
This patch adds the -mskip-rax-setup option to skip setting up RAX
register when SSE is disabled and there are no variable arguments passed
in vector registers. Since RAX register is used to avoid unnecessarily
saving vector registers on stack when passing variable arguments, the
impacts of this option are callees may waste some stack space, misbehave
or jump to a random location. GCC 4.4 or newer don't those issues,
regardless the RAX register value since they don't check the RAX register
value when SSE is disabled.
gcc/
* config/i386/i386.c (ix86_expand_call): Skip setting up RAX
register for -mskip-rax-setup when there are no parameters
passed in vector registers.
* config/i386/i386.opt (mskip-rax-setup): New option.
* doc/invoke.texi: Document -mskip-rax-setup.
gcc/testsuite/
* gcc.target/i386/amd64-abi-7.c: New tests.
* gcc.target/i386/amd64-abi-8.c: Likwise.
* gcc.target/i386/amd64-abi-9.c: Likwise.
From-SVN: r218870
Alan Lawrence [Thu, 18 Dec 2014 15:20:11 +0000 (15:20 +0000)]
[AArch64] Simplify+improve patterns for ushr(d?)_n_u64 intrinsic
gcc/:
* config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift
by 64 by moving const0_rtx.
(aarch64_ushr_simddi): Delete.
* config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64.
gcc/testsuite/:
* gcc.target/aarch64/ushr64_1.c: Remove scan-assembler "ushr...64".
From-SVN: r218868
Alan Lawrence [Thu, 18 Dec 2014 15:00:51 +0000 (15:00 +0000)]
[AArch64] Simplify patterns for sshr_n_[us]64 intrinsic
* config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64.
* config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift
amount to 63 if was 64.
(aarch64_sshr_simddi): Remove.
From-SVN: r218867
Wilco Dijkstra [Thu, 18 Dec 2014 13:48:34 +0000 (13:48 +0000)]
[AArch64] Add TARGET_MIN_DIVISIONS_FOR_RECIP_MUL
2014-12-18 Wilco Dijkstra <wilco.dijkstra@arm.com>
* gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL):
Define.
(aarch64_min_divisions_for_recip_mul): New function.
From-SVN: r218866
Wilco Dijkstra [Thu, 18 Dec 2014 13:46:22 +0000 (13:46 +0000)]
[AArch64] Generalize code alignment
2014-12-18 Wilco Dijkstra <wilco.dijkstra@arm.com>
* config/aarch64/aarch64-protos.h (tune-params): Add code alignment
tuning parameters.
* gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment
tuning parameters.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(thunderx_tunings): Likewise.
(aarch64_override_options): Use new alignment tunings.
From-SVN: r218865
Martin Liska [Thu, 18 Dec 2014 13:32:18 +0000 (14:32 +0100)]
re PR tree-optimization/64330 (IPA-ICF merges const exported vars that could be addressable in other TUs)
Fix for PR64330.
PR tree-optimization/64330
* ipa-icf.c (sem_variable::parse): Add checking
for externally visible symbols and do not introduce
an alias for an external declaration.
From-SVN: r218864
Jan Hubicka [Thu, 18 Dec 2014 12:06:34 +0000 (13:06 +0100)]
re PR bootstrap/63573 (libgo: ICE building libgo on powerpc-linux-gnu)
Fix for PR bootstrap/63573.
PR bootstrap/63573
* tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p
predicate.
From-SVN: r218861
Martin Liska [Thu, 18 Dec 2014 12:02:22 +0000 (13:02 +0100)]
re PR ipa/64146 (ipa-icf breaks gold dynamic_test_2 test)
Fix for PR ipa/64146
PR ipa/64146
* ipa-icf.c (sem_function::merge): Check for
decl_binds_to_current_def_p is newly added to merge operation.
* g++.dg/ipa/pr64146.C: New test.
From-SVN: r218860
Rainer Orth [Thu, 18 Dec 2014 11:54:40 +0000 (11:54 +0000)]
Change mpx effective-target test into link test
* lib/mpx-dg.exp (check_effective_target_mpx): Change into link test.
Add main.
From-SVN: r218859
Rainer Orth [Thu, 18 Dec 2014 09:42:22 +0000 (09:42 +0000)]
Include target-utils.exp in boehm-gc testing
* testsuite/lib/boehm-gc.exp: Load target-utils.exp.
From-SVN: r218857
Prathamesh Kulkarni [Thu, 18 Dec 2014 06:19:33 +0000 (06:19 +0000)]
Add myself to MAINTAINERS under Writer After Approval
From-SVN: r218856
Bin Cheng [Thu, 18 Dec 2014 02:53:42 +0000 (02:53 +0000)]
re PR middle-end/62178 ([AArch64] Performance regression on matrix matrix multiply due to r211211)
PR tree-optimization/62178
* tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function.
(iv_ca_replace): New function.
(try_improve_iv_set): New parameter try_replace_p.
Break local optimal fixed-point by calling iv_ca_replace.
(find_optimal_iv_set_1): Pass new argument to try_improve_iv_set.
gcc/testsuite/ChangeLog
PR tree-optimization/62178
* gcc.target/aarch64/pr62178.c: New test.
From-SVN: r218855
Dehao Chen [Thu, 18 Dec 2014 00:19:24 +0000 (00:19 +0000)]
auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right place.
gcc/ChangeLog:
2014-12-17 Dehao Chen <dehao@google.com>
* auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right
place.
(auto_profile): Recompute inline summary after processing cgraph node.
From-SVN: r218854
GCC Administrator [Thu, 18 Dec 2014 00:16:36 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218853
Oleg Endo [Wed, 17 Dec 2014 23:08:14 +0000 (23:08 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
gcc/
PR target/51244
* config/sh/sh_treg_combine.cc (is_conditional_insn): New function.
(cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it
accordingly in constructor.
(cbranch_trace::branch_condition_rtx_ref): New function.
(cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref.
(sh_treg_combine::try_invert_branch_condition): Invert condition rtx
in insn using reversed_comparison_code and validate_change instead of
invert_jump_1.
(sh_treg_combine::execute): Look for conditional insns in basic blocks
in addition to conditional branches.
* config/sh/sh.md (*movsicc_div0s): Remove combine patterns.
From-SVN: r218850
Oleg Endo [Wed, 17 Dec 2014 22:52:21 +0000 (22:52 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
gcc/
PR target/51244
* config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch):
Combine ccreg inversion and cbranch into inverted cbranch.
From-SVN: r218847
Sergio Durigan Junior [Wed, 17 Dec 2014 22:35:04 +0000 (22:35 +0000)]
dg-extract-results.sh: Use --text with grep to avoid issues with binary files.
2014-12-17 Sergio Durigan Junior <sergiodj@redhat.com>
* dg-extract-results.sh: Use --text with grep to avoid issues with
binary files. Fall back to cat -v, if that doesn't work.
From-SVN: r218843
Vladimir Makarov [Wed, 17 Dec 2014 21:29:01 +0000 (21:29 +0000)]
Fix typo in changelog.
From-SVN: r218836
Vladimir Makarov [Wed, 17 Dec 2014 21:25:18 +0000 (21:25 +0000)]
lra-constrints.c (process_alt_operands): Remove non allocatable hard regs when considering ira_prohibited_class_mode_regs.
2014-12-17 Vladimir Makarov <vmakarov@redhat.com>
* lra-constrints.c (process_alt_operands): Remove non allocatable
hard regs when considering ira_prohibited_class_mode_regs.
From-SVN: r218835
Janus Weil [Wed, 17 Dec 2014 21:12:42 +0000 (22:12 +0100)]
re PR fortran/64173 ([F03] ICE involving procedure pointer component)
2014-12-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/64173
* trans-array.c (structure_alloc_comps): Do not nullify procedure
pointer components.
2014-12-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/64173
* gfortran.dg/proc_ptr_comp_40.f90: New.
From-SVN: r218834
Jan Hubicka [Wed, 17 Dec 2014 21:11:46 +0000 (22:11 +0100)]
sreal.h (sreal::normalize): Implement inline.
* sreal.h (sreal::normalize): Implement inline.
(sreal::normalize_up): New function.
(sreal::normalize_down): New function.
* sreal.c (sreal::normalize): Remove.
From-SVN: r218833
Jason Merrill [Wed, 17 Dec 2014 20:41:18 +0000 (15:41 -0500)]
re PR c++/64333 (C++14 constexpr gives wrong results when a looping constexpr function is evaluated twice)
PR c++/64333
* constexpr.c (cxx_bind_parameters_in_call): non_constant_args parm.
(cxx_eval_call_expression): Don't cache calls with non-constant args.
(cxx_eval_constant_expression) [COMPOUND_EXPR]: Pass true for lval.
(cxx_eval_unary_expression, cxx_eval_binary_expression)
(cxx_eval_conditional_expression): Pass false for lval.
From-SVN: r218832
Jason Merrill [Wed, 17 Dec 2014 20:41:12 +0000 (15:41 -0500)]
* constexpr.c: Change "addr" parm names to "lval".
From-SVN: r218831
Jason Merrill [Wed, 17 Dec 2014 20:41:07 +0000 (15:41 -0500)]
* constexpr.c: Tweak comments and formatting.
From-SVN: r218830
James Greenhalgh [Wed, 17 Dec 2014 18:15:46 +0000 (18:15 +0000)]
[AArch64] Remove "generic_sched" attribute
gcc/
* config/aarch64/aarch64.md (generic_sched): Delete it.
From-SVN: r218829
Jan-Benedict Glaw [Wed, 17 Dec 2014 17:10:37 +0000 (17:10 +0000)]
MSP430: Fix unused arg warning
The build robot found this:
g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -I../../../gcc/gcc/. -I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include -I/opt/cfarm/mpc/include -I../../../gcc/gcc/../libdecnumber -I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../../gcc/gcc/../libbacktrace -o msp430.o -MT msp430.o -MMD -MP -MF ./.deps/msp430.TPo ../../../gcc/gcc/config/msp430/msp430.c
../../../gcc/gcc/config/msp430/msp430.c:979:43: error: unused parameter ‘file’ [-Werror=unused-parameter]
msp430_asm_output_addr_const_extra (FILE *file, rtx x)
^
cc1plus: all warnings being treated as errors
make[2]: *** [msp430.o] Error 1
(See for example this build:
http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=384666)
Ok for this one?
2014-12-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix
unused argument warning.
From-SVN: r218828
Pierre-Marie de Rodat [Wed, 17 Dec 2014 16:25:58 +0000 (16:25 +0000)]
dwarf2out.c: do not short-circuit add_bound_info in array descr. lang-hook
gcc/
* dwarf2out.h (struct array_descr_info): Remove the base_decl field.
* dwarf2out.c (enum dw_scalar_form): New.
(struct loc_descr_context): New.
(add_scalar_info): New.
(add_bound_info): Add a context parameter. Use add_scalar_info.
(loc_list_from_tree): Add a context parameter. Handle PLACEHOLDER_EXPR
nodes for type-related expressions. Likewise for base declarations.
(loc_descriptor_from_tree): Add a context parameter.
(subrange_type_die): Update calls to add_bound_info.
(tls_mem_loc_descriptor): Likewise.
(loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context
parameter. Update calls to loc_list_from_tree.
(add_subscript_info): Update calls to add_bound_info.
(gen_array_type_die): Update calls to loc_list_from_tree and to
add_bound_info.
(descr_info_loc): Remove.
(add_descr_info_field): Remove.
(gen_descr_array_type_die): Switch add_descr_info_field calls into
add_scalar_info/add_bound_info ones.
(gen_subprogram_die): Update calls to loc_list_from_tree.
(gen_variable_die): Likewise.
From-SVN: r218827
Pierre-Marie de Rodat [Wed, 17 Dec 2014 16:25:49 +0000 (16:25 +0000)]
Add a few debug utilities for DWARF expressions
* dwarf2out.c (print_loc_descr): New.
(print_dw_val): New.
(print_attribute): New.
(print_loc_descr): New.
(print_die): Use print_dw_val.
(debug_dwarf_loc_descr): New.
* dwarf2out.h (debug_dwarf_loc_descr): New declaration.
From-SVN: r218826
Pierre-Marie de Rodat [Wed, 17 Dec 2014 16:25:39 +0000 (16:25 +0000)]
Make the Ada front-end use the array descr language hook
* gcc-interface/misc.c (gnat_get_array_descr_info): New. Use it for
the get_array_descr_info lang-hook. Use it to tune the DWARF output
for array types.
From-SVN: r218825
Pierre-Marie de Rodat [Wed, 17 Dec 2014 16:25:30 +0000 (16:25 +0000)]
Enable the array descr language hook for all DWARF versions
* dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook
even when (dwarf_version < 3 && dwarf_strict).
(gen_descr_array_die): Do not output DW_AT_data_locationn,
DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF
attributes when (dwarf_version < 3 && dwarf_strict).
From-SVN: r218824
Pierre-Marie de Rodat [Wed, 17 Dec 2014 16:25:21 +0000 (16:25 +0000)]
Complete information generated through the array descriptor language hook
gcc/
* dwarf2out.h (enum array_descr_ordering): New.
(array_descr_dimen): Add a bounds_type structure field.
(struct array_descr_info): Add a field to hold index type information
and another one to hold ordering information.
* dwarf2out.c (gen_type_die_with_usage): Get the main variant before
invoking the array descriptor language hook. Initialize the
array_descr_info structure before calling the lang-hook.
(gen_descr_array_type_die): Use gen_type_die if not processing the main
type variant. Replace Fortran-specific code with generic one using
this new field. Add a GNAT descriptive type, if any. Output type
information for the array bound subrange, if any.
gcc/fortran
* trans-types.c (gfc_get_array_descr_info): Describe all Fortran arrays
with column major ordering.
From-SVN: r218823
Pierre-Marie de Rodat [Wed, 17 Dec 2014 16:25:12 +0000 (16:25 +0000)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r218822
H.J. Lu [Wed, 17 Dec 2014 14:39:43 +0000 (06:39 -0800)]
Fix a typo in ChangeLog
From-SVN: r218820
Ian Lance Taylor [Wed, 17 Dec 2014 14:26:55 +0000 (14:26 +0000)]
mksysinfo: Pass -O to compiler to avoid warnings on CentOS.
From Uros Bizjak.
https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01366.html
From-SVN: r218819
H.J. Lu [Wed, 17 Dec 2014 14:22:57 +0000 (14:22 +0000)]
Add -malign-data={abi|compat|cachineline}
Add -malign-data={abi|compat,cachineline} to control how GCC aligns
variables. "compat" uses increased alignment value compatible with
GCC 4.8 and earlier, "abi" uses alignment value as specified by the
psABI, and "cacheline" uses increased alignment value to match the
cache line size. "compat" is the default.
gcc/
PR target/61296
* config/i386/i386-opts.h (ix86_align_data): New enum.
* config/i386/i386.c (ix86_data_alignment): Return the ABI
alignment value for -malign-data=abi, the cachine line size
for -malign-data=cachineline and the older GCC compatible
alignment value for for -malign-data=compat.
* config/i386/i386.opt (malign-data=): New.
* doc/invoke.texi: Document -malign-data=.
gcc/testsuite/
PR target/61296
* gcc.target/i386/pr61296-2.c: New.
* gcc.target/i386/pr61296-2.c: Likewise.
* gcc.target/i386/pr61296-3.c: Likewise.
* gcc.target/i386/pr61296-4.c: Likewise.
* gcc.target/i386/pr61296-5.c: Likewise.
* gcc.target/i386/pr61296-6.c: Likewise.
* gcc.target/i386/pr61296-7.c: Likewise.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r218818
Tejas Belagod [Wed, 17 Dec 2014 12:15:36 +0000 (12:15 +0000)]
re PR testsuite/64328 (addr_equal-1.c fails execution.)
PR testsuite/64328
* gcc.dg/addr_equal-1.c: Not supported for -fPIC.
From-SVN: r218817
Marek Polacek [Wed, 17 Dec 2014 11:48:33 +0000 (11:48 +0000)]
re PR middle-end/63568 (Missed optimization (a & ~mask) | (b & mask) = a ^ ((a ^ b) & mask))
PR middle-end/63568
* match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern.
* gcc.dg/pr63568.c: New test.
From-SVN: r218816
Jakub Jelinek [Wed, 17 Dec 2014 09:29:12 +0000 (10:29 +0100)]
re PR tree-optimization/64322 (More optimize opportunity for constant folding)
PR tree-optimization/64322
* tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
* gcc.dg/tree-ssa/vrp95.c: New test.
From-SVN: r218812
Jakub Jelinek [Wed, 17 Dec 2014 09:26:49 +0000 (10:26 +0100)]
re PR sanitizer/64289 (ICE with -fsanitize=float-cast-overflow)
PR sanitizer/64289
* c-convert.c: Include ubsan.h.
(convert): For real -> integral casts and
-fsanitize=float-cast-overflow don't call convert_to_integer, but
instead instrument the float cast directly.
* c-c++-common/ubsan/pr64289.c: New test.
From-SVN: r218811
Tim Shen [Wed, 17 Dec 2014 09:25:44 +0000 (09:25 +0000)]
re PR libstdc++/64302 (The match_results::cbegin()/cend() return incorrect results)
PR libstdc++/64302
PR libstdc++/64303
* include/bits/regex.h (match_results::cbegin, match_results::cend,
regex_token_iterator::regex_token_iterator,
regex_token_iterator::_M_normalize_result): Fix match_results cbegin
and cend and regex_token_iterator::_M_result invariant.
* include/bits/regex.tcc: Fix regex_token_iterator::_M_result invariant.
* testsuite/28_regex/iterators/regex_token_iterator/64303.cc: Testcase.
From-SVN: r218810
Michael Haubenwallner [Wed, 17 Dec 2014 08:27:53 +0000 (08:27 +0000)]
drop reason for my change from ChangeLog
From-SVN: r218809
Tobias Burnus [Wed, 17 Dec 2014 06:29:30 +0000 (07:29 +0100)]
re PR fortran/54687 (Use gcc option machinery for gfortran)
2014-12-17 Tobias Burnus <burnus@net-b.de>
PR fortran/54687
gcc/
* flag-types.h (gfc_init_local_real, gfc_fcoarray,
gfc_convert): New enums; moved from fortran/.
gcc/fortran/
* gfortran.h (gfc_option_t): Remove flags which now
have a Var().
(init_local_real, gfc_fcoarray): Moved to ../flag-types.h.
* libgfortran.h (unit_convert): Add comment.
* lang.opt (flag-convert, flag-init_real, flag-coarray):
Add Var() and Enum().
* options.c (gfc_handle_coarray_option): Remove.
(gfc_init_options, gfc_post_options, gfc_handle_option):
Update for *.opt changes.
* array.c: Update for flag-variable name changes.
* check.c: Ditto.
* match.c: Ditto.
* resolve.c: Ditto.
* simplify.c: Ditto.
* trans-array.c: Ditto.
* trans-decl.c: Ditto.
* trans-expr.c: Ditto.
* trans-intrinsic.c: Ditto.
* trans-stmt.c: Ditto.
* trans-types.c: Ditto.
* trans.c: Ditto.
From-SVN: r218808
Oleg Endo [Wed, 17 Dec 2014 02:01:10 +0000 (02:01 +0000)]
crt.h: New.
libgcc/
* config/sh/crt.h: New.
* config/sh/crti.S: Use GLOBAL macro from crt.h for _init and _fini
symbols.
* config/sh/crt1.S: Likewise.
From-SVN: r218807
Ian Lance Taylor [Wed, 17 Dec 2014 01:04:39 +0000 (01:04 +0000)]
compiler: Don't crash on append with single argument.
Instead of allocating an empty slice literal, use a slice
value with a nil pointer.
From-SVN: r218806
GCC Administrator [Wed, 17 Dec 2014 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218805
Paolo Carlini [Tue, 16 Dec 2014 23:28:31 +0000 (23:28 +0000)]
re PR c++/58650 ([c++11] ICE with invalid friend declaration)
/cp
2014-12-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58650
* parser.c (cp_parser_member_declaration): Fix error recovery for
initialized non-static data member declared friend.
/testsuite
2014-12-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58650
* g++.dg/parse/friend12.C: New.
From-SVN: r218801
Ian Lance Taylor [Tue, 16 Dec 2014 22:53:38 +0000 (22:53 +0000)]
compiler: Don't built hash/equality functions for thunk structs.
They are never necessary, and they can cause problems when a
thunk is used to pass an unexported type from a different
package to a function defined in that package. The resulting
struct type may need to call the comparison routine from the
other package, which will fail because the type is not
exported. This will be bug492 in the master testsuite.
From-SVN: r218798
Jan Hubicka [Tue, 16 Dec 2014 22:30:22 +0000 (23:30 +0100)]
* fibonacci_heap.h (min): Return m_data instead of non-existing data.
From-SVN: r218797
Jan Hubicka [Tue, 16 Dec 2014 22:16:17 +0000 (23:16 +0100)]
ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider return values of const calls as constants.
* ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider
return values of const calls as constants.
(estimate_function_body_sizes): Expect calls to have false predicates.
From-SVN: r218796
Oleg Endo [Tue, 16 Dec 2014 21:37:42 +0000 (21:37 +0000)]
re PR target/54089 ([SH] Refactor shift patterns)
gcc/testsuite/
PR target/54089
* gcc.target/sh/pr54089-1.c: Change optimization level from -O1 to -O2.
From-SVN: r218795
Ian Lance Taylor [Tue, 16 Dec 2014 21:36:53 +0000 (21:36 +0000)]
re PR go/61246 (gccgo: ICE in do_determine_types [GoSmith])
PR go/61246
compiler: Switch expression comparisons should be boolean typed.
From-SVN: r218794
Oleg Endo [Tue, 16 Dec 2014 21:28:59 +0000 (21:28 +0000)]
re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
gcc/testsuite/
PR target/53513
* gcc.target/sh/fpchg.c: Rename to ...
* gcc.target/sh/pr53513-1.c: ... this. Adjust test case to work for
-m4a and -m4a-single.
From-SVN: r218793
Tobias Burnus [Tue, 16 Dec 2014 20:44:45 +0000 (21:44 +0100)]
re PR fortran/54687 (Use gcc option machinery for gfortran)
2014-12-16 Tobias Burnus <burnus@net-b.de>
PR fortran/54687
* gfortran.h (gfc_option_t): Remove flags which now
have a Var().
* lang.opt (flag-aggressive_function_elimination,
flag-align_commons, flag-all_intrinsics,
flag-allow_leading_underscore, flag-automatic, flag-backslash,
flag-backtrace, flag-blas_matmul_limit, flag-cray_pointer,
flag-dollar_ok, flag-dump_fortran_original,
flag-dump_fortran_optimized, flag-external_blas, flag-f2c,
flag-implicit_none, flag-max_array_constructor,
flag-module_private, flag-pack_derived, flag-range_check,
flag-recursive, flag-repack_arrays, flag-sign_zero,
flag-underscoring): Add Var() and, where applicable, Enum().
* options.c (gfc_init_options, gfc_post_options,
gfc_handle_option): Update for *.opt changes.
* arith.c: Update for flag-variable name changes.
* array.c: Ditto.
* cpp.c: Ditto.
* decl.c: Ditto.
* expr.c: Ditto.
* f95-lang.c: Ditto.
* frontend-passes.c: Ditto.
* intrinsic.c: Ditto.
* io.c: Ditto.
* match.c: Ditto.
* module.c: Ditto.
* parse.c: Ditto.
* primary.c: Ditto.
* resolve.c: Ditto.
* scanner.c: Ditto.
* simplify.c: Ditto.
* symbol.c: Ditto.
* trans-array.c: Ditto.
* trans-common.c: Ditto.
* trans-decl.c: Ditto.
* trans-expr.c: Ditto.
* trans-intrinsic.c: Ditto.
* trans-openmp.c: Ditto.
* trans-types.c: Ditto.
From-SVN: r218792
Jan Hubicka [Tue, 16 Dec 2014 19:59:56 +0000 (20:59 +0100)]
hwint.c (abs_hwi, absu_hwi): Move to ...
* hwint.c (abs_hwi, absu_hwi): Move to ...
* hwint.h (abs_hwi, absu_hwi): ... here; make inline.
From-SVN: r218791
Tobias Burnus [Tue, 16 Dec 2014 19:24:50 +0000 (20:24 +0100)]
2014-12-15 Tobias Burnus <burnus@net-b.de>
* lang.opt (fsecond-underscore, frecord-marker=8,
* frecord-marker=4,
frealloc-lhs, freal-8-real-16, freal-8-real-10, freal-8-real-4,
freal-4-real-16, freal-4-real-10, freal-4-real-8, fprotect-parens,
fstack-arrays, fmax-stack-var-size=, fmax-subrecord-length=,
ffrontend-optimize, ffree-line-length-, ffixed-line-length-,
finteger-4-integer-8, fdefault-real-8, fdefault-integer-8,
fdefault-double-8): Add Var() and Init().
* gfortran.h (gfc_option_t): Remove moved flags.
* options.c (gfc_init_options, gfc_handle_option): Ditto.
(gfc_post_options): Update for name change.
* decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Handle
flag-name change.
* frontend-passes.c (gfc_run_passes): Ditto.
* module.c (use_iso_fortran_env_module): Ditto.
* primary.c (match_integer_constant, match_real_constant):
* Ditto.
* resolve.c (resolve_ordinary_assign): Ditto.
* scanner.c (gfc_next_char_literal, load_line): Ditto.
* trans-array.c (gfc_trans_allocate_array_storage,
gfc_conv_resolve_dependencies, gfc_trans_auto_array_allocation,
gfc_conv_ss_startstride): Ditto.
* trans-common.c (gfc_sym_mangled_common_id): Ditto.
* trans-decl.c (gfc_sym_mangled_function_id,
create_main_function): Ditto.
* trans-expr.c (gfc_conv_expr_op, gfc_conv_procedure_call,
arrayfunc_assign_needs_temporary, gfc_trans_arrayfunc_assign,
gfc_trans_assignment_1): Ditto.
* trans-stmt.c (gfc_trans_allocate): Ditto.
* trans-types.c (gfc_init_kinds): Ditto.
From-SVN: r218790