Commit Graph

149828 Commits

Author SHA1 Message Date
Maxim Ostapenko
949cc52d0c LOCAL_PATCHES: New file.
libsanitizer/

	* LOCAL_PATCHES: New file.

From-SVN: r242479
2016-11-16 13:16:47 +02:00
Maxim Ostapenko
511c8687a8 re PR sanitizer/78307 (missing symbols in libubsan without changing the soname)
PR sanitizer/78307
	* ubsan/ubsan_handlers.cc (__ubsan_handle_cfi_bad_icall): New function.
	( __ubsan_handle_cfi_bad_icall_abort): Likewise. 
	* ubsan/ubsan_handlers.h (struct CFIBadIcallData): New type.
	* ubsan/ubsan_handlers_cxx.cc (__ubsan_handle_cfi_bad_type): New
	function.
	(__ubsan_handle_cfi_bad_type_abort): Likewise.
	* ubsan/ubsan_handlers_cxx.h (struct CFIBadTypeData): New type.
	(__ubsan_handle_cfi_bad_type): Export function.
	(__ubsan_handle_cfi_bad_type_abort): Likewise.
	* HOWTO_MERGE: Update documentation.

From-SVN: r242478
2016-11-16 13:13:19 +02:00
Richard Sandiford
024f701ca1 Optimise CONCAT handling in emit_group_load
The CONCAT handling in emit_group_load chooses between doing
an extraction from a single component or forcing the whole
thing to memory and extracting from there.  The condition for
the former (more efficient) option was:

	  if ((bytepos == 0 && bytelen == slen0)
	      || (bytepos != 0 && bytepos + bytelen <= slen))

On the one hand this seems dangerous, since the second line
allows bit ranges that start in the first component and leak
into the second.  On the other hand it seems strange to allow
references that start after the first byte of the second
component but not those that start after the first byte
of the first component.  This led to a pessimisation of
things like gcc.dg/builtins-54.c for hppa64-hp-hpux11.23.

This patch simply checks whether the reference is contained
within a single component.  It also makes sure that we do
an extraction on anything that doesn't span the whole
component (even if it's constant).

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* expr.c (emit_group_load_1): Tighten check for whether an
	access involves only one operand of a CONCAT.  Use extract_bit_field
	for constants if the bit range does span the whole operand.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242477
2016-11-16 10:21:22 +00:00
Richard Sandiford
0e0af68921 Fix handling of unknown sizes in rtx_addr_can_trap_p
If the size passed in to rtx_addr_can_trap_p was zero, the frame
handling would get the size from the mode instead.  However, this
too can be zero if the mode is BLKmode, i.e. if we have a BLKmode
memory reference with no MEM_SIZE (which should be rare these days).
This meant that the conditions for a 4-byte access at offset X were
stricter than those for an access of unknown size at offset X.

This patch checks whether the size is still zero, as the
SYMBOL_REF handling does.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242476
2016-11-16 10:20:23 +00:00
Richard Sandiford
29220523c1 Fix nb_iterations_estimate calculation in tree-vect-loop.c
vect_transform_loop has to reduce three iteration counts by
the vectorisation factor: nb_iterations_upper_bound,
nb_iterations_likely_upper_bound and nb_iterations_estimate.
All three are latch execution counts rather than loop body
execution counts.  The calculations were taking that into
account for the first two, but not for nb_iterations_estimate.

This patch updates the way the calculations are done to fix
this and to add a bit more commentary about what is going on.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* tree-vect-loop.c (vect_transform_loop): Protect the updates of
	all three iteration counts with an any_* test.  Use a single update
	for each count.  Fix the calculation of nb_iterations_estimate.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242475
2016-11-16 10:18:25 +00:00
Richard Sandiford
3623815a51 Fix pdp11 build
Needed this to test the effect of the SVE patches on other targets.

gcc/
	* config/pdp11/pdp11.c: Include dbxout.h.

From-SVN: r242474
2016-11-16 10:06:44 +00:00
Richard Sandiford
f857b8ef2f Fix missing brackets in arc.c
The old code still built thanks to the brackets in the definition
of XVECEXP.

gcc/
	* config/arc/arc.c (arc_loop_hazard): Add missing brackets.

From-SVN: r242473
2016-11-16 10:05:04 +00:00
Senthil Kumar Selvaraj
4786fabecc Fix bogus failure of Wlogical-op-1.c for avr
The test assumes short is always smaller than int, and therefore does not 
expect a warning when the logical operands are of type short and int.

This isn't true for the avr - shorts and ints are of the same size, and
therefore the warning triggers for the above case also.

Fix by explicitly typedef'ing __INT32_TYPE for int and __INT16_TYPE__ for short
if the target's int size is less than 4 bytes.

gcc/testsuite/
2016-11-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* c-c++-common/Wlogical-op-1.c: Use __INT{16,32}_TYPE__ instead
	of {short,int} if __SIZEOF_INT__ is less than 4 bytes.

From-SVN: r242472
2016-11-16 09:28:40 +00:00
Kyrylo Tkachov
b6adf1c5fb [ARM] PR target/78364: Add proper restrictions to zero and sign_extract patterns operands
PR target/78364
	* config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the
	proper ranges for an SBFX instruction.
	(extzv_t2): Likewise for UBFX.

From-SVN: r242471
2016-11-16 09:02:18 +00:00
Richard Biener
510d73a035 re PR tree-optimization/78348 ([7 REGRESSION] 15% performance drop for coremark-pro/nnet-test after r242038)
2016-11-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78348
	* tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMMOVE.
	(generate_memcpy_builtin): Honor PKIND_MEMCPY on the partition.
	(classify_partition): Set PKIND_MEMCPY if dependence analysis
	revealed no dependency, PKIND_MEMMOVE otherwise.

	* gcc.dg/tree-ssa/ldist-24.c: New testcase.

From-SVN: r242470
2016-11-16 08:42:20 +00:00
Jakub Jelinek
1705cebd79 re PR sanitizer/77823 (ICE: in ubsan_encode_value, at ubsan.c:137 with -fsanitize=undefined and vector types)
PR sanitizer/77823
	* ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if
	it points to non-NULL tree, use it instead of ubsan_create_data.
	(instrument_si_overflow): Handle vector signed integer overflow
	checking.
	* ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument.
	* tree-vrp.c (simplify_internal_call_using_ranges): Punt for
	vector IFN_UBSAN_CHECK_*.
	* internal-fn.c (expand_addsub_overflow): Add DATAP argument,
	pass it through to ubsan_build_overflow_builtin.
	(expand_neg_overflow, expand_mul_overflow): Likewise.
	(expand_vector_ubsan_overflow): New function.
	(expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB,
	expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics.
	(expand_arith_overflow): Adjust expand_*_overflow callers.

	* c-c++-common/ubsan/overflow-vec-1.c: New test.
	* c-c++-common/ubsan/overflow-vec-2.c: New test.

From-SVN: r242469
2016-11-16 09:28:50 +01:00
Waldemar Brodkorb
00178b98eb re PR libgcc/68468 (frv/bfin FDPIC toolchain build error)
PR libgcc/68468
	* unwind-dw2-fde-dip.c: Fix build on FDPIC targets.

From-SVN: r242468
2016-11-16 08:01:56 +01:00
Marek Polacek
ed66ba9969 * g++.dg/cpp1z/init-statement6.C: Rename a function.
From-SVN: r242467
2016-11-16 01:14:57 +00:00
GCC Administrator
bb00603d5c Daily bump.
From-SVN: r242466
2016-11-16 00:16:14 +00:00
Matthias Klose
648e68d5fc install.texi: Remove references to java/libjava.
2016-11-16  Matthias Klose  <doko@ubuntu.com>

        * doc/install.texi: Remove references to java/libjava.

From-SVN: r242463
2016-11-15 23:42:33 +00:00
Jerry DeLisle
5d70ab07b6 [multiple changes]
2016-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libgfortran/51119
	* Makefile.am: Add new optimization flags matmul.
	* Makefile.in: Regenerate.
	* m4/matmul.m4: For the case of all strides = 1, implement a
	fast blocked matrix multiply. Fix some whitespace.
	* generated/matmul_c10.c: Regenerate.
	* generated/matmul_c16.c: Regenerate.
	* generated/matmul_c4.c: Regenerate.
	* generated/matmul_c8.c: Regenerate.
	* generated/matmul_i1.c: Regenerate.
	* generated/matmul_i16.c: Regenerate.
	* generated/matmul_i2.c: Regenerate.
	* generated/matmul_i4.c: Regenerate.
	* generated/matmul_i8.c: Regenerate.
	* generated/matmul_r10.c: Regenerate.
	* generated/matmul_r16.c: Regenerate.
	* generated/matmul_r4.c: Regenerate.
	* generated/matmul_r8.c: Regenerate.

2016-11-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libgfortran/51119
	* gfortran.dg/matmul_12.f90: New test case.

From-SVN: r242462
2016-11-15 23:03:00 +00:00
Kugan Vivekanandarajah
fd0477ca84 tree-ssa-coalesce.c (register_default_def): Remove register_ssa_partition.
gcc/ChangeLog:

2016-11-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* tree-ssa-coalesce.c (register_default_def): Remove register_ssa_partition.
	(create_outofssa_var_map): Likewise.
	* tree-ssa-live.c (register_ssa_partition_check): Remove.
	* tree-ssa-live.h (register_ssa_partition): Likewise.

From-SVN: r242461
2016-11-15 22:40:11 +00:00
Bernd Edlinger
a8dd133793 genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects.
2016-11-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects.
        Clear ATTR_CURR_SIMPLIFIED_P for re-used binary rtx objects.
        Use DEF_ATTR_STRING for string arguments.  Use RTL_HASH for
        integer arguments.  Only set ATTR_PERMANENT_P on newly hashed
        rtx when all sub-rtx are also permanent.
        (attr_eq): Simplify.
        (attr_copy_rtx): Remove.
        (make_canonical, get_attr_value): Use attr_equal_p.
        (copy_boolean): Rehash NOT.
        (simplify_test_exp_in_temp,
        optimize_attrs): Remove call to attr_copy_rtx.
        (attr_alt_intersection, attr_alt_union,
        attr_alt_complement, mk_attr_alt): Rehash EQ_ATTR_ALT.
        (make_automaton_attrs): Use attr_eq.

From-SVN: r242460
2016-11-15 22:10:37 +00:00
Matthias Klose
839984f404 install.texi: Remove references to java/libjava.
2016-11-15  Matthias Klose  <doko@ubuntu.com>

        * doc/install.texi: Remove references to java/libjava.
        * doc/invoke.texi: Likewise.
        * doc/standards.texi: Likewise.

From-SVN: r242456
2016-11-15 21:00:32 +00:00
Matthias Klose
97a2feb66d install.texi: Remove references to java/libjava.
2016-11-15  Matthias Klose  <doko@ubuntu.com>

        * doc/install.texi: Remove references to java/libjava.
        * doc/sourcebuild.texi: Likewise.

From-SVN: r242455
2016-11-15 20:42:47 +00:00
Jonathan Wakely
27b3b3f4e6 PR 59406 note that FNV hash functions are incorrect
PR libstdc++/59406
	* include/bits/functional_hash.h: Add comment noting difference from
	FNV-1a.
	* include/tr1/functional_hash.h: Likewise.
	* libsupc++/hash_bytes.cc: Likewise.

From-SVN: r242454
2016-11-15 20:17:39 +00:00
Jonathan Wakely
3663671a13 Use existing helper for new std::string constructor
* include/bits/basic_string.h: Reuse _If_sv alias template for new
	constructor.

From-SVN: r242453
2016-11-15 19:32:52 +00:00
Jonathan Wakely
6ae2ae3b84 Make std::tuple_size<cv T> SFINAE-friendly (LWG 2770)
* doc/xml/manual/intro.xml: Document LWG 2770 status. Remove entries
	for 2742 and 2748.
	* doc/html/*: Regenerate.
	* include/std/utility (__tuple_size_cv_impl): New helper to safely
	detect tuple_size<T>::value, as per LWG 2770.
	(tuple_size<cv T>): Adjust partial specializations to derive from
	__tuple_size_cv_impl.
	* testsuite/20_util/tuple/cv_tuple_size.cc: Test SFINAE-friendliness.

From-SVN: r242452
2016-11-15 19:32:44 +00:00
Mark Wielaard
168126e598 libiberty: demangler crash with missing :? or fold expression component.
When constructing an :? or fold expression that requires a third
expression only the first and second were explicitly checked to
not be NULL. Since the third expression is also required in these
constructs it needs to be explicitly checked and rejected when missing.
Otherwise the demangler will crash once it tries to d_print the
NULL component. Added two examples to demangle-expected of strings
that would crash before this fix.

Found by American Fuzzy Lop (afl) fuzzer.

From-SVN: r242451
2016-11-15 19:31:59 +00:00
Mark Wielaard
0d0bfbf47c libiberty: Fix some demangler crashes caused by reading past end of input.
In various situations the cplus_demangle () function could read past the
end of input causing crashes. Add checks in various places to not advance
the demangle string location and fail early when end of string is reached.
Add various examples of input strings to the testsuite that would crash
test-demangle before the fixes.

Found by using the American Fuzzy Lop (afl) fuzzer.

libiberty/ChangeLog:

       * cplus-dem.c (demangle_signature): After 'H', template function,
       no success and don't advance position if end of string reached.
       (demangle_template): After 'z', template name, return zero on
       premature end of string.
       (gnu_special): Guard strchr against searching for zero characters.
       (do_type): If member, only advance mangled string when 'F' found.
       * testsuite/demangle-expected: Add examples of strings that could
       crash the demangler by reading past end of input.

From-SVN: r242450
2016-11-15 19:31:50 +00:00
Jonathan Wakely
6f959acccb Adjust pretty printer test for variant<T&>
* testsuite/libstdc++-prettyprinters/cxx17.cc: Adjust test for
	variant<T&>.

From-SVN: r242449
2016-11-15 19:29:07 +00:00
Uros Bizjak
48aef8e219 funcspec-56.inc: New file.
* gcc.target/i386/funcspec-56.inc: New file.
	* gcc.target/i386.funcspec-5.c: Include funcspec-56.inc.  Remove
	common 32-bit and 64-bit function specific options.
	* gcc.target/i386.funcspec-6.c: Ditto.

From-SVN: r242448
2016-11-15 20:26:41 +01:00
Richard Sandiford
240930c41f Fix instances of gen_rtx_REG (VOIDmode, ...)
Several definitions of INCOMING_RETURN_ADDR_RTX used
gen_rtx_REG (VOIDmode, ...), which with later patches
would trip an assert.  This patch converts them to use
Pmode instead.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
	of VOIDmode.
	* config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242447
2016-11-15 18:30:31 +00:00
Richard Sandiford
7eb874201e Use MEM_SIZE rather than GET_MODE_SIZE in dce.c
Using MEM_SIZE is more general, since it copes with cases where
targets are forced to use BLKmode references for whatever reason.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* dce.c (check_argument_store): Pass the size instead of
	the memory reference.
	(find_call_stack_args): Pass MEM_SIZE to check_argument_store.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242446
2016-11-15 18:18:08 +00:00
Richard Sandiford
231314e360 Use simplify_gen_binary in canon_rtx
After simplifying the operands of a PLUS, canon_rtx checked only
for cases in which one of the simplified operands was a constant,
falling back to gen_rtx_PLUS otherwise.  This left the PLUS in a
non-canonical order if one of the simplified operands was
(plus (reg R1) (const_int X)); we'd end up with:

       (plus (plus (reg R1) (const_int Y)) (reg R2))

rather than:

       (plus (plus (reg R1) (reg R2)) (const_int Y))

Fixing this exposed new DSE opportunities on spu-elf in
gcc.c-torture/execute/builtins/strcat-chk.c but otherwise
it doesn't seem to have much practical effect.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* alias.c (canon_rtx): Use simplify_gen_binary.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242445
2016-11-15 18:16:59 +00:00
Richard Sandiford
3712c7a301 Add a load_extend_op wrapper
LOAD_EXTEND_OP only applies to scalar integer modes that are narrower
than a word.  However, callers weren't consistent about which of these
checks they made beforehand, and also weren't consistent about whether
"smaller" was based on (bit)size or precision (IMO it's the latter).
This patch adds a wrapper to try to make the macro easier to use.

LOAD_EXTEND_OP is often used to disable transformations that aren't
beneficial when extends from memory are free, so being stricter about
the check accidentally exposed more optimisation opportunities.

"SUBREG_BYTE (...) == 0" and subreg_lowpart_p are implied by
paradoxical_subreg_p, so the patch also removes some redundant tests.

The patch doesn't change reload, since different checks could have
unforeseen consequences.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* rtl.h (load_extend_op): Declare.
	* rtlanal.c (load_extend_op): New function.
	(nonzero_bits1): Use it.
	(num_sign_bit_copies1): Likewise.
	* cse.c (cse_insn): Likewise.
	* fold-const.c (fold_single_bit_test): Likewise.
	(fold_unary_loc): Likewise.
	* fwprop.c (free_load_extend): Likewise.
	* postreload.c (reload_cse_simplify_set): Likewise.
	(reload_cse_simplify_operands): Likewise.
	* combine.c (try_combine): Likewise.
	(simplify_set): Likewise.  Remove redundant SUBREG_BYTE and
	subreg_lowpart_p checks.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242444
2016-11-15 18:13:56 +00:00
Richard Sandiford
ba3c3dc070 Fix simplify_shift_const_1 handling of vector shifts
simplify_shift_const_1 handles both shifts of scalars by scalars
and shifts of vectors by scalars.  For vectors this means that
each element is shifted by the same amount.

However:

(a) the two cases weren't always distinguished, so we'd try
        things for vectors that only made sense for scalars.

(b) a lot of the range and bitcount checks were based on the
        bitsize or precision of the full shifted operand, rather
        than the mode of each element.

Fixing (b) accidentally exposed more optimisation opportunities,
although that wasn't the point of the patch.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* combine.c (simplify_shift_const_1): Use the number of bits
	in the inner mode to determine the range of the shift.
	When handling shifts of vectors, skip any rules that apply
	only to scalars.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242442
2016-11-15 17:57:53 +00:00
Richard Sandiford
89e64bc030 Move misplaced assignment in num_sign_bit_copies1
The old assignment to bitwidth was before we handled VOIDmode with:

      if (mode == VOIDmode)
        mode = GET_MODE (x);

so when VOIDmode was specified we would always use:

      if (bitwidth < GET_MODE_PRECISION (GET_MODE (x)))
        {
          num0 = cached_num_sign_bit_copies (x, GET_MODE (x),
                                             known_x, known_mode, known_ret);
          return MAX (1,
                      num0 - (int) (GET_MODE_PRECISION (GET_MODE (x)) - bitwidth));
        }

For a zero bitwidth this always returns 1 (which is the most
pessimistic result).

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after
	handling VOIDmode.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242440
2016-11-15 17:54:20 +00:00
Matthias Klose
8e4d2ca469 Makefile.def: Remove references to GCJ.
2016-11-15  Matthias Klose  <doko@ubuntu.com>

        * Makefile.def: Remove references to GCJ.
        * Makefile.tpl: Likewise.
        * Makefile.in: Regenerate.

From-SVN: r242439
2016-11-15 17:29:12 +00:00
Matthias Klose
2b60167833 - Revert last commit, restore the regenerated files aclocal.m4 and configure
From-SVN: r242438
2016-11-15 17:27:39 +00:00
Tim Shen
7b277e8b46 variant: Remove variant<T&>...
* include/std/variant: Remove variant<T&>, variant<void>, variant<> support
	to rebase on the post-Issaquah design.
	* testsuite/20_util/variant/compile.cc: Likewise.

From-SVN: r242437
2016-11-15 17:26:59 +00:00
Martin Jambor
18d2ada84b libgomp testsuite: add missing map clauses
* testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
	mapping clauses to target constructs.
	* testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.


Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>

From-SVN: r242436
2016-11-15 20:14:32 +03:00
Jakub Jelinek
5a65a911cc decomp14.C: New test.
* g++.dg/cpp1z/decomp14.C: New test.
	* g++.dg/cpp1z/decomp15.C: New test.
	* g++.dg/cpp1z/decomp16.C: New test.

From-SVN: r242435
2016-11-15 18:06:43 +01:00
Jakub Jelinek
a0f5b98752 decl.c (cp_finish_decomp): For DECL_NAMESPACE_SCOPE_P decl, set DECL_ASSEMBLER_NAME.
* decl.c (cp_finish_decomp): For DECL_NAMESPACE_SCOPE_P decl,
	set DECL_ASSEMBLER_NAME.
	* parser.c (cp_parser_decomposition_declaration): Likewise
	if returning error_mark_node.
	* mangle.c (mangle_decomp): New function.
	* cp-tree.h (mangle_decomp): New declaration.

	* g++.dg/cpp1z/decomp13.C: New test.

From-SVN: r242434
2016-11-15 18:05:23 +01:00
Matthias Klose
84c1b9d3d4 config-ml.in: Remove references to GCJ.
<toplevel>

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* config-ml.in: Remove references to GCJ.
	* configure.ac: Likewise.
	* configure: Regenerate.

config/

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	multi.m4: Don't set GCJ.

gcc/

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Remove references to gcj/libjava.
	* doc/invoke.texi: Likewise.

*/ (where necessary)

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* configure: Regenerate.

From-SVN: r242433
2016-11-15 16:34:02 +00:00
Jason Merrill
944608029f PR c++/78358 - tuple decomposition decltype
* semantics.c (finish_decltype_type): Strip references for a tuple
	decomposition.
	* cp-tree.h (DECL_DECOMPOSITION_P): False for non-variables.

From-SVN: r242432
2016-11-15 11:32:38 -05:00
Jeff Law
435fd40738 tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded parameter.
* tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded
	parameter.  Callers changed.
	(check-subpath_and_update_thread_path): Extracted from
	fsm_find_control_statement_thread_paths.
	(handle_phi, handle_assignment, handle_assignment_p): Likewise.
	(handle_phi, handle_assignment): Allow any constant node, not
	just INTEGER_CST.

From-SVN: r242431
2016-11-15 09:16:49 -07:00
Jakub Jelinek
5a0e788940 * g++.dg/cpp1y/auto-fn33.C (main): Turn // error: ... into dg-bogus.
From-SVN: r242430
2016-11-15 16:54:29 +01:00
Uros Bizjak
22b15758c0 ChangeLog: Fix ChangeLog entry.
* gcc/ChangeLog: Fix ChangeLog entry.
	* gcc/c/ChangeLog: Ditto.
	* gcc/c-family/ChangeLog: Ditto.
	* gcc/cp/ChangeLog: Ditto.

From-SVN: r242429
2016-11-15 16:43:40 +01:00
Claudiu Zissulescu
d64af69fd5 [ARC] [libgcc] Fix defines
libgcc/
2016-11-15  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/lib1funcs.S (__mulsi3): Use feature defines instead
	of checking for cpus.
	(__umulsidi3, __umulsi3_highpart, __udivmodsi4, __divsi3)
	(__modsi3, __clzsi2): Likewise.

From-SVN: r242428
2016-11-15 16:42:17 +01:00
Jakub Jelinek
0c8a8fe248 re PR c++/71988 (ICE in dump_simple_decl (gcc/cp/error.c:965))
PR c++/71988
	* g++.dg/cpp0x/constexpr-71988.C: New test.

From-SVN: r242426
2016-11-15 16:21:49 +01:00
Claudiu Zissulescu
f9ccf89916 [ARC] New option handling, refurbish multilib support.
gcc/
2016-11-15  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-arch.h: New file.
	* config/arc/arc-arches.def: Likewise.
	* config/arc/arc-cpus.def: Likewise.
	* config/arc/arc-options.def: Likewise.
	* config/arc/t-multilib: Likewise.
	* config/arc/genmultilib.awk: Likewise.
	* config/arc/genoptions.awk: Likewise.
	* config/arc/arc-tables.opt: Likewise.
	* config/arc/driver-arc.c: Likewise.
	* testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise.
	* common/config/arc/arc-common.c (arc_handle_option): Trace
	toggled options.
	* config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra
	options; check for supported cpu against arc-cpus.def file.
	(arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define
	TARGET_CPU_BUILD macro; add driver-arc.o as an extra object.
	* config/arc/arc-c.def: Add emacs local variables.
	* config/arc/arc-opts.h (processor_type): Use arc-cpus.def file.
	(FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA)
	(FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL)
	(FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines.
	(DEFAULT_arc_fpu_build): Define.
	(DEFAULT_arc_mpy_option): Define.
	* config/arc/arc-protos.h (arc_init): Delete.
	* config/arc/arc.c (arc_cpu_name): New variable.
	(arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs)
	(arc_arc700, arc_arc600, arc_arc601): New variable.
	(arc_init): Add static; remove selection of default tune value,
	cleanup obsolete error messages.
	(arc_override_options): Make use of .def files for selecting the
	right cpu and option configurations.
	* config/arc/arc.h (stdbool.h): Include.
	(TARGET_CPU_DEFAULT): Define.
	(CPP_SPEC): Remove mcpu=NPS400 handling.
	(arc_cpu_to_as): Declare.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(OPTION_DEFAULT_SPECS): Likewise.
	(ASM_DEFAULT): Remove.
	(ASM_SPEC): Use arc_cpu_to_as.
	(DRIVER_SELF_SPECS): Remove deprecated options.
	(arc_base_cpu):	Declare.
	(TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM)
	(TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu
	variable.
	(MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT.
	* config/arc/arc.md (attr_cpu): Remove.
	* config/arc/arc.opt (mno-mpy): Deprecate.
	(mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM)
	(mcpu=ARCHS): Remove.
	(mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc):
	Deprecate.
	(mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove.
	(arc_fpu): Use new defines.
	(mpy-option): Change to use numeric or string like inputs.
	* config/arc/t-arc (driver-arc.o): New target.
	(arc-cpus, t-multilib, arc-tables.opt): Likewise.
	* config/arc/t-arc-newlib: Delete.
	* config/arc/t-arc-uClibc: Renamed to t-uClibc.
	* doc/invoke.texi (ARC): Update arc options.

Fixup

From-SVN: r242425
2016-11-15 16:10:13 +01:00
Maciej W. Rozycki
2cf63121e9 MIPS/GCC: Mark trailing labels with `.insn'
gcc/
	* config/mips/mips.c (mips16_emit_constants): Emit `consttable'
	insn at the beginning of the constant pool.
	(mips_insert_insn_pseudos): New function.
	(mips_machine_reorg2): Call it.
	* config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and
	UNSPEC_INSN_PSEUDO enum values.
	(insn_pseudo, consttable): New insns.

	gcc/testsuite/
	* gcc.target/mips/insn-casesi.c: New test case.
	* gcc.target/mips/insn-pseudo-1.c: New test case.
	* gcc.target/mips/insn-pseudo-2.c: New test case.
	* gcc.target/mips/insn-pseudo-3.c: New test case.
	* gcc.target/mips/insn-pseudo-4.c: New test case.
	* gcc.target/mips/insn-tablejump.c: New test case.

From-SVN: r242424
2016-11-15 15:04:10 +00:00
Maciej W. Rozycki
2cbfb20911 MIPS/GCC/test: Implement `-mcode-readable=yes' option test
gcc/testsuite/
	* gcc.target/mips/mips.exp (mips_option_tests): Add
	`-mcode-readable=yes' array element.

From-SVN: r242423
2016-11-15 14:57:30 +00:00
Jason Merrill
fd338b1364 Allow references in constant-expressions.
* decl2.c (decl_maybe_constant_var_p): References qualify.
	* constexpr.c (non_const_var_error): Handle references.
	* init.c (constant_value_1): Always check decl_constant_var_p.
	* cp-gimplify.c (cp_fold_maybe_rvalue): Don't fold references.
	* error.c (dump_decl_name): Split out from dump_decl.

From-SVN: r242422
2016-11-15 09:55:52 -05:00