==============================================================================
LLVM Release License
==============================================================================
University of Illinois/NCSA
Open Source License

Copyright (c) 2003, 2004 University of Illinois at Urbana-Champaign.
All rights reserved.

Developed by:

    LLVM Team

    University of Illinois at Urbana-Champaign

    http://llvm.cs.uiuc.edu

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal with
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimers.

    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimers in the
      documentation and/or other materials provided with the distribution.

    * Neither the names of the LLVM Team, University of Illinois at
      Urbana-Champaign, nor the names of its contributors may be used to
      endorse or promote products derived from this Software without specific
      prior written permission.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.

==============================================================================
Copyrights and Licenses for Third Party Software Distributed with LLVM:
==============================================================================
The LLVM software contains code written by third parties.  Such software will
have its own individual LICENSE.TXT file in the directory in which it appears.
This file will describe the copyrights, license, and restrictions which apply
to that code.

The disclaimer of warranty in the University of Illinois Open Source License
applies to all code in the LLVM Distribution, and nothing in any of the
other licenses gives permission to use the names of the LLVM Team or the
University of Illinois to endorse or promote products derived from this
Software.

The following pieces of software have additional or alternate copyrights,
licenses, and/or restrictions:

Program             Directory
-------             ---------
Autoconf:           llvm/autoconf
                    llvm/projects/ModuleMaker/autoconf
                    llvm/projects/sample/autoconf
Burg:               llvm/utils/Burg
                    llvm/test/Programs/MultiSource/Applications/Burg
Aha:                llvm/test/Programs/MultiSource/Applications/aha
SGEFA:              llvm/test/Programs/MultiSource/Applications/sgefa
SIOD:               llvm/test/Programs/MultiSource/Applications/siod
D:                  llvm/test/Programs/MultiSource/Applications/d
Lambda:             llvm/test/Programs/MultiSource/Applications/lambda-0.1.3
hbd:                llvm/test/Programs/MultiSource/Applications/hbd
Fhourstones:        llvm/test/Programs/MultiSource/Benchmarks/Fhourstones
McCat:              llvm/test/Programs/MultiSource/Benchmarks/McCat
Olden:              llvm/test/Programs/MultiSource/Benchmarks/Olden
OptimizerEval:      llvm/test/Programs/MultiSource/Benchmarks/OptimizerEval
Ptrdist:            llvm/test/Programs/MultiSource/Benchmarks/Ptrdist
LLUBenchmark:       llvm/test/Programs/MultiSource/Benchmarks/llubenchmark
SIM:                llvm/test/Programs/MultiSource/Benchmarks/sim
cfrac:              llvm/test/Programs/MultiSource/Benchmarks/MallocBench/cfrac
espresso:           llvm/test/Programs/MultiSource/Benchmarks/MallocBench/espresso
gs:                 llvm/test/Programs/MultiSource/Benchmarks/MallocBench/gs
p2c:                llvm/test/Programs/MultiSource/Benchmarks/MallocBench/p2c
gawk:               llvm/test/Programs/MultiSource/Benchmarks/MallocBench/gawk
make:               llvm/test/Programs/MultiSource/Benchmarks/MallocBench/make
perl:               llvm/test/Programs/MultiSource/Benchmarks/MallocBench/perl
Dhrystone:          llvm/test/Programs/SingleSource/Benchmarks/Dhrystone
SingleSource Tests: llvm/test/Programs/SingleSource/Benchmarks/Misc
                    llvm/test/Programs/SingleSource/CustomChecked
                    llvm/test/Programs/SingleSource/Gizmos
GNU Libc:           llvm/runtime/GCCLibraries/libc
Zlib Library:       llvm/runtime/zlib
PNG Library:        llvm/runtime/libpng

