Re: PC-relative TLS support

2019-11-10 Thread Alan Modra
On Wed, Aug 21, 2019 at 09:55:28PM +0930, Alan Modra wrote: > On Mon, Aug 19, 2019 at 07:45:19AM -0500, Segher Boessenkool wrote: > > But if you think we can remove the !TARGET_TLS_MARKERS everywhere it > > is relevant at all, now is the time, patches very welcome, it would be >

Re: PC-relative TLS support

2019-11-11 Thread Alan Modra
On Mon, Nov 11, 2019 at 05:56:47AM -0600, Segher Boessenkool wrote: > On Wed, Aug 21, 2019 at 09:55:28PM +0930, Alan Modra wrote: > > This patch removes !TARGET_TLS_MARKERS support. -mtls-markers (and > > -mno-tls-markers) disappear as valid options too, because I figure > &

Re: PowerPC V9 patches, Add the PCREL_OPT optimization

2019-12-04 Thread Alan Modra
d between the PLD and the STW instructions. > > "No reference"... Nothing indirect either (like from a function call, > or simply some insn that does not name the register directly). Or code > like > > pld 9,ext_symbol@got@pcrel(0),1 ; .Lpcrel1: > .reloc .Lpcrel1-8,R_PPC64_PCREL_OPT,.-(.Lpcrel1-8) > b 2f > > here: # some code that does not explicitly reference r10 here, > # but r10 is live here nevertheless, and is used later > b somewhere_else > > 2:lwz 10,0(9) > > complicates your analysis, too. So something DF is needed here, or > there are lots and lots and lots of cases to look out for. > > > Segher -- Alan Modra Australia Development Lab, IBM

Re: PowerPC V9 patches, Add the PCREL_OPT optimization

2019-12-04 Thread Alan Modra
On Wed, Dec 04, 2019 at 05:16:05PM -0600, Segher Boessenkool wrote: > > pla 9,ext_symbol@pcrel # add (0),1 for optional operands > > pla does not have optional operands like that? It does, just like load/store insns. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH 0/2] mmap: Avoid the sanitizer configure check failure

2024-04-09 Thread Alan Modra
f course is to update autotools to something more recent. -- Alan Modra Australia Development Lab, IBM

powerpc64le multilibs and multiarch dir

2013-08-21 Thread Alan Modra
B_OSDIRNAMES)) +MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES))) +MULTILIB_MATCHES:= ${MULTILIB_MATCHES_ENDIAN} -- Alan Modra Australia Development Lab, IBM

Re: powerpc64le multilibs and multiarch dir

2013-08-22 Thread Alan Modra
On Thu, Aug 22, 2013 at 10:06:48AM -0400, David Edelsohn wrote: > On Wed, Aug 21, 2013 at 11:57 PM, Alan Modra wrote: > > > Index: gcc/config/rs6000/t-linux64 > > === > > --- gcc/config/rs6000/t-linux64 (revi

Re: powerpc64le multilibs and multiarch dir

2013-08-22 Thread Alan Modra
On Fri, Aug 23, 2013 at 01:45:14AM +0930, Alan Modra wrote: > On Thu, Aug 22, 2013 at 10:06:48AM -0400, David Edelsohn wrote: > > What is the purpose of the change to MULTILIB_OSDIRNAMES? Why the > > addition of m64= and m32=? A secondary tmake file is not always set to > &g

Re: libtool update for powerpc64le-linux

2013-08-22 Thread Alan Modra
On Fri, Aug 16, 2013 at 06:18:05PM +0930, Alan Modra wrote: > I'd like to apply the following patch to the gcc repository (well, > excluding the libgo part which I'm hoping someone will apply for me to > the master go repository). I know the normal procedure for autotools >

Re: [go-nuts] Re: libtool update for powerpc64le-linux

2013-08-23 Thread Alan Modra
On Thu, Aug 22, 2013 at 06:09:40PM -0700, Ian Lance Taylor wrote: > On Thu, Aug 22, 2013 at 5:35 PM, Alan Modra wrote: > > On Fri, Aug 16, 2013 at 06:18:05PM +0930, Alan Modra wrote: > >> I'd like to apply the following patch to the gcc repository (well, > >> ex

Re: powerpc64le multilibs and multiarch dir

2013-08-25 Thread Alan Modra
On Fri, Aug 23, 2013 at 09:41:28PM +, Joseph S. Myers wrote: > On Thu, 22 Aug 2013, Alan Modra wrote: > > > For multiarch, powerpc64le-linux now will use powerpc64le-linux-gnu. > > Given a typical big-endian native toolchain with os dirs /lib and > > /lib64, we'

Re: libtool update for powerpc64le-linux

2013-08-25 Thread Alan Modra
On Fri, Aug 23, 2013 at 10:08:29PM +, Joseph S. Myers wrote: > On Fri, 23 Aug 2013, Alan Modra wrote: > > > I'd like to import upstream libtool into gcc to support powerpc64le, > > Has the sysroot semantics issue been resolved in upstream libtool, or do

Re: powerpc64le multilibs and multiarch dir

2013-08-26 Thread Alan Modra
On Sun, Aug 25, 2013 at 10:40:30PM -0700, Mike Stump wrote: > On Aug 25, 2013, at 8:32 PM, Alan Modra wrote: > > We (IBM) don't intend to support running both big and little-endian > > processes on the same system in the near future. Perhaps I'm jumping > > the gu

[RS6000] powerpc64 -mcmodel=medium large symbol offsets

2013-09-06 Thread Alan Modra
(match_operand:P 2 "gpc_reg_operand" "b")] UNSPEC_TOCREL) - (match_operand 3 "const_int_operand" "n"] + (match_operand 3 "add_cint_operand" "n"] "TARGET_XCOFF && TARGET_CMODEL != CMODEL_SMALL" "addis %0,%1+%3@u(%2)") -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] powerpc64 -mcmodel=medium large symbol offsets

2013-09-06 Thread Alan Modra
On Fri, Sep 06, 2013 at 02:18:49PM -0400, David Edelsohn wrote: > On Fri, Sep 6, 2013 at 3:13 AM, Alan Modra wrote: > > The following testcase taken from the linux kernel is miscompiled on > > powerpc64-linux. > > > > /* -m64 -mcmodel=medium -O -S -fno-section-

Re: [RS6000] powerpc64 -mcmodel=medium large symbol offsets

2013-09-06 Thread Alan Modra
On Sat, Sep 07, 2013 at 09:06:08AM +0930, Alan Modra wrote: > The testcase gives me > > .L.foo: > lis 9,0x4000 > sldi 9,9,32 > addis 3,2,x@toc@ha > addi 3,3,x@toc@l > add 3,3,9 > blr > > How did you manage to get an unrecog

Re: [RS6000] powerpc64 -mcmodel=medium large symbol offsets

2013-09-09 Thread Alan Modra
CMODEL_SMALL" "addis %0,%1+%3@u(%2)") Index: gcc/testsuite/gcc.target/powerpc/medium_offset.c === --- gcc/testsuite/gcc.target/powerpc/medium_offset.c(revision 0) +++ gcc/testsuite/gcc.target/powerpc/medium_offset.c

[RS6000] Fix PR58330 powerpc64 atomic store split in two

2013-09-09 Thread Alan Modra
* { dg-require-effective-target lp64 } */ +/* { dg-options "-O -mno-popcntb" } */ +/* { dg-final { scan-assembler-not "stwbrx" } } */ + +void +write_reverse (unsigned long *addr, unsigned long val) +{ + unsigned long reverse = __builtin_bswap64 (val); + __atomic_store_n (addr, reverse, __ATOMIC_RELAXED); +} -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] powerpc64 -mcmodel=medium large symbol offsets

2013-09-11 Thread Alan Modra
On Mon, Sep 09, 2013 at 06:37:03PM +0930, Alan Modra wrote: > gcc/ > * config/rs6000/predicates.md (add_cint_operand): New. > (reg_or_add_cint_operand): Use add_cint_operand. > * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset > using a

Re: [PATCH, PowerPC] Fix PR57949 (ABI alignment issue)

2013-09-11 Thread Alan Modra
case FFI_TYPE_STRUCT: + align = arg_types[i]->alignment; + if (align > 16) + align = 16; + pst = ALIGN (pst, align); #ifndef __LITTLE_ENDIAN__ /* Structures with size less than eight bytes are passed left-padded. */ -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, PowerPC] Fix PR57949 (ABI alignment issue)

2013-09-11 Thread Alan Modra
On Wed, Sep 11, 2013 at 07:55:43AM -0500, Bill Schmidt wrote: > On Wed, 2013-09-11 at 21:08 +0930, Alan Modra wrote: > > On Wed, Aug 14, 2013 at 10:32:01AM -0500, Bill Schmidt wrote: > > > This fixes a long-standing problem with GCC's implementation of the > > >

Re: expand_expr tweaks to fix PR57134

2013-09-12 Thread Alan Modra
WRITE + : EXPAND_NORMAL); if (MEM_P (op)) op = validize_mem (op); On Fri, Jun 14, 2013 at 11:38:58AM +0200, Richard Biener wrote: > On Fri, Jun 14, 2013 at 10:38 AM, Alan Modra wrote: > > On Thu, Jun 13, 2013 at 10:45:38AM +0200, Richard Biener wrote: >

Re: libtool update for powerpc64le-linux

2013-09-16 Thread Alan Modra
elf_x86_64" ;; -ppc*-*linux*|powerpc*-*linux*) +powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; +powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, PowerPC] Fix PR57949 (ABI alignment issue)

2013-09-16 Thread Alan Modra
On Thu, Sep 12, 2013 at 09:33:05AM +0100, Andrew Haley wrote: > On 09/12/2013 03:11 AM, Alan Modra wrote: > > We have precedent for compiling libffi based on gcc preprocessor > > defines, eg. __NO_FPRS__, so here's a way of making upstream libffi > > compatible with the v

Re: [PATCH, committed] PR 57589: Fix logic error in driver-rs6000.c

2013-09-16 Thread Alan Modra
On Tue, Jun 11, 2013 at 07:43:05PM -0400, Michael Meissner wrote: > Ah, you are correct. I misread the code, thinking it was returning a string, > and not a pointer to the string in memory. http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00640.html Patch reverted. -- Alan Modra Aus

Re: libtool update for powerpc64le-linux

2013-09-18 Thread Alan Modra
oughout. It's src that is a hodge-podge of different versions. -- Alan Modra Australia Development Lab, IBM

Re: expand_expr tweaks to fix PR57134

2013-09-24 Thread Alan Modra
On Fri, Sep 13, 2013 at 12:37:20PM +0930, Alan Modra wrote: > PR middle-end/57586 > * stmt.c (expand_asm_operands): Call expand_expr with > EXPAND_MEMORY for output operands that disallow regs. Don't > use EXPAND_WRITE on inout operands. Ping? -- Ala

Re: expand_expr tweaks to fix PR57134

2013-10-01 Thread Alan Modra
ORMAL); + !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); if (MEM_P (op)) op = validize_mem (op); -- Alan Modra Australia Development Lab, IBM

[RS6000] VSX splat fix

2012-10-09 Thread Alan Modra
} return input_operand (op, mode); }) -- Alan Modra Australia Development Lab, IBM

building gcc with powerpc gold

2012-10-17 Thread Alan Modra
cc_cv_gld_minor_version" -ge 21 -o "$gcc_cv_gld_major_version" -gt 2; then gcc_cv_ld_large_toc=yes fi -- Alan Modra Australia Development Lab, IBM

[RS6000] libffi ppc64 assembly

2012-10-23 Thread Alan Modra
.ffi_prep_args64 +#endif ld %r0, 0(%r29) ld %r2, 8(%r29) @@ -137,7 +150,11 @@ .LFE1: .long 0 .byte 0,12,0,1,128,4,0,0 +#ifdef _CALL_LINUX + .size ffi_call_LINUX64,.-.L.ffi_call_LINUX64 +#else .size .ffi_call_LINUX64,.-.ffi_cal

Re: [Patch] Potential fix for PR55033

2012-10-24 Thread Alan Modra
gs & SECTION_CODE) != 0 || !decl || !DECL_P (decl)) align = MIN_UNITS_PER_WORD; else /* Increase alignment of large objects if not already stricter. */ -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] rs6000: Disable generation of lwa in 32-bit mode

2012-10-25 Thread Alan Modra
On Thu, Oct 25, 2012 at 03:57:38PM -0700, Segher Boessenkool wrote: > for most others. This patch disables all lwa insns in 32-bit mode. > We can later re-enable it if the assembler used handles it properly, Well, you can now do that. Mainline gas and ld are now fixed. -- Alan Modra Aus

Re: [Patch] Potential fix for PR55033

2012-10-30 Thread Alan Modra
h. It looks OK to me if you replace your "gd-do compile" line with the following two lines to avoid failures on powerpc targets that don't support -meabi -msdata. /* { dg-do compile { target powerpc*-*-eabi* powerpc*-*-elf* powerpc*-*-linux* } } */ /* { dg-require-effective-targ

Re: [PATCH][i386]Fix PR 57756

2013-10-15 Thread Alan Modra
ion*)’ to ‘void (*)(cl_target_option*, gcc_options*)’ [-fpermissive] /src/gcc-virgin/gcc/config/rs6000/rs6000.c:31122:29: error: invalid conversion from ‘void (*)(cl_target_option*)’ to ‘void (*)(gcc_options*, cl_target_option*)’ [-fpermissive] -- Alan Modra Australia Development Lab, IBM

[RS6000] ABI_V4 init of toc section

2016-01-29 Thread Alan Modra
_REG (Pmode, 2); @@ -9492,6 +9494,8 @@ "* { char buf[30]; + extern int need_toc_init; + need_toc_init = 1; #ifdef TARGET_RELOCATABLE ASM_GENERATE_INTERNAL_LABEL (buf, \"LCTOC\", !TARGET_MINIMAL_TOC || TARGET_RELOCATABLE); -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] ABI_V4 init of toc section

2016-01-30 Thread Alan Modra
On Fri, Jan 29, 2016 at 01:20:08PM -0500, David Edelsohn wrote: > On Fri, Jan 29, 2016 at 11:38 AM, Alan Modra wrote: > > PR target/68662 > > * config/rs6000/rs6000.c (need_toc_init): New var, set it > > whenever toc_label_name used. > >

Combine simplify_set WORD_REGISTER_OPERATIONS

2016-01-31 Thread Alan Modra
EG_REG (src) #ifdef CANNOT_CHANGE_MODE_CLASS && ! (REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER && REG_CANNOT_CHANGE_MODE_P (REGNO (dest), -- Alan Modra Australia Development Lab, IBM

[RS6000] lqarx and stqcx. registers

2016-01-31 Thread Alan Modra
-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-options "-mcpu=power8 -Os -mbig" } */ + +__int128 +quad_exchange (__int128 *ptr, __int128 newval) +{ + return __atomic_exchange_n (ptr, newval, __ATOMIC_RELAXED); +} -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] ABI_V4 init of toc section

2016-01-31 Thread Alan Modra
\ && GET_MODE_BITSIZE (MODE) <= GET_MODE_BITSIZE (Pmode)) \ || (!TARGET_NO_FP_IN_TOC \ - && !TARGET_RELOCATABLE \ && GET_CODE (X) == CONS

Re: Combine simplify_set WORD_REGISTER_OPERATIONS

2016-01-31 Thread Alan Modra
On Sun, Jan 31, 2016 at 06:02:35PM -0600, Segher Boessenkool wrote: > On Mon, Feb 01, 2016 at 08:46:42AM +1030, Alan Modra wrote: > > The comment says this test is supposed to prevent "a narrower > > operation than requested", but it actually only allows a larger > >

Re: [PATCH] Fix -mcpu=power8 atomic expansion (PR target/69644)

2016-02-04 Thread Alan Modra
up formatting. > > > > * gcc.dg/pr69644.c: New test. > > Okay. This needs to go on gcc-5 and gcc-4.9 branches too, where it fixes pr69146. pr69146 and pr69644 are dups. OK to apply to the branches? -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Fix -mcpu=power8 atomic expansion (PR target/69644)

2016-02-04 Thread Alan Modra
On Thu, Feb 04, 2016 at 02:42:38PM +0100, Jakub Jelinek wrote: > On Thu, Feb 04, 2016 at 08:40:22AM -0500, David Edelsohn wrote: > > On Thu, Feb 4, 2016 at 6:33 AM, Alan Modra wrote: > > > On Wed, Feb 03, 2016 at 05:34:17PM -0500, David Edelsohn wrote: > > >> On Wed,

Correct c-torture stkalign test

2016-02-07 Thread Alan Modra
= test(argc + 2, 0); - return !(x & (ALIGNMENT - 1)); + y = test2(argc, 0); + y |= test2(argc + 1, 0); + y |= test2(argc + 2, 0); + + return (x & (ALIGNMENT - 1)) == 0 && (y & (ALIGNMENT - 1)) != 0 ? 1 : 0; } -- Alan Modra Australia Development Lab, IBM

Re: Combine simplify_set WORD_REGISTER_OPERATIONS

2016-02-09 Thread Alan Modra
On Mon, Feb 08, 2016 at 09:27:36AM -0700, Jeff Law wrote: > On 01/31/2016 03:16 PM, Alan Modra wrote: > >The comment says this test is supposed to prevent "a narrower > >operation than requested", but it actually only allows a larger > >subreg, not one the same size.

[PATCH, reload] PRE_INC with invalid hard reg

2016-02-11 Thread Alan Modra
&& ! (icode != CODE_FOR_nothing + && insn_operand_matches (icode, 0, equiv) + && insn_operand_matches (icode, 1, equiv /* Using RELOAD_OTHER means we emit this and the reload we made earlier in the wrong order. */ && !reloaded_inner_of_autoinc) -- Alan Modra Australia Development Lab, IBM

[RS6000] reload_vsx_from_gprsf splitter

2016-02-11 Thread Alan Modra
1..2d2f137 100644 --- a/gcc/config/rs6000/vsx.md +++ b/gcc/config/rs6000/vsx.md @@ -1518,15 +1518,6 @@ "xscvdpspn %x0,%x1" [(set_attr "type" "fp")]) -;; Used by direct move to move a SFmode value from GPR to VSX register -(define_insn "vsx_xscvspdpn_directmove" - [(set (match_operand:SF 0 "vsx_register_operand" "=wa") - (unspec:SF [(match_operand:DI 1 "vsx_register_operand" "wa")] - UNSPEC_VSX_CVSPDPN))] - "TARGET_XSCVSPDPN" - "xscvspdpn %x0,%x1" - [(set_attr "type" "fp")]) - ;; Convert and scale (used by vec_ctf, vec_cts, vec_ctu for double/long long) (define_expand "vsx_xvcvsxddp_scale" -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] reload_vsx_from_gprsf splitter

2016-02-11 Thread Alan Modra
had about this, besides using %L in asm output (what forces TFmode to use just fprs?), is what happens when we're using IEEE 128-bit floats? In that case it looks like we'd get just one reg. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, reload] PRE_INC with invalid hard reg

2016-02-11 Thread Alan Modra
On Thu, Feb 11, 2016 at 03:29:05PM +0100, Bernd Schmidt wrote: > On 02/11/2016 10:45 AM, Alan Modra wrote: > > >Due to uses elsewhere in vsx instructions, reload chooses to put > >psuedo 185 in fr31, which can't be used as a base register in the > >following: >

Re: [RS6000] reload_vsx_from_gprsf splitter

2016-02-15 Thread Alan Modra
On Fri, Feb 12, 2016 at 02:57:22PM +0100, Ulrich Weigand wrote: > > On Fri, Feb 12, 2016 at 08:54:19AM +1030, Alan Modra wrote: > > > Another concern I had about this, besides using %L in asm output (what > > > forces TFmode to use just fprs?), is what happens when we

Re: [RS6000] reload_vsx_from_gprsf splitter

2016-02-15 Thread Alan Modra
that is likely not trivial. Do we want to backport the PR68973 fixes to gcc-5 and gcc-4.9? We are exposed to the reload_vsx_from_gprsf bug there, I think, but TFmode won't be IEEE. -- Alan Modra Australia Development Lab, IBM

Re: RFC: [Patch, PR Bug 60818] - ICE in validate_condition_mode on powerpc*-linux-gnu* ]

2016-02-16 Thread Alan Modra
ode)); /* Work out which way this really branches. We could use reverse_condition_maybe_unordered here always but this @@ -25688,7 +25696,7 @@ rs6000_emit_prologue (void) hi = gen_int_mode (toc_restore_insn & ~0x, SImode); emit_insn (gen_xorsi3 (tmp_reg_si, tmp_reg_si, hi)); compare_result = gen_rtx_REG (CCUNSmode, CR0_REGNO); - validate_condition_mode (EQ, CCUNSmode); + gcc_assert (validate_condition_mode (EQ, CCUNSmode)); lo = gen_int_mode (toc_restore_insn & 0x, SImode); emit_insn (gen_rtx_SET (compare_result, gen_rtx_COMPARE (CCUNSmode, tmp_reg_si, lo))); -- Alan Modra Australia Development Lab, IBM

Re: RFC: [Patch, PR Bug 60818] - ICE in validate_condition_mode on powerpc*-linux-gnu* ]

2016-02-16 Thread Alan Modra
On Tue, Feb 16, 2016 at 07:00:58PM +1030, Alan Modra wrote: > What's wrong is the rs6000 backend asserting that (gtu (reg:CC)) can't > happen, because obviously it does. Rather than trying to fix combine, > (where the ICE happens on attempting to validate the insn!), I think &

Re: RFC: [Patch, PR Bug 60818] - ICE in validate_condition_mode on powerpc*-linux-gnu* ]

2016-02-17 Thread Alan Modra
to me that this is primarily an rs6000 backend problem, solved by the blindingly obvious patch I posted. Whether you want to do something in combine as well is a secondary problem. The rs6000 backend shouldn't assert on this rtl. -- Alan Modra Australia Development Lab, IBM

Re: PPC libgcc IEEE128 soft-fp exception/rounding fixes

2016-02-17 Thread Alan Modra
ed from 0 as msb). A comment to that effect might reduce head scratching. -- Alan Modra Australia Development Lab, IBM

Re: RFC: [Patch, PR Bug 60818] - ICE in validate_condition_mode on powerpc*-linux-gnu* ]

2016-02-18 Thread Alan Modra
On Thu, Feb 18, 2016 at 03:43:07AM -0600, Segher Boessenkool wrote: > Either combine should delete the note (my current patch), or it can Works for me. I'm not sure I'd want to promise that combine won't ever create what you call "invalid RTL", in notes. -- Alan Mod

[PATCH] decl alignment not respected

2016-03-01 Thread Alan Modra
This patch cures a problem with ICF of read-only variables at the intersection of -fsection-anchors, -ftree-loop-vectorize, and targets with alignment restrictions. The testcase results in /usr/local/powerpc64le-linux/bin/ld: pack.o: In function `main': pack.c:(.text.startup+0xc): error: R_PPC64_T

[RFC] PR69195, Reload confused by invalid reg equivs

2016-03-04 Thread Alan Modra
cc.dg/pr69238.c new file mode 100644 index 000..3538e63 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr69238.c @@ -0,0 +1,28 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -fno-dce -fno-forward-propagate -fno-rerun-cse-after-loop -funroll-loops" } */ + + +#define N 32 + +short sa[N]; +short sb[N]; +int ia[N]; +int ib[N]; + +int __attribute__ ((noinline, noclone)) +main1 (int n) +{ + int i; + for (i = 0; i < n; i++) +{ + sa[i+7] = sb[i]; + ia[i+3] = ib[i+1]; +} + return 0; +} + +int +main (void) +{ + return main1 (N-7); +} -- Alan Modra Australia Development Lab, IBM

Re: gcc's obvious patch policy

2013-11-26 Thread Alan Modra
cussion I backed down because technically, you were within your rights and I had transgressed the rules. You have the stick *now*. And wield it. I'm trying to take it away from you.. -- Alan Modra Australia Development Lab, IBM

Re: gcc's obvious patch policy

2013-11-26 Thread Alan Modra
r approval.. Well, maybe I do in the current climate. I hope I haven't offended the review gods too much here. I'm sure other people have noticed the issues I'm raising but have more wisely than I, kept quiet. -- Alan Modra Australia Development Lab, IBM

Re: [PING][PATCH] LRA: check_rtl modifies RTL instruction stream

2013-11-28 Thread Alan Modra
m is valid for -mcmodel=medium/large only before reload. After reload it is supposed to be split into high/lo_sum variants that generate "addis rtmp,offset@ha(r2); ld offset@l(rtmp)". -- Alan Modra Australia Development Lab, IBM

Re: LRA vs reload on powerpc: 2 extra FAILs that are actually improvements?

2013-11-30 Thread Alan Modra
0m10.276s sys 0m0.003s I also looked at the register version and -DMEM=1 case with power7 simulators finding that the register version had a delay of 12 cycles from completion of the first instruction to completion of the last. The -DMEM=1 case had a corresponding delay of 49 cycles, which matches the loop timing above quite well. */ -- Alan Modra Australia Development Lab, IBM

Re: [PowerPC] libffi fixes and support for PowerPC64 ELFv2

2013-12-01 Thread Alan Modra
Ping http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02793.html -- Alan Modra Australia Development Lab, IBM

Re: [PING][PATCH] LRA: check_rtl modifies RTL instruction stream

2013-12-03 Thread Alan Modra
On Mon, Dec 02, 2013 at 11:04:39PM -0700, Jeff Law wrote: > On 11/28/13 16:50, Alan Modra wrote: > > > >This is due to that innocuous seeming change of setting > >lra_in_progress before calling check_rtl(), in combination with > >previous changes Vlad made to the r

Re: [PowerPC] libffi fixes and support for PowerPC64 ELFv2

2013-12-03 Thread Alan Modra
On Tue, Dec 03, 2013 at 09:05:53AM -0500, David Edelsohn wrote: > On Thu, Nov 21, 2013 at 9:57 PM, Alan Modra wrote: > > David, > > Here comes the inevitable followup.. I broke backwards compatibility > > when adding an extra field to ffi_cif. I'd like to import agai

Two build != host fixes

2013-12-03 Thread Alan Modra
6 +1898,7 @@ if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' +BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' fi -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2013-12-03 Thread Alan Modra
On Tue, Dec 03, 2013 at 11:44:46PM -0500, DJ Delorie wrote: > Alan Modra writes: > > Bootstrapped etc. powerpc64-linux. OK mainline and 4.8 branch? > > > > * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for > > build != host. > > : Clea

Re: Two build != host fixes

2013-12-04 Thread Alan Modra
On Wed, Dec 04, 2013 at 04:36:58PM +1030, Alan Modra wrote: > Maybe we should use most of BUILD_EXPORTS in the top level > Makefile.in? What can go wrong with that? :) I had a look at this, as it's easy to do, but I didn't find any significant bug to justify such a change in

Re: RFA: patch to fix 2 testsuite failures for LRA on PPC

2013-12-06 Thread Alan Modra
perand" "=&r,Z,&r") (bswap:DI (match_operand:DI 1 "reg_or_mem_operand" "Z,r,r"))) (clobber (match_scratch:SI 2 "=&b,&b,X"))] "!TARGET_POWERPC64 && (REG_P (operands[0]) || REG_P (operands[1]))" -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2013-12-08 Thread Alan Modra
On Tue, Dec 03, 2013 at 11:44:46PM -0500, DJ Delorie wrote: > Alan Modra writes: > > Bootstrapped etc. powerpc64-linux. OK mainline and 4.8 branch? > > > > * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for > > build != host. > > : Clea

Re: Two build != host fixes

2013-12-11 Thread Alan Modra
one in configure. +ifeq ($(host), $(build)) RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib ))) +else +RTS_DIR:=$(strip $(subst \,/,$(shell $(host_alias)-gnatls -v | grep adalib ))) +endif gnattools-cross: $(GCC_DIR)/stamp-tools # gnattools1-re $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2013-12-11 Thread Alan Modra
earched for the build compiler. Important when GMPINC and other *INC point at installed locations for the host compiler. Trouble is, you don't just get the headers you want (eg. gmp.h) but all the other host headers too. -- Alan Modra Australia Development Lab, IBM

Re: question about REG_PARM_STACK_SPACE usage in expand_call

2013-12-14 Thread Alan Modra
ent_function_decl)) + || (reg_parm_stack_space + > REG_PARM_STACK_SPACE (current_function_decl #endif -- Alan Modra Australia Development Lab, IBM

[RS6000] bswapdi2 pattern, reload and lra

2013-12-17 Thread Alan Modra
ion 206009) +++ gcc/testsuite/gcc.target/powerpc/pr53199.c (working copy) @@ -1,7 +1,7 @@ /* { dg-do compile { target { powerpc*-*-* } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ /* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */ -/* { dg-final { scan-assembler-times "lwbrx" 6 } } */ +/* { dg-final { scan-assembler-times "lwbrx" 12 } } */ /* { dg-final { scan-assembler-times "stwbrx" 6 } } */ /* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in @@ -25,6 +25,24 @@ return __builtin_bswap64 (p[i]); } +long long +load64_reverse_4 (long long dummy __attribute__ ((unused)), long long *p) +{ + return __builtin_bswap64 (*p); +} + +long long +load64_reverse_5 (long long dummy __attribute__ ((unused)), long long *p) +{ + return __builtin_bswap64 (p[1]); +} + +long long +load64_reverse_6 (long long dummy __attribute__ ((unused)), long long *p, int i) +{ + return __builtin_bswap64 (p[i]); +} + void store64_reverse_1 (long long *p, long long x) { @@ -44,7 +62,13 @@ } long long -reg_reverse (long long x) +reg_reverse_1 (long long x) { return __builtin_bswap64 (x); } + +long long +reg_reverse_2 (long long dummy __attribute__ ((unused)), long long x) +{ + return __builtin_bswap64 (x); +} -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2013-12-17 Thread Alan Modra
AGS="${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

2013-12-19 Thread Alan Modra
lt) when build != host. The trouble is that GMPINC is then /sysroot_for_host/include, which is where you find all the other host headers, not just gmp.h.. -- Alan Modra Australia Development Lab, IBM

Re: Two build != host fixes

2013-12-19 Thread Alan Modra
e culprit. See http://gcc.gnu.org/ml/gcc-patches/2013-12/msg01149.html -- Alan Modra Australia Development Lab, IBM

Re: Fix IBM long double division inaccuracy (glibc bug 15396)

2014-01-03 Thread Alan Modra
values are encoded in the high-order double value only. The low-order value is not significant. * Does not support the IEEE status flags for overflow, underflow, and other conditions. These flag have no meaning in this format. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] rs6000: Revamp rotate-and-mask and insert

2015-07-14 Thread Alan Modra
ot;lshr3" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (lshiftrt:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_cint_operand" "rn")))] ^^this? -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Fix PR66870 ppc64le, ppc64 split stack

2015-07-30 Thread Alan Modra
6000_set_up_by_prologue (struct hard_reg_set_container *set) && TARGET_MINIMAL_TOC && get_pool_size () != 0) add_to_hard_reg_set (&set->set, Pmode, RS6000_PIC_OFFSET_TABLE_REGNUM); + if (cfun->machine->split_stack_argp_used) +add_to_hard_reg_set (&set->set, Pmode, 12); } -- Alan Modra Australia Development Lab, IBM

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

2015-09-24 Thread Alan Modra
On Thu, Sep 24, 2015 at 02:24:25PM +1000, Michael Ellerman wrote: > On Wed, 2015-09-02 at 11:05 +0930, Alan Modra wrote: > > bugzilla.redhat.com/show_bug_cgi?id=1255946 shows that gcc built with > > both powerpc64-linux and powerpc64le-linux support passes wrong linker > > o

[RS6000] Make -msingle-pic-base remove the ELFv2 global entry code

2015-09-29 Thread Alan Modra
if (DEFAULT_ABI == ABI_ELFv2 + && !TARGET_SINGLE_PIC_BASE) cfun->machine->r2_setup_needed = true; /* Run just enough of rest_of_compilation to get the insns emitted. -- Alan Modra Australia Development Lab, IBM

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

2015-09-30 Thread Alan Modra
On Thu, Sep 03, 2015 at 09:33:45PM -0400, Anthony Green wrote: > Please go ahead. I've been on vacation for a while. Returning next week...  Committed revision 228307. > Original message ---- > From: Alan Modra > Date: 09-03-2015 7:40 PM (GMT-05:00) > T

Re: [PATCH] rs6000: Add "cannot_copy" attribute, use it (PR67788, PR67789)

2015-10-01 Thread Alan Modra
solved, but these labels which aren't referred to by jump insns get converted to NOTE_INSN_DELETED_LABEL somewhere, and that leads to further pain. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR66870 PowerPC64 Enable gold linker with split stack

2015-10-11 Thread Alan Modra
_options, #ifdef TARGET_CAN_SPLIT_STACK_64BIT case OPT_m32: - saw_opt_m32 = true; + is_m64 = false; + break; + + case OPT_m64: + is_m64 = true; break; #endif @@ -253,7 +259,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_optio

Re: [PATCH] PR66870 PowerPC64 Enable gold linker with split stack

2015-10-11 Thread Alan Modra
han what you'd see after command line option processing. This isn't at all surprising when you consider that lang_specific_driver must run before option processing since one of its jobs is to insert command line options. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR66870 PowerPC64 Enable gold linker with split stack

2015-10-12 Thread Alan Modra
t four configurations, powerpc-linux 32-bit only, powerpc64le-linux 64-bit only, biarch powerpc-linux with 32-bit default, and biarch powerpc64-linux with 64-bit default. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, rs6000] Pass --secure-plt to the linker

2015-10-19 Thread Alan Modra
NDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN) > %{R*} \ > %(link_shlib) \ > %{!T*: %(link_start) } \ > +%{!static: %(link_secure_plt_default)} \ > %(link_os)" this change needs to be conditional on !mbss-plt too. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, rs6000] Pass --secure-plt to the linker

2015-10-19 Thread Alan Modra
On Mon, Oct 19, 2015 at 08:10:32PM +0100, Szabolcs Nagy wrote: > On 19/10/15 14:04, Szabolcs Nagy wrote: > >On 19/10/15 12:12, Alan Modra wrote: > >>On Thu, Oct 15, 2015 at 06:50:50PM +0100, Szabolcs Nagy wrote: > >>>A powerpc toolchain built with (or without) --e

Re: [PATCH, rs6000] Pass --secure-plt to the linker

2015-10-20 Thread Alan Modra
> > * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define. > > (LINK_SPEC): Add %(link_secure_plt). > > (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt". > > * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine. > > >

[PATCH 0/7] 64-bit obstack support in libiberty

2015-11-07 Thread Alan Modra
needs obstack.o. The cumulative patch series was bootstrapped and regression tested on x86_64-linux, and also after just the first three patches. Alan Modra (7): New obstack_next_free is not an lvalue Correct libvtv obstack use Update libsanitizer obstack interceptors Copy gnulib obstack files M

[PATCH 1/7] New obstack_next_free is not an lvalue

2015-11-07 Thread Alan Modra
New obstack.h casts obstack_next_free to (void *), resulting in it being a non-lvalue, and warnings on pointer arithmetic. gcc/ * gensupport.c (add_mnemonic_string): Make len param a size_t. (gen_mnemonic_setattr): Make "size" var a size_t. Use obstack_blank_fast to shrink

[PATCH 2/7] Correct libvtv obstack use

2015-11-07 Thread Alan Modra
Fixes a compile error with both old and new obstacks due to obstack_chunk_free having the wrong signature. Also, setting chunk size and alignment before obstack_init is pointless since they are overwritten. * vtv_malloc.cc (obstack_chunk_free): Correct param type. (__vtv_malloc_in

[PATCH 3/7] Update libsanitizer obstack interceptors

2015-11-07 Thread Alan Modra
New obstack uses sensible types, size_t instead of int for length params. Since libsanitizer does not use prototypes from obstack.h to call the real functions, it's necessary to update the libsanitizer function declarations emitted by the INTERCEPTOR macro. As per the comment added to configure.a

[PATCH 4/7] Copy gnulib obstack files

2015-11-07 Thread Alan Modra
This copies obstack.[ch] from gnulib, and updates the docs. The next patch should be applied if someone repeats the import at a later date. include/ PR gdb/17133 * obstack.h: Import current gnulib file. libiberty/ PR gdb/17133 * obstack.c: Import current gnulib fil

[PATCH 5/7] Modify obstack.[hc] to avoid having to include other gnulib files

2015-11-07 Thread Alan Modra
Using the standard gnulib obstack source requires importing quite a lot of other files from gnulib, and requires build changes. If one did want to use gnulib obstack directly, then it would need to go in a sub-directory and after ".../gnulib-tool --import obstack" we'd have the following: ./lib:

[PATCH 6/7] Silence obstack.c -Wc++compat warning

2015-11-07 Thread Alan Modra
Fixes warning: request for implicit conversion from ‘void *’ to ‘struct _obstack_chunk *’ not permitted in C++ [-Wc++-compat] I moved the assignment to h->chunk to fix an overlong line, then decided it would be better after the alloc failure check just to do things the same way as in _obstack_new

[PATCH 7/7] Configury changes for obstack optimization

2015-11-07 Thread Alan Modra
Provides defines used to determine whether glibc obstacks are compatible. Generally speaking, 32-bit targets won't need to use obstack.o from libiberty if glibc is used, while 64-bit targets will, until glibc gets the new obstack code. * configure.ac: Check size of size_t. * confi

POWERPC64_TOC_POINTER_ALIGNMENT

2015-11-17 Thread Alan Modra
(revision 230508) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,9 @@ +2015-11-18 Alan Modra + + * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro + to ld. + * configure: Regenerate. + 2015-11-17 Tom de Vries * tree-ssa-loop.c (pass_tree_loop_i

Re: POWERPC64_TOC_POINTER_ALIGNMENT

2015-11-17 Thread Alan Modra
CC diagnostic pop } /* Our implementation of LEGITIMIZE_RELOAD_ADDRESS. Returns a value to -- Alan Modra Australia Development Lab, IBM

  1   2   3   4   5   6   7   8   9   10   >