[RS6000] little-endian va_arg

2013-06-07 Thread Alan Modra
g_size - 1) / reg_size; } + if (nregs > n_gpr) + nregs = n_gpr; mem = gen_rtx_MEM (BLKmode, plus_constant (Pmode, save_area, -- Alan Modra Australia Development Lab, IBM

expand_expr tweaks to fix PR57134

2013-06-11 Thread Alan Modra
|| modifier == EXPAND_STACK_PARM) -? modifier : EXPAND_NORMAL); + modifier == EXPAND_SUM ? EXPAND_NORMAL : modifier); if (MEM_P (orig_op0)) { -- Alan Modra Australia Development Lab, IBM

Re: lower-subreg and IBM long double

2013-06-11 Thread Alan Modra
ite/gcc.target/powerpc/fabsl.c(revision 0) +++ gcc/testsuite/gcc.target/powerpc/fabsl.c(revision 0) @@ -0,0 +1,10 @@ +/* { dg-do compile { target { powerpc*-*-darwin* powerpc*-*-aix* rs6000-*-* powerpc*-*-linux* } } } */ +/* { dg-options "-O2 -mlong-double-128" } */ +/* { dg-f

[RS6000] IBM long double little-endian

2013-06-12 Thread Alan Modra
_E500_DOUBLE && TARGET_LONG_DOUBLE_128" " { - const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode); - const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0; + const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode); + const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0; operands[3] = gen_reg_rtx (DFmode); operands[4] = gen_reg_rtx (CCFPmode); operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word); -- Alan Modra Australia Development Lab, IBM

RFC [MIPS, RS6000] Mangling of IBM long double template literals

2013-06-12 Thread Alan Modra
= 0; for (; i != limit; i += dir) { - sprintf (buffer, "%08lx", (unsigned long) target_real[i]); + sprintf (buffer, "%08lx", (unsigned long) target_real[i ^ twid]); write_chars (buffer, 8); } } -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] IBM long double little-endian

2013-06-12 Thread Alan Modra
On Wed, Jun 12, 2013 at 11:09:03AM -0400, David Edelsohn wrote: > On Wed, Jun 12, 2013 at 10:53 AM, Alan Modra wrote: > > > * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define. > > * config/rs6000/rs6000.md (signbittf2): New insn. > > (ex

Re: [RFC] Inconsistency in ordering vector widening operations on big-endian targets?

2013-06-12 Thread Alan Modra
way around? Big-endian targets store the high part of multi-byte values at the low address. Why should vectors be different? -- Alan Modra Australia Development Lab, IBM

powerpc64le abi check

2013-06-12 Thread Alan Modra
(revision 200055) +++ libstdc++-v3/configure.host (working copy) @@ -330,7 +330,7 @@ case "${host}" in mips64*) abi_baseline_pair=mips64-linux-gnu ;; - powerpc64) + powerpc64*) abi_baseline_pair=powerpc64-linux-gnu ;; s390) --

Re: [PATCH] DATA_ALIGNMENT vs. DATA_ABI_ALIGNMENT (PR target/56564)

2013-06-13 Thread Alan Modra
\ + && (ALIGN) < 64) \ + ? 64 \ + : (ALIGN)) /* Nonzero if move instructions will actually fail to work when given unaligned data. */ -- Alan Modra Australia Development Lab, IBM

Re: force_const_mem VOIDmode

2013-06-13 Thread Alan Modra
On Thu, Jun 13, 2013 at 04:29:44PM +0200, Andreas Krebbel wrote: > On 07/06/13 04:00, Alan Modra wrote: > > force_const_mem() isn't supposed to handle VOIDmode or BLKmode, so the > > check for VOIDmode when aligning is needless. If we ever did get one > > of these mode

Re: [PATCH] DATA_ALIGNMENT vs. DATA_ABI_ALIGNMENT (PR target/56564)

2013-06-13 Thread Alan Modra
On Thu, Jun 13, 2013 at 05:10:51PM +0930, Alan Modra wrote: > On Wed, Jun 12, 2013 at 12:52:03PM -0500, Edmar Wienskoski wrote: > > The e500v2 (SPE) hardware is such that if the address of vector (double > > world > > load / stores) are not double world aligned the

Re: [PATCH] DATA_ALIGNMENT vs. DATA_ABI_ALIGNMENT (PR target/56564)

2013-06-13 Thread Alan Modra
On Thu, Jun 13, 2013 at 05:42:17PM +0200, Jakub Jelinek wrote: > On Fri, Jun 14, 2013 at 01:07:01AM +0930, Alan Modra wrote: > > @@ -5774,10 +5818,11 @@ offsettable_ok_by_alignment (rtx op, HOST_WIDE_INT > >type = TREE_TYPE (decl); > > > >

Re: expand_expr tweaks to fix PR57134

2013-06-14 Thread Alan Modra
On Thu, Jun 13, 2013 at 10:45:38AM +0200, Richard Biener wrote: > On Wed, Jun 12, 2013 at 4:48 AM, Alan Modra wrote: > > The following patch fixes PR57134 by > > a) excluding bitfield expansion when EXPAND_MEMORY, and > > b) passing down the EXPAND_MEMORY modifier in a c

Re: [PATCH] DATA_ALIGNMENT vs. DATA_ABI_ALIGNMENT (PR target/56564)

2013-06-14 Thread Alan Modra
On Fri, Jun 14, 2013 at 10:59:52AM +0200, Jakub Jelinek wrote: > On Fri, Jun 14, 2013 at 08:18:19AM +0930, Alan Modra wrote: > > It is handling !DECL_P trees, which must be local. I know I saw > > STRING_CST here when I wrote offsettable_ok_by_alignment, hence the > > use

Re: [PATCH] DATA_ALIGNMENT vs. DATA_ABI_ALIGNMENT (PR target/56564)

2013-06-14 Thread Alan Modra
On Fri, Jun 14, 2013 at 12:54:40PM +0200, Jakub Jelinek wrote: > On Fri, Jun 14, 2013 at 08:12:02PM +0930, Alan Modra wrote: > > I see your point, but for there to be a real problem we'd need > > a) A library exporting such a type with (supposed) increased > >alignm

PR debug/60655, debug loc expressions

2014-09-09 Thread Alan Modra
On Fri, Sep 05, 2014 at 11:00:04AM +0930, Alan Modra wrote: > Of course it would be better to repair the damage done to debug info > rather than rejecting it outright.. This cures PR60655 on PowerPC by passing the horrible debug_loc expressions we have through simplify_rtx. Not only do

Re: PR debug/60655, debug loc expressions

2014-09-09 Thread Alan Modra
I also > > > > It is built using cselib_expand_value_rtx_cb, which calls the various > > simplify_*_operation and simplify_rtx too. > > So why do we need to simplify again then? It looks to me that cselib_expand_value_rtx_1 doesn't call simplify_rtx for DEBUG_EXPR. -- Alan Modra Australia Development Lab, IBM

Re: PR debug/60655, debug loc expressions

2014-09-10 Thread Alan Modra
regression test with RUNTESTFLAGS=--target_board=unix/'{-m32,-m64}', so my "bootstrapped and regression tested powerpc64-linux" claim includes a -m32 regression test too. Not quite as comprehensive a test as you've done (thanks!), but I did see the FAIL->PASS for -m32. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Fix up libffi linux64*.S for ppc32-linux

2014-09-10 Thread Alan Modra
ntroduced this problem when adding ELFv2 support by moving those notes. -- Alan Modra Australia Development Lab, IBM

Fix pr61848, linux kernel miscompile

2014-09-14 Thread Alan Modra
(olddecl); + newsym = symtab_node::get (newdecl); + oldsym->set_comdat_group (newsym->get_comdat_group ()); + } + } + + if (TREE_CODE (newdecl) == VAR_DECL + && DECL_THREAD_LOCAL_P (newdecl)) + set_decl_tls_model (olddecl, DECL_TLS_MODEL (newdecl)); +} + DECL_UID (olddecl) = olddecl_uid; if (olddecl_friend) DECL_FRIEND_P (olddecl) = 1; -- Alan Modra Australia Development Lab, IBM

Re: Fix pr61848, linux kernel miscompile

2014-09-15 Thread Alan Modra
On Mon, Sep 15, 2014 at 08:36:58PM +, Joseph S. Myers wrote: > On Mon, 15 Sep 2014, Alan Modra wrote: > > > This patch cures the linux kernel boot failure when compiled using > > trunk gcc. (Andrew, apologies for hijacking your bugzilla, I started > > work on this bef

Re: Fix pr61848, linux kernel miscompile

2014-09-17 Thread Alan Modra
ot;trunk, with a straight-forward fix for complete loss of section attribute, does not honour the last section attribute". -- Alan Modra Australia Development Lab, IBM

Re: Avoid privatization of TLS variables

2014-09-26 Thread Alan Modra
re". In particular, any dynamic objects with TLS segments loaded at program startup should not be counted. This is because DTV_SURPLUS *extra* slots are allocated above those needed at program startup. At least, that's how I think it works. -- Alan Modra Australia Development Lab, IBM

Apply powerpc64le patches to gcc-4.8 branch?

2013-06-17 Thread Alan Modra
org/ml/gcc-patches/2013-06/msg00766.html -- Alan Modra Australia Development Lab, IBM

[RS6000] powerpc64le vec splat

2013-06-20 Thread Alan Modra
pltisw (w, 30); - check_v4si (v, w); + V4SI (30, 30, 30, 30); } void v4si_vspltisw_neg_addself () { - v4si v = { -24, -24, -24, -24 }; - vspltisw (w, -24); - check_v4si (v, w); + V4SI (-24, -24, -24, -24); } @@ -316,3 +249,5 @@ int main () v4si_vspltisw_neg_addself (); return 0; } + +/* { dg-final { scan-assembler-not "lvx" { target { ! powerpc*le-*-* } } } } */ -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] libffi little-endian

2013-06-23 Thread Alan Modra
On Fri, Jun 07, 2013 at 12:12:17AM -0400, David Edelsohn wrote: > On Thu, Jun 6, 2013 at 9:34 PM, Alan Modra wrote: > > Bootstrapped and regression tested powerpc64-linux. OK to apply? > > > > * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Support >

Re: [RS6000] libffi little-endian

2013-06-24 Thread Alan Modra
On Mon, Jun 24, 2013 at 11:12:03AM -0400, Anthony Green wrote: > It's fine with me. Please commit it directly to GCC and I'll put it in the > upstream. Thanks! Committed revision 200383. (and 200384 to 4.8 branch.) -- Alan Modra Australia Development Lab, IBM

libtool update for powerpc64le-linux

2013-08-16 Thread Alan Modra
ot; ;; s390x-*linux*) @@ -545,7 +548,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; -ppc*-*linux*|powerpc*-*linux*) +powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; +powerpc-*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix for PR57865, _savegpr64 breakage on spe

2013-08-18 Thread Alan Modra
IRST_SAVED_GP_REGNO); frame_reg_rtx = gen_rtx_REG (Pmode, 11); emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx, GEN_INT (info->spe_gp_save_offset -- Alan Modra Australia Development Lab, IBM

[PATCH] lower-subreg and IBM long double

2013-08-18 Thread Alan Modra
On Tue, Jun 11, 2013 at 09:56:11AM +0930, Alan Modra wrote: >[snip] > It isn't hard to see why we are going wrong. IBM long double is > really a two element array of double, and the rs6000 backend uses > subregs to access the elements. The problem is that lower-subreg > low

[libiberty] IBM long double little-endian

2013-08-19 Thread Alan Modra
On Mon, Aug 19, 2013 at 09:53:14AM -0600, Tom Tromey wrote: > >>>>> "Alan" == Alan Modra writes: > > Alan> This teaches gdb about little-endian IBM long double. Like big-endian > Alan> IBM long double, the little-endian version is an array of two doub

Re: [google][4.7]Using CPU mocks to test code coverage of multiversioned functions

2013-03-18 Thread Alan Modra
func, please test out your great ideas on i386, ppc32, mips, arm, etc. *NOT* x86_64 or powerpc64 which both avoid the GOT in many cases. -- Alan Modra Australia Development Lab, IBM

Re: [google][4.7]Using CPU mocks to test code coverage of multiversioned functions

2013-03-25 Thread Alan Modra
cidentally writing code that only works on x86_64 or powerpc64 is very easy, and might lead people to think you own shares in Intel or IBM. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR55033: Fix

2013-04-01 Thread Alan Modra
ance, you might wonder why it is correct to have if (decl && !DECL_P (decl)) decl = NULL_TREE; before calling get_section(). The answer is that get_section() is not prepared to handle !DECL_P trees when reporting errors. Arguably it should be modified to do that. -- Alan Modra Au

Re: RFA: enable LRA for rs6000 [patch for WRF]

2013-04-21 Thread Alan Modra
DFmode is in a floating point reg. It usually is, but may be in two general purpose regs. Which then need an offset to load/store the second reg. -- Alan Modra Australia Development Lab, IBM

PR57052, rs6000.md subregs

2013-04-24 Thread Alan Modra
@@ -6773,7 +7238,7 @@ (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "") (zero_extend:DI (subreg:HI (rotate:DI (match_dup 1) (match_dup 2)) 0)))] - "TARGET_POWERPC64 && reload_completed&q

powerpc64le-linux support

2013-04-24 Thread Alan Modra
(working copy) @@ -187,12 +187,6 @@ rs6000_abi_name); \ } \ \ - if (rs6000_current_abi == ABI_AIX && TARGET_LITTLE_ENDIAN) \ -{ \ - rs6000_isa_flags &= ~OPTION_MASK_LITTLE_ENDIAN; \ - error ("-mcall-aixdesc must be big endian"); \ -} \ - \ if (TARGET_SECURE_PLT != secure_plt) \ { \ error ("-msecure-plt not supported by your assembler"); \ -- Alan Modra Australia Development Lab, IBM

rs6000_emit_set_long_const tidy

2013-04-24 Thread Alan Modra
), - gen_rtx_IOR (DImode, copy_rtx (dest), GEN_INT (ud1))); + gen_rtx_IOR (DImode, copy_rtx (dest), +GEN_INT (ud1))); } } return dest; -- Alan Modra Australia Development Lab, IBM

driver-rs6000.c comment pasto

2013-04-24 Thread Alan Modra
-rs6000.c (working copy) @@ -190,7 +190,7 @@ return NULL; } -/* Returns AT_PLATFORM if present, otherwise generic 32. */ +/* Returns AT_DCACHEBSIZE if present, otherwise generic 32. */ static int elf_dcachebsize (void) -- Alan Modra Australia Development Lab, IBM

change_address in rs6000_secondary_reload_inner

2013-04-24 Thread Alan Modra
the address if it changed. */ if (addr != XEXP (mem, 0)) { - mem = change_address (mem, mode, addr); + mem = replace_equiv_address_nv (mem, addr); if (TARGET_DEBUG_ADDR) fprintf (stderr, "\nrs6000_secondary_reload_inner, mem adjusted.\n"); } --

Re: [Patch, PR 60158] Generate .fixup sections for .data.rel.ro.local entries.

2014-04-25 Thread Alan Modra
he start of the block. Aligning shouldn't be necessary, because we've already done that.. OTOH, it shouldn't hurt to align again. -- Alan Modra Australia Development Lab, IBM

[RS6000] PR60737, expand_block_clear uses word stores

2014-05-02 Thread Alan Modra
} else if (bytes >= 8 && TARGET_POWERPC64 - /* 64-bit loads and stores require word-aligned - displacements. */ - && (align >= 64 || (!STRICT_ALIGNMENT && align >= 32))) + && (align >= 64 || !STRICT_ALIGNMENT)) { move_bytes = 8; mode = DImode; -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] PR60737, expand_block_clear uses word stores

2014-05-06 Thread Alan Modra
On Fri, May 02, 2014 at 11:28:27AM -0400, David Edelsohn wrote: > On Fri, May 2, 2014 at 6:20 AM, Alan Modra wrote: > > In cases where the compiler has no alignment info, powerpc64le-linux > > gcc generates byte at a time copies for -mstrict-align (which is on > > for

Re: [RS6000] PR60737, expand_block_clear uses word stores

2014-05-06 Thread Alan Modra
On Tue, May 06, 2014 at 06:00:14PM +0930, Alan Modra wrote: > __asm__ __volatile__ ("ld %0,0(%1)" > : "=r" (scratch[0]) : "r" (p)); Ick, I can't write ppc asm. That should be "b" (p). -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR61098, Poor code setting count register

2014-05-07 Thread Alan Modra
m = rs6000_emit_set_const (operands[0], DImode, operands[1], 5); - - if (tem == operands[0]) -DONE; - else -FAIL; +{ rs6000_emit_set_const (operands[0], operands[1]); + DONE; }") (define_split @@ -10341,12 +10333,8 @@ [(set (match_dup 0) (match_dup 2)) (set (match_dup 0) (plus:DI (mat

Re: [RS6000] PR60737, expand_block_clear uses word stores

2014-05-07 Thread Alan Modra
On Wed, May 07, 2014 at 01:39:50PM -0400, David Edelsohn wrote: > On Tue, May 6, 2014 at 4:32 AM, Alan Modra wrote: > > BTW, the latest patch in my tree has a slight refinement, the > > reload-by-hand addition. > > > > PR target/60737 > >

Re: [RS6000] Fix PR61098, Poor code setting count register

2014-05-08 Thread Alan Modra
the last instruction emitted, with every other use getting hit with copy_rtx. The previous approach was similar, but used the bare "dest" on the first instruction emitted. Obviously you don't need copy_rtx anywhere with the new code when can_create_pseudo_p is true, but I felt

Re: [RS6000] Fix PR61098, Poor code setting count register

2014-05-11 Thread Alan Modra
On Sat, May 10, 2014 at 10:24:34PM -0400, David Edelsohn wrote: > On Thu, May 8, 2014 at 10:40 PM, Alan Modra wrote: > > rs6000_emit_set_const ... always returns a non-zero result ... > > Can you help clarify the removal of the code that tests if the > splitter failed? Se

Re: [RS6000] Fix PR61098, Poor code setting count register

2014-05-11 Thread Alan Modra
On Mon, May 12, 2014 at 08:23:16AM +0930, Alan Modra wrote: > On Sat, May 10, 2014 at 10:24:34PM -0400, David Edelsohn wrote: > > On Thu, May 8, 2014 at 10:40 PM, Alan Modra wrote: > > > rs6000_emit_set_const ... always returns a non-zero result ... > > > > Can y

Re: [RS6000] Fix PR61098, Poor code setting count register

2014-05-13 Thread Alan Modra
On Sat, May 10, 2014 at 10:24:34PM -0400, David Edelsohn wrote: > On Thu, May 8, 2014 at 10:40 PM, Alan Modra wrote: > > >> Please do not remove all of the comments from the two functions. The > >> comments should provide some documentation about the different > >&

Re: [RS6000] Fix PR61098, Poor code setting count register

2014-05-14 Thread Alan Modra
de. rs6000_emit_set_const has never returned anything but DEST, right from the initial commit. It can't be called with DEST == NULL, so "dest = gen_reg_rtx (mode)" is also dead code. However, I retracted that patch because I now think rs6000_emit_set_const should in fact sometimes result in the splitter failing, exactly as is done in the alpha port. -- Alan Modra Australia Development Lab, IBM

[RS6000] PR61231 lwa_operand related fix

2014-05-21 Thread Alan Modra
RPC64 && TARGET_LFIWAX" "@ lwa%U1%X1 %0,%1 @@ -758,7 +758,7 @@ (define_insn "*extendsidi2_nocell" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") - (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r")))] +

Re: [RS6000] Fix PR61098, Poor code setting count register

2014-05-23 Thread Alan Modra
h (working copy) @@ -114,7 +114,7 @@ extern void rs6000_emit_cbranch (enum machine_mode extern char * output_cbranch (rtx, const char *, int, rtx); extern char * output_e500_flip_gt_bit (rtx, rtx); extern const char * output_probe_stack_range (rtx, rtx); -extern rtx rs6000_emit_set_const (rtx, enum machine_mode, rtx, int); +extern bool rs6000_emit_set_const (rtx, rtx); extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx); extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx); extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx); -- Alan Modra Australia Development Lab, IBM

[RS6000] PR61300 K&R incoming args

2014-05-28 Thread Alan Modra
L) \ + rs6000_reg_parm_stack_space ((FNDECL), true) + /* Define this if the above stack space is to be considered part of the space allocated by the caller. */ #define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 -- Alan Modra Australia Development Lab, IBM

Fix 59828 - Broken assembly on ppc* with two -mcpu= options

2014-01-17 Thread Alan Modra
1,7 @@ %{mpowerpc64: -mppc64} \ %{maltivec: -m970} \ %{!maltivec: %{!mpowerpc64: %(asm_default) \ -%{mcpu=native: %(asm_cpu_native)} \ -%{mcpu=power3: -m620} \ -%{mcpu=power4: -mpwr4} \ -%{mcpu=power5: -mpwr5} \ -%{mcpu=power5+: -mpwr5x} \ -%{mcpu=power6: -mpwr6} \ -%{mcpu=power6x: -mpwr

Re: Two build != host fixes

2014-01-22 Thread Alan Modra
GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ${realsrcdir}/configure \ --enable-languages=${enable_languages-all} \ --target=$target_alias --host=$build_alias --build=$build_alias -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2014-01-23 Thread Alan Modra
7;m not sure now, I'll have to do some digging. Also as to why @INCINTL@ was removed, when gettext is potentially needed for the gen programs. -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2014-01-27 Thread Alan Modra
it in is probably safer. Who knows what weird use is being made of CPPFLAGS_FOR_TARGET? @INCINTL@ is set to -I${top_builddir}/../intl when someone configures using --with-included-gettext. It seems reasonable to me that -with-included-gettext affect both build and host. Thanks everyone for yo

[RS6000] SDmode and reload

2014-02-05 Thread Alan Modra
(mode(SD))) r31 __asm__ ("r31"); + register float __attribute__ ((mode(SD))) fr1 __asm__ ("fr1"); + + __asm__ ("#" : "=d" (fr1)); + r31 = fr1; + __asm__ ("#" : : "r" (r31)); +} -- Alan Modra Australia Development Lab, IBM

[RS6000] power8 internal compiler errors

2014-02-10 Thread Alan Modra
addr_op1 = XEXP (addr, 0); + addr_op1 = find_replacement (&XEXP (addr, 0)); addr_op2 = XEXP (addr, 1); if (!REG_P (addr_op1)) rs6000_secondary_reload_fail (__LINE__, reg, mem, scratch, store_p); -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] power8 internal compiler errors

2014-02-10 Thread Alan Modra
On Mon, Feb 10, 2014 at 07:01:03PM -0500, David Edelsohn wrote: > On Mon, Feb 10, 2014 at 5:18 PM, Alan Modra wrote: > > Shouldn't addr_op2 also be set from find_replacement? Sorry, I thought after I sent the email that I should have added some explanation of why cert

Re: [RS6000] power8 internal compiler errors

2014-02-13 Thread Alan Modra
g, mem, scratch, store_p); - - addr = XEXP (addr, 1); } if (legitimate_indirect_address_p (addr, false) /* reg */ -- Alan Modra Australia Development Lab, IBM

Re: Fix PR libffi/60073

2014-02-14 Thread Alan Modra
location in the old user app.. I worked around this problem on powerpc by defining new enum ffi_abi values so that you can recognize an old app. -- Alan Modra Australia Development Lab, IBM

[RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Alan Modra
(gen_rtx_SET (VOIDmode, mem, reg)); + else + emit_insn (gen_rtx_SET (VOIDmode, reg, mem)); + return; +} rclass = REGNO_REG_CLASS (regno); addr = find_replacement (&XEXP (mem, 0)); -- Alan Modra Australia Development Lab, IBM

Re: [RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Alan Modra
On Tue, Feb 25, 2014 at 02:30:59PM +0100, Ulrich Weigand wrote: > Alan Modra wrote: > > > Normally, reload 2, the secondary reload for reload 3, would result in > > a call to reload_v16qi_si_load with (reg:V16QI 78 1) as its "reg" > > argument, and the mem home f

Re: [RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Alan Modra
On Wed, Feb 26, 2014 at 01:03:52AM +1030, Alan Modra wrote: > On Tue, Feb 25, 2014 at 02:30:59PM +0100, Ulrich Weigand wrote: > > Instead, there's code in emit_input_reload_insns that is supposed > > to re-check whether a secondary reload is still needed if something > >

copyright dates in binutils (and includes/)

2014-02-26 Thread Alan Modra
5 @@ /* Public attributes of the .gdb_index section. - Copyright 2012-2014 Free Software Foundation, Inc. + Copyright (C) 2012-2014 Free Software Foundation, Inc. This file is part of GDB. -- Alan Modra Australia Development Lab, IBM

Re: copyright dates in binutils (and includes/)

2014-02-28 Thread Alan Modra
es/ Joseph, do you know why implicitly adding years to the claimed copyright years is a problem? I'm guessing the file needs to be published somewhere for each year claimed. -- Alan Modra Australia Development Lab, IBM

Re: copyright dates in binutils (and includes/)

2014-03-02 Thread Alan Modra
On Mon, Mar 03, 2014 at 02:14:51PM +1030, Alan Modra wrote: > I'll post update-copyright.py separately. --- /src/gcc-current/contrib/update-copyright.py2013-02-07 12:55:28.272161270 +1030 +++ ./update-copyright.py 2014-03-03 13:44:35.650293322 +1030 @@ -74

Re: [PATCH, rs6000, 4.8/4.9] Fix alignment of non-Altivec vector struct fields

2014-07-27 Thread Alan Modra
}) +#define rs6000_special_adjust_field_align_p false /* Skip a variable name, enclosed in quotes ("). */ static inline -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, rs6000, 4.8/4.9] Fix alignment of non-Altivec vector struct fields

2014-07-27 Thread Alan Modra
On Sun, Jul 27, 2014 at 07:16:07PM +0930, Alan Modra wrote: > On Sat, Jul 26, 2014 at 01:45:12PM +0200, Matthias Klose wrote: > > Am 17.07.2014 02:41, schrieb Ulrich Weigand: > > > Hello, > > > > > > this is the variant intended for the 4.8/4.9 branches of the

Re: [PATCH, rs6000, 4.8/4.9] Fix alignment of non-Altivec vector struct fields

2014-07-27 Thread Alan Modra
at's what I found this morning too, when checking the bootstrap I'd fired off after posting the "correction". -- Alan Modra Australia Development Lab, IBM

Prepare gcc for 64-bit obstacks

2014-08-04 Thread Alan Modra
- libcpp/identifiers.c(revision 212477) +++ libcpp/identifiers.c(working copy) @@ -54,9 +54,7 @@ _cpp_init_hashtable (cpp_reader *pfile, cpp_hash_t table = ht_create (13); /* 8K (=2^13) entries. */ table->alloc_node = alloc_node; - _obstack_begin (&pfile->hash_ob, 0, 0, - (void *(*) (long)) xmalloc, - (void (*) (void *)) free); + obstack_specify_allocation (&pfile->hash_ob, 0, 0, xmalloc, free); } table->pfile = pfile; -- Alan Modra Australia Development Lab, IBM

Re: copyright dates in binutils (and includes/)

2014-03-05 Thread Alan Modra
On Mon, Mar 03, 2014 at 01:33:18PM +, Richard Sandiford wrote: > Alan Modra writes: > > On Mon, Mar 03, 2014 at 02:14:51PM +1030, Alan Modra wrote: > >> I'll post update-copyright.py separately. > > Thanks for doing this, looks good to me FWIW. I don'

Re: [4.8, PATCH 0/26] Backport Power8 and LE support

2014-03-19 Thread Alan Modra
we didn't go as far as we could. For example, we still pass fp to varargs functions in both fp regs and on the stack, when only the stack will be used by a callee correctly implementing either ELFv2 or ELFv1 ABIs. Another thing that we didn't change is that sibcalls can be allowed in more cases than the current code allows. -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2014-03-26 Thread Alan Modra
On Wed, Mar 26, 2014 at 09:43:08PM +, Maciej W. Rozycki wrote: > Alan, > > On Tue, 17 Dec 2013, Alan Modra wrote: > > > On Tue, Dec 17, 2013 at 01:14:23PM +0100, Bernd Edlinger wrote: > > > the reason for this is overwriting GMPINC for the auto-build generation

PR libgomp/56073: benchmark regression due to PR libgomp/51376 fix

2013-01-22 Thread Alan Modra
gomp_sem_post (&parent->taskwait_sem); } @@ -291,7 +296,8 @@ GOMP_taskwait (void) struct gomp_task *child_task = NULL; struct gomp_task *to_free = NULL; - if (task == NULL || team == NULL) + if (task == NULL + || __atomic_load_n (&task->chi

Re: PR libgomp/56073: benchmark regression due to PR libgomp/51376 fix

2013-01-22 Thread Alan Modra
On Tue, Jan 22, 2013 at 12:19:21PM +0100, Jakub Jelinek wrote: > Looks good to me. Thanks for the amazingly quick review! Committed revision 195370. Is the patch OK for 4.7 too? -- Alan Modra Australia Development Lab, IBM

Re: PR libgomp/56073: benchmark regression due to PR libgomp/51376 fix

2013-01-22 Thread Alan Modra
at + this point, but we must ensure that all writes to memory by a + child thread task work function are seen before we exit from + GOMP_taskwait. */ if (task == NULL || __atomic_load_n (&task->children, MEMMODEL_ACQUIRE) == NULL) return; -- Alan Modra Australia Development Lab, IBM

[RS6000] PR54009 again

2013-02-06 Thread Alan Modra
else + sri->icode = CODE_FOR_reload_si_store; + sri->extra_cost = 2; + ret = NO_REGS; + } else - sri->icode = CODE_FOR_reload_si_store; - sri->extra_cost = 2; - ret = NO_REGS; + default_p = true; } else default_p = true; -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] PR54009 again

2013-02-06 Thread Alan Modra
t;fr28", "fr29", "fr30", "fr31"); +#endif + x.d = tmp; +} Index: gcc/testsuite/gfortran.dg/pr54131.f === --- gcc/testsuite/gfortran.dg/pr54131.f (revision 0) +++ gcc/testsuite/gfortran.dg/pr54131.f

[RFC, 4.9 patch] Reload alternative weighting vs. wrong class regs

2013-02-06 Thread Alan Modra
expensive, involving a copy to memory. So, how about teaching reload about this as follows? I picked 6 for the reject value to make it equivalent to a '?' in the constraint, but that may be too large. Any value of 2 or greater works for the testcase. Bootstrapped and regression te

[RS6000] Fix PR45053

2013-02-07 Thread Alan Modra
h -Os as that can result in references to +# out-of-line register save/restore functions, which may be unresolved +# as crtend.o is linked after libgcc.a. +CRTSTUFF_T_CFLAGS = -msdata=none -O2 -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] Fix PR45053

2013-02-07 Thread Alan Modra
On Thu, Feb 07, 2013 at 10:11:02AM +0100, Richard Biener wrote: > On Thu, Feb 7, 2013 at 9:45 AM, Alan Modra wrote: > > I think this one counts as obvious, but I'll ask for permission anyway. > > Bootstrapped etc. powerpc-linux. OK everywhere? > > Isn't there a

Re: [RS6000] Fix PR45053

2013-02-07 Thread Alan Modra
we could do that quite easily by defining CRT_CALL_STATIC_FUNCTION. Done! Another 4.9 patch queued. -- Alan Modra Australia Development Lab, IBM

Re: [RFC, 4.9 patch] Reload alternative weighting vs. wrong class regs

2013-02-07 Thread Alan Modra
better job of "w", about the same as trunk with my reload patch. -- Alan Modra Australia Development Lab, IBM

[RS6000] PR55341 linux unwind fixes

2013-02-14 Thread Alan Modra
;vregs->vsave - new_cfa; + /* If we have SPE register high-parts... we check at compile-time to avoid expanding the code for all other PowerPC. */ #ifdef __SPE__ - for (i = 0; i < 32; i++) + for (i = 14; i < 32; i++) { fs->regs.reg[i + FIRST_PSEUDO_REGISTER - 1].how = REG_SAVED_OFFSET; fs->regs.reg[i + FIRST_PSEUDO_REGISTER - 1].loc.offset -- Alan Modra Australia Development Lab, IBM

Re: PowerPC shrink-wrap support 3 of 3

2011-10-26 Thread Alan Modra
+ force_nonfallthru_and_redirect. */ + if (CALL_P (PREV_INSN (insert_point)) + && SIBLING_CALL_P (PREV_INSN (insert_point))) + { + delete_insn (insert_point); + e = single_succ_edge (copy_bb); + e->flags = EDGE_SIBCALL | EDGE_ABNORMAL; + } + if (bitmap_empty_p (&bb_tail)) + break; + } } fail_shrinkwrap: + bitmap_clear (&bb_tail); bitmap_clear (&bb_antic_flags); bitmap_clear (&bb_on_list); VEC_free (basic_block, heap, vec); -- Alan Modra Australia Development Lab, IBM

Re: PowerPC shrink-wrap support 3 of 3

2011-10-26 Thread Alan Modra
On Wed, Oct 26, 2011 at 03:01:01PM +0200, Bernd Schmidt wrote: > On 10/26/11 14:27, Alan Modra wrote: > > Committed revision 180522. It turns out that shrink-wrapping isn't as > > effective as it used to be with the 20110915 based sources I was using > > originally. pov

Re: PowerPC shrink-wrap support 3 of 3

2011-10-26 Thread Alan Modra
On Wed, Oct 26, 2011 at 03:59:36PM +0200, Bernd Schmidt wrote: > On 10/26/11 15:54, Alan Modra wrote: > > I guess the tradeoff between the classic shrink-wrap epilogue scheme > > and my duplicate tail idea is whether duplicating tail blocks adds > > more code than duplicating

Reload related segfaults

2011-10-26 Thread Alan Modra
unsigned) value <= LAST_VIRTUAL_REGISTER) { if (value == VIRTUAL_INCOMING_ARGS_REGNUM) fprintf (outfile, " %d virtual-incoming-args", value); else if (value == VIRTUAL_STACK_VARS_REGNUM) -- Alan Modra Australia Development Lab, IBM

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 i

Re: PowerPC shrink-wrap support 3 of 3

2011-10-31 Thread Alan Modra
} redirect_edge_and_branch_force (e, *pdest_bb); } ! VEC_free (edge, heap, unconverted_simple_returns); ! } ! ! if (entry_edge != orig_entry_edge) ! { ! FOR_EACH_EDGE (e, ei, EXIT_BLOCK_PTR->preds) ! if (EDGE_COUNT (e->src->preds) != 0 ! && (e->flags & EDGE_FAKE) != 0 ! && !bitmap_bit_p (&bb_flags, e->src->index)) ! { ! emit_return_into_block (true, e->src); ! e->flags &= ~(EDGE_FALLTHRU | EDGE_FAKE); ! } } #endif *** epilogue_done: *** 6233,6240 if (!CALL_P (insn) || ! SIBLING_CALL_P (insn) || (entry_edge != orig_entry_edge ! && !bitmap_bit_p (&bb_flags, bb->index))) { ei_next (&ei); continue; --- 6440,6450 if (!CALL_P (insn) || ! SIBLING_CALL_P (insn) + #ifdef HAVE_simple_return || (entry_edge != orig_entry_edge ! && !bitmap_bit_p (&bb_flags, bb->index)) ! #endif ! ) { ei_next (&ei); continue; *** epilogue_done: *** 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 reduc

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

2011-11-01 Thread Alan Modra
d); +static void 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
frame_reg_rtx, + rtx src_reg = gen_rtx_REG (Pmode, DEFAULT_ABI == ABI_AIX ? 12 : 11); + + emit_insn (gen_add3_insn (src_reg, frame_reg_rtx, GEN_INT (sp_offset - info->fp_size))); - if (REGNO (frame_reg_rtx) == 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 Aust

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

2011-11-04 Thread Alan Modra
_rtx + 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
nd on > whether branch 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 M

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

2011-11-07 Thread Alan Modra
.gnu.org/ml/gcc/2011-03/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

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