Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-06-19 Thread Ilya Verbin
On 18 Jun 16:22, Bernd Schmidt wrote: What I think you need to do is For the first compiler: --enable-as-accelerator-for=x86_64-pc-linux-gnu --target=x86_64-intelmic-linux-gnu --prefix=/somewhere No --enable-accelerator options at all. This should work, if it doesn't let me know what you

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-07-07 Thread Ilya Verbin
On 27 Jun 09:32, Bernd Schmidt wrote: Sorry for the delayed reply, I was travelling. There seem to be some thinkos in the configure script and Makefile; can you try the following (don't forget to regenerate configure)? It seems to work for ptx (with some additional changes to allow ptx builds

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-07-10 Thread Ilya Verbin
On 07 Jul 17:03, Bernd Schmidt wrote: Is libgomp the only problematic one? (Does the accel compiler even need one?) It seems to be installed in /usr/lib rather than in a gcc-specific directory, which is a little surprising to me. It may be necessary to give the accel compiler a different

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-07-23 Thread Ilya Verbin
On 23 Jul 16:16, Bernd Schmidt wrote: Here's the latest version, which fixes some more issues and removes things that are now unnecessary. Configure scripts and toplevel autogenned stuff is left out and must be regenerated. Are you OK with me installing this on gomp-4_0-branch? If there's

Re: [gomp4] Offload option handling

2014-07-23 Thread Ilya Verbin
On 23 Jul 14:51, Bernd Schmidt wrote: Ping. https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00616.html On 06/06/2014 05:07 PM, Bernd Schmidt wrote: There's a problem when offloading from a compiler for one target machine to another: the machine specific options don't necessarily match. This

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-07-24 Thread Ilya Verbin
In gcc/configure.ac: AC_SUBST(enable_accelerator) offload_targets=`echo $offload_targets | sed -e 's#,#:#'` AC_DEFINE_UNQUOTED(OFFLOAD_TARGETS, $offload_targets, Looks like, it should be: sed -e 's#,#:#g' -- Ilya

Re: [patch] OpenACC fortran front end

2014-11-11 Thread Ilya Verbin
Hi, On 11 Nov 08:10, Jakub Jelinek wrote: For the middle-end and libgomp changes, can you talk to the Intel folks to update their git branch to latest trunk (so that you have the nvptx bits in there) and send middle-end and libgomp diffs against that? As far as I remember, most of the changes

Re: [PATCH 2/4] Add liboffloadmic

2014-11-12 Thread Ilya Verbin
On 06 Nov 19:21, Jakub Jelinek wrote: I'm still seeing various unhandled malloc failures, e.g.: ... would crash if malloc returns NULL. Similarly for realloc: Fixed in the branch: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=534b201fadf0af05ca509dc3f8e13ef26ee719a2 Also, I see you heavily

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-11-12 Thread Ilya Verbin
On 12 Nov 15:34, Richard Biener wrote: Seems like Vlad introduced the conflicting type with Okay, we're going to test our changes with patch in the bottom applied both to kyukhin/gomp4-offload and trunk. * gcc/lra-lives.c (struct bb_data): Rename to ... (struct

[PATCH][COMMITTED] Fix PR63853 - Remove strchrnul to fix bootstrap on non-GNU platforms

2014-11-13 Thread Ilya Verbin
Hi, I committed a patch from Dominique d'Humieres to restore bootsrap broken by our offloading patches. Thanks, -- Ilya 2014-11-13 Dominique Dhumieres domi...@lps.ens.fr PR bootstrap/63853 gcc/ * gcc.c (handle_foffload_option): Replace strchrnul with strchr. *

[PATCH 0/2] Offloading from dlopened libraries

2014-11-13 Thread Ilya Verbin
Hi, This patch fixes offloading from dlopened libraries, part 1 is for libgomp and part 2 is for intelmic plugin (it's not finished yet). How it works: When a library is loaded it calls GOMP_offload_register as usually. At this time some devices may already be initialized, and some may be not.

[PATCH 1/2] Offloading from dlopened libraries: libgomp

2014-11-13 Thread Ilya Verbin
libgomp/ * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister. * libgomp_target.h (struct mapping_table): Replace with addr_pair. * target.c (struct gomp_device_descr): Remove register_image_func, get_table_func. Add load_image_func, unload_image_func.

[PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-14 Thread Ilya Verbin
Resending to gcc-patches@gcc.gnu.org Hi, This patch fixes recent regressions in libgomp testsuite: https://gcc.gnu.org/ml/gcc-regression/2014-11/msg00343.html They are reproducible only with ld from trunk, ld 2.24 works fine. When GCC emits sections with offload IR, it should not emit

Re: [PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-14 Thread Ilya Verbin
On 14 Nov 08:46, H.J. Lu wrote: What happens when -flto is used on command line? Will we generate both LTO IR and offload IR? Right. I'm not sure whether we should make slim objects in case of LTO + offload IR... -- Ilya

Re: [PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-14 Thread Ilya Verbin
On 14 Nov 09:01, H.J. Lu wrote: On Fri, Nov 14, 2014 at 8:51 AM, Ilya Verbin iver...@gmail.com wrote: On 14 Nov 08:46, H.J. Lu wrote: What happens when -flto is used on command line? Will we generate both LTO IR and offload IR? Right. I'm not sure whether we should make slim

Re: [PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-14 Thread Ilya Verbin
On 14 Nov 09:11, H.J. Lu wrote: On Fri, Nov 14, 2014 at 9:08 AM, Ilya Verbin iver...@gmail.com wrote: On 14 Nov 09:01, H.J. Lu wrote: On Fri, Nov 14, 2014 at 8:51 AM, Ilya Verbin iver...@gmail.com wrote: On 14 Nov 08:46, H.J. Lu wrote: What happens when -flto is used on command line

[PATCH 2/2] Offloading from dlopened libraries: intelmic plugin

2014-11-14 Thread Ilya Verbin
And here is the second part, which implements GOMP_OFFLOAD_[un]load_image in the plugin. Unfortunately so far unloading for libs is not implemented in liboffloadmic, but I believe that this patch is better than the current code. Tested with multiple dso's and on multiple emulated devices (as

[PATCH] Fix PR63868 - Guard offloading with ifdef ENABLE_OFFLOADING

2014-11-18 Thread Ilya Verbin
Hi, This patch disables the generation of sections with offload IR and offload tables by default, when a compiler is configured without --enable-offload-targets= . Bootsrap and regtesting in progress, OK after it finished? -- Ilya PR regression/63868 gcc/ * cgraph.c

Re: [PATCH 4/4] OpenMP 4.0 offloading to Intel MIC: non-fallback testing

2014-11-21 Thread Ilya Verbin
Hi, On 21 Nov 19:19, Bernd Edlinger wrote: so, did you really regenerate Makefile.in in that patch, or am I missing something ? You're right. This patch was rebased so many times, that we may forget to regenerate it before committing. Do you plan to submit any patch for Makefile.in? Or

Re: [PATCH 4/4] OpenMP 4.0 offloading to Intel MIC: non-fallback testing

2014-11-21 Thread Ilya Verbin
Hi Jakub! On Fri, 21 Nov 2014 21:44:40, Ilya Verbin wrote: You're right. This patch was rebased so many times, that we may forget to regenerate it before committing. Build with liboffloadmic passed. OK for trunk? -- Ilya * Makefile.in: Regenerate. diff --git a/Makefile.in b

[PATCH][OpenMP] Fix named critical sections inside target functions

2014-11-21 Thread Ilya Verbin
Hi, '#pragma omp critical (name)' can be placed in the function, marked with '#pragma omp declare target', in this case the corresponding node should be marked as offloadable too. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? -- Ilya gcc/ * omp-low.c

Re: [PATCH][OpenMP] Fix named critical sections inside target functions

2014-11-21 Thread Ilya Verbin
On 21 Nov 2014, at 23:36, Jakub Jelinek ja...@redhat.com wrote: On Fri, Nov 21, 2014 at 11:19:26PM +0300, Ilya Verbin wrote: Hi, '#pragma omp critical (name)' can be placed in the function, marked with '#pragma omp declare target', in this case the corresponding node should be marked

Re: [PATCH][OpenMP] Fix named critical sections inside target functions

2014-11-21 Thread Ilya Verbin
On 22 Nov 2014, at 00:11, H.J. Lu hjl.to...@gmail.com wrote: Have you fixed the offloading issue with binutils 2.25? No, I'm still thinking how to make a patch better than the former... Probably will send it on Monday. (Regressions in make check disappeared after disabling offload IR in

Re: [PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-24 Thread Ilya Verbin
On 17 Nov 10:57, Richard Biener wrote: On Fri, Nov 14, 2014 at 6:08 PM, Ilya Verbin iver...@gmail.com wrote: On 14 Nov 09:01, H.J. Lu wrote: On Fri, Nov 14, 2014 at 8:51 AM, Ilya Verbin iver...@gmail.com wrote: On 14 Nov 08:46, H.J. Lu wrote: What happens when -flto is used on command

Re: [PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-27 Thread Ilya Verbin
On 25 Nov 10:51, Richard Biener wrote: In the patch adding flag_generate_offload sounds like a good solution, I didn't like emitting fat LTO objects unconditionally just because we offload. Here is updated patch. Bootstrap and make check passed on i686-linux and x86_64-linux. Tests with

Re: [PATCH] Fix regressions in libgomp testsuite: set flag_fat_lto_objects for offload

2014-11-27 Thread Ilya Verbin
On 27 Nov 16:00, Richard Biener wrote: On Thu, Nov 27, 2014 at 2:31 PM, Ilya Verbin iver...@gmail.com wrote: On 25 Nov 10:51, Richard Biener wrote: In the patch adding flag_generate_offload sounds like a good solution, I didn't like emitting fat LTO objects unconditionally just because we

Re: [PATCH][OpenMP] Fix named critical sections inside target functions

2014-11-27 Thread Ilya Verbin
On 21 Nov 21:36, Jakub Jelinek wrote: On Fri, Nov 21, 2014 at 11:19:26PM +0300, Ilya Verbin wrote: '#pragma omp critical (name)' can be placed in the function, marked with '#pragma omp declare target', in this case the corresponding node should be marked as offloadable too. Bootstrapped

Re: [PATCH 6/n] OpenMP 4.0 offloading infrastructure: option handling

2014-11-27 Thread Ilya Verbin
On 11 Oct 18:49, Ilya Verbin wrote: (run_gcc): Outline options handling into the new functions: find_and_merge_options, append_compiler_options, append_linker_options. ... @@ -625,18 +893,13 @@ run_gcc (unsigned argc, char *argv[]) /* Look at saved options in the IL files

Re: [PATCH 1/n] OpenMP 4.0 offloading infrastructure

2014-09-26 Thread Ilya Verbin
(after everything has been reviewed)? 2014-09-26 Bernd Schmidt ber...@codesourcery.com Thomas Schwinge tho...@codesourcery.com Ilya Verbin ilya.ver...@intel.com Andrey Turetskiy andrey.turets...@intel.com * configure: Regenerate

Re: [GOMP4, RFC] OpenMP4 offload support for Intel PHI targets.

2014-09-26 Thread Ilya Verbin
Hi, I also rebased and updated our branch: https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/kyukhin/gomp4-offload It contains fixes for the issues, mentioned in Offloading not relocatable. https://gcc.gnu.org/wiki/Offloading was updated accordingly. -- Ilya

[PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-09-27 Thread Ilya Verbin
referenced_from_other_partition_p and reachable_from_other_partition_p unchanged, then used_from_other_partition will have incorrect value for target regions, but the offload compiler will just ignore it. Which approach is better? Anyway, now it's bootstrapped and regtested on i686-linux and x86_64-linux. 2014-09-27 Ilya

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-09-29 Thread Ilya Verbin
On 29 Sep 03:10, Jan Hubicka wrote: dump for me implied debug dump. LTO is usually called streaming, so prehaps need_lto_stremaing? Fixed. +initialize_offload (void) Perhaps have_offload_p? Nothing is initialized here... The next patch will add some initialization to this function. And

[PATCH 3/n] OpenMP 4.0 offloading infrastructure: offload tables

2014-09-30 Thread Ilya Verbin
Ilya Verbin ilya.ver...@intel.com Bernd Schmidt ber...@codesourcery.com Andrey Turetskiy andrey.turets...@intel.com Michael Zolotukhin michael.v.zolotuk...@intel.com gcc/ * Makefile.in (GTFILES): Add omp-low.h to list of GC files. * cgraphunit.c

Re: [PATCH 1/n] OpenMP 4.0 offloading infrastructure

2014-10-01 Thread Ilya Verbin
On 26 Sep 22:02, Joseph S. Myers wrote: Any patch adding new configure options needs to add documentation of the semantics of those options in install.texi. I see no such documentation in this patch. Done. On 30 Sep 13:16, Thomas Schwinge wrote: Doesn't that comment belong to

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-10-01 Thread Ilya Verbin
On 30 Sep 13:40, Thomas Schwinge wrote: As just discussed for the libgcc changes in http://news.gmane.org/find-root.php?message_id=%3C87d2ad73ze.fsf%40schwinge.name%3E, just some suggestions regarding the terminology, where I think that the term »target« might be confusing in comments or

[PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-02 Thread Ilya Verbin
) into the new host's object file. Bootstrapped and regtested on top of patch 3. Is it OK for trunk? Thanks, -- Ilya 2014-10-02 Ilya Verbin ilya.ver...@intel.com Bernd Schmidt ber...@codesourcery.com Andrey Turetskiy andrey.turets...@intel.com Michael Zolotukhin

[PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-06 Thread Ilya Verbin
Hello, This patch adds plugin support to libgomp, as well as memory mapping and interaction with target devices through plugin's interface. Bootstrapped and regtested on top of patch 4. Is it OK for trunk? Thanks, -- Ilya 2014-10-06 Jakub Jelinek ja...@redhat.com Ilya Verbin

Re: [PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-07 Thread Ilya Verbin
On 07 Oct 15:06, Jakub Jelinek wrote: Still have issues with the non-installed testing. The idea was that the offload compiler should be installed. If I add -B /usr/src/gcc-git/objinst/usr/local/lib/gcc/x86_64-pc-linux-gnu/5.0.0/ \ -B

Re: [PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-07 Thread Ilya Verbin
On 07 Oct 16:30, Jakub Jelinek wrote: Another thing I've noticed, when target-1.exe is built, there are tons of sections that IMHO should have been stripped away: Could you please re-checkout the branch? I fixed this issue a week ago. Thanks, -- Ilya

Re: [PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-07 Thread Ilya Verbin
On 07 Oct 16:30, Jakub Jelinek wrote: I think it is useful, doesn't have to be in the initial checkin, but I'd certainly prefer if from the (optional) --enable-offload-target argument it would figure out everything it needs to add for testing. And, if mkoffload isn't flexible enough to be

Re: [PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-08 Thread Ilya Verbin
I rebased and updated kyukhin/gomp4-offload branch. It contains renaming of sections/symbols and fixes the cleanup of temporary directories in the offload emulator. On 07 Oct 21:40, Jakub Jelinek wrote: One more thing, I've noticed that running target-1.exe testcase also leaves

Re: [PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-09 Thread Ilya Verbin
On 08 Oct 12:26, Jakub Jelinek wrote: On Thu, Oct 02, 2014 at 07:14:57PM +0400, Ilya Verbin wrote: @@ -1296,6 +1297,9 @@ static const char *const standard_startfile_prefix_2 relative to the driver. */ static const char *const tooldir_base_prefix = TOOLDIR_BASE_PREFIX

Re: [PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-09 Thread Ilya Verbin
On 09 Oct 16:07, Ilya Verbin wrote: + /* By default linker does not discard .gnu.offload_lto_* sections. */ + const char *linker_script = make_temp_file (_linker_script.x); + FILE *stream = fopen (linker_script, w); + if (!stream) + fatal_error (fopen %s: %m

[PATCH 6/n] OpenMP 4.0 offloading infrastructure: option handling

2014-10-11 Thread Ilya Verbin
/gomp4-offload branch is updated correspondingly. Thanks, -- Ilya 2014-10-11 Bernd Schmidt ber...@codesourcery.com Andrey Turetskiy andrey.turets...@intel.com Ilya Verbin ilya.ver...@intel.com gcc/ * common.opt (foffload, foffload-abi): New options

Re: [PATCH 6/n] OpenMP 4.0 offloading infrastructure: option handling

2014-10-13 Thread Ilya Verbin
On 13 Oct 12:19, Jakub Jelinek wrote: But I'd like to understand why is this one needed. Why should the compilers care? Aggregates layout and alignment of integral/floating types must match between host and offload compilers, sure, but isn't that something streamed already in the LTO

Re: [PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-13 Thread Ilya Verbin
On 10 Oct 19:00, Jakub Jelinek wrote: On Fri, Oct 10, 2014 at 09:51:02AM -0700, Cary Coutant wrote: The linker already has a --strip-lto-sections option, and it's on by default. I'll approve a patch that modifies gold to recognize .gnu.offload_lto.* sections as part of --strip-lto-sections.

Re: [PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-15 Thread Ilya Verbin
On 14 Oct 11:40, Jakub Jelinek wrote: My preference would be to add the | SECTION_EXCLUDE unconditionally, and instead guard the if (flags SECTION_EXCLUDE) *f++ = 'e'; in varasm.c (default_elf_asm_named_section). The only other user of SECTION_EXCLUDE seems to be -gsplit-dwarf right

[PATCH 7/n] OpenMP 4.0 offloading infrastructure: testsuite

2014-10-15 Thread Ilya Verbin
.pdf Thanks, -- Ilya 2014-10-15 Andrey Turetskiy andrey.turets...@intel.com Ilya Verbin ilya.ver...@intel.com Kirill Yukhin kirill.yuk...@intel.com Ilya Tocar ilya.to...@intel.com libgomp/ * testsuite/lib/libgomp.exp

Re: [PATCH 7/n] OpenMP 4.0 offloading infrastructure: testsuite

2014-10-15 Thread Ilya Verbin
On 15 Oct 17:05, Jakub Jelinek wrote: This patch adds all examples with '#pragma omp target' from [1] to libgomp testsuite. Without an accelerator or emulator, these tests are UNSUPPORTED. Why? Most of the tests should work just fine with host fallback. Yeah, from Examples 4.0.1 I'm

Re: [PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-16 Thread Ilya Verbin
On 15 Oct 16:38, Jakub Jelinek wrote: Done. But it turned out that the gcc_GAS_CHECK_FEATURE from gcc/configure.ac: gcc_GAS_CHECK_FEATURE([.section with e], gcc_cv_as_section_has_e, [2,22,51],, [.section foo1,e .byte 0,0,0,0]) does not work properly. Maybe it works on

Re: [PATCH 7/n] OpenMP 4.0 offloading infrastructure: testsuite

2014-10-17 Thread Ilya Verbin
On 15 Oct 17:35, Jakub Jelinek wrote: But we do want to test them with host fallback, which those lines preclude. Just a single dg-require-effective-target offload_device guarded test (which there necessarily is, e.g. the 57.* ones) should be sufficient for your purposes (if you want to diff

Re: [PATCH 7/n] OpenMP 4.0 offloading infrastructure: testsuite

2014-10-17 Thread Ilya Verbin
On 17 Oct 16:14, Jakub Jelinek wrote: -volatile int v; +volatile int v = 0; Why? Ok, I'll revert it back. --- a/libgomp/testsuite/libgomp.c/target-7.c +++ b/libgomp/testsuite/libgomp.c/target-7.c @@ -1,7 +1,9 @@ +// { dg-require-effective-target offload_device } + Why? The

Re: [PATCH 7/n] OpenMP 4.0 offloading infrastructure: testsuite

2014-10-17 Thread Ilya Verbin
On 17 Oct 17:10, Jakub Jelinek wrote: On Fri, Oct 17, 2014 at 06:58:17PM +0400, Ilya Verbin wrote: Here in the original test you have: #pragma omp target if (v = 1) if (omp_get_level () != 0 || (f !omp_is_initial_device ())) abort (); #pragma omp target device (d) if (v

Re: [PATCH 7/n] OpenMP 4.0 offloading infrastructure: testsuite

2014-10-17 Thread Ilya Verbin
On 17 Oct 17:18, Jakub Jelinek wrote: On Fri, Oct 17, 2014 at 07:17:31PM +0400, Ilya Verbin wrote: On 17 Oct 17:10, Jakub Jelinek wrote: Well, there is no need to remove them, just the || (f !omp_is_initial_device ()) should be dropped from target regions without device (d) on them

[PATCH, committed] Set SECTION_EXCLUDE flag for LTO sections.

2014-10-19 Thread Ilya Verbin
2014-10-19 Ilya Verbin ilya.ver...@intel.com gcc/ * configure: Regenerate. * configure.ac: Move the test for section attribute specifier e in GAS out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings. * langhooks.c (lhd_begin_section): Set

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-10-20 Thread Ilya Verbin
On 15 Oct 16:23, Richard Biener wrote: +static bool +initialize_offload (void) +{ + bool have_offload = false; + struct cgraph_node *node; + struct varpool_node *vnode; + + FOR_EACH_DEFINED_FUNCTION (node) +if (lookup_attribute (omp declare target, DECL_ATTRIBUTES

Re: [gomp4] Add tables generation

2014-03-27 Thread Ilya Verbin
+#ifdef ACCEL_COMPILER + /* Decls are placed in reversed order in fat-objects, so we need to + revert them back if we compile target. */ ... Actually this change is incorrect. If host binary is built with -flto, then both host gcc and target gcc read decls from lto and target_lto sections

Re: [gomp4] Add tables generation

2014-03-27 Thread Ilya Verbin
On 27 Mar 15:02, Jakub Jelinek wrote: The tables need to be created before IPA, that way it really shouldn't matter in what order you emit them. E.g. the outlined target functions could be added to the table during ompexp pass which actually creates the outlined functions, the vars need to be

Re: [gomp4] Add tables generation

2014-03-27 Thread Ilya Verbin
On 27 Mar 17:16, Jakub Jelinek wrote: Which is why the table created for host by the ompexp pass should be streamed into the target_lto sections (marked specially somehow, special attribute or whatever), and then corresponding target table created from that, rather then created from some

Re: [gomp4] Add tables generation

2014-04-03 Thread Ilya Verbin
2014-04-03 20:13 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: The patch below should be a better fix, making the references to __OPENMP_TARGET__ weak. Does this work for you? Shouldn't we just remove __OPENMP_TARGET__ argument from GOMP_target, since we decided to pass it to

Re: [gomp4] Add tables generation

2014-04-03 Thread Ilya Verbin
2014-04-03 21:06 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: On 04/03/2014 06:53 PM, Ilya Verbin wrote: 2014-04-03 20:13 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: The patch below should be a better fix, making the references to __OPENMP_TARGET__ weak. Does this work for you

Re: [gomp4] Add tables generation

2014-04-03 Thread Ilya Verbin
2014-04-03 21:28 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: On 04/03/2014 07:25 PM, Ilya Verbin wrote: Yes, initially the idea was to use it for look up the right function. But now each DSO will call GOMP_offload_register, and pass unique pointer to __OPENMP_TARGET__ (host_table

Re: [gomp4] Add tables generation

2014-04-17 Thread Ilya Verbin
On 27 Mar 17:16, Jakub Jelinek wrote: On Thu, Mar 27, 2014 at 08:13:00PM +0400, Ilya Verbin wrote: On 27 Mar 15:02, Jakub Jelinek wrote: The tables need to be created before IPA, that way it really shouldn't matter in what order you emit them. E.g. the outlined target functions could

Re: [gomp4] Add tables generation

2014-04-25 Thread Ilya Verbin
On 17 Apr 22:33, Ilya Verbin wrote: Hi Jakub, Could you please take a look at this patch? It fixes the ordering issue in the tables stated above, and passes all the tests that I have. But I'm not sure about its correctness from the architectural point of view. Thanks, -- Ilya Ping.

Re: [gomp4] Add tables generation

2014-05-06 Thread Ilya Verbin
On 05 Apr 17:22, Bernd Schmidt wrote: Things seemed to work over here, but now I'm not certain whether the __start_/__stop_ functionality is GNU ld specific? Maybe we should just go back to the previous version of this patch which didn't try to use this. Bernd This approach does not work

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-05-27 Thread Ilya Verbin
2014-03-01 1:40 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: For your use case, I'd imagine the offload compiler would be built relatively normally as a full build with --enable-as-accelerator-for=x86_64-linux, which would install it into locations where the host will eventually be able to

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-05-27 Thread Ilya Verbin
2014-05-27 14:59 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: There isn't a way to do this. For ptx, target libraries can't be built anyway. For your use case, I'd recommend building the offload gcc first, installing it, and then building the host gcc with --enable-offload-targets as

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-05-27 Thread Ilya Verbin
2014-05-27 15:15 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: On 05/27/2014 01:11 PM, Ilya Verbin wrote: Do I understand correctly that you recommend to build our offload gcc manually, rather than during configure/make? Well, configure/make it separately - build and install it first

Re: [gomp4] Add tables generation

2014-06-10 Thread Ilya Verbin
On 10 Jun 15:52, Bernd Schmidt wrote: On 04/17/2014 08:33 PM, Ilya Verbin wrote: +{ + /* Collect all omp-target global variables to offload_vars, if they have not + been gathered earlier by input_offload_tables. */ + if (vec_safe_is_empty (offload_vars)) What if a variable

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-06-17 Thread Ilya Verbin
Hello Bernd, On 28 Feb 17:21, Bernd Schmidt wrote: For your use case, I'd imagine the offload compiler would be built relatively normally as a full build with --enable-as-accelerator-for=x86_64-linux, which would install it into locations where the host will eventually be able to find it.

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-06-18 Thread Ilya Verbin
On 17 Jun 21:22, Bernd Schmidt wrote: On 06/17/2014 08:20 PM, Ilya Verbin wrote: I don't get this part of the plan. Where a host compiler will look for mkoffloads? E.g., first I configure/make/install the target gcc and corresponding mkoffload with the following options: --enable

Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-01-28 Thread Ilya Verbin
Adding gcc-patches. Hi Bernd, The table is used in libgomp (see my patch [1]), as proposed by Jakub (see [2]). The idea is that the order of entries in the host and target tables must be identical. This allows to set up one-to-one correspondence between host and target addresses. In my patch

Re: [RFC][gomp4] Offloading patches (1/3): Add '-fopenmp_target' option

2014-01-28 Thread Ilya Verbin
Hi Bernd, 2014/1/27 Bernd Schmidt ber...@codesourcery.com: Once I worked around this by unsetting the environment variables around this compiler invocation here, the next problem is exposed - the code tries to link together files compiled for the target (created by the code quoted above) and

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-01-29 Thread Ilya Verbin
2014/1/29 Bernd Schmidt ber...@codesourcery.com: I was worried the answer was going to be something like this. These are produced by two different compilers/linkers, aren't they? This seems really fragile to me and a recipe for hard-to-debug silent failures. Yes. First we let the driver

Re: [PATCH i386 8/8] [AVX-512] Add SHA support.

2014-01-30 Thread Ilya Verbin
2014-01-30 H.J. Lu hjl.to...@gmail.com: + { OPTION_MASK_ISA_SSE2, CODE_FOR_sha256rnds2, 0, IX86_BUILTIN_SHA256RNDS2, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI }, ^ Is OPTION_MASK_ISA_SSE2 intentional? Should it be OPTION_MASK_ISA_SHA? -- H.J. This

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-02-14 Thread Ilya Verbin
Hi Bernd and Thomas, Are you planning to support offloading from DSO in PTX/CUDA environment? If yes, how are you going to solve the problem of the collision of function names from different DSOs? However, if we decide to use element-wise host-target address mapping, there are opportunities to

[gomp4] libgomp: Don't update copy_from for the existing mappings.

2014-02-17 Thread Ilya Verbin
/ChangeLog.gomp b/libgomp/ChangeLog.gomp index 8f3da2b..12c0c53 100644 --- a/libgomp/ChangeLog.gomp +++ b/libgomp/ChangeLog.gomp @@ -1,3 +1,8 @@ +2014-02-17 Ilya Verbin ilya.ver...@intel.com + + * target.c (gomp_map_vars_existing): Don't update copy_from for the + existing mappings. + 2014-01

Re: [gomp4] libgomp: Don't update copy_from for the existing mappings.

2014-02-18 Thread Ilya Verbin
2014-02-18 20:25 GMT+04:00 Thomas Schwinge tho...@codesourcery.com: Sure; this was the consensus, as I understand it. Though, wouldn't it make sense to also add a test case to a) test for this behavior, and also b) to document the GCC interpretation of the OpenMP standard in this case

Re: [gomp4] libgomp: plugin for non-shared memory host execution (was: libgomp.c/target-1.c failing in fn2's GOMP_target_update)

2014-02-19 Thread Ilya Verbin
2014-02-19 20:10 GMT+04:00 Thomas Schwinge tho...@codesourcery.com: Here is such a libgomp plugin plus the infrastructure for initial support of non-shared memory host execution. Any comments? Grüße, Thomas This plugin looks good. I think the function call in GOMP_target also should be

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-02-21 Thread Ilya Verbin
2014-02-20 22:27 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: There were still a number of things in these patches that did not make sense to me and which I've changed. Let me know if there was a good reason for the way some of these things were originally done. * Functions and variables

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-02-21 Thread Ilya Verbin
2014-02-21 19:41 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: The problem is that ptx does not have a linker, so we cannot exactly reproduce what happens on the host side. We have to process all host .o files in one single invocation of ptx lto1, and produce a single ptx assembly file,

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-02-28 Thread Ilya Verbin
2014-02-20 22:27 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: * Functions and variables now go into different tables, otherwise intermixing between them could be a problem that causes tables to go out of sync between host and target (imagine one big table being generated by ptx

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-02-28 Thread Ilya Verbin
On 28 Feb 17:21, Bernd Schmidt wrote: It would help to see the code you have on the libgomp side, I don't believe that's been posted yet? It was posted here: http://gcc.gnu.org/ml/gcc-patches/2013-12/msg01777.html And below is the updated version. --- libgomp/libgomp.map |1 +

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-03-06 Thread Ilya Verbin
2014-03-06 12:47 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: I don't see why you want the array of target descriptors - it would take some effort to construct, and as far as I can tell it's unnecessary. You can just pass a pointer to the corresponding descriptor to every

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-03-06 Thread Ilya Verbin
2014-03-06 15:53 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: No. I don't think we need a global constructor for registering __OPENMP_TARGET_HOST__ - this would unnecessarily bloat crtbegin/crtend. We also shouldn't need to have the target tables known outside of the image constructed by

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-03-08 Thread Ilya Verbin
Hi Bernd, Here is updated patch for libgomp. It assumes that there is a constructor with a call to GOMP_offload_register in every target image, created by mkoffload tool. How does this look? --- libgomp/libgomp.map |1 + libgomp/plugin-host.c | 58 - libgomp/target.c

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-03-12 Thread Ilya Verbin
2014-03-12 18:12 GMT+04:00 Bernd Schmidt ber...@codesourcery.com: LGTM. Shall I start committing my changes to the branch? Yes, I think you should commit your changes. And we will rewrite our part to use the new configure approach. -- Ilya

Re: [RFC][gomp4] Offloading: Add device initialization and host-target function mapping

2014-03-12 Thread Ilya Verbin
/ChangeLog.gomp @@ -1,3 +1,32 @@ +2014-03-12 Ilya Verbin ilya.ver...@intel.com + + * libgomp.map (GOMP_4.0): Add GOMP_offload_register. + * plugin-host.c (device_available): Replace with: + (get_num_devices): This. + (get_type): New. + (offload_register): Ditto

Re: [RFC][gomp4] Offloading: Add device initialization and host-target function mapping

2014-03-17 Thread Ilya Verbin
Ping. 2014-03-12 21:56 GMT+04:00 Ilya Verbin iver...@gmail.com: Hi Thomas, Here is a new version of this patch (it was discussed in other thread: http://gcc.gnu.org/ml/gcc-patches/2014-03/msg00573.html ) with ChangeLog. Bootstrap and make check passed. Ok to commit? -- Ilya

Re: Fwd: [RFC][gomp4] Offloading patches (2/3): Add tables generation

2014-03-18 Thread Ilya Verbin
On 17 Mar 16:00, Thomas Schwinge wrote: GOMP_4.0 { global: + GOMP_offload_register; GOMP_barrier_cancel; GOMP_cancel; GOMP_cancellation_point; Now that the GOMP_4.0 symbol version is being used in GCC trunk, and will be in the GCC 4.9 release, can we still add new

[PATCH 0/4] OpenMP 4.0 offloading to Intel MIC

2014-10-21 Thread Ilya Verbin
Hello, This patchset would contain target-specific things to support offloading to the devices with Intel MIC architecture. Particularly: mkoffload tool, liboffloadmic library and a plugin for libgomp. -- Ilya

[PATCH 1/4] Add mkoffload for Intel MIC

2014-10-21 Thread Ilya Verbin
object file that can be linked in with the host binary. Also the final object contains a constructor that calls GOMP_offload_register to identify itself at runtime. Autogenerated files are skipped. Is it ok for trunk? Thanks, -- Ilya 2014-10-21 Ilya Verbin ilya.ver...@intel.com

[PATCH 3/4] Add libgomp plugin for Intel MIC

2014-10-21 Thread Ilya Verbin
, and it uses liboffloadmic_target.so. The plugin builds automatically with liboffloadmic. Autogenerated files are skipped. Is it ok for trunk? Thanks, -- Ilya 2014-10-21 Ilya Verbin ilya.ver...@intel.com Andrey Turetskiy andrey.turets...@intel.com liboffloadmic

Re: [PATCH 1/4] Add mkoffload for Intel MIC

2014-10-21 Thread Ilya Verbin
2014-10-22 1:55 GMT+04:00 Joseph S. Myers jos...@codesourcery.com: On Tue, 21 Oct 2014, Ilya Verbin wrote: +#include libgen.h +#include config.h +#include system.h You should never include system headers before config.h because config.h may define feature test macros

Re: [PATCH 1/4] Add mkoffload for Intel MIC

2014-10-22 Thread Ilya Verbin
On 22 Oct 09:57, Jakub Jelinek wrote: On Wed, Oct 22, 2014 at 02:30:44AM +0400, Ilya Verbin wrote: This mkoffload is expected to be built only with the offload compiler, which is expected to be configured with '--enable-as-accelerator-for=... --host=x86_64-*-linux-gnu --target=x86_64

Re: [PATCH 2/4] Add liboffloadmic

2014-10-22 Thread Ilya Verbin
On 22 Oct 10:54, Jakub Jelinek wrote: On Tue, Oct 21, 2014 at 09:20:34PM +0400, Ilya Verbin wrote: This patch contains liboffloadmic library. It is used by ICC for offloading. The sources are imported from upstream ( https://www.openmprtl.org/sites/default/files/liboffload_oss.tgz

Re: [PATCH 3/4] Add libgomp plugin for Intel MIC

2014-10-23 Thread Ilya Verbin
On 22 Oct 11:22, Jakub Jelinek wrote: On Tue, Oct 21, 2014 at 09:24:13PM +0400, Ilya Verbin wrote: + mic_lib_path_new = (char *) malloc ((mic_lib_path ? strlen (mic_lib_path) : 0) + + strlen (ld_lib_path) + 2); malloc can fail, SIGSEGV in response

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-10-24 Thread Ilya Verbin
On 20 Oct 15:19, Ilya Verbin wrote: On 15 Oct 16:23, Richard Biener wrote: +static bool +initialize_offload (void) +{ + bool have_offload = false; + struct cgraph_node *node; + struct varpool_node *vnode; + + FOR_EACH_DEFINED_FUNCTION (node

Re: [PATCH 3/4] Add libgomp plugin for Intel MIC

2014-10-24 Thread Ilya Verbin
On 24 Oct 16:35, Jakub Jelinek wrote: On Thu, Oct 23, 2014 at 07:41:12PM +0400, Ilya Verbin wrote: malloc can fail, SIGSEGV in response to that is not desirable. Can't you fallback to alloca, or use just alloca, or use alloca with malloc fallback? I replaced it with alloca

Re: [PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-24 Thread Ilya Verbin
On 08 Oct 13:08, Jakub Jelinek wrote: On Mon, Oct 06, 2014 at 07:53:17PM +0400, Ilya Verbin wrote: 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

  1   2   3   4   >