Announcement: MSP430-GCC 4.3.4

View: New views
18 Messages — Rating Filter:   Alert me  

Announcement: MSP430-GCC 4.3.4

by Ivan Shcherbakov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, All,
 
Please  be  informed that GCC 4.3.4 was ported to MSP430 platform.
The port is available at http://mspgcc4.sourceforge.net/

--
Best Regards,
 Ivan Shcherbakov                     mailto:shcherbakov@...
 TU Kaiserslautern, Germany
 Department of Real-Time Systems


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Conrado Porto Lopes Gouvêa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Sep 8, 2009 at 15:58, Ivan Shcherbakov<shcherbakov@...> wrote:
> Hi, All,
>
> Please  be  informed that GCC 4.3.4 was ported to MSP430 platform.
> The port is available at http://mspgcc4.sourceforge.net/
>

Hello,

Thanks, that's great news!

But I've downloaded the Windows version and I've run into this
problem: when using -Wl,-gc-sections makes the executable sections
vanish completely.
I've used "msp430-gcc -mmcu=msp430x1611 -ffunction-sections
-Wl,-gc-sections temp.c" with the attached temp.c file. Then,
"msp430-objdump -d a.out" lists it empty.

Conrado

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Peter Jansen-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Ivan,

Excellent news..

I tested it on a large code base I have, and it makes bigger code that 3.2.3 even with -Os.

For example with the MSP430_169_forweb project from http://www.olimex.com/dev/soft/msp430/MSP430-169LCD.zip

The size with 3.2.3 is

   text       data        bss        dec        hex    filename
   6048        522       1026       7596       1dac    main.elf

With 4.3.4,

   text       data        bss        dec        hex    filename
   8398          4       1542       9944       26d8    main.elf

Quite a lot larger, these are both compiled with -O3

Regards,

Peter Jansen



----- Original Message ----

> From: Ivan Shcherbakov <shcherbakov@...>
> To: mspgcc-users@...
> Sent: Wednesday, 9 September, 2009 4:58:26 AM
> Subject: [Mspgcc-users] Announcement: MSP430-GCC 4.3.4
>
> Hi, All,
>
> Please  be  informed that GCC 4.3.4 was ported to MSP430 platform.
> The port is available at http://mspgcc4.sourceforge.net/
>
> --
> Best Regards,
> Ivan Shcherbakov                     mailto:shcherbakov@...
> TU Kaiserslautern, Germany
> Department of Real-Time Systems


      __________________________________________________________________________________
Find local businesses and services in your area with Yahoo!7 Local.
Get started: http://local.yahoo.com.au

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by N. Coesel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

----- Original Message -----
From: "Peter Jansen" <pwjansen@...>
To: "Ivan Shcherbakov" <shcherbakov@...>; "GCC for MSP430 -
http://mspgcc.sf.net" <mspgcc-users@...>;
<mspgcc-users@...>
Sent: Wednesday, September 09, 2009 8:52 AM
Subject: Re: [Mspgcc-users] Announcement: MSP430-GCC 4.3.4


> Hi Ivan,
>
> Excellent news..
>
> I tested it on a large code base I have, and it makes bigger code that
> 3.2.3 even with -Os.
>
> For example with the MSP430_169_forweb project from
> http://www.olimex.com/dev/soft/msp430/MSP430-169LCD.zip
>
> The size with 3.2.3 is
>
>   text       data        bss        dec        hex    filename
>   6048        522       1026       7596       1dac    main.elf
>
> With 4.3.4,
>
>   text       data        bss        dec        hex    filename
>   8398          4       1542       9944       26d8    main.elf

I have had similar results on the H8 platform. Perhaps its better to
concentrate on porting to the latest version of GCC 3.x. The biggest problem
in GCC 3.x in general is that the long long (64 bit) type support is broken
(can lead to unexpected results).

Nico Coesel


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Ivan Shcherbakov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, Conrado,
 
>I've downloaded the Windows version and I've run into this
>problem: when using -Wl,-gc-sections makes the executable sections
>vanish completely.
>I've used "msp430-gcc -mmcu=msp430x1611 -ffunction-sections
>-Wl,-gc-sections temp.c" with the attached temp.c file. Then,
>"msp430-objdump -d a.out" lists it empty.

I  could not reproduce your bug. Tried exactly the same, and then used
"msp430-objdump.exe  -d a.out" to view the disassembly. The output was
valid.

Could you please try the following:
1.  Ensure  that  your  PATH  is  set  correctly.  Maybe,  new  GCC is
accidentially using some old binutils installed somewhere else.
2.  Try unpacking the EXE in /opt directory of cygwin. Some components
can be location-dependent.
3. Try the "--entry main" argument to explicitly tell linker where to
start.
4.  If nothing helps, try rebuilding GCC toolchain. This is done fully
by  checking  out  SVN  and  invoking "sh buildgcc.sh --defaults" (see
MSPGCC4 website). All source tarballs will be downloaded, unpacked and
built automatically.


--
Best regards,
 Ivan Shcherbakov                     mailto:shcherbakov@...
 TU Kaiserslautern, Germany
 Department of Real-Time Systems


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Ivan Shcherbakov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, Peter,
 
The  bigger  code problem in your case is caused by GCC4 inlining some
functions by default. For example, an non-static inline function, that
is  used  only  a  single  time  (such  as  init_SPI in your case), is
included  in the object file twice (the function itself and its inline
call).  If  you specify the -ffunction-sections attribute (and use the
-gc-sections linker switch), the code size will be less than using GCC
v3.

If  you  don't want to use the -ffunction-sections, you either need to
disable  inlining  completely  (-fno-inline),  or  tweak  the  maximum
inlined  function  size  (-finline-limit=x),  that  is  more  precise.

--
Best regards,
 Ivan Shcherbakov                     mailto:shcherbakov@...
 TU Kaiserslautern, Germany
 Department of Real-Time Systems


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Peter Jansen-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Ivan,



> The  bigger  code problem in your case is caused by GCC4 inlining some
> functions by default. For example, an non-static inline function, that
> is  used  only  a  single  time  (such  as  init_SPI in your case), is
> included  in the object file twice (the function itself and its inline
> call).  If  you specify the -ffunction-sections attribute (and use the
> -gc-sections linker switch), the code size will be less than using GCC
> v3.
>
> If  you  don't want to use the -ffunction-sections, you either need to
> disable  inlining  completely  (-fno-inline),  or  tweak  the  maximum
> inlined  function  size  (-finline-limit=x),  that  is  more  precise.

Thanks, the fno-inline works and reduces the code.

The bigger project I have, the code size is about the same.

There is some movement of things from the data section to the bss section with gcc-4.3.4 (I assume variables initialized with 0 or something).

I did have to add the section .debug_ranges to the linker script as it was going into the data section by default and using extra space (similar problem here)

http://osdir.com/ml/lib.newlib/2005-05/msg00011.html

Regards,

Peter Jansen



      __________________________________________________________________________________
Find local businesses and services in your area with Yahoo!7 Local.
Get started: http://local.yahoo.com.au

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Wayne Uroda-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

What is MSP430X support like on this new port? Stable enough for real world production use?

- Wayne
Sent via BlackBerry® from Vodafone

-----Original Message-----
From: Peter Jansen <pwjansen@...>
Date: Wed, 9 Sep 2009 02:30:41
To: GCC for MSP430 - http://mspgcc.sf.net<mspgcc-users@...>
Subject: Re: [Mspgcc-users] Announcement: MSP430-GCC 4.3.4

Hi Ivan,



> The  bigger  code problem in your case is caused by GCC4 inlining some
> functions by default. For example, an non-static inline function, that
> is  used  only  a  single  time  (such  as  init_SPI in your case), is
> included  in the object file twice (the function itself and its inline
> call).  If  you specify the -ffunction-sections attribute (and use the
> -gc-sections linker switch), the code size will be less than using GCC
> v3.
>
> If  you  don't want to use the -ffunction-sections, you either need to
> disable  inlining  completely  (-fno-inline),  or  tweak  the  maximum
> inlined  function  size  (-finline-limit=x),  that  is  more  precise.

Thanks, the fno-inline works and reduces the code.

The bigger project I have, the code size is about the same.

There is some movement of things from the data section to the bss section with gcc-4.3.4 (I assume variables initialized with 0 or something).

I did have to add the section .debug_ranges to the linker script as it was going into the data section by default and using extra space (similar problem here)

http://osdir.com/ml/lib.newlib/2005-05/msg00011.html

Regards,

Peter Jansen



      __________________________________________________________________________________
Find local businesses and services in your area with Yahoo!7 Local.
Get started: http://local.yahoo.com.au

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by David Brown-40 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Peter Jansen wrote:

> Hi Ivan,
>
>
>
>> The  bigger  code problem in your case is caused by GCC4 inlining
>> some functions by default. For example, an non-static inline
>> function, that is  used  only  a  single  time  (such  as  init_SPI
>> in your case), is included  in the object file twice (the function
>> itself and its inline call).  If  you specify the
>> -ffunction-sections attribute (and use the -gc-sections linker
>> switch), the code size will be less than using GCC v3.
>>
>> If  you  don't want to use the -ffunction-sections, you either need
>> to disable  inlining  completely  (-fno-inline),  or  tweak  the
>> maximum inlined  function  size  (-finline-limit=x),  that  is
>> more  precise.
>
> Thanks, the fno-inline works and reduces the code.
>

Of course, the best way is to correct your code!  Functions and data
that are not exported from a module should always be declared "static".
  That way the compiler will inline single-use functions and omit the
non-inline version entirely.  This will give the compiler the best
chance to make the code smaller and faster.

With gcc 4.3, it is also possible to compile and link all your source
code on a single line and use the "-combine" and "-fwhole-program"
options.  This lets the compiler know that it has full information about
all code, and will give inter-module inter-function optimisation.  It
can make debugging a little inconvenient, of course, as with any
powerful optimisation.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by David Brown-40 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

N. Coesel wrote:

> ----- Original Message -----
> From: "Peter Jansen" <pwjansen@...>
> To: "Ivan Shcherbakov" <shcherbakov@...>; "GCC for MSP430 -
> http://mspgcc.sf.net" <mspgcc-users@...>;
> <mspgcc-users@...>
> Sent: Wednesday, September 09, 2009 8:52 AM
> Subject: Re: [Mspgcc-users] Announcement: MSP430-GCC 4.3.4
>
>
>> Hi Ivan,
>>
>> Excellent news..
>>
>> I tested it on a large code base I have, and it makes bigger code that
>> 3.2.3 even with -Os.
>>
>> For example with the MSP430_169_forweb project from
>> http://www.olimex.com/dev/soft/msp430/MSP430-169LCD.zip
>>
>> The size with 3.2.3 is
>>
>>   text       data        bss        dec        hex    filename
>>   6048        522       1026       7596       1dac    main.elf
>>
>> With 4.3.4,
>>
>>   text       data        bss        dec        hex    filename
>>   8398          4       1542       9944       26d8    main.elf
>
> I have had similar results on the H8 platform. Perhaps its better to
> concentrate on porting to the latest version of GCC 3.x. The biggest problem
> in GCC 3.x in general is that the long long (64 bit) type support is broken
> (can lead to unexpected results).
>

There are a great many advantages to gcc 4.3 over gcc 3.x, and this is a
huge positive step for msp430-gcc.

It is a known issue that gcc 4.x can produce larger code than gcc 3.x in
some circumstances, and the effect is particularly noticeable for small
devices.  One reason is, as Ivan pointed out, inlining of functions that
are used only once in a file.  The correct handling of this is to either
declare the function "static" if it is internal to the file (in which
case only the inline version is generated), or "extern" (in which case
only the non-inline version is generated).

More generally, gcc 4.x is more aggressive in inlining functions than
previous generations.  This is because function call overhead is
typically a bigger issue than a little extra code size on most of gcc's
targets.  There are parameters used to tune gcc into getting a balance
here, which may not be ideal for small micros.  Certainly in the case of
avr-gcc, users have found that a few command-line options can make a big
difference to the code size.  Here are some options that are commonly
used with avr-gcc, to try out with msp430-gcc:

--param inline-call-cost=3" (or 2),
"-fno-split-wide-types" and "-fno-inline-small-functions"

mvh.,

David


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by David Brown-40 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ivan Shcherbakov wrote:
> Hi, All,
>  
> Please  be  informed that GCC 4.3.4 was ported to MSP430 platform.
> The port is available at http://mspgcc4.sourceforge.net/
>

This wonderful news!  I haven't used msp430's very much in recent times,
but I might well be using them again soon.  It will be good to move to a
newer version of gcc when these old projects start up again.

Are you keeping the mspgcc4 branch as a separate development branch, or
will it be collected together with the rest of msp430-gcc development?
It seems that there are currently three separate sites -
http://mspgcc.sourceforge.net/, http://mspgcc4.sourceforge.net/, and
https://launchpad.net/mspgcc.

mvh.,

David


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Przemek Klosowski-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Sep 9, 2009 at 5:30 AM, Peter Jansen <pwjansen@...> wrote:

>
> Thanks, the fno-inline works and reduces the code.
> The bigger project I have, the code size is about the same.
>

So, is the new GCC on par with 3.x for code size on most projects? You
suggested previously to keep using 3.x because of that---given the
-fno-inline efficiency, are you confident that it's OK to commit to the
latest GCC?

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Peter Jansen-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Przemek,


> >
> > Thanks, the fno-inline works and reduces the code.
> > The bigger project I have, the code size is about the same.
> >
>
> So, is the new GCC on par with 3.x for code size on most projects? You
> suggested previously to keep using 3.x because of that---given the
> -fno-inline efficiency, are you confident that it's OK to commit to the
> latest GCC?

Bascially yes I would start moving to gcc 4.3.4, I have some more testing that needs to be done on the target hardware. Getting more people using it would give more test coverage also.

The stumbelling block with the pervious ports to the 4.x series was that the compiler would crash on some code, this is now fixed, and other faults can be fixed as they arrise (if required).

Should be merge the port into https://launchpad.net/mspgcc ? we could now plan to merge into the main gcc assuming that the code is all GNU etc?

Regards,

Peter Jansen


      __________________________________________________________________________________
Find local businesses and services in your area with Yahoo!7 Local.
Get started: http://local.yahoo.com.au

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Yann Ramin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Just did a test run on an application we have on the F1611.

-fno-inline -Os on 4.3.4

   text   data    bss    dec    hex filename
  45314     24   7968  53306   d03a app.bin

-Os on 3.2.3

   text   data    bss    dec    hex filename
  43738     72   7940  51750   ca26 app.bin

which is a slightly curious outcome. -fno-inline increases code size.

without -fno-inline

   text   data    bss    dec    hex filename
  44188     24   7968  52180   cbd4 app.bin

I haven't done a function by function analysis yet to determine where
the size increase is coming from. I also haven't attempted a whole
program build (-fwhole-program -combine) as the makefile is
programmatically generated by our dependency tool and thats a place I'm
not ready to go just now ;)


Ivan Shcherbakov wrote:
> Hi, All,
>  
> Please  be  informed that GCC 4.3.4 was ported to MSP430 platform.
> The port is available at http://mspgcc4.sourceforge.net/
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by David Brown-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yann Ramin wrote:

> Just did a test run on an application we have on the F1611.
>
> -fno-inline -Os on 4.3.4
>
>    text   data    bss    dec    hex filename
>   45314     24   7968  53306   d03a app.bin
>
> -Os on 3.2.3
>
>    text   data    bss    dec    hex filename
>   43738     72   7940  51750   ca26 app.bin
>
> which is a slightly curious outcome. -fno-inline increases code size.
>
> without -fno-inline
>
>    text   data    bss    dec    hex filename
>   44188     24   7968  52180   cbd4 app.bin
>
> I haven't done a function by function analysis yet to determine where
> the size increase is coming from. I also haven't attempted a whole
> program build (-fwhole-program -combine) as the makefile is
> programmatically generated by our dependency tool and thats a place I'm
> not ready to go just now ;)
>

This is mainly from my experience with avr-gcc, which has had the same
issues regarding code size when moving to newer gcc versions.

-fno-inline can increase code size, because contrary to popular opinion,
inlining will often reduce code size.  The key to keeping size down
during automatic inlining is to make sure your functions are either
"static" or explicitly "extern" - that way the compiler will either
generate a non-inline version, or inline a single usage, but not both
(use flags -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
to help enforce this).

Note that inlining single-use functions always reduces code size.  The
reduction can sometimes be quite dramatic - it's very common that
parameters for things like initialisation functions are constants, and
the compiler can use this to simplify and eliminate code.

The other issue with inlining is that on higher optimisation settings
(but not -Os), -finline-small-functions is enabled which (surprise,
surprise) inlines functions of a certain size even if they are used more
than once.  Sometimes this will reduce code size as well as speeding up
the code - the function call overhead in the callee (the actual "call"
statement, along with code to shuffle registers around for parameters)
could be bigger than the inlined code.  Personally, I prefer to
explicitly label such small functions as "inline".


Another flag that can be used to reduce code space is
"-frtl-abstract-sequences".  This should take common code sequences and
generate extra subroutines for them.  I don't know how well this works
(if it works at all), but it could be worth trying.


All in all, with avr-gcc, gcc 4.3 produces slightly larger code than gcc
3.x even with care regarding inlining and appropriate compiler flags.
Of course, results vary according to the type of code.  My expectation
is that msp430-gcc will see much the same effects as for avr-gcc.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Mark Rages :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Sep 8, 2009 at 1:58 PM, Ivan Shcherbakov
<shcherbakov@...> wrote:

> Hi, All,
>
> Please  be  informed that GCC 4.3.4 was ported to MSP430 platform.
> The port is available at http://mspgcc4.sourceforge.net/
>
> --
> Best Regards,
>  Ivan Shcherbakov                     mailto:shcherbakov@...
>  TU Kaiserslautern, Germany
>  Department of Real-Time Systems
>

Comparing my build of 3.2.3 with the new 4.3,

The 4.3 build script installs an assembler that doesn't understand these CPUs:

msp3
msp4
msp5
msp6
msp430x1471
msp430x1481
msp430x1491
msp430x2001
msp430x2011
msp430x2002
msp430x2012
msp430x2003
msp430x2013
msp430x2112
msp430x2122
msp430x2132
msp430x2232
msp430x2234
msp430x2252
msp430x2254
msp430x2272
msp430x2274
msp430x233
msp430x235
msp430x2330
msp430x2350
msp430x2370
msp430x247
msp430x2471
msp430x248
msp430x2481
msp430x249
msp430x2491
msp430x2410
msp430x2416
msp430x2417
msp430x2418
msp430x2419
msp430x2616
msp430x2617
msp430x2618
msp430x2619
msp430x423
msp430x425
msp430x427
msp430x4250
msp430x4260
msp430x4270
msp430xG4250
msp430xG4260
msp430xG4270
msp430xE4232
msp430xE4242
msp430xE4252
msp430xE4272
msp430x4351
msp430x4361
msp430x4371
msp430xG4616
msp430xG4617
msp430xG4618
msp430xG4619
msp430x4783
msp430x4784
msp430x4793
msp430x4794
msp430x47166
msp430x47176
msp430x47186
msp430x47196
msp430x47167
msp430x47177
msp430x47187
msp430x47197
msp430x5418
msp430x5419
msp430x5435
msp430x5436
msp430x5437
msp430x5438

--
Mark Rages, Engineer
Midwest Telecine LLC
markrages@...

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Mark Rages :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ok, support for many processors is missing because binutils is not patched.

I think it is a copypaste error in the build script:

Index: buildgcc.sh
===================================================================
--- buildgcc.sh (revision 7)
+++ buildgcc.sh (working copy)
@@ -187,9 +187,9 @@

  cd binutils-$BINUTILS_VERSION

- if [ -e ../../binutils-$GCC_VERSION.patch ]
+ if [ -e ../../binutils-$BINUTILS_VERSION.patch ]
  then
- patch -p1 < ../../binutils-$GCC_VERSION.patch
+ patch -p1 < ../../binutils-$BINUTILS_VERSION.patch
  fi

  ./configure --prefix=$TARGET_LOCATION --target=msp430 || exit 5


Regards,
Mark
markrages@gmail
--
Mark Rages, Engineer
Midwest Telecine LLC
markrages@...

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Re: Announcement: MSP430-GCC 4.3.4

by Mark Rages :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Fri, Sep 11, 2009 at 4:43 PM, Mark Rages <markrages@...> wrote:

> Ok, support for many processors is missing because binutils is not patched.
>
> I think it is a copypaste error in the build script:
>
> Index: buildgcc.sh
> ===================================================================
> --- buildgcc.sh (revision 7)
> +++ buildgcc.sh (working copy)
> @@ -187,9 +187,9 @@
>
>        cd binutils-$BINUTILS_VERSION
>
> -       if [ -e ../../binutils-$GCC_VERSION.patch ]
> +       if [ -e ../../binutils-$BINUTILS_VERSION.patch ]
>        then
> -               patch -p1 < ../../binutils-$GCC_VERSION.patch
> +               patch -p1 < ../../binutils-$BINUTILS_VERSION.patch
>        fi
>
>        ./configure --prefix=$TARGET_LOCATION --target=msp430 || exit 5
>
>

OK, and with a patched binutils, the fixprocs.pl makes a total mess.
so I just commented that line out:
#cat binutils-$BINUTILS_VERSION/gas/config/tc-msp430.c | perl ../fixprocs.pl

Now the build script works for me and I can build for my processor.

Regards,
Mark
markrages@gmail
--
Mark Rages, Engineer
Midwest Telecine LLC
markrages@...

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@...
https://lists.sourceforge.net/lists/listinfo/mspgcc-users