gcc-3.3 with -fomit-frame-pointer finally works on ColdFire

Bernardo Innocenti bernie@develer.com
Mon Jul 28 21:31:00 GMT 2003


On Monday 28 July 2003 17:28, Peter Barada wrote:

> >It would be nice to port some of these changes to HEAD. Peter, are
> >you planning to do this? I'm still waiting to receive my copyright
> >assignment from the FSF via snail mail.
>
> Its great to hear that you have it working!

Yeah, I was almost loosing hope, but now I'm very satisfied! :)


> I've been so buried under work trying to get away for a week's
> vacation that I haven't had a chance to look at *any* of the ColdFire
> stuff for the month of July.  When you get a complete patch together
> against my tree(@baradas.org), send me a mail, I'll integrate it, and
> then start adding my v4 changes to it...

I'm afraid splitting everything up would be a bit difficult. My patches
are all layered one on top of the other and have lost most of their
original identity.

These came from your CVS tree (both 3.2.3 and 3.3, with some small
fixes and changes for 3.3.1):

 gcc-3.3.1-coldfire-targets.patch
     rename TARGET_M5200 to TARGET_COLDFIRE and add new Coldfire targets

 gcc-3.3.1-coldfire-frame.patch
     ColdFire optimized frame layout + attribute((interrupt))
     I removed m68k_initial_elimination_offset() since it is unused.

These patches come from Paul Dale's 2.95.3 work on the uClinux toolchain:

 gcc-3.3.1-uclinux-idshlib.patch
     Add -mid-shared-library and -msep-data

These are my additional patches:

 gcc-3.3.1-coldfire-omitfrmptr.patch
     Fix -fomit-frame-pointer by moving ARGPTR to a distinct
     regno. Simplify and optimize ColdFire prolog and epilog
     generation.

 gcc-3.3.1-uclinux-thunk.patch
     Add -mid-shared-library support for thunks

 gcc-3.3.1-uclinux-specs.patch
     Tweak the specs for building uClinux apps (this one
     really needs to be rewritten from scratch)

 gcc-3.3.1-libstdc++-atomicity.patch
     Fix atomic stuff for ColdFire ISA_A cores

 gcc-3.3.1-libstdc++-nowchar.patch
     Fix build with uClibc with disabled wchar_t support


The problem is that some of these patches overlap each other
and are quite invasive. I've done by best to keep them
separate and I've even splitted them in smaller pieces when
it made sense and it was easy enough.

I'll have to split the patches even more if I want them to be
acceptable. Besides, the recent cleanups in the m68k backend
- which are a GoodThing(tm) - will make my patches difficult
to merge on HEAD.

It's too bad we've lost the GCC 3.4 train. The branch is already
in stage 2, and GCC 3.5 is very far away :-(


> I'm still looking into the ColdFire reload problem(attempt to load a
> QImode value from memory into an address register), but without much
> success.  I think I have to learn a *lot* more about reload before I
> can understand where its going wrong.

So I still need to keep that fix in reload you suggested some weeks
ago, right?

I've not yet grasped any of the RTL complexity so far, let alone the
optimizers :-)

-- 
  // Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/  http://www.develer.com/

Please don't send Word attachments - http://www.gnu.org/philosophy/no-word-attachments.html




More information about the Gcc mailing list