BackendUtil: Pass through -mdisable-tail-calls

The frontend option -fno-optimize-sibling-calls resolves to -cc1's
-mdisable-tail-calls, which is passed to the TargetMachine in the
backend.  PassManagerBuilder was adding the -tailcallelim pass anyway.

Use a new DisableTailCalls option in PassManagerBuilder to disable tail
calls harder.

Requires the matching commit in LLVM that adds DisableTailCalls.

<rdar://problem/16050591>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206543 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a -Wmicrosoft warning on an unrepresentable enum

0x80000000 isn't representable as an int, which is the default enum
type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206545 91177308-0d34-0410-b5e6-96231b3b80d8
ARM64: make sure HFAs on the stack get properly aligned.

Another AAPCS bug, part of PR19432.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206580 91177308-0d34-0410-b5e6-96231b3b80d8
Updating to use more range-based for loops, nullptr and auto. No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206590 91177308-0d34-0410-b5e6-96231b3b80d8
ARM64: make sure the caller is expected to extend in AAPCS.

This is one of those DarwinPCS differences. It'd been caught in
arguments, but not return values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206594 91177308-0d34-0410-b5e6-96231b3b80d8
Add more constness to module-related APIs


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206595 91177308-0d34-0410-b5e6-96231b3b80d8
Split out the no-thunk multiple inheritance tests

Also, intentionally duplicate base class definitions per test, so it's easier to copy tests while debugging failures

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206614 91177308-0d34-0410-b5e6-96231b3b80d8
Remove OnDiskHashTable.h, since it's been moved to llvm

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206637 91177308-0d34-0410-b5e6-96231b3b80d8
Teach users of OnDiskHashTable to define hash_value and offset types

This paves the way to making OnDiskHashTable work with hashes that are
not 32 bits wide and to making OnDiskHashTable work very large hash
tables. The LLVM change to use these types is upcoming.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206640 91177308-0d34-0410-b5e6-96231b3b80d8
Don't read CompilerInstance fields that don't exist in ASTUnit

When transferring data from a CompilerInstance in an error path we need
to consider cases where the various fields are uninitialized.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206644 91177308-0d34-0410-b5e6-96231b3b80d8
[Cleanup] Remove a trailing whitespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206657 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Use LLVM's InstrProfReader in -fprofile-instr-use=

Update clang to use the InstrProfReader from LLVM to read
instrumentation based profile data. This also switches us from the
naive text format to the binary format, since that's what's
implemented in the reader.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206658 91177308-0d34-0410-b5e6-96231b3b80d8
Add support for building Sphinx documentation when being inside LLVM source tree and using CMake

Patch by Daniel Liew <daniel.liew@imperial.ac.uk>!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206660 91177308-0d34-0410-b5e6-96231b3b80d8
Fix sphinx-build warnings in clang docs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206661 91177308-0d34-0410-b5e6-96231b3b80d8
Don't build modules with (submodules with) missing headers

Unless they are in submodules that aren't available anyway, due to
requirements not being met.  Also, mark children as unavailable when the
parent is.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206664 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Remove an unused include

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206667 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a hole with nested unavailable submodules from r206664

If a module doesn't meet a requirement, neither do its submodules. If we
don't propogate that, we might think it's an error to be missing a
header in one of those submodules.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206673 91177308-0d34-0410-b5e6-96231b3b80d8
Thread Safety Analysis:  Update SSA pass to handle loops.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206676 91177308-0d34-0410-b5e6-96231b3b80d8
Updating branches/google/testing to r206678

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/google/testing@206691 91177308-0d34-0410-b5e6-96231b3b80d8