igure ought to be able to test for
a hang in ld. If that's too hard, then I suppose you could fail this
test for powerpc64 based on ld version.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
for things that really do need
to override other options.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
nt can be calculated in at most 2 instructions. A 64-bit
address takes up to 5 instructions to calculate in-line, or a TOC memory
load.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
y. eg. string merging, relaxation.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
wonder about even that; why do:
> >
> > 2004-02-07 Alan Modra <[EMAIL PROTECTED]>
> >
> > * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-
> > ldouble.c.
> >
> > powerpc64-*-linux*)
>
> Hmm... this is powerpc64.
Yes. powerpc64-lin
Forcing the
sym local should cure it.
> and rebuild the world. But that
> would be much more work.
>
> David Daney.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
ror_handler ("section %d is called %A", sec, 1);
--
Alan Modra
IBM OzLabs - Linux Technology Centre
. I couldn't think of a way to do that without
incorporating a whole lot of knowledge about printf into the bfd
function.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
s%B
%s%B
%s%B
%s%B
%%%d%s%B%s%B
%s%B%s%B
%s%s%B%B
%s%B%A%B
%s%B%B
%s%B%A%B
%s%B%B%A
%B%lx%lx%lx%A
%u%s%B%u%B
%s%lu%B%lu%B
%B%s%s%B
%B%s%A
%X%s%A%B%A
%B%lx%A
%B%s%s%lx%A%lx
It's a great pity that vfprintf doesn't return its va_list arg. If it
did, you could chop the format string into pieces and have vprintf
process the normal parts, consuming args as it goes.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNCTION_BEG)
> ! break;
> ! emit_insn_after (seq, fn_begin);
> ! }
> }
>
> /* Call back from expand_function_end to know where we should put
--
Alan Modra
IBM OzLabs - Linux Technology Centre
On Fri, Sep 02, 2005 at 06:28:08PM +0930, Alan Modra wrote:
> I propose using this instead:
>
> for (fn_begin = get_insns (); ; fn_begin = NEXT_INSN (fn_begin))
> if (NOTE_P (fn_begin)
> && NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNC
On Wed, Sep 07, 2005 at 11:14:28AM +0800, Yao Qi qi wrote:
> I just have to concentrate on ABI_V4 if I work on gcc develoment on
> powerpc-linux, am I right ?
Yes, and take care not to break code for the other ABIs. :-)
Incidentally, powerpc64-linux is ABI_AIX.
--
Alan Modra
IBM
+ (match_dup 3))
+ (trap_if (const_int 2) (const_int 0))])]
""
"
{
- rtx temp = gen_reg_rtx (Pmode);
- int units_per_word = (TARGET_32BIT) ? 4 : 8;
+ int units_per_word = TARGET_32BIT ? 4 : 8;
- /* Restore the backchain from the first word, sp from the second. */
- emit_move_insn (temp,
- adjust_address_nv (operands[1], Pmode, 0));
- emit_move_insn (operands[0],
- adjust_address_nv (operands[1], Pmode, units_per_word));
- emit_move_insn (gen_rtx_MEM (Pmode, operands[0]), temp);
- DONE;
+ operands[2] = gen_reg_rtx (Pmode);
+ operands[3] = gen_reg_rtx (Pmode);
+ operands[1] = adjust_address_nv (operands[1], Pmode, 0);
+ operands[4] = adjust_address_nv (operands[1], Pmode, units_per_word);
+ /* We don't want the backchain write to be recognized as non-trapping,
+ so don't use gen_frame_mem here. */
+ operands[5] = gen_rtx_MEM (Pmode, operands[3]);
}")
;; TOC register handling.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
On Fri, Sep 09, 2005 at 05:03:48PM -0700, Richard Henderson wrote:
> On Sat, Sep 10, 2005 at 01:00:04AM +0930, Alan Modra wrote:
> > 2) Next, I defined parallels to keep things together. Like the
> > following, with another for DImode.
>
> This seems most reasonable to me.
&
chain is written before updating sp.
Hmm, on powerpc64-linux you could even alloc up to 288 bytes without
an atomic update, since 288 bytes below the current sp is available for
use.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
building binutils. I found I
needed to delete ${srcdir}/gas/doc/asconfig.texi and
${srcdir}/ld/configdoc.texi. "make clean" doesn't delete these files
for you.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
the reload
substitution with a dummy reg. I fear this isn't proper, even though it
seems to work..
(*) This is exactly what code in find_reloads_address does on
encoutering invalid indexed address. The trouble is that its
transformation isn't valid until the reloads are done, and we check
p]
>
> Overall, I'd tend to prefer something along the lines of (c), in
> particular as it would also catch the cases where
> LEGITIMIZE_RELOAD_ADDRESS isn't actually involved, as you note:
Thanks. I went ahead and implemented this, and yes, the testcase in
pr24997 has be
12MB + 1GB swap, this time running
> FreeBSD 5.3, I cannot install GCC any longer.
I noticed something similar on a Linux machine with 512M + 1G swap when
remaking libjava after editing some files. Thrashing for around 15
minutes before finally proceeding.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
On Sun, Dec 04, 2005 at 11:45:21AM +, Andrew Haley wrote:
> Alan Modra writes:
> > On Sun, Dec 04, 2005 at 12:35:31AM +0100, Gerald Pfeifer wrote:
> > > spawns a recursive make (GNU make 3.80) that consumes some 450MB of
> memory
> > > and triggers a
On Wed, Jan 15, 2020 at 03:11:13AM +, Gary Oblock wrote:
> If you just do a clone and don't checkout a branch, is this equivalent
> the top of the trunk in the old scheme?
Yes. More details in "git help clone".
--
Alan Modra
Australia Development Lab, IBM
t the ones that are ready first, then
"git push origin :master"
just to push up to the relevant commit. That works quite well for me.
--
Alan Modra
Australia Development Lab, IBM
as a series of adds and shifts against the
cost of a multiply. If all those adds and shifts are costed at zero,
then synth_mult can't do its job.
So what should that comment say?
--
Alan Modra
Australia Development Lab, IBM
r3) (plus (reg x) (const_int 1)))
(set (reg r4) (plus (reg x) (const_int 1)))
So in these examples we'd really like register moves to cost one
insn. Hmm, at least, moves from hard regs ought to cost something.
--
Alan Modra
Australia Development Lab, IBM
ifficulty is in separating out the whole insn cases from the
partial insn cases.
Note that we already have insn_rtx_cost, and it returns a minimum cost
for a SET, so register move insns get a cost of 1 insn. However,
despite insn_rtx_cost starting life in combine.c, even combine doesn't
use it in
On Mon, Jun 29, 2015 at 09:34:40AM -0500, Segher Boessenkool wrote:
> On Mon, Jun 29, 2015 at 05:16:39PM +0930, Alan Modra wrote:
> > Note that we already have insn_rtx_cost, and it returns a minimum cost
> > for a SET, so register move insns get a cost of 1 insn. Howev
r a year ago so I
guess this shows that not too many people use combined binutils+gcc
builds nowadays. I've always found combined binutils+gcc builds not
worth the bother compared to simply building and installing binutils
first, as Jim suggests.
--
Alan Modra
Australia Development Lab, IBM
to me that you
have more than just CFI problems. How do you restore sp on return
from the function, assuming sp wasn't 16-byte aligned to begin with?
Past that "and $sp,$sp,$3" you don't have any means of calculating
the original value of sp! (Which of course is why you also can't find
a way of representing the frame address.)
--
Alan Modra
Australia Development Lab, IBM
On Mon, Aug 17, 2015 at 10:38:22AM -0700, Steve Ellcey wrote:
> On Tue, 2015-08-11 at 10:05 +0930, Alan Modra wrote:
>
> > > The 'and' instruction is where the stack gets aligned and if I remove that
> > > one instruction, everything works. I think I need to put
master with your output_type changes.
This is OK to commit with a suitable ChangeLog. I think a separate ld
option is best too, because historically -static and its aliases
-Bstatic, -dn, -non_shared really are about what type of libraries are
accepted rather than choosing linker output type.
--
Ala
eir code in order to fix an ABI problem. That may be more
disrupting than just leaving gcc incompatible with other compilers.
--
Alan Modra
Australia Development Lab, IBM
ll run into
trouble trying to define a function with more than eight float args if
writing K&R code. Old programmers tend to know about such issues, and
don't use float function parameters in K&R code. :)
Incidentally, there are other rather more nasty parameter passing
problems with ppc32, ones I would have liked to fix. For instance,
"complex double" is passed in 4 gprs.
--
Alan Modra
Australia Development Lab, IBM
t-addr-optimize.
--
Alan Modra
Australia Development Lab, IBM
to
set (reg tmp) (high (const (minus ((symbol_ref) (reg 2)
.. mem (lo_sum (reg tmp) (const (minus ((symbol_ref) (reg 2)
both high and lo_sum reference r2 and the linker could happily replace
rtmp in the lo_sum insn with r2 when the high address is known to be
zero.
Bill, do you have test cases for the alias problem? Is this something
that needs fixing for gcc-6?
--
Alan Modra
Australia Development Lab, IBM
ing to the var from
code within the shared library, that now merrily writes to a .dynbss
copy.
--
Alan Modra
Australia Development Lab, IBM
On Mon, Apr 18, 2016 at 07:59:50AM -0700, H.J. Lu wrote:
> On Mon, Apr 18, 2016 at 7:49 AM, Alan Modra wrote:
> > On Mon, Apr 18, 2016 at 11:01:48AM +0200, Richard Biener wrote:
> >> To summarize: there is currently no testcase for a wrong-code issue
> >> because t
On Tue, Apr 19, 2016 at 10:20:23AM +0200, Richard Biener wrote:
> On Tue, Apr 19, 2016 at 7:08 AM, Alan Modra wrote:
> > On Mon, Apr 18, 2016 at 07:59:50AM -0700, H.J. Lu wrote:
> >> On Mon, Apr 18, 2016 at 7:49 AM, Alan Modra wrote:
> >> > On Mon, Apr 18, 201
l see
some resistance to that idea due to the fact that it delivers quite a
nice performance improvement for PIEs.
--
Alan Modra
Australia Development Lab, IBM
Discussion started here:
https://gcc.gnu.org/ml/gcc-patches/2016-08/msg01678.html
On Wed, Aug 24, 2016 at 08:51:16PM +0300, Alexander Monakov wrote:
> On Wed, 24 Aug 2016, Alan Modra wrote:
> > Given a hidden visibility function declaration, the toolchain can say
> > that the funct
On Thu, Aug 25, 2016 at 01:36:53PM +0200, Florian Weimer wrote:
> * Alan Modra:
>
> > glibc people: As the main user of ifuncs, how do you feel about not
> > declaring functions hidden that are implemented in glibc by ifuncs?
>
> We have run into this before
PACE
+#undef REG_PARM_STACK_SPACE
+#define REG_PARM_STACK_SPACE INCOMING_REG_PARM_STACK_SPACE
+#endif
+
/* If not defined, pick an appropriate default for the offset of dynamically
allocated memory depending on the value of ACCUMULATE_OUTGOING_ARGS,
REG_PARM_STACK_SPACE, and OUTGOING_REG_PARM_S
On Fri, May 30, 2014 at 11:27:52AM -0600, Jeff Law wrote:
> On 05/26/14 01:38, Alan Modra wrote:
> >PR61300 shows a need to differentiate between incoming and outgoing
> >REG_PARM_STACK_SPACE for the PowerPC64 ELFv2 ABI, due to code like
> >function.c:assign_parm_is_stack_pa
On Fri, May 30, 2014 at 09:22:30PM +0200, Florian Weimer wrote:
> On 05/26/2014 09:38 AM, Alan Modra wrote:
>
> >Background: The ELFv2 ABI requires a parameter save area only when
> >stack is actually used to pass parameters, and since varargs are
> >passed on the stack,
On Mon, Jun 02, 2014 at 12:00:41PM +0200, Florian Weimer wrote:
> On 05/31/2014 08:56 AM, Alan Modra wrote:
>
> >>It's fine to change ABI when compiling an old-style function
> >>definition for which a prototype exists (relative to the
> >>non-pro
d that you could flush arguments to it. That's not true in the
> case where the caller had a prototype for the callee in-scope (and
> the callee was not a varargs function).
>
> Right? Just want to make sure I understand the problem.
Exactly correct.
--
Alan Modra
Australia Development Lab, IBM
the operand constraints. What's
more, you can't make them match without breaking up the insn, or
adding a whole lot of extra alternatives.
--
Alan Modra
Australia Development Lab, IBM
ta to the linker plugin. So it's a linker bug AFAIU.
What version linker? In particular, do you have the fix for PR12975?
--
Alan Modra
Australia Development Lab, IBM
On Tue, Aug 05, 2014 at 08:18:06PM -0400, Ulrich Drepper wrote:
> On Tue, Aug 5, 2014 at 12:57 AM, Alan Modra wrote:
> > What version linker? In particular, do you have the fix for PR12975?
>
> The Fedora 19 version. I think it hasn't changed since then which
> means it
odel "for performance" are a problem that's not going to go away
> until TLSDESC gets properly adopted.
I posted support for TLSDESC on powerpc back in 2009 (search for
powerpc _tls_get_addr call optimization). The patch wasn't reviewed,
and I didn't push it because my benchmark tests didn't show a much of
a gain. Quite possibly I wasn't using the right benchmark.
--
Alan Modra
Australia Development Lab, IBM
On Thu, Feb 12, 2015 at 06:55:30PM -0500, Rich Felker wrote:
> On Fri, Feb 13, 2015 at 10:12:11AM +1030, Alan Modra wrote:
> > I posted support for TLSDESC on powerpc back in 2009 (search for
> > powerpc _tls_get_addr call optimization). The patch wasn't reviewed,
> > an
sable-plugin too, but
shouldn't this be automatic if --disable-shared is given?
--
Alan Modra
Australia Development Lab, IBM
On Wed, Apr 15, 2015 at 04:10:33PM -0500, Joel Sherrill wrote:
> Based on the grep, the .4byte directives are referencing a bogus symbol.
>
> Does this look like a GCC bug?
Yes, unless you have some horrible asm there referencing the symbol.
--
Alan Modra
Australia Development Lab, IBM
DI 76 ca)
(reg:DI 165 [ val+8 ]))
(reg:DI 169 [+8 ]))
and the latter has the ca register in the wrong place. So a split is
tried and you get addze. I'm working on this. The reordering happens
inside simplify_plus_minus.
--
Alan Modra
Australia Development Lab, IBM
On Thu, May 21, 2015 at 07:39:16AM -0500, Segher Boessenkool wrote:
> On Thu, May 21, 2015 at 08:06:04PM +0930, Alan Modra wrote:
> > FAIL: gcc.target/powerpc/ti_math1.c scan-assembler-times adde 1
>
> It doesn't trigger on big-endian; what is different?
Register depen
sn't do anything fancy, just stops gratuitous register
reordering. If simplification or canonicalization occurs, then
registers may well be reordered.
--
Alan Modra
Australia Development Lab, IBM
Does anyone have any clues as to how I might fix this? I'm not keen
on adding an insn_and_split to rs6000.md to recognize the 6 -> 8
combination, because one of the aims of the wider patch I was working
on was to remove patterns like rotlsi3_64, ashlsi3_64, lshrsi3_64 and
ashrsi3_64. Addi
creaed I don't think you'll see them
generated at all, which would fix my testcase but probably regress
others.
--
Alan Modra
Australia Development Lab, IBM
: (GET_CODE (OP) == AND \
+ || GET_CODE (OP) == ZERO_EXTEND \
+ || GET_CODE (OP) == ASHIFT \
+ || GET_CODE (OP) == ROTATE \
+ || GET_CODE (OP) == LSHIFTRT)\
+ ? ZERO_EXTEND \
+ : (GET_CODE (OP) == SIGN_EXTEND \
+ || GET_CODE (OP) == ASHIFTRT)\
+ ? SIGN_EXTEND \
+ : UNKNOWN)
+
/* Define if loading in MODE, an integral mode narrower than BITS_PER_WORD
will either zero-extend or sign-extend. The value of this macro should
be the code that says which one of the two operations is implicitly
--
Alan Modra
Australia Development Lab, IBM
On Fri, May 29, 2015 at 07:58:38AM -0500, Segher Boessenkool wrote:
> On Fri, May 29, 2015 at 12:41:20PM +0930, Alan Modra wrote:
> > +/* Describe how rtl operations on registers behave on this target when
> > + operating on less than the entire register. */
> >
On Fri, May 29, 2015 at 10:00:04AM -0500, Segher Boessenkool wrote:
> On Fri, May 29, 2015 at 11:20:08PM +0930, Alan Modra wrote:
> > On Fri, May 29, 2015 at 07:58:38AM -0500, Segher Boessenkool wrote:
> > > On Fri, May 29, 2015 at 12:41:20PM +0930, Alan Modra wrote:
> >
On Sat, May 30, 2015 at 08:02:20AM -0500, Segher Boessenkool wrote:
> On Sat, May 30, 2015 at 10:47:27AM +0930, Alan Modra wrote:
> > Huh, that does look like you've destroyed my claim about SImode AND.
>
> Carefully worded :-)
Yes, I wrote it meaning as in refuted an argume
On Mon, Jun 01, 2015 at 08:39:05AM -0500, Segher Boessenkool wrote:
> On Mon, Jun 01, 2015 at 11:33:18AM +0930, Alan Modra wrote:
> > Unifying andsi_mask with anddi_mask, and the fact that constraints for
> > const_int see VOIDmode rather than the operand mode is why we get
> &g
On Tue, Jun 02, 2015 at 11:28:09AM -0500, Segher Boessenkool wrote:
> On Tue, Jun 02, 2015 at 08:49:37AM +0930, Alan Modra wrote:
> > but and64_2_operand doesn't include all of and_operand!
>
> Maybe I'm slow today, but I don't see it? Do you have an example?
I ne
nsion to happen even for unsigned type.
>
> is there any way to set 'punsignedp' appropriately here.
No. The call to promote_function_mode in emit_library_call_value_1
does not pass type info (because it isn't available for libcalls).
--
Alan Modra
Australia Development Lab, IBM
Clearly, we cannot assign
> a register to the "input" variable that is both the same and different
> to the register that is assigned to "output".
No, you certainly can do that. I think you have found a bug in lra.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Feb 20, 2019 at 10:08:07AM -0600, Peter Bergner wrote:
> On 2/19/19 9:09 PM, Alan Modra wrote:
> > On Mon, Feb 18, 2019 at 01:13:31PM -0600, Peter Bergner wrote:
> >> long input;
> >> long
> >> bug (void)
> >> {
> >> register long o
I forgot to say, gcc-6, gcc-7 and gcc-8 handle your original testcase
with the register asm just fine.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Feb 20, 2019 at 08:57:52PM -0600, Peter Bergner wrote:
> On 2/20/19 4:19 PM, Alan Modra wrote:
> > I forgot to say, gcc-6, gcc-7 and gcc-8 handle your original testcase
> > with the register asm just fine.
>
> Yes, because they don't have my IRA and LRA patches t
dentally, if thunks are broken then it's very
likely local function calls are broken too.
--
Alan Modra
Australia Development Lab, IBM
On Mon, May 20, 2019 at 02:55:33AM -0500, Segher Boessenkool wrote:
> On Mon, May 20, 2019 at 04:19:54PM +0930, Alan Modra wrote:
> > On Thu, May 16, 2019 at 05:52:42PM -0500, Segher Boessenkool wrote:
> > > Hi Umesh,
> > >
> > > On Thu, May 16, 2019 at 0
to a function defined outside the
executable. This case requires a special stub in the executable to
serve as the address of the function.
--
Alan Modra
Australia Development Lab, IBM
_TPREL34, and that one only if you allow
-ftls-model=local-exec when building shared libraries and accept that
DF_STATIC_TLS shared libraries that can't be dlopen'd are OK.
See https://sourceware.org/ml/binutils/2019-09/msg00164.html, which
doesn't allow even R_PPC64_TPREL34. I haven&
On Mon, Sep 23, 2019 at 10:37:29AM +0200, Florian Weimer wrote:
> * Alan Modra:
>
> > On Mon, Sep 23, 2019 at 09:42:52AM +0200, Florian Weimer wrote:
> >> At Cauldron, the question came up whether the dynamic loader needs to
> >> be taught about the new relocati
On Mon, Sep 23, 2019 at 11:14:12AM +0200, Florian Weimer wrote:
> * Alan Modra:
>
> > On Mon, Sep 23, 2019 at 10:37:29AM +0200, Florian Weimer wrote:
> >> * Alan Modra:
> >>
> >> > On Mon, Sep 23, 2019 at 09:42:52AM +0200, Florian Weimer wrote:
> &
ing
glibc that could be installed in a non-standard location and co-exist
with other system libraries. I worked around..
> Inconsistency detected by ld.so: get-dynamic-info.h: 147:
> elf_get_dynamic_info:
> Assertion `info[DT_RPATH] == NULL' failed!
..this by patching glibc.
-
cpus (with presumably run-time
selection of which block of code gets executed depending on cpu).
It used to be just a linux hack, but I see David uses it in aix61.h
and aix71.h too?
--
Alan Modra
Australia Development Lab, IBM
On Tue, Feb 14, 2017 at 06:38:40PM -0600, Segher Boessenkool wrote:
> On Wed, Feb 15, 2017 at 10:36:02AM +1030, Alan Modra wrote:
> > Since we've been talking about obsoleting cpu support, how about
> > getting rid of -many in ASM_CPU_SPEC for gcc-8?
>
> Sure, but
urse that is exactly
what *pStr is, but in this context it would be nicer if it meant the
entire array.
--
Alan Modra
Australia Development Lab, IBM
On Sun, Aug 13, 2017 at 10:25:14PM +0930, Alan Modra wrote:
> On Sun, Aug 13, 2017 at 03:35:15AM -0700, David Wohlferd wrote:
> > Using "m"(*pStr) as an (unused) input parameter has no effect.
>
> Use "m" (*(const void *)pStr) and ignore the warning, or use
&g
On Tue, Aug 15, 2017 at 03:09:15PM +0800, Liu Hao wrote:
> On 2017/8/14 20:41, Alan Modra wrote:
> >On Sun, Aug 13, 2017 at 10:25:14PM +0930, Alan Modra wrote:
> >>On Sun, Aug 13, 2017 at 03:35:15AM -0700, David Wohlferd wrote:
> >>>Using "m"(*pStr) as a
On Thu, Aug 17, 2017 at 04:27:12PM +0200, Michael Matz wrote:
> Hi,
>
> On Mon, 14 Aug 2017, Alan Modra wrote:
>
> > I've opened https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81845 to track
> > the lack of documentation.
>
> You mean like in this paragraph dis
d have stpcpy with completely unrelated prototype
> used for something else. In such case we don't want to introduce stpcpy
> into a TU that didn't have such a call. So, we use the existence of
> a matching prototype as a sign that stpcpy can be synthetized.
Why is the test for stpcpy being declared done for the strcpy cases
rather than the stpcpy cases?
--
Alan Modra
Australia Development Lab, IBM
On Thu, Sep 22, 2011 at 12:58:51AM +0930, Alan Modra wrote:
> I spent a little time today looking at why shrink wrap is failing to
> help on PowerPC, and it turns out that the optimization simply doesn't
> trigger that often due to prologue clobbered regs. PowerPC uses r0 as
&
On Mon, Oct 31, 2011 at 10:58:03AM -0500, Moffett, Kyle D wrote:
> I have not yet been able to figure out if it's a libgcc issue or an
> actual compiler issue.
It is a gcc bug. I've added a comment to the PR.
--
Alan Modra
Australia Development Lab, IBM
hether something won't be
> spilled on the stack and we need/want 32-byte aligned stack slots
> for that spilling.
Huh? thread_prologue_and_epilogue is after reload. So your backend
ought to be able to figure out whether an aligned stack is needed.
--
Alan Modra
Australia Development Lab, IBM
1, OPTAB_LIB_WIDEN);
--
Alan Modra
Australia Development Lab, IBM
lable since including non-pic
# code would insert text relocations into libopcodes.
--
Alan Modra
Australia Development Lab, IBM
On Sun, Feb 21, 2010 at 12:27:04PM -0600, Jon Turner wrote:
> The program in question has been compiled with -pg for all
> source code files.
Linked statically too? If not, the missing time is probably spent in
libc.so or other shared libraries.
--
Alan Modra
Australia Development Lab, IBM
I'm of
course aware that arrays can be initialized and their size set,
structs and unions initialized, but by and large, in C, an
initialization is simply an assignment.) So, why single out the
initial assignment? If skipping it deserves a warning then skipping
other assignments deserves a warning too, which would be ridiculous.
--
Alan Modra
Australia Development Lab, IBM
e
fp regs rather than gp regs.
--
Alan Modra
Australia Development Lab, IBM
On Tue, Jun 08, 2010 at 10:27:03PM +0930, Alan Modra wrote:
> PowerPC64 gcc support for a larger TOC via -mcmodel option.
[snip]
I'm having second thoughts about the optimization I added to PowerPC64
gcc with the patch hunk below. Its effect is to use a more efficient
TOC/GOT pointer
oo:
addis 11,2,x...@toc@ha
addis 9,2,y...@toc@ha
lwz 3,x...@toc@l(11) <-- TOC/GOT pointer relative
lwz 0,y...@toc@l(9)
add 3,3,0
extsw 3,3
blr
x...@toc is equivalent to @GOTOFF on other processors.
--
Alan Modra
Australia Development Lab, IBM
(watch out for
the .got header!).
--
Alan Modra
Australia Development Lab, IBM
And I
> can't even help, I'm not a ppc maintainer.
I also cannot approve gcc patches.
--
Alan Modra
Australia Development Lab, IBM
ting zlib.
I'm against importing zlib into binutils, and I think we should keep
support of compressed debug sections conditional, to avoid potential
bootstrap problems or circular dependencies.
--
Alan Modra
Australia Development Lab, IBM
ong way to go. On the other hand, BFD is full of
bad ideas.. I'm not strongly opposed to your patch myself.
HJ, you showed that link times for gcc did not regress too much with
your 2 stage lto link patch. It would be more interesting to see the
results for a large C++ project, mozilla for
rtbegin?.o(.ctors))
> +${CTORS}
> ${CONSTRUCTING+${CTOR_END}}
>}"
> DTOR=".dtors${CONSTRUCTING-0} :
> @@ -267,9 +291,7 @@ DTOR=".dtors${CONSTRUCTING-0} :
> ${CONSTRUCTING+${DTOR_START}}
> KEEP (*crtbegin.o(.dtors))
> KEEP (*crtbegin?.o(.dtors))
> -KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
> -KEEP (*(SORT(.dtors.*)))
> -KEEP (*(.dtors))
> +${DTORS}
> ${CONSTRUCTING+${DTOR_END}}
>}"
No need to make any changes to .ctors or .dtors. If .init_array
and .fini_array match input .ctors or .dtors sections, then any later
match will simply be ignored.
--
Alan Modra
Australia Development Lab, IBM
ing at the wrong asm. unlock vs. lock (and underscore
difference too). As rth said, you need R_PPC_PLTREL24. My guess is
that you have some buggy asm somewhere lacking @plt on the call.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
that the 3.4 branch
> is definitely closed. I've not found anything remotely similar
> from bugzilla.
>
> >
> > But if I copy the function stl_le_p to a seperate file, the function
> > will compile with GCC 3.4.
Check preprocessor output. My guess is that you have some unexpected
substitution.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
On Thu, Apr 20, 2006 at 04:52:14PM +0100, Dave Korn wrote:
> Yet it would seem to me at first glance that, since dividing unsigned by an
> exact power-of-2 can be optimised to a right shift, and since we can deduce
You might like to build yourself a new compiler. :)
2006-04-19 Alan
1 - 100 of 129 matches
Mail list logo