There are two versions Clang/LLVM code tree in AOSP, the first is:
aosp/platform/external/(clang|llvm), and the second is:
aosp/toolchain/(clang|llvm).

Something most important is:

Personal Communication from Stephen Hines @ google

the first tree is a dead-end. That was a prior forked version of Clang/LLVM
was previously used for the NDK conpiler (but not for the AOSP platform
compiler). We have since condensed down to use the same conpiler for the
NDK as is used by the platform (AOSP).

So, the first tree(toolchain/clang) is a dead one. But if you are very curious
about what had the googelers done to the toolchain/(clang|llvm), you can clone
the source code.

Now, we have the source code of NDK compiler, download the Clang/LLVM-3.6
official source, and compare the two project(NDK version and official version),
you will see there is little differece between them. NDK Clang version added
some class to support new ABI(e.g. NDK64ABI) and new Target(e.g.
Android64Target), that’s all.

The souce code of toolchain should be get by repo, repo is designed for
manage the complex dependencies of sub-project of AOSP, implementated by a
set of Python scripts. repo wraps some git plumbing, and according to a
config file locate at $TOOLCHAINS_BUILD_TOP/.repo/manifests/default.xml to
deal with the dependency and repository locations of sub-project of every
topic(which is a set of git branchs). $TOOLCHAINS_BUILD_TOP/.repo/manifests
is a local git respository contains versions of config file. According to
this, we have a new way get topic(for example, after we get clang/llvm,
we want gcc now).

Follow the analysis, we may get a successfull compiled Clang/LLVM topic
according to the config file(default.xml), but there is another magic
piece: the relationship of every sub-project in local of a successfull
Clang/LLVM topic is not identical with the repository of same name of
AOSP. So, recommending for repo.

additional java dependencies

There is request about java environment in line 200+ at
$TOOLCHAINS_BUILD_TOP/build/core/main.mk : at least OpenJDK1.8.