diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html
new file mode 100644
index 00000000000..465c006d76a
--- /dev/null
+++ b/docs/GettingStarted.html
@@ -0,0 +1,146 @@
+
+
+
+ Specification for LLVM system code
+
+
+
+ Specification for LLVM system
+
+
+
+
+
+ - cvs root directory:
- /home/vadve/vadve/Research/DynOpt/CVSRepository
+ - project name:
- llvm
+
+
+ For those who are not familar with cvs, there are two steps you should do:
+
+ -
+ set CVSROOT. Add the following line into the .cshrc file in your home directory if you are using tcsh or csh:
+ setenv CVSROOT /home/vadve/vadve/Research/DynOpt/CVSRepository
+
+ -
+ check out. Go to the directory you want to store LLVM, type
+ cvs checkout llvm
+
+
+
+ note: the c front-end implementation is not in cvs. If you want to use it, you can use excutable in Chris Lattner's directory
+ /home/vadve/lattner/cvs/gcc_install/bin/gcc
+ a brief usage of this gcc and other tools are introduced later. To read it now, click here.
+
+
+ There is a makefile in each directory. You can simple type gmake in the ~/llvm directory to compile all the files or you can type gmake in the certain directory to compile all files and subdirectories in that directory.
+ You might want to add the the following directory into your path:
+ llvm/tools/Debug
+ so you can run tools in any directory. If you are using csh or tcsh, add
+ setenv PATH llvm/tools/Debug:${PATH}
+ at the end of the file .cshrc in your home directory.
+
+
+
+ Many useful infomation can be obtained from the LLVM doxygen tree available at http://llvm.cs.uiuc.edu/doxygen/
+ The following is a brief introduction to code layout:
+
+
+ Most directories contain these two directories. The depend directory contains dependance files which will be used during complilation. The debug directory contains object files, library files or executables after compilation.
+
+ This directory contains common head files supporting the LLVM library. Specific head files which are only used by certain directory are place in that directory instead of here.
+
+ This directory contains most important files of LLVM system.
+
+
+ - llvm/lib/transforms/
- This directory contains files and directories for transforming one representation to another representation.
+
- llvm/lib/Target/
- This directory contains files and directories for target machine. The files under llvm/lib/Target describe the common property for any target machine. The directory llvm/lib/Target/Sparc describe the sparc machine specification.
+
+ - llvm/lib/Analysis/
- This directory contains files and directories for doing all kinds of data and control analysis.
+
- llvm/lib/AsmParser/
- This directory contains files and directories for parsing the llvm assemly files.
+
- llvm/lib/ByteCode/
- This directory contains files and directories for reading and write LLVM bytecode.
+
- llvm/lib/CWrite/
- This directory contains files and directories for writing c files as output.
+
- llvm/lib/CodeGen/
- This directory contains files and directories for instruction selection, instruction scheduling and register allocation.
+
- llvm/lib/Reoptimizer
- This directory contains files and directories for all kinds of optimizations, e.g. dead code elimination, Loop Invariant Code Motion, etc.
+
+
- llvm/lib/Support/
- This directory contains some files and directories supporting the library, e.g. commandline processor and statistic reporter.
+
- llvm/lib/VMCore/
- This directory contains files and directories for implementing the virtual machine instruction set.
+
+
+ This directory contains llvm assembly and other files to test the llvm library.
+
+
+ The tools directory contains many tools. You can always get help by typing command_name --help . The following is a brief introduction to each tool.
+
+ - analyze
- ???
+
- as
- llvm .ll -> .bc assembler
+
The assembler transfroms the human readable assembly to llvm bytecode.
+ - dis
- llvm .bc -> .ll disassembler
+
The disassembler transfroms the llvm bytecode to human readable assembly.
+ - extract
- ???
+
- gccas
- llvm .ll -> .bc assembler
+
The assembler transfroms the human readable assembly to llvm bytecode.
+ - gccld
- many llvm bytecode -> llvm bytecode + optimizations
+
gccld links many llvm bytecode files into one bytecode file and does some optimization.
+ - link
- many llvm bytecode -> llvm bytecode
+
link takes many llvm bytecode files and link them into one llvm bytecode file.
+ - llc
- llvm bytecode -> SPARC assembly
+
llc takes a llvm bytecode file and output a SPARC assembly file.
+ - lli
- llvm interpreter
+
lli reads a llvm bytecode file and execute it.
+ - opt
- llvm .bc -> .bc modular optimizer
+
opt reads llvm bytecode and do certain optimization, then output llvm bytecode .
+
+
+
+
+
+
+
+ If you have any question, please send an email to Lattner Chris Arthur or Guochun Shi.
+
+
+Last modified: Wed Jul 17 17:55:16 CDT 2002
+
+
+