tree bfa188495d935293e57b84800b251ff4fea435de
parent b4e35a80cefbf4f65d1bf2150033b840fc177061
author Chandler Carruth <chandlerc@gmail.com> 1547959519 +0000
committer Chandler Carruth <chandlerc@gmail.com> 1547959519 +0000

Update LICENSE file for the test-suite to the new license.

See r351631 to LLVM which installed the new license and developer policy
for subsequent contributions.

The test suite project is especially strange due to the fact that there
are so many large portions of it that are external projects cloned under
their own license into this repository for the purpose of testing. As
a consequence, I preserved some of the information in the index of such
directories, although I fear it is seriously out of date.

Note that I've left odd formatting and other idiosyncracies of the legacy
license structure text alone to make the diff easier to read. Critically, note
that we do not in any case *remove* the old license notice or terms, as that
remains necessary until we finish the relicensing process.

In subsequent commits I'll update the file headers of code that is
unambiguously part of the LLVM project rather than cloned from somewhere
else. These will be separate commits due to the size of some of the code
in the test suite. Also, there are confusing cases that will either be
handled later once the authors can be consulted, or simply need to
remain as-is. For example, we appear to use an old version of some LLVM
code as a textual input to a benchmark, and changing it would change the
benchmark itself. This also appears to provide no value as the old
version will forever be available under the old license anyways.

Also, we understand that people may be surprised that we're moving the
header entirely to discuss the new license. We checked this carefully
with the Foundation's lawyer and we believe this is the correct
approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351675
