Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CW 10 building larger Mach-O binary

0 views
Skip to first unread message

la...@skytag.com

unread,
Nov 7, 2005, 11:17:03 PM11/7/05
to
I'm just curious, but my Mach-O binary is about 400K (about 9%) larger
when built with CW 10 than when built with CW 9, both with
optimizations off. Any ideas why that would be? Thanks,

Larry

Ron L

unread,
Nov 8, 2005, 1:10:44 PM11/8/05
to
In article <1131423423....@g44g2000cwa.googlegroups.com>,
la...@skytag.com wrote:

More inlining, look at the global optimizations are they set for size
or speed? if Speed then it inlines deeper.

Ron

--
CodeWarrior Community Forum is a free online resource for developers
to discuss CodeWarrior topics with other users and our staff
-- http://www.codewarrior.com/community --

Ron Liechty - ron.l...@freescale.com - http://www.codewarrior.com

la...@skytag.com

unread,
Nov 8, 2005, 3:33:00 PM11/8/05
to
That doesn't explain it based on the following:

CW 9 Faster Execution Speed: 5.28 MB
CW 10 Smaller Code Size: 5.59 MB
CW 10 Faster Execution Speed: 5.68 MB

These numbers are for my debug build, so all optimizations are off.

Smaller code size in 10 is still 300K larger than faster execution in
9. I'm not complaining, I'd just like to know what benefits my users
will get from downloading a larger disk image. :-)

In general I'd like to know what benefits CW 10 offers besides working
in Tiger without having to fiddle with headers and such, and I'd prefer
a description that could be understood by someone who doesn't
understand what CW is doing under the hood. Kind of a semi-layman
explanation. Is there such a description around somewhere?

Larry

Ron L

unread,
Nov 8, 2005, 7:32:41 PM11/8/05
to
In article <1131481979.9...@g43g2000cwa.googlegroups.com>,
la...@skytag.com wrote:

>That doesn't explain it based on the following:
>
>CW 9 Faster Execution Speed: 5.28 MB
>CW 10 Smaller Code Size: 5.59 MB
>CW 10 Faster Execution Speed: 5.68 MB
>
>These numbers are for my debug build, so all optimizations are off.

I don't know why it is larger, is this C++ or C, are you sure all
optimizations are off in both of them, IPO may be on for the CW 10 one.


>In general I'd like to know what benefits CW 10 offers besides working
>in Tiger without having to fiddle with headers and such, and I'd prefer
>a description that could be understood by someone who doesn't
>understand what CW is doing under the hood. Kind of a semi-layman
>explanation. Is there such a description around somewhere?

Not that I know of without getting into Marketing Speak which I know you
want to avoid.

la...@skytag.com

unread,
Nov 9, 2005, 12:55:17 AM11/9/05
to
What is IPO?

Larry

Ron L

unread,
Nov 9, 2005, 2:23:22 PM11/9/05
to
In article <1131515717.5...@g14g2000cwa.googlegroups.com>,
la...@skytag.com wrote:

>What is IPO?

Initial Price Offering... I meant IPA

Look in the Release Notes/compiler notes/CW C-C++ Notes 4.0.txt

* Interprocedural Analysis Support

Interprocedural Analysis (IPA) allows the compiler to generate better
and/or smaller code by inspecting more than just one function or data
object at the same time. This technology is currently mostly used by
the
inliner and a new optimization that tries to reduce the size of C++
exception handling code and data. It also allows cross file string
merging
(reuse strings) and pooling. The optimizer and code generators will
start
using this in future releases for more optimizations.

la...@skytag.com

unread,
Nov 10, 2005, 12:08:27 AM11/10/05
to
>From what you quote here it sounds like IPA should result in smaller
code, not larger. Do you have a reason to believe IPA is behind the
increase in size or is this just a guess?

Larry

Ron L

unread,
Nov 10, 2005, 11:08:58 AM11/10/05
to
In article <1131599307....@z14g2000cwz.googlegroups.com>,
la...@skytag.com wrote:

Neither, it was just something to look at. You might have it off in the
CW 10 code taking it out of the equation. Without the code it is pretty
hard to tell what or where the size difference is. I think you will
need to generate a map file for each to look at them. This basically is
a how much this affects you and how curious you are matter.

It could be something with weak import, maybe we have something with
this including extra code now that we didn't have with previous version.
I can suggest things to look at but they are neither guesses or beliefs.
This could only be by looking at the map file.

la...@skytag.com

unread,
Nov 13, 2005, 9:02:27 PM11/13/05
to
IPA was off. I turned it on and this is what I get:

CW9 4.98 MB
CW10 with IPA 3.73 MB
CW10 without IPA 5.35 MB

So IPA makes a big difference in the final size. The Code and Data
columns in the project window are interesting, though. They both show 0
for every file except one, which has the full non-library totals.

Larry

0 new messages