[LLVMdev] ObjectFiles.html

Chris Lattner sabre at nondot.org
Fri Feb 27 00:40:01 PST 2004


On Fri, 27 Feb 2004, Chris Lattner wrote:
> > Could someone please add this file to the LLVM docs directory so I can
> > submit patches against it?

BTW, here's some hints for it:
libtransforms.a -> contains only the level raise pass

libtarget.a -> contains code generator support for describing target
architectures

libanalysis.a -> intraprocedural analyses
libipa.a      -> interprocedural analyses

libinstrument.a -> instrumentation (e.g. profiling) transformations
libtransformutils.a -> common code shared by various xforms

libregalloc.a  -> sparc register allocator
sched.o -> sparc instruction scheduler
select.o  -> sparc instruction selector support
libevar.o -> live variable analysis for the sparc

selectiondag.o -> start of aggressive instruction selector for DAGs

profpaths.o -> path profiling instrumentation


Basically, libraries are built in two forms: .a files and .o files.  .o
files are built/used when client programs want to link in _everything_ in
a library.  .a files are used when a client program wants to use some of
the stuff in a library, based on what symbols are referenced.

The difference is important for things like 'opt' which wants to link in
_ALL_ optimizations no matter what, and 'gccas' which only wants to link
optimizations in that are referenced by the gccas tool explictly.

For libraries that .a files don't make sense, we don't provide them.  It's
impossible to link in half an x86 backend for example.  :)


Overall, this looks really useful, especially when the dependency
information is built.  Perhaps this should eventually be integrated into
the programmers manual though?

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/




More information about the llvm-dev mailing list