platform/upstream/llvm.git
8 years agoTry to get cl-pch-showincludes passing on AArch64 bots.
Nico Weber [Sun, 13 Mar 2016 22:26:26 +0000 (22:26 +0000)]
Try to get cl-pch-showincludes passing on AArch64 bots.

llvm-svn: 263400

8 years agoRevert "Revert "Update Polly for the removal of PreserveNames from IRBuilder stuff""
Mehdi Amini [Sun, 13 Mar 2016 22:21:43 +0000 (22:21 +0000)]
Revert "Revert "Update Polly for the removal of PreserveNames from IRBuilder stuff""

This reverts commit r263322 and reapplies r263296. The original
r263258 was reapplied in LLVM after being reverted in r263321 due to
issues with Release testing in Clang.

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263399

8 years agoSimplify. NFC.
Rui Ueyama [Sun, 13 Mar 2016 22:08:11 +0000 (22:08 +0000)]
Simplify. NFC.

llvm-svn: 263398

8 years agoRemove uint32_X type.
Rui Ueyama [Sun, 13 Mar 2016 22:02:04 +0000 (22:02 +0000)]
Remove uint32_X type.

This type is equivalent to Elf_Word type.

llvm-svn: 263397

8 years agoRemove some unused variables
David Blaikie [Sun, 13 Mar 2016 22:00:18 +0000 (22:00 +0000)]
Remove some unused variables

llvm-svn: 263396

8 years agoELF: Split initializeSections and add comments.
Rui Ueyama [Sun, 13 Mar 2016 21:52:57 +0000 (21:52 +0000)]
ELF: Split initializeSections and add comments.

llvm-svn: 263395

8 years agoRemove compile time PreserveName in favor of a runtime cc1 -discard-value-names option
Mehdi Amini [Sun, 13 Mar 2016 21:05:23 +0000 (21:05 +0000)]
Remove compile time PreserveName in favor of a runtime cc1 -discard-value-names option

Summary:
This flag is enabled by default in the driver when NDEBUG is set. It
is forwarded on the LLVMContext to discard all value names (but
GlobalValue) for performance purpose.

This an improved version of D18024

Reviewers: echristo, chandlerc

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D18127

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263394

8 years agoRemove PreserveNames template parameter from IRBuilder
Mehdi Amini [Sun, 13 Mar 2016 21:05:13 +0000 (21:05 +0000)]
Remove PreserveNames template parameter from IRBuilder

This reapplies r263258, which was reverted in r263321 because
of issues on Clang side.

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263393

8 years agoRemove `else` after `return`.
Rui Ueyama [Sun, 13 Mar 2016 20:54:38 +0000 (20:54 +0000)]
Remove `else` after `return`.

llvm-svn: 263392

8 years agoSimplify. NFC.
Rui Ueyama [Sun, 13 Mar 2016 20:34:34 +0000 (20:34 +0000)]
Simplify. NFC.

llvm-svn: 263391

8 years agoRemove unused #include.
Rui Ueyama [Sun, 13 Mar 2016 20:28:29 +0000 (20:28 +0000)]
Remove unused #include.

llvm-svn: 263390

8 years agoRemove a local variable. NFC.
Rui Ueyama [Sun, 13 Mar 2016 20:18:12 +0000 (20:18 +0000)]
Remove a local variable. NFC.

llvm-svn: 263389

8 years ago[ELF][MIPS] Use TargetInfo::needsGot call to check necessity of GOT for local symbols...
Simon Atanasyan [Sun, 13 Mar 2016 20:13:24 +0000 (20:13 +0000)]
[ELF][MIPS] Use TargetInfo::needsGot call to check necessity of GOT for local symbols. NFC.

llvm-svn: 263388

8 years agoELF: Add `Rela` member variable to Config.
Rui Ueyama [Sun, 13 Mar 2016 20:10:20 +0000 (20:10 +0000)]
ELF: Add `Rela` member variable to Config.

The member is true if we want to create relocatin sections with RELA
instead of REL.

llvm-svn: 263387

8 years agoELF: Redefine canBeDefined as a member function of SymbolBody.
Rui Ueyama [Sun, 13 Mar 2016 19:48:18 +0000 (19:48 +0000)]
ELF: Redefine canBeDefined as a member function of SymbolBody.

We want to make SymbolBody the central place to query symbol information.
This patch also renames canBePreempted to isPreemptible because I feel that
the latter is slightly better (the former is three words and the latter
is two words.)

llvm-svn: 263386

8 years agoELF: Set e_flags header only when MIPS.
Rui Ueyama [Sun, 13 Mar 2016 19:29:17 +0000 (19:29 +0000)]
ELF: Set e_flags header only when MIPS.

The field is zero by default, so this is NFC.

llvm-svn: 263385

8 years ago[X86][SSE] Added truncated vector arithmetic tests.
Simon Pilgrim [Sun, 13 Mar 2016 19:08:01 +0000 (19:08 +0000)]
[X86][SSE] Added truncated vector arithmetic tests.

For cases where we are truncating an integer vector arithmetic result, it may be better to pre-truncate the input operands - no code to support this yet (scalar is done with SimplifyDemandedBits but adding vector support could be a lot of work) but these tests represent the current codegen status.

Example bugs: PR14666, PR22703

llvm-svn: 263384

8 years ago[X86][SSE41] Avoid variable blend for constant v8i16 shifts
Simon Pilgrim [Sun, 13 Mar 2016 18:35:59 +0000 (18:35 +0000)]
[X86][SSE41] Avoid variable blend for constant v8i16 shifts

The SSE41 v8i16 shift lowering using (v)pblendvb is great for non-constant shift amounts, but if it is constant then we can efficiently reduce the VSELECT to shuffles with the pre-SSE41 lowering.

llvm-svn: 263383

8 years ago[ELF][MIPS] Add elf namespace name to the ObjectFile.
Simon Atanasyan [Sun, 13 Mar 2016 15:48:41 +0000 (15:48 +0000)]
[ELF][MIPS] Add elf namespace name to the ObjectFile.

NFC. Follow-up to r263381.

llvm-svn: 263382

8 years ago[ELF][MIPS] Factor out SumVA adjustments into a couple of separate functions. NFC.
Simon Atanasyan [Sun, 13 Mar 2016 15:37:38 +0000 (15:37 +0000)]
[ELF][MIPS] Factor out SumVA adjustments into a couple of separate functions. NFC.

The patch does not reduce the size of the code but makes
InputSectionBase::relocate cleaner a bit.

Differential Revision: http://reviews.llvm.org/D18119

llvm-svn: 263381

8 years agoAdded test that covers changes in r263379.
Amjad Aboud [Sun, 13 Mar 2016 11:12:57 +0000 (11:12 +0000)]
Added test that covers changes in r263379.

llvm-svn: 263380

8 years agoFixed DIBuilder to verify that same imported entity will not be added twice to the...
Amjad Aboud [Sun, 13 Mar 2016 11:11:39 +0000 (11:11 +0000)]
Fixed DIBuilder to verify that same imported entity will not be added twice to the "imports" list of the DICompileUnit.

Differential Revision: http://reviews.llvm.org/D17884

llvm-svn: 263379

8 years ago[CodeView] Truncate display names
David Majnemer [Sun, 13 Mar 2016 10:53:30 +0000 (10:53 +0000)]
[CodeView] Truncate display names

Fundamentally, the length of a variable or function name is bound by the
maximum size of a record: 0xffff.  However, the name doesn't live in a
vacuum; other data is associated with the name, lowering the bound
further.

We would naively attempt to emit the name, causing us to assert because
the record would no-longer fit in 16-bits.  Instead, truncate the name
but preserve as much as we can.

While I have tested this locally, I've decided to not commit it due to
the test's size.

N.B.  While this behavior is undesirable, it is better than MSVC's
behavior.  They seem to truncate to ~4000 characters.

llvm-svn: 263378

8 years ago[Bitcode] Make writeComdats less strange
David Majnemer [Sun, 13 Mar 2016 08:01:03 +0000 (08:01 +0000)]
[Bitcode] Make writeComdats less strange

It had a weird artificial limitation on the write side: the comdat name
couldn't be bigger than 2**16.  However, the reader had no such
limitation.  Make the reader and the writer agree.

llvm-svn: 263377

8 years agoCosmetic change. NFC.
Rui Ueyama [Sun, 13 Mar 2016 06:50:34 +0000 (06:50 +0000)]
Cosmetic change. NFC.

llvm-svn: 263376

8 years agoMove an OutputSectionBase member function to the top.
Rui Ueyama [Sun, 13 Mar 2016 06:50:33 +0000 (06:50 +0000)]
Move an OutputSectionBase member function to the top.

llvm-svn: 263375

8 years agoConstantFoldInstruction: avoid wasted calls to ConstantFoldConstantExpression
Fiona Glaser [Sun, 13 Mar 2016 05:36:15 +0000 (05:36 +0000)]
ConstantFoldInstruction: avoid wasted calls to ConstantFoldConstantExpression

Check to see if all operands are constant before calling simplify on them
so that we don't perform wasted simplifications.

llvm-svn: 263374

8 years agoSimplify. NFC.
Rui Ueyama [Sun, 13 Mar 2016 05:23:40 +0000 (05:23 +0000)]
Simplify. NFC.

llvm-svn: 263373

8 years agoFix build
Matt Arsenault [Sun, 13 Mar 2016 05:22:08 +0000 (05:22 +0000)]
Fix build

llvm-svn: 263372

8 years agoUpdate for new argument to scalbn
Matt Arsenault [Sun, 13 Mar 2016 05:12:47 +0000 (05:12 +0000)]
Update for new argument to scalbn

llvm-svn: 263371

8 years agoAPFloat: Fix ilogb for denormals
Matt Arsenault [Sun, 13 Mar 2016 05:12:32 +0000 (05:12 +0000)]
APFloat: Fix ilogb for denormals

llvm-svn: 263370

8 years agoAPFloat: Fix scalbn handling of denormals
Matt Arsenault [Sun, 13 Mar 2016 05:11:51 +0000 (05:11 +0000)]
APFloat: Fix scalbn handling of denormals

This was incorrect for denormals, and also failed
on longer exponent ranges.

llvm-svn: 263369

8 years agoUse RelTy instead of Elf_Rel_Impl<ELFT, isRela> for readability.
Rui Ueyama [Sun, 13 Mar 2016 05:06:50 +0000 (05:06 +0000)]
Use RelTy instead of Elf_Rel_Impl<ELFT, isRela> for readability.

llvm-svn: 263368

8 years agoDefine IsRela static const member to Elf_Rel type.
Rui Ueyama [Sun, 13 Mar 2016 04:55:44 +0000 (04:55 +0000)]
Define IsRela static const member to Elf_Rel type.

So that we can write RelTy::IsRela to query its type.

llvm-svn: 263367

8 years agoCosmetic change to reduce repetitions. NFC.
Rui Ueyama [Sun, 13 Mar 2016 04:40:17 +0000 (04:40 +0000)]
Cosmetic change to reduce repetitions. NFC.

llvm-svn: 263366

8 years agoRedefine isGnuIfunc as a member function of SymbolBody.
Rui Ueyama [Sun, 13 Mar 2016 04:40:14 +0000 (04:40 +0000)]
Redefine isGnuIfunc as a member function of SymbolBody.

llvm-svn: 263365

8 years agoBody can never be null in this context.
Rui Ueyama [Sun, 13 Mar 2016 04:40:12 +0000 (04:40 +0000)]
Body can never be null in this context.

Because of the recent commit to allocate SymbolBodies for local symbols.

llvm-svn: 263364

8 years agoRemove dead code.
Rui Ueyama [Sun, 13 Mar 2016 04:25:43 +0000 (04:25 +0000)]
Remove dead code.

llvm-svn: 263363

8 years agoDo not return a bool value from error().
Rui Ueyama [Sun, 13 Mar 2016 04:25:41 +0000 (04:25 +0000)]
Do not return a bool value from error().

error returned true if there was an error. This allows us to replace
the code like this

  if (EC) {
    error(EC, "something failed");
    return;
  }

with

  if (error(EC, "something failed"))
    return;

I thought that that was a good idea, but it turned out that we only
have two places to use this pattern. So this patch removes that feature.

llvm-svn: 263362

8 years agoThe difference of getBss() and Out<ELFT>::Bss is subtle, so remove that function.
Rui Ueyama [Sun, 13 Mar 2016 04:11:53 +0000 (04:11 +0000)]
The difference of getBss() and Out<ELFT>::Bss is subtle, so remove that function.

llvm-svn: 263361

8 years agoSplit addCopyRelSymbols. NFC.
Rui Ueyama [Sun, 13 Mar 2016 04:05:42 +0000 (04:05 +0000)]
Split addCopyRelSymbols. NFC.

llvm-svn: 263360

8 years agoRemove redundant check.
Rui Ueyama [Sun, 13 Mar 2016 03:43:32 +0000 (03:43 +0000)]
Remove redundant check.

The control reaches here only when linking MIPS binaries.

llvm-svn: 263359

8 years agoFix spelling.
Rui Ueyama [Sun, 13 Mar 2016 03:17:44 +0000 (03:17 +0000)]
Fix spelling.

llvm-svn: 263358

8 years ago"Windows" is a product name, so it should be spelled correctly.
Rui Ueyama [Sun, 13 Mar 2016 03:17:42 +0000 (03:17 +0000)]
"Windows" is a product name, so it should be spelled correctly.

llvm-svn: 263357

8 years agoSimplify findMipsPairedReloc function signature. NFC.
Rui Ueyama [Sun, 13 Mar 2016 03:09:40 +0000 (03:09 +0000)]
Simplify findMipsPairedReloc function signature. NFC.

llvm-svn: 263356

8 years agoAlso test that the pch file is not printed in /showIncludes
Nico Weber [Sun, 13 Mar 2016 03:04:46 +0000 (03:04 +0000)]
Also test that the pch file is not printed in /showIncludes

llvm-svn: 263355

8 years ago[X86] Remove many operands that represent memory stores from outs to ins. These opera...
Craig Topper [Sun, 13 Mar 2016 02:56:31 +0000 (02:56 +0000)]
[X86] Remove many operands that represent memory stores from outs to ins. These operands are the registers and immediates that specify the memory address not the memory itself thus they are inputs.

llvm-svn: 263354

8 years agoMake test a bit stricter to check not just the file basename is printed.
Nico Weber [Sun, 13 Mar 2016 02:48:51 +0000 (02:48 +0000)]
Make test a bit stricter to check not just the file basename is printed.

llvm-svn: 263353

8 years agoclang-cl: Add /Yc argument to /showIncludes output.
Nico Weber [Sun, 13 Mar 2016 02:44:13 +0000 (02:44 +0000)]
clang-cl: Add /Yc argument to /showIncludes output.

To make this work, delay printing of ExtraDeps in HeaderIncludesCallback a bit,
so that it happens after CompilerInstance::InitializeSourceManager() has run.

General /FI arguments are still missing from /showIncludes output, this still
needs to be fixed.

llvm-svn: 263352

8 years agoELF: Include the build ID section in the first page.
Rui Ueyama [Sun, 13 Mar 2016 01:54:48 +0000 (01:54 +0000)]
ELF: Include the build ID section in the first page.

At least Linux has the kernel configuration to include the first page
of the executable into core files. We want build ID section to be
included in core files to identify them.

Here is the link to the description about the kernel configuration.

https://github.com/torvalds/linux/blob/097f70b3c4d84ffccca15195bdfde3a37c0a7c0f/fs/Kconfig.binfmt#L46

llvm-svn: 263351

8 years agoAdd echo test for constant data arrays in the LLVM C API
Amaury Sechet [Sun, 13 Mar 2016 00:58:25 +0000 (00:58 +0000)]
Add echo test for constant data arrays in the LLVM C API

llvm-svn: 263350

8 years agoUse templated version of unwrap instead of cats in the Core.cpp. NFC
Amaury Sechet [Sun, 13 Mar 2016 00:54:40 +0000 (00:54 +0000)]
Use templated version of unwrap instead of cats in the Core.cpp. NFC

llvm-svn: 263349

8 years agoMove LLVMConstStructInContext so that declarationa nd definition order match. NFC
Amaury Sechet [Sun, 13 Mar 2016 00:40:12 +0000 (00:40 +0000)]
Move LLVMConstStructInContext so that declarationa nd definition order match. NFC

llvm-svn: 263348

8 years agoupdate test to use FileCheck
Sanjay Patel [Sat, 12 Mar 2016 21:09:26 +0000 (21:09 +0000)]
update test to use FileCheck

llvm-svn: 263347

8 years agofix documentation comments; NFC
Sanjay Patel [Sat, 12 Mar 2016 20:44:58 +0000 (20:44 +0000)]
fix documentation comments; NFC

llvm-svn: 263346

8 years agofix documentation comments; NFC
Sanjay Patel [Sat, 12 Mar 2016 20:44:30 +0000 (20:44 +0000)]
fix documentation comments; NFC

llvm-svn: 263345

8 years agoclang-cl: Add a test for the interaction of /Yc and /showIncludes.
Nico Weber [Sat, 12 Mar 2016 19:55:59 +0000 (19:55 +0000)]
clang-cl: Add a test for the interaction of /Yc and /showIncludes.

We almost get this right, but not completely (see FIXME).  It looks like /FI
headers generally aren't included in /showIncludes yet, but they should be.
But it seems good to have test coverage for the bits that already work.

llvm-svn: 263344

8 years agoremove unnecessary cast; NFC
Sanjay Patel [Sat, 12 Mar 2016 18:17:41 +0000 (18:17 +0000)]
remove unnecessary cast; NFC

llvm-svn: 263343

8 years agofix formatting; NFC
Sanjay Patel [Sat, 12 Mar 2016 18:05:53 +0000 (18:05 +0000)]
fix formatting; NFC

llvm-svn: 263342

8 years agouse range loops; NFCI
Sanjay Patel [Sat, 12 Mar 2016 16:52:17 +0000 (16:52 +0000)]
use range loops; NFCI

llvm-svn: 263341

8 years ago[x86, InstCombine] delete x86 SSE2 masked store with zero mask
Sanjay Patel [Sat, 12 Mar 2016 15:16:59 +0000 (15:16 +0000)]
[x86, InstCombine] delete x86 SSE2 masked store with zero mask

This follows up on the related AVX instruction transforms, but this
one is too strange to do anything more with. Intel's behavioral
description of this instruction in its Software Developer's Manual
is tragi-comic.

llvm-svn: 263340

8 years ago[ELF][MIPS] Put type of symbol (local/global) to the findMipsPairedReloc and call...
Simon Atanasyan [Sat, 12 Mar 2016 11:58:15 +0000 (11:58 +0000)]
[ELF][MIPS] Put type of symbol (local/global) to the findMipsPairedReloc and call it from the single place. NFC.

llvm-svn: 263339

8 years agoFix for PR 26378
Nemanja Ivanovic [Sat, 12 Mar 2016 10:23:07 +0000 (10:23 +0000)]
Fix for PR 26378

This patch corresponds to review:
http://reviews.llvm.org/D17712

We were not clearing the TOC vector in PPCAsmPrinter when initializing it. This
caused duplicate definition asserts when the pass is reused on the module
(i.e. with -compile-twice or in JIT contexts).

llvm-svn: 263338

8 years agoRecommit of r263252, [ELF] - Change all messages to lowercase to be consistent.
George Rimar [Sat, 12 Mar 2016 08:31:34 +0000 (08:31 +0000)]
Recommit of r263252, [ELF] - Change all messages to lowercase to be consistent.

which was reverted because included
unrelative changes by mistake.

Original commit message:

[ELF] - Change all messages to lowercase to be consistent.

That is directly opposite to http://reviews.llvm.org/D18045,
which was reverted.

This patch changes all messages to start from lowercase letter if
they were not before.

That is done to be consistent with clang.

Differential revision: http://reviews.llvm.org/D18085

llvm-svn: 263337

8 years agoUpdate the documents of the new LLD.
Rui Ueyama [Sat, 12 Mar 2016 06:06:40 +0000 (06:06 +0000)]
Update the documents of the new LLD.

This patch merges the documents for ELF and COFF into one
and puts it into docs directory.

llvm-svn: 263336

8 years agoUse default destructor and remove unnecessary virtual destructor
Teresa Johnson [Sat, 12 Mar 2016 05:38:22 +0000 (05:38 +0000)]
Use default destructor and remove unnecessary virtual destructor

Only the virtual destructor in the base class is needed, and can use the
default.

llvm-svn: 263335

8 years agoLet's not convert from UINT32_MAX to the std::numeric_limits version.
Jim Ingham [Sat, 12 Mar 2016 03:33:36 +0000 (03:33 +0000)]
Let's not convert from UINT32_MAX to the std::numeric_limits version.

llvm-svn: 263333

8 years ago[libFuzzer] refresh docs more
Kostya Serebryany [Sat, 12 Mar 2016 03:23:02 +0000 (03:23 +0000)]
[libFuzzer] refresh docs more

llvm-svn: 263332

8 years ago[libFuzzer] refresh docs more
Kostya Serebryany [Sat, 12 Mar 2016 03:11:27 +0000 (03:11 +0000)]
[libFuzzer] refresh docs more

llvm-svn: 263331

8 years ago[libFuzzer] refresh docs more
Kostya Serebryany [Sat, 12 Mar 2016 03:05:37 +0000 (03:05 +0000)]
[libFuzzer] refresh docs more

llvm-svn: 263330

8 years ago[lit] Hack lit to allow a test suite to request that it is run "early".
Chandler Carruth [Sat, 12 Mar 2016 03:03:31 +0000 (03:03 +0000)]
[lit] Hack lit to allow a test suite to request that it is run "early".

This lets us for example start running the unit test suite early. For
'check-llvm' on my machine, this drops the tim e from 44s to 32s!!!!!

It's pretty ugly. I barely know how to write Python, so feel free to
just tell me how I should write it instead. =D Thanks to Filipe and
others for help.

Differential Revision: http://reviews.llvm.org/D18089

llvm-svn: 263329

8 years ago[libFuzzer] refresh docs
Kostya Serebryany [Sat, 12 Mar 2016 02:56:25 +0000 (02:56 +0000)]
[libFuzzer] refresh docs

llvm-svn: 263328

8 years agoMake gc relocates more strongly typed; NFC
Sanjoy Das [Sat, 12 Mar 2016 02:54:27 +0000 (02:54 +0000)]
Make gc relocates more strongly typed; NFC

Don't use a `Value *` where we can use a stronger `GCRelocateInst *`
type.

llvm-svn: 263327

8 years agoThis change introduces a "ExpressionExecutionThread" to the ThreadList.
Jim Ingham [Sat, 12 Mar 2016 02:45:34 +0000 (02:45 +0000)]
This change introduces a "ExpressionExecutionThread" to the ThreadList.

Turns out that most of the code that runs expressions (e.g. the ObjC runtime grubber) on
behalf of the expression parser was using the currently selected thread.  But sometimes,
e.g. when we are evaluating breakpoint conditions/commands, we don't select the thread
we're running on, we instead set the context for the interpreter, and explicitly pass
that to other callers.  That wasn't getting communicated to these utility expressions, so
they would run on some other thread instead, and that could cause a variety of subtle and
hard to reproduce problems.

I also went through the commands and cleaned up the use of GetSelectedThread.  All those
uses should have been trying the thread in the m_exe_ctx belonging to the command object
first.  It would actually have been pretty hard to get misbehavior in these cases, but for
correctness sake it is good to make this usage consistent.

<rdar://problem/24978569>

llvm-svn: 263326

8 years ago[X86] Make sure we do not clobber RBX with cmpxchg when used as a base pointer.
Quentin Colombet [Sat, 12 Mar 2016 02:25:27 +0000 (02:25 +0000)]
[X86] Make sure we do not clobber RBX with cmpxchg when used as a base pointer.

cmpxchg[8|16]b uses RBX as one of its argument.
In other words, using this instruction clobbers RBX as it is defined to hold one
the input. When the backend uses dynamically allocated stack, RBX is used as a
reserved register for the base pointer.

Reserved registers have special semantic that only the target understands and
enforces, because of that, the register allocator don’t use them, but also,
don’t try to make sure they are used properly (remember it does not know how
they are supposed to be used).

Therefore, when RBX is used as a reserved register but defined by something that
is not compatible with that use, the register allocator will not fix the
surrounding code to make sure it gets saved and restored properly around the
broken code. This is the responsibility of the target to do the right thing with
its reserved register.

To fix that, when the base pointer needs to be preserved, we use a different
pseudo instruction for cmpxchg that save rbx.
That pseudo takes two more arguments than the regular instruction:
- One is the value to be copied into RBX to set the proper value for the
  comparison.
- The other is the virtual register holding the save of the value of RBX as the
  base pointer. This saving is done as part of isel (i.e., we emit a copy from
  rbx).

cmpxchg_save_rbx <regular cmpxchg args>, input_for_rbx_reg, save_of_rbx_as_bp

This gets expanded into:
rbx = copy input_for_rbx_reg
cmpxchg <regular cmpxchg args>
rbx = save_of_rbx_as_bp

Note: The actual modeling of the pseudo is a bit more complicated to make sure
the interferes that appears after the pseudo gets expanded are properly modeled
before that expansion.

This fixes PR26883.

llvm-svn: 263325

8 years agoFix bad regression from r263077 when building with MSVC.
Nico Weber [Sat, 12 Mar 2016 01:57:31 +0000 (01:57 +0000)]
Fix bad regression from r263077 when building with MSVC.

That change did:

  -#if defined(__BIG_ENDIAN__)
  +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__

If __BYTE_ORDER__ and __ORDER_BIG_ENDIAN__ aren't defined, like
they are with MSVC, this condition is true (0 == 0).

Fixes PR26919.

llvm-svn: 263324

8 years ago[libFuzzer] try to use max_len based on the items of the corpus instead of blindly...
Kostya Serebryany [Sat, 12 Mar 2016 01:57:04 +0000 (01:57 +0000)]
[libFuzzer] try to use max_len based on the items of the corpus instead of blindly defaulting to 64 bytes.

llvm-svn: 263323

8 years agoRevert "Update Polly for the removal of PreserveNames from IRBuilder stuff"
David Blaikie [Sat, 12 Mar 2016 01:53:28 +0000 (01:53 +0000)]
Revert "Update Polly for the removal of PreserveNames from IRBuilder stuff"

The original r263258 was reverted in r263321 due to issues with Release
testing.

This reverts commit r263296.

llvm-svn: 263322

8 years agoTemporarily revert:
Eric Christopher [Sat, 12 Mar 2016 01:47:22 +0000 (01:47 +0000)]
Temporarily revert:

commit ae14bf6488e8441f0f6d74f00455555f6f3943ac
Author: Mehdi Amini <mehdi.amini@apple.com>
Date:   Fri Mar 11 17:15:50 2016 +0000

    Remove PreserveNames template parameter from IRBuilder

    Summary:
    Following r263086, we are now relying on a flag on the Context to
    discard Value names in release builds.

    Reviewers: chandlerc

    Subscribers: mzolotukhin, llvm-commits

    Differential Revision: http://reviews.llvm.org/D18023

    From: Mehdi Amini <mehdi.amini@apple.com>

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

until we can figure out what to do about clang and Release build testing.

This reverts commit 263258.

llvm-svn: 263321

8 years agoTemporarily revert these patches:
Eric Christopher [Sat, 12 Mar 2016 01:47:11 +0000 (01:47 +0000)]
Temporarily revert these patches:

commit 60d9845f6a037122d9be9a6d92d4de617ef45b04
Author: Mehdi Amini <mehdi.amini@apple.com>
Date:   Fri Mar 11 18:48:02 2016 +0000

    Fix clang crash: when CodeGenAction is initialized without a
    context, use the member and not the parameter

    From: Mehdi Amini <mehdi.amini@apple.com>

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

commit af7ce3bf04a75ad5124b457b805df26006bd215b
Author: Mehdi Amini <mehdi.amini@apple.com>
Date:   Fri Mar 11 17:32:58 2016 +0000

    Fix build: use -> with pointers and not .

    Silly typo.

    From: Mehdi Amini <mehdi.amini@apple.com>

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

commit d0eea119192814954e7368c77d0dc5a9eeec1fbb
Author: Mehdi Amini <mehdi.amini@apple.com>
Date:   Fri Mar 11 17:15:44 2016 +0000

    Remove compile time PreserveName switch based on NDEBUG

    Summary:
    Following r263086, we are now relying on a flag on the Context to
    discard Value names in release builds.

    Reviewers: chandlerc

    Subscribers: cfe-commits

    Differential Revision: http://reviews.llvm.org/D18024

    From: Mehdi Amini <mehdi.amini@apple.com>

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

until we can fix the Release builds.

This reverts commits 263257, 263267, 263273

llvm-svn: 263320

8 years agoAdd Lanai.def to the module map.
Eric Christopher [Sat, 12 Mar 2016 01:31:53 +0000 (01:31 +0000)]
Add Lanai.def to the module map.

llvm-svn: 263319

8 years ago[LoopUnroll] Convert some existing tests to unit-tests.
Michael Zolotukhin [Sat, 12 Mar 2016 01:28:56 +0000 (01:28 +0000)]
[LoopUnroll] Convert some existing tests to unit-tests.

Summary: As we now have unit-tests for UnrollAnalyzer, we can convert some existing tests to this format. It should make the tests more robust.

Reviewers: chandlerc, sanjoy

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D17904

llvm-svn: 263318

8 years agoFix a memory leak due to missing virtual destructors
Teresa Johnson [Sat, 12 Mar 2016 01:23:57 +0000 (01:23 +0000)]
Fix a memory leak due to missing virtual destructors

Caused a couple of sanitizer bot failures in ThinLTO tests due to
r263275.

llvm-svn: 263317

8 years agoInitialize two variables in kmp_tasking.
Samuel Antao [Sat, 12 Mar 2016 00:55:17 +0000 (00:55 +0000)]
Initialize two variables in kmp_tasking.

Summary:
Two initialized local variables are causing clang to produce warnings:

```
./src/projects/openmp/runtime/src/kmp_tasking.c:3019:5: error: variable 'num_tasks' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
    default:
    ^~~~~~~
./src/projects/openmp/runtime/src/kmp_tasking.c:3027:21: note: uninitialized use occurs here
    for( i = 0; i < num_tasks; ++i ) {
                    ^~~~~~~~~
./src/projects/openmp/runtime/src/kmp_tasking.c:2968:28: note: initialize the variable 'num_tasks' to silence this warning
    kmp_uint64 i, num_tasks, extras;
                           ^
                            = 0
./src/projects/openmp/runtime/src/kmp_tasking.c:3019:5: error: variable 'extras' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
    default:
    ^~~~~~~
./src/projects/openmp/runtime/src/kmp_tasking.c:3022:52: note: uninitialized use occurs here
    KMP_DEBUG_ASSERT(tc == num_tasks * grainsize + extras);
                                                   ^~~~~~
./src/projects/openmp/runtime/src/kmp_debug.h:62:60: note: expanded from macro 'KMP_DEBUG_ASSERT'
        #define KMP_DEBUG_ASSERT( cond )       KMP_ASSERT( cond )
                                                           ^
./src/projects/openmp/runtime/src/kmp_debug.h:60:51: note: expanded from macro 'KMP_ASSERT'
        #define KMP_ASSERT( cond )             ( (cond) ? 0 : __kmp_debug_assert( #cond, __FILE__, __LINE__ ) )
                                                  ^
./src/projects/openmp/runtime/src/kmp_tasking.c:2968:36: note: initialize the variable 'extras' to silence this warning
    kmp_uint64 i, num_tasks, extras;
                                   ^
                                    = 0
2 errors generated.
```

This patch initializes these two variables.

Reviewers: tlwilmar, jlpeyton

Subscribers: tlwilmar, openmp-commits

Differential Revision: http://reviews.llvm.org/D17909

llvm-svn: 263316

8 years agoUpdating source languages entry in FAQ.
Wilfred Hughes [Sat, 12 Mar 2016 00:43:26 +0000 (00:43 +0000)]
Updating source languages entry in FAQ.

Dragonegg is no longer actively maintained[1], and the Pypy team is not
actively pursuing LLVM[2].

1: http://reviews.llvm.org/D9331
2: http://rpython.readthedocs.org/en/latest/faq.html#could-we-use-llvm
llvm-svn: 263314

8 years agoFix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other...
Eugene Zelenko [Sat, 12 Mar 2016 00:31:13 +0000 (00:31 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.

llvm-svn: 263312

8 years agoDisable a test that started failing recently; see PR26919.
Nico Weber [Sat, 12 Mar 2016 00:23:33 +0000 (00:23 +0000)]
Disable a test that started failing recently; see PR26919.

llvm-svn: 263311

8 years agoDisable CFI checks in std::addressof.
Evgeniy Stepanov [Fri, 11 Mar 2016 23:50:57 +0000 (23:50 +0000)]
Disable CFI checks in std::addressof.

std::addressof may be used on a storage of an object before the start
of its lifetime (see std::allocate_shared for example). CFI flags the
C-style cast as invalid in that case.

llvm-svn: 263310

8 years agoFix the docs I broke
Chris Matthews [Fri, 11 Mar 2016 23:31:02 +0000 (23:31 +0000)]
Fix the docs I broke

llvm-svn: 263309

8 years ago[sancov] using md5 for anchors in attempt to reduce file size.
Mike Aizatsky [Fri, 11 Mar 2016 23:28:28 +0000 (23:28 +0000)]
[sancov] using md5 for anchors in attempt to reduce file size.

Differential Revision: http://reviews.llvm.org/D18102

llvm-svn: 263308

8 years agoDon't crash sancov if file is unreadable.
Mike Aizatsky [Fri, 11 Mar 2016 23:26:41 +0000 (23:26 +0000)]
Don't crash sancov if file is unreadable.

Summary:
Caller can provides the list of .so files where some files are
unreadable (e.g linux-vdso.so.1). It's more convenient to handler this in
sancov with warning then making all callers to check files.

Reviewers: aizatsky

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D18103

llvm-svn: 263307

8 years agoExtend test-suite docs to describe how to run test-suite with cmake+lit
Chris Matthews [Fri, 11 Mar 2016 22:33:36 +0000 (22:33 +0000)]
Extend test-suite docs to describe how to run test-suite with cmake+lit

llvm-svn: 263305

8 years agoMinor cleanup and documentation to IRMover (NFC)
Mehdi Amini [Fri, 11 Mar 2016 22:19:06 +0000 (22:19 +0000)]
Minor cleanup and documentation to IRMover (NFC)

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263304

8 years ago[X86][SSE] Simplify vector LOAD + EXTEND on pre-SSE41 hardware
Simon Pilgrim [Fri, 11 Mar 2016 22:18:05 +0000 (22:18 +0000)]
[X86][SSE] Simplify vector LOAD + EXTEND on pre-SSE41 hardware

Improve vector extension of vectors on hardware without dedicated VSEXT/VZEXT instructions.

We already convert these to SIGN_EXTEND_VECTOR_INREG/ZERO_EXTEND_VECTOR_INREG but can further improve this by using the legalizer instead of prematurely splitting into legal vectors in the combine as this only properly helps for lowering to VSEXT/VZEXT.

Removes a lot of unnecessary any_extend + mask pattern - (Fix for PR25718).

Differential Revision: http://reviews.llvm.org/D17932

llvm-svn: 263303

8 years agoMake functions in altivec.h be __inline__. As they are all also marked
Daniel Jasper [Fri, 11 Mar 2016 22:13:28 +0000 (22:13 +0000)]
Make functions in altivec.h be __inline__. As they are all also marked
__always_inline__, this has likely been meant from the start.

Review: http://reviews.llvm.org/D18015
llvm-svn: 263302

8 years ago[AArch64] Don't blindly lower f16/f128 FCCMPs.
Ahmed Bougacha [Fri, 11 Mar 2016 22:02:58 +0000 (22:02 +0000)]
[AArch64] Don't blindly lower f16/f128 FCCMPs.

Instead, extend f16 (like we do when lowering a standalone SETCC),
and let f128 be legalized to the RT calls.

Fixes PR26803.

llvm-svn: 263301

8 years agoFix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other...
Eugene Zelenko [Fri, 11 Mar 2016 21:55:47 +0000 (21:55 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.

llvm-svn: 263300

8 years agoAdd fix-it for format-security warnings.
Bob Wilson [Fri, 11 Mar 2016 21:55:37 +0000 (21:55 +0000)]
Add fix-it for format-security warnings.

llvm-svn: 263299

8 years agoInitialize CalleeInfo to fix bot after r263275
Teresa Johnson [Fri, 11 Mar 2016 21:34:45 +0000 (21:34 +0000)]
Initialize CalleeInfo to fix bot after r263275

Hopefully will fix garbage output in
http://lab.llvm.org:8011/builders/clang-x86-win2008-selfhost/builds/6901

llvm-svn: 263297

8 years agoUpdate Polly for the removal of PreserveNames from IRBuilder stuff
David Blaikie [Fri, 11 Mar 2016 21:33:58 +0000 (21:33 +0000)]
Update Polly for the removal of PreserveNames from IRBuilder stuff

llvm-svn: 263296