[RS6000] Fix PR53040

2012-04-20 Thread Alan Modra
the store-multiple -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR53038, cfa_restore out of order

2012-04-20 Thread Alan Modra
, cfa_restores); } -- Alan Modra Australia Development Lab, IBM

PowerPC prologue and epilogue 6

2012-04-21 Thread Alan Modra
This patch adds out-of-line vector saves and restores. To do this I made some infrastructure changes to various functions like rs6000_emit_savres_rtx that currently take boolean parameters (savep, gpr, and lr). Rather than add yet another boolean to specify vector regs, I chose to lump them all

Re: PowerPC prologue and epilogue 6

2012-04-24 Thread Alan Modra
; +} -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] Fix PR53038, cfa_restore out of order

2012-04-25 Thread Alan Modra
On Wed, Apr 25, 2012 at 02:00:48PM -0700, Richard Henderson wrote: On 04/20/12 18:58, Alan Modra wrote: + add_reg_note (insn, REG_FRAME_RELATED_EXPR, set); + RTX_FRAME_RELATED_P (insn) = 1; You're probably better off using REG_CFA_REGISTER here, rather than making dwarf2cfi.c

Re: rs6000 toc reference rtl again

2012-04-30 Thread Alan Modra
machine_mode, -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR53271 powerpc ports

2012-05-08 Thread Alan Modra
, cfa_restores); -- Alan Modra Australia Development Lab, IBM

Re: rs6000 toc reference rtl again

2012-05-15 Thread Alan Modra
On Tue, May 01, 2012 at 01:47:51PM +0930, Alan Modra wrote: This revision splits the medium/large code model toc reference after reload. Ping http://gcc.gnu.org/ml/gcc-patches/2012-05/msg6.html -- Alan Modra Australia Development Lab, IBM

rs6000.c forward declaration cleanup

2012-05-20 Thread Alan Modra
to == STACK_POINTER_REGNUM @@ -28205,6 +27995,7 @@ /* This function emits the simple thunk routine that is used to preserve the link stack on the 476 cpu. */ +static void rs6000_code_end (void) ATTRIBUTE_UNUSED; static void rs6000_code_end (void) { -- Alan Modra Australia Development

[RS6000] save/restore reg tidy

2012-05-20 Thread Alan Modra
On Tue, May 08, 2012 at 08:02:39PM +0930, Alan Modra wrote: I also make use of gen_frame_store and siblings that I invented for generating the eh info, elsewhere in rs6000.c where doing so is blindingly obvious. We could probably use them in other places too, but I'll leave that for later

[RS6000] out-of-line save/restore conditions

2012-05-20 Thread Alan Modra
; } -#else - if (TARGET_AIX !(strategy REST_INLINE_FPRS)) + else if (TARGET_AIX !(strategy REST_INLINE_FPRS)) strategy |= REST_NOINLINE_FPRS_DOESNT_RESTORE_LR; -#endif + if (TARGET_MACHO !(strategy SAVE_INLINE_FPRS)) strategy |= SAVE_NOINLINE_FPRS_SAVES_LR; -- Alan Modra

Re: [PATCH] Add powerpc64-linux configuration options

2012-05-24 Thread Alan Modra
gcc defaulting to -m64 builds the 32-bit libraries with -mstrict-align. This is confusing to say the least, and I recall seeing libstdc++ test failures due to the difference. I've had MULTILIB_EXTRA_OPTS = in my t-linux64 for quite some time. -- Alan Modra Australia Development Lab, IBM

Re: PR53914, rs6000 constraints and reload queries

2012-07-24 Thread Alan Modra
memory_operand Y,Y)] UNSPEC_SP_TEST)) (set (match_scratch:DI 4 =r,r) (const_int 0)) (clobber (match_scratch:DI 3 =r,r))] -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR54093, ICE due to 07-24 changes

2012-07-27 Thread Alan Modra
= CODE_FOR_reload_si_load; -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR54131, ICE building 416.gamess

2012-07-31 Thread Alan Modra
false; + gcc_assert (extra = 0); return offset + 0x8000 0x1u - extra; } -- Alan Modra Australia Development Lab, IBM

Re: PR53914, rs6000 constraints and reload queries

2012-08-01 Thread Alan Modra
))] + [(set (match_operand:V2SF 0 nonimmediate_operand =Z,f,f,Y,r,r,f) +(match_operand:V2SF 1 input_operand f,Z,f,r,Y,r,W))] TARGET_PAIRED_FLOAT (register_operand (operands[0], V2SFmode) || register_operand (operands[1], V2SFmode)) -- Alan Modra Australia

[RS6000] asynch exceptions and unwind info

2011-07-26 Thread Alan Modra
+ { + unsigned int *insn + = (unsigned int *) _Unwind_GetGR (context, R_LR); + if (insn *insn == 0xE8410028) + _Unwind_SetGRPtr (context, 2, context-cfa + 40); + } } #endif } -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] asynch exceptions and unwind info

2011-07-28 Thread Alan Modra
On Wed, Jul 27, 2011 at 03:00:45PM +0930, Alan Modra wrote: Ideally what I'd like to do is have ld and gcc emit accurate r2 tracking unwind info and dispense with hacks like frob_update_context. If ld did emit accurate unwind info for .glink, then the justification for frob_update_context

Re: [RS6000] asynch exceptions and unwind info

2011-07-28 Thread Alan Modra
On Thu, Jul 28, 2011 at 11:49:16AM -0700, Richard Henderson wrote: On 07/28/2011 12:27 AM, Alan Modra wrote: On Wed, Jul 27, 2011 at 03:00:45PM +0930, Alan Modra wrote: Ideally what I'd like to do is have ld and gcc emit accurate r2 tracking unwind info and dispense with hacks like

Re: [RS6000] asynch exceptions and unwind info

2011-07-28 Thread Alan Modra
for functions that have a lot of calls, since the offset is limited to +/-32k. I think that would inflate the size of .eh_frame too much, and slow down handling of exceptions dramatically. -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] asynch exceptions and unwind info

2011-07-29 Thread Alan Modra
On Fri, Jul 29, 2011 at 10:57:48AM +0930, Alan Modra wrote: Except that any info about r2 in an indirect call sequence really belongs to the *called* function frame, not the callee. I woke up this morning with the realization that what I'd done in frob_update_context for indirect call

Re: [RS6000] asynch exceptions and unwind info

2011-07-29 Thread Alan Modra
is info about the previous r2, so we can restore when unwinding. I made a similar mistake in frob_update_context in that the value saved by an indirect function call sequence is the r2 for the current function. I also restored from the wrong location. -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] asynch exceptions and unwind info

2011-08-01 Thread Alan Modra
On Fri, Jul 29, 2011 at 10:28:28PM +0930, Alan Modra wrote: libgcc/ * config/rs6000/linux-unwind.h (frob_update_context __powerpc64__): Restore for indirect call bcrtl from correct stack slot, and only if cfa+40 isn't valid. gcc/ * config/rs6000/rs6000-protos.h

[RS6000] Fix ICE in reg_save

2011-08-01 Thread Alan Modra
) @@ -20505,6 +20505,7 @@ rs6000_emit_prologue (void) rs6000_emit_load_toc_table (TRUE); insn = emit_move_insn (lr, frame_ptr_rtx); + add_reg_note (insn, REG_CFA_RESTORE, lr); RTX_FRAME_RELATED_P (insn) = 1; } else -- Alan Modra Australia Development

Re: [PATCH 4/6] Shrink-wrapping

2011-08-03 Thread Alan Modra
: return; case DEBUG_INSN: @@ -5257,6 +5259,7 @@ copy_insn_1 (rtx orig) case CODE_LABEL: case PC: case CC0: +case RETURN: return orig; case CLOBBER: if (REG_P (XEXP (orig, 0)) REGNO (XEXP (orig, 0)) FIRST_PSEUDO_REGISTER) -- Alan Modra Australia

simplify some range tests in rs6000.c

2011-08-03 Thread Alan Modra
) - 32767 + use_backchain_to_restore_sp = (info-total_size 32767 - info-lr_save_offset || (cfun-calls_alloca !frame_pointer_needed)); restore_lr = (info-lr_save_p (restoring_FPRs_inline -- Alan

Re: PowerPC prologue and epilogue 6

2012-05-30 Thread Alan Modra
. The reg clashes with the static chain pointer (nb_all is a nested function), so this is a real bug that the register checks have uncovered. I haven't determined whether this is a new bug introduced with my prologue changes, or whether it's a long-standing bug. I suspect the latter. -- Alan Modra

Re: PowerPC prologue and epilogue 6

2012-05-30 Thread Alan Modra
On Thu, May 31, 2012 at 09:43:09AM +0930, Alan Modra wrote: real bug that the register checks have uncovered. I haven't determined whether this is a new bug introduced with my prologue changes, or whether it's a long-standing bug. I suspect the latter. Looks like it is one I introduced. gcc

Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Alan Modra
On Thu, May 31, 2012 at 10:41:26AM +0930, Alan Modra wrote: Looks like it is one I introduced. gcc-4.6 uses r12 to save altivec regs, my new code tries to use r11. Will fix. Please try out this patch on Darwin. Bootstrapped and regression tested powerpc-linux. gcc/ * config/rs6000

Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Alan Modra
On Thu, May 31, 2012 at 02:16:32PM +0200, Dominique Dhumieres wrote: (the final patch will require the suitable dg directives;-). This is really stretching my testsuite knowledge. Maybe add /* { dg-additional-options -mdynamic-no-pic { target *-*-darwin* } } */ -- Alan Modra Australia

Re: [Target maintainers]: Please update libjava/sysdep/*/locks.h with new atomic builtins

2012-06-20 Thread Alan Modra
in here. s/val/new_val/ -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] atomic tweaks

2012-06-21 Thread Alan Modra
; ... } and the compiler optimised i = *p to i = foo, then you'd be in trouble because the hardware won't see the load from foo having any dependency on p. -- Alan Modra Australia Development Lab, IBM

[RS6000] offset addressing

2012-07-10 Thread Alan Modra
) GET_CODE (XEXP (addr, 1)) == CONST_INT) { unsigned HOST_WIDE_INT val = INTVAL (XEXP (addr, 1)); - return val + 12 + 0x8000 = 0x1; + return val + 0x8000 = 0x1 - (TARGET_POWERPC64 ? 8 : 12); } break; -- Alan Modra Australia Development Lab, IBM

Re: PR53914, rs6000 constraints and reload queries

2012-07-18 Thread Alan Modra
3 =r,r))] -- Alan Modra Australia Development Lab, IBM

Re: PR53914, rs6000 constraints and reload queries

2012-07-19 Thread Alan Modra
On Thu, Jul 19, 2012 at 12:34:25PM +0930, Alan Modra wrote: and fixes pr54009. David, in looking over this today, I realised that this bug isn't completely fixed. I stopped gcc emitting an offset of 32768, but that isn't enough. lo_sum addresses can't be offset, except when you know

Re: PR53914, rs6000 constraints and reload queries

2012-07-19 Thread Alan Modra
On Fri, Jul 20, 2012 at 12:05:28AM +0930, Alan Modra wrote: On Thu, Jul 19, 2012 at 12:34:25PM +0930, Alan Modra wrote: and fixes pr54009. David, in looking over this today, I realised that this bug isn't completely fixed. I stopped gcc emitting an offset of 32768, but that isn't enough

Re: PowerPC shrink-wrap support 3 of 3

2011-10-27 Thread Alan Modra
On Thu, Oct 27, 2011 at 12:24:46AM +1030, Alan Modra wrote: more code than duplicating epilogues. From what I've seen, the duplicate tails are generally very small. I guess I should dump out some info so we can get a better idea. There were 545 occurrences of shrink-wrap in the gcc/ dir

Re: PowerPC shrink-wrap support 3 of 3

2011-10-31 Thread Alan Modra
: *** 6281,6287 --- 6491,6499 } #endif + #ifdef HAVE_simple_return bitmap_clear (bb_flags); + #endif /* Threading the prologue and epilogue changes the artificial refs in the entry and exit blocks. */ -- Alan Modra Australia Development Lab, IBM

Re: PowerPC shrink-wrap support 3 of 3

2011-11-01 Thread Alan Modra
On Tue, Nov 01, 2011 at 12:57:22AM +1030, Alan Modra wrote: Bits left to do - limit size of duplicated tails Done here. Also fixes a hole in that I took no notice of targetm.cannot_copy_insn_p when duplicating tails. One interesting result is that the tail duplication actually reduces

Re: [PATCH, rs6000] Preserve link stack for 476 cpus

2011-11-01 Thread Alan Modra
rs6000_code_end (void) ATTRIBUTE_UNUSED; /* Hash table stuff for keeping track of TOC entries. */ -- Alan Modra Australia Development Lab, IBM

[rs6000] Fix PR 50906, eh_frame and other woes

2011-11-04 Thread Alan Modra
) == 11) - sp_offset += info-fp_size; + if (REGNO (frame_reg_rtx) == REGNO (src_reg)) + sp_offset = info-fp_size; } rs6000_emit_savres_rtx (info, frame_reg_rtx, -- Alan Modra Australia Development Lab, IBM

Re: Reload related segfaults

2011-11-04 Thread Alan Modra
Ping http://gcc.gnu.org/ml/gcc-patches/2011-10/msg02429.html Eric fixed the bootstrap breakage by another patch, but there is a fairly obvious bug in gen_reload fixed by my patch. I gave enough contect in the diff that you don't even need to look at the file. :) -- Alan Modra Australia

[rs6000] fix PR 30282, load from stack moved past stack update

2011-11-04 Thread Alan Modra
+ if (DEFAULT_ABI == ABI_V4 || (TARGET_SPE_ABI info-spe_64bit_regs_used != 0 info-first_gp_reg_save != 32)) -- Alan Modra Australia Development Lab, IBM

Re: [rs6000] Fix PR 50906, eh_frame and other woes

2011-11-04 Thread Alan Modra
islands were inserted to reach the common code. Yes, but that doesn't happen on powerpc-linux until code size goes above 33M. We get a (small) gain otherwise when able to use the exit versions of the out-of-line restores. Bootstrapped this, Thanks! -- Alan Modra Australia Development Lab, IBM

Re: [rs6000] Fix PR 50906, eh_frame and other woes

2011-11-07 Thread Alan Modra
/msg00123.html The failure can still be exposed on mainline with a minor adjustment to the C testcase quoted in the msg. Even after revision 181056? -- Alan Modra Australia Development Lab, IBM

Re: [rs6000] Fix PR 50906, eh_frame and other woes

2011-11-07 Thread Alan Modra
certainly be safer to use the big hammer, but on the other hand it can restrict scheduling unnecessarily. For example void byref (int *a) { int x; asm (#%0 set here : =r (x) : : r29, r30); *a = x; } with the existing stack ties, the write to *a happens after stack deallocation. -- Alan

Re: [rs6000] Fix PR 50906, eh_frame and other woes

2011-11-07 Thread Alan Modra
On Tue, Nov 08, 2011 at 12:30:36AM +, Joseph S. Myers wrote: On Tue, 8 Nov 2011, Alan Modra wrote: OK, so you made the stack ties conflict with all memory. I wondered about that too, but didn't find a testcase where it mattered. It The test I had was one of those from the various

Re: [rs6000] Fix PR 50906, eh_frame and other woes

2011-11-08 Thread Alan Modra
-- Alan Modra Australia Development Lab, IBM

Re: CFG review needed for fix of PowerPC shrink-wrap support 3 of 3

2011-11-14 Thread Alan Modra
); -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, testsuite]: Fix timeout in simulate-thread.exp

2011-11-17 Thread Alan Modra
in that function. -- Alan Modra Australia Development Lab, IBM

powerpc lack of memory_barrier

2011-11-17 Thread Alan Modra
hwsync [(set (match_dup 0) (unspec:BLK [(match_dup 0)] UNSPEC_SYNC))] -- Alan Modra Australia Development Lab, IBM

RFC: powerpc libgomp locking

2011-11-17 Thread Alan Modra
Free Software Foundation, Inc. + Contributed by Alan Modra amo...@au1.ibm.com + + This file is part of the GNU OpenMP Library (libgomp). + + Libgomp is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free

Re: RFC: powerpc libgomp locking

2011-11-17 Thread Alan Modra
On Thu, Nov 17, 2011 at 02:56:31PM -1000, Richard Henderson wrote: On 11/17/2011 01:56 AM, Alan Modra wrote: This is part of work in progress getting locking back into shape on powerpc. (If we ever were in shape, which is doubtful.) Using the ia64 version means we have a needless sync

Re: powerpc compare_and_swap fails

2011-11-17 Thread Alan Modra
me down to just one libgomp failure. -- Alan Modra Australia Development Lab, IBM

Re: [brobec...@adacore.com: Re: [PATCH 18/348] Fix -Wsahdow warnings]

2011-11-23 Thread Alan Modra
the OK. Committed revision 181684. -- Alan Modra Australia Development Lab, IBM

Fix libgomp semaphores

2011-11-24 Thread Alan Modra
=== --- libgomp/config/linux/mutex-lock.h (revision 0) +++ libgomp/config/linux/mutex-lock.h (revision 0) @@ -0,0 +1,35 @@ +/* Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Alan Modra, IBM. + + This file is part of the GNU OpenMP Library (libgomp). + + Libgomp is free software; you

Re: Fix libgomp semaphores

2011-11-25 Thread Alan Modra
of the tests. I suspect the acquire/release mutex locking may have exposed bugs elsewhere in libgomp that were covered by the heavyweight locking used by the __sync builtins. -- Alan Modra Australia Development Lab, IBM

Re: Fix libgomp semaphores

2011-11-27 Thread Alan Modra
= *sem, wake; - - do -{ - old = tmp; - wake = old 0 ? old + 1 : 1; - tmp = __sync_val_compare_and_swap (sem, old, wake); -} - while (old != tmp); - - futex_wake (sem, wake); + futex_wake (sem, 1); } -- Alan Modra Australia Development Lab, IBM

Use atomics in libgomp mutex

2011-11-27 Thread Alan Modra
. */ - -#include config/linux/ia64/mutex.h -- Alan Modra Australia Development Lab, IBM

Fix PR51298, libgomp barrier failure

2011-11-27 Thread Alan Modra
)) gomp_barrier_handle_tasks (state); - if ((bar-generation 2)) + gen = __atomic_load_4 (bar-generation, MEMMODEL_ACQUIRE); + if ((gen 2) != 0) generation |= 2; } - while (bar-generation != state + 4); + while (gen != state + 4); } void -- Alan Modra Australia

Re: Use atomics in libgomp mutex

2011-11-27 Thread Alan Modra
On Mon, Nov 28, 2011 at 09:27:20AM +1030, Alan Modra wrote: This is the mutex part. Depends on http://gcc.gnu.org/ml/gcc-patches/2011-11/msg02454.html for MEMMODEL_* values. Arrgh, I posted the wrong patch. I know it needs work elsewhere in libgomp to comply with the OMP spec, which says

Re: [build] Cleanup rs6000/t-ppccomm configurations (PR other/51022)

2011-11-27 Thread Alan Modra
On Sun, Nov 27, 2011 at 08:36:38PM -0500, David Edelsohn wrote: I was hoping that other targets affected by the patch would test it as well. powerpc-linux and powerpc64-linux look good. -- Alan Modra Australia Development Lab, IBM

Re: Use atomics in libgomp mutex

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 09:15:02AM +0100, Jakub Jelinek wrote: On Mon, Nov 28, 2011 at 10:37:09AM +1030, Alan Modra wrote: 14 A flush region without a list is implied at the following locations: 15 • During a barrier region. 16 • At entry to and exit from parallel, critical, and ordered

Re: Fix PR51298, libgomp barrier failure

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 09:13:27AM +0100, Jakub Jelinek wrote: On Mon, Nov 28, 2011 at 10:12:09AM +1030, Alan Modra wrote: --- libgomp/config/linux/bar.c (revision 181718) +++ libgomp/config/linux/bar.c (working copy) @@ -36,18 +36,15 @@ gomp_barrier_wait_end (gomp_barrier_t *b

Re: Fix PR51298, libgomp barrier failure

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 08:09:01PM +1030, Alan Modra wrote: On Mon, Nov 28, 2011 at 09:13:27AM +0100, Jakub Jelinek wrote: On Mon, Nov 28, 2011 at 10:12:09AM +1030, Alan Modra wrote: --- libgomp/config/linux/bar.c(revision 181718) +++ libgomp/config/linux/bar.c(working copy

Re: Fix libgomp semaphores

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 05:23:37PM +0100, Jakub Jelinek wrote: On Mon, Nov 28, 2011 at 09:23:43AM +1030, Alan Modra wrote: + int count = *sem; + + while ((count 0x7fff) != 0) +{ + int oldval = count; + __atomic_compare_exchange_4 (sem, oldval, count - 1

Re: Fix libgomp semaphores

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 04:00:10PM -0800, Richard Henderson wrote: On 11/27/2011 02:53 PM, Alan Modra wrote: +enum memmodel +{ + MEMMODEL_RELAXED = 0, + MEMMODEL_CONSUME = 1, + MEMMODEL_ACQUIRE = 2, + MEMMODEL_RELEASE = 3, + MEMMODEL_ACQ_REL = 4, + MEMMODEL_SEQ_CST = 5

Re: [rs6000] Streamline compare-and-swap success return value computation

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 04:33:58PM -0800, Richard Henderson wrote: On 11/28/2011 04:26 PM, Richard Henderson wrote: On 11/28/2011 03:05 PM, Richard Henderson wrote: On 11/28/2011 02:16 PM, Alan Modra wrote: Hmm, I suppose you could argue that powerpc and others ought to not generate those

Re: [build] Cleanup rs6000/t-ppccomm configurations (PR other/51022)

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 05:15:08PM +0100, Rainer Orth wrote: Alan Modra amo...@gmail.com writes: On Sun, Nov 27, 2011 at 08:36:38PM -0500, David Edelsohn wrote: I was hoping that other targets affected by the patch would test it as well. powerpc-linux and powerpc64-linux look good

Re: Fix PR51298, libgomp barrier failure

2011-11-28 Thread Alan Modra
On Mon, Nov 28, 2011 at 05:42:15PM -0800, Richard Henderson wrote: On 11/28/2011 06:02 AM, Alan Modra wrote: - unsigned int ret = bar-generation ~3; - /* Do we need any barrier here or is __sync_add_and_fetch acting - as the needed LoadLoad barrier already? */ - ret

Re: Use atomics in libgomp mutex

2011-11-29 Thread Alan Modra
On Mon, Nov 28, 2011 at 05:33:17PM -0800, Richard Henderson wrote: On 11/27/2011 02:57 PM, Alan Modra wrote: This is the mutex part. Depends on http://gcc.gnu.org/ml/gcc-patches/2011-11/msg02454.html for MEMMODEL_* values. * config/linux/mutex.h: Use atomic rather than sync

Re: Fix libgomp semaphores

2011-11-29 Thread Alan Modra
); - - futex_wake (sem, wake); + futex_wake (sem, 1); } -- Alan Modra Australia Development Lab, IBM

Re: Fix libgomp semaphores

2011-11-29 Thread Alan Modra
on a future gomp_sem_post. Furthermore, the awoken thread will wake other threads in case gomp_sem_post was called again before it had time to set SEM_WAIT. */ and committed revision 181831 without likely_compare_exchange as discussed. -- Alan Modra Australia Development Lab, IBM

Re: Use atomics in libgomp mutex

2011-11-29 Thread Alan Modra
On Tue, Nov 29, 2011 at 08:37:07AM -0800, Richard Henderson wrote: How about MEMMODEL_ACQ_REL Right. Committed with that change revision 181832. -- Alan Modra Australia Development Lab, IBM

Re: Fix PR51298, libgomp barrier failure

2011-11-29 Thread Alan Modra
On Tue, Nov 29, 2011 at 04:15:36PM +1030, Alan Modra wrote: On Mon, Nov 28, 2011 at 05:42:15PM -0800, Richard Henderson wrote: On 11/28/2011 06:02 AM, Alan Modra wrote: - unsigned int ret = bar-generation ~3; - /* Do we need any barrier here or is __sync_add_and_fetch acting

Use atomics in remaining libgomp/config/linux sources

2011-12-01 Thread Alan Modra
(revision 181830) +++ libgomp/config/linux/futex.h(working copy) @@ -67,9 +67,3 @@ cpu_relax (void) { __asm volatile ( : : : memory); } - -static inline void -atomic_write_barrier (void) -{ - __sync_synchronize (); -} -- Alan Modra Australia Development Lab, IBM

PR libgomp/51376 fix

2011-12-01 Thread Alan Modra
); gomp_end_task (); } else @@ -290,8 +290,9 @@ GOMP_taskwait (void) struct gomp_task *child_task = NULL; struct gomp_task *to_free = NULL; - if (task == NULL || task-children == NULL) + if (task == NULL) return; + gomp_mutex_lock (team-task_lock); while (1) { -- Alan Modra

Re: PR libgomp/51376 fix

2011-12-02 Thread Alan Modra
On Thu, Dec 01, 2011 at 12:36:08PM +0100, Jakub Jelinek wrote: On Thu, Dec 01, 2011 at 09:58:08PM +1030, Alan Modra wrote: The GOMP_task change fixes a similar potential problem. Bootstrapped and regression tested powerpc-linux. OK to apply? PR libgomp/51376 * task.c

Re: PR libgomp/51376 fix

2011-12-03 Thread Alan Modra
On Fri, Dec 02, 2011 at 08:10:11PM +1030, Alan Modra wrote: On Thu, Dec 01, 2011 at 12:36:08PM +0100, Jakub Jelinek wrote: On Thu, Dec 01, 2011 at 09:58:08PM +1030, Alan Modra wrote: The GOMP_task change fixes a similar potential problem. Bootstrapped and regression tested powerpc-linux

Re: Allow more PowerPC sibling calls

2011-04-21 Thread Alan Modra
On Mon, Apr 18, 2011 at 10:29:17AM -0700, Nathan Froyd wrote: Could I request that you use FOREACH_FUNCTION_ARGS in these two cases? The conversion is trivial, and avoiding more exposed TYPE_ARG_TYPES calls is a good thing. Committed revision 172855. -- Alan Modra Australia Development Lab

Re: Allow more PowerPC sibling calls

2011-04-21 Thread Alan Modra
On Fri, Apr 22, 2011 at 01:29:14PM +0930, Alan Modra wrote: On Mon, Apr 18, 2011 at 10:29:17AM -0700, Nathan Froyd wrote: Could I request that you use FOREACH_FUNCTION_ARGS in these two cases? The conversion is trivial, and avoiding more exposed TYPE_ARG_TYPES calls is a good thing

PowerPC64 non-delegitimized UNSPEC_TOCREL

2011-04-28 Thread Alan Modra
= XEXP (XEXP (x, 1), 0); + y = XEXP (XEXP (orig_x, 1), 0); if (GET_CODE (y) == UNSPEC XINT (y, 1) == UNSPEC_MACHOPIC_OFFSET) return XVECEXP (y, 0, 0); -- Alan Modra Australia Development Lab, IBM

Re: PowerPC64 non-delegitimized UNSPEC_TOCREL

2011-04-28 Thread Alan Modra
On Thu, Apr 28, 2011 at 01:58:24PM -0400, David Edelsohn wrote: On Thu, Apr 28, 2011 at 11:22 AM, Alan Modra amo...@gmail.com wrote: * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle unspec plus offset. Tidy macho code. Looks good. Committed mainline revision 173141. I

Re: rs6000_handle_option global state avoidance, part 1

2011-05-05 Thread Alan Modra
On Thu, May 05, 2011 at 11:29:13AM -0400, David Edelsohn wrote: Alan, is mcmodel suppose to set m64? No, that was an accident. -- Alan Modra Australia Development Lab, IBM

Fix PR48900, powerpc duplicate __tls_get_addr calls

2011-05-05 Thread Alan Modra
); else if (DEFAULT_ABI == ABI_AIX !TARGET_64BIT) -- Alan Modra Australia Development Lab, IBM

-Wshadow warning

2011-08-24 Thread Alan Modra
old_decl = b-decl; -- Alan Modra Australia Development Lab, IBM

rs6000 toc reference rtl

2011-09-05 Thread Alan Modra
) - (match_operand:DI 2 )))] - TARGET_ELF TARGET_CMODEL != CMODEL_SMALL - {cal %0,%2@l(%1)|addi %0,%1,%2@l}) ;; Call and call_value insns (define_expand call -- Alan Modra Australia Development Lab, IBM

Re: rs6000 toc reference rtl

2011-09-07 Thread Alan Modra
On Tue, Sep 06, 2011 at 01:11:26AM +0930, Alan Modra wrote: Consequently, Mike's change to split rtl for indirect calls sometimes sees the scheduler moving the r2 load in the indirect call sequence before a toc reference. Actually, this isn't correct. Mike's change adding rs6000.c

PowerPC shrink-wrap support 0 of 3

2011-09-17 Thread Alan Modra
; will correctly pick up any set of LR. If code in a function body sets LR without saving and restoring around the use, then the prologue must save LR, so LR will be in prologue_used. -- Alan Modra Australia Development Lab, IBM

PowerPC shrink-wrap support 1 of 3

2011-09-17 Thread Alan Modra
) + if ((code == LABEL_REF XEXP (x, 0) == olabel) || x == olabel) { x = redirect_target (nlabel); -- Alan Modra Australia Development Lab, IBM

PowerPC shrink-wrap support 3 of 3

2011-09-17 Thread Alan Modra
)) (use (match_operand:P 1 symbol_ref_operand s)) (use (reg:P 11)) -- Alan Modra Australia Development Lab, IBM

Re: PowerPC shrink-wrap support 0 of 3

2011-09-18 Thread Alan Modra
On Sat, Sep 17, 2011 at 03:26:21PM +0200, Bernd Schmidt wrote: On 09/17/11 09:16, Alan Modra wrote: This patch series adds shrink-wrap support for PowerPC. The patches are on top of Bernd's Initial shrink-wrapping patch: http://gcc.gnu.org/ml/gcc-patches/2011-08/msg02557.html

Re: [PATCH] Bug fix in store_bit_field_1 for big endian targets (issue 51893)

2012-03-22 Thread Alan Modra
. See the equivalent code in extract_bit_field_1. Moreover you need to properly test it on a mainstream big-endian platform. Passes bootstrap and regression test powerpc64-linux. -- Alan Modra Australia Development Lab, IBM

rs6000 toc reference rtl again

2012-03-27 Thread Alan Modra
rtx_code, enum machine_mode); extern bool legitimate_constant_pool_address_p (const_rtx, enum machine_mode, -- Alan Modra Australia Development Lab, IBM

[RS6000] Stack tie fix.

2012-04-03 Thread Alan Modra
)]) - - (define_expand epilogue [(use (const_int 0))] -- Alan Modra Australia Development Lab, IBM

Re: [rs6000] Fix PR 50906, eh_frame and other woes

2011-12-05 Thread Alan Modra
Ping http://gcc.gnu.org/ml/gcc-patches/2011-11/msg00543.html -- Alan Modra Australia Development Lab, IBM

Re: PR libgomp/51376 fix

2011-12-08 Thread Alan Modra
On Fri, Dec 02, 2011 at 08:10:11PM +1030, Alan Modra wrote: PR libgomp/51376 * task.c (GOMP_taskwait): Don't access task-children outside of task_lock mutex region. (GOMP_task): Likewise. Committed revision 182151 on rth's irc OK. -- Alan Modra Australia Development

FIX PR51926, libstdc++ iterator store bigendian bitfield related

2012-01-20 Thread Alan Modra
; -- Alan Modra Australia Development Lab, IBM

Re: Bug store_bit_field_1 + patch

2012-01-20 Thread Alan Modra
of the number of words needed by the integer mode of the field, which is the mode used to compute subwords. That doesn't sound right. wordnum is passed to operand_subword as its offset param, which counts in words of word_mode size. I think you have a problem elsewhere. -- Alan Modra Australia

Re: FIX PR51926, libstdc++ iterator store bigendian bitfield related

2012-01-23 Thread Alan Modra
On Sat, Jan 21, 2012 at 11:07:10AM +1030, Alan Modra wrote: PR middle-end/51926 * expmed.c (store_bit_field_1): Properly handle last word of BLKmode value when bigendian. Blah, I was working on an old tree. The bug is already fixed. -- Alan Modra Australia Development Lab

<    1   2   3   4   5   6   7   8   9   10   >