Good news! =================GIN FORWARDED MESSAGE================== > From: "Smith, Brian" <> > To: Kenneth Porter <> > Subject: RE: [adsp] RE: Associating a register with a global variable > Date: Wed, 13 Sep 2000 08:49:22 -0400 The newer compilers will allow you to mix optimization and debug. We are releasing vDSP ++1.0 later this month. It will have C++ in spades. Later versions are planned for release early 2001. We can share more info with you under Non-Disclosure if you wish. I can arrange a visit with an ADI representative if you don't already have one that call on you. Brian -----Original Message----- From: Kenneth Porter [mailto:] Sent: Tuesday, September 12, 2000 7:23 PM To: DSPTools.Support Cc: SHARC list Subject: [adsp] RE: Associating a register with a global variable Inspection of the VDSP-generated asm indicates that it only suppresses redundant register loading if optimization is enabled. With optimization enabled, only limited debugging info (line numbers only) can be left in the executable, and I prefer the binary for my release build to be identical to my debugging build. It would be desirable to extend the compiler to retain more debugging info when optimization is enabled. On Tue, 12 Sep 2000 12:50:13 -0400, DSPTools.Support wrote: > Ken, > > Here is some information from our Compiler Group regarding your email > about global variables. > > The "-reserve" command line switch lets you reserve registers > for your inline assembly code or assembly language routines, including > i0, i1, i8 and i9 (2 from each DAG). Some > restrictions as to the use of this option are detailed under > "User Registers" in the Sharc 21xxx C Compiler and Library > Manual. > > Note, that reserving registers can negatively influence the efficiency > of compiled C code, it will prevent loop > optimizations, among others. Also, you must make sure all > references are made through GNU asm statements. > > In general it is better to allow the compiler to choose where to place > things. A reload should only be required if the contents > at the address has changed, or in the case of a global variable > a call is made to a routine which can or might change the > variable. > > If a routine heavily uses this variable, it is often advantageous > to make a local copy on entry to the procedure. The compiler can then > see if the local copy is never changed and can make register > assignments accordingly. > > Dana > Best regards, > Technical Support > DSP Development Tools Product Line > Analog Devices, Inc. > http://www.analog.com/dsp/tools/form_techsupport.html > ============================================ > ADI DSPs feature White Mountain Line of DSP Development Tools > > -----Original Message----- > From: Kenneth Porter [mailto:] > Sent: Thursday, September 07, 2000 8:10 PM > To: dsptools.support > Subject: Associating a register with a global variable > Is there some way in Visual DSP (SHARC) to tell the compiler that a > global variable always lives in a specific register? > > I have a small number of global pointers that point to something like a > task state object. All data associated with a task is referenced > through one of these pointers. If I could lock these pointers in an I > register, the compiler would not need to keep reloading registers every > time a reference was made to task data. > > Do RTOS' for SHARC do anything special to accomplish this? > > Kenneth Porter > Kensington Laboratories, Inc. > mailto: > http://www.kensingtonlabs.com ===================END FORWARDED MESSAGE=================== Kenneth Porter Kensington Laboratories, Inc. mailto: http://www.kensingtonlabs.com |
New SHARC compiler!
Started by ●September 14, 2000