Okay, are C standard library functions typically external in a fully linked LLVM bytecode file? --Patrick Andrew Lenharth wrote:> If the function is external, then DSA won't create a graph for it. > > Andrew > > On Mon, Jul 13, 2009 at 4:54 PM, Patrick Alexander > Simmons<simmon12 at cs.uiuc.edu> wrote: > >> I'm noticing that DSA graphs are not created for library functions like >> "puts". The bytecode file runs with lli, so I think I did my linking >> okay. Is this normal, or does it mean I'm somehow not giving the >> algorithm the complete program information it needs? >> >> Thanks, >> --Patrick >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Unless you compile a bytecode version of the C standard library, and link it in, then yes. - Daniel On Mon, Jul 13, 2009 at 7:33 PM, Patrick Simmons<simmon12 at illinois.edu> wrote:> Okay, are C standard library functions typically external in a fully > linked LLVM bytecode file? > > --Patrick > > Andrew Lenharth wrote: >> If the function is external, then DSA won't create a graph for it. >> >> Andrew >> >> On Mon, Jul 13, 2009 at 4:54 PM, Patrick Alexander >> Simmons<simmon12 at cs.uiuc.edu> wrote: >> >>> I'm noticing that DSA graphs are not created for library functions like >>> "puts". The bytecode file runs with lli, so I think I did my linking >>> okay. Is this normal, or does it mean I'm somehow not giving the >>> algorithm the complete program information it needs? >>> >>> Thanks, >>> --Patrick >>> _______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>> >>> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
> Unless you compile a bytecode version of the C standard library, and > link it in, then yes.This may not be incredibly worthwhile on Linux or MacOS but it should make a big difference for embedded platforms, especially those running w/o an OS. Is it easy to get this running, and to enable IPO across the whole apps+libs blob? Is there a tutorial or some notes anywhere on doing this with newlib, glibc, etc.? Thanks, John