Related articles |
---|
Dead Code Elimination using C Compiler mjc@dsbc.icl.co.uk (1991-11-07) |
Re: Dead Code Elimination preston@dawn.cs.rice.edu (1991-11-07) |
Re: Re: Dead Code Elimination beck@cs.cornell.edu (1991-11-10) |
Newsgroups: | comp.compilers |
From: | mjc@dsbc.icl.co.uk (Mike Clarke) |
Keywords: | optimize, C |
Organization: | ICL Computers Limited, UK |
Date: | Thu, 7 Nov 91 15:21:58 GMT |
There have been numerous items covering dead code elimination, but I have
yet to see what may amount to a fundamental understanding of what may or
may not be considered to be acceptable/achievable.
If a function has no side effects, should that function collapse into a
'no-op'. Where exactly should the line be drawn? I am a newcomer to this
newgroup and apologise if this topic has been done to death before. If so
then references would be useful.
Take the following example function:
------ code starts -------
#include <stdio.h>
int testdead()
{
char ba[100],ot[100],xa[100],xb[100];
int i,j,k;
strcpy(ba,"simulation program running..............");
strcpy(ot,"string to be copied anywhere anytime....");
k=strlen(ba);
for (j=0; j < 2500 ; j++)
for (i= 0; i < k ; i++)
{
xa[i] = ba[i]; xb[i] = ba[i];
xa[i] = ot[i]; xb[i] = ot[i];
xa[i] = ba[i]; xb[i] = ba[i];
xa[i] = ot[i]; xb[i] = ot[i];
}
return (1);
}
------ code ends -------
I have put this routine through various compilers across a mixture of
machine architectures, and in the main it would appear that most produce
assembler/object that accurately reflects the C source. One came close to
trying to turn into 'no-op', but in doing so left an interesting code
structure. I submit the resultant code/object as a simple C source to
give the idea of what was optimised out.
------ resultant pseudo-code starts -------
#include <stdio.h>
int testdead()
{
char ba[100];
int i,j,k;
strcpy(ba,"simulation program running..............");
k=strlen(ba);
for (j=0; j < 2500 ; j++)
for (i= 0; i < k ; i++)
{
/* empty loop */
}
return (1);
}
------ resultant pseudo-code ends -------
I would like to hear views from all those Compiler gurus out there,
please mail me and I will sift and post a summary.
--
Mike Clarke email: mjc@dsbc.icl.co.uk
ICL Computers Limited, UK
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.