(j);
+}
--
Alan Modra
Australia Development Lab, IBM
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
, 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 = shift;
--
Alan Modra
Australia Development Lab, IBM
--
Alan Modra
Australia Development Lab, IBM
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 patch:
https://gcc.gnu.org/ml/gcc-patches
the correction.
--
Alan Modra
Australia Development Lab, IBM
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
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 section attributes, but hasn't done so
Ping?
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00704.html
--
Alan Modra
Australia Development Lab, IBM
)
tem = XEXP (tem, 0), lneg = !lneg;
--
Alan Modra
Australia Development Lab, IBM
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,
because
many test scripts
be necessary, because we've already done
that.. OTOH, it shouldn't hurt to align again.
--
Alan Modra
Australia Development Lab, IBM
- displacements. */
- (align = 64 || (!STRICT_ALIGNMENT align = 32)))
+ (align = 64 || !STRICT_ALIGNMENT))
{
move_bytes = 8;
mode = DImode;
--
Alan Modra
Australia Development Lab, IBM
On Fri, May 02, 2014 at 11:28:27AM -0400, David Edelsohn wrote:
On Fri, May 2, 2014 at 6:20 AM, Alan Modra amo...@gmail.com 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 little-endian
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
== operands[0])
-DONE;
- else
-FAIL;
+{ rs6000_emit_set_const (operands[0], operands[1]);
+ DONE;
})
;; TImode/PTImode is similar, except that we usually want to compute the
--
Alan Modra
Australia Development Lab, IBM
On Wed, May 07, 2014 at 01:39:50PM -0400, David Edelsohn wrote:
On Tue, May 6, 2014 at 4:32 AM, Alan Modra amo...@gmail.com wrote:
BTW, the latest patch in my tree has a slight refinement, the
reload-by-hand addition.
PR target/60737
* config/rs6000/rs6000.c
. 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 it wasn't worth optimising
that for the added source complication.
--
Alan Modra
Australia Development
On Sat, May 10, 2014 at 10:24:34PM -0400, David Edelsohn wrote:
On Thu, May 8, 2014 at 10:40 PM, Alan Modra amo...@gmail.com 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?
See above
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 amo...@gmail.com wrote:
rs6000_emit_set_const ... always returns a non-zero result ...
Can you help clarify the removal
On Sat, May 10, 2014 at 10:24:34PM -0400, David Edelsohn wrote:
On Thu, May 8, 2014 at 10:40 PM, Alan Modra amo...@gmail.com wrote:
Please do not remove all of the comments from the two functions. The
comments should provide some documentation about the different
purposes of the two
.
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
gpc_reg_operand =r,r)
- (sign_extend:DI (match_operand:SI 1 lwa_operand m,r)))]
+ (sign_extend:DI (match_operand:SI 1 lwa_operand Y,r)))]
TARGET_POWERPC64 rs6000_gen_cell_microcode !TARGET_LFIWAX
@
lwa%U1%X1 %0,%1
--
Alan Modra
Australia Development Lab, IBM
(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
allocated by the caller. */
#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1
--
Alan Modra
Australia Development Lab, IBM
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
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 your patience.
--
Alan Modra
Australia Development Lab, IBM
float __attribute__ ((mode(SD))) fr1 __asm__ (fr1);
+
+ __asm__ (# : =d (fr1));
+ r31 = fr1;
+ __asm__ (# : : r (r31));
+}
--
Alan Modra
Australia Development Lab, IBM
On Mon, Feb 10, 2014 at 07:01:03PM -0500, David Edelsohn wrote:
On Mon, Feb 10, 2014 at 5:18 PM, Alan Modra amo...@gmail.com 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 certain parts need
(addr, false) /* reg */
--
Alan Modra
Australia Development Lab, IBM
on powerpc by defining new enum ffi_abi
values so that you can recognize an old app.
--
Alan Modra
Australia Development Lab, IBM
;
+}
rclass = REGNO_REG_CLASS (regno);
addr = find_replacement (XEXP (mem, 0));
--
Alan Modra
Australia Development Lab, IBM
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 for pseudo reg 159 as its mem arg
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
changed significantly, e.g
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
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
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,6 +74,8
On Mon, Mar 03, 2014 at 01:33:18PM +, Richard Sandiford wrote:
Alan Modra amo...@gmail.com 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't know whether
we want to keep
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
|= this_neg || i != n_ops - 2;
break;
case NEG:
--
Alan Modra
Australia Development Lab, IBM
the
lazy plt resolution trashes r11.
--
Alan Modra
Australia Development Lab, IBM
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
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
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_OP_stack_value
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.
018f 0108 0114 (DW_OP_breg10 (r10): 0
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 we get
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
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
this problem
when adding ELFv2 support by moving those notes.
--
Alan Modra
Australia Development Lab, IBM
(olddecl) = olddecl_uid;
if (olddecl_friend)
DECL_FRIEND_P (olddecl) = 1;
--
Alan Modra
Australia Development Lab, IBM
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 before finding the bugzilla
patch submission at
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01146.html
I said trunk does not honour the last section attribute. What I
really should have said was trunk, with a straight-forward fix for
complete loss of section attribute, does not honour the last section
attribute.
--
Alan
*child_task = NULL;
struct gomp_task *to_free = NULL;
- if (task == NULL || team == NULL)
+ if (task == NULL
+ || __atomic_load_n (task-children, MEMMODEL_ACQUIRE) == NULL)
return;
gomp_mutex_lock (team-task_lock);
--
Alan Modra
Australia Development Lab, IBM
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
, MEMMODEL_ACQUIRE) == NULL)
return;
--
Alan Modra
Australia Development Lab, IBM
;
- ret = NO_REGS;
+ default_p = true;
}
else
default_p = true;
--
Alan Modra
Australia Development Lab, IBM
=INDX+6
+ 220 CONTINUE
+ 290 CONTINUE
+ END
--
Alan Modra
Australia Development Lab, IBM
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 tested powerpc64-linux, but not yet spec
tested.
2013-02-07 Alan Modra amo...@gmail.com
* reload.c (find_reloads): Disparage reg
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
On Thu, Feb 07, 2013 at 10:11:02AM +0100, Richard Biener wrote:
On Thu, Feb 7, 2013 at 9:45 AM, Alan Modra amo...@gmail.com 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 way to just disable
by defining CRT_CALL_STATIC_FUNCTION. Done! Another 4.9 patch
queued.
--
Alan Modra
Australia Development Lab, IBM
the same as trunk with my reload patch.
--
Alan Modra
Australia Development Lab, IBM
;
fs-regs.reg[i + FIRST_PSEUDO_REGISTER - 1].loc.offset
--
Alan Modra
Australia Development Lab, IBM
nodes, it means a goto for this label has been seen
from a place outside all binding contours that restore stack levels.
--
Alan Modra
Australia Development Lab, IBM
of
the
previous definition
In mainline sources the two macro definitions are identical. Self-
inflicted wound?
--
Alan Modra
Australia Development Lab, IBM
legitimate_constant_pool_address_p (const_rtx, enum machine_mode,
+ bool);
extern bool legitimate_indirect_address_p (rtx, int);
extern bool legitimate_indexed_address_p (rtx, int);
extern bool avoiding_indexed_address_p (enum machine_mode);
--
Alan Modra
Australia Development
with a corresponding hack in
rs6000_output_addr_const_extra arranges to output addends
--
Alan Modra
Australia Development Lab, IBM
)
(vec_duplicate:VSX_D
-(match_operand:VS_scalar 1 input_operand ws,f,Z,wa,wa,Z)))]
+(match_operand:VS_scalar 1 splat_input_operand ws,f,Z,wa,wa,Z)))]
VECTOR_MEM_VSX_P (MODEmode)
@
xxpermdi %x0,%x1,%x1,0
--
Alan Modra
Australia Development Lab, IBM
)
- || ! strcmp (language_string, GNU GIMPLE))
+ || ! strcmp (language_string, GNU GIMPLE)
+ || ! strcmp (language_string, GNU Go))
i = 0;
else if (! strcmp (language_string, GNU F77)
|| ! strcmp (language_string, GNU Fortran))
--
Alan Modra
Australia
replace_equiv_address_nv is even better. (As witnessed
by the use of that function in reload.c, reload1.c. We know
validating the address is just a waste of time, as is calling
update_temp_slot_address.) I'll bootstrap and regtest again with that
change.
--
Alan Modra
Australia Development Lab, IBM
)
+ XINT (y, 1) == UNSPEC_TOCREL)
{
y = XVECEXP (y, 0, 0);
if (!MEM_P (orig_x))
--
Alan Modra
Australia Development Lab, IBM
On Wed, Apr 06, 2011 at 02:45:49PM +0200, Jakub Jelinek wrote:
On Wed, Apr 06, 2011 at 10:06:11PM +0930, Alan Modra wrote:
I've noticed a number of tests fail on mainline with complaints about
non-delegitimized UNSPECs. The reason why rs6000_delegitimze_address
isn't working is that our
in this object file. */
- c_node = cgraph_node (fndecl);
+ c_node = cgraph_get_create_node (fndecl);
return !cgraph_only_called_directly_p (c_node);
}
return false;
I think we should use cgraph_get_node here.
--
Alan Modra
Australia Development Lab, IBM
, \
+ 18, 17, 16, 15, 14, 13, LATE_R12\
64, 66, 65, \
73, 1, MAYBE_R2_FIXED 67, 76, \
/* AltiVec registers. */ \
--
Alan Modra
Australia
:
--
Alan Modra
Australia Development Lab, IBM
On Mon, Sep 26, 2011 at 11:22:54PM +0930, Alan Modra wrote:
Two regressions appeared due to a problem in the shrink-wrap code.
These two.
+FAIL: g++.dg/torture/pr46111.C -O1 (internal compiler error)
+FAIL: gcc.dg/autopar/pr46099.c (internal compiler error)
Both internal compiler error
On Tue, Sep 27, 2011 at 12:39:36AM +0200, Bernd Schmidt wrote:
On 09/27/11 00:32, Alan Modra wrote:
On Mon, Sep 26, 2011 at 11:22:54PM +0930, Alan Modra wrote:
Two regressions appeared due to a problem in the shrink-wrap code.
These two.
+FAIL: g++.dg/torture/pr46111.C -O1 (internal
)
+ [(simple_return)
(use (match_operand:P 0 register_operand lc))]
b%T0
--
Alan Modra
Australia Development Lab, IBM
:
return;
and now the r29 assignment cannot be moved past the if, disabling
shrink wrap.
--
Alan Modra
Australia Development Lab, IBM
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
like
r29 = r3; // save r3 in callee saved reg
if (some
(bb_antic_flags);
bitmap_clear (bb_on_list);
VEC_free (basic_block, heap, vec);
--
Alan Modra
Australia Development Lab, IBM
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. povray Ray_In_Bound no longer gets
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 epilogues. From what I've
virtual-incoming-args, value);
else if (value == VIRTUAL_STACK_VARS_REGNUM)
--
Alan Modra
Australia Development Lab, IBM
On Tue, Apr 03, 2012 at 07:49:04PM +0100, Richard Sandiford wrote:
Alan Modra amo...@gmail.com writes:
Now that we are back in stage1, I'd like to apply
http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00304.html, a change to
toc reference rtl in order to properly specify r2 dependencies. More
, but I don't want to leave a latent bug.
I'll see whether my approach fixes pr30282 for gcc-4.4 which has known
deficiencies in alias analysis. Olivier, would you be kind enough to
backport and test against other versions of gcc that needed your
bigger hammer?
--
Alan Modra
Australia Development Lab
reload anyway.
--
Alan Modra
Australia Development Lab, IBM
Hi Olivier,
On Thu, Apr 05, 2012 at 12:36:01PM +0200, Olivier Hainque wrote:
On Apr 4, 2012, at 03:22 , Alan Modra wrote:
I'll see whether my approach fixes pr30282 for gcc-4.4 which has known
deficiencies in alias analysis. Olivier, would you be kind enough to
backport and test against
that didn't mention
the base reg used by the adjacent write/read (or no tie).
(Hah! In writing this, I remember why I took out that assert. What
happens prior to the tie in the prologue is of no concern.)
--
Alan Modra
Australia Development Lab, IBM
thread corrupting a good
initialization. Quite obviously we don't need a read barrier at these
points since only the initialization thread gets there.
Bootstrapped and regression tested on power7. OK to apply?
2012-04-08 Alan Modra amo...@gmail.com
* libsupc++/guard.cc: Whitespace
barriers
like this says I may as well have not bothered. (mem:BLK (scratch))
performs identically at the moment.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Apr 11, 2012 at 11:00:04AM +0200, Richard Guenther wrote:
On Wed, Apr 11, 2012 at 6:15 AM, Alan Modra amo...@gmail.com wrote:
Well - you are expecting generic code to understand your arch-specific
UNSPEC. It of course cannot.
Right.
(USE (mem:BLK (reg 1)))
(CLOBBER (mem:BLK (reg
; then
+ test $glibcxx_cv_atomic_int = yes; then
AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS, 1,
[Define if the compiler supports C++11 atomics.])
atomicity_dir=cpu/generic/atomicity_builtins
--
Alan Modra
Australia Development Lab, IBM
)
--
Alan Modra
Australia Development Lab, IBM
(insn, frame_reg_rtx, sp_off - frame_off,
areg, GEN_INT (offset));
}
}
--
Alan Modra
Australia Development Lab, IBM
)
{
if (cfa_restores)
{
--
Alan Modra
Australia Development Lab, IBM
that ABI_V4 might be using r12
as frame_reg_rtx and r11 as the static chain pointer for
nested functions. */
+ NOT_INUSE (0);
reg = gen_rtx_REG (SImode, 0);
vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO);
if (TARGET_MACHO)
--
Alan Modra
Australia Development Lab
+ (strategy SAVE_INLINE_GPRS) == 0
+ (strategy SAVE_NOINLINE_GPRS_SAVES_LR) == 0
+ !using_static_chain_p ? 11 : 12);
if (!WORLD_SAVE_P (info)
info-cr_save_p
REGNO (frame_reg_rtx) != cr_save_regno)
--
Alan Modra
Australia
On Wed, Apr 18, 2012 at 12:45:16AM +0930, Alan Modra wrote:
This enables out-of-line save and restore for large frames, and for
ABI_AIX when using the static chain.
Further testing revealed two problems when compiling nested
functions.
1) The logic I had for cr_save_regno is wrong, resulting
On Thu, Apr 19, 2012 at 08:00:15PM +0930, Alan Modra wrote:
On Wed, Apr 18, 2012 at 12:45:16AM +0930, Alan Modra wrote:
This enables out-of-line save and restore for large frames, and for
ABI_AIX when using the static chain.
Further testing revealed two problems when compiling nested
1 - 100 of 986 matches
Mail list logo