Commit Graph

142544 Commits

Author SHA1 Message Date
Eric Botcazou eae6758d2b decl.c (is_cplusplus_method): Check that the type of the first parameter (indirectly) has C++ convention too.
* gcc-interface/decl.c (is_cplusplus_method): Check that the type of
	the first parameter (indirectly) has C++ convention too.

From-SVN: r230788
2015-11-24 08:42:37 +00:00
Segher Boessenkool 7d906d07ed combine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)
Some users of is_parallel_of_n_reg_sets disregard the clobbers in a
parallel after it has returned "yes, this is a parallel of N sets and
maybe some clobbers".  But combine uses a clobber of const0_rtx to
indicate substitution failure, so this leads to disaster.

Fix this by checking for such special clobbers in is_parallel_of_n_reg_sets.


	PR rtl-optimization/68381
	* combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
	is poisoned.

From-SVN: r230786
2015-11-24 07:43:20 +01:00
Nick Clifton d2c9e8ed7a [PATCH] Fix invalid redundant extension elimination for rl78 port
* ree.c (add_removable_extension): Avoid mis-optimizing cases where
	the source/dest of the target extension require a different number of
	hard registers.
	(combine_set_extension): Remove #if 0 code.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r230785
2015-11-23 22:11:15 -07:00
Jan Hubicka 267c9702f6 * gcc.c-torture/execute/lto-tbaa-1.c: New testcase.
From-SVN: r230784
2015-11-24 03:58:47 +00:00
GCC Administrator a52a91ecf2 Daily bump.
From-SVN: r230783
2015-11-24 00:16:13 +00:00
David Edelsohn 08f1627810 Fix missing ChangeLog entry for Graphite head files fix.
From-SVN: r230780
2015-11-23 19:12:21 -05:00
Aditya Kumar 0171d98d77 fix PR68314: revert all patches touching the construction of the original schedule
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230778
2015-11-23 23:28:42 +00:00
Ian Lance Taylor 8c61286797 re PR go/68496 ([libgo] reflect test fails on Linux x86-64)
PR go/68496
    reflect: Allocate space for FFI functions returning a zero-sized type.
    
    The libffi library does not understand zero-sized types.  We represent
    them as a struct with a single field of type void.  If such a type is
    returned from a function, libffi will copy 1 byte of data.  Allocate
    space for that byte, although we won't use it.
    
    Fixes https://gcc.gnu.org/PR68496.

    Reviewed-on: https://go-review.googlesource.com/17175

From-SVN: r230776
2015-11-23 21:17:45 +00:00
David Malcolm cbd03aee24 Fix PR objc/68438 (uninitialized source ranges)
gcc/c/ChangeLog:
	PR objc/68438
	* c-parser.c (c_parser_postfix_expression): Set up source ranges
	for various Objective-C constructs: Class.name syntax,
	@selector(), @protocol(), @encode(), and [] message syntax.

gcc/testsuite/ChangeLog:
	PR objc/68438
	* objc.dg/plugin: New subdirectory.
	* objc.dg/plugin/diagnostic-test-expressions-1.m: New test file.
	* objc.dg/plugin/plugin.exp: New file, based on
	gcc.dg/plugin/plugin.exp.

From-SVN: r230775
2015-11-23 21:00:13 +00:00
Matthias Klose cd9ec14217 2015-11-23 Matthias Klose <doko@ubuntu.com>
* Imported zlib 1.2.8; merged local changes.

From-SVN: r230774
2015-11-23 20:27:57 +00:00
Aditya Kumar 4c93660449 fix PR68493: bail out when codegen_error is set
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230772
2015-11-23 19:31:00 +00:00
Aditya Kumar 36f40be012 fix PR68279: bail out when scev gets instantiated to not_known
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230771
2015-11-23 19:28:13 +00:00
Aditya Kumar 8f29e7f5ea call update_ssa once
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230770
2015-11-23 19:28:06 +00:00
Marek Polacek 78275c8bdb re PR tree-optimization/68455 (ICE: tree check: expected integer_cst, have plus_expr in decompose, at tree.h:5123)
PR tree-optimization/68455
	* tree-vrp.c (extract_range_from_binary_expr_1): Don't call
	extract_range_from_multiplicative_op_1 on symbolic ranges.

	* gcc.dg/tree-ssa/pr68455.c: New test.

From-SVN: r230768
2015-11-23 17:18:36 +00:00
Richard Henderson cde9d59626 Add uaddv4_optab and usubv4_optab
PR target/67089
    	* optabs.def (uaddv4_optab, usubv4_optab): New.
    	* internal-fn.c (expand_addsub_overflow): Use uaddv4_optab
    	and usubv4_optab in the u +- u -> u case.
    	* doc/md.texi (Standard Names): Document addv{m}4, subv{m}4,
    	mulv{m}4, uaddv{m}4, usubv{m}4, umulv{m}4.

    	* config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.

From-SVN: r230767
2015-11-23 07:55:58 -08:00
Richard Biener 3789bf8412 re PR tree-optimization/68465 (pass_lim doesn't detect identical loop entry conditions)
2015-11-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68465
	* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
	Also record equalities from multiple predecessor blocks if
	only one non-backedge exists.

	* gcc.dg/tree-ssa/ssa-fre-52.c: New testcase.

From-SVN: r230764
2015-11-23 15:21:32 +00:00
Szabolcs Nagy 78cc43a2ab [ARM] PR target/68059 libgcc should not use __write for printing fatal error
libgcc/
	PR target/68059
	* config/arm/linux-atomic-64bit.c (__write): Rename to...
	(write): ...this and fix the return type.

From-SVN: r230762
2015-11-23 15:17:55 +00:00
Kyrylo Tkachov e322d6e350 [AArch64] PR target/68363 Check that argument is real INSN in aarch64_madd_needs_nop
PR target/68363
	* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
	that are not INSN_P.

	* gcc.target/aarch64/pr68363_1.c: New test.

From-SVN: r230760
2015-11-23 14:56:03 +00:00
David Edelsohn 4d77601199 Correct graphite*.c ISL header file inclusion order.
* system.h: Don't poison calloc and strdup if USES_ISL is defined.
* graphite-dependences.c: Define USES_ISL.  Include ISL header files
after GCC header files and before graphite header files.
* graphite-dependences.c: Same.
* graphite-isl-ast-to-gimple.c: Same.
* graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-scop-detection.c: Same.
* graphite-sese-to-poly.c: Same.
* graphite.c: Same.

From-SVN: r230759
2015-11-23 09:23:59 -05:00
Bilyan Borisov 546e500c8f [AARCH64] Adding constant folding for __builtin_fmulx* with scalar 32 and 64 bit arguments
gcc/

	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): Added
	constant folding.

gcc/testsuite/

	* gcc.target/aarch64/simd/vmulx.x: New.
	* gcc.target/aarch64/simd/vmulx_f64_2.c: Likewise.
	* gcc.target/aarch64/simd/vmulxd_f64_2.c: Likewise.
	* gcc.target/aarch64/simd/vmulxs_f32_2.c: Likewise.

From-SVN: r230758
2015-11-23 14:23:20 +00:00
Igor Zamyatin cc5c522696 re PR c++/68001 ([cilkplus] ICE in cp_gimplify_expr, at cp/cp-gimplify.c:760)
PR c++/68001

gcc/c-family
	PR c++/68001
	* c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
	* cilk.c (recognize_spawn): Determine location in a more precise
	way.
gcc/cp
	* cp-gimplify.c (cp_gimplify_expr): Stop the process if see an error.
gcc/testsuite
	* g++.dg/cilk-plus/CK/pr68001.cc: New test.

From-SVN: r230755
2015-11-23 12:58:12 +00:00
Jiong Wang f7b492ea50 [Patch] Drop constant overflow flag in adjust_range_with_scev when possible
2015-11-23  Richard Biener  <rguenth@gcc.gnu.com>
            Jiong Wang  <jiong.wang@arm.com>

gcc/
  PR tree-optimization/68317
  PR tree-optimization/68326
  * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
  final min and max are not infinity.

gcc/testsuite/
  * gcc.dg/pr68317.c: New testcase.

From-SVN: r230754
2015-11-23 12:14:05 +00:00
Olivier Hainque a789b24062 system-aix.ads: Add Frontend_Exceptions flag.
2015-11-23  Olivier Hainque  <hainque@adacore.com>

	* system-aix.ads: Add Frontend_Exceptions flag.
	* system-aix64.ads: Likewise.
	* system-darwin-ppc.ads: Likewise.
	* system-darwin-ppc64.ads: Likewise.
	* system-darwin-x86.ads: Likewise.
	* system-darwin-x86_64.ads: Likewise.
	* system-dragonfly-x86_64.ads: Likewise.
	* system-freebsd-x86.ads: Likewise.
	* system-freebsd-x86_64.ads: Likewise.
	* system-hpux-ia64.ads: Likewise.
	* system-hpux.ads: Likewise.
	* system-linux-alpha.ads: Likewise.
	* system-linux-armeb.ads: Likewise.
	* system-linux-armel.ads: Likewise.
	* system-linux-hppa.ads: Likewise.
	* system-linux-ia64.ads: Likewise.
	* system-linux-mips.ads: Likewise.
	* system-linux-mips64el.ads: Likewise.
	* system-linux-mipsel.ads: Likewise.
	* system-linux-ppc.ads: Likewise.
	* system-linux-ppc64.ads: Likewise.
	* system-linux-s390.ads: Likewise.
	* system-linux-s390x.ads: Likewise.
	* system-linux-sh4.ads: Likewise.
	* system-linux-sparc.ads: Likewise.
	* system-linux-sparcv9.ads: Likewise.
	* system-linux-x86.ads: Likewise.
	* system-linux-x86_64.ads: Likewise.
	* system-mingw-x86_64.ads: Likewise.
	* system-mingw.ads: Likewise.
	* system-rtems.ads: Likewise.
	* system-solaris-sparc.ads: Likewise.
	* system-solaris-sparcv9.ads: Likewise.
	* system-solaris-x86.ads: Likewise.
	* system-solaris-x86_64.ads: Likewise.
	* system-vxworks-arm.ads: Likewise.
	* system-vxworks-m68k.ads: Likewise.
	* system-vxworks-mips.ads: Likewise.
	* system-vxworks-ppc.ads: Likewise.
	* system-vxworks-sparcv9.ads: Likewise.
	* system-vxworks-x86.ads: Likewise.
	* system.ads: Likewise.

From-SVN: r230753
2015-11-23 11:31:24 +00:00
Olivier Hainque 0ab0bf955a opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, Back_End_SJLJ and Back_End_ZCX.
2015-11-23  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>

	* opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ,
	Back_End_SJLJ and Back_End_ZCX.
	(Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions,
	SJLJ_Exceptions): New functions, reflecting properties of the current
	Exception_Mechanism.
	* opt.adb: Implement the new functions.
	* fe.h: Bind the new Exception_Mechanism and helper functions for gigi.

	* exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by
	use of property helper and update comments.
	(Expand_Exception_Handlers): Replace tests on mechanism by use of
	helper. Restrict Abort_Defer to ZCX specifically.
	* exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on
	mechanism by calls to helper functions. Abort_Undefer for ZCX only,
	paired with Expand_Exception_Handlers.
	* exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism
	by calls to helper functions. Abort_Undefer for ZCX only, paired with
	Expand_Exception_Handlers.

	* lib-writ.ads (P line documentation): Add entry for "FX",
	representative of unit compiled with Frontend_Exceptions True.
	* lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if
	compiled with Frontend_Exceptions True.

	* ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect
	whether the ALI file contained an "FX" indication on the P line.
	(Frontend_Exceptions_Specified): New boolean, to keep track of whether
	at least an FX ALI file is in the closure.
	* ali.adb (Scan_ALI): Handle "FX" on the P line.
	(Initialize_ALI): Initialize Frontend_Exceptions_Specified to False.

	* targparm.ads: Update desription of exception schemes.
	(Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions
	set to True in system.ads, or not set at all.
	* targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions.
	Rename ZCD to ZCX for consistency.
	(FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly.

	* gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism
	setting, now from combination of Frontend_Exceptions and ZCX_By_Default.

	* bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename
	as ...
	(Check_Consistent_Exception_Handling): Check consistency of both
	ZCX_By_Default and Frontend_Exceptions.
	(Check_Configuration_Consistency): Check_Consistent_Exception_Handling
	if either flag was set at least once.

	* make.adb (Check): Remove processing of a possible -fsjlj coming from
	lang-specs.h.
	* gnatlink.adb (Gnatlin): Likewise.

	* gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set
	both ZCX_By_Default and Frontend_Exceptions.
	* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable):
	Use eh property helper to test for back-end exceptions. Adjust
	mechanism name when testing for front-end sjlj.
	(case E_Procedure): Likewise.
	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
	Likewise, and rename local variables.
	(Exception_Handler_to_gnu_sjlj): Rename as
	Exception_Handler_to_gnu_fe_sjlj.
	(Exception_Handler_to_gnu_zcx): Rename as
	Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms
	to use property helpers or correct mechanism name.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r230752
2015-11-23 11:20:34 +00:00
Joseph Myers f119bebb36 * zh_CN.po: Update.
From-SVN: r230750
2015-11-23 11:03:21 +00:00
Ilya Enkovich c245362b97 re PR tree-optimization/68327 (ICE on valid code at -O3 on x86_64-linux-gnu in vect_is_simple_use, at tree-vect-stmts.c:8562)
gcc/

	PR tree-optimization/68327
	* tree-vect-loop.c (vect_determine_vectorization_factor): Don't
	compute vectype for non-relevant mask producers.
	* gcc/tree-vect-stmts.c (vectorizable_comparison): Check stmt
	relevance earlier.

gcc/testsuite/

	PR tree-optimization/68327
	* gcc.dg/pr68327.c: New test.


Co-Authored-By: Richard Biener <rguenther@suse.de>

From-SVN: r230743
2015-11-23 10:01:51 +00:00
Tom de Vries 1cabb20439 Always call free_stmt_vec_info_vec in gather_scalar_reductions
2015-11-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68460
	* tree-parloops.c (gather_scalar_reductions): Also call
	free_stmt_vec_info_vec if simple_loop_info == NULL.

	* gcc.dg/autopar/pr68460.c: New test.

From-SVN: r230742
2015-11-23 09:45:38 +00:00
Max Ostapenko b59e2a4903 libsanitizer merge from upstream r253555, compiler part.
gcc/

	* opts.c (finish_options): Allow -fsanitize-recover=address for
	userspace sanitization.
	* asan.c (asan_expand_check_ifn): Redefine recover_p.
	* doc/invoke.texi (fsanitize-recover): Update documentation.

gcc/testsuite/

	* c-c++-common/asan/halt_on_error-1.c: New test.
	* c-c++-common/asan/halt_on_error-2.c: Likewise.

From-SVN: r230741
2015-11-23 11:15:13 +02:00
Richard Biener 16310b3fff re PR target/68482 (No vectorization for x86-64)
2015-11-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68482
	* gcc.dg/vect/pr68482.c: New testcase.

From-SVN: r230740
2015-11-23 09:11:00 +00:00
Max Ostapenko 55aea9f56c libsanitizer merge from upstream r253555.
libsanitizer/

2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>

	* All source files: Merge from upstream r253555.
	* configure.tgt: Enable LSan on aarch64-*-linux* targets. Add new
	dependences for TSan for aarch64-*-linux* targets.
	* tsan/Makefile.am: Add new source files.
	* configure: Regenerate.
	* tsan/Makefile.in: Likewise.

From-SVN: r230739
2015-11-23 11:07:18 +02:00
Tom de Vries 096b85f4b4 Mark by_ref mem_ref in build_receiver_ref as non-trapping
2015-11-23  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.

From-SVN: r230738
2015-11-23 08:56:49 +00:00
Richard Biener 7706cb01c0 re PR tree-optimization/68445 (ICE: internal compiler error: in operator[], at vec.h)
2015-11-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68445
	* tree-vect-slp.c (vect_create_mask_and_perm): Properly use
	two different strides.

	* gcc.dg/vect/pr68445.c: New testcase.

From-SVN: r230737
2015-11-23 08:36:59 +00:00
Robin Dapp e63d44c2a9 S/390: Fix symbol ref alignment
This patch fixes the treatment of symbol ref alignments for
arrays and structs in S390. Until now, the NOT_NATURALLY_ALIGNED flag
was not correctly set for array elements and structs larger than 8
bytes. Therefore, load relative instructions that require a specific
alignment would not always be generated. This patch uses separate flags
for 2-, 4-, and 8-byte alignment to fix the problem.

gcc/testsuite/ChangeLog:

2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>

        * gcc.target/s390/load-relative-check.c: New test to check
        generation of load relative instructions.


gcc/ChangeLog:

2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>

        * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
        * config/s390/s390.c (s390_check_symref_alignment): Use new
        symref flags, early abort on wrong alignment
        (s390_secondary_reload): Use new symref flags.
        (s390_encode_section_info): Likewise.
        * config/s390/predicates.md: Likewise.

From-SVN: r230735
2015-11-23 08:05:33 +00:00
Jerry DeLisle 6e9966e830 re PR fortran/52251 (Nonadvancing I/O and the t edit descriptor)
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/52251
	* io/transfer.c (formatted_transfer_scalar_write): Reset skips count.
	(finalize_transfer): For ADVANCE_NO, emit pending spaces and reset the
	skip count.

2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

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

From-SVN: r230734
2015-11-23 00:40:51 +00:00
GCC Administrator b9eaa775ca Daily bump.
From-SVN: r230733
2015-11-23 00:16:12 +00:00
Kugan Vivekanandarajah c6392c416d re PR target/68390 (Incorrect code due to indirect tail call of varargs function with hard float ABI)
gcc/ChangeLog:

2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/68390
	* config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
	for indirect function call.

gcc/testsuite/ChangeLog:

2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/68390
	* gcc/testsuite/gcc.c-torture/execute/pr68390.c: New test.

From-SVN: r230730
2015-11-22 23:07:58 +00:00
Jerry DeLisle cfba61d25c fmt_g0_1.f08: Update test.
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/fmt_g0_1.f08: Update test. Leading zero.

From-SVN: r230729
2015-11-22 22:17:52 +00:00
Jerry DeLisle ba67259c00 write_float.def (output_float): Move block determining room for leading zero to before checkng g0 formatting.
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/write_float.def (output_float): Move block determining
	room for leading zero to before checkng g0 formatting.

From-SVN: r230728
2015-11-22 22:14:46 +00:00
Torvald Riegel 4f8a3b87f9 libitm: Fix recent changes to allocations log.
libitm/
	* libitm_i.h (gtm_alloc_action): Remove union.
	* testsuite/libitm.c/alloc-1.c: New.

From-SVN: r230727
2015-11-22 20:56:20 +00:00
Steven G. Kargl 9b22c1b69a re PR fortran/68486 (187.facerec in SPEC CPU 2000 failed to build)
2015-11-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68486
	* simplify.c (gfc_simplify_cshift):  Add EXPR_OP to mix.

2015-11-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68486
	* gfortran.dg/simplify_cshift_2.f90: New test.

From-SVN: r230726
2015-11-22 19:41:20 +00:00
James Norris cc9e07a6bc openmp.c (match_oacc_clause_gang): Fix uninitialized variable.
gcc/fortran/
	* openmp.c (match_oacc_clause_gang): Fix uninitialized variable.
	(gfc_resolve_oacc_declare): Fix comparision.

Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>

From-SVN: r230725
2015-11-22 19:25:29 +00:00
James Norris dc7a8b4b7a dump-parse-tree.c (show_namespace): Handle declares.
gcc/fortran/
	* dump-parse-tree.c (show_namespace): Handle declares.
	* gfortran.h (struct symbol_attribute): New fields.
	(enum gfc_omp_map_map): Add OMP_MAP_DEVICE_RESIDENT and OMP_MAP_LINK.
	(OMP_LIST_LINK): New enum.
	(struct gfc_oacc_declare): New structure.
	(gfc_get_oacc_declare): New definition.
	(struct gfc_namespace): Change type.
	(enum gfc_exec_op): Add EXEC_OACC_DECLARE.
	(struct gfc_code): New field.
	* module.c (enum ab_attribute): Add AB_OACC_DECLARE_CREATE,
	AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR,
	AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK
	(attr_bits): Add new initializers.
	(mio_symbol_attribute): Handle new atributes.
	* openmp.c (gfc_free_oacc_declare_clauses): New function.
	(gfc_match_oacc_clause_link: Likewise.
	(OMP_CLAUSE_LINK): New definition.
	(gfc_match_omp_clauses): Handle OMP_CLAUSE_LINK.
	(OACC_DECLARE_CLAUSES): Add OMP_CLAUSE_LINK
	(gfc_match_oacc_declare): Add checking and module handling.
	(resolve_omp_clauses): Add array initializer.
	(gfc_resolve_oacc_declare): Reimplement.
	* parse.c (case_decl): Add ST_OACC_DECLARE.
	(parse_spec): Remove handling.
	(parse_progunit): Remove handling.
	* parse.h (struct gfc_state_data): Change type.
	* resolve.c (gfc_resolve_blocks): Handle EXEC_OACC_DECLARE.
	* st.c (gfc_free_statement): Handle EXEC_OACC_DECLARE.
	* symbol.c (check_conflict): Add conflict checks.
	(gfc_add_oacc_declare_create, gfc_add_oacc_declare_copyin, 
	gfc_add_oacc_declare_deviceptr, gfc_add_oacc_declare_device_resident):
	New functions.
	(gfc_copy_attr): Handle new symbols.
	* trans-decl.c (add_clause, find_module_oacc_declare_clauses,
	finish_oacc_declare): New functions.
	(gfc_generate_function_code): Replace with call.
	* trans-openmp.c (gfc_trans_oacc_declare): Reimplement.
	(gfc_trans_oacc_directive): Handle EXEC_OACC_DECLARE.
	* trans-stmt.c (gfc_trans_block_construct): Replace with call.
	* trans-stmt.h (gfc_trans_oacc_declare): Remove argument.
	* trans.c (trans_code): Handle EXEC_OACC_DECLARE.

	gcc/testsuite
	* gfortran.dg/goacc/declare-1.f95: Update test.
	* gfortran.dg/goacc/declare-2.f95: New test.

	libgomp/
	* testsuite/libgomp.oacc-fortran/declare-1.f90: New test.
	* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>

From-SVN: r230722
2015-11-22 16:45:38 +00:00
Bilyan Borisov 9030a4d3aa [AARCH64][PATCH 2/3] Implementing vmulx_lane NEON intrinsic variants
gcc/

	* config/aarch64/arm_neon.h (vmulx_lane_f32): New.
	(vmulx_lane_f64): Likewise.
	(vmulxq_lane_f32): Refactored & moved.
	(vmulxq_lane_f64): Likewise.
	(vmulx_laneq_f32): New.
	(vmulx_laneq_f64): Likewise.
	(vmulxq_laneq_f32): Likewise.
	(vmulxq_laneq_f64): Likewise.
	(vmulxs_lane_f32): Likewise.
	(vmulxs_laneq_f32): Likewise.
	(vmulxd_lane_f64): Likewise.
	(vmulxd_laneq_f64): Likewise.
	* config/aarch64/aarch64-simd.md
	(*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New pattern.
	(*aarch64_mulx_elt<mode>, VDQF): Likewise.
	(*aarch64_mulx_elt_to_64v2df): Likewise.
	(*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.

gcc/testsuite/

	* gcc.target/aarch64/simd/vmulx_lane_f32_1.c: New.
	* gcc.target/aarch64/simd/vmulx_lane_f64_1.c: New.
	* gcc.target/aarch64/simd/vmulx_laneq_f32_1.c: New.
	* gcc.target/aarch64/simd/vmulx_laneq_f64_1.c: New.
	* gcc.target/aarch64/simd/vmulxq_lane_f32_1.c: New.
	* gcc.target/aarch64/simd/vmulxq_lane_f64_1.c: New.
	* gcc.target/aarch64/simd/vmulxq_laneq_f32_1.c: New.
	* gcc.target/aarch64/simd/vmulxq_laneq_f64_1.c: New.
	* gcc.target/aarch64/simd/vmulxs_lane_f32_1.c: New.
	* gcc.target/aarch64/simd/vmulxs_laneq_f32_1.c: New.
	* gcc.target/aarch64/simd/vmulxd_lane_f64_1.c: New.
	* gcc.target/aarch64/simd/vmulxd_laneq_f64_1.c: New.

From-SVN: r230720
2015-11-22 15:15:20 +00:00
GCC Administrator 60bcff0112 Daily bump.
From-SVN: r230718
2015-11-22 00:16:12 +00:00
Jan Hubicka f85d248708 lto.c (iterative_hash_canonical_type): Always recurse for pointers.
* lto.c (iterative_hash_canonical_type): Always recurse for pointers.
	(gimple_register_canonical_type_1): Check that pointers do not get
	canonical types.
	(gimple_register_canonical_type): Do not register pointers.

	* tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
	In LTO we do not compute TYPE_CANONICAL of pointers.
	(gimple_canonical_types_compatible_p): Improve coments; sanity check
	that pointers do not have canonical type that would make us believe
	they are different.
	* alias.c (get_alias_set): Do structural type equality on pointers;
	enable pointer path for LTO; also glob pointer to vector with pointer
	to vector element; glob pointers and references for LTO; do more strict
	sanity checking about build_pointer_type returning the canonical type
	which is also the main variant.
	(record_component_aliases): When component type is pointer and we
	do LTO; record void_type_node alias set.

From-SVN: r230715
2015-11-21 23:59:49 +00:00
Jan Hubicka feb391fc5d lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch flag for types that are not ODR...
* lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch
	flag for types that are not ODR; fix loop walking parameters.

From-SVN: r230712
2015-11-21 22:30:28 +00:00
Steven G. Kargl fcae71a368 simplify.c (gfc_simplify_cshift): Work around bootstrap issues due to inappropriate warning options.
2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>
 
	* simplify.c (gfc_simplify_cshift): Work around bootstrap issues
	due to inappropriate warning options.

From-SVN: r230710
2015-11-21 20:06:17 +00:00
Steven G. Kargl b1c1d761c1 simplify.c (gfc_simplify_cshift): Implement simplification of CSHIFT.
2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	* simplify.c (gfc_simplify_cshift): Implement simplification of CSHIFT.
	(gfc_simplify_spread): Remove a FIXME and add error condition.
	* intrinsic.h: Prototype for gfc_simplify_cshift
	* intrinsic.c (add_functions): Use gfc_simplify_cshift.
 
2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>

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

From-SVN: r230709
2015-11-21 16:25:23 +00:00
Nathan Sidwell d43e15a424 * gcc.dg/atomic-generic.c: Include <string.h>.q
From-SVN: r230708
2015-11-21 14:08:44 +00:00
David Edelsohn 3fe01de6e6 * gfortran.dg/submodule_6.f08: Add dg-require-effective-target lto.
From-SVN: r230707
2015-11-21 09:02:45 -05:00