Re: [patch, gcc 5 regression] re-enable biarch for powerpc-linux-gnu

2015-05-19 Thread Alan Modra
On Tue, May 19, 2015 at 02:18:23PM -0400, David Edelsohn wrote: > This seems reasonable to me. > > Alan, any thoughts from you? Looks good. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH 3/4] split-stack for powerpc64

2015-05-19 Thread Alan Modra
split-stack being honoured. > - The comments say that the gold linker is used for some > situations but I don't see any reference in the code to enabling > the gold linker for ppc64le, ppc64, or x86. Is the user expected > to add the option for the gold linker if needed? At t

Re: [PATCH 1/4] rs6000_stack_info changes for -fsplit-stack

2015-05-19 Thread Alan Modra
On Mon, May 18, 2015 at 02:05:59PM -0400, David Edelsohn wrote: > On Sun, May 17, 2015 at 10:54 PM, Alan Modra wrote: > > This patch changes rs6000_stack_info to keep save areas offsets even > > when not used. I need lr_save_offset valid for split-stack, and it > > seemed re

Re: [PATCH 4/4] Split-stack arg pointer init refinement

2015-05-19 Thread Alan Modra
field in the TCB, available with glibc-2.18. */ writing /* -fsplit-stack uses a field in the TCB, available with glibc-2.19. We also allow 2.18 because alignment padding guarantees that the space is available there too. */ because it's a lie to say the field was there in 2.18. --

Re: [PATCH 1/4] rs6000_stack_info changes for -fsplit-stack

2015-05-20 Thread Alan Modra
On Wed, May 20, 2015 at 09:02:40AM -0400, David Edelsohn wrote: > On Tue, May 19, 2015 at 9:09 PM, Alan Modra wrote: > > On Mon, May 18, 2015 at 02:05:59PM -0400, David Edelsohn wrote: > >> On Sun, May 17, 2015 at 10:54 PM, Alan Modra wrote: > >> > This patch cha

Re: [PATCH 3/4] split-stack for powerpc64

2015-05-20 Thread Alan Modra
ne PARAMS 48 #endif #define MORESTACK_FRAMESIZE (PARAMS+96) -- Alan Modra Australia Development Lab, IBM

[PATCH] Combine related fail of gcc.target/powerpc/ti_math1.c

2015-05-21 Thread Alan Modra
= i; } - while (changed); + /* If nothing changed, fail. */ + if (!not_canonical) +return NULL_RTX; + /* Create (minus -C X) instead of (neg (const (plus X C))). */ if (n_ops == 2 && CONST_INT_P (ops[1].op) -- Alan Modra Australia Development Lab, IBM

[PATCH] Don't combine param and return value copies

2015-05-23 Thread Alan Modra
(use_insn)) >= 0) continue; @@ -1124,6 +1213,16 @@ create_log_links (void) } } + /* Repair BLOCK_FOR_INSN. */ + + bb = ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb; + twiddle_first_block (bb, bb); + if (!hard_reg_set_empty_p (return_regs)) +{ + bb = EXIT_B

Re: [PATCH] Don't combine param and return value copies

2015-05-24 Thread Alan Modra
&& HARD_REGISTER_NUM_P (regno) && REG_NREGS (x) > 1) { unsigned int ourend = END_REGNO (x); @@ -13588,7 +13588,7 @@ reg_bitfield_target_p (rtx x, rtx body) return 0; tregno = REGNO (target), regno = REGNO (x); - if (tregno >= FIRST_PSEUDO_REGISTER || regno >= FIRST_PSEUDO_REGISTER) + if (!HARD_REGISTER_NUM_P (tregno) || !HARD_REGISTER_NUM_P (regno)) return target == x; endtregno = end_hard_regno (GET_MODE (target), tregno); @@ -13922,7 +13922,7 @@ distribute_notes (rtx notes, rtx_insn *from_insn, TEM_INSN is doing. If so, delete TEM_INSN. Otherwise, make this into a REG_UNUSED note instead. Don't delete sets to global register vars. */ - if ((REGNO (XEXP (note, 0)) >= FIRST_PSEUDO_REGISTER + if ((!HARD_REGISTER_P (XEXP (note, 0)) || !global_regs[REGNO (XEXP (note, 0))]) && reg_set_p (XEXP (note, 0), PATTERN (tem_insn))) { -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Don't combine param and return value copies

2015-05-24 Thread Alan Modra
On Mon, May 25, 2015 at 10:26:35AM +0930, Alan Modra wrote: > looking at gcc/*.o I haven't yet seen any regressions in code quality.) Well that didn't last very long. There are regressions, and just from looking at disassembled object files it would appear to be frame pointer rel

Re: [PATCH] Don't combine param and return value copies

2015-05-26 Thread Alan Modra
SET_DEST (reg_reg)), + REGNO (SET_DEST (reg_reg))); + } + else if (can_combine_use_p (use)) + next_use[DF_REF_REGNO (use)] = insn; + } } + CLEAR_HARD_REG_SET (hard_regs); } free (next_use); -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] rs6000: Fix PR67344

2015-08-25 Thread Alan Modra
(set (match_dup 3) (compare:CC (match_dup 0) (const_int 0)))] - "" + " +{ + operands[2] = GEN_INT (UINTVAL (operands[2]) << INTVAL (operands[4])); +}" [(set_attr "type" "logical") (set_attr "dot" "yes") - (set_attr "length" "4,8")]) + (set_attr "length" "4,12")]) (define_insn "and3_mask" -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] rs6000: Fix PR67344

2015-08-25 Thread Alan Modra
On Tue, Aug 25, 2015 at 07:09:48PM -0500, Segher Boessenkool wrote: > On Wed, Aug 26, 2015 at 08:40:49AM +0930, Alan Modra wrote: > > On Tue, Aug 25, 2015 at 10:08:54AM -0700, Segher Boessenkool wrote: > > > -(define_insn_and_split "*and3_imm_dot_shifted" > &

[PATCH, RS6000] Correct constraints for ior_mask

2015-08-27 Thread Alan Modra
uot; "0") (match_operand:GPR 2 "const_int_operand" "n"))) (clobber (match_scratch:GPR 3 "=r"))] "!logical_const_operand (operands[2], mode) -- Alan Modra Australia Development Lab, IBM

[RS6000] Weak functions may not be file local

2015-09-01 Thread Alan Modra
00.c +++ b/gcc/config/rs6000/rs6000.c @@ -22659,6 +22659,7 @@ rs6000_function_ok_for_sibcall (tree decl, tree exp) || ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2) && decl && !DECL_EXTERNAL (decl) + && !DECL_WEAK (decl)

[RS6000] Don't pass --oformat to ld

2015-09-01 Thread Alan Modra
/rs6000/sysv4le.h +++ b/gcc/config/rs6000/sysv4le.h @@ -25,10 +25,6 @@ #undef DEFAULT_ASM_ENDIAN #defineDEFAULT_ASM_ENDIAN " -mlittle" -#undef LINK_TARGET_SPEC -#defineLINK_TARGET_SPEC \ - ENDIAN_SELECT(" --oformat elf32-powerpc", "", "") - #undef MULTILIB_DEFAULTS #defineMULTILIB_DEFAULTS { "mlittle", "mcall-sysv" } -- Alan Modra Australia Development Lab, IBM

Re: [libffi] Correct powerpc sysv stack argument accounting (#194)

2015-09-03 Thread Alan Modra
html Given that things are going rather slow in libffi land at the moment, perhaps I should merge this to gcc now? -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PowerPC ICE due to secondary_reload ignoring reload replacements

2015-09-07 Thread Alan Modra
under the PLUS. */ addr = XEXP (addr, 1); } gcc_assert (GET_CODE (addr) == PLUS || GET_CODE (addr) == LO_SUM); -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] Fix PowerPC ICE due to secondary_reload ignoring reload replacements

2015-09-09 Thread Alan Modra
On Tue, Sep 08, 2015 at 02:46:58PM +0200, Ulrich Weigand wrote: > David Edelsohn wrote: > > On Mon, Sep 7, 2015 at 11:47 PM, Alan Modra wrote: > > > In https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67378 analysis I show > > > the reason for this PR is that insns

Re: Fix pr61848, linux kernel miscompile

2014-10-15 Thread Alan Modra
On Thu, Sep 18, 2014 at 10:02:25PM -0600, Jeff Law wrote: > On 09/16/14 00:03, Alan Modra wrote: > >gcc testsuite additions? I decline. It is too soon. If you had read > >my patch submission you'll see that at some stage gcc was supposed to > >warn on conflicting sect

Re: PR debug/60655, debug loc expressions

2014-10-15 Thread Alan Modra
Ping? https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00704.html -- Alan Modra Australia Development Lab, IBM

Re: PR debug/60655, debug loc expressions

2014-10-20 Thread Alan Modra
XEXP (tem, 0)) == ncode + && XEXP (XEXP (tem, 0), 0) == lhs + && XEXP (XEXP (tem, 0), 1) == rhs) + break; lneg &= rneg; if (GET_CODE (tem) == NEG) tem = XEXP (tem, 0), lneg = !lneg; -- Alan Modra Australia Development Lab, IBM

Fix 63615 - FAIL: gcc.target/i386/addr-sel-1.c

2014-10-22 Thread Alan Modra
canonicalized |= this_neg; + canonicalized |= this_neg || i != n_ops - 2; break; case NEG: -- Alan Modra Australia Development Lab, IBM

Re: Warn when returning the address of a temporary (middle-end) v2

2014-07-02 Thread Alan Modra
rameter save area, returning the address of something in the parameter save area merits a warning. The ABIs explicitly state that the parameter save area is not preserved over function calls. Also note that anything left in a caller allocated parameter save area will potentially be trashed by arguments written for the next call. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Power/GCC: Subword atomic operation endianness check bug fix

2014-07-02 Thread Alan Modra
>emit_insn (gen_rlwinm (shift, addr, GEN_INT (3), GEN_INT (shift_mask))); > - if (WORDS_BIG_ENDIAN) > + if (BYTES_BIG_ENDIAN) > shift = expand_simple_binop (SImode, XOR, shift, GEN_INT (shift_mask), >shift, 1, OPTAB_LIB_WIDEN); >*pshift =

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

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

Re: [RS6000] PR61300 K&R incoming args

2014-06-05 Thread Alan Modra
at leaves just the comment near the start of the file, and since it says "If REG_PARM_STACK_SPACE is defined" that is still true and reads best for someone coming from a target that doesn't define INCOMING_REG_PARM_STACK_SPACE. > OK to apply. Thanks for reviewing! Committed revision 211296. -- Alan Modra Australia Development Lab, IBM

PR61583, stage2 and stage3 compare failure due to value range loss

2014-06-23 Thread Alan Modra
tin_unreachable (); + + for (j = 0; j < n; j++) +f2 (j); +} -- 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: 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

Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-12-11 Thread Alan Modra
stroyed in linkage stubs. It turns out we don't traverse any linkage stubs. See https://gcc.gnu.org/ml/gcc-patches/2014-11/msg00446.html. -- Alan Modra Australia Development Lab, IBM

RTL cprop vs. fixed hard regs

2015-01-16 Thread Alan Modra
= cselib_lookup (x, GET_MODE (x), 0, VOIDmode); -- Alan Modra Australia Development Lab, IBM

Re: RTL cprop vs. fixed hard regs

2015-01-16 Thread Alan Modra
On Fri, Jan 16, 2015 at 11:03:24AM -0600, Segher Boessenkool wrote: > On Fri, Jan 16, 2015 at 08:12:27PM +1030, Alan Modra wrote: > > OK, so we need to fix this in the rs6000 backend, but it occurs to me > > that cprop also has a bug here. It shouldn't be touching fixe

Re: RTL cprop vs. fixed hard regs

2015-01-16 Thread Alan Modra
On Fri, Jan 16, 2015 at 09:35:16AM -0700, Jeff Law wrote: > On 01/16/15 02:42, Alan Modra wrote: > > * cprop.c (do_local_cprop): Disallow replacement of fixed > > hard registers. > OK. Extra credit for a testcase, ppc specific is obviously OK. Thanks. Committed revi

Re: RTL cprop vs. fixed hard regs

2015-01-16 Thread Alan Modra
On Fri, Jan 16, 2015 at 08:09:51PM -0600, Segher Boessenkool wrote: > On Sat, Jan 17, 2015 at 11:07:12AM +1030, Alan Modra wrote: > > On Fri, Jan 16, 2015 at 11:03:24AM -0600, Segher Boessenkool wrote: > > > On Fri, Jan 16, 2015 at 08:12:27PM +1030, Alan Modra wrote: > > &

Re: RTL cprop vs. fixed hard regs

2015-01-16 Thread Alan Modra
On Sat, Jan 17, 2015 at 11:16:57AM +1030, Alan Modra wrote: > On Fri, Jan 16, 2015 at 09:35:16AM -0700, Jeff Law wrote: > > On 01/16/15 02:42, Alan Modra wrote: > > > * cprop.c (do_local_cprop): Disallow replacement of fixed > > > hard registers. > > OK.

Re: [RFC] POWER8 default for PPC64LE

2015-01-18 Thread Alan Modra
; invocation. Since you've been looking at this area, please consider reviewing https://gcc.gnu.org/ml/gcc-patches/2014-01/msg01157.html -- Alan Modra Australia Development Lab, IBM

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

2015-01-19 Thread Alan Modra
On Mon, Jan 19, 2015 at 10:43:29PM -0500, David Edelsohn wrote: > On Fri, Jan 17, 2014 at 10:58 PM, Alan Modra wrote: > > This patch cures PR59828 by translating all the -mcpu options at once, > > in order, to their equivalent assembler -m options by using a new spec > > func

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

2015-01-20 Thread Alan Modra
On Tue, Jan 20, 2015 at 09:26:12AM -0500, David Edelsohn wrote: > On Tue, Jan 20, 2015 at 12:41 AM, Alan Modra wrote: > > On Mon, Jan 19, 2015 at 10:43:29PM -0500, David Edelsohn wrote: > >> On Fri, Jan 17, 2014 at 10:58 PM, Alan Modra wrote: > >> > This patch cu

Re: [PATCH][PR debug/60655] Power/GCC: Reject cross-section symbol subtraction

2014-09-04 Thread Alan Modra
On Thu, Sep 04, 2014 at 10:05:38PM +0100, Maciej W. Rozycki wrote: > On Thu, 4 Sep 2014, Alan Modra wrote: > > > > In fact if you look at the corresponding location expression for > > > -fno-section-anchors code you get something quite screwy too. > > >

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

Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-11-06 Thread Alan Modra
On ppc64 ELFv2 just the lazy plt resolution trashes r11. -- Alan Modra Australia Development Lab, IBM

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-11-07 Thread Alan Modra
ons make this fairly uncommon, for instance the GNU powerpc linkers won't do this unless the function address is taken in the executable by non-PIC (see pointer_equality_needed in BFD code). -- 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: [PATCH][PR debug/60655] Power/GCC: Reject cross-section symbol subtraction

2014-09-02 Thread Alan Modra
I does not appear to have a relocation defined > > to support taking a difference of two symbols in different sections each. > > This is seen as a failure in gcc.c-torture/compile/pr60655-2.c: -- Alan Modra Australia Development Lab, IBM

Re: [PATCH][PR debug/60655] Power/GCC: Reject cross-section symbol subtraction

2014-09-04 Thread Alan Modra
On Wed, Sep 03, 2014 at 03:01:17PM +0930, Alan Modra wrote: > In fact if you look at the corresponding location expression for > -fno-section-anchors code you get something quite screwy too. > > 018f 0108 0114 (DW_OP_breg10 (r10): 0; DW_OP_addr: 144; > DW_OP_plus; DW

powerpc64 large-toc vs. reload

2011-06-19 Thread Alan Modra
t (match_operand:TLSmode 0 "gpc_reg_operand" "=b") - (plus:TLSmode (match_operand:TLSmode 1 "gpc_reg_operand" "b") - (high:TLSmode -(unspec:TLSmode [(match_operand:TLSmode 2 "rs6000_tls_symbol_ref" "")] -

Re: powerpc64 large-toc vs. reload

2011-06-20 Thread Alan Modra
On Sun, Jun 19, 2011 at 11:04:12PM -0400, David Edelsohn wrote: > On Sun, Jun 19, 2011 at 10:03 AM, Alan Modra wrote: > >* config/rs6000/rs6000.c (create_TOC_reference): Wrap high part > >of toc-relative address in CONST. > >(rs6000_delegitimize_addres

fix powerpc bootstrap failure

2011-06-22 Thread Alan Modra
nterest (tree fndecl) /* Interesting functions that we are emitting in this object file. */ c_node = cgraph_get_node (fndecl); + c_node = cgraph_function_or_thunk_node (c_node, NULL); return !cgraph_only_called_directly_p (c_node); } return false; -- Alan Modra Australia Development Lab, IBM

Re: PATCH [6/n]: Prepare x32: PR rtl-optimization/47449: Don't propagate hard register non-local goto save area

2011-07-04 Thread Alan Modra
rop did look at paradoxical subregs of hard regs before my change. > Alan, > is your change to process hard registers intentional? I didn't set out to do anything special with hard regs one way or the other, just extended what was already done for paradoxical subregs to sign and zero e

Re: PATCH [6/n]: Prepare x32: PR rtl-optimization/47449: Don't propagate hard register non-local goto save area

2011-07-04 Thread Alan Modra
On Mon, Jul 04, 2011 at 05:09:28PM -0700, H.J. Lu wrote: > On Mon, Jul 4, 2011 at 4:54 PM, Alan Modra wrote: > > I didn't set out to do anything special with hard regs one way or the > > other, just extended what was already done for paradoxical subregs to > > sign

Re: PowerPC shrink-wrap support 3 of 3

2011-09-28 Thread Alan Modra
_aix" "* { return output_cbranch (operands[0], NULL, 0, insn); @@ -15360,8 +15377,8 @@ (define_insn "" "cc_reg_operand" "y") (const_int 0)]) (pc) - (return)))] - "direct_return ()" + (any_return)))] + "" "* { return output_cbranch (operands[0], NULL, 1, insn); @@ -15491,9 +15508,9 @@ (define_insn "jump" "b %l0" [(set_attr "type" "branch")]) -(define_insn "return" - [(return)] - "direct_return ()" +(define_insn "return" + [(any_return)] + "" "{br|blr}" [(set_attr "type" "jmpreg")]) @@ -16015,7 +16032,7 @@ (define_insn "*lmw" (set_attr "cell_micro" "always")]) (define_insn "*return_internal_" - [(return) + [(simple_return) (use (match_operand:P 0 "register_operand" "lc"))] "" "b%T0" -- Alan Modra Australia Development Lab, IBM

Ping shrink wrap patches

2011-10-13 Thread Alan Modra
g other functions r3 = 0; exit_label: return; and now the r29 assignment cannot be moved past the "if", disabling shrink wrap. -- Alan Modra Australia Development Lab, IBM

Re: Ping shrink wrap patches

2011-10-13 Thread Alan Modra
On Thu, Oct 13, 2011 at 07:04:59PM +0200, Bernd Schmidt wrote: > On 10/13/11 18:50, Bernd Schmidt wrote: > > On 10/13/11 14:27, Alan Modra wrote: > >> Without the ifcvt > >> optimization for a function "int foo (int x)" we might have something > >>

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 PR53038, cfa_restore out of order

2012-04-20 Thread Alan Modra
mode, info->first_fp_reg_save + i); RTVEC_ELT (p, i + 4) = gen_rtx_SET (VOIDmode, reg, mem); - if (DEFAULT_ABI == ABI_V4 || flag_shrink_wrap) + if (flag_shrink_wrap) cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores); } -- Alan Modra Australia Development Lab, IBM

PowerPC prologue and epilogue 6

2012-04-20 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 t

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