140373 Commits

Author SHA1 Message Date
Jonathan Wakely
e994d230f1 re PR libstdc++/67374 (std::cbegin can't call valarray range access functions)
PR libstdc++/67374
	* include/bits/range_access.h (valarray, begin, end): Declare.
	* testsuite/26_numerics/valarray/range_access.cc: Test const
	overloads.
	* testsuite/26_numerics/valarray/range_access2.cc: New.

From-SVN: r227274
2015-08-27 20:05:19 +01:00
Uros Bizjak
a443ee6e5b re PR target/67317 ([x86] Silly code generation for _addcarry_u32/_addcarry_u64)
PR target/67317
	* config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
	(addqi3_cc): Ditto.
	(UNSPEC_ADD_CARRY): Remove.
	(addqi3_cconly_overflow): New expander.
	(*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
	Adjust for changed add<mode>3_carry.
	(*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
	(*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
	(<plusminus_insn><mode>3_carry): Remove expander.
	(*<plusminus_insn><mode>3_carry): Split insn pattern to
	add<mode>3_carry and sub<mode>3_carry.
	(plusminus_carry_mnemonic): Remove code attribute.
	(add<mode>3_carry): Canonicalize insn pattern.
	(*addsi3_carry_zext): Ditto.
	(sub<mode>3_carry): Ditto.
	(*subsi3_carry_zext): Ditto.
	(adcx<mode>3): Remove insn pattern.
	(addcarry<mode>): New insn pattern.
	(subborrow<mode>): Ditto.
	* config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
	gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
	(ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
	case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
	case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
	CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
	Rewrite expander to not clobber carry flag chains.

testsuite/ChangeLog:

	PR target/67317
	* gcc.target/i386/pr67317-1.c: New test.
	* gcc.target/i386/pr67317-2.c: Ditto.
	* gcc.target/i386/pr67317-3.c: Ditto.
	* gcc.target/i386/pr67317-4.c: Ditto.
	* gcc.target/i386/adx-addcarryx32-1.c: Also scan for adcl.
	* gcc.target/i386/adx-addcarryx32-2.c: Also scan for adcq.

From-SVN: r227271
2015-08-27 20:29:37 +02:00
Pat Haugen
2b6fb4aa47 vector.md (vec_shr_<mode>): Fix to do a shift instead of a rotate.
* config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
	instead of a rotate.

	* gcc.target/powerpc/vec-shr.c: New.

From-SVN: r227270
2015-08-27 18:20:45 +00:00
Marek Polacek
b7e36a33eb re PR middle-end/67005 (ICE: in verify_loop_structure, at cfgloop.c:1647 (loop with header n not in loop tree))
PR middle-end/67005
	* tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
	an entry into an irreducible region.

	* gcc.dg/torture/pr67005.c: New test.

From-SVN: r227268
2015-08-27 17:07:35 +00:00
Francois-Xavier Coudert
078c4a8c53 * configure: Regenerate.
From-SVN: r227266
2015-08-27 16:15:45 +00:00
Alan Lawrence
07ad3ec6b1 completely_scalarize arrays as well as records
gcc/:

	PR tree-optimization/67283
	* tree-sra.c (type_consists_of_records_p): Rename to...
	(scalarizable_type_p): ...this, add case for ARRAY_TYPE.

	(completely_scalarize_record): Rename to...
	(completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
	(scalarize_elem): New.

gcc/testsuite/:

	* gcc.dg/tree-ssa/sra-15.c: New.

From-SVN: r227265
2015-08-27 15:40:10 +00:00
Alan Lawrence
f2511224db Refactor completely_scalarize_var
* tree-sra.c (completely_scalarize_var): Rename to...
	(create_total_scalarization_access): ... Here. Drop call to
	completely_scalarize_record.

	(analyze_all_variable_accesses): Replace completely_scalarize_var
	with create_total_scalarization_access and completely_scalarize_record.

From-SVN: r227264
2015-08-27 15:28:39 +00:00
Rainer Orth
dfa3751556 Update copyrights
libvtv:
	Update copyrights.

	contrib:
	* update-copyright.py (GCCCmdLine): Add libvtv.

From-SVN: r227262
2015-08-27 14:26:08 +00:00
Ulrich Weigand
7e5c754721 configure.ac: Remove [disable-shared] argument to LT_INIT.
* configure.ac: Remove [disable-shared] argument to LT_INIT.
	Remove setting PIC_FLAG when building as target library.
	* configure: Regenerate.

From-SVN: r227261
2015-08-27 14:08:19 +00:00
Alan Modra
353e462df7 [RS6000] Correct constraints for ior<mode>_mask
ior<mode>_mask always splits to rtl matching rotl<mode>3_insert.  The
latter requires one of its input operands match the output, so let
reload/lra know the equivalent operand match must also occur for
ior<mode>_mask.

	PR target/67356
	* config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
	for operand 1.

From-SVN: r227260
2015-08-27 23:26:39 +09:30
Richard Biener
f11cd82983 passes.c (rest_of_decl_compilation): Guard early_global_decl call with !seen_error ().
2015-08-27  Richard Biener  <rguenther@suse.de>

	* passes.c (rest_of_decl_compilation): Guard early_global_decl
	call with !seen_error ().
	* cgraphunit.c (symbol_table::finalize_compilation_unit): Move
	early debug generation and finish...
	(symbol_table::compile): ... here to put it after a !seen_error ()
	guard.

From-SVN: r227258
2015-08-27 13:27:02 +00:00
John Marino
a98e4e62c1 Provide nearly complete std::locale support for DragonFly
2015-08-27  John Marino  <gnugcc@marino.st>

	* acinclude.m4 (*-*-dragonfly*): Change 7 locale support files
	from generic to new DragonFly versions.
	* configure: Regenerate.
	* config/locale/dragonfly/c_locale.cc: Improve locale support.
	* config/locale/dragonfly/ctype_members.cc: Likewise.
	* config/os/bsd/dragonfly/ctype_configure_char.cc: Likewise.
	* config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99.
	* config/locale/dragonfly/c_locale.h: New.
	* config/locale/dragonfly/codecvt_members.cc: New.
	* config/locale/dragonfly/collate_members.cc: New.
	* config/locale/dragonfly/monetary_members.cc: New.
	* config/locale/dragonfly/numeric_members.cc: New.
	* config/locale/dragonfly/time_members.cc: New.
	* config/locale/dragonfly/time_members.h: New.

From-SVN: r227257
2015-08-27 13:12:41 +01:00
Jonathan Wakely
a185c87663 * configure: Regenerate.
From-SVN: r227256
2015-08-27 13:12:31 +01:00
Rainer Orth
29424c7b82 Use __cxa_atexit on Solaris 12+
* config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
	Solaris 12+.

From-SVN: r227255
2015-08-27 12:00:32 +00:00
Rainer Orth
58f51f5069 Avoid unstructured procfs on Solaris
* os_dep.c [GC_SOLARIS_THREADS] (GC_dirty_init): Use
	/proc/<pid>/pagedata instead of PIOCOPENPD.

From-SVN: r227254
2015-08-27 11:26:18 +00:00
Thomas Preud'homme
973d2e01cb aarch64.md (*condjump): Handle functions > 1 MiB.
2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
            Andre Vieira  <andre.simoesdiasvieira@arm.com>

    gcc/
    * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
    (*cb<optab><mode>1): Likewise.
    (*tb<optab><mode>1): Likewise.
    (*cb<optab><mode>1): Likewise.
    * config/aarch64/iterators.md (inv_cb): New code attribute.
    (inv_tb): Likewise.
    * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
    * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.

    gcc/testsuite/
    * gcc.target/aarch64/long_branch_1.c: New test.

From-SVN: r227253
2015-08-27 10:08:54 +00:00
Richard Biener
3f2dd8cdb9 ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
2015-08-27  Richard Biener  <rguenther@suse.de>

	* ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.

From-SVN: r227252
2015-08-27 08:02:57 +00:00
Dominik Vogt
d26d508afa S/390: Add emit_barrier() after trap
gcc/ChangeLog

	* config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
	trap to fix ICE.

gcc/testsuite/ChangeLog

	* gcc.target/s390/20150826-1.c: New test.

From-SVN: r227251
2015-08-27 07:38:36 +00:00
Ian Lance Taylor
d8d9efb348 compiler: Don't crash on invalid builtin calls.
Fixes golang/go#11544.
    
    Reviewed-on: https://go-review.googlesource.com/13893

From-SVN: r227245
2015-08-27 00:44:11 +00:00
GCC Administrator
d252f921bb Daily bump.
From-SVN: r227244
2015-08-27 00:16:11 +00:00
Edward Smith-Rowland
33df19a736 Ensure std::generate_canonical doesn't return 1.
2015-08-26  Edward Smith-Rowland  <3dw4rd@verizon.net>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/64351
	PR libstdc++/63176
	* include/bits/random.tcc (generate_canonical): Loop until we get a
	result less than one.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/
	64351.cc: New.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r227233
2015-08-26 22:27:09 +01:00
Jonathan Wakely
6bc41b268e Only set std::enable_shared_from_this member once.
* include/bits/shared_ptr.h (__enable_shared_from_this_helper): Use
	nullptr.
	* include/bits/shared_ptr_base.h (weak_ptr::_M_assign): Don't assign
	if ownership is already shared with a shared_ptr object.
	(__enable_shared_from_this_helper): Use nullptr.
	* testsuite/20_util/enable_shared_from_this/members/const.cc: New.
	* testsuite/20_util/enable_shared_from_this/members/reinit.cc: New.
	* testsuite/20_util/enable_shared_from_this/requirements/
	explicit_instantiation.cc: Instantiate with const and incomplete types.

From-SVN: r227232
2015-08-26 22:27:00 +01:00
Michael Meissner
2d1a0c68ab Delete extra blank line
From-SVN: r227231
2015-08-26 21:23:04 +00:00
Michael Meissner
526303ecaa rs6000-protos.h (rs6000_expand_float128_convert): Add declaration.
2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
	Add declaration.

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
	comment.
	(rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
	floating point in VSX registers.
	(rs6000_output_move_128bit): Always print out the set insn if we
	can't generate an appropriate 128-bit move.
	(rs6000_generate_compare): Add support for IEEE 128-bit floating
	point in VSX registers comparisons.
	(rs6000_expand_float128_convert): Likewise.

	* config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
	predicate for only GPR hard registers.

	* config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
	modes to iterators. Add new iterators for moving 128-bit values in
	scalar FPR registers and VSX registers.
	(FMOVE128): Likewise.
	(FMOVE128_FPR): Likewise.
	(FMOVE128_GPR): Likewise.
	(FMOVE128_VSX): Likewise.
	(FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
	in VSX registers.
	(IFKF): Likewise.
	(IBM128): Likewise.
	(TFIFKF): Likewise.
	(RELOAD): Add IEEE 128-bit floating point modes.
	(signbittf2): Convert TF insns to add support for new IEEE 128-bit
	floating point in VSX registers modes.
	(signbit<mode>2, IBM128 iterator): Likewise.
	(mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
	(mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
	(negtf2): Likewise.
	(neg<mode>2, TFIFKF iterator): Likewise.
	(negtf2_internal): Likewise.
	(abstf2): Likewise.
	(abs<mode>2, TFIFKF iterator): Likewise.
	(ieee_128bit_negative_zero): New IEEE 128-bit floating point in
	VSX insn support for negate, absolute value, and negative absolute
	value.
	(ieee_128bit_vsx_neg<mode>2): Likewise.
	(ieee_128bit_vsx_neg<mode>2_internal): Likewise.
	(ieee_128bit_vsx_abs<mode>2): Likewise.
	(ieee_128bit_vsx_abs<mode>2_internal): Likewise.
	(ieee_128bit_vsx_nabs<mode>2): Likewise.
	(ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
	(FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
	floating point in VSX registers.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.
	(unpackv1ti): Likewise.
	(unpack<mode>, FMOVE128_VSX iterator): Likewise.
	(packv1ti): Likewise.
	(pack<mode>, FMOVE128_VSX iterator): Likewise.
	(extenddftf2): Add support for IEEE 128-bit floating point in VSX
	registers.
	(extenddftf2_internal): Likewise.
	(trunctfdf2): Likewise.
	(trunctfdf2_internal2): Likewise.
	(fix_trunc_helper): Likewise.
	(fix_trunctfdi2"): Likewise.
	(floatditf2): Likewise.
	(floatuns<mode>tf2): Likewise.
	(extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
	(trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
	(fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
	(fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
	(float<SDI:mode><IFKF:mode>2): Likewise.
	(floatuns<SDI:mode><IFKF:mode>2): Likewise.

From-SVN: r227230
2015-08-26 21:22:23 +00:00
Jonathan Wakely
66c182be12 try_emplace and insert_or_assign for Debug Mode.
* include/debug/map.h (map::try_emplace, map::insert_or_assign):
	Define.
	* include/debug/unordered_map (unordered_map::try_emplace,
	unordered_map::insert_or_assign): Define.

From-SVN: r227229
2015-08-26 21:58:14 +01:00
Jonathan Wakely
e41fd1f067 libstdc++/66902 Make _S_debug_messages static.
PR libstdc++/66902
	* src/c++11/debug.cc (_S_debug_messages): Give internal linkage.

From-SVN: r227228
2015-08-26 21:22:58 +01:00
Ian Lance Taylor
8a256400f5 compiler: Don't crash on invalid arithmetic ops.
The gofrontend would crash after hitting an unreachable state while
    trying to determine the type of an arithmetic expression involving
    non-numeric values.  Instead of crashing, it should fail gracefully
    if the relevant error is already reported.
    
    Fixes golang/go#11537.
    
    Reviewed-on: https://go-review.googlesource.com/13793

From-SVN: r227227
2015-08-26 19:18:51 +00:00
Renlin Li
e4f019d316 [PATCH][AARCH64]Add backend aarch64_bfi pattern.
2015-08-26  Renlin Li  <renlin.li@arm.com>

gcc/
	* config/aarch64/aarch64.md (aarch64_bfi): New pattern.

gcc/testsuite/
	* gcc.target/aarch64/combine_bfi_1.c: New.

From-SVN: r227226
2015-08-26 17:37:42 +00:00
Jiong Wang
5ae7caad51 [AArch64][TLSIE][2/2] Implement TLS IE for tiny model
2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>
gcc/
	* config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
	(tlsie_tiny_<mode>): New define_insn.
	(tlsie_tiny_sidi): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
	SYMBOL_TINY_TLSIE.
	(aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
	SYMBOL_TINY_TLSIE.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(arch64_classify_tls_symbol): Likewise.

gcc/testsuite/
	* gcc.target/aarch64/tlsie_tiny_1.c: New testcase.

From-SVN: r227220
2015-08-26 13:38:40 +00:00
Matthew Wahab
e656fbc820 arm-arches.def: Replace single value flags with an initializer built from ARM_FSET_MAKE_CPU1.
2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-arches.def: Replace single value flags with
	an initializer built from ARM_FSET_MAKE_CPU1.
	* config/arm/arm-cores.def: Likewise.
	* config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
	derivation from the ARM_CORE macro definition, use the given value
	instead.
	(all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
	ARM_ARCH macro definition, use the given value instead.

From-SVN: r227219
2015-08-26 13:33:54 +00:00
Matthew Wahab
23b9ccbe5b arm-builtins.c (def_mbuiltin): Test all flags in a feature set.
2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
	feature set.
	(struct builtin_description): Replace field mask with field
	features.
	(IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
	(IWMMXT2_BUILTIN): Likewise.
	(IWMMXT2_BUILTIN2): Likewise.
	(FP_BUILTIN): Likewise.
	(CRC32_BUILTIN): Likewise.
	(CRYPTO_BUILTIN): Likewise.
	(iwmmx_mbuiltin): Likewise.
	(iwmmx2_mbuiltin): Likewise.
	(arm_init_iwmmxt_builtins): Likewise. Also, update for change to
	struct builtin_description.

From-SVN: r227218
2015-08-26 13:27:03 +00:00
Matthew Wahab
a1c54ebfb7 arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
	(struct builtin_description): Change type of mask to unsigned
	long.
	* config/arm/arm-protos.h (insn_flags): Declare as type
	arm_feature_set.
	(tune_flags): Likewise.
	* config/arm/arm.c (feature_count): New.
	(insn_flags): Define as type arm_feature_set.
	(tune_flags): Likewise.
	(struct processors): Define field flags as type arm_feature_set.
	(all_cores): Update for change to struct processors.
	(all_architectures): Likewise.
	(arm_option_check_internal): Use arm_feature_set and ARM_FSET
	macros.
	(arm_option_override_internal): Likewise.
	(arm_option_override): Likewise.

From-SVN: r227217
2015-08-26 13:20:18 +00:00
Jiong Wang
4ecade433a [AArch64][TLSIE][1/2] Rename test source file for reuse
2015-08-26  Jiong Wang  <jiong.wang@arm.com>

gcc/testsuite/
	* gcc.target/aarch64/tlsle_1.x: Rename to tls_1.x
	* gcc.target/aarch64/aarch64/tlsle12_1.c: Update source file name.
	* gcc.target/aarch64/aarch64/tlsle24_1.c: Likewise.
	* gcc.target/aarch64/aarch64/tlsle32_1.c: Likewise.

From-SVN: r227216
2015-08-26 13:16:19 +00:00
Jiong Wang
cbf5629ef1 [AArch64][TLSLE][3/3] Implement local executable mode for all memory model
2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>
gcc/
	* config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
	tls size for tiny, small, large memory model.
	(aarch64_load_symref_appropriately): Support new symbol types.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_tls_symbol): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
	(aarch64_symbol_type): Likewise.
	* config/aarch64/aarch64.md (tlsle): Deleted.
	(tlsle12_<mode>): New define_insn.
	(tlsle24_<mode>): Likewise.
	(tlsle32_<mode>): Likewise.
	(tlsle48_<mode>): Likewise.
	* doc/sourcebuild.texi (AArch64-specific attributes): Document
	"aarch64_tlsle32".

gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_aarch64_tlsle32):
	New test directive.
	* gcc.target/aarch64/tlsle_1.x: New test source.
	* gcc.target/aarch64/tlsle12_1.c: New testcase.
	* gcc.target/aarch64/tlsle24_1.c: Likewise.
	* gcc.target/aarch64/tlsle32_1.c: Likewise.

From-SVN: r227215
2015-08-26 13:09:35 +00:00
Matthew Wahab
427388a484 arm-protos.h (FL_NONE): New.
2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-protos.h (FL_NONE): New.
	(FL_ANY): New.
	(arm_feature_set): New.
	(ARM_FSET_MAKE): New.
	(ARM_FSET_MAKE_CPU1): New.
	(ARM_FSET_MAKE_CPU2): New.
	(ARM_FSET_CPU1): New.
	(ARM_FSET_CPU2): New.
	(ARM_FSET_EMPTY): New.
	(ARM_FSET_ANY): New.
	(ARM_FSET_HAS_CPU1): New.
	(ARM_FSET_HAS_CPU2): New.
	(ARM_FSET_HAS_CPU): New.
	(ARM_FSET_ADD_CPU1): New.
	(ARM_FSET_ADD_CPU2): New.
	(ARM_FSET_DEL_CPU1): New.
	(ARM_FSET_DEL_CPU2): New.
	(ARM_FSET_UNION): New.
	(ARM_FSET_INTER): New.
	(ARM_FSET_XOR): New.
	(ARM_FSET_EXCLUDE): New.
	(AFM_FSET_IS_EMPTY): New.
	(ARM_FSET_CPU_SUBSET): New.

From-SVN: r227214
2015-08-26 13:04:34 +00:00
Jiong Wang
d18ba28414 [AArch64][TLSLE][2/3] Rename SYMBOL_TLSLE to SYMBOL_TLSLE24
2015-08-26  Jiong Wang  <jiong.wang@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
	SYMBOL_TLSLE to SYMBOL_TLSLE24.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Likewise.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_symbol): Likewise.

From-SVN: r227213
2015-08-26 13:01:56 +00:00
Jiong Wang
5eee3c3413 [AArch64][TLSLE][1/3] Add the option "-mtls-size"
2015-08-26  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64.opt (mtls-size): New entry.
  * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
  (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
  * doc/invoke.texi (AArch64 Options): Document -mtls-size.

From-SVN: r227212
2015-08-26 12:58:52 +00:00
Matthew Wahab
5e2d7d0d83 arm-cores.def: Add FL_FOR_ARCH flag for each ARM_CORE entry.
2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
	ARM_CORE entry.  Fix some white-space.
	* gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
	ARM_CORE definition.

From-SVN: r227211
2015-08-26 12:55:15 +00:00
Francois-Xavier Coudert
ed019753cb re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument)
PR fortran/29600

	* Makefile.am: Add generated/shape_i{1,2}.c
	* Makefile.in: Regenerate.
	* generated/shape_i1.c: New generated file.
	* generated/shape_i2.c: New generated file.
	* generated/shape_i4.c: Regenerate.
	* generated/shape_i8.c: Regenerate.
	* generated/shape_i16.c: Regenerate.
	* gfortran.map (GFORTRAN_1.7): Add _gfortran_shape_{1,2}.
	* m4/shape.m4: Fix parameter type.

	* gfortran.dg/shape_8.f90: New test.

From-SVN: r227210
2015-08-26 12:37:42 +00:00
Francois-Xavier Coudert
485adf79b5 libgfortran.h (show_variables): Remove prototype.
* libgfortran.h (show_variables): Remove prototype.
	* runtime/environ.c (print_spaces, var_source, show_integer,
	show_boolean, show_sep, show_string): Remove functions.
	* runtime/main.c (init): Remove dead code.

From-SVN: r227208
2015-08-26 06:34:05 +00:00
Naveen H.S
3540164033 fold-const.c (fold_binary_loc): Move Optimize root(x)*root(y) as root(x*y) to match.pd.
2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move Optimize 
	root(x)*root(y)	as root(x*y) to match.pd.
	Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
	Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
	Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
	Move Optimize x/expN(y) into x*expN(-y) to match.pd.

	* match.pd (mult (root:s @0) (root:s @1)): New simplifier.
	(mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
	(mult (exps:s @0) (exps:s @1)) : New simplifier.
	(rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
	(rdiv @0 (exps:s @1)) : New simplifier.

From-SVN: r227207
2015-08-26 03:39:17 +00:00
GCC Administrator
6031a5e32c Daily bump.
From-SVN: r227206
2015-08-26 00:16:12 +00:00
Hans-Peter Nilsson
7ce9cf39a4 configure.ac: Only compile with -fPIC if the target supports it.
* configure.ac: Only compile with -fPIC if the target
	supports it.
	* configure: Regenerate.

From-SVN: r227203
2015-08-25 23:32:06 +00:00
Ian Lance Taylor
fd1b493945 compiler: Disallow use of unary ^ on booleans.
Fixes golang/go#11529.
    
    Reviewed-on: https://go-review.googlesource.com/13790

From-SVN: r227201
2015-08-25 23:05:15 +00:00
Joseph Myers
de26e2393a Fix build for targets not defining EXTRA_SPECS.
* gcc.c (driver::finalize): Only assign to extra_specs if
	[EXTRA_SPECS].

From-SVN: r227194
2015-08-25 22:20:49 +01:00
Ian Lance Taylor
387b37c1ac compiler: Accept numeric literals with leading zeroes.
When a numeric literal with leading zeroes was seen in the parser, it
    would only be accepted if it were a valid hex or octal literal.  Any
    invalid numeric literal would be split up into multiple tokens: the
    valid hex/octal literal followed by the rest of the characters.
    Instead, when scanning a numeric literal with leading zeroes, always
    accept the number and give an appropriate error if the accepted number
    does not fit in the expected base.
    
    Fixes golang/go#11532, golang/go#11533.
    
    Reviewed-on: https://go-review.googlesource.com/13791

From-SVN: r227193
2015-08-25 21:17:47 +00:00
Ian Lance Taylor
60c47c0073 compiler: Allow string slices with start index == length.
Avoid an off-by-one error when checking the start index of a string
    slice by allowing the start index to be the string length instead
    of the string length - 1.
    
    Fixes golang/go#11522.
    
    Reviewed-on: https://go-review.googlesource.com/13030

From-SVN: r227191
2015-08-25 20:31:51 +00:00
Marek Polacek
c316b5e4f1 re PR middle-end/67330 (ICE handling weak attributes)
PR middle-end/67330
	* varasm.c (declare_weak): Return after giving an error.

	* c-common.c (handle_weak_attribute): Don't check whether the
	visibility can be changed here.

	* gcc.dg/weak/weak-18.c: New test.

From-SVN: r227190
2015-08-25 20:28:59 +00:00
François Dumont
630a286ab6 re PR libstdc++/60519 (Debug mode should check comparators for irreflexivity)
2015-08-24  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/60519
	* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
	New enum entry.
	* include/debug/functions.h (_Irreflexive_checker): New.
	(__is_irreflexive, __is_irreflexive_pred): New.
	* include/debug/macros.h
	(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
	macros.
	(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
	macros limited to post-C++11 mode.
	* include/debug/debug.h
	(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
	New macros, use latter.
	(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
	Likewise.
	* include/bits/stl_algo.h
	(partial_sort_copy): Add irreflexive debug check.
	(partial_sort_copy): Likewise.
	(lower_bound): Likewise.
	(upper_bound): Likewise.
	(equal_range): Likewise.
	(binary_search): Likewise.
	(inplace_merge): Likewise.
	(includes): Likewise.
	(next_permutation): Likewise.
	(prev_permutation): Likewise.
	(is_sorted_until): Likewise.
	(minmax_element): Likewise.
	(partial_sort): Likewise.
	(nth_element): Likewise.
	(sort): Likewise.
	(merge): Likewise.
	(stable_sort): Likewise.
	(set_union): Likewise.
	(set_intersection): Likewise.
	(set_difference): Likewise.
	(set_symmetric_difference): Likewise.
	(min_element): Likewise.
	(max_element): Likewise.
	* include/bits/stl_algobase.h
	(lower_bound): Likewise.
	(lexicographical_compare): Likewise.
	* include/bits/stl_heap.h
	(push_heap): Likewise.
	(pop_heap): Likewise.
	(make_heap): Likewise.
	(sort_heap): Likewise.
	(is_heap_until): Likewise.
	* testsuite/25_algorithms/lexicographical_compare/debug/
	irreflexive_neg.cc: New.
	* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
	* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
	New.

From-SVN: r227189
2015-08-25 20:27:03 +00:00
David Malcolm
9376dd63e6 Support embedding the driver in-process within libgccjit
gcc/ChangeLog:
	* gcc-main.c (main): Add params to driver ctor.
	* gcc.c (class env_manager): New.
	(env): New global.
	(env_manager::init): New.
	(env_manager::get): New.
	(env_manager::xput): New.
	(env_manager::restore): New.
	Poison getenv and putenv.
	(DEFAULT_TARGET_SYSTEM_ROOT): New.
	(target_system_root): Update initialization to use
	DEFAULT_TARGET_SYSTEM_ROOT.
	(struct spec_list): Add field "default_ptr".
	(INIT_STATIC_SPEC): Initialize new field "default_ptr".
	(init_spec): Likewise.
	(set_spec): Clear field "default_ptr".
	(read_specs): Free "spec" and "buffer".
	(xputenv): Reimplement in terms of env_manager.
	(process_command): Replace ::getenv calls with calls to the
	env_manager singleton.
	(process_brace_body): Free string in three places.
	(driver::driver): New.
	(driver::~driver): New.
	(used_arg): Convert from a function to...
	(class used_arg_t): ...this class, and...
	(used_arg): ...this new global instance.
	(used_arg_t::finalize): New function.
	(getenv_spec_function): Add "const" to local "value".  Replace
	::getenv call with call to the env_manager singleton.
	(path_prefix_reset): New function.
	(driver::finalize): New function.
	* gcc.h (driver::driver): New.
	(driver::~driver): New.
	(driver::finalize): New.

gcc/jit/ChangeLog:
	* docs/cp/topics/contexts.rst
	(gccjit::context::set_bool_use_external_driver): New.
	* docs/internals/test-hello-world.exe.log.txt: Update.
	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_5): New.
	* docs/topics/contexts.rst
	(gcc_jit_context_set_bool_use_external_driver): New.
	* jit-common.h (enum inner_bool_option): Add
	INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
	* jit-playback.c (gcc_driver_name): New global.
	(gcc:jit::playback::context::invoke_driver): Split out second
	half into...
	(gcc::jit::playback::context::invoke_embedded_driver): ...this new
	function, and...
	(gcc::jit::playback::context::invoke_external_driver): ...this new
	function.
	* jit-playback.h
	(gcc::jit::playback::context::get_inner_bool_option): New.
	(gcc::jit::playback::context::invoke_embedded_driver): New.
	(gcc::jit::playback::context::invoke_external_driver): New.
	* jit-recording.c (inner_bool_option_reproducer_strings):
	Add entry for INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
	* libgccjit++.h
	(gccjit::context::set_bool_use_external_driver): New.
	* libgccjit.c (gcc_jit_context_set_bool_use_external_driver): New.
	* libgccjit.h (gcc_jit_context_set_bool_use_external_driver): New.
	(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_use_external_driver):
	New.
	* libgccjit.map (LIBGCCJIT_ABI_5): New.
	* notes.txt: Show invocation of embedded copy of driver.
	* docs/internals/test-hello-world.exe.log.txt: Update

gcc/testsuite/ChangeLog:
	* jit.dg/test-error-pr63969-missing-driver.c: Add call to
	gcc_jit_context_set_bool_use_external_driver.

From-SVN: r227188
2015-08-25 20:25:05 +00:00