Update the copyright credits -- Happy new year 2014!

FIXME: Dragonegg may be updated at non-trivial changes.
Remove extra semicolon.
Second attempt at Removing special form of AddRegFrm used by FP instructions. These instructions can be handled by MRMXr instead.
AVX-512: Added intrinsics for vcvt, vcvtt, vrndscale, vcmp
Printing rounding control.
Enncoding for EVEX_RC (rounding control).
Remove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really more like OrRegFrm so we don't need a difference since we can just mask bits.
X86Disassembler.cpp: Prune stray @return on translateFPRegister(). [-Wdocumentation]
[SparcV9]: Use SRL instead of SLL to clear top 32-bits in ctpop:i32. SLL does not clear top 32 bit, only SRL does.
[SparcV9]: Custom lower UMULO/SMULO so that the arguments are send to __multi3() in correct order.
Remove modifierType/Base from X86 disassembler tables as they are no longer used. Removes ~11.5K from static tables.
[Sparc] Handle atomic loads/stores in sparc backend.
Remove the 's' DataLayout specification

During the years there have been some attempts at figuring out how to
align byval arguments. A look at the commit log suggests that they
were

* Use the ABI alignment.
* When that was not sufficient for x86-64, I added the 's' specification to
  DataLayout.
* When that was not sufficient Evan added the virtual getByValTypeAlignment.
* When even that was not sufficient, we just got the FE to add the alignment
  to the byval.

This patch is just a simple cleanup that removes my first attempt at fixing the
problem. I also added an AArch64 implementation of getByValTypeAlignment to
make sure this patch is a nop. I also left the 's' parsing for backward
compatibility.

I will send a short email to llvmdev about the change for anyone maintaining
an out of tree target.
Rename 'assert' to something less loaded in CompileAssertHasType

Suggested by Aaron Ballman.
BasicAA: Fix value equality and phi cycles

When there are cycles in the value graph we have to be careful interpreting
"Value*" identity as "value" equivalence. We interpret the value of a phi node
as the value of its operands.
When we check for value equivalence now we make sure that the "Value*" dominates
all cycles (phis).

%0 = phi [%noaliasval, %addr2]
%l = load %ptr
%addr1 = gep @a, 0, %l
%addr2 = gep @a, 0, (%l + 1)
store %ptr ...

Before this patch we would return NoAlias for (%0, %addr1) which is wrong
because the value of the load is from different iterations of the loop.

Tested on x86_64 -mavx at O3 and O3 -flto with no performance or compile time
regressions.

PR18068
radar://15653794
Remove unused function argument.
Support LLVM_STATIC_ASSERT() in clang pre-C++11 mode
[OpenCL] The kernel attribute can only be used on functions.
Make the ARM ABI selectable via SubtargetFeature.

This patch makes it possible to select the ABI with -mattr. It will be used to
forward clang's -target-abi option to llvm's CodeGen.
Pass the aapcs and apcs features down to llvm.

No functionality change, but unblocks asserting that llvm's and clang's
datalayout strings are the same.
Remove the now unused 's' specifications.
Verify that clang TargetInfo descriptions match DataLayout strings from LLVM

The backend string is only verified when available as it's possible to run
clang IRGen for targets that haven't been built or don't exist in LLVM.