Is 'Implicit def' bug fixed in LLVM 2.0?

Hello, guys.
I remember that Jeffrey Poznanovic posted ths issue about 'Implicit def' on Apr. 29 and Chris Lattner mentioned it seemed to be a bug.

I am using ver 1.9 and also found 'Implicit def' while using codegen for the code follows:

I remember that Jeffrey Poznanovic posted ths issue about 'Implicit def' on Apr. 29 and Chris Lattner mentioned it seemed to be a bug.

Ok, I don't recall the bug but:

I am using ver 1.9 and also found 'Implicit def' while using codegen for the code follows:

The implicit def instruction often comes from use of the 'undef' value. In your case, that comes from this function

int %c_fs() {
entry:
       ret int undef
}

So your real question seems to be why the llvm optimizer reduces c_fs to undef. The answer is because your code is not computing a defined value:

int c_fs(){
   int i, sum;
   for (i=0; i<10; i++)
     sum += f(i);
   return sum;
}

Try initializing 'sum' to zero.

-Chris

#ifdef LINUX
#include <stdio.h>
#include <stdlib.h>

int c_f(int);
int c_fs();

int main (int argc, char* argv[]) {
   int j;
   j = c_fs();

   printf ("%i\n",j);
   printf ("You got it\n");

}
#endif
-------------------------------------------------------------
The code above was converted to LLVM assembly as follows:

-------------------------------------------------------------
implementation ; Functions:

int %c_f(int %x1) {
entry:
       ret int %x1
}

-------------------------------------------------------------

You can see 'int undef' at the end of this assembly which is shown as 'Implicit def' in target specific assembly code.

I just wonder if this is fixed in the newer version.
Have a good weekend.

Thanks,
Seung J. Lee
_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-Chris