[Bug target/38570] [arm] -mthumb generates sub-optimal prolog/epilog

2009-05-04 Thread carrot at google dot com
--- Comment #8 from carrot at google dot com 2009-05-04 10:08 --- Sorry for my ignorance to gcc. What types of instructions reload will add? Spilling and loading registers? and more? By reading the the implementation of thumb_far_jump_used_p() I can get the conclusion that if reload

[Bug target/38570] [arm] -mthumb generates sub-optimal prolog/epilog

2009-05-05 Thread carrot at google dot com
--- Comment #10 from carrot at google dot com 2009-05-05 15:32 --- (In reply to comment #9) > (In reply to comment #8) > > Sorry for my ignorance to gcc. What types of instructions reload will add? > > Spilling and loading registers? and more? > > > That's

[Bug rtl-optimization/40314] New: inefficient address calculation of fields of large struct

2009-05-30 Thread carrot at google dot com
ct Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-li

[Bug rtl-optimization/40314] inefficient address calculation of fields of large struct

2009-05-30 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-05-31 02:42 --- Created an attachment (id=17940) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17940&action=view) test case to show the opportunity -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40314

[Bug rtl-optimization/40314] inefficient address calculation of fields of large struct

2009-05-30 Thread carrot at google dot com
--- Comment #2 from carrot at google dot com 2009-05-31 02:51 --- There are a lot of such opportunities in mcf from SPEC CPU 2006. One possible implementation is to add a pass before cse. In the new pass it should detect insn patterns like: (set r200 400) # 400 is

[Bug rtl-optimization/40314] inefficient address calculation of fields of large struct

2009-05-31 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-05-31 08:05 --- (In reply to comment #3) > I think we have enough passes already and should try to stuff this in cse.c > and > fwprop.c. See PR middle-end/33699 for related issues. > It looks that patch solved some si

[Bug rtl-optimization/40327] New: Use less instructions to add some constants to register

2009-06-03 Thread carrot at google dot com
register Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686

[Bug target/40375] New: redundant register move with -mthumb

2009-06-07 Thread carrot at google dot com
Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host

[Bug target/40375] redundant register move with -mthumb

2009-06-07 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-06-08 03:23 --- Created an attachment (id=17962) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17962&action=view) test case shows the redundant register move This problem occurs quite frequently if both caller and call

[Bug target/40375] redundant register move with -mthumb

2009-06-08 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-06-09 03:46 --- Thank you, Steven. (In reply to comment #3) > "might be" is such a useless statement. > > Carrot, you are aware of the -fdump-rtl-all and -dAP options, I assume? Then > you should have no tr

[Bug c++/40382] New: Useless instructions in destructor

2009-06-09 Thread carrot at google dot com
Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target

[Bug c++/40382] Useless instructions in destructor

2009-06-09 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-06-09 07:35 --- Created an attachment (id=17969) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17969&action=view) simple class with empty virtual destructor Some tree dump result 1. The tree dump of early sta

[Bug target/40375] redundant register move with -mthumb

2009-06-09 Thread carrot at google dot com
--- Comment #6 from carrot at google dot com 2009-06-09 13:52 --- (In reply to comment #5) > Hmm, I was under the impression that postreload-cse could move instructions > too, but that was just wishful thinking. > I will look into postreload-cse. -- http://gcc.gnu.org

[Bug target/40416] New: unnecessary register spill

2009-06-11 Thread carrot at google dot com
Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40416

[Bug target/40416] unnecessary register spill

2009-06-11 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-06-11 14:34 --- Created an attachment (id=17983) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17983&action=view) test case The spilling is occurred around the first loop: push{r4, r5, r6, r7, lr} sub

[Bug target/40416] unnecessary register spill

2009-06-14 Thread carrot at google dot com
--- Comment #3 from carrot at google dot com 2009-06-15 02:26 --- Created an attachment (id=17998) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17998&action=view) preprocessed test case A possible code sequence without spilling is: push{r4, r5, r6,

[Bug target/40416] unnecessary register spill

2009-06-14 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-06-15 02:32 --- In the source code, only two extra variables next_runs and next_alpha need to be preserved through the while loop. But in the gcc generated code, three variables are kept through the first loop. They are next_alpha

[Bug target/40457] New: use stm and ldm to access consecutive memory words

2009-06-16 Thread carrot at google dot com
arget AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40457

[Bug target/40457] use stm and ldm to access consecutive memory words

2009-06-16 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-06-16 09:11 --- Created an attachment (id=18005) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18005&action=view) test case For this function void foo(int* p) { p[0] = 1; p[1] = 2; } gcc generates: mov r1, #1 mov

[Bug target/40457] use stm and ldm to access consecutive memory words

2009-06-17 Thread carrot at google dot com
--- Comment #7 from carrot at google dot com 2009-06-17 09:30 --- My command line option is -O2 -Os -mthumb The compiler didn't run into load_multiple_sequence and store_multiple_sequence. The peephole rules specified it applies to TARGET_ARM only. Is there any special reason we d

[Bug target/40482] New: shift a small constant to get larger one

2009-06-18 Thread carrot at google dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla

[Bug target/40482] shift a small constant to get larger one

2009-06-18 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-06-18 07:34 --- Created an attachment (id=18018) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18018&action=view) test case command line option is -O2 -Os -mthumb -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40482

[Bug target/40499] New: [missed optimization] branch to return

2009-06-19 Thread carrot at google dot com
Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id

[Bug target/40499] [missed optimization] branch to return

2009-06-19 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-06-20 03:56 --- Created an attachment (id=18027) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18027&action=view) test case The command line options are: -march=armv5te -mthumb -Os At the end of the function we can see

[Bug target/40499] [missed optimization] branch to return not threaded on thumb

2009-06-22 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-06-22 08:00 --- Sorry I didn't make it clear. It is a performance bug, not a code size issue. If the epilogue is a simple return instruction, the branch to return can be replaced by the return instruction. So we can execute one

[Bug target/40525] New: missed optimization in conditional expression

2009-06-23 Thread carrot at google dot com
Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla

[Bug target/40525] missed optimization in conditional expression

2009-06-23 Thread carrot at google dot com
--- Comment #2 from carrot at google dot com 2009-06-23 09:09 --- Created an attachment (id=18053) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18053&action=view) test case Compile the attached code with options -mthumb -march=armv5te -Os, gcc generates push

[Bug target/40416] unnecessary register spill

2009-06-30 Thread carrot at google dot com
--- Comment #6 from carrot at google dot com 2009-06-30 07:42 --- http://gcc.gnu.org/ml/gcc-cvs/2009-06/msg01067.html -- carrot at google dot com changed: What|Removed |Added

[Bug target/40603] New: unnecessary conversion from unsigned byte load to signed byte load

2009-06-30 Thread carrot at google dot com
byte load Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC hos

[Bug target/40603] unnecessary conversion from unsigned byte load to signed byte load

2009-06-30 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-01 06:56 --- Created an attachment (id=18105) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18105&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40603

[Bug target/40603] unnecessary conversion from unsigned byte load to signed byte load

2009-07-01 Thread carrot at google dot com
--- Comment #3 from carrot at google dot com 2009-07-01 10:24 --- (In reply to comment #2) > Subject: Re: New: unnecessary conversion from unsigned > byte load to signed byte load > > > > Unfortunately in thumb mode, loading a signed byte costs more th

[Bug target/40615] New: unnecessary CSE

2009-07-02 Thread carrot at google dot com
: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40615

[Bug target/40615] unnecessary CSE

2009-07-02 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-02 07:39 --- Created an attachment (id=18120) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18120&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40615

[Bug target/40657] New: allocate local variables with fewer instructions

2009-07-06 Thread carrot at google dot com
RMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cg

[Bug target/40657] allocate local variables with fewer instructions

2009-07-06 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-06 08:16 --- Created an attachment (id=18140) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18140&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40657

[Bug target/40657] allocate local variables with fewer instructions

2009-07-06 Thread carrot at google dot com
--- Comment #5 from carrot at google dot com 2009-07-07 06:44 --- Could we do the optimization in function thumb1_expand_prologue? If we find this opportunity in function thumb1_expand_prologue, we can remove the sp manipulations from prologue and epilogue. We also should add extra

[Bug target/40670] New: Load floating point constant 0 directly

2009-07-07 Thread carrot at google dot com
: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi

[Bug target/40670] Load floating point constant 0 directly

2009-07-07 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-07 09:38 --- Created an attachment (id=18149) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18149&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40670

[Bug target/40680] New: extra register move

2009-07-08 Thread carrot at google dot com
ority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40680

[Bug target/40680] extra register move

2009-07-08 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-08 09:36 --- Created an attachment (id=18155) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18155&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40680

[Bug target/40697] New: inefficient code to extract least bits from an integer value

2009-07-09 Thread carrot at google dot com
Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40697

[Bug target/40697] inefficient code to extract least bits from an integer value

2009-07-09 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-09 09:24 --- Created an attachment (id=18166) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18166&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40697

[Bug target/40730] New: redundant memory load

2009-07-13 Thread carrot at google dot com
Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40730

[Bug target/40730] redundant memory load

2009-07-13 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-13 08:58 --- Created an attachment (id=18183) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18183&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40730

[Bug target/40741] New: code size explosion for integer comparison

2009-07-14 Thread carrot at google dot com
Summary: code size explosion for integer comparison Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at go

[Bug target/40741] code size explosion for integer comparison

2009-07-14 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-14 08:41 --- Created an attachment (id=18191) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18191&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40741

[Bug target/40730] redundant memory load

2009-07-14 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-07-14 09:14 --- In TREE level, the two stores are different statements. Only after register allocation, the two stores get same register and make the load redundant. try_crossjump_bb tries to find same instruction sequence in all

[Bug target/40730] redundant memory load

2009-07-15 Thread carrot at google dot com
--- Comment #7 from carrot at google dot com 2009-07-15 08:07 --- (In reply to comment #6) > Carrot, can you please try this test case with my patch > "crossjump_abstract.diff" from Bug 20070 applied? > I tried your patch. It did remove the redundant memory loa

[Bug target/40783] New: inefficient code to accumulate function return values

2009-07-16 Thread carrot at google dot com
te function return values Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet:

[Bug target/40783] inefficient code to accumulate function return values

2009-07-16 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-17 06:56 --- Created an attachment (id=18212) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18212&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40783

[Bug target/40815] New: redundant neg instruction caused by loop-invariant

2009-07-21 Thread carrot at google dot com
oop-invariant Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux

[Bug target/40815] redundant neg instruction caused by loop-invariant

2009-07-21 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-21 07:15 --- Created an attachment (id=18234) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18234&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40815

[Bug target/40815] redundant neg instruction caused by loop-invariant

2009-07-21 Thread carrot at google dot com
--- Comment #3 from carrot at google dot com 2009-07-21 07:35 --- Created an attachment (id=18235) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18235&action=view) dump of -fdump-rtl-expand-details -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40815

[Bug target/40835] New: redundant comparison instruction

2009-07-23 Thread carrot at google dot com
instruction Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux

[Bug target/40835] redundant comparison instruction

2009-07-23 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-23 08:38 --- Created an attachment (id=18241) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18241&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40835

[Bug target/40835] redundant comparison instruction

2009-07-23 Thread carrot at google dot com
--- Comment #2 from carrot at google dot com 2009-07-24 02:11 --- It seems HAVE_cc0 disabled for arm. What's the reason behind it? A simple method is to add a peephole rule to handle it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40835

[Bug target/40835] redundant comparison instruction

2009-07-24 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-07-24 07:37 --- Just as I've figured out HAVE_cc0 is disabled. And cse_condition_code_reg does nothing for thumb target. I also found that the conditional branch instructions is always in the same insn pattern as the previous co

[Bug target/40900] New: redundant sign extend of short function returned value

2009-07-29 Thread carrot at google dot com
Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http

[Bug target/40900] redundant sign extend of short function returned value

2009-07-29 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-07-29 08:57 --- Created an attachment (id=18266) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18266&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40900

[Bug target/40956] New: GCSE opportunity in if statement

2009-08-03 Thread carrot at google dot com
AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40956

[Bug target/40956] GCSE opportunity in if statement

2009-08-03 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-08-03 22:55 --- Created an attachment (id=18294) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18294&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40956

[Bug target/41004] New: missed merge of basic blocks

2009-08-07 Thread carrot at google dot com
at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41004

[Bug target/41004] missed merge of basic blocks

2009-08-07 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-08-08 00:10 --- Created an attachment (id=18326) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18326&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41004

[Bug c/39989] New: [optimization]

2009-04-30 Thread carrot at google dot com
Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39989

[Bug target/39989] No need to save LR in some cases

2009-04-30 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-05-01 06:12 --- Created an attachment (id=17787) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17787&action=view) sample code showing the optimization opportunity -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39989

[Bug target/39989] No need to save LR in some cases

2009-04-30 Thread carrot at google dot com
--- Comment #2 from carrot at google dot com 2009-05-01 06:21 --- Actually gcc has already implemented this optimization, but it doesn't work for this case. Reload pass tries to determine the stack frame, so it needs to check the push/pop lr optimization opportunity. One o

[Bug target/38570] [arm] -mthumb generates sub-optimal prolog/epilog

2009-05-03 Thread carrot at google dot com
--- Comment #6 from carrot at google dot com 2009-05-04 02:21 --- We can compute the maximum possible function length first. If the length is not large enough far jump is not necessary, and we can do this optimization safely. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38570

[Bug target/56993] New: power gcc built 416.gamess generates wrong result

2013-04-17 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56993 Bug #: 56993 Summary: power gcc built 416.gamess generates wrong result Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal

[Bug other/54398] Incorrect ARM assembly when building with -fno-omit-frame-pointer -O2

2012-09-06 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54398 Carrot changed: What|Removed |Added CC||carrot at google dot com --- Comment #4 from

[Bug other/54398] Incorrect ARM assembly when building with -fno-omit-frame-pointer -O2

2012-09-10 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54398 --- Comment #5 from Carrot 2012-09-11 00:10:45 UTC --- It's the bug in local dse sub step in dse.c. 66 (insn/f 70 69 71 2 (set (reg/f:SI 7 r7) 67 (plus:SI (reg/f:SI 13 sp) 68 (const_int 0 [0]))) t.ii:24 -1 69 (nil))

[Bug other/54398] Incorrect ARM assembly when building with -fno-omit-frame-pointer -O2

2012-09-12 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54398 --- Comment #8 from Carrot 2012-09-12 20:57:33 UTC --- (In reply to comment #7) > > This rings a bell. > > Maybe the patch mentioned below needs backporting given Carrot is > reporting this against the 4.6 branch. What's not clear if this is

[Bug c++/54574] New: G++ accepts parameters with wrong types in parent constructor

2012-09-13 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54574 Bug #: 54574 Summary: G++ accepts parameters with wrong types in parent constructor Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED

[Bug middle-end/41004] missed merge of basic blocks

2009-08-19 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-08-19 21:55 --- (In reply to comment #2) > Why does the basic block reordering pass also not handle this? > Basic block reordering is disabled with options -Os. The basic block reordering algorithm is for performance only, it u

[Bug c++/3187] gcc lays down two copies of constructors

2009-08-26 Thread carrot at google dot com
--- Comment #34 from carrot at google dot com 2009-08-27 01:40 --- There is one optimization that we can do without affecting the ABI and linker compatibility. The delete destructor(D0) always contains the content of complete desturctor(D1) followed by a function call to delete. So

[Bug middle-end/41396] New: missed space optimization related to basic block reorder

2009-09-18 Thread carrot at google dot com
Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id

[Bug middle-end/41396] missed space optimization related to basic block reorder

2009-09-18 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-09-18 07:57 --- Created an attachment (id=18602) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18602&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41396

[Bug tree-optimization/41442] New: missed optimization for boolean expression

2009-09-22 Thread carrot at google dot com
Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41442

[Bug tree-optimization/41442] missed optimization for boolean expression

2009-09-22 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-09-23 06:49 --- Created an attachment (id=18634) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18634&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41442

[Bug target/41481] New: missed optimization in cse

2009-09-27 Thread carrot at google dot com
AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41481

[Bug target/41481] missed optimization in cse

2009-09-27 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-09-27 09:13 --- Created an attachment (id=18662) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18662&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41481

[Bug target/41514] New: redundant compare instruction of consecutive conditional branches

2009-09-30 Thread carrot at google dot com
Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41514

[Bug target/41514] redundant compare instruction of consecutive conditional branches

2009-09-30 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-09-30 08:25 --- Created an attachment (id=18671) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18671&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41514

[Bug target/41514] redundant compare instruction of consecutive conditional branches

2009-10-01 Thread carrot at google dot com
--- Comment #3 from carrot at google dot com 2009-10-01 07:37 --- (In reply to comment #2) > Where does it come from? (Remember: option -dAP, then look at .s file) > The first several instructions and corresponding rtl patterns are: cmp r0, #63 beq

[Bug target/41653] New: not optimal result for multiplication with constant when -Os is specified

2009-10-10 Thread carrot at google dot com
Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41653

[Bug target/41705] New: missed if conversion optimization

2009-10-14 Thread carrot at google dot com
Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target t

[Bug target/41705] missed if conversion optimization

2009-10-14 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-10-14 09:29 --- Created an attachment (id=18798) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18798&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41705

[Bug target/41653] not optimal result for multiplication with constant when -Os is specified

2009-10-15 Thread carrot at google dot com
--- Comment #2 from carrot at google dot com 2009-10-15 08:18 --- arm_size_rtx_costs calls thumb1_rtx_costs for TARGET_THUMB1. thumb1_rtx_costs is also called by several other functions. Looked at its implementation briefly, it is actually tuned for speed only. Following are some

[Bug target/41705] missed if conversion optimization

2009-10-15 Thread carrot at google dot com
--- Comment #3 from carrot at google dot com 2009-10-15 08:25 --- > > > > > Target ARM has conditional execution capability, but thumb actually can't do > > conditional execution. Do we have any method to let the compiler know this? > > Note that this

[Bug tree-optimization/41778] New: missed dead store elimination

2009-10-21 Thread carrot at google dot com
d at gcc dot gnu dot org ReportedBy: carrot at google dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41778

[Bug tree-optimization/41778] missed dead store elimination

2009-10-21 Thread carrot at google dot com
--- Comment #1 from carrot at google dot com 2009-10-21 08:50 --- Created an attachment (id=18850) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18850&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41778

[Bug middle-end/41762] internal compiler error when compiling xorg-server

2009-10-23 Thread carrot at google dot com
--- Comment #9 from carrot at google dot com 2009-10-23 09:15 --- (In reply to comment #5) > This is fixed on trunk by revision 149082: > > http://gcc.gnu.org/ml/gcc-cvs/2009-06/msg01067.html > The patch 149082 contains two parts: 1. fixed a wrong optimization in tree-ss

[Bug target/41705] missed if conversion optimization

2009-10-27 Thread carrot at google dot com
--- Comment #4 from carrot at google dot com 2009-10-27 09:15 --- A patch http://gcc.gnu.org/viewcvs?view=revision&revision=153584 has been checked in. -- carrot at google dot com changed: What|Removed |A

[Bug target/47133] New: code size opportunity for boolean expression evaluation

2010-12-31 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47133 Summary: code size opportunity for boolean expression evaluation Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component:

[Bug rtl-optimization/47373] New: avoid goto table to reduce code size when optimized for size

2011-01-20 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47373 Summary: avoid goto table to reduce code size when optimized for size Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 C

[Bug rtl-optimization/47454] New: registers are not allocated according to its preferred order

2011-01-25 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47454 Summary: registers are not allocated according to its preferred order Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Compon

[Bug rtl-optimization/47454] registers are not allocated according to its preferred order

2011-01-31 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47454 --- Comment #3 from Carrot 2011-01-31 08:48:40 UTC --- (In reply to comment #2) > -frename-registers should help for this issue on the ARM. All of r8 can be renamed to r2, in this case only two of them have been renamed.

[Bug target/47764] New: The constant load instruction should be hoisted out of loop

2011-02-15 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47764 Summary: The constant load instruction should be hoisted out of loop Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Co

[Bug target/47777] New: use __aeabi_idivmod to compute quotient and remainder at the same time

2011-02-16 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4 Summary: use __aeabi_idivmod to compute quotient and remainder at the same time Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3

[Bug target/47764] The constant load instruction should be hoisted out of loop

2011-02-20 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47764 --- Comment #3 from Carrot 2011-02-21 03:15:45 UTC --- > Any ideas of how this improvement could be implemented, Carrot? The root cause of this problem is that arm/thumb store instruction can't directly store a immediate number to memory, but gc

[Bug target/47831] New: avoid if-convertion if the conditional instructions and following conditional branch has the same condition

2011-02-21 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47831 Summary: avoid if-convertion if the conditional instructions and following conditional branch has the same condition Product: gcc Version: 4.6.0 Status: UNCONFIRME

  1   2   3   >