[Bug other/25757] Small memory leak in 'prefix_from_string' of file 'collect2.c'
--- Comment #3 from christophe dot jaillet at wanadoo dot fr 2008-06-16 19:50 --- This has been fixed in revision 124532 on Sun Jul 15 11:45:30 2007 UTC. (http://gcc.gnu.org/viewcvs/trunk/gcc/collect2.c?r1=124532r2=126653diff_format=h) -- christophe dot jaillet at wanadoo dot fr changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25757
[Bug rtl-optimization/11832] Optimization of common code in switch statements
--- Comment #2 from christophe dot jaillet at wanadoo dot fr 2006-07-14 21:11 --- I tried to compile it on my cygwin box and had a strange (and certainly unrelated) behaviour : gcc -O3 test.c -S Version 3.4.4 (must be the latest version available on cygwin :() Description : the case 1 is tested in two times. First =2 then == 1. I think that it is useless and that if cmpl$2, %ebx jle L9 was turned into cmpl$1,%ebx je L9 the second test after L9: would be useless. See code below. .file test.c .def___main;.scl2; .type 32; .endef .text .p2align 4,,15 .globl _main .def_main; .scl2; .type 32; .endef _main: pushl %ebp movl$16, %eax movl%esp, %ebp pushl %ebx subl$4, %esp andl$-16, %esp call__alloca call___main cmpl$2, %ebx je L4 cmpl$2, %ebx jle L9 == every thing = 2 cmpl$3, %ebx je L10 L6: movb$13, (%ebx) xorl%eax, %eax movb$13, 1(%ebx) movb$13, 2(%ebx) movb$13, 3(%ebx) movl-4(%ebp), %ebx leave ret .p2align 4,,7 L9: cmpl$1, %ebx == Now comparaison against 1 is done ! jne L6 movb$13, (%ebx) xorl%eax, %eax movl-4(%ebp), %ebx leave ret .p2align 4,,7 L4: movb$13, (%ebx) xorl%eax, %eax movb$13, 1(%ebx) movl-4(%ebp), %ebx leave ret .p2align 4,,7 L10: movb$13, (%ebx) xorl%eax, %eax movb$13, 1(%ebx) movb$13, 2(%ebx) movl-4(%ebp), %ebx leave ret -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11832
[Bug target/27077] [x86, 4.1] builtin strlen poor performance
--- Comment #3 from christophe dot jaillet at wanadoo dot fr 2006-06-01 21:37 --- On my AMD Athlon and current HEAD and, I have other results, i.e. 2 or 3 times FASTER : (using your 19 bytes long 'aaa..' string) stringfrom lengthbuiltin library (-O2) (-fno-builtin -O2) 190.4841.172 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27077
[Bug other/25757] Small memory leak in 'prefix_from_string' of file 'collect2.c'
--- Comment #2 from christophe dot jaillet at wanadoo dot fr 2006-01-22 15:35 --- Created an attachment (id=10704) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10704action=view) patch to correct the memory leak Correct the memory leak describded. Bootstrapped against i686-pc-cygwin OK. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25757
[Bug other/25757] New: Small memory leak in 'prefix_from_string' of file 'collect2.c'
In function 'prefix_from_string' of file 'collect2.c', a variable 'nstore' is xmalloc'ed. This variable is passed to 'add_prefix' where it is xstrdup'ed. But the variable nstore itself seems to never be free'ed. So, I think that a 'free(nstore)' should be added at the end of the function. CJ -- Summary: Small memory leak in 'prefix_from_string' of file 'collect2.c' Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christophe dot jaillet at wanadoo dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25757
[Bug rtl-optimization/20219] New: Missed optimisation sin / tan -- cos
GCC knows how to optimise tan * cos -- sin (fold-const line 7734) cos * tan -- sin sin / cos -- tan (fold-const line 8080) cos / sin -- 1.0 / tan (fold-const line 8094) but misses sin / tan -- cos tan / sin -- 1.0 / cos -- Summary: Missed optimisation sin / tan -- cos Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christophe dot jaillet at wanadoo dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20219
[Bug c/19832] New: Missed optimisation
According to Andrew Pinski , the following patch is useless because gcc should be able to find the optimisation by itself. Description : function preferable in cse.c can be simplified if we notice that, at the end of the function : if (regcost_a != regcost_b) return regcost_a - regcost_b; return 0; So, if regcost_a == regcost_b, we return 0, but in this case (regcost_a - regcost_b) is also = 0. There is no need for the test, and (return regcost_a - regcost_b;) wins in all cases. This patch remove 3 572 566 useless tests (if regcost_a != regcost_b) when doing a full bootstrap. Bootstrap on a cygwin machine based on snapshot from 20050130. 2005-02-08 Christophe Jaillet [EMAIL PROTECTED] * cse.c (preferable): simplify last test to speed up *** gcc-4.0-20050130/gcc/cse.c Tue Feb 8 23:39:30 2005 --- my_patch/cse.c Tue Feb 8 23:55:02 2005 *** preferable (int cost_a, int regcost_a, i *** 836,845 /* Normal operation costs take precedence. */ if (cost_a != cost_b) return cost_a - cost_b; /* Only if these are identical consider effects on register pressure. */ ! if (regcost_a != regcost_b) ! return regcost_a - regcost_b; ! return 0; } /* Internal function, to compute cost when X is not a register; called --- 836,844 /* Normal operation costs take precedence. */ if (cost_a != cost_b) return cost_a - cost_b; + /* Only if these are identical consider effects on register pressure. */ ! return regcost_a - regcost_b; } /* Internal function, to compute cost when X is not a register; called -- Summary: Missed optimisation Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christophe dot jaillet at wanadoo dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19832
[Bug other/19615] New: Strange syntax in generated file insn-attrab.c
More a question than a bug. In i386.md, around line 243, we can find : (symbol_ref /* Update immediate_length and other attributes! */ abort(),1))) These lines generate the following code in insn-attrab.c return /* Update immediate_length and other attributes! */ abort(),1; I have really no idea if it is correct or not, but the syntax seems strange. So I point it out to your attention, just in case of... CJ -- Summary: Strange syntax in generated file insn-attrab.c Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: minor Priority: P2 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christophe dot jaillet at wanadoo dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19615
[Bug other/18186] New: Spelling error
In option.c, optionlist and common.opt the word parameter is written paramter (e between m and t is missing). It shows up on the first lines when doing a cc1 --version | less -- Summary: Spelling error Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: minor Priority: P2 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christophe dot jaillet at wanadoo dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18186