Third party integration

I have only just begun looking through the docs for LLVM. I have read
through some of the PP presentations to get an idea of the modularity of
LLVM.

May someone be so kind to point me to some documentation on how to
communicate with the LLVM modules (specifically the optimizer) from some
third party piece of software (my compiler)?

I am hoping there is a file format, or some serialization, that LLVM
modules can read and write. I am looking at the v1.9 tar file: are the
*.ll files this serialization? If so, then I guess I am looking for a
doc with a high level grammar specification.

Thanks ahead of time.

.ll files are human readable LLVM intermediate code. Modules operate
(see 'opt' tool) on byte codes which use .bc as file extension.

See,

  http://llvm.org/docs/LangRef.html
  http://llvm.org/docs/BytecodeFormat.html

llvm-gcc is a GCC based front-end that produces LLVM IR.

  http://llvm.org/docs/CommandGuide/html/llvmgcc.html
  http://llvm.org/docs/CommandGuide/html/opt.html

http://llvm.org/docs/ has lots of useful documents to get started.

I have only just begun looking through the docs for LLVM. I have read
through some of the PP presentations to get an idea of the modularity of
LLVM.

May someone be so kind to point me to some documentation on how to
communicate with the LLVM modules (specifically the optimizer) from some
third party piece of software (my compiler)?

I am hoping there is a file format, or some serialization, that LLVM
modules can read and write. I am looking at the v1.9 tar file: are the
*.ll files this serialization? If so, then I guess I am looking for a
doc with a high level grammar specification.

Binary Format: Bytecode: http://llvm.org/docs/BytecodeFormat.html
Text Format: Assembly: http://llvm.org/docs/LangRef.html

I suggest that you read http://llvm.org/docs/ (the index) to learn more
about what documentation is available. Most of the answers you want are
already covered there.

Reid.