--
steven at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |steven at gcc dot gnu dot
|dot org
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-08 12:49 ---
The duplication of sp in r4 is tracked in a separate bug report, bug 42500.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42502
--- Comment #7 from steven at gcc dot gnu dot org 2010-02-08 16:11 ---
New test case is with func defined extern, as already mentioned in comment #5:
extern void func(char c, int t);
void foo(int u)
{
func ( 8, (u >> 24) & 0xffL );
func ( 8, (u >> 16) & 0xf
--- Comment #6 from steven at gcc dot gnu dot org 2010-02-08 16:27 ---
Must be a regression from some version, if POINTER_PLUS_EXPR is the reason for
this extra NEG. Matz knows TER best these days, so matz -> cc.
--
steven at gcc dot gnu dot org changed:
What|Remo
--- Comment #11 from steven at gcc dot gnu dot org 2010-02-08 16:45 ---
Trunk today (r156595) optimizes this at -O1, -Os, and -O2 in the tree
optimizers. The .fre pass removes the first func call, then .dom1 removes the
next two. The .dom2 pass removes the remaining one.
If I add
--- Comment #8 from steven at gcc dot gnu dot org 2010-02-08 18:45 ---
FWIW, bootstrap+regtest succeeds on ia64-unknown-linux-gnu with the patch set
applied.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42617
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: steven at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43001
--- Comment #5 from steven at gcc dot gnu dot org 2010-02-08 22:16 ---
Right then, sorry for the noise :-)
I hope someone will be kind enough to add those test cases to trunk, too...
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
CC||steven at gcc dot gnu dot
--- Comment #9 from steven at gcc dot gnu dot org 2010-02-10 09:46 ---
What is the purpose of regmove these days, anyway? Isn't it all useless code
thanks to IRA?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42973
--- Comment #51 from steven at gcc dot gnu dot org 2010-02-10 10:42 ---
Could the OP be so kind to see if this is still a problem? And, if this is
still a problem with an unpatched compiler: whether the problem goes away if
arm_arm_address_cost() returns 1 unconditionally (so that this
--- Comment #9 from steven at gcc dot gnu dot org 2010-02-10 10:55 ---
Reconfirmed with r156595 and r156650 (with and without -fschedule-insns, and
-fsched-pressure makes no difference either).
Vlad, you added some register pressure awareness to the scheduler. Do you think
there is a
--- Comment #4 from steven at gcc dot gnu dot org 2010-02-10 11:01 ---
This is a regression, so let's mark it as such.
Shin-wei, is it possible for you check what GCC 4.3 does. Bonus if you can
check a 4.4 snapshot from just before and just after IRA was merged.
--
steven a
--- Comment #10 from steven at gcc dot gnu dot org 2010-02-10 13:00 ---
My compiler is configured for arm-elf, I guess that's the difference...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39871
--- Comment #11 from steven at gcc dot gnu dot org 2010-02-10 13:04 ---
Closed for wrong ABI.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #12 from steven at gcc dot gnu dot org 2010-02-10 16:27 ---
Trying with r156650, I get this before regalloc (in the .184r.asmcons dump):
1 NOTE_INSN_DELETED
4 NOTE_INSN_BASIC_BLOCK
2 r135:SI=r0:SI
REG_DEAD: r0:SI
3 NOTE_INSN_FUNCTION_BEG
6 r136:SI
--- Comment #13 from steven at gcc dot gnu dot org 2010-02-10 17:23 ---
As comment #12 shows, CSE can't do much about this -- there is no common
subexpression before register allocation.
Vlad, this is another one that you probably should have a look at, please.
I will have a lo
--- Comment #14 from steven at gcc dot gnu dot org 2010-02-10 17:50 ---
Vlad, this is another one that you probably should have a look at, please.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #15 from steven at gcc dot gnu dot org 2010-02-10 19:24 ---
The difference between r118474 (left) and r118475 just before register
allocation (in the .life2 dumps) is this:
2 NOTE_INSN_DELETED 2 NOTE_INSN_DELETED
8 NOTE_INSN_BASIC_BLOCK
--- Comment #16 from steven at gcc dot gnu dot org 2010-02-10 22:50 ---
In fwprop.c of r118475, we get to propagate_rtx_1 (fwprop.c:334):
/* Copy propagations are always ok. Otherwise check the costs. */
if (!(REG_P (old) && RE
--- Comment #19 from steven at gcc dot gnu dot org 2010-02-10 23:47 ---
In r118474, cse.c:find_best_addr makes the replacement here:
if ((addr_folded_cost < addr_cost
|| (addr_folded_cost == addr_cost
/* ??? The rtx_cost comparison is l
--- Comment #20 from steven at gcc dot gnu dot org 2010-02-10 23:53 ---
I'll leave it to someone else to implement and test the details...
--
steven at gcc dot gnu dot org changed:
What|Removed |
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-11 20:45 ---
If you cannot reproduce this problem on a target that exist in the "official"
FSF GCC release, please close this PR as INVALID and contact the people you got
your compiler from (and while at it -- please a
--- Comment #20 from steven at gcc dot gnu dot org 2010-02-12 20:57 ---
What is the plan for this bug, fix it for GCC 4.5.0 or for later?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42776
--- Comment #18 from steven at gcc dot gnu dot org 2010-02-12 21:11 ---
As far as I'm concerned, this is WONTFIX for all affected compilers.
--
steven at gcc dot gnu dot org changed:
What|Removed |
--- Comment #4 from steven at gcc dot gnu dot org 2010-02-12 21:37 ---
I'm not working on this => unassign.
--
steven at gcc dot gnu dot org changed:
What|Removed
--- Comment #14 from steven at gcc dot gnu dot org 2010-02-12 21:46 ---
On x86_64 the two functions still give different code:
;; Function strength_test2 (strength_test2)
strength_test2 (int * data)
{
unsigned int ivtmp.12;
int * pretmp.9;
int * pretmp.7;
int k;
int D.2743
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-12 21:49 ---
Not worth pursuing, since RTL is only a tiny amount of memory these days (with
all GIMPLE function bodies and all DF info in memory also).
--
steven at gcc dot gnu dot org changed:
What|Removed
--- Comment #15 from steven at gcc dot gnu dot org 2010-02-12 21:58 ---
GCC still doesn't get it right for this PR. The .139t.optimized dump for trunk
r156706:
;; Function foo (foo)
foo ()
{
int a.1;
int a.0;
:
a.0_1 = a;
a.1_2 = a.0_1 + 1;
a = a.1_2;
if (a.1_2
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Severity|normal |enhancement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34503
--- Comment #10 from steven at gcc dot gnu dot org 2010-02-12 22:01 ---
Waiting for a m68k maintainer to do something here...
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-12 22:02 ---
Waiting for a m68k maintainer to do something here...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19204
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-12 22:02 ---
Waiting for a m68k maintainer to do something here...
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #4 from steven at gcc dot gnu dot org 2010-02-12 22:03 ---
Waiting for a m68k maintainer to do something here...
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-12 22:04 ---
No test case. No action.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-12 22:05 ---
No test case. No action.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19202
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-12 22:06 ---
.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status|NEW
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-12 22:27 ---
Basically yet another example of why it is a REALLY BAD IDEA to use constants
as PHI arguments. If the constant from "s =0" would not be propagated into the
PHI, the statement would not be dead and remov
--- Comment #20 from steven at gcc dot gnu dot org 2010-02-12 22:46 ---
Bug 27016 is another example of poor IVOPTS due to poor choices in
arm_arm_address_cost
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #7 from steven at gcc dot gnu dot org 2010-02-12 22:52 ---
If arm_arm_address_cost is "fixed" to return 1 unconditionally, the expected
code of comment #5 comes out at -Os, with the bonus of one less branch:
testme:
ldr r2, .L4
ldr
--- Comment #5 from steven at gcc dot gnu dot org 2010-02-12 23:08 ---
Can you explain how? It's not clear from the code of your comment #2 how a
simplification would cause the extra basic block.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42839
--- Comment #9 from steven at gcc dot gnu dot org 2010-02-13 11:28 ---
Re. comment #8: No other compiler, I have ever seen, allows constants as PHI
args.
Single-argument PHIs should be propagated out. Do you see this in one of the
loop passes, then it's OK because they are pro
--- Comment #10 from steven at gcc dot gnu dot org 2010-02-13 11:39 ---
In the test case of comment #2, the history of the funny PHIs is really odd. At
-O2 we end with this in the .optimized dump:
:
# i_1 = PHI <0(2)>
# s_11 = PHI <0(2)>
:
# i_12 = PHI
# s_13 = PH
--- Comment #14 from steven at gcc dot gnu dot org 2010-02-13 12:44 ---
Re. comment #12, if you mean the extra BB3, that one is not really "extra", it
comes from loop header copying, and it easy to clean up. I assume ifcvt cleans
this up?
Re. comment #12, yes that is expected
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last
--- Comment #1 from steven at gcc dot gnu dot org 2010-02-13 23:18 ---
Breakpoint 7, rest_of_handle_sched2 () at ../../trunk/gcc/sched-rgn.c:3534
3534 && ! maybe_skip_selective_scheduling ())
(gdb) p brief_dump_cfg(stderr)
Basic block 2 (reachable, rtl)
Predecessors
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-13 23:29 ---
This is a gem, the scheduler attempts to schedule the prefetch *after* the
return.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43056
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-14 00:07 ---
User prefetches should never be scheduled. Andreas Krebbel posted a patch
towards that (http://gcc.gnu.org/ml/gcc-patches/2009-09/msg00130.html) but he
hasn't followed up on it, so far.
Of course, in very
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-15 23:25 ---
The ipa-struct-reorg pass is broken and should be disabled for gcc 4.5 and
later, until someone gives it the TLC that it needs so badly.
--
steven at gcc dot gnu dot org changed:
What|Removed
--- Comment #30 from steven at gcc dot gnu dot org 2010-02-18 13:53 ---
It looks like there should be a patch to dbgcnt.def.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42220
--- Comment #8 from steven at gcc dot gnu dot org 2010-02-18 19:46 ---
Olga, is this fixed?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41843
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status|NEW |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41843
--- Comment #5 from steven at gcc dot gnu dot org 2010-02-18 19:48 ---
Olga, is this fixed?
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #7 from steven at gcc dot gnu dot org 2010-02-18 23:15 ---
Richard, comment #0 has preprocessed source.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #8 from steven at gcc dot gnu dot org 2010-02-18 23:44 ---
I can confirm the second bug, which is a checking failure in varasm.c, with GCC
4.4.2 for arm-wince-pe:
(gdb) run
Starting program: /home/stevenb/devel/build-4.4.2/gcc/cc1 -DCRASH k.c
ff_fill_linesize
Analyzing
--- Comment #9 from steven at gcc dot gnu dot org 2010-02-18 23:58 ---
#1 0x00b4717b in assemble_variable (decl=0x77f62000, top_level=0,
at_end=1, dont_output_data=0)
at ../../gcc-4.4.2/gcc/varasm.c:2144
2144 gcc_assert (GET_CODE (XEXP (decl_rtl, 0)) == SYMBOL_REF
--- Comment #13 from steven at gcc dot gnu dot org 2010-02-20 11:14 ---
We're using bugzilla to share what we find in our efforts to debug your
problem. So it is observations.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43047
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
CC||rearnsha at gcc dot gnu dot
--- Comment #16 from steven at gcc dot gnu dot org 2010-02-20 17:58 ---
Finally (!) posted the patch...
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #8 from steven at gcc dot gnu dot org 2010-02-21 14:32 ---
I have played with CSiBE with this patch:
-- 8< -
--- ../../gcc/gcc/config/arm/arm.c 2010-02-12 21:45:29.0 +0100
+++ ../../combined/gcc/con
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-24 09:40 ---
Missing code hoisting. Dup of another bug.
*** This bug has been marked as a duplicate of 23286 ***
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #30 from steven at gcc dot gnu dot org 2010-02-24 09:40 ---
*** Bug 43159 has been marked as a duplicate of this bug. ***
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #3 from steven at gcc dot gnu dot org 2010-02-24 16:34 ---
Still a problem, actually worse now than before (.009t.lower dump at r156926):
;; Function foo (foo)
foo ()
{
int D.1974;
D.1974 = 1;
goto ;
:
return D.1974;
}
The decomposition of "return 1"
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
CC||rakdver at gcc dot gnu dot
--- Comment #2 from steven at gcc dot gnu dot org 2010-02-25 19:51 ---
Paul, looks like one of yours.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #21 from steven at gcc dot gnu dot org 2010-03-02 21:56 ---
Prototype patch here: http://gcc.gnu.org/bugzilla/attachment.cgi?id=19755
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36758
--- Comment #4 from steven at gcc dot gnu dot org 2010-03-02 21:58 ---
Can you post the output .s of gcc, and the .s you expect?
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #4 from steven at gcc dot gnu dot org 2010-03-03 10:57 ---
I think pinskia means we could transform the test case of comment #0 to:
void DoHuffIteration(int);
int f(int *a)
{
int i;
int plaintextlen=*a;
pretmp = plaintextlen;
for(i = 0; i< 1
--- Comment #6 from steven at gcc dot gnu dot org 2010-03-03 14:26 ---
Well, it is not hoisting, either.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38497
--- Comment #4 from steven at gcc dot gnu dot org 2010-03-10 16:21 ---
Another arm_arm_address_cost problem, dup of something I'm not even going to
try to find.
Until ARM or an ARM maintainer cares (or Google folks stop filing and start
fixing bugs), we don't need more repo
--- Comment #2 from steven at gcc dot gnu dot org 2010-03-14 12:53 ---
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) Starting program:
/home/stevenb/devel/build-mips/gcc/cc1 -quiet -O1 t.c
Breakpoint 1, fancy_abort (file
--- Comment #11 from steven at gcc dot gnu dot org 2010-03-17 08:23 ---
So why not just something like the following:
Note that uses in REG_EQUAL notes are taken into account in
the computation of invariants. Hence it is safe to retain the
note even if the
--- Comment #13 from steven at gcc dot gnu dot org 2010-03-17 08:33 ---
Mine.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned
--- Comment #6 from steven at gcc dot gnu dot org 2010-03-17 11:59 ---
Perhaps add a comment why the peephole is needed? That information tend to get
lost rather quickly.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42258
--- Comment #6 from steven at gcc dot gnu dot org 2010-03-18 08:27 ---
Reopening...
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status
--- Comment #7 from steven at gcc dot gnu dot org 2010-03-18 08:29 ---
...to close as dup of bug 39871
*** This bug has been marked as a duplicate of 39871 ***
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #21 from steven at gcc dot gnu dot org 2010-03-18 08:29 ---
*** Bug 43286 has been marked as a duplicate of this bug. ***
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #22 from steven at gcc dot gnu dot org 2010-03-18 08:31 ---
In the test case from bug 43286, should_replace_address does not perform the
following replacement because the address cost is the same and the replacement
is only done if new_rtx is more expensive than old_rtx
--- Comment #19 from steven at gcc dot gnu dot org 2010-03-18 13:20 ---
For the record: bootstrapped+tested on amd64-linux and ia64-linux.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43360
--- Comment #4 from steven at gcc dot gnu dot org 2010-03-19 18:39 ---
Comment #3 makes no sense: There is no such thing as target specific GIMPLE
canonicalization. And also there is no hoisting for GIMPLE so the form of the
IR given in comment #3 wouldn't make a difference.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
OtherBugsDependingO||16996
nThis
--- Comment #8 from steven at gcc dot gnu dot org 2010-03-20 12:58 ---
Shouldeth be fixedeth by aforementionedeth patcheth (comment #7). Yay!
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #8 from steven at gcc dot gnu dot org 2010-03-20 12:59 ---
Carrot, re. your comment #7: Time for that thoroughly testing.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last
--- Comment #2 from steven at gcc dot gnu dot org 2010-03-20 13:02 ---
Waiting for OP to try suggestion of comment #1.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last
--- Comment #4 from steven at gcc dot gnu dot org 2010-03-21 09:54 ---
Why such a big hammer? You should be able to figure out which copy props are
allowed and which should be disallowed in loop-closed SSA form.
Is "if (current_loops)" the right test here? This will break i
--- Comment #1 from steven at gcc dot gnu dot org 2010-03-21 09:57 ---
How did you configure the compilers? (Think --enable-checking=release, etc.)
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #19 from steven at gcc dot gnu dot org 2010-03-21 12:03 ---
Cause here is better register allocation and lack of cross-jumping before
register allocation. This will not be fixed. For GCC 4.6 we should add a
cross-jumping patch (an improved version if this pass, anyway
--- Comment #6 from steven at gcc dot gnu dot org 2010-03-21 12:09 ---
I believe this should be fixed for GCC 4.5. Setting to P3 to ask release
managers for their opinion.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #50 from steven at gcc dot gnu dot org 2010-03-21 12:13 ---
Performance loss within acceptable limits (by the "you give some, you take
some" principle). GCC 4.5 optimizes the test case away completely. I see no
reason to do anything more here. Fixed for GCC 4.5 a
--- Comment #45 from steven at gcc dot gnu dot org 2010-03-21 12:14 ---
Mark, I'm assuming you have no plans to work on this? If so, please unassign
yourself from this bug.
Can anyone reconfirm this bug for GCC 4.4 and/or GCC 4.5?
--
steven at gcc dot gnu dot org ch
--- Comment #16 from steven at gcc dot gnu dot org 2010-03-21 12:16 ---
Known to work in 4.4.0 so not a "4.4/4.5 Regression" anymore.
--
steven at gcc dot gnu dot org changed:
What|Removed
--- Comment #5 from steven at gcc dot gnu dot org 2010-03-21 12:20 ---
Bug in WAITING for a long time, no feedback. Very small, hard-to-catch code
difference. It's been noted before that the core2 scheduler description
(contributed by Intel itself!) often results in worse code tha
--- Comment #10 from steven at gcc dot gnu dot org 2010-03-21 12:22 ---
With all attention going out to debug info in GCC 4.5, and with TER
more-or-less rewritten for GCC 4.5 -- perhaps re-evaluate this bug's priority?
--
steven at gcc dot gnu dot org changed:
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
Priority|P5 |P3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19192
--- Comment #9 from steven at gcc dot gnu dot org 2010-03-21 14:35 ---
Still needs to be applied to GCC 4.4.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #4 from steven at gcc dot gnu dot org 2010-03-21 19:04 ---
Development branches have extra checking enabled, and it's always been like
that. If you compile with -ftime-report, the compiler warns if the extra
checking is enabled, and that's quite enough.
--
ste
--- Comment #2 from steven at gcc dot gnu dot org 2010-03-25 09:53 ---
Any reason why combine-stack-adj.c doesn't perform this optimization for you?
--
steven at gcc dot gnu dot org changed:
What|Removed |
1401 - 1500 of 3051 matches
Mail list logo