platform/upstream/llvm.git
9 years agoRegisterCoalescer: Don't rematerialize subregister definitions.
Matthias Braun [Mon, 16 Feb 2015 22:05:17 +0000 (22:05 +0000)]
RegisterCoalescer: Don't rematerialize subregister definitions.

We cannot simply rematerialize instructions which only defining a
subregister, as the final value also depends on the previous
instructions.

This fixes test/CodeGen/R600/subreg-coalescer-bug.ll with subreg
liveness enabled.

llvm-svn: 229444

9 years agoRegisterCoalescer: Do not look for regclass of IMPLICIT_DEF.
Matthias Braun [Mon, 16 Feb 2015 22:05:12 +0000 (22:05 +0000)]
RegisterCoalescer: Do not look for regclass of IMPLICIT_DEF.

IMPLICIT_DEF is a generic instruction and has no (fixed) output register
class defined. The rematerialization code of the register coalescer
should not scan the instruction description for a register class.

This fixes a problem showing up in
test/CodeGen/R600/subreg-coalescer-crash.ll with subregister liveness
enabled.

llvm-svn: 229443

9 years ago[Mips] Read GP0 value from .MIPS.options section
Simon Atanasyan [Mon, 16 Feb 2015 21:52:43 +0000 (21:52 +0000)]
[Mips] Read GP0 value from .MIPS.options section

llvm-svn: 229442

9 years ago[Mips] Show error if MIPS_REGINFO section has invalid size
Simon Atanasyan [Mon, 16 Feb 2015 21:52:35 +0000 (21:52 +0000)]
[Mips] Show error if MIPS_REGINFO section has invalid size

llvm-svn: 229441

9 years ago[Mips] Factor out the code to search section by type and flags into the
Simon Atanasyan [Mon, 16 Feb 2015 21:52:27 +0000 (21:52 +0000)]
[Mips] Factor out the code to search section by type and flags into the
separate functions

No functional changes.

llvm-svn: 229440

9 years ago[X86][SSE] Add SSE MOVQ instructions to SSEPackedInt domain
Simon Pilgrim [Mon, 16 Feb 2015 21:50:56 +0000 (21:50 +0000)]
[X86][SSE] Add SSE MOVQ instructions to SSEPackedInt domain

Patch to explicitly add the SSE MOVQ (rr,mr,rm) instructions to SSEPackedInt domain - prevents a number of costly domain switches.

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

llvm-svn: 229439

9 years agoSelectionDAG: fold (fp_to_u/sint (s/uint_to_fp)) here too
Mehdi Amini [Mon, 16 Feb 2015 21:47:58 +0000 (21:47 +0000)]
SelectionDAG: fold (fp_to_u/sint (s/uint_to_fp)) here too

Update SPARC tests to match.

From: Fiona Glaser <fglaser@apple.com>
llvm-svn: 229438

9 years agoInstCombine: fold more cases of (fp_to_u/sint (u/sint_to_fp val))
Mehdi Amini [Mon, 16 Feb 2015 21:47:54 +0000 (21:47 +0000)]
InstCombine: fold more cases of (fp_to_u/sint (u/sint_to_fp val))

Fixes radar 15486701.

From: Fiona Glaser <fglaser@apple.com>
llvm-svn: 229437

9 years agoTests: reformat sitofp.ll and use FileCheck
Mehdi Amini [Mon, 16 Feb 2015 21:47:50 +0000 (21:47 +0000)]
Tests: reformat sitofp.ll and use FileCheck

From: Fiona Glaser <fglaser@apple.com>
llvm-svn: 229436

9 years ago[X86] Remove completely unnecessary switch statement.
Craig Topper [Mon, 16 Feb 2015 21:30:08 +0000 (21:30 +0000)]
[X86] Remove completely unnecessary switch statement.

llvm-svn: 229435

9 years agoInstrProf: Update for LLVM API change
Justin Bogner [Mon, 16 Feb 2015 21:29:05 +0000 (21:29 +0000)]
InstrProf: Update for LLVM API change

Update for the API change in r229433

llvm-svn: 229434

9 years agoInstrProf: Use ErrorOr for IndexedInstrProfReader::create (NFC)
Justin Bogner [Mon, 16 Feb 2015 21:28:58 +0000 (21:28 +0000)]
InstrProf: Use ErrorOr for IndexedInstrProfReader::create (NFC)

The other InstrProfReader::create factories were updated to return
ErrorOr in r221120, and it's odd for these APIs not to match.

llvm-svn: 229433

9 years agoFix typo in comment.
Nico Weber [Mon, 16 Feb 2015 21:21:12 +0000 (21:21 +0000)]
Fix typo in comment.

llvm-svn: 229432

9 years ago[X86] Remove the multiply by 8 that goes into the shift constant for X86ISD::VSHLDQ...
Craig Topper [Mon, 16 Feb 2015 20:52:07 +0000 (20:52 +0000)]
[X86] Remove the multiply by 8 that goes into the shift constant for X86ISD::VSHLDQ and X86ISD::VSRLDQ. This simplifies the pattern matching in isel and allows these nodes to become the patterns embedded in the instruction.

llvm-svn: 229431

9 years ago[X86] Remove x86.avx2.psll.dq.bs and x86.avx2.psrl.dq.bs intrinsics.
Craig Topper [Mon, 16 Feb 2015 20:51:59 +0000 (20:51 +0000)]
[X86] Remove x86.avx2.psll.dq.bs and x86.avx2.psrl.dq.bs intrinsics.

llvm-svn: 229430

9 years agoASTMatchers: Make TypeList a variadic template and remove the implicit flattening...
Benjamin Kramer [Mon, 16 Feb 2015 20:37:00 +0000 (20:37 +0000)]
ASTMatchers: Make TypeList a variadic template and remove the implicit flattening of TypeLists.

Building trees of TypeLists is no longer necessary.

llvm-svn: 229429

9 years agoEnhance printing SizeOfPackExpr in dump.
Serge Pavlov [Mon, 16 Feb 2015 19:58:41 +0000 (19:58 +0000)]
Enhance printing SizeOfPackExpr in dump.

llvm-svn: 229428

9 years agoDo not add -fno-exceptions without -funwind-tables
Sergey Dmitrouk [Mon, 16 Feb 2015 19:51:06 +0000 (19:51 +0000)]
Do not add -fno-exceptions without -funwind-tables

Adding just -fno-exceptions breaks libunwind in quite mysterious way
when it's there, but exception handling doesn't work because of dummy
unwind tables.

Also as using exceptions implies references to symbols defined in
libcxx, abort build of libcxxabi as shared library if we have to keep
exceptions (when compiler supports -fno-exceptions, but not
-funwind-tables; one example would be a cross-compiler, in which case
testing for -funwind-tables flag by CMake actually requires libunwind to
be available before it's built).

llvm-svn: 229427

9 years agoMSVC no longer requires the explicit cast operation to obtain a function pointer...
Aaron Ballman [Mon, 16 Feb 2015 19:38:52 +0000 (19:38 +0000)]
MSVC no longer requires the explicit cast operation to obtain a function pointer from this capture-less lambda. NFC.

llvm-svn: 229426

9 years agoARM: Transfer kill flag when lowering VSTMQIA to VSTMDIA.
Matthias Braun [Mon, 16 Feb 2015 19:34:30 +0000 (19:34 +0000)]
ARM: Transfer kill flag when lowering VSTMQIA to VSTMDIA.

llvm-svn: 229425

9 years agoRegisterCoalescer: Improve previous fix for wrong def after.
Matthias Braun [Mon, 16 Feb 2015 19:34:27 +0000 (19:34 +0000)]
RegisterCoalescer: Improve previous fix for wrong def after.

The previous fix in r225503 was needlessly complicated. The problem goes
away as well if the arguments to MergeValueNumberInto are supplied in the
correct order.
This was previously missed because the existing code already had the
wrong order but an additional later Merge was hiding the bug for the
main liverange VNI.

llvm-svn: 229424

9 years agoUpdate to isl 99d53692ba
Tobias Grosser [Mon, 16 Feb 2015 19:33:40 +0000 (19:33 +0000)]
Update to isl 99d53692ba

This commit imports the latest isl version into lib/External/isl. The changes
relavant for Polly are:

  1) Schedule trees [1] have been introduced as a more structured way to
     describe schedules. Polly does not yet use them, but we may switch to them
     in the near future.
  2) Another set of coalescing changes [2] simplifies some data dependences and
     removes a couple of code generation artifacts.

     We now understand that the following sets can be merged:

     { Stmt_S1[i0, i1] -> Stmt_S2[i0 + i1] :
          i0 >= 0 and i1 <= 1023 - i0 and i1 >= 1
       Stmt_S1[i0, 0] -> Stmt_S2[i0] : i0 <= 1023 and i0 >= 1}

     into:

     { Stmt_S1[i0, i1] -> Stmt_S2[i0 + i1] : i1 <= 1023 - i0 and i1 >= 0 and
                                             i1 >= 1 - i0 and i0 >= 0 }

     Changes of this kind reduce unnecessary specialization during code
     generation.

     -  for (int c3 = 0; c3 <= 1023; c3 += 1) {
     -    if (c3 % 2 == 0) {
     -      Stmt_for_body3(c1, c3);
     -    } else
     -      Stmt_for_body3(c1, c3);
     -  }
     +  for (int c3 = 0; c3 <= 1023; c3 += 1)
     +    Stmt_for_body3(c1, c3);

[1] http://impact.gforge.inria.fr/impact2014/papers/impact2014-verdoolaege.pdf
[2] http://impact.gforge.inria.fr/impact2015/papers/impact2015-verdoolaege.pdf

llvm-svn: 229423

9 years agoMSVC 2013 does not ICE on this code in the same fashion that MSVC 2012 did; NFC.
Aaron Ballman [Mon, 16 Feb 2015 19:33:36 +0000 (19:33 +0000)]
MSVC 2013 does not ICE on this code in the same fashion that MSVC 2012 did; NFC.

llvm-svn: 229422

9 years agoBitcode: Fix major regression: large files w/ debug info
Duncan P. N. Exon Smith [Mon, 16 Feb 2015 19:18:01 +0000 (19:18 +0000)]
Bitcode: Fix major regression: large files w/ debug info

The metadata/value split introduced a major regression reading large
bitcode files that contain debug info (or other cyclic (non-self
reference) metadata graphs).  For the first time in a while, I dropped
from libLTO.dylib down to `llvm-lto` with a non-trivial bitcode file
(~350MB), and I hit this when reading the result of ld64's `-save-temps`
in `llvm-lto`.

Here's pseudo-code for what was going on:

    read-main-metadata-block:
      for each md:
        if has-fwd-ref: // Only true for cyclic graphs.
          any-fwd-refs <- true
      if any-fwd-refs:
        foreach md:
          resolve-cycles(md) // Handle cycles.

    foreach function:
      read-function-metadata-block: // Such as !alias, !loop
        if any-fwd-refs:
          foreach md: // (all metadata, not just this block)
            resolve-cycles(md) // A no-op, but the loop is expensive!!

This commit resets the `AnyFwdRefs` flag to `false`.  This on its own
was enough to change my Release+Asserts `llvm-lto` time for reading this
bitcode from over 20 minutes (I gave up on it) to 20 seconds.  I've gone
further by tracking the min/max metadata forward-references in a
metadata block.  This protects against a schema that has lots of
functions that each reference their own metadata cycle.

Unfortunately, this regression is in the 3.6 branch as well.

llvm-svn: 229421

9 years agoConstantFold: Properly fold GEP indices wider than i64
David Majnemer [Mon, 16 Feb 2015 19:10:02 +0000 (19:10 +0000)]
ConstantFold: Properly fold GEP indices wider than i64

llvm-svn: 229420

9 years agoRun LICM as part of the cleanup phase from the scalar optimizer.
James Molloy [Mon, 16 Feb 2015 18:59:54 +0000 (18:59 +0000)]
Run LICM as part of the cleanup phase from the scalar optimizer.

Things like LoopUnrolling can produce loop invariant values - make sure
we pick them up.

llvm-svn: 229419

9 years agoWe require MSVC 1800 as our minimum, so these checks can safely go away; NFC. (It...
Aaron Ballman [Mon, 16 Feb 2015 18:34:57 +0000 (18:34 +0000)]
We require MSVC 1800 as our minimum, so these checks can safely go away; NFC. (It seems this code has been copy/pasted around, unfortunately.)

llvm-svn: 229417

9 years agoRegression test for RP6954.
Serge Pavlov [Mon, 16 Feb 2015 18:27:41 +0000 (18:27 +0000)]
Regression test for RP6954.

llvm-svn: 229416

9 years agoWe require MSVC 1800 as our minimum, so these checks can safely go away; NFC.
Aaron Ballman [Mon, 16 Feb 2015 18:23:00 +0000 (18:23 +0000)]
We require MSVC 1800 as our minimum, so these checks can safely go away; NFC.

llvm-svn: 229415

9 years agoMSVC 2013 supports std::forward_as_tuple, while MSVC 2012 did not; so we can move...
Aaron Ballman [Mon, 16 Feb 2015 18:21:19 +0000 (18:21 +0000)]
MSVC 2013 supports std::forward_as_tuple, while MSVC 2012 did not; so we can move to using the improved API.

llvm-svn: 229414

9 years agoAArch64: Safely handle the incoming sret call argument.
Andrew Trick [Mon, 16 Feb 2015 18:10:47 +0000 (18:10 +0000)]
AArch64: Safely handle the incoming sret call argument.

This adds a safe interface to the machine independent InputArg struct
for accessing the index of the original (IR-level) argument. When a
non-native return type is lowered, we generate the hidden
machine-level sret argument on-the-fly. Before this fix, we were
representing this argument as OrigArgIndex == 0, which is an outright
lie. In particular this crashed in the AArch64 backend where we
actually try to access the type of the original argument.

Now we use a sentinel value for machine arguments that have no
original argument index. AArch64, ARM, Mips, and PPC now check for this
case before accessing the original argument.

Fixes <rdar://19792160> Null pointer assertion in AArch64TargetLowering

llvm-svn: 229413

9 years ago[ADCE] Don't indent inside an anonymous namespace
Hal Finkel [Mon, 16 Feb 2015 18:08:00 +0000 (18:08 +0000)]
[ADCE] Don't indent inside an anonymous namespace

To be consistent with what clang-format does, don't add extra indentation
inside an anonymous namespace. NFC.

llvm-svn: 229412

9 years agoRevert r229409: "Hack to try deleting file from build bots"
Matt Arsenault [Mon, 16 Feb 2015 18:03:59 +0000 (18:03 +0000)]
Revert r229409: "Hack to try deleting file from build bots"

llvm-svn: 229411

9 years agoMSVC 2013 appears to be able to compile make_ptr_range without issue, so removing...
Aaron Ballman [Mon, 16 Feb 2015 18:00:11 +0000 (18:00 +0000)]
MSVC 2013 appears to be able to compile make_ptr_range without issue, so removing that guard in the unit test.

llvm-svn: 229410

9 years agoHack to try deleting file from build bots
Matt Arsenault [Mon, 16 Feb 2015 17:33:12 +0000 (17:33 +0000)]
Hack to try deleting file from build bots

llvm-svn: 229409

9 years agox86-64 ABI: unwrap single element structs / arrays of 256-bit vectors to pass and...
Sanjay Patel [Mon, 16 Feb 2015 17:26:51 +0000 (17:26 +0000)]
x86-64 ABI: unwrap single element structs / arrays of 256-bit vectors to pass and return in registers

This is a patch for PR22563 ( http://llvm.org/bugs/show_bug.cgi?id=22563 ).

We were not correctly unwrapping a single 256-bit AVX vector that was defined as an array of 1 inside a struct.

We would generate a <4 x float> param/return value instead of <8 x float> and lose half of the vector.

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

llvm-svn: 229408

9 years agoDon't create output file in test
Matt Arsenault [Mon, 16 Feb 2015 17:11:58 +0000 (17:11 +0000)]
Don't create output file in test

llvm-svn: 229407

9 years ago[LoopReroll] Relax some assumptions a little.
James Molloy [Mon, 16 Feb 2015 17:02:00 +0000 (17:02 +0000)]
[LoopReroll] Relax some assumptions a little.

We won't find a root with index zero in any loop that we are able to reroll.
However, we may find one in a non-rerollable loop, so bail gracefully instead
of failing hard.

llvm-svn: 229406

9 years ago[LoopReroll] Don't crash on dead code
James Molloy [Mon, 16 Feb 2015 17:01:52 +0000 (17:01 +0000)]
[LoopReroll] Don't crash on dead code

If a PHI has no users, don't crash; bail gracefully. This shouldn't
happen often, but we can make no guarantees that previous passes didn't leave
dead code around.

llvm-svn: 229405

9 years agoMove helper class into an anonymous namespace.
Benjamin Kramer [Mon, 16 Feb 2015 16:53:12 +0000 (16:53 +0000)]
Move helper class into an anonymous namespace.

llvm-svn: 229404

9 years agoOpenCL: Accept -cl-strict-aliasing
Matt Arsenault [Mon, 16 Feb 2015 16:43:13 +0000 (16:43 +0000)]
OpenCL: Accept -cl-strict-aliasing

This was in 1.0, but deprecated in 1.1. Accept it and do nothing
for compatability.

llvm-svn: 229403

9 years agoFix crash when clang tries to build NSNumber literal after forward declaration
Alex Denisov [Mon, 16 Feb 2015 16:17:05 +0000 (16:17 +0000)]
Fix crash when clang tries to build NSNumber literal after forward declaration

Bug report: http://llvm.org/bugs/show_bug.cgi?id=22561

Clang tries to create ObjCBoxedExpression of type 'NSNumber'
when 'NSNumber' has only forward declaration, this cause a crash later,
when 'Sema' refers to a nil QualType of the whole expression.
Please, refer to the bug report for the better explanation.

llvm-svn: 229402

9 years agoAnalyzer: Flatten Checker hierarchy.
Benjamin Kramer [Mon, 16 Feb 2015 15:43:06 +0000 (15:43 +0000)]
Analyzer: Flatten Checker hierarchy.

We still instantiate all the levels but there's no need to create a vtable for
every level in the hierarchy.

llvm-svn: 229401

9 years ago[PBQP] Improve the assert for conservatively allocatables.
Jonas Paulsson [Mon, 16 Feb 2015 15:39:26 +0000 (15:39 +0000)]
[PBQP] Improve the assert for conservatively allocatables.

Remember if the node ever was in this state instead of checking just the
final state.

Reviewed by Arnaud de Grandmaison.

llvm-svn: 229400

9 years ago[ASan/Win] Add an OOM test
Timur Iskhodzhanov [Mon, 16 Feb 2015 15:24:20 +0000 (15:24 +0000)]
[ASan/Win] Add an OOM test

llvm-svn: 229399

9 years ago[msan] Fix UnalignedLoad/UnalignedStore tests.
Evgeniy Stepanov [Mon, 16 Feb 2015 15:05:14 +0000 (15:05 +0000)]
[msan] Fix UnalignedLoad/UnalignedStore tests.

Add alignment attrubutes to ensure that the tests actually test unaligned
access irrespective of the stack layout.

llvm-svn: 229398

9 years ago[asan] Reuse a common function.
Evgeniy Stepanov [Mon, 16 Feb 2015 14:49:37 +0000 (14:49 +0000)]
[asan] Reuse a common function.

Do not reimplement RoundUpToAlignment.

llvm-svn: 229397

9 years agotsan: remove everything related to rss/background thread in Go mode
Dmitry Vyukov [Mon, 16 Feb 2015 14:49:34 +0000 (14:49 +0000)]
tsan: remove everything related to rss/background thread in Go mode

In Go mode the background thread is not started (internal_thread_start is empty).
There is no sense in having this code compiled in.
Also removes dependency on sanitizer_linux_libcdep.cc which is good,
ideally Go runtime does not depend on libc at all.

llvm-svn: 229396

9 years agotsan: fix freebsd build
Dmitry Vyukov [Mon, 16 Feb 2015 14:35:51 +0000 (14:35 +0000)]
tsan: fix freebsd build

GetTls is not defined in Go mode.

llvm-svn: 229395

9 years agoReverting a switch from LLVM_DELETED_FUNCTION to = delete; this test should not have...
Aaron Ballman [Mon, 16 Feb 2015 14:14:01 +0000 (14:14 +0000)]
Reverting a switch from LLVM_DELETED_FUNCTION to = delete; this test should not have changed.

llvm-svn: 229394

9 years agotsan: fix windows build script
Dmitry Vyukov [Mon, 16 Feb 2015 13:54:32 +0000 (13:54 +0000)]
tsan: fix windows build script

add missing source files
+ add -std=c++11 as it is now required to build compiler-rt

llvm-svn: 229393

9 years agotsan: fix compiler warning
Dmitry Vyukov [Mon, 16 Feb 2015 13:53:00 +0000 (13:53 +0000)]
tsan: fix compiler warning

mingw gcc complains:
warning: 'err' may be used uninitialized in this function [-Wmaybe-uninitialized]
       Printf("Failed to read options from '%s': error %d\n", value, err);

llvm-svn: 229392

9 years agotsan: fix shadow memory mapping on windows
Dmitry Vyukov [Mon, 16 Feb 2015 13:52:04 +0000 (13:52 +0000)]
tsan: fix shadow memory mapping on windows

llvm-svn: 229391

9 years agotsan: exclude DumpProcessMap on windows
Dmitry Vyukov [Mon, 16 Feb 2015 13:51:17 +0000 (13:51 +0000)]
tsan: exclude DumpProcessMap on windows

The function uses EnumProcessModules, which requires psapi.lib,
which is not linked with tsan on windows.

llvm-svn: 229390

9 years ago[Msan] Improve the EXPECT_NOT_POISONED() macro to provide the original line number
Viktor Kutuzov [Mon, 16 Feb 2015 13:30:52 +0000 (13:30 +0000)]
[Msan] Improve the EXPECT_NOT_POISONED() macro to provide the original line number
Differential Revision: http://reviews.llvm.org/D7341

llvm-svn: 229389

9 years ago[Msan] Make unit tests that use mempcpy() passing on FreeBSD
Viktor Kutuzov [Mon, 16 Feb 2015 13:26:32 +0000 (13:26 +0000)]
[Msan] Make unit tests that use mempcpy() passing on FreeBSD
Differential Revision: http://reviews.llvm.org/D7588

llvm-svn: 229388

9 years ago[Msan] Disable the fgetgrent_r unit test on FreeBSD
Viktor Kutuzov [Mon, 16 Feb 2015 13:24:21 +0000 (13:24 +0000)]
[Msan] Disable the fgetgrent_r unit test on FreeBSD
Differential Revision: http://reviews.llvm.org/D7343

llvm-svn: 229387

9 years ago[Msan] Disable fcvt unit tests on FreeBSD
Viktor Kutuzov [Mon, 16 Feb 2015 13:22:07 +0000 (13:22 +0000)]
[Msan] Disable fcvt unit tests on FreeBSD
Differential Revision: http://reviews.llvm.org/D7340

llvm-svn: 229386

9 years ago[Msan] Fix the getgrnam_r unit test to pass on FreeBSD
Viktor Kutuzov [Mon, 16 Feb 2015 13:19:21 +0000 (13:19 +0000)]
[Msan] Fix the getgrnam_r unit test to pass on FreeBSD
Differential Revision: http://reviews.llvm.org/D7339

llvm-svn: 229385

9 years ago[Msan] Fix the sigaction unit test to build on FreeBSD
Viktor Kutuzov [Mon, 16 Feb 2015 13:15:58 +0000 (13:15 +0000)]
[Msan] Fix the sigaction unit test to build on FreeBSD
Differential Revision: http://reviews.llvm.org/D7335

llvm-svn: 229384

9 years ago[Msan] Fix the ether unit test to build on FreeBSD
Viktor Kutuzov [Mon, 16 Feb 2015 13:13:53 +0000 (13:13 +0000)]
[Msan] Fix the ether unit test to build on FreeBSD
Differential Revision: http://reviews.llvm.org/D7334

llvm-svn: 229383

9 years agoHandle trailing spaces on "settings set" command more correctly
Pavel Labath [Mon, 16 Feb 2015 13:13:39 +0000 (13:13 +0000)]
Handle trailing spaces on "settings set" command more correctly

Summary:
Currently we have some settings which treat "\ " on settings set commands specially. E.g., it is
a valid way of specifying an argument of " " to a target. However, this fails if "\ " is the last
argument as CommandObjectSettingsSet strips trailing whitespace. This resulted in a surprising
argument of "\" to the target.

This patch disables the training whitespace removal at a global
level. Instead, for each argument type we locally determine whether whitespace stripping makes
sense. Currently, I strip whitespace for all simple object type except of regex and
format-string, with the rationale that these two object types do their own complex parsing and we
want to interfere with them as least as possible. Specifically, stripping the whitespace of a
regex "\ " will result in a (surprising?) error "trailing backslash". Furthermore, the default
value of dissasembly-format setting already contains a trailing space and there is no way for the
user to type this in manually if we strip whitespace.

Reviewers: clayborg, zturner

Subscribers: lldb-commits

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

llvm-svn: 229382

9 years ago[Asan] Fix the dlclose-test.cc unit test to build on FreeBSD 11
Viktor Kutuzov [Mon, 16 Feb 2015 13:11:09 +0000 (13:11 +0000)]
[Asan] Fix the dlclose-test.cc unit test to build on FreeBSD 11
Differential Revision: http://reviews.llvm.org/D7586

llvm-svn: 229381

9 years agoRename MiStackTestCase tests according to "test_lldbmi_<command_name>" format
Ilia K [Mon, 16 Feb 2015 13:00:59 +0000 (13:00 +0000)]
Rename MiStackTestCase tests according to "test_lldbmi_<command_name>" format

llvm-svn: 229380

9 years agoDisable LaunchNativeProcess in PlatformLinux for non Linux hosts
Tamas Berghammer [Mon, 16 Feb 2015 12:59:49 +0000 (12:59 +0000)]
Disable LaunchNativeProcess in PlatformLinux for non Linux hosts

llvm-svn: 229379

9 years ago[x86] Add a generic unpack-targeted lowering technique. This can be used
Chandler Carruth [Mon, 16 Feb 2015 12:28:18 +0000 (12:28 +0000)]
[x86] Add a generic unpack-targeted lowering technique. This can be used
to generically lower blends and is particularly nice because it is
available frome SSE2 onward. This removes a lot of the remaining domain
crossing blends in SSE2 code.

I'm hoping to replace some of the "interleaved" lowering hacks with
something closer to this which should be more principled. First, this
needs to learn how to detect and use other interleavings besides that of
the natural type provided. That will be a follow-up patch though.

llvm-svn: 229378

9 years ago[x86] Switch this test to use checks generated by my update script. NFC
Chandler Carruth [Mon, 16 Feb 2015 12:23:22 +0000 (12:23 +0000)]
[x86] Switch this test to use checks generated by my update script. NFC

llvm-svn: 229377

9 years agoFix quoting of #pragma comment for MS compat, clang part.
Michael Kuperstein [Mon, 16 Feb 2015 11:57:43 +0000 (11:57 +0000)]
Fix quoting of #pragma comment for MS compat, clang part.

For #pragma comment(linker, ...) MSVC expects the comment string to be quoted, but for #pragma comment(lib, ...) the compiler itself quotes the library name.
Since this distinction disappears by the time the directive reaches the backend, move quoting for the "lib" version to the frontend.

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

llvm-svn: 229376

9 years agoFix quoting of #pragma comment for MS compat, LLVM part.
Michael Kuperstein [Mon, 16 Feb 2015 11:57:17 +0000 (11:57 +0000)]
Fix quoting of #pragma comment for MS compat, LLVM part.

For #pragma comment(linker, ...) MSVC expects the comment string to be quoted, but for #pragma comment(lib, ...) the compiler itself quotes the library name.
Since this distinction disappears by the time the directive reaches the backend, move quoting for the "lib" version to the frontend.

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

llvm-svn: 229375

9 years agoASTMatchers: Replace enable_if with static_assert.
Benjamin Kramer [Mon, 16 Feb 2015 11:08:00 +0000 (11:08 +0000)]
ASTMatchers: Replace enable_if with static_assert.

This is nicer in general and gives a better error message, but it also might
bring MSVC 2013 back to life.

llvm-svn: 229374

9 years ago[x86] Add initial basic support for forming blends of v16i8 vectors.
Chandler Carruth [Mon, 16 Feb 2015 10:58:23 +0000 (10:58 +0000)]
[x86] Add initial basic support for forming blends of v16i8 vectors.

This blend instruction is ... really lame. The register usage is insane.
As a consequence this is probably only *barely* better than 2 pshufbs
followed by a por, and that mostly because it only has to read from
a single memory location.

However, this doesn't fix as much as I kind of expected, so more to go.
Pretty sure that the ordering and delegation of v16i8 is just really,
really bad.

llvm-svn: 229373

9 years ago[x86] Add some more test cases for i8 vector blends.
Chandler Carruth [Mon, 16 Feb 2015 10:51:49 +0000 (10:51 +0000)]
[x86] Add some more test cases for i8 vector blends.

llvm-svn: 229372

9 years agoEnable process launching on android from lldb-gdbserver
Tamas Berghammer [Mon, 16 Feb 2015 10:34:30 +0000 (10:34 +0000)]
Enable process launching on android from lldb-gdbserver

Currently it is uses the same code used on linux. Will be replaced with
android specific code if needed.

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

llvm-svn: 229371

9 years agoASTMatchers: Make VariadicOperatorMatcher a real variadic template.
Benjamin Kramer [Mon, 16 Feb 2015 10:29:51 +0000 (10:29 +0000)]
ASTMatchers: Make VariadicOperatorMatcher a real variadic template.

llvm-svn: 229370

9 years agoDocument that defaulted & deleted methods and explicit conversions are allowed now.
Benjamin Kramer [Mon, 16 Feb 2015 10:28:41 +0000 (10:28 +0000)]
Document that defaulted & deleted methods and explicit conversions are allowed now.

llvm-svn: 229369

9 years ago[asan] Support 'su' rooted devices in ASan setup script.
Evgeniy Stepanov [Mon, 16 Feb 2015 10:22:12 +0000 (10:22 +0000)]
[asan] Support 'su' rooted devices in ASan setup script.

Android devices may not support 'adb root', but be rooted with 'su'
binary. This patch makes it possible to install ASAN to such
devices. When --use-su flag is specified, most 'adb ...' commangs are
changed to 'adb su -c "..."'.

Some other notes:
 * 'readlink' changed to 'ls -l', since not all devices have readlink
   in their firmware.
 * removing ASan library step moved to very end, because 'su' may not
   run properly without this library until shell will be restarted.

Patch by Dmitry <ripp at yandex-team dot ru>.

llvm-svn: 229368

9 years ago[x86] Switch my usage of VariadicFunction to a "normal" variadic
Chandler Carruth [Mon, 16 Feb 2015 09:59:48 +0000 (09:59 +0000)]
[x86] Switch my usage of VariadicFunction to a "normal" variadic
template now that we can use them.

This is, of course, horribly ugly because of the required recursive
formulation. Suggestions for making it less ugly welcome.

llvm-svn: 229367

9 years agoIR: SrcTy == DstTy doesn't imply that a cast is valid
David Majnemer [Mon, 16 Feb 2015 09:37:35 +0000 (09:37 +0000)]
IR: SrcTy == DstTy doesn't imply that a cast is valid

Cast validity depends on the cast's kind, not just its types.

llvm-svn: 229366

9 years agoAsmParser: extractvalue requires at least one index operand
David Majnemer [Mon, 16 Feb 2015 09:18:13 +0000 (09:18 +0000)]
AsmParser: extractvalue requires at least one index operand

llvm-svn: 229365

9 years agoAsmParser: Make sure GlobalVariables have sane types
David Majnemer [Mon, 16 Feb 2015 08:41:08 +0000 (08:41 +0000)]
AsmParser: Make sure GlobalVariables have sane types

llvm-svn: 229364

9 years agoAsmParser: Reject alloca with function type
David Majnemer [Mon, 16 Feb 2015 08:38:03 +0000 (08:38 +0000)]
AsmParser: Reject alloca with function type

llvm-svn: 229363

9 years agoSwitch our index sequence away from template aliases and just use
Chandler Carruth [Mon, 16 Feb 2015 08:22:35 +0000 (08:22 +0000)]
Switch our index sequence away from template aliases and just use
classes. We can't use template aliases because on MSVC they don't appear
to work correctly in the common usage such as Format.h.

Many thanks to Zach for doing all the testing and debugging here. I just
slotted the fix into the code.

llvm-svn: 229362

9 years agoVerifier: Diagnose module flags which have null ID operands
David Majnemer [Mon, 16 Feb 2015 08:14:22 +0000 (08:14 +0000)]
Verifier: Diagnose module flags which have null ID operands

llvm-svn: 229361

9 years agoFix formatting
Tobias Grosser [Mon, 16 Feb 2015 06:40:23 +0000 (06:40 +0000)]
Fix formatting

llvm-svn: 229360

9 years ago[X86] Add support for lowering shuffles to 256-bit PALIGNR instruction.
Craig Topper [Mon, 16 Feb 2015 06:29:06 +0000 (06:29 +0000)]
[X86] Add support for lowering shuffles to 256-bit PALIGNR instruction.

llvm-svn: 229359

9 years ago[X86] Remove some hard tab characters from tests.
Craig Topper [Mon, 16 Feb 2015 06:29:02 +0000 (06:29 +0000)]
[X86] Remove some hard tab characters from tests.

llvm-svn: 229358

9 years agoFix TestRegisters on remote target.
Chaoren Lin [Mon, 16 Feb 2015 06:17:51 +0000 (06:17 +0000)]
Fix TestRegisters on remote target.

Summary:
Using spawnSubprocess instead of forkSubprocess, so that the subprocess
spawns on the target and not the host.

Requires http://reviews.llvm.org/D7660 for cleanup.

Test Plan: TestRegisters.py passing.

Reviewers: ovyalov, vharron, clayborg

Subscribers: lldb-commits

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

llvm-svn: 229357

9 years agoDebugInfo: Don't crash if 'Debug Info Version' has a strange value
David Majnemer [Mon, 16 Feb 2015 06:04:53 +0000 (06:04 +0000)]
DebugInfo: Don't crash if 'Debug Info Version' has a strange value

llvm-svn: 229356

9 years agoDataLayout: Validate that the pref alignment is at least the ABI align
David Majnemer [Mon, 16 Feb 2015 05:41:55 +0000 (05:41 +0000)]
DataLayout: Validate that the pref alignment is at least the ABI align

llvm-svn: 229355

9 years agoDataLayout: Report when the datalayout type alignment/width is too large
David Majnemer [Mon, 16 Feb 2015 05:41:53 +0000 (05:41 +0000)]
DataLayout: Report when the datalayout type alignment/width is too large

llvm-svn: 229354

9 years agoDR1467: If aggregate initialization encounters an initializer list for which
Richard Smith [Mon, 16 Feb 2015 04:42:59 +0000 (04:42 +0000)]
DR1467: If aggregate initialization encounters an initializer list for which
subobject initialization is not possible, be sure to note the overall
initialization as having failed so that overload resolution knows that the
relevant candidate is not viable.

llvm-svn: 229353

9 years agoIR: Properly return nullptr when getAggregateElement is out-of-bounds
David Majnemer [Mon, 16 Feb 2015 04:02:09 +0000 (04:02 +0000)]
IR: Properly return nullptr when getAggregateElement is out-of-bounds

We didn't properly handle the out-of-bounds case for
ConstantAggregateZero and UndefValue.  This would manifest as a crash
when the constant folder was asked to fold a load of a constant global
whose struct type has no operands.

This fixes PR22595.

llvm-svn: 229352

9 years ago[CMake] Add RuntimeDyld to libdeps corresponding to r229343.
NAKAMURA Takumi [Mon, 16 Feb 2015 02:13:30 +0000 (02:13 +0000)]
[CMake] Add RuntimeDyld to libdeps corresponding to r229343.

llvm-svn: 229351

9 years ago[x86] Teach the 128-bit vector shuffle lowering routines to take
Chandler Carruth [Mon, 16 Feb 2015 01:52:02 +0000 (01:52 +0000)]
[x86] Teach the 128-bit vector shuffle lowering routines to take
advantage of the existence of a reasonable blend instruction.

The 256-bit vector shuffle lowering has leveraged the general technique
of decomposed shuffles and blends for quite some time, but this never
made it back into the 128-bit code, and there are a large number of
patterns where this is substantially better. For example, this removes
almost all domain crossing in vector shuffles that involve some blend
and some permutation with SSE4.1 and later. See the massive reduction
in 'shufps' for integer test cases in this commit.

This isn't perfect yet for a few reasons:

1) The v8i16 shuffle lowering continues to plague me. We don't always
   form an unpack-based blend when that would be better. But the wins
   pretty drastically outstrip the losses here.
2) The v16i8 shuffle lowering is just a disaster here. I never went and
   implemented blend support here for some terrible reason. I'll do
   that next probably. I've not updated it for now.

More variations on this technique are coming as well -- we don't
shuffle-into-unpack or shuffle-into-palignr, both of which would also be
profitable.

Note that some test cases grow significantly in the number of
instructions, but I expect to actually be faster. We use
pshufd+pshufd+blendw instead of a single shufps, but the pshufd's are
very likely to pipeline well (two ports on most modern intel chips) and
the blend is a *very* fast instruction. The domain switch penalty will
essentially always be more than a blend instruction, which is the only
increase in tree height.

llvm-svn: 229350

9 years ago[x86] Clean up a few test cases with the update script. NFC
Chandler Carruth [Mon, 16 Feb 2015 01:39:50 +0000 (01:39 +0000)]
[x86] Clean up a few test cases with the update script. NFC

llvm-svn: 229349

9 years ago[X86] Teach clang to lower __builtin_ia32_psrldqi256 and __builtin_ia32_pslldqi256...
Craig Topper [Mon, 16 Feb 2015 00:42:49 +0000 (00:42 +0000)]
[X86] Teach clang to lower __builtin_ia32_psrldqi256 and __builtin_ia32_pslldqi256 to vector shuffles the backend recognizes. This is a step towards removing the corresponding intrinsics from the backend.

llvm-svn: 229348

9 years ago[X86] Remove gcc builtins for AVX2 psll_dq and psrl_dq intrinsics. Clang no longer...
Craig Topper [Mon, 16 Feb 2015 00:42:36 +0000 (00:42 +0000)]
[X86] Remove gcc builtins for AVX2 psll_dq and psrl_dq intrinsics. Clang no longer needs them.

llvm-svn: 229347

9 years agoExtract SBAttachInfo into own set of files - SBAttachInfo.h, SBAttachInfo.cpp and...
Oleksiy Vyalov [Mon, 16 Feb 2015 00:04:19 +0000 (00:04 +0000)]
Extract SBAttachInfo into own set of files - SBAttachInfo.h, SBAttachInfo.cpp and SBAttachInfo.i.

llvm-svn: 229346

9 years ago[Bitcode reader] Fix a few assertions when reading invalid files
Filipe Cabecinhas [Mon, 16 Feb 2015 00:03:11 +0000 (00:03 +0000)]
[Bitcode reader] Fix a few assertions when reading invalid files

Summary:
When creating {insert,extract}value instructions from a BitcodeReader, we
weren't verifying the fields were valid.

Bugs found with afl-fuzz

Reviewers: rafael

Subscribers: llvm-commits

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

llvm-svn: 229345

9 years agoUpdate Polly for the removal of LLVM_DELETED_FUNCTION now that '= delete' works on...
David Blaikie [Sun, 15 Feb 2015 23:40:18 +0000 (23:40 +0000)]
Update Polly for the removal of LLVM_DELETED_FUNCTION now that '= delete' works on all supported compilers (MSVC2012 compat has been dropped)

llvm-svn: 229344