Closed Bug 87585 Opened 23 years ago Closed 23 years ago

Improve performance of config/mkdepend/mkdepend

Categories

(SeaMonkey :: Build Config, enhancement, P5)

Sun
Solaris
enhancement

Tracking

(Not tracked)

RESOLVED FIXED
Future

People

(Reporter: roland.mainz, Assigned: cls)

Details

Attachments

(1 file)

Problem: Mozilla builds using Sun Workshop 6 are wasting a huge pile of time in 
config/mkdepend/mkdepend

Possible workaround: What about building mkdepend with higher optimisation like
"-fast", "-xcrossfile" or "-xipo" ?
I seriously doubt that those compile flags will provide *that* significant of a
difference in the overall build times but I'm open to being proved wrong.  I'll
need some numbers before anything is done though.  I'll need the times of the
builds of the following configurations:
default build
build using mkdepend built with -fast
build using mkdepend built with -xcrossfile
build using mkdepend built with -xipo

Add:
CFLAGS += <compiler flag>
to the end of config/mkdepend/Makefile.in to build with the special flag just
for that directory.
-
cls:
Both -xipo and -xcrossfile have a catch:
- "-xcrossfile" requires that all *.c/*.cpp source files must be given at once,
e.g. % cc x.c y.c z.c # etc...
- "-xipo" - requires that "-xipo" option is present at link time, too
(functionality of "-xipo" is more or less the same as "-xcrossfile" - but the
step "optimize all in one step" is executed at "link" time ("-xcrossfile" does
that at compile time)...).
- "-xipo" is only available in Sun Workshop 6 Update 2 and above. configure
would have to test for it... ;-(

cls wrote:
> I seriously doubt that those compile flags will provide *that* significant of
> a difference in the overall build times

Currently a full rebuild with Sun Workshop 6 Update 2 EA2 takes ~5-6 hours - and
I assume at least one hour is spend in mkdepend... ;-(

In theory the combination of "-fast -xipo" should give a _significant_
performance boost compared to a mkdepend build with no optimisation (e.g.
non-optimized debug build)... real values will follow when I fixed the other
bugs I am working on...
Priority: -- → P5
Target Milestone: --- → Future
Test procedure:
% cd cd gfx/src
% gmake clean
% time gmake

1. Standard mkdepend:
real    10m14.434s
user    9m11.420s
sys     0m28.890s

2. mkdepend build with "-fast"
real    5m37.372s
user    4m45.930s
sys     0m28.970s

3. mkdepend build with "-fast -xipo"
real    5m35.284s
user    4m41.130s
sys     0m28.830s

[3] suprises me a lot, CC:'ing richb - looks like "-xipo" does not work in this
case... ;-((
1. s/cd cd/cd /
2. Based on these results - I would vote for an option
(--enable-optimized-build-tools) to turn this stuff ("-fast" for WS6, "-O2" for
gcc) on...
What about using "-xipo" if available (yes I know that "xipo" does not work for
large C++ programs - but it should be save with smallish ones) - suggested flags
would be "-xO4 -xipo" (_not_ "-fast") ?

Alternatively we could use "-xcrossfile" - which is available on all Sun
Workshop platforms - but it requires that all *.c files are given in one step...
Didn't you just say that "-xipo" *didn't* work for this case?  According to the
cc manpage, -fast gives -xO5 level optimization unless some other -x0y flag is
given so given the other issues with -xpio (link checks & not supported in
previous Forte releases), I think -fast is the way to go.

> Didn't you just say that "-xipo" *didn't* work for this case? 

For some reason the performance gain in the EarlyAccess version oif WS6U2 was
_low_ - which does not mean it is not usefull in later releases... :-)

> According to the
> cc manpage, -fast gives -xO5 level optimization unless some other -x0y flag
> is given so given the other issues with -xpio (link checks & not supported
> in previous Forte releases), I think -fast is the way to go.

OK... but "-fast" can be "tricky" as it may "overoptimize" things - or simply
compile it wrong. For example, mozilla build with --enable-optimize="-xO4" works
perfectly, but --enable-optimize="-xO5" just crashes.

Question is whether such a smallish tool like mkdepend will trigger one of the
issues around "-fast" or not. We can try it... :-)

If "-fast" does not work we can try "-fast -xO4" or "-xO4" ...
Comment on attachment 58463 [details] [diff] [review]
Set default optimize flag to -fast for mkdepend on SunOS

r=roland.mainz@informatik.med.uni-giessen.de
Attachment #58463 - Flags: review+
Patch has been checked in.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: