-The B<llvmc> command is a configurable driver for invoking other
-LLVM (and non-LLVM) tools in order to compile, optimize and link software
-for multiple languages. For those familiar with the GNU Compiler
-Collection's B<gcc> tool, it is very similar. This tool has the
-following main goals or purposes:
-
-=over
-
-=item * A Single point of access to the LLVM tool set.
-
-=item * Hide the complexities of the LLVM tools through a single interface.
-
-=item * Make integration of existing non-LLVM tools simple.
-
-=item * Extend the capabilities of minimal front ends.
-
-=item * Make the interface for compiling consistent for all languages.
-
-=back
-
-The tool itself does nothing with a user's program. It merely invokes other
-tools to get the compilation tasks done.
-
-The options supported by B<llvmc> generalize the compilation process and
-provide a consistent and simple interface for multiple programming languages.
-This makes it easier for developers to get their software compiled with LLVM.
-Without B<llvmc>, developers would need to understand how to invoke the
-front-end compiler, optimizer, assembler, and linker in order to compile their
-programs. B<llvmc>'s sole mission is to trivialize that process.
-
-=head2 Basic Operation
-
-B<llvmc> always takes the following basic actions:
-
-=over
-
-=item * Command line options and filenames are collected.
-
-The command line options provide the marching orders to B<llvmc> on what actions
-it should perform. This is the I<request> the user is making of B<llvmc> and it
-is interpreted first.
-
-=item * Configuration files are read.
-
-Based on the options and the suffixes of the filenames presented, a set of
-configuration files are read to configure the actions B<llvmc> will take.
-Configuration files are provided by either LLVM or the front end compiler tools
-that B<llvmc> invokes. Users generally don't need to be concerned with the
-contents of the configuration files.
-
-=item * Determine actions to take.
-
-The tool chain needed to complete the task is determined. This is the primary
-work of B<llvmc>. It breaks the request specified by the command line options
-into a set of basic actions to be done:
-
-=over
-
-=item * Pre-processing: gathering/filtering compiler input (optional).
-
-=item * Translation: source language to bytecode conversion.
-
-=item * Assembly: bytecode to native code conversion.
-
-=item * Optimization: conversion of bytecode to something that runs faster.
-
-=item * Linking: combining multiple bytecodes to produce executable program.
-
-=back
-
-=item * Execute actions.
-
-The actions determined previously are executed sequentially and then
-B<llvmc> terminates.
-
-=back