http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
Summary: [AVR] Inefficient stack manipulation around calls
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: target
Assign
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
Richard Henderson changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49864
--- Comment #3 from Richard Henderson 2011-07-28
00:06:16 UTC ---
Hum, this patch is too hacky and likely to fail for
other targets for different reasons. We need a more
comprehensive solution.
Consider it withdrawn.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
Richard Henderson changed:
What|Removed |Added
Attachment #24848|0 |1
is obsolete|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
--- Comment #6 from Richard Henderson 2011-07-28
16:14:46 UTC ---
(In reply to comment #5)
> Regenerating avr-libc (with your patch atop r176818) fails with PR49864 and
> the
> exact line number from there. Do you need more food, or is the test
||2011.07.28 16:20:58
CC||rth at gcc dot gnu.org
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49879
--- Comment #4 from Richard Henderson 2011-07-31
15:38:17 UTC ---
The problem is cross-jumping at different stack heights.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
--- Comment #8 from Richard Henderson 2011-08-01
19:35:46 UTC ---
Author: rth
Date: Mon Aug 1 19:35:43 2011
New Revision: 177071
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177071
Log:
PR target/49881
* config/avr/avr.h (PUSH_
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49864
--- Comment #4 from Richard Henderson 2011-08-01
21:43:56 UTC ---
Current patch:
http://gcc.gnu.org/ml/gcc-patches/2011-08/msg00075.html
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49879
Richard Henderson changed:
What|Removed |Added
Depends on||49864
--- Comment #5 from Richard Hen
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49878
--- Comment #2 from Richard Henderson 2011-08-01
23:07:11 UTC ---
Command-line options? Neither -O[23] -g seem to reproduce it,
at least based on top of PR49879 fix...
||2011.08.01 23:22:47
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #3 from Richard Henderson 2011-08-01
23:22:47 UTC ---
Nevermind, I got
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49903
Richard Henderson changed:
What|Removed |Added
CC||rth at gcc dot gnu.org
--- Comment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
--- Comment #9 from Richard Henderson 2011-08-02
17:38:22 UTC ---
Author: rth
Date: Tue Aug 2 17:38:16 2011
New Revision: 177196
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177196
Log:
PR target/49881
* config/avr/avr.md (push
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49878
--- Comment #4 from Richard Henderson 2011-08-02
18:48:04 UTC ---
Author: rth
Date: Tue Aug 2 18:48:00 2011
New Revision: 177200
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177200
Log:
PR target/49878
h8300: Don't allow eliminable reg
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49878
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
||rth at gcc dot gnu.org
Version|4.4.3 |4.7.0
Resolution||FIXED
--- Comment #3 from Richard Henderson 2011-08-02
20:44:41 UTC ---
Fixed for 4.7. This won't be backported to the 4.4 branch.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17994
Richard Henderson changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|
||rth at gcc dot gnu.org
Depends on||49864
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
--- Comment #3 from Richard Henderson 2011-08-02
21:04:52 UTC ---
(1) was
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34888
--- Comment #4 from Richard Henderson 2011-08-02
21:10:51 UTC ---
Created attachment 24897
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24897
Optimize pop-all
The proposed patch for PR49864 introduces REG_ARGS_SIZE.
This records a (normal
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49864
--- Comment #5 from Richard Henderson 2011-08-02
22:18:38 UTC ---
Author: rth
Date: Tue Aug 2 22:18:35 2011
New Revision: 177218
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177218
Log:
PR target/49864
* reg-notes.def (REG_ARGS_SIZ
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49864
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
Richard Henderson changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
Richard Henderson changed:
What|Removed |Added
Target Milestone|--- |4.7.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49879
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49874
Richard Henderson changed:
What|Removed |Added
Known to work||4.7.0
Target Milestone|---
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49874
Richard Henderson changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49878
Richard Henderson changed:
What|Removed |Added
Target Milestone|--- |4.7.0
|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
--- Comment #17 from Richard Henderson 2011-08-02
23:40:22 UTC ---
Mine.
||2011.08.03 17:18:39
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Target Milestone|--- |4.7.0
Ever Confirmed|0 |1
--- Comment #1 from Richard
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49968
--- Comment #2 from Richard Henderson 2011-08-03
18:00:21 UTC ---
Created attachment 24908
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24908
proposed patch
I believe this will solve the problem.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49968
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49964
Richard Henderson changed:
What|Removed |Added
Status|NEW |ASSIGNED
--- Comment #3 from Richard
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49964
--- Comment #4 from Richard Henderson 2011-08-03
19:11:48 UTC ---
It's a bug in the i386 backend:
(call_insn 28 27 136 2 (parallel [
(parallel [
(call (mem:QI (mem/f:SI (plus:SI (reg/f:SI 73 [
__ec$_M_cat_2->_vptr
||
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
--- Comment #6 from Richard Henderson 2011-08-03
21:43:53 UTC ---
Created attachment 24911
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24911
full pa
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34888
--- Comment #5 from Richard Henderson 2011-08-03
22:57:25 UTC ---
Author: rth
Date: Wed Aug 3 22:57:22 2011
New Revision: 177300
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177300
Log:
PR target/34888
* config/avr/avr.md: New
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34888
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|WAITING
--- Comment #6 from Richard H
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49968
--- Comment #5 from Richard Henderson 2011-08-04
15:39:43 UTC ---
Author: rth
Date: Thu Aug 4 15:39:40 2011
New Revision: 177404
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177404
Log:
PR middle-end/49968
* calls.c (expand_cal
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49964
--- Comment #9 from Richard Henderson 2011-08-04
15:47:50 UTC ---
Author: rth
Date: Thu Aug 4 15:47:42 2011
New Revision: 177408
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177408
Log:
PR target/49964
* config/i386/i386.c (ix8
|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Target Milestone|--- |4.7.0
--- Comment #2 from Richard Henderson 2011-08-04
19:05:11 UTC ---
Mine.
Kaz, can you enumerate some specific tests that are now failing?
It'll
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49964
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49968
Richard Henderson changed:
What|Removed |Added
Status|WAITING |RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49977
--- Comment #3 from Richard Henderson 2011-08-04
19:50:03 UTC ---
David, most of those c++ tests require system headers to compile,
but g++.old-deja/g++.robertl/eb31.C does not.
Except that I don't see any changes to unwind info in any delay
slo
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49977
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|WAITING
--- Comment #7 from Richard H
||2011.08.05 14:51:09
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #1 from Richard Henderson 2011-08-05
14:51:09 UTC ---
I'd li
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49982
--- Comment #2 from Richard Henderson 2011-08-05
15:15:47 UTC ---
Ah, thank you reload for silly intermediate states. But at least
it gets cleaned up afterward. So, yes, your fix is correct.
But I'd prefer a slight variation:
diff --git a/gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49982
--- Comment #3 from Richard Henderson 2011-08-05
16:12:22 UTC ---
Author: rth
Date: Fri Aug 5 16:12:16 2011
New Revision: 177464
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177464
Log:
PR rtl-opt/49982
* expr.c (fixup_args_siz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49982
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49977
--- Comment #8 from Richard Henderson 2011-08-05
16:17:20 UTC ---
Author: rth
Date: Fri Aug 5 16:17:13 2011
New Revision: 177465
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177465
Log:
PR rtl-opt/49977
* dwarf2cfi.c (scan_insn
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49977
--- Comment #9 from Richard Henderson 2011-08-05
16:17:54 UTC ---
Author: rth
Date: Fri Aug 5 16:17:46 2011
New Revision: 177466
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177466
Log:
PR rtl-opt/49977
* dwarf2cfi.c (scan_insn
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49977
--- Comment #10 from Richard Henderson 2011-08-05
16:18:57 UTC ---
Fixed? Dave, if this works for you on pa, please close.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49688
--- Comment #18 from Richard Henderson 2011-08-05
17:33:05 UTC ---
Argh. The problem is that if we emit both
.ent / .frame / .mask / .end
notes and .cfi directives, the .cfi directives get ignored.
Thus the .cfi_personality directive did n
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49688
--- Comment #19 from Richard Henderson 2011-08-05
17:44:43 UTC ---
Err, it's slightly more complicated than that.
We're emitting *both* a frame from .ent/.end *and* a frame from .cfi.
The later has the personality info, and the former does not.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49688
--- Comment #20 from Richard Henderson 2011-08-05
19:04:20 UTC ---
http://sourceware.org/ml/binutils/2011-08/msg00052.html
||2011.08.05 19:05:10
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #1 from Richard Henderson 2011-08-05
19:05:10 UTC ---
Created
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49990
Richard Henderson changed:
What|Removed |Added
Target Milestone|--- |4.7.0
||2011.08.08 21:49:24
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #4 from Richard Henderson 2011-08-08
21:49:24 UTC ---
Mine.
||2011.08.08 21:53:04
AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #3 from Richard Henderson 2011-08-08
21:53:04 UTC ---
Please do as the
|unassigned at gcc dot |rth at gcc dot gnu.org
|gnu.org |
--- Comment #4 from Richard Henderson 2011-08-08
21:55:18 UTC ---
Mine.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50018
--- Comment #5 from Richard Henderson 2011-08-11
00:20:36 UTC ---
Created attachment 24974
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24974
proposed patch
It fixes the given test case. I'll sanity check on i686.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50018
--- Comment #7 from Richard Henderson 2011-08-11
15:09:35 UTC ---
Author: rth
Date: Thu Aug 11 15:09:30 2011
New Revision: 177669
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177669
Log:
PR bootstrap/50018
* expr.c (fixup_args_s
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50018
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49994
--- Comment #5 from Richard Henderson 2011-08-11
23:54:57 UTC ---
Tricky stuff, this.
The ICE is, for the most part, valid. The transformation that
is being done in -fsched2-use-superblocks is invalid, from the
point of view of the unwind infor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49994
--- Comment #6 from Richard Henderson 2011-08-12
21:00:17 UTC ---
Author: rth
Date: Fri Aug 12 21:00:00 2011
New Revision: 177721
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177721
Log:
PR rtl-opt/49994
* sched-init.h (struct d
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49994
Richard Henderson changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50006
Richard Henderson changed:
What|Removed |Added
Status|WAITING |ASSIGNED
--- Comment #6 from Richard
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50006
--- Comment #7 from Richard Henderson 2011-08-12
21:49:19 UTC ---
Created attachment 24993
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24993
proposed patch
This seems to fix the bug. Doing an Ada sanity check on x86_64...
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: rth at gcc dot gnu.org
Target Milestone: ---
The following functions are equivalent,
unsigned f(unsigned x, unsigned b)
{
return x & ((1U << b) - 1);
}
unsigned g(unsigned x, unsigned b)
{
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71636
--- Comment #1 from Richard Henderson ---
Oh, and I meant to mention -- if the target doesn't have an andnot
insn, both formulations are identical in complexity and minimal path.
Which might suggest *always* performing the transformation at a
hi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71916
--- Comment #8 from Richard Henderson ---
(gdb) call debug_cfi_row(cur_row)
.cfi_def_cfa 7, 16
.cfi_offset 3, -16
.cfi_offset 16, -8
(gdb) call debug_cfi_row(ti->beg_row)
.cfi_def_cfa 7, 8
.cfi_offset 16, -
-end
Assignee: unassigned at gcc dot gnu.org
Reporter: rth at gcc dot gnu.org
Target Milestone: ---
The following is a c-ish version of
const int y = init();
which no longer works with gcc 11.
The intended advantage to the program from which this is
extracted is that
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99696
--- Comment #1 from Richard Henderson ---
Actually, I can reproduce this with gcc 9.3 as well.
My upstream bug report simply uses gcc 11, so I assumed.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97323
--- Comment #9 from Richard Henderson ---
As a data point, this problem can be seen with any
strict-alignment target -- e.g. sparc.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97323
--- Comment #10 from Richard Henderson ---
Created attachment 49473
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49473&action=edit
rfc patch
The following fixes the ICE.
It seems like a hack, done at the wrong level.
Should we have in f
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: rth at gcc dot gnu.org
CC: marxin at gcc dot gnu.org
Target Milestone: ---
The noinline attribute affects decisions made by ipa-split.cc
and ipa-icf.cc that are
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: rth at gcc dot gnu.org
Target Milestone: ---
For a testcase such as
enum E { l = -1, z = 0, g = 1 };
int foo(void);
enum E foo(void) { return z; }
If the implementation type of 'enum
Assignee: unassigned at gcc dot gnu.org
Reporter: rth at gcc dot gnu.org
Target Milestone: ---
Consider
typedef __uint128_t aligned_type __attribute__((aligned(16)));
_Static_assert(__alignof(aligned_type) == 16);
__uint128_t foo(aligned_type *p) { return __atomic_load_n(p, 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107389
--- Comment #3 from Richard Henderson ---
If __builtin_assume_aligned were to work at -O0,
that would also work for me. Better, probably,
than fiddling with __attribute__((aligned)).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107389
Richard Henderson changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Summary|Alignment no
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112296
--- Comment #7 from Richard Henderson ---
(In reply to Richard Biener from comment #5)
> int bad1(void) { return __builtin_constant_p(global++); }
...
> Joseph, Richard, do you have anything to add or remember discussions about
> this semantic d
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112296
--- Comment #9 from Richard Henderson ---
> Thanks. So yes,
>
> macro(x++);
>
> incrementing x twice would have been odd - but that's the usual bug
> in this kind of macro definition. Fixing it by throwing away
> side-effects (and always goi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104688
--- Comment #36 from Richard Henderson ---
(In reply to Mayshao-oc from comment #34)
> (In reply to Jakub Jelinek from comment #17)
> > Fixed for AMD on the library side too.
> > We need a statement from Zhaoxin and VIA for their CPUs.
>
> Sorr
701 - 782 of 782 matches
Mail list logo