* "-fno-unswitch-loops" option have no effect? @ 2009-08-17 7:19 ami_stuff [not found] ` <56d259a00908170344v54442954u3a5d0337de3b98fe@mail.gmail.com> 2009-08-17 13:33 ` Richard Guenther 0 siblings, 2 replies; 10+ messages in thread From: ami_stuff @ 2009-08-17 7:19 UTC (permalink / raw) To: gcc Hi, I found out that when I use "-fno-unswitch-loops" option, it have no effect - loops are unswitched anyway: -O3 -fno-unswitch-loops Because of that to avoid -funswitch-loops optimization I must use something like this: -O2 -finline-functions -fpredictive-commoning -fgcse-after-reload -ftree-vectorize Is that a bug? Tested with GCC 4.4.1 (m68k). Regards ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <56d259a00908170344v54442954u3a5d0337de3b98fe@mail.gmail.com>]
* Re: "-fno-unswitch-loops" option have no effect? [not found] ` <56d259a00908170344v54442954u3a5d0337de3b98fe@mail.gmail.com> @ 2009-08-17 13:29 ` ami_stuff 2009-08-17 19:42 ` Bernd Roesch 0 siblings, 1 reply; 10+ messages in thread From: ami_stuff @ 2009-08-17 13:29 UTC (permalink / raw) To: Martin Guy; +Cc: gcc Hi, > Hundreds and hundreds of people read this list, so every low-detail > "I think there may be a bug" message you send wastes hours of other > people's time. Ok, Ok, but if someone will reproduce the same problem on his system I can fill bugreport, otherwise I will only waste my time, hours of my time, to start detailed bugreport. Maybe this is only fault of my GCC's build? > If it *is* a bug, on the bug tracker, it will be picked up by people > interested in that specific area It may takes months before someone will look at the bugreport. If it's really a bug IMHO it's a bit critical bug. > though you don't seem to do much > in-depth research, nor do you supply any detail of what you did and > what you expected. There is no need for much detail, just compile any bigger sourcecode with -O3 -fno-.. and after that with -O2 .... When the object files are not identical, something is wrong and I can start a bug report. Regards ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 13:29 ` ami_stuff @ 2009-08-17 19:42 ` Bernd Roesch 2009-08-17 19:54 ` ami_stuff 2009-08-17 22:16 ` Alexander Strange 0 siblings, 2 replies; 10+ messages in thread From: Bernd Roesch @ 2009-08-17 19:42 UTC (permalink / raw) To: ami_stuff, Martin Guy; +Cc: gcc Hello ami_stuff On 17.08.09, you wrote: > Hi, > >> Hundreds and hundreds of people read this list, so every low-detail >> "I think there may be a bug" message you send wastes hours of other >> people's time. > > Ok, Ok, but if someone will reproduce the same problem on his system I can > fill bugreport, otherwise I will only waste my time, hours of my time, to > start detailed bugreport. Maybe this is only fault of my GCC's build? gcc > 4 AOS 68k builds are build from offical gcc sourcetree and there are no changes > >> If it *is* a bug, on the bug tracker, it will be picked up by people >> interested in that specific area > > It may takes months before someone will look at the bugreport. If it's > really a bug IMHO it's a bit critical bug. > >> though you don't seem to do much >> in-depth research, nor do you supply any detail of what you did and >> what you expected. > > There is no need for much detail, just compile any bigger sourcecode with > -O3 -fno-.. and after that with -O2 .... When the object files are not > identical, something is wrong and I can start a bug report. how much is size diffrent ? You use -finline-functions -fpredictive-commoning -fgcse-after-reload -ftree-vectorize right ? I see in Gcc source that there is more set on -O3. flag_ipa_cp_clone = opt3; if (flag_ipa_cp_clone) flag_ipa_cp = 1; .but i think you can easy test, compile the ffmpeg, if it give no internal compiler error with -fno........ then it work. here is from source opt.c what is set on opt3 opt3 = (optimize >= 3); flag_predictive_commoning = opt3; flag_inline_functions = opt3; flag_unswitch_loops = opt3; flag_gcse_after_reload = opt3; flag_tree_vectorize = opt3; flag_ipa_cp_clone = opt3; if (flag_ipa_cp_clone) flag_ipa_cp = 1; > > Regards > Regards ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 19:42 ` Bernd Roesch @ 2009-08-17 19:54 ` ami_stuff 2009-08-17 22:16 ` Alexander Strange 1 sibling, 0 replies; 10+ messages in thread From: ami_stuff @ 2009-08-17 19:54 UTC (permalink / raw) To: Bernd Roesch; +Cc: gcc Hi, > gcc > 4 AOS 68k builds are build from offical gcc sourcetree and there are > no changes Yes, I know, but some problems may happens anyway like it happened before (problems with defines). I think if there is a problem the best is to compare GCCs from different sources. > how much is size diffrent ? 306kb vs 1,18mb - "dsputil.c" > .but i > think you can easy test, compile the ffmpeg, if it give no internal > compiler error with -fno........ then it work. I get the same ICE with "-O3" and "-O3 -fno-unswitch-loops" - "mpegvideo.c" file. Regards ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 19:42 ` Bernd Roesch 2009-08-17 19:54 ` ami_stuff @ 2009-08-17 22:16 ` Alexander Strange 1 sibling, 0 replies; 10+ messages in thread From: Alexander Strange @ 2009-08-17 22:16 UTC (permalink / raw) To: gcc On Aug 17, 2009, at 10:50 AM, Bernd Roesch wrote: >> [..] >> There is no need for much detail, just compile any bigger >> sourcecode with >> -O3 -fno-.. and after that with -O2 .... When the object files are >> not >> identical, something is wrong and I can start a bug report. > > how much is size diffrent ? > > You use > -finline-functions -fpredictive-commoning -fgcse-after-reload > -ftree-vectorize > > right ? > > I see in Gcc source that there is more set on -O3. > flag_ipa_cp_clone = opt3; > if (flag_ipa_cp_clone) > flag_ipa_cp = 1; > > .but i > think you can easy test, compile the ffmpeg, if it give no internal > compiler error with -fno........ then it work. > > here is from source opt.c what is set on opt3 > > opt3 = (optimize >= 3); > flag_predictive_commoning = opt3; > flag_inline_functions = opt3; > flag_unswitch_loops = opt3; > flag_gcse_after_reload = opt3; > flag_tree_vectorize = opt3; > flag_ipa_cp_clone = opt3; > if (flag_ipa_cp_clone) > flag_ipa_cp = 1; That doesn't cover all of it; for instance, complete loop unrolling increases code size more on -O3. That means you run into http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40992 with ffmpeg's asm enabled, but turning it down (--param max- completely-peel-times=2) actually seems slightly faster even with plain C on i386. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 7:19 "-fno-unswitch-loops" option have no effect? ami_stuff [not found] ` <56d259a00908170344v54442954u3a5d0337de3b98fe@mail.gmail.com> @ 2009-08-17 13:33 ` Richard Guenther 2009-08-17 13:35 ` ami_stuff 1 sibling, 1 reply; 10+ messages in thread From: Richard Guenther @ 2009-08-17 13:33 UTC (permalink / raw) To: ami_stuff; +Cc: gcc On Mon, Aug 17, 2009 at 2:38 AM, ami_stuff<ami_stuff@o2.pl> wrote: > Hi, > > I found out that when I use "-fno-unswitch-loops" option, it have no effect - loops are unswitched anyway: > > -O3 -fno-unswitch-loops > > Because of that to avoid -funswitch-loops optimization I must use something like this: > > -O2 -finline-functions -fpredictive-commoning -fgcse-after-reload -ftree-vectorize > > Is that a bug? Works fine for me. gcc.dg/tree-ssa/loop-6.c is unswitched with -O3 but not with -O3 -fno-unswitch-loops. You have to be more specific. Maybe PRE or if-conversion perform the "unswichting" for you. Richard. > Tested with GCC 4.4.1 (m68k). > > Regards > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 13:33 ` Richard Guenther @ 2009-08-17 13:35 ` ami_stuff 2009-08-17 16:01 ` Paolo Bonzini 0 siblings, 1 reply; 10+ messages in thread From: ami_stuff @ 2009-08-17 13:35 UTC (permalink / raw) To: Richard Guenther; +Cc: gcc Hi, > Works fine for me. gcc.dg/tree-ssa/loop-6.c is unswitched with -O3 > but not with -O3 -fno-unswitch-loops. This one works for me too. Could you try to compile "deflate.c" from libz? Here are my results: -m68060 -O3 -fno-unswitch-loops - 12,9kb -m68060 -O3 - 12,9kb -m68060 -O2 -finline-functions -fgcse-after-reload -ftree-vectorize -fpredictive-commoning - 12,4kb but it's a lot more visible with "libavcodec/dsputil.c" from FFmpeg package: OPTFLAGS= -mnobitfield -m68060 -std=c99 -Wdeclaration-after-statement -Wdisabled-optimization -fno-math-errno -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-common -fomit-frame-pointer -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -O2 -finline-functions -fgcse-after-reload -ftree-vectorize -fpredictive-commoning: 306kb OPTFLAGS= -mnobitfield -m68060 -std=c99 -Wdeclaration-after-statement -Wdisabled-optimization -fno-math-errno -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-common -fomit-frame-pointer -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -O3 -fno-unswitch-loops: 1,18mb OPTFLAGS= -mnobitfield -m68060 -std=c99 -Wdeclaration-after-statement -Wdisabled-optimization -fno-math-errno -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-common -fomit-frame-pointer -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -O3 1,18mb Regards ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 13:35 ` ami_stuff @ 2009-08-17 16:01 ` Paolo Bonzini 2009-08-17 16:07 ` ami_stuff 0 siblings, 1 reply; 10+ messages in thread From: Paolo Bonzini @ 2009-08-17 16:01 UTC (permalink / raw) To: ami_stuff; +Cc: Richard Guenther, gcc On 08/17/2009 02:32 PM, ami_stuff wrote: > Hi, > >> Works fine for me. gcc.dg/tree-ssa/loop-6.c is unswitched with -O3 >> but not with -O3 -fno-unswitch-loops. > > This one works for me too. > > Could you try to compile "deflate.c" from libz? > > Here are my results: > > -m68060 -O3 -fno-unswitch-loops - 12,9kb > -m68060 -O3 - 12,9kb > -m68060 -O2 -finline-functions -fgcse-after-reload -ftree-vectorize -fpredictive-commoning - 12,4kb And why do you think that loop unswitching has anything to do with the size growth? BTW, -O3 is not guaranteed to give better performance than -O2. Paolo ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 16:01 ` Paolo Bonzini @ 2009-08-17 16:07 ` ami_stuff 2009-08-17 16:14 ` Paolo Bonzini 0 siblings, 1 reply; 10+ messages in thread From: ami_stuff @ 2009-08-17 16:07 UTC (permalink / raw) To: Paolo Bonzini; +Cc: gcc Hi, > > > > Here are my results: > > > > -m68060 -O3 -fno-unswitch-loops - 12,9kb > > -m68060 -O3 - 12,9kb > > -m68060 -O2 -finline-functions -fgcse-after-reload -ftree-vectorize -fpredictive-commoning - 12,4kb > > And why do you think that loop unswitching has anything to do with the > size growth? Shouldn't I get the same file sizes with: -m68060 -O3 -fno-unswitch-loops and -m68060 -O2 -finline-functions -fgcse-after-reload -ftree-vectorize -fpredictive-commoning ? I don't know, but I think the same optimalizations should be used in these cases, so file size should be the same. I'm wrong? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: "-fno-unswitch-loops" option have no effect? 2009-08-17 16:07 ` ami_stuff @ 2009-08-17 16:14 ` Paolo Bonzini 0 siblings, 0 replies; 10+ messages in thread From: Paolo Bonzini @ 2009-08-17 16:14 UTC (permalink / raw) To: ami_stuff; +Cc: gcc On 08/17/2009 03:33 PM, ami_stuff wrote: > -m68060 -O3 -fno-unswitch-loops > > and > > -m68060 -O2 -finline-functions -fgcse-after-reload -ftree-vectorize -fpredictive-commoning Some heuristics are tuned differently for -O2 and -O3. The only way to know is to look at the dumps. Paolo ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-08-17 20:58 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-08-17 7:19 "-fno-unswitch-loops" option have no effect? ami_stuff [not found] ` <56d259a00908170344v54442954u3a5d0337de3b98fe@mail.gmail.com> 2009-08-17 13:29 ` ami_stuff 2009-08-17 19:42 ` Bernd Roesch 2009-08-17 19:54 ` ami_stuff 2009-08-17 22:16 ` Alexander Strange 2009-08-17 13:33 ` Richard Guenther 2009-08-17 13:35 ` ami_stuff 2009-08-17 16:01 ` Paolo Bonzini 2009-08-17 16:07 ` ami_stuff 2009-08-17 16:14 ` Paolo Bonzini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).