Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-13 Thread Jeff Law

On 05/11/2016 09:59 AM, Ilya Verbin wrote:

On Wed, May 11, 2016 at 10:47:49 +0100, Ramana Radhakrishnan wrote:



I've looked at the generated code in more details, and for armv6 this generates
mcr p15, 0, r0, c7, c10, 5
which is not what __cilkrts_fence uses currently (CP15DSB vs CP15DMB)


Wow I hadn't noticed that it was a DSB -  DSB is way too heavy weight. Userland 
shouldn't need to use this by default IMNSHO. It's needed if you are working on 
non-cacheable memory or performing cache maintenance operations but I can't 
imagine cilkplus wanting to do that !

http://infocenter.arm.com/help/topic/com.arm.doc.genc007826/Barrier_Litmus_Tests_and_Cookbook_A08.pdf

It's almost like the default definitions need to be in terms of the atomic 
extensions rather than having these written in this form. Folks usually get 
this wrong !


Looking at arm/sync.md it seems that there is no way to generate CP15DSB.


No - there is no way of generating DSB,  DMB's should be sufficient for this 
purpose. Would anyone know what the semantics of __cilkrts_fence are that 
require this to be a DSB ?


__cilkrts_fence semantics is identical to __sync_synchronize, so DMB look OK.

Maybe we should just define:
  #define __cilkrts_fence() __sync_synchronize()
Certainly seems like indirecting through a compiler builtin rather than 
using an ASM would be advisable.


jeff



Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-11 Thread Ilya Verbin
On Wed, May 11, 2016 at 10:47:49 +0100, Ramana Radhakrishnan wrote:
> 
> > I've looked at the generated code in more details, and for armv6 this 
> > generates
> > mcr p15, 0, r0, c7, c10, 5
> > which is not what __cilkrts_fence uses currently (CP15DSB vs CP15DMB)
> 
> Wow I hadn't noticed that it was a DSB -  DSB is way too heavy weight. 
> Userland shouldn't need to use this by default IMNSHO. It's needed if you are 
> working on non-cacheable memory or performing cache maintenance operations 
> but I can't imagine cilkplus wanting to do that ! 
> 
> http://infocenter.arm.com/help/topic/com.arm.doc.genc007826/Barrier_Litmus_Tests_and_Cookbook_A08.pdf
> 
> It's almost like the default definitions need to be in terms of the atomic 
> extensions rather than having these written in this form. Folks usually get 
> this wrong ! 
> 
> > Looking at arm/sync.md it seems that there is no way to generate CP15DSB.
> 
> No - there is no way of generating DSB,  DMB's should be sufficient for this 
> purpose. Would anyone know what the semantics of __cilkrts_fence are that 
> require this to be a DSB ? 

__cilkrts_fence semantics is identical to __sync_synchronize, so DMB look OK.

Maybe we should just define:
  #define __cilkrts_fence() __sync_synchronize()
?

  -- Ilya

> Ramana
> 
> > 
> >> Christophe
> >>
> >>> Thanks,
> >>>   -- Ilya


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-11 Thread Ramana Radhakrishnan

> 
> I've looked at the generated code in more details, and for armv6 this 
> generates
> mcr p15, 0, r0, c7, c10, 5
> which is not what __cilkrts_fence uses currently (CP15DSB vs CP15DMB)


Wow I hadn't noticed that it was a DSB -  DSB is way too heavy weight. Userland 
shouldn't need to use this by default IMNSHO. It's needed if you are working on 
non-cacheable memory or performing cache maintenance operations but I can't 
imagine cilkplus wanting to do that ! 

http://infocenter.arm.com/help/topic/com.arm.doc.genc007826/Barrier_Litmus_Tests_and_Cookbook_A08.pdf

It's almost like the default definitions need to be in terms of the atomic 
extensions rather than having these written in this form. Folks usually get 
this wrong ! 

> 
> Looking at arm/sync.md it seems that there is no way to generate CP15DSB.

No - there is no way of generating DSB,  DMB's should be sufficient for this 
purpose. Would anyone know what the semantics of __cilkrts_fence are that 
require this to be a DSB ? 

Ramana

> 
> 
>> Christophe
>>
>>> Thanks,
>>>   -- Ilya


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-11 Thread Christophe Lyon
On 10 May 2016 at 21:24, Christophe Lyon  wrote:
> On 10 May 2016 at 19:18, Ilya Verbin  wrote:
>> On Tue, May 10, 2016 at 14:36:36 +0100, Ramana Radhakrishnan wrote:
>>> On Tue, May 10, 2016 at 2:02 PM, Christophe Lyon
>>>  wrote:
>>> > On 9 May 2016 at 15:34, Christophe Lyon  
>>> > wrote:
>>> >> On 9 May 2016 at 15:29, Jeff Law  wrote:
>>> >>> On 05/09/2016 01:37 AM, Christophe Lyon wrote:
>>>  After this merge, I'm seeing lots of timeouts on arm (using QEMU).
>>>  Is this "expected"? (as in: should I increase my timeout value)
>>> >>>
>>> >>> I wouldn't say it's expected; this is the first time Cilk+ has been
>>> >>> supported on ARM.  It could be a bug in the ARM support in the runtime, 
>>> >>> an
>>> >>> ARM compiler bug or even a bug in the ARM QEMU support.
>>> >>>
>>> >>> Probably the first step is to see if it's working properly on real 
>>> >>> hardware.
>>> >>> That would at least allow us to eliminate QEMU from the equation if it's
>>> >>> failing in the same manner on a real machine.
>>> >>>
>>> >> OK, I'll check that.
>>> >> I wanted to know if I was missing something obvious.
>>> >
>>> > I've tested in an armhf chroot on an armv8 machine, and I saw SIGILL 
>>> > errors
>>> > on:
>>> > mcr 15, 0, r3, cr7, cr10, {4}
>>> > which is how __cilkrts_fence is implemented in
>>> > ../libcilkrts/runtime/config/arm/os-fence.h
>>>
>>> At first glance I'd ask why this shouldn't be __atomic_thread_fence or
>>> __atomic_signal_fence ( SEQ_CST)  if that's what they want here and
>>> then it will work (TM) regardless of architecture levels.
>>>
>>> > This instruction is not supported anymore on armv8. Recent arm64 kernels
>>> > have handlers for it.
>>> >
>>> > So we may want the implementation to be conditional, or prefer to rely on
>>> > kernel support.
>>
>> ARM enabling code was taken from community contribution, we haven't tested 
>> it.
>> If someone wants to fix this, it would be appreciated.
>>
>
> Following Ramana's suggestion, I tried:
> # define __cilkrts_fence() __atomic_thread_fence(__ATOMIC_SEQ_CST);
> and the tests now pass.
>

I've looked at the generated code in more details, and for armv6 this generates
mcr p15, 0, r0, c7, c10, 5
which is not what __cilkrts_fence uses currently (CP15DSB vs CP15DMB)

Looking at arm/sync.md it seems that there is no way to generate CP15DSB.


> Christophe
>
>> Thanks,
>>   -- Ilya


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-10 Thread Christophe Lyon
On 10 May 2016 at 19:18, Ilya Verbin  wrote:
> On Tue, May 10, 2016 at 14:36:36 +0100, Ramana Radhakrishnan wrote:
>> On Tue, May 10, 2016 at 2:02 PM, Christophe Lyon
>>  wrote:
>> > On 9 May 2016 at 15:34, Christophe Lyon  wrote:
>> >> On 9 May 2016 at 15:29, Jeff Law  wrote:
>> >>> On 05/09/2016 01:37 AM, Christophe Lyon wrote:
>>  After this merge, I'm seeing lots of timeouts on arm (using QEMU).
>>  Is this "expected"? (as in: should I increase my timeout value)
>> >>>
>> >>> I wouldn't say it's expected; this is the first time Cilk+ has been
>> >>> supported on ARM.  It could be a bug in the ARM support in the runtime, 
>> >>> an
>> >>> ARM compiler bug or even a bug in the ARM QEMU support.
>> >>>
>> >>> Probably the first step is to see if it's working properly on real 
>> >>> hardware.
>> >>> That would at least allow us to eliminate QEMU from the equation if it's
>> >>> failing in the same manner on a real machine.
>> >>>
>> >> OK, I'll check that.
>> >> I wanted to know if I was missing something obvious.
>> >
>> > I've tested in an armhf chroot on an armv8 machine, and I saw SIGILL errors
>> > on:
>> > mcr 15, 0, r3, cr7, cr10, {4}
>> > which is how __cilkrts_fence is implemented in
>> > ../libcilkrts/runtime/config/arm/os-fence.h
>>
>> At first glance I'd ask why this shouldn't be __atomic_thread_fence or
>> __atomic_signal_fence ( SEQ_CST)  if that's what they want here and
>> then it will work (TM) regardless of architecture levels.
>>
>> > This instruction is not supported anymore on armv8. Recent arm64 kernels
>> > have handlers for it.
>> >
>> > So we may want the implementation to be conditional, or prefer to rely on
>> > kernel support.
>
> ARM enabling code was taken from community contribution, we haven't tested it.
> If someone wants to fix this, it would be appreciated.
>

Following Ramana's suggestion, I tried:
# define __cilkrts_fence() __atomic_thread_fence(__ATOMIC_SEQ_CST);
and the tests now pass.

Christophe

> Thanks,
>   -- Ilya


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-10 Thread Ilya Verbin
On Tue, May 10, 2016 at 14:36:36 +0100, Ramana Radhakrishnan wrote:
> On Tue, May 10, 2016 at 2:02 PM, Christophe Lyon
>  wrote:
> > On 9 May 2016 at 15:34, Christophe Lyon  wrote:
> >> On 9 May 2016 at 15:29, Jeff Law  wrote:
> >>> On 05/09/2016 01:37 AM, Christophe Lyon wrote:
>  After this merge, I'm seeing lots of timeouts on arm (using QEMU).
>  Is this "expected"? (as in: should I increase my timeout value)
> >>>
> >>> I wouldn't say it's expected; this is the first time Cilk+ has been
> >>> supported on ARM.  It could be a bug in the ARM support in the runtime, an
> >>> ARM compiler bug or even a bug in the ARM QEMU support.
> >>>
> >>> Probably the first step is to see if it's working properly on real 
> >>> hardware.
> >>> That would at least allow us to eliminate QEMU from the equation if it's
> >>> failing in the same manner on a real machine.
> >>>
> >> OK, I'll check that.
> >> I wanted to know if I was missing something obvious.
> >
> > I've tested in an armhf chroot on an armv8 machine, and I saw SIGILL errors
> > on:
> > mcr 15, 0, r3, cr7, cr10, {4}
> > which is how __cilkrts_fence is implemented in
> > ../libcilkrts/runtime/config/arm/os-fence.h
> 
> At first glance I'd ask why this shouldn't be __atomic_thread_fence or
> __atomic_signal_fence ( SEQ_CST)  if that's what they want here and
> then it will work (TM) regardless of architecture levels.
> 
> > This instruction is not supported anymore on armv8. Recent arm64 kernels
> > have handlers for it.
> >
> > So we may want the implementation to be conditional, or prefer to rely on
> > kernel support.

ARM enabling code was taken from community contribution, we haven't tested it.
If someone wants to fix this, it would be appreciated.

Thanks,
  -- Ilya


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-10 Thread Ilya Verbin
On Mon, May 09, 2016 at 11:39:51 +0200, Matthias Klose wrote:
> >well, it breaks the build for many multilib configurations where multilib
> >binaries cannot be run on the current environment, e.g. building x32 
> >multilibs
> >on a kernel which doesn't have x32 enabled.
> >
> >The reason is again moving compiler checks (AC_USE_SYSTEM_EXTENSIONS) in the
> >configure.ac before the AM_ENABLE_MULTILIB.
> >
> >So please move the AC_USE_SYSTEM_EXTENSIONS macro behind the 
> >AM_ENABLE_MULTILIB,
> >and forward this change upstream if applicable.
> >
> >example build log at
> >https://buildd.debian.org/status/fetch.php?pkg=gcc-snapshot&arch=amd64&ver=20160506-1&stamp=1462580913
> 
> fixed by:
> 
> * configure.ac: Move AC_USE_SYSTEM_EXTENSIONS behind 
> AM_ENABLE_MULTILIB.
> * configure: Regenerate.
> 
> --- a/libcilkrts/configure.ac
> +++ b/libcilkrts/configure.ac
> @@ -51,9 +51,6 @@
>  target_alias=${target_alias-$host_alias}
>  AC_SUBST(target_alias)
> 
> -# Test for GNU extensions. Will define _GNU_SOURCE if they're available
> -AC_USE_SYSTEM_EXTENSIONS
> -
>  AM_INIT_AUTOMAKE(foreign no-dist)
> 
>  AM_MAINTAINER_MODE
> @@ -60,6 +57,9 @@
> 
>  AM_ENABLE_MULTILIB(, ..)
> 
> +# Test for GNU extensions. Will define _GNU_SOURCE if they're available
> +AC_USE_SYSTEM_EXTENSIONS
> +
>  # Build a DLL on Windows
>  # AC_LIBTOOL_WIN32_DLL
>  AC_PROG_CC

Thanks for investigating and fixing this.  The patch is pushed upstream.

  -- Ilya


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-10 Thread Ramana Radhakrishnan
On Tue, May 10, 2016 at 2:02 PM, Christophe Lyon
 wrote:
> On 9 May 2016 at 15:34, Christophe Lyon  wrote:
>> On 9 May 2016 at 15:29, Jeff Law  wrote:
>>> On 05/09/2016 01:37 AM, Christophe Lyon wrote:
>>>

 Hi,
 After this merge, I'm seeing lots of timeouts on arm (using QEMU).
 Is this "expected"? (as in: should I increase my timeout value)
>>>
>>> I wouldn't say it's expected; this is the first time Cilk+ has been
>>> supported on ARM.  It could be a bug in the ARM support in the runtime, an
>>> ARM compiler bug or even a bug in the ARM QEMU support.
>>>
>>> Probably the first step is to see if it's working properly on real hardware.
>>> That would at least allow us to eliminate QEMU from the equation if it's
>>> failing in the same manner on a real machine.
>>>
>> OK, I'll check that.
>> I wanted to know if I was missing something obvious.
>>
>
> I've tested in an armhf chroot on an armv8 machine, and I saw SIGILL errors
> on:
> mcr 15, 0, r3, cr7, cr10, {4}
> which is how __cilkrts_fence is implemented in
> ../libcilkrts/runtime/config/arm/os-fence.h

At first glance I'd ask why this shouldn't be __atomic_thread_fence or
__atomic_signal_fence ( SEQ_CST)  if that's what they want here and
then it will work (TM) regardless of architecture levels.



regards
Ramana



> This instruction is not supported anymore on armv8. Recent arm64 kernels
> have handlers for it.
>
> So we may want the implementation to be conditional, or prefer to rely on
> kernel support.
>
> In the mean time, I am going to disable cilkplus in my validations, as it
> is causing too much noise in the results.
>
> Christophe.
>
>
>>> Jeff
>>>


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-10 Thread Christophe Lyon
On 9 May 2016 at 15:34, Christophe Lyon  wrote:
> On 9 May 2016 at 15:29, Jeff Law  wrote:
>> On 05/09/2016 01:37 AM, Christophe Lyon wrote:
>>
>>>
>>> Hi,
>>> After this merge, I'm seeing lots of timeouts on arm (using QEMU).
>>> Is this "expected"? (as in: should I increase my timeout value)
>>
>> I wouldn't say it's expected; this is the first time Cilk+ has been
>> supported on ARM.  It could be a bug in the ARM support in the runtime, an
>> ARM compiler bug or even a bug in the ARM QEMU support.
>>
>> Probably the first step is to see if it's working properly on real hardware.
>> That would at least allow us to eliminate QEMU from the equation if it's
>> failing in the same manner on a real machine.
>>
> OK, I'll check that.
> I wanted to know if I was missing something obvious.
>

I've tested in an armhf chroot on an armv8 machine, and I saw SIGILL errors
on:
mcr 15, 0, r3, cr7, cr10, {4}
which is how __cilkrts_fence is implemented in
../libcilkrts/runtime/config/arm/os-fence.h

This instruction is not supported anymore on armv8. Recent arm64 kernels
have handlers for it.

So we may want the implementation to be conditional, or prefer to rely on
kernel support.

In the mean time, I am going to disable cilkplus in my validations, as it
is causing too much noise in the results.

Christophe.


>> Jeff
>>


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-09 Thread Christophe Lyon
On 9 May 2016 at 15:29, Jeff Law  wrote:
> On 05/09/2016 01:37 AM, Christophe Lyon wrote:
>
>>
>> Hi,
>> After this merge, I'm seeing lots of timeouts on arm (using QEMU).
>> Is this "expected"? (as in: should I increase my timeout value)
>
> I wouldn't say it's expected; this is the first time Cilk+ has been
> supported on ARM.  It could be a bug in the ARM support in the runtime, an
> ARM compiler bug or even a bug in the ARM QEMU support.
>
> Probably the first step is to see if it's working properly on real hardware.
> That would at least allow us to eliminate QEMU from the equation if it's
> failing in the same manner on a real machine.
>
OK, I'll check that.
I wanted to know if I was missing something obvious.

> Jeff
>


Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-09 Thread Jeff Law

On 05/09/2016 01:37 AM, Christophe Lyon wrote:



Hi,
After this merge, I'm seeing lots of timeouts on arm (using QEMU).
Is this "expected"? (as in: should I increase my timeout value)
I wouldn't say it's expected; this is the first time Cilk+ has been 
supported on ARM.  It could be a bug in the ARM support in the runtime, 
an ARM compiler bug or even a bug in the ARM QEMU support.


Probably the first step is to see if it's working properly on real 
hardware.  That would at least allow us to eliminate QEMU from the 
equation if it's failing in the same manner on a real machine.


Jeff



Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-09 Thread Matthias Klose

On 07.05.2016 16:35, Matthias Klose wrote:

On 02.05.2016 17:51, Jeff Law wrote:

On 04/29/2016 05:36 AM, Ilya Verbin wrote:

Hi!

This patch brings the latest libcilkrts from upstream.
Regtested on i686-linux and x86_64-linux.

Abidiff:
Functions changes summary: 0 Removed, 1 Changed (16 filtered out), 2 Added
functions
Variables changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added
variable
2 Added functions:
  'function void __cilkrts_resume()'{__cilkrts_resume@@CILKABI1}
  'function void __cilkrts_suspend()'{__cilkrts_suspend@@CILKABI1}
1 function with some indirect sub-type change:
  [C]'function __cilkrts_worker_ptr __cilkrts_bind_thread_1()' at
cilk-abi.c:412:1 has some indirect sub-type changes:
Please note that the symbol of this function is
__cilkrts_bind_thread@@CILKABI0
 and it aliases symbol: __cilkrts_bind_thread_1@@CILKABI1
return type changed:
  underlying type '__cilkrts_worker*' changed:
in pointed to type 'struct __cilkrts_worker' at abi.h:161:1:
  1 data member changes (8 filtered):
   type of 'global_state_t* __cilkrts_worker::g' changed:
 in pointed to type 'typedef global_state_t' at abi.h:113:1:
   underlying type 'struct global_state_t' at global_state.h:119:1
changed:
   [...]

OK for trunk?

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacall_impl.h: Likewise.
* runtime/os-unix.c: Likewise.
* runtime/os.h: Likewise.
* runtime/os_mutex-unix.c: Likewise.
* runtime/os_mutex.h: Likewise.
* runtime/pedigrees.c: Likewise.
* runtime/pedigrees.h: Likewise.
* r

Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-09 Thread Christophe Lyon
On 2 May 2016 at 17:51, Jeff Law  wrote:
> On 04/29/2016 05:36 AM, Ilya Verbin wrote:
>>
>> Hi!
>>
>> This patch brings the latest libcilkrts from upstream.
>> Regtested on i686-linux and x86_64-linux.
>>
>> Abidiff:
>> Functions changes summary: 0 Removed, 1 Changed (16 filtered out), 2 Added
>> functions
>> Variables changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added
>> variable
>> 2 Added functions:
>>   'function void __cilkrts_resume()'{__cilkrts_resume@@CILKABI1}
>>   'function void __cilkrts_suspend()'{__cilkrts_suspend@@CILKABI1}
>> 1 function with some indirect sub-type change:
>>   [C]'function __cilkrts_worker_ptr __cilkrts_bind_thread_1()' at
>> cilk-abi.c:412:1 has some indirect sub-type changes:
>> Please note that the symbol of this function is
>> __cilkrts_bind_thread@@CILKABI0
>>  and it aliases symbol: __cilkrts_bind_thread_1@@CILKABI1
>> return type changed:
>>   underlying type '__cilkrts_worker*' changed:
>> in pointed to type 'struct __cilkrts_worker' at abi.h:161:1:
>>   1 data member changes (8 filtered):
>>type of 'global_state_t* __cilkrts_worker::g' changed:
>>  in pointed to type 'typedef global_state_t' at abi.h:113:1:
>>underlying type 'struct global_state_t' at
>> global_state.h:119:1 changed:
>>[...]
>>
>> OK for trunk?
>>
>> libcilkrts/
>> * Makefile.am: Merge from upstream, version 2.0.4420.0
>> .
>> * README: Likewise.
>> * configure.ac: Likewise.
>> * configure.tgt: Likewise.
>> * include/cilk/cilk.h: Likewise.
>> * include/cilk/cilk_api.h: Likewise.
>> * include/cilk/cilk_api_linux.h: Likewise.
>> * include/cilk/cilk_stub.h: Likewise.
>> * include/cilk/cilk_undocumented.h: Likewise.
>> * include/cilk/common.h: Likewise.
>> * include/cilk/holder.h: Likewise.
>> * include/cilk/hyperobject_base.h: Likewise.
>> * include/cilk/metaprogramming.h: Likewise.
>> * include/cilk/reducer.h: Likewise.
>> * include/cilk/reducer_file.h: Likewise.
>> * include/cilk/reducer_list.h: Likewise.
>> * include/cilk/reducer_max.h: Likewise.
>> * include/cilk/reducer_min.h: Likewise.
>> * include/cilk/reducer_min_max.h: Likewise.
>> * include/cilk/reducer_opadd.h: Likewise.
>> * include/cilk/reducer_opand.h: Likewise.
>> * include/cilk/reducer_opmul.h: Likewise.
>> * include/cilk/reducer_opor.h: Likewise.
>> * include/cilk/reducer_opxor.h: Likewise.
>> * include/cilk/reducer_ostream.h: Likewise.
>> * include/cilk/reducer_string.h: Likewise.
>> * include/cilktools/cilkscreen.h: Likewise.
>> * include/cilktools/cilkview.h: Likewise.
>> * include/cilktools/fake_mutex.h: Likewise.
>> * include/cilktools/lock_guard.h: Likewise.
>> * include/internal/abi.h: Likewise.
>> * include/internal/cilk_fake.h: Likewise.
>> * include/internal/cilk_version.h: Likewise.
>> * include/internal/metacall.h: Likewise.
>> * include/internal/rev.mk: Likewise.
>> * mk/cilk-version.mk: Likewise.
>> * runtime/acknowledgements.dox: Likewise.
>> * runtime/bug.cpp: Likewise.
>> * runtime/bug.h: Likewise.
>> * runtime/c_reducers.c: Likewise.
>> * runtime/cilk-abi-cilk-for.cpp: Likewise.
>> * runtime/cilk-abi-vla-internal.c: Likewise.
>> * runtime/cilk-abi-vla-internal.h: Likewise.
>> * runtime/cilk-abi.c: Likewise.
>> * runtime/cilk-ittnotify.h: Likewise.
>> * runtime/cilk-tbb-interop.h: Likewise.
>> * runtime/cilk_api.c: Likewise.
>> * runtime/cilk_fiber-unix.cpp: Likewise.
>> * runtime/cilk_fiber-unix.h: Likewise.
>> * runtime/cilk_fiber.cpp: Likewise.
>> * runtime/cilk_fiber.h: Likewise.
>> * runtime/cilk_malloc.c: Likewise.
>> * runtime/cilk_malloc.h: Likewise.
>> * runtime/component.h: Likewise.
>> * runtime/config/generic/cilk-abi-vla.c: Likewise.
>> * runtime/config/generic/os-fence.h: Likewise.
>> * runtime/config/generic/os-unix-sysdep.c: Likewise.
>> * runtime/config/x86/cilk-abi-vla.c: Likewise.
>> * runtime/config/x86/os-fence.h: Likewise.
>> * runtime/config/x86/os-unix-sysdep.c: Likewise.
>> * runtime/doxygen-layout.xml: Likewise.
>> * runtime/doxygen.cfg: Likewise.
>> * runtime/except-gcc.cpp: Likewise.
>> * runtime/except-gcc.h: Likewise.
>> * runtime/except.h: Likewise.
>> * runtime/frame_malloc.c: Likewise.
>> * runtime/frame_malloc.h: Likewise.
>> * runtime/full_frame.c: Likewise.
>> * runtime/full_frame.h: Likewise.
>> * runtime/global_state.cpp: Likewise.
>> * runtime/glo

Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-07 Thread Matthias Klose

On 02.05.2016 17:51, Jeff Law wrote:

On 04/29/2016 05:36 AM, Ilya Verbin wrote:

Hi!

This patch brings the latest libcilkrts from upstream.
Regtested on i686-linux and x86_64-linux.

Abidiff:
Functions changes summary: 0 Removed, 1 Changed (16 filtered out), 2 Added
functions
Variables changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added
variable
2 Added functions:
  'function void __cilkrts_resume()'{__cilkrts_resume@@CILKABI1}
  'function void __cilkrts_suspend()'{__cilkrts_suspend@@CILKABI1}
1 function with some indirect sub-type change:
  [C]'function __cilkrts_worker_ptr __cilkrts_bind_thread_1()' at
cilk-abi.c:412:1 has some indirect sub-type changes:
Please note that the symbol of this function is
__cilkrts_bind_thread@@CILKABI0
 and it aliases symbol: __cilkrts_bind_thread_1@@CILKABI1
return type changed:
  underlying type '__cilkrts_worker*' changed:
in pointed to type 'struct __cilkrts_worker' at abi.h:161:1:
  1 data member changes (8 filtered):
   type of 'global_state_t* __cilkrts_worker::g' changed:
 in pointed to type 'typedef global_state_t' at abi.h:113:1:
   underlying type 'struct global_state_t' at global_state.h:119:1
changed:
   [...]

OK for trunk?

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacall_impl.h: Likewise.
* runtime/os-unix.c: Likewise.
* runtime/os.h: Likewise.
* runtime/os_mutex-unix.c: Likewise.
* runtime/os_mutex.h: Likewise.
* runtime/pedigrees.c: Likewise.
* runtime/pedigrees.h: Likewise.
* runtime/record-replay.cpp: Likewise.
* ru

Re: [PATCH][CilkPlus] Merge libcilkrts from upstream

2016-05-02 Thread Jeff Law

On 04/29/2016 05:36 AM, Ilya Verbin wrote:

Hi!

This patch brings the latest libcilkrts from upstream.
Regtested on i686-linux and x86_64-linux.

Abidiff:
Functions changes summary: 0 Removed, 1 Changed (16 filtered out), 2 Added 
functions
Variables changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added 
variable
2 Added functions:
  'function void __cilkrts_resume()'{__cilkrts_resume@@CILKABI1}
  'function void __cilkrts_suspend()'{__cilkrts_suspend@@CILKABI1}
1 function with some indirect sub-type change:
  [C]'function __cilkrts_worker_ptr __cilkrts_bind_thread_1()' at 
cilk-abi.c:412:1 has some indirect sub-type changes:
Please note that the symbol of this function is 
__cilkrts_bind_thread@@CILKABI0
 and it aliases symbol: __cilkrts_bind_thread_1@@CILKABI1
return type changed:
  underlying type '__cilkrts_worker*' changed:
in pointed to type 'struct __cilkrts_worker' at abi.h:161:1:
  1 data member changes (8 filtered):
   type of 'global_state_t* __cilkrts_worker::g' changed:
 in pointed to type 'typedef global_state_t' at abi.h:113:1:
   underlying type 'struct global_state_t' at global_state.h:119:1 
changed:
   [...]

OK for trunk?

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacal