Revert r205436:

        Extend the SSE2 comment lexing to AVX2. Only 16byte align when not on AVX2.

        This provides some 3% speedup when preprocessing gcc.c as a single file.


The patch is wrong, it always uses SSE2, and when I fix that there's no speedup
at all. I am not sure where the 3% came from previously.

--Thi lie, and those below, will be ignored--

M    Lex/Lexer.cpp


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205548 91177308-0d34-0410-b5e6-96231b3b80d8
-fms-extensions: Error out on #pragma init_seg

By ignoring this pragma with a warning, we're essentially miscompiling
the user's program.  WebKit / Blink use this pragma to disable dynamic
initialization and finalization of some static data, and running the
dtors crashes the program.

Error out for now, so that /fallback compiles the TU correctly with
MSVC.  This pragma should be implemented some time this month, and we
can remove this hack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205554 91177308-0d34-0410-b5e6-96231b3b80d8
vector [Sema]. Check for proper use of 's' char prefix
(which indicates vector expression is a string of hex
values) instead of crashing in code gen. // rdar://16492792


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205557 91177308-0d34-0410-b5e6-96231b3b80d8
Turn off -Wmissing-noreturn warning for blocks 
as there is no way to attach this attribute to the
block literal. // rdar://16274746


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205580 91177308-0d34-0410-b5e6-96231b3b80d8
Put macro redefinition warnings under -Wmacro-redefined

This is consistent with -Wbuiltin-macro-redefined, and puts this common
extension warning under a flag.

Reviewers: rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D3283

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205591 91177308-0d34-0410-b5e6-96231b3b80d8
Add clang-cl alias to allow users to disable c4005

If we ever want three or more aliases, at that point we should put MSVC
warning ids in DiagnosticGroups.td.  We can use that to support #pragma
warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205598 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Don't create branch weight metadata from empty profiles

If all of our weights are zero when calculating branch weights, it
means we haven't profiled the code in question. Avoid creating a
metadata node that says all branches are equally likely in this case.

The test also checks constructs that hit the other createBranchWeights
overload. These were already working.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205606 91177308-0d34-0410-b5e6-96231b3b80d8
Extend -Wtautological-constant-out-of-range-compare to handle boolean values
better.  This warning will now trigger on the following conditionals:

bool b;
int i;

if (b > 1) {}  // always false
if (0 <= (i > 5)) {} // always true
if (-1 > b) {} // always false

Patch by Per Viberg.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205608 91177308-0d34-0410-b5e6-96231b3b80d8
Basic: rename VisualStudio to Windows

Visual Studio is the Integrated Development Environment.  The toolchain is
generally referred to MSVC.  Rename the target information to be more precise as
per the recommendation of Reid Kleckner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205609 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Don't merge simple blocks in case statements.

Before:
  switch (a) {
  case 1: { return 'a'; }
  }

After:
  switch (a) {
  case 1: {
    return 'a';
  }
  }

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205611 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP][C++11] Renamed loop vars properly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205620 91177308-0d34-0410-b5e6-96231b3b80d8
When printing types for the OpenCL kernel metadata, use the PrintingPolicy.

This allows 'half' to be printed as 'half' and not as '__fp16'.

Patch by Fraser Cormack!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205624 91177308-0d34-0410-b5e6-96231b3b80d8
In preparation for being able to use simple Boolean logic expressions involving capabilities, the semantics for attributes now looks through the types of the constituent parts of a capability expression instead of at the aggregate expression type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205629 91177308-0d34-0410-b5e6-96231b3b80d8
Add a test where the module map is overriden in the vfs

Specifically, we pass two -ivfsoverlay yaml files, and the topmost one
remaps the module map file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205632 91177308-0d34-0410-b5e6-96231b3b80d8
Vector [Sema]. Vector "splats" which are truncated should have a warning
with -Wconversion. // rdar://16502418


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205646 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: add target definition for Windows on ARM

This introduces the definitions needed for the Windows on ARM target.  Add
target definitions for both the MSVC environment and the MSVC + Itanium C++ ABI
environment.  The Visual Studio definitions correspond to the definitions
provided by Visual Studio 2012.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205650 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: PR19298: function local const variables duplicated in the root scope

See the comment for CodeGenFunction::tryEmitAsConstant that describes
how in some contexts (lambdas) we must not emit references to the
variable, but instead use the constant directly - because of this we end
up emitting a constant for the variable, as well as emitting the
variable itself.

Should we just skip putting the variable on the stack at all and omit
the debug info for the constant? It's not clear to me - what if the
address of the local is taken?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205651 91177308-0d34-0410-b5e6-96231b3b80d8
Try harder about not suggesting methods as corrections when they
obviously won't work. Specifically, don't suggest methods (static or
not) from unrelated classes when the expression is a method call
through a specific object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205653 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Place global constants in their appropriate context.

We also don't need to duplicate the name in the LinkageName field. Just
leave it empty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205655 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C arc [Sema]. Allow bridge cast of a qualified-id expression
when bridged Objective-C type conforms to the protocols in CF types's
Objective-C class. // rdar://16393330


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