- Nov 14, 2014
-
-
Tom de Vries authored
2014-11-14 Tom de Vries <tom@codesourcery.com> * mklog: Move reading of .diff file up and add comment. Copy diff_lines to orig_diff_lines. Use orig_diff_lines when appending patch. From-SVN: r217558
-
Jonathan Wakely authored
gcc/cp: * mangle.c (find_substitution): Look for abi_tag on class templates. gcc/testsuite: * g++.dg/abi/abi-tag11.C: New. From-SVN: r217557
-
Marek Polacek authored
fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if that overflows when SANITIZE_SI_OVERFLOW is on. * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if that overflows when SANITIZE_SI_OVERFLOW is on. Guard -(-A) folding with TYPE_OVERFLOW_SANITIZED. * c-c++-common/ubsan/overflow-negate-3.c: New test. From-SVN: r217556
-
Marek Polacek authored
re PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in simplify_builtin_call, at tree-ssa-forwprop.c:1441 with -fsanitize=unreachable) PR sanitizer/63839 * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST, ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define. * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define. * builtins.c (fold_builtin_0): Don't include ubsan.h. Don't instrument BUILT_IN_UNREACHABLE here. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make const. * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE. * tree-ssa-ccp.c (optimize_unreachable): Bail out if SANITIZE_UNREACHABLE. * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE. * ubsan.h (ubsan_instrument_unreachable): Adjust declaration. testsuite/ * c-c++-common/ubsan/pr63839.c: New test. * c-c++-common/ubsan/unreachable-2.c: New test. From-SVN: r217553
-
Alan Lawrence authored
* config/rs6000/vector.md (vec_shl_<mode>): Remove. (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN. From-SVN: r217552
-
Alan Lawrence authored
From-SVN: r217551
-
Alan Lawrence authored
* optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on BYTES_BIG_ENDIAN. * tree-vect-loop.c (calc_vec_perm_mask_for_shift, vect_create_epilog_for_reduction): Likewise. * doc/md.texi (vec_shr_m): Clarify direction of shifting. From-SVN: r217550
-
Ramana Radhakrishnan authored
Fix PR target/63724 2014-11-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/63724 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out numerical immediate handling to... (aarch64_internal_mov_immediate): ...this. New. (aarch64_rtx_costs): Use aarch64_internal_mov_immediate. (aarch64_mov_operand_p): Relax predicate. * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs. (*movsi_aarch64): Turn into define_insn_and_split and new alternative for 'n'. (*movdi_aarch64): Likewise. From-SVN: r217546
-
Richard Biener authored
2014-11-14 Richard Biener <rguenther@suse.de> * match.pd: Implement more binary patterns exercised by fold_stmt. * fold-const.c (sing_bit_p): Export. (exact_inverse): Likewise. (fold_binary_loc): Remove patterns here. (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT. * fold-const.h (sing_bit_p): Declare. (exact_inverse): Likewise. * gcc.c-torture/execute/shiftopt-1.c: XFAIL invalid parts. From-SVN: r217545
-
Marek Polacek authored
From-SVN: r217543
-
Richard Biener authored
2014-11-14 Richard Biener <rguenther@suse.de> * genmatch.c (add_operator): Allow CONSTRUCTOR. (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC. (parser::parse_op): Allow to iterate over predicates. From-SVN: r217541
-
Jakub Jelinek authored
configure.ac (--with-diagnostics-color): New configure option, default to --with-diagnostics-color=auto. * configure.ac (--with-diagnostics-color): New configure option, default to --with-diagnostics-color=auto. * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT to determine -fdiagnostics-color= option default. * doc/invoke.texi (-fdiagnostics-color=): Document new default. * configure: Regenerated. * config.in: Regenerated. From-SVN: r217540
-
Teresa Johnson authored
2014-11-13 Teresa Johnson <tejohnson@google.com> gcc: PR tree-optimization/63841 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. 2014-11-13 Teresa Johnson <tejohnson@google.com> gcc/testsuite: PR tree-optimization/63841 * g++.dg/tree-ssa/pr63841.C: Remove prints, use abort. From-SVN: r217537
-
Andrew Waterman authored
From-SVN: r217536
-
Daniel Kruegler authored
2014-11-13 Daniel Kruegler <daniel.kruegler@gmail.com> * include/bits/regex.h: Support embedded zeros in sub_match comparisons (DR 2217) * testsuite/28_regex/sub_match/embedded_zeros_cmp.cc: Add test cases for embedded zeros From-SVN: r217535
-
Bin Cheng authored
* timevar.def (TV_SCHED_FUSION): New time var. * passes.def (pass_sched_fusion): New pass. * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New. (extract_base_offset_in_addr, fusion_load_store): New. (arm_sched_fusion_priority): New. (arm_option_override): Disable scheduling fusion by default on non-armv7 processors or ldrd/strd isn't preferred. * sched-int.h (struct _haifa_insn_data): New field. (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New. * sched-rgn.c (rest_of_handle_sched_fusion): New. (pass_data_sched_fusion, pass_sched_fusion): New. (make_pass_sched_fusion): New. * haifa-sched.c (sched_fusion): New. (insn_cost): Handle sched_fusion. (priority): Handle sched_fusion by calling target hook. (enum rfs_decision): New enum value. (rfs_str): New element for RFS_FUSION. (rank_for_schedule): Support sched_fusion. (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion. (schedule_block, fix_tick_ready): Handle sched_fusion. * common.opt (flag_schedule_fusion): New. * tree-pass.h (make_pass_sched_fusion): New. * target.def (fusion_priority): New. * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New. * doc/tm.texi: Regenerated. * doc/invoke.texi (-fschedule-fusion): New. testsuite: * gcc.target/arm/ldrd-strd-pair-1.c: New test. * gcc.target/arm/vfp-1.c: Improve scanning string. From-SVN: r217533
-
Rong Xu authored
2014-11-13 Rong Xu <xur@google.com> gcc: PR debug/63581 * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the footer, instead of unconditionally overwritten gcc/testsuite: PR debug/63581 * g++.dg/tree-prof/pr63581.C: New test. From-SVN: r217530
-
Martin Jambor authored
2014-11-14 Martin Jambor <mjambor@suse.cz> * cgraph.h (clear_outer_type): Make public. Fix comment. * ipa-devirt.c (possible_polymorphic_call_targets): Use clear_outer_type when resetting the context. From-SVN: r217529
-
GCC Administrator authored
From-SVN: r217528
-
- Nov 13, 2014
-
-
Dominique d'Humieres authored
2014-11-13 Dominique Dhumieres <dominiq@lps.ens.fr> PR bootstrap/63853 gcc/ * gcc.c (handle_foffload_option): Replace strchrnul with strchr. * lto-wrapper.c (parse_env_var, append_offload_options): Likewise. From-SVN: r217524
-
Teresa Johnson authored
From-SVN: r217523
-
Kostya Serebryany authored
From-SVN: r217518
-
Marek Polacek authored
* intrinsics/access.c: Include <stdlib.h>. * intrinsics/chdir.c: Likewise. * intrinsics/chmod.c: Likewise. * intrinsics/link.c: Likewise. * intrinsics/perror.c: Likewise. * intrinsics/rename.c: Likewise. * intrinsics/symlnk.c: Likewise. * intrinsics/unlink.c: Likewise. From-SVN: r217514
-
Alan Lawrence authored
* fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR. * tree-cfg.c (verify_gimple_assign_binary): Likewise. * tree-inline.c (estimate_operator_cost): Likewise. * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code): Likewise. * tree-vect-generic.c (expand_vector_operations_1): Remove assertion against VEC_RSHIFT_EXPR. * optabs.h (expand_vec_shift_expr): Remove. * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR. (expand_vec_shift_expr): Remove. * tree.def (VEC_RSHIFT_EXPR): Remove From-SVN: r217510
-
Alan Lawrence authored
[Vectorizer] Use a VEC_PERM_EXPR instead of VEC_RSHIFT_EXPR; expand appropriate VEC_PERM_EXPRs using vec_shr_optab * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr. (shift_amt_for_vec_perm_mask): New. (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx and mask appropriate. * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New. (have_whole_vector_shift): New. (vect_model_reduction_cost): Call have_whole_vector_shift instead of looking for vec_shr_optab. (vect_create_epilog_for_reduction): Likewise; also rename local variable have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs instead of VEC_RSHIFT_EXPRs. * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment. From-SVN: r217509
-
Alan Lawrence authored
* tree-vectorizer.h (vect_gen_perm_mask): Remove. (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New. tree_vec_data_refs.c (vect_permute_load_chain, vec_permute_store_chain, vec_shift_permute_load_chain): Replace vect_gen_perm_mask & assert with vect_gen_perm_mask_checked. * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load): Likewise. (vect_gen_perm_mask_checked): New. (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to... (vect_gen_perm_mask_any): ...this. (perm_mask_for_reverse): Call can_vec_perm_p and vect_gen_perm_mask_checked. From-SVN: r217508
-
Felix Yang authored
* ipa-utils.h: Fix typo in comments. * ipa-profile.c: Likewise. * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dump. From-SVN: r217507
-
Teresa Johnson authored
2014-11-13 Teresa Johnson <tejohnson@google.com> gcc: PR tree-optimization/63841 * tree.c (initializer_zerop): A clobber does not zero initialize. gcc/testsuite: PR tree-optimization/63841 * g++.dg/tree-ssa/pr63841.C: New test. From-SVN: r217505
-
Ulrich Weigand authored
optabs.c (prepare_operand): Gracefully fail if the mode of X does not match the operand mode expected by... * optabs.c (prepare_operand): Gracefully fail if the mode of X does not match the operand mode expected by the insn pattern. From-SVN: r217501
-
Andrey Turetskiy authored
libgomp/ * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Set up offload_additional_options, offload_additional_lib_paths and offload_targets. * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS, OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS. * testsuite/Makefile.in: Regenerate. * testsuite/lib/libgomp.exp (libgomp_init): Append offload_additional_lib_paths to LD_LIBRARY_PATH. Append offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic build directory to LD_LIBRARY_PATH for intelmic offload targets. Co-Authored-By:
Ilya Verbin <ilya.verbin@intel.com> From-SVN: r217500
-
Ilya Verbin authored
liboffloadmic/ * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Add subdirectory 'plugin'. * plugin/Makefile.am: New file. * plugin/Makefile.in: New file, generated by automake. * plugin/aclocal.m4: New file, generated by aclocal. * plugin/configure: New file, generated by autoconf. * plugin/configure.ac: New file. * plugin/libgomp-plugin-intelmic.cpp: New file. * plugin/offload_target_main.cpp: New file. Co-Authored-By:
Andrey Turetskiy <andrey.turetskiy@intel.com> From-SVN: r217499
-
Kirill Yukhin authored
* Makefile.def: Add liboffloadmic to target_modules. Make liboffloadmic depend on libgomp's configure, libstdc++ and libgcc. * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Add liboffloadmic to target binaries. Restrict liboffloadmic for POSIX and i*86, and x86_64 architectures. Add liboffloadmic to noconfig list when C++ is not supported. config/ * target-posix: New file. libcilkrts/ * configure.tgt: Use config/target-posix. liboffloadmic/ Initial commit. Imported from upstream: https://www.openmprtl.org/sites/default/files/liboffload_oss.tgz * Makefile.am: New file. * Makefile.in: New file, generated by automake. * aclocal.m4: New file, generated by aclocal. * configure: New file, generated by autoconf. * configure.ac: New file. * configure.tgt: Ditto. * doc/doxygen/config: Ditto. * doc/doxygen/header.tex: Ditto. * include/coi/common/COIEngine_common.h: Ditto. * include/coi/common/COIMacros_common.h: Ditto. * include/coi/common/COIPerf_common.h : Ditto. * include/coi/common/COIResult_common.h : Ditto. * include/coi/common/COITypes_common.h: Ditto. * include/coi/sink/COIBuffer_sink.h: Ditto. * include/coi/sink/COIPipeline_sink.h: Ditto. * include/coi/sink/COIProcess_sink.h: Ditto. * include/coi/source/COIBuffer_source.h: Ditto. * include/coi/source/COIEngine_source.h: Ditto. * include/coi/source/COIEvent_source.h: Ditto. * include/coi/source/COIPipeline_source.h: Ditto. * include/coi/source/COIProcess_source.h: Ditto. * include/myo/myo.h: Ditto. * include/myo/myoimpl.h: Ditto. * include/myo/myotypes.h: Ditto. * liboffloadmic_host.spec.in: Ditto. * liboffloadmic_target.spec.in: Ditto. * runtime/cean_util.cpp: Ditto. * runtime/cean_util.h: Ditto. * runtime/coi/coi_client.cpp: Ditto. * runtime/coi/coi_client.h: Ditto. * runtime/coi/coi_server.cpp: Ditto. * runtime/coi/coi_server.h: Ditto. * runtime/compiler_if_host.cpp: Ditto. * runtime/compiler_if_host.h: Ditto. * runtime/compiler_if_target.cpp: Ditto. * runtime/compiler_if_target.h: Ditto. * runtime/dv_util.cpp: Ditto. * runtime/dv_util.h: Ditto. * runtime/emulator/coi_common.h: Ditto. * runtime/emulator/coi_device.cpp: Ditto. * runtime/emulator/coi_device.h: Ditto. * runtime/emulator/coi_host.cpp: Ditto. * runtime/emulator/coi_host.h: Ditto. * runtime/emulator/coi_version_asm.h: Ditto. * runtime/emulator/coi_version_linker_script.map: Ditto. * runtime/emulator/myo_client.cpp: Ditto. * runtime/emulator/myo_service.cpp: Ditto. * runtime/emulator/myo_service.h: Ditto. * runtime/emulator/myo_version_asm.h: Ditto. * runtime/emulator/myo_version_linker_script.map: Ditto. * runtime/liboffload_error.c: Ditto. * runtime/liboffload_error_codes.h: Ditto. * runtime/liboffload_msg.c: Ditto. * runtime/liboffload_msg.h: Ditto. * runtime/mic_lib.f90: Ditto. * runtime/offload.h: Ditto. * runtime/offload_common.cpp: Ditto. * runtime/offload_common.h: Ditto. * runtime/offload_engine.cpp: Ditto. * runtime/offload_engine.h: Ditto. * runtime/offload_env.cpp: Ditto. * runtime/offload_env.h: Ditto. * runtime/offload_host.cpp: Ditto. * runtime/offload_host.h: Ditto. * runtime/offload_myo_host.cpp: Ditto. * runtime/offload_myo_host.h: Ditto. * runtime/offload_myo_target.cpp: Ditto. * runtime/offload_myo_target.h: Ditto. * runtime/offload_omp_host.cpp: Ditto. * runtime/offload_omp_target.cpp: Ditto. * runtime/offload_orsl.cpp: Ditto. * runtime/offload_orsl.h: Ditto. * runtime/offload_table.cpp: Ditto. * runtime/offload_table.h: Ditto. * runtime/offload_target.cpp: Ditto. * runtime/offload_target.h: Ditto. * runtime/offload_target_main.cpp: Ditto. * runtime/offload_timer.h: Ditto. * runtime/offload_timer_host.cpp: Ditto. * runtime/offload_timer_target.cpp: Ditto. * runtime/offload_trace.cpp: Ditto. * runtime/offload_trace.h: Ditto. * runtime/offload_util.cpp: Ditto. * runtime/offload_util.h: Ditto. * runtime/ofldbegin.cpp: Ditto. * runtime/ofldend.cpp: Ditto. * runtime/orsl-lite/include/orsl-lite.h: Ditto. * runtime/orsl-lite/lib/orsl-lite.c: Ditto. * runtime/orsl-lite/version.txt: Ditto. * runtime/use_mpss2.txt: Ditto. From-SVN: r217498
-
Richard Biener authored
2014-11-13 Richard Biener <rguenther@suse.de> * match.pd: Add tcc_comparison, inverted_tcc_comparison and inverted_tcc_comparison_with_nans operator lists. Use tcc_comparison in the truth_valued_p predicate definition. Restrict logical_inverted_value with bit_xor to integral types. Build a boolean true for simplifying x |^ !x because of vector types. Implement patterns from forward_propagate_comparison * tree-ssa-forwprop.c (forward_propagate_comparison): Remove. (get_prop_dest_stmt): Likewise. (pass_forwprop::execute): Do not call it. * fold-const.c (fold_unary_loc): Remove the pattern here. * gcc.dg/tree-ssa/forwprop-28.c: Adjust. From-SVN: r217496
-
Ilya Verbin authored
gcc/ * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to tmake_file. (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the accelerator compiler. * config/i386/intelmic-mkoffload.c: New file. * config/i386/t-intelmic: Ditto. Co-Authored-By:
Andrey Turetskiy <andrey.turetskiy@intel.com> From-SVN: r217495
-
Andrey Turetskiy authored
libgomp/ * testsuite/lib/libgomp.exp (check_effective_target_offload_device): New. * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories. * testsuite/libgomp.c++/examples-4/e.51.5.C: New test. * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto. * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto. * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto. * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto. * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto. * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto. * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto. * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto. * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto. * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto. * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto. * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto. * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto. * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto. * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto. * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto. * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto. * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto. * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto. * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto. * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto. * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto. * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto. * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto. * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto. * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto. * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto. * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto. * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto. * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto. * testsuite/libgomp.c/target-7.c: Fix test. * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test. * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto. Co-Authored-By:
Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By:
Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By:
Kirill Yukhin <kirill.yukhin@intel.com> From-SVN: r217494
-
Bernd Schmidt authored
gcc/ * common.opt (foffload, foffload-abi): New options. * config/i386/i386.c (ix86_offload_options): New static function. (TARGET_OFFLOAD_OPTIONS): Define. * coretypes.h (enum offload_abi): New enum. * doc/tm.texi: Regenerate. * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document. * gcc.c (offload_targets): New static variable. (handle_foffload_option): New static function. (driver_handle_option): Handle OPT_foffload_. (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES according to offload_targets. * hooks.c (hook_charptr_void_null): New hook. * hooks.h (hook_charptr_void_null): Declare. * lto-opts.c: Include lto-section-names.h. (lto_write_options): Append options from target offload_options hook and store them to offload_lto section. Do not store target-specific, driver and diagnostic options in offload_lto section. * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and OPT_foffload_abi_. (append_compiler_options, append_linker_options) (append_offload_options): New static functions. (compile_offload_image): Add new arguments with options. Call append_compiler_options and append_offload_options. (compile_images_for_offload_targets): Add new arguments with options. (find_and_merge_options): New static function. (run_gcc): Outline options handling into the new functions: find_and_merge_options, append_compiler_options, append_linker_options. * opts.c (common_handle_option): Don't handle OPT_foffload_. Forbid OPT_foffload_abi_ for non-offload compiler. * target.def (offload_options): New target hook. Co-Authored-By:
Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By:
Ilya Verbin <ilya.verbin@intel.com> From-SVN: r217493
-
Jakub Jelinek authored
libgomp/ * libgomp.map (GOMP_4.0.1): New symbol version. Add GOMP_offload_register. * libgomp_target.h: New file. * splay-tree.h: New file. * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h. (gomp_target_init): New forward declaration. (gomp_is_initialized): New static variable. (splay_tree_node, splay_tree, splay_tree_key): New typedefs. (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr): New structures. (offload_images, num_offload_images, devices, num_devices): New static variables. (splay_compare): New static function. (struct gomp_device_descr): New structure. (gomp_get_num_devices): Call gomp_target_init. (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt) (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions. (GOMP_offload_register): New function. (GOMP_target): Arrange for host callback to be performed in a separate initial thread and contention group, inheriting ICVs from gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars. Add device initialization and lookup for target function in splay tree. (GOMP_target_data): Add device initialization and call gomp_map_vars. (GOMP_target_end_data): Call gomp_unmap_vars. (GOMP_target_update): Add device initialization and call gomp_update. (gomp_load_plugin_for_device, gomp_register_images_for_device) (gomp_target_init): New static functions. Co-Authored-By:
Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By:
Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By:
Thomas Schwinge <thomas@codesourcery.com> From-SVN: r217492
-
Ilya Verbin authored
gcc/ * gcc.c (spec_host_machine, accel_dir_suffix): New variables. (process_command): Tweak path construction for the possibility of being configured as an offload compiler. (driver::maybe_putenv_OFFLOAD_TARGETS): New function. (driver::main): Call maybe_putenv_OFFLOAD_TARGETS. (driver::set_up_specs): Tweak path construction for the possibility of being configured as an offload compiler. * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define. (offload_names, offloadbegin, offloadend): New static variables. (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image) (compile_images_for_offload_targets, copy_file, find_offloadbeginend): New static functions. (run_gcc): Determine whether offload sections are present. If so, run compile_images_for_offload_targets and return the names of new generated objects to linker. If there are offload sections, but no LTO sections, then return the copies of input objects without link-time recompilation. lto-plugin/ * lto-plugin.c (OFFLOAD_SECTION, OFFLOAD_SECTION_LEN): Define. (struct plugin_objfile): Add new field "offload". (process_offload_section): New static function. (claim_file_handler): Claim file if it contains offload sections. Co-Authored-By:
Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By:
Bernd Schmidt <bernds@codesourcery.com> Co-Authored-By:
Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r217491
-
Ilya Verbin authored
gcc/ * Makefile.in (GTFILES): Add omp-low.h to list of GC files. * cgraphunit.c: Include omp-low.h. * doc/tm.texi: Regenerate. * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document. * gengtype.c (open_base_files): Add omp-low.h to ifiles. * lto-cgraph.c (output_offload_tables): New function. (input_offload_tables): Likewise. * lto-section-in.c (lto_section_name): Add "offload_table". * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define. (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise. * lto-streamer-out.c (lto_output): Call output_offload_tables. * lto-streamer.h (lto_section_type): Add LTO_section_offload_table. (output_offload_tables, input_offload_tables): Declare. * omp-low.c: Include common/common-target.h and lto-section-names.h. (offload_funcs, offload_vars): New global <tree, va_gc> vectors. (expand_omp_target): Add child_fn into offload_funcs vector. (add_decls_addresses_to_decl_constructor): New function. (omp_finish_file): Likewise. * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare. * target.def (record_offload_symbol): New DEFHOOK. * toplev.c: Include omp-low.h. (compile_file): Call omp_finish_file. * varpool.c: Include omp-low.h. (varpool_node::get_create): Add decl into offload_vars vector. gcc/lto/ * lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables. Co-Authored-By:
Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By:
Bernd Schmidt <bernds@codesourcery.com> Co-Authored-By:
Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By:
Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r217489
-
Richard Biener authored
2014-11-13 Richard Biener <rguenther@suse.de> * genmatch.c (dt_node::gen_kids): Fix placement of break statement. From-SVN: r217487
-