This is the mail archive of the
mailing list for the GCC project.
Help needed for Memory Disambiguation
- From: husain ahmed <husainahmed154 at yahoo dot com>
- To: gcc at gcc dot gnu dot org
- Date: Thu, 15 Aug 2002 04:30:44 -0700 (PDT)
- Subject: Help needed for Memory Disambiguation
I am currently
involved in implementing a serial assembly optimizer
for a VLIW processor. Since at the time when we
started porting gcc for our processor, and even now,
gcc is not fully supporting VLIW processors. So we
planned to generate serial assembly from gcc, and then
the serial assembly is optimized by a serial assembly
1) How to know about the exact memory dependencies.
Uptil now i have assumed that any memory access
actually accesses a variable MEM. With this assumption
(i) *(A0+56) = R0;
(ii) R1 = *(A1);
Here i get the information that instruction (i) is
writing to a memory location which is being read by
In the particular VLIW processor for which i am
writing the optimizer, we have got memory write
Similarly if I don't know the exact memory location, i
am unable to exploit few other very important hardware
How can i disambiguate memory only by reading serial
assembly as input? What i know right now is that there
are two methods for Disambiguating memory.
(1) Static method which is gernally applied on the
source language like C, Fortran etc.
(2) Dynamic which is applied on low level language.
This method is more accurate than Static method, but
it requires some hardware support also. Data
Speculation is used to Dynamically Disambiguate memory
locations. Some people have used the profiled
information for Data Speculation.
How should i disambiguate memory
(1) With Serial Assembly as input
(2) With having no hardware support for Data
(3) With having UnLimited Compilation Time, Can i get
the exact memory dependencies through profiling(by
Waiting anxiously for reply
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs