------- Comment #8 from eyal at geomage dot com 2008-02-07 12:16 -------
Hi Ira,
Here is the compiler output for the real code.
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86651_134 and *D.86666_160
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86651_134 and *D.86669_168
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86655_139 and *D.86666_160
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86655_139 and *D.86669_168
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86658_145 and *D.86666_160
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86658_145 and *D.86669_168
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86661_151 and *D.86666_160
Crs/CEE_CRE_2DSearch.cpp:1285: note: create runtime check for data references
*D.86661_151 and *D.86669_168
Crs/CEE_CRE_2DSearch.cpp:1285: note: created 8 versioning for alias checks.
I looked further in the output log and found the following:
D.86666_160 = pTempSumPhase_Temp_cre_angle_27 + D.86665_159;
D.86669_168 = pTempSum2Phase_Temp_cre_angle_32 + D.86665_159;
D.86651_134 = pSum_78 + D.86650_133;
D.86655_139 = pSum_78 + D.86654_138;
D.86658_145 = pSum_G_106 + D.86650_133;
D.86661_151 = pSum_G_106 + D.86654_138;
D.86650_133 = D.86649_132 * 4
D.86649_132 = (long unsigned int) ittt_855;
D.86654_138 = D.86653_137 * 4;
D.86653_137 = (long unsigned int) ittt1_856;
It seems it complaints about some relationship between
pTempSum2Phase_Temp_cre_angle_32 and pTempSumPhase_Temp_cre_angle_27 and
pSum_78 and pSum_G_106
Those vectors have nothing in common in the code. How do I make the compiler
see there's no relationship? Here's the C++ code:
void GCEE_CRE_2DSearch::Find( int i_rCee )
{
float *pTempSumPhase_Temp_cre_angle = (float*) malloc (sizeof(float)
*m_nSamples);
float *pTempSum2Phase_Temp_cre_angle = (float*) malloc (sizeof(float)
*m_nSamples);
memset(pTempSumPhase_Temp_cre_angle,0,sizeof(float)* m_nSamples);
memset(pTempSum2Phase_Temp_cre_angle,0,sizeof(float)* m_nSamples);
float * pSum, *pSum_G;
.....
.....
pSum = m_hiSearchQueue[i_trace];
pSum_G = m_hiSearchQueue[i_trace];
.....
.....
for( int it = itBegin, ittt = itBegin + sample_int, ittt1 = itBegin +
sample_int + 1; it < itEnd; it++, ittt++, ittt1++ )
{
float fSumValue = pSum[ ittt ] * w11;
fSumValue += pSum[ ittt1 ] * w21;
fSumValue += pSum_G[ ittt ] * w12;
fSumValue += pSum_G[ ittt1 ] * w22;
pTempSumPhase_Temp_cre_angle[ it ] += fSumValue;
pTempSum2Phase_Temp_cre_angle[ it ] += fSumValue * fSumValue;
}
Thanks
Eyal
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35117