Issue 54692

Summary: gcj specific speedup for helpcontent2 building
Product: Build Tools Reporter: caolanm
Component: codeAssignee: hjs <hans-joachim.lankenau>
Status: CLOSED FIXED QA Contact: issues@tools <issues>
Severity: Trivial    
Priority: P3 CC: bero, issues, ivo.hinkelmann, pavel, rene, sparcmoz
Version: 680m130   
Target Milestone: ---   
Hardware: All   
OS: Linux, all   
Issue Type: PATCH Latest Confirmation in: ---
Developer Difficulty: ---
Issue Depends on: 61278    
Issue Blocks:    
Attachments:
Description Flags
patch, testing in progress
none
updated to be aware of system db option
none
lastest version none

Description caolanm 2005-09-16 12:25:05 UTC
using gcj and timing how long it takes for HelpLinkers to build just the sbasic
util/sbasic/makefile.mk

gcj with aot jars
start 11:09:00
end 12:11:31
-> 1:02:31

custom HelpLinker binary
start  10:48:00
end    11:06:55
-> 18:55
Comment 1 caolanm 2005-09-16 12:27:04 UTC
Created attachment 29600 [details]
patch, testing in progress
Comment 2 caolanm 2005-09-16 12:29:08 UTC
don't know how this will play with system-db yet
Comment 3 ivo.hinkelmann 2005-09-16 12:51:49 UTC
ihi cc'ed
Comment 4 caolanm 2005-09-16 16:20:12 UTC
FWIW my results for (a pile of languages) on same parallel build box for build
time from configure to start of install set creation and both builds with gcj are:

without a native HelpLinker binary, 3 hours 40 minutes, with HelpLinker binary
was 2 hours 45 minutes

That 2:45 is larger than it might "really" be as it includes recovery from issue
54708 where a portion of sc was build linearly.
Comment 5 caolanm 2005-09-21 13:23:50 UTC
Created attachment 29765 [details]
updated to be aware of system db option
Comment 6 caolanm 2005-11-03 15:16:32 UTC
Created attachment 31151 [details]
lastest version
Comment 7 bero 2006-03-07 17:52:48 UTC
Introduces issue #61278, but works perfectly and with a HUGE speedup after 
fixing that.
Comment 8 caolanm 2006-04-26 11:46:09 UTC
done in targetedaot
Comment 9 caolanm 2006-04-26 17:11:22 UTC
reopen for qaing
Comment 10 caolanm 2006-04-26 17:20:31 UTC
So heres what the idea is.

a) separate the concepts "gcj as compiler" from the "gcj" (aka GNU ClassPath)
JDK and seperate that from using gcj in it's role as "native binary creater"
(aka Ahead Of Time compilation AOT). This allows AOT to be used to create native
binaries/libraries from the bytecode output of other compilers, e.g. ecj as well
as gcj. In theory this would also allow native binaries to be made of jars
created with Sun Java, though your mileage might vary there depending on the bug
of the day, but someone with sun java can give it a try if they want.
b) rather than *always* create native binary libs from all jars as we do
currently when the java compiler is gcj we
b.1) default to doing nothing unless --enable-gcjaot is specified to configure
(i.e. JAVAAOTCOMPILER is set in the environment).
b.2) only create such AOT binaries for the java helpers used during the
build-time, i.e. HelpLinker and FCFGMerge. So an additional "AOTTARGET" target
achieves this.
Comment 11 caolanm 2006-04-26 17:20:54 UTC
done in "targetedaot"
Comment 12 hjs 2006-05-22 16:07:51 UTC
writing to solver is bad
Comment 13 hjs 2006-05-22 16:09:29 UTC
.
Comment 14 caolanm 2006-05-24 13:17:58 UTC
plan b
Comment 15 caolanm 2006-05-26 08:56:44 UTC
cmc->hjs: how about now. No direct writing into the solver. The filter changes
are rolled back so as to not conflict with the delivered xmlhelp stuff. filter
java-side speedups are irrelevent for me really, xsltproc is the way to go there.
Comment 16 caolanm 2006-05-26 08:57:25 UTC
rejigged
Comment 17 hjs 2006-05-30 12:52:34 UTC
can't we move the AOTTARGETN stuff from tg_jar.mk to xmlhelp and give it a
comment that the solver jar handling must be changed before
duplicating/centralizing?
just a small change to make me happy too ;)
Comment 18 caolanm 2006-06-12 10:34:01 UTC
how about now, moved into aottarget.mk locally in the xmlhelp dir which created
HelpLinker
Comment 19 sparcmoz 2006-06-12 11:05:57 UTC
In my system JAVAAOTCOMPILER is exported to the environment like
@JAVAAOTCOMPILER@ probably because single quotes ' instead of double quotes "
around @JAVAAOTCOMPILER@ in set_soenv.in
Comment 20 caolanm 2006-06-12 11:16:19 UTC
good catch, fixed
Comment 21 hjs 2006-06-12 16:34:15 UTC
.
Comment 22 hjs 2006-10-20 13:58:42 UTC
.