DSPRelated.com
Forums

Trampolines in CCS 3.1

Started by Mike_33 September 14, 2005
Hi guys!

I am wondering if anybody has ever faced with the latest invention of the 
CCS (3.1 for that matter) compiler team called trampoline. I have the memory 
model for the whole project set at "far call and data" which, IMHO, should 
guarantee that all call will be made "far". However, having built the 
project, I was startled to see in the map file few "trampolines" that 
usually get introduced by linker (if you ask it explicitly to do so) in 
order to be able to reach the "far" function by means of "near" call.
I managed to get rid of them by exlicit declaration of the problematic 
functions as "far", but still feel a bit uneasy about it..
Why compiler still generate "near" calls when it is set to "far"? Why 
trampilines are there without turning them on?
Any insights will be appreciated

Mike 


Mike--

> I am wondering if anybody has ever faced with the > latest invention of the CCS (3.1 for that matter) > compiler team called trampoline.
Mmmm..Iam not sure if it is right to call Trampolines an "Invention",ARM compilers have been doing it for a decade now under the name of "Veneers", albeit for a slightly different purpose although itserves well for Long branches or absolute branches as TI calls it. TI always had another solution for it which was compile time(-ml3 option) but after years of experience with the performance penalty associated with making ALL branches to default to far,TI has shifted to the more sophisticated linker based solution(Trampolines) to fix far branches. Either ways it wasnt a original thought.
> I have the memory model for the whole project set at > "far call and data" which, IMHO, should > guarantee that all call will be made "far".
Effectively with the newer versions of CODE GEN -ml3 has been superceeded by trampolines and in fact I will not be surprised if future versions discontinue support for -ml3 (This is my understanding and it does not necessarily represent TI's views!) --Bhooshan This message was sent using the Comp.DSP web interface on www.DSPRelated.com