Hi Sun,
 
I did some compile time measurement on two spec test cases (gcc and omentpp), 
here is the time output for the make:
 
$ time 471.omnetpp.compile.sh  # opencc -O0
real    6m59.678s
user    1m12.313s
sys     0m10.709s

$ time 471.omnetpp.compile.sh # opencc -O0 -Wb,-PHASE:p
real    9m14.919s
user    3m19.088s
sys     0m12.049s

$ time 471.omnetpp.compile.sh # opencc -O1
real    8m41.378s
user    1m36.750s
sys     0m12.277s

$ time 471.omnetpp.compile.sh  #opencc -O2
real    9m34.647s
user    2m20.353s
sys     0m12.793s

$ time 471.omnetpp.compile.sh # gcc -O0
real    1m11.522s
user    0m33.450s
sys     0m4.172s

$ time 471.omnetpp.compile.sh  # gcc -O1
real    1m20.740s
user    0m49.039s
sys     0m5.292s

$ time 471.omnetpp.compile.sh  # gcc -O2
real    1m38.373s
user    1m1.136s
sys     0m4.484s

------

$ time 403.gcc.compile.sh # opencc -O0
real    12m24.815s
user    2m10.364s
sys     0m12.145s

$ time 403.gcc.compile.sh  # opencc -O0 -Wb,-PHASE:p
real    14m6.916s
user    3m50.138s
sys     0m13.233s

$ time 403.gcc.compile.sh # opencc -O1
real    15m37.435s
user    3m9.724s
sys     0m15.549s

$ time 403.gcc.compile.sh # opencc -O2
real    19m38.656s
user    6m52.118s
sys     0m16.241s

$ time 403.gcc.compile.sh  # gcc -O0
real    1m41.215s
user    0m40.803s
sys     0m3.728s

$ time 403.gcc.compile.sh # gcc -O1
real    2m54.200s
user    2m1.896s
sys     0m4.820s

$ time 403.gcc.compile.sh # gcc -O2
real    3m52.362s
user    2m58.151s
sys     0m5.028s

Two observations here:
1. the preopt at O0 is slower than -O1, the PreOptimizer turned on too much 
components which are not needed for dead code elimination, and it seems there 
is 
no easy way to turn on CFG and DCE only.
2. opencc is much slower than gcc, especially the real time, which means we 
spend most of time on IO. One unnecessary process is opencc uses gcc as 
standalone preprocessor.
 
Maybe we should use the newly added WHIRL CFG to build a WHIRL node DCE, that 
will be much light weighted than PreOPT. What is your opinion?
 
Thanks,
-Xiaohua
 

________________________________
From: Sun Chan <sun.c...@gmail.com>
To: "Gilmore, Doug" <doug.gilm...@amd.com>
Cc: Xiaohua Zhang <xiaohua_zh...@yahoo.com>; 
"open64-devel@lists.sourceforge.net" <open64-devel@lists.sourceforge.net>
Sent: Fri, February 11, 2011 5:54:27 PM
Subject: Re: [Open64-devel] should we close bug588 as user error?

Thx!
We should also compare the compile time for building the kernel with
and without this option. It should help open64 compile time since O2
is needed at this point. OTOH, I am curious the time compared to gcc
Sun

On Sat, Feb 12, 2011 at 9:51 AM, Gilmore, Doug <doug.gilm...@amd.com> wrote:
> Sun's experiment worked for me:
>
> $ opencc -O0 -Wb,-PHASE:p,-tf3,-tra bug588-1.c -c -keep
> $ grep -i preopt bug588-1.t
> ========== Driver dump after PREOPT ==========
> $ opencc -O0 -Wb,-tf3,-tra bug588-1.c -c -keep
> bug588-1.s: Assembler messages:
> bug588-1.s:63: Error: Incorrect register `%rax' used with `l' suffix
> $ grep -i preopt bug588-1.t
> $
>
> Doug
>> -----Original Message-----
>> From: Sun Chan [mailto:sun.c...@gmail.com]
>> Sent: Friday, February 11, 2011 5:30 PM
>> To: Xiaohua Zhang
>> Cc: open64-devel@lists.sourceforge.net
>> Subject: Re: [Open64-devel] should we close bug588 as user error?
>>
>> this is strange. Can you do a trace and see why? -tt25:0xffffffff (or
>> just turn on dce trace)
>> Sun
>>
>> 2011/2/12 Xiaohua Zhang <xiaohua_zh...@yahoo.com>:
>> > Hi Sun,
>> >
>> > The -phase:p option seems doesn't make things any better, it still
>> reports
>> > the same error message.
>> >
>> > -Xiaohua
>> >
>> > ________________________________
>> > From: Sun Chan <sun.c...@gmail.com>
>> > To: C. Bergström <cbergst...@pathscale.com>
>> > Cc: open64-devel@lists.sourceforge.net
>> > Sent: Fri, February 11, 2011 3:08:01 PM
>> > Subject: Re: [Open64-devel] should we close bug588 as user error?
>> >
>> > this issue has come up multiple times, even for other compilers in
>> > another large company. Its about being able to build Linux at all opt
>> > levels.
>> >
>> > Xiaohua,
>> > can you do an experiment, please use the following options "-O0
>> > -phase:p" and see if the compile will go through.
>> > Thx!
>> >
>> > Sun
>> >
>> > 2011/2/12 "C. Bergström" <cbergst...@pathscale.com>:
>> >> Suneel Jain wrote:
>> >>> I thought that this reliance on the compiler doing dead code
>> >>> elimination at all optimization levels is all over the Linux
>> >>> kernel code.
>> >>>
>> >>> My recommendation would be to do this kind of dead code
>> >>> elimination at -O0 in Open64. That will provide greater
>> compatibility
>> >>> with gcc.
>> >>>
>> >> Is there any benefit outside of gcc compatibility?  What are the
>> >> disadvantages?  This broadly impacts *all* code that is/will be
>> built
>> >> with -O0 over 1 bad line of code.  Someone should make a concise and
>> >> clear decision about at which point compatibility makes sense.  This
>> >> seems like a knee jerk decision
>> >>
>> >>
>> >> --------------------------------------------------------------------
>> ----------
>> >> The ultimate all-in-one performance toolkit: Intel(R) Parallel
>> Studio XE:
>> >> Pinpoint memory and threading errors before they happen.
>> >> Find and fix more than 250 security defects in the development
>> cycle.
>> >> Locate bottlenecks in serial and parallel code that limit
>> performance.
>> >> http://p.sf.net/sfu/intel-dev2devfeb
>> >> _______________________________________________
>> >> Open64-devel mailing list
>> >> Open64-devel@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >>
>> >
>> > ---------------------------------------------------------------------
>> ---------
>> > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio
>> XE:
>> > Pinpoint memory and threading errors before they happen.
>> > Find and fix more than 250 security defects in the development cycle.
>> > Locate bottlenecks in serial and parallel code that limit
>> performance.
>> > http://p.sf.net/sfu/intel-dev2devfeb
>> > _______________________________________________
>> > Open64-devel mailing list
>> > Open64-devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >
>> >
>>
>> -----------------------------------------------------------------------
>> -------
>> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio
>> XE:
>> Pinpoint memory and threading errors before they happen.
>> Find and fix more than 250 security defects in the development cycle.
>> Locate bottlenecks in serial and parallel code that limit performance.
>> http://p.sf.net/sfu/intel-dev2devfeb
>> _______________________________________________
>> Open64-devel mailing list
>> Open64-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
>
>



      
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to