CodeGen: Remove a comment that isn't in the right place

This comment also appears elsewhere where it actually makes sense, and
it's just confusing here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206321 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Emit warnings for out of date profile data during PGO

This adds a warning that triggers when profile data doesn't match for
the source that's being compiled with -fprofile-instr-use=. This fires
only once per translation unit, as warning on every mismatched
function would be quite noisy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206322 91177308-0d34-0410-b5e6-96231b3b80d8
[Allocator] Make the ContentCache object actually carry the 8-byte
alignment constraint rather than using the allocator function's over
alignment "feature". This was the only use of the "feature" which I plan
to remove next. =] Attaching the alignment to the type seems cleaner and
more principled anyways.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206324 91177308-0d34-0410-b5e6-96231b3b80d8
Thread Safety Analysis: rewrite SSA pass to use the new SExpr and CFG
traversal system.  The new pass is still undergoing testing; no change in
functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206338 91177308-0d34-0410-b5e6-96231b3b80d8
Format.cpp: Don't use initializer list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206339 91177308-0d34-0410-b5e6-96231b3b80d8
Make -Wabsolute-value C++-aware.

Warn on std::abs() with unsigned argument.
Suggest std::abs as replacement for the C absolute value functions.
Suggest C++ headers if the specific std::abs overload is not found.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206340 91177308-0d34-0410-b5e6-96231b3b80d8
Fix build after r206338

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206341 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed problem with exclude header. The exclude header argument needs to be relative to the module.map file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206342 91177308-0d34-0410-b5e6-96231b3b80d8
threadSafety::CopyOnWriteVector: Use LLVM_DELETED_FUNCTION here due to missing functionality of msc17.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206345 91177308-0d34-0410-b5e6-96231b3b80d8
Reformat.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206346 91177308-0d34-0410-b5e6-96231b3b80d8
threadSafety::SExprBuilder::BlockInfo: Non-static member initializer is unavailable. Use default constructor instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206347 91177308-0d34-0410-b5e6-96231b3b80d8
Lex: Fix __has_feature(cxx_exceptions) for objective C++

At one point, -fexceptions was a synonym for -fcxx-exceptions. While
the driver options still enables cxx-exceptions by default, the cc1
flag is purely about exception tables and this doesn't account for
objective C exceptions. Because of this, checking for the
cxx_exceptions feature in objective C++ often gives the wrong answer.

The cxx_exceptions feature should be based on the -fcxx-exceptions cc1
flag, not -fexceptions. Furthermore, at some point the tests were
changed to use cc1 even though they were testing the driver behaviour.
We're better off testing both the driver and cc1 here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206352 91177308-0d34-0410-b5e6-96231b3b80d8
-Wunreachable-code: refine recognition of unreachable "sigil" to cope with implicit casts in C++.

Fixes <rdar://problem/16631033>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206360 91177308-0d34-0410-b5e6-96231b3b80d8
Re-enable several builtins in non-gnu modes.

This is a partial revert of 183015.
By not recognizing things like _setjmp we lose (returns_twice) attribute on
them, which leads to incorrect code generation.
Fixes PR16138.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206362 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Factor out argument range checks for builtin functions

No behavioural change intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206364 91177308-0d34-0410-b5e6-96231b3b80d8
Hopefully avoid a warning on some GCCs (but not all strangely,
preventing me from seeing it initially). GCC doesn't use the unused
attribute on members for anything, so while it works to suppress Clang's
warning for an unused private member, it adds a GCC warning for the
attribute. =/ Silence Clang's warning with a void cast in the
constructor instead which doesn't trigger any complaints from GCC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206373 91177308-0d34-0410-b5e6-96231b3b80d8
Adding a move constructor (due to CopyOnWriteVector requiring move-only semantics) to appease MSVC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206374 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Add special case to reduce indentaiton in streams.

This is similar to how we treat assignments and seems to be generally
desirable.

Before:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                      aaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                      aaaaaaaaaaaaaaaaaaaaaaaaaaaa);

After:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaa);

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206384 91177308-0d34-0410-b5e6-96231b3b80d8
Minor formatting cleanups -- no functional changes intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206386 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM64] Fix up predefines, including adding big endian support to Targets.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206390 91177308-0d34-0410-b5e6-96231b3b80d8