platform/upstream/llvm.git
8 years agoRemove unneeded test in tryCaptureAsConstant.
Akira Hatanaka [Mon, 2 May 2016 22:29:40 +0000 (22:29 +0000)]
Remove unneeded test in tryCaptureAsConstant.

It isn't necessary to call hasDefaultArg because we can't rematerialize
a captured variable that is a function parameter, regardless of whether
or not it has a default argument. NFC.

llvm-svn: 268318

8 years agoRevert "ThinLTO: do not import function whose linkage prevents inlining."
Mehdi Amini [Mon, 2 May 2016 22:26:04 +0000 (22:26 +0000)]
Revert "ThinLTO: do not import function whose linkage prevents inlining."

This reverts commit r268315, the tests are not passing.

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

8 years ago[llvm-pdbdump] Fix read past EOF when file is too small.
Zachary Turner [Mon, 2 May 2016 22:16:57 +0000 (22:16 +0000)]
[llvm-pdbdump] Fix read past EOF when file is too small.

llvm-svn: 268316

8 years agoThinLTO: do not import function whose linkage prevents inlining.
Mehdi Amini [Mon, 2 May 2016 22:11:27 +0000 (22:11 +0000)]
ThinLTO: do not import function whose linkage prevents inlining.

There is not point in importing a "weak" or a "linkonce" function
since we won't be able to inline it anyway.
We already had a targeted check for WeakAny, this is using the
same check on GlobalValue as the inline, i.e.
isMayBeOverriddenLinkage()

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

8 years ago[CodeGenObjCXX] Don't rematerialize default arguments of function
Akira Hatanaka [Mon, 2 May 2016 21:52:57 +0000 (21:52 +0000)]
[CodeGenObjCXX] Don't rematerialize default arguments of function
parameters in the body of a block.

This fixes a bug where clang would materialize the default argument
inside the body of a block instead of passing the value via the block
descriptor.

For example, in the code below, foo1 would always print 42 regardless
of the value of argument "a" passed to foo1.

void foo1(const int a = 42 ) {
  auto block = ^{
    printf("%d\n", a);
  };
  block();
}

rdar://problem/24449235

llvm-svn: 268314

8 years agoFix llvm-size to exit with non zero when it can’t open a file.
Kevin Enderby [Mon, 2 May 2016 21:41:03 +0000 (21:41 +0000)]
Fix llvm-size to exit with non zero when it can’t open a file.

rdar://26027819

llvm-svn: 268313

8 years agoRemove redundant return, NFC
Vedant Kumar [Mon, 2 May 2016 21:33:36 +0000 (21:33 +0000)]
Remove redundant return, NFC

llvm-svn: 268312

8 years agoFix a typo, NFC
Vedant Kumar [Mon, 2 May 2016 21:32:07 +0000 (21:32 +0000)]
Fix a typo, NFC

llvm-svn: 268311

8 years agoTeach Undefined symbols from which file they are created from.
Rui Ueyama [Mon, 2 May 2016 21:30:42 +0000 (21:30 +0000)]
Teach Undefined symbols from which file they are created from.

This patch increases the size of Undefined by the size of a pointer,
but it wouldn't actually increase the size of memory that LLD uses
because we are not allocating the exact size but the size of the
largest SymbolBody.

llvm-svn: 268310

8 years agoFix an issue where the apropos command would not print fully qualified command names...
Enrico Granata [Mon, 2 May 2016 21:28:40 +0000 (21:28 +0000)]
Fix an issue where the apropos command would not print fully qualified command names for nested command objects

rdar://problem/26020072

llvm-svn: 268309

8 years agoRevert "Temporary hack to see what is going on on a windows bot."
Rafael Espindola [Mon, 2 May 2016 21:21:26 +0000 (21:21 +0000)]
Revert "Temporary hack to see what is going on on a windows bot."

This reverts commit r268302.

llvm-svn: 268308

8 years agoImport block pointers from DWARF as Clang block pointers, not as structs.
Sean Callanan [Mon, 2 May 2016 21:15:31 +0000 (21:15 +0000)]
Import block pointers from DWARF as Clang block pointers, not as structs.

Also added a data formatter that presents them as structs if you use frame
variable to look at their contents.  Now the blocks testcase works.

<rdar://problem/15984431>

llvm-svn: 268307

8 years ago[X86][SSE] Added placeholder for 128/256-bit wide shuffle combines
Simon Pilgrim [Mon, 2 May 2016 21:12:48 +0000 (21:12 +0000)]
[X86][SSE] Added placeholder for 128/256-bit wide shuffle combines

Begun adding placeholder for future support for vperm2f128/vshuff64x2 style 128/256-bit wide shuffles

llvm-svn: 268306

8 years agoDon't try to create thin bsd archives.
Rafael Espindola [Mon, 2 May 2016 21:06:57 +0000 (21:06 +0000)]
Don't try to create thin bsd archives.

Not such variant has been specified yet.

llvm-svn: 268305

8 years ago[dsymutil] Create the temporary files in the system temp directory.
Frederic Riss [Mon, 2 May 2016 21:06:14 +0000 (21:06 +0000)]
[dsymutil] Create the temporary files in the system temp directory.

llvm-dsymutil used to create the temporary files in the output directory.
This works fine except when the output directory contains a '%' char, which
is then replaced by llvm::sys::fs::createUniqueFile() generating an invalid
path.
Just use the default temp dir for those files.

llvm-svn: 268304

8 years agoAdd more debug logging to g_get_shared_cache_class_info_body
Enrico Granata [Mon, 2 May 2016 20:58:15 +0000 (20:58 +0000)]
Add more debug logging to g_get_shared_cache_class_info_body

llvm-svn: 268303

8 years agoTemporary hack to see what is going on on a windows bot.
Rafael Espindola [Mon, 2 May 2016 20:47:06 +0000 (20:47 +0000)]
Temporary hack to see what is going on on a windows bot.

llvm-svn: 268302

8 years agoCode refactoring -- preparation for new PM porting /NFC
Xinliang David Li [Mon, 2 May 2016 20:33:59 +0000 (20:33 +0000)]
Code refactoring -- preparation for new PM porting /NFC

llvm-svn: 268301

8 years ago[codeview] Isolate type dumping from object file state
Reid Kleckner [Mon, 2 May 2016 20:30:47 +0000 (20:30 +0000)]
[codeview] Isolate type dumping from object file state

This isolates the state we use for type dumping from the knowledge of
object files. We can use CVTypeDumper to dump types from anywhere in
memory now.

NFC

Reviewers: zturner

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

llvm-svn: 268300

8 years ago[CUDA] Make sure device-side __global__ functions are always visible.
Artem Belevich [Mon, 2 May 2016 20:30:03 +0000 (20:30 +0000)]
[CUDA] Make sure device-side __global__ functions are always visible.

__global__ functions are a special case in CUDA.

Even when the symbol would normally not be externally
visible according to C++ rules, they still must be visible
in CUDA GPU object so host-side stub can launch them.

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

llvm-svn: 268299

8 years agoThread Expected<...> up from libObject’s getType() for symbols to allow llvm-objdump...
Kevin Enderby [Mon, 2 May 2016 20:28:12 +0000 (20:28 +0000)]
Thread Expected<...> up from libObject’s getType() for symbols to allow llvm-objdump to produce a good error message.

Produce another specific error message for a malformed Mach-O file when a symbol’s
section index is more than the number of sections.  The existing test case in test/Object/macho-invalid.test
for macho-invalid-section-index-getSectionRawName now reports the error with the message indicating
that a symbol at a specific index has a bad section index and that bad section index value.

Again converting interfaces to Expected<> from ErrorOr<> does involve
touching a number of places. Where the existing code reported the error with a
string message or an error code it was converted to do the same.

Also there some were bugs in the existing code that did not deal with the
old ErrorOr<> return values.  So now with Expected<> since they must be
checked and the error handled, I added a TODO and a comment:
"// TODO: Actually report errors helpfully" and a call something like
consumeError(NameOrErr.takeError()) so the buggy code will not crash
since needed to deal with the Error.

llvm-svn: 268298

8 years agoRevert "[Driver] Quote clang full version in dwarf producer when invoking cc1as"
Bruno Cardoso Lopes [Mon, 2 May 2016 20:20:49 +0000 (20:20 +0000)]
Revert "[Driver] Quote clang full version in dwarf producer when invoking cc1as"

This reverts commit r264813 / 6484b95d634f53dd929c75265ef3c4decf397584.

While using it in the shell is fine, this a problem when cc1as is
invoked directly by the driver because single quoting the clang full
version makes cc1as write out the version with the quotes in the final
binary.

If the user wants to copy-n-pastable output, it could use either -###
or CC_PRINT_OPTIONS=1 clang -v ...

llvm-svn: 268297

8 years agoAMDGPU: Custom lower v2i32 loads and stores
Matt Arsenault [Mon, 2 May 2016 20:13:51 +0000 (20:13 +0000)]
AMDGPU: Custom lower v2i32 loads and stores

This will allow us to split up 64-bit private accesses when
necessary.

llvm-svn: 268296

8 years agoAMDGPU/SI: Use v_readfirstlane_b32 when restoring SGPRs spilled to scratch
Tom Stellard [Mon, 2 May 2016 20:11:44 +0000 (20:11 +0000)]
AMDGPU/SI: Use v_readfirstlane_b32 when restoring SGPRs spilled to scratch

We were using v_readlane_b32 with the lane set to zero, but this won't
work if thread 0 is not active.

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

llvm-svn: 268295

8 years agoCleanup warnings and remove use of __builtin_va_list in depr.c.headers
Eric Fiselier [Mon, 2 May 2016 20:08:16 +0000 (20:08 +0000)]
Cleanup warnings and remove use of __builtin_va_list in depr.c.headers

llvm-svn: 268294

8 years agoAMDGPU: Make i64 loads/stores promote to v2i32
Matt Arsenault [Mon, 2 May 2016 20:07:26 +0000 (20:07 +0000)]
AMDGPU: Make i64 loads/stores promote to v2i32

Now that unaligned access expansion should not attempt
to produce i64 accesses, we can remove the hack in
PreprocessISelDAG where this is done.

This allows splitting i64 private accesses while
allowing the new add nodes indexing the vector components
can be folded with the base pointer arithmetic.

llvm-svn: 268293

8 years agoRemove unnecessary namespace specifiers.
Rui Ueyama [Mon, 2 May 2016 19:59:56 +0000 (19:59 +0000)]
Remove unnecessary namespace specifiers.

llvm-svn: 268292

8 years ago[LVI] Add an API to LazyValueInfo so that it can export ConstantRanges
John Regehr [Mon, 2 May 2016 19:58:00 +0000 (19:58 +0000)]
[LVI] Add an API to LazyValueInfo so that it can export ConstantRanges
that it computes. Currently this is used for testing and precision
tuning, but it might be used by optimizations later.

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

llvm-svn: 268291

8 years ago[X86][AVX2] Added 128-bit wide shuffle test
Simon Pilgrim [Mon, 2 May 2016 19:46:58 +0000 (19:46 +0000)]
[X86][AVX2] Added 128-bit wide shuffle test

Demonstrate missing 128-bit wide shuffle combine support

llvm-svn: 268290

8 years agoFix instance of -Winconsistent-missing-override in AMDGPU code
Reid Kleckner [Mon, 2 May 2016 19:45:10 +0000 (19:45 +0000)]
Fix instance of -Winconsistent-missing-override in AMDGPU code

llvm-svn: 268289

8 years agoRevert "[SimplifyCFG] Extend TryToSimplifyUncondBranchFromEmptyBlock for empty block...
Reid Kleckner [Mon, 2 May 2016 19:43:22 +0000 (19:43 +0000)]
Revert "[SimplifyCFG] Extend TryToSimplifyUncondBranchFromEmptyBlock for empty block including lifetime intrinsics"

This reverts commit r268254.

This change causes assertion failures while building Chromium. Reduced
test case coming soon.

llvm-svn: 268288

8 years agoAMDGPU/SI: Set the kill flag on temp VGPRs used to restore SGPRs from scratch
Tom Stellard [Mon, 2 May 2016 19:37:56 +0000 (19:37 +0000)]
AMDGPU/SI: Set the kill flag on temp VGPRs used to restore SGPRs from scratch

Summary:
When we restore an SGPR value from scratch, we first load it into a
temporary VGPR and then use v_readlane_b32 to copy the value from the
VGPR back into an SGPR.

We weren't setting the kill flag on the VGPR in the v_readlane_b32
instruction, so the register scavenger wasn't able to re-use this
temp value later.

I wasn't able to create a lit test for this.

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 268287

8 years agoDo not pass Symtab to markLive/doICF since Symtab is globally accessible.
Rui Ueyama [Mon, 2 May 2016 19:30:42 +0000 (19:30 +0000)]
Do not pass Symtab to markLive/doICF since Symtab is globally accessible.

llvm-svn: 268286

8 years agoInitialize local doubles to NaN. Patch from STL@microsoft.com
Eric Fiselier [Mon, 2 May 2016 19:20:16 +0000 (19:20 +0000)]
Initialize local doubles to NaN. Patch from STL@microsoft.com

llvm-svn: 268285

8 years agoVoid cast runtime-unused variables. Patch from STL@microsoft.com
Eric Fiselier [Mon, 2 May 2016 19:15:48 +0000 (19:15 +0000)]
Void cast runtime-unused variables. Patch from STL@microsoft.com

llvm-svn: 268284

8 years ago[compiler-rt] adjust platform_limits_linux.cc #include of posix_types
Kostya Serebryany [Mon, 2 May 2016 19:10:48 +0000 (19:10 +0000)]
[compiler-rt] adjust platform_limits_linux.cc #include of posix_types

Summary:
Hello,

Building a recent gcc on a powerpc-linux system advertsing:

 Red Hat Enterprise Linux Server release 5.10 (Tikanga)

we stumbled on a compilation error on a file originating
from compiler-rt/lib/sanitizer-common.

sanitizer_platform_limits_linux.cc #includes asm/posix_types.h,
which, on our system, uses __kernel_fd_set and associated macros.
These aren't defined at the point of their use, and the compilation
fails with symptoms like:

  In file included from ../../../../src/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc:29:0:
  /usr/include/asm/posix_types.h:72:51: error: '__kernel_fd_set' has not been declared
  static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
  ...

The attached patch is a suggestion to fix this, by including linux/posix_types.h
instead of asm/posix_types.h. linux/posix_types defines the necessary types and
macros, then #includes asm/posix_types.h.

We have been using it locally for gcc without problems for a couple of years
on powerpc, x86 and x86_64-linux platforms. It is still needed for gcc-6 on
our powerpc host and applies cleanly on the compiler-rt trunk.

Comments ?

Thanks much in advance for your feedback,

With Kind Regards,

Olivier

Reviewers: llvm-commits, kcc

Subscribers: kcc, kubabrecka

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

llvm-svn: 268283

8 years ago[scan-build] fix logic error warning emitted on compiler-rt code base
Kostya Serebryany [Mon, 2 May 2016 19:07:20 +0000 (19:07 +0000)]
[scan-build] fix logic error warning emitted on compiler-rt code base

Summary:
Fix a "called c++ object pointer is null" warning emitted by Clang
Static Analyzer on the following file:
- lib/asan/asan_suppressions.cc.

Signed-off-by: Apelete Seketeli <apelete@seketeli.net>
Reviewers: kcc

Subscribers: Eugene.Zelenko, kubabrecka, llvm-commits

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

llvm-svn: 268282

8 years agoFix typos
Piotr Padlewski [Mon, 2 May 2016 19:06:51 +0000 (19:06 +0000)]
Fix typos

llvm-svn: 268281

8 years agoTypo. NFC.
Chad Rosier [Mon, 2 May 2016 19:06:04 +0000 (19:06 +0000)]
Typo. NFC.

llvm-svn: 268280

8 years agoUse false rather than 0 for a boolean value. NFC.
Chad Rosier [Mon, 2 May 2016 19:06:02 +0000 (19:06 +0000)]
Use false rather than 0 for a boolean value. NFC.

llvm-svn: 268279

8 years agoRemove unnecessary namespace specifiers.
Rui Ueyama [Mon, 2 May 2016 18:51:08 +0000 (18:51 +0000)]
Remove unnecessary namespace specifiers.

llvm-svn: 268278

8 years agoFix build breakage due to implicit conversion.
Zachary Turner [Mon, 2 May 2016 18:36:58 +0000 (18:36 +0000)]
Fix build breakage due to implicit conversion.

llvm-svn: 268277

8 years agoARM: fix handling of SUB immediates in peephole opt.
Tim Northover [Mon, 2 May 2016 18:30:08 +0000 (18:30 +0000)]
ARM: fix handling of SUB immediates in peephole opt.

We were negating an immediate that was going to be used in a SUBri form
unnecessarily. Since ADD/SUB are very similar we *can* do that, but we have to
change the SUB to an ADD at the same time. This also applies to ADD, and allows
us to handle a slightly larger range of immediates for those two operations.

rdar://25992245

llvm-svn: 268276

8 years agoAttempt to fix Windows bots.
Rui Ueyama [Mon, 2 May 2016 18:16:14 +0000 (18:16 +0000)]
Attempt to fix Windows bots.

llvm-svn: 268275

8 years agoAdd an argument to ValueObject::GetSyntheticBase that allows for name customization...
Enrico Granata [Mon, 2 May 2016 18:13:18 +0000 (18:13 +0000)]
Add an argument to ValueObject::GetSyntheticBase that allows for name customization on the generated value

llvm-svn: 268274

8 years agoFix --reproduce for --export-dynamic-symbol.
Rui Ueyama [Mon, 2 May 2016 18:12:09 +0000 (18:12 +0000)]
Fix --reproduce for --export-dynamic-symbol.

--export-dynamic-symbol doesn't take path.

llvm-svn: 268273

8 years ago[NVPTX] Fix sign/zero-extending ldg/ldu instruction selection
Justin Holewinski [Mon, 2 May 2016 18:12:02 +0000 (18:12 +0000)]
[NVPTX] Fix sign/zero-extending ldg/ldu instruction selection

Summary:
We don't have sign-/zero-extending ldg/ldu instructions defined,
so we need to emulate them with explicit CVTs. We were originally
handling the i8 case, but not any other cases.

Fixes PR26185

Reviewers: jingyue, jlebar

Subscribers: jholewinski

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

llvm-svn: 268272

8 years ago[codeview] Don't dump type stream bytes unless asked to
Reid Kleckner [Mon, 2 May 2016 18:10:00 +0000 (18:10 +0000)]
[codeview] Don't dump type stream bytes unless asked to

llvm-svn: 268271

8 years agoPDB - Instead of hardcoding stream numbers, use an enum.
Zachary Turner [Mon, 2 May 2016 18:09:21 +0000 (18:09 +0000)]
PDB - Instead of hardcoding stream numbers, use an enum.

llvm-svn: 268270

8 years ago[CFLAA] Fix a use-of-invalid-pointer bug.
George Burgess IV [Mon, 2 May 2016 18:09:19 +0000 (18:09 +0000)]
[CFLAA] Fix a use-of-invalid-pointer bug.

As shown in the diff, we used to add to CFLAA's cache by doing
`Cache[Fn] = buildSetsFrom(Fn)`. `buildSetsFrom(Fn)` may cause `Cache`
to reallocate its underlying storage, if this happens and `Cache[Fn]`
was evaluated prior to `buildSetsFrom(Fn)`, then we'll store the result
to a bad address.

Patch by Jia Chen.

llvm-svn: 268269

8 years agoParse PDB Name Hash Table
Zachary Turner [Mon, 2 May 2016 18:09:14 +0000 (18:09 +0000)]
Parse PDB Name Hash Table

PDB has a lot of similar data structures.  We already have code
for parsing a Name Map, but PDB seems to have a different but
very similar structure that is a hash table.  This is the
beginning of code needed in order to parse the name hash table,
but it is not yet complete.  It parses the basic metadata of
the hash table, the bucket array, and the names buffer, but
doesn't use any of these fields yet as the data structure
requires a non-trivial amount of work to understand.

llvm-svn: 268268

8 years agoAMDGPU: Move R600 specific code out of AMDGPUISelLowering.cpp
Tom Stellard [Mon, 2 May 2016 18:05:17 +0000 (18:05 +0000)]
AMDGPU: Move R600 specific code out of AMDGPUISelLowering.cpp

Reviewers: arsenm

Subscribers: jvesely, arsenm, llvm-commits

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

llvm-svn: 268267

8 years agoReversePostOrderFunctionAttrs is not modifying the call graph, let's preserve it.
Mehdi Amini [Mon, 2 May 2016 18:03:33 +0000 (18:03 +0000)]
ReversePostOrderFunctionAttrs is not modifying the call graph, let's preserve it.

When running cc1 with -flto=thin, it is followed by GlobalOpt, which
requires the callgraph. This saves rebuilding one.

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

8 years agoAMDGPU/SI: Fix bug in SIInstrInfo::insertWaitStates() uncovered by r268260
Tom Stellard [Mon, 2 May 2016 18:02:24 +0000 (18:02 +0000)]
AMDGPU/SI: Fix bug in SIInstrInfo::insertWaitStates() uncovered by r268260

We can't use MI->getDebugLoc() when MI is an iterator that could be
MBB.end().

llvm-svn: 268265

8 years ago[clang-tidy] Cleaning namespaces to be more consistant across checkers.
Etienne Bergeron [Mon, 2 May 2016 18:00:29 +0000 (18:00 +0000)]
[clang-tidy] Cleaning namespaces to be more consistant across checkers.

Summary:
The goal of the patch is to bring checkers in their appropriate namespace.
This path doesn't change any behavior.

Reviewers: alexfh

Subscribers: cfe-commits

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

llvm-svn: 268264

8 years agoI forgot to check in the test case for the changes I made to synthetic children yeste...
Enrico Granata [Mon, 2 May 2016 17:57:14 +0000 (17:57 +0000)]
I forgot to check in the test case for the changes I made to synthetic children yesterday. Do so now

llvm-svn: 268263

8 years ago[include-fixer] Fix Clang-tidy modernize-use-override and some Include What You Use...
Eugene Zelenko [Mon, 2 May 2016 17:49:00 +0000 (17:49 +0000)]
[include-fixer] Fix Clang-tidy modernize-use-override and some Include What You Use warnings.

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

llvm-svn: 268262

8 years agoExpand aggregate arguments more often on 32-bit Windows
Reid Kleckner [Mon, 2 May 2016 17:41:07 +0000 (17:41 +0000)]
Expand aggregate arguments more often on 32-bit Windows

Before this change, we would pass all non-HFA record arguments on
Windows with byval. Byval often blocks optimizations and results in bad
code generation. Windows now uses the existing workaround that other
x86_32 platforms use.

I also expanded the workaround to handle C++ records with constructors
on Windows. On non-Windows platforms, we have to keep generating the
same LLVM IR prototypes if we want our bitcode to be ABI compatible.
Otherwise we will encounter mismatch issues like PR21573.

Essentially fixes PR27522 in Clang instead of LLVM.

Reviewers: hans

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

llvm-svn: 268261

8 years agoAMDGPU/SI: Use the hazard recognizer to break SMEM soft clauses
Tom Stellard [Mon, 2 May 2016 17:39:06 +0000 (17:39 +0000)]
AMDGPU/SI: Use the hazard recognizer to break SMEM soft clauses

Summary:
Add support for detecting hazards in SMEM soft clauses, so that we only
break the clauses when necessary, either by adding s_nop or re-ordering
other alu instructions.

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 268260

8 years agoAMDGPU: llvm.SI.fs.constant is a source of divergence
Nicolai Haehnle [Mon, 2 May 2016 17:37:01 +0000 (17:37 +0000)]
AMDGPU: llvm.SI.fs.constant is a source of divergence

Summary:
This intrinsic is used to get flat-shaded fragment shader inputs. Those are
uniform across a primitive, but a fragment shader wave may process pixels from
multiple primitives (as indicated by the prim_mask), and so that's where
divergence can arise.

Reviewers: arsenm, tstellarAMD

Subscribers: arsenm, llvm-commits

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

llvm-svn: 268259

8 years agoQuote arguments for --reproduce.
Rui Ueyama [Mon, 2 May 2016 17:34:17 +0000 (17:34 +0000)]
Quote arguments for --reproduce.

llvm-svn: 268258

8 years agoScheduleDAGInstrs.cpp: Don't peel the iterator when it points the end. This will...
NAKAMURA Takumi [Mon, 2 May 2016 17:29:55 +0000 (17:29 +0000)]
ScheduleDAGInstrs.cpp: Don't peel the iterator when it points the end. This will fix the crash in r268143.

llvm-svn: 268257

8 years ago[WebAssembly] Rename memory_size intrinsic to current_memory
Derek Schuff [Mon, 2 May 2016 17:26:19 +0000 (17:26 +0000)]
[WebAssembly] Rename memory_size intrinsic to current_memory

This follows the recent change in the wasm spec.

llvm-svn: 268256

8 years ago[WebAssembly] Rename memory_size intrinsic to current_memory
Derek Schuff [Mon, 2 May 2016 17:25:22 +0000 (17:25 +0000)]
[WebAssembly] Rename memory_size intrinsic to current_memory

This follows the recent renaming in the wasm spec.

llvm-svn: 268255

8 years ago[SimplifyCFG] Extend TryToSimplifyUncondBranchFromEmptyBlock for empty block includin...
Hans Wennborg [Mon, 2 May 2016 17:22:54 +0000 (17:22 +0000)]
[SimplifyCFG] Extend TryToSimplifyUncondBranchFromEmptyBlock for empty block including lifetime intrinsics

Make it possible that TryToSimplifyUncondBranchFromEmptyBlock merges empty
basic block including lifetime intrinsics as well as phi nodes and
unconditional branch into its successor or predecessor(s).

If successor of empty block has single predecessor, all contents including
lifetime intrinsics are sinked into the successor. Otherwise, they are
hoisted into its predecessor(s) and then merged into the predecessor(s).

Patch by Josh Yoon <josh.yoon@samsung.com>!

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

llvm-svn: 268254

8 years ago[clang-tidy] Add modernize-make-shared check
Piotr Padlewski [Mon, 2 May 2016 16:56:39 +0000 (16:56 +0000)]
[clang-tidy] Add modernize-make-shared check

Because modernize-make-shared do almost the same job as
modernize-make-unique, I refactored common code to MakeSmartPtrCheck.

http://reviews.llvm.org/D19183

llvm-svn: 268253

8 years agoMove createReversePostOrderFunctionAttrsPass right after the inliner is done
Mehdi Amini [Mon, 2 May 2016 16:53:16 +0000 (16:53 +0000)]
Move createReversePostOrderFunctionAttrsPass right after the inliner is done

This is where it was originally, until LoopVersioningLICM was
inserted before in r259986, I don't believe it was on purpose.

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

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

8 years ago[LLE] Fix typo from r263058
Adam Nemet [Mon, 2 May 2016 16:52:00 +0000 (16:52 +0000)]
[LLE] Fix typo from r263058

This was meant to check unit stride for both the load and the store.

Thanks to Roman Shirokiy for noticing this.

llvm-svn: 268251

8 years agoAdd llvm-pdbdump to the tool substitutions list in lit. NFC.
Pete Cooper [Mon, 2 May 2016 16:51:26 +0000 (16:51 +0000)]
Add llvm-pdbdump to the tool substitutions list in lit.  NFC.

This adds llvm-pdbdump to the list of tools which get printed with
the full path in verbose mode.  This makes it easier to take the
whole run line from verbose output and run it again without prepending
with the builds bin directory.

llvm-svn: 268250

8 years agoFixed signed/unsigned comparison warning.
Simon Pilgrim [Mon, 2 May 2016 16:45:02 +0000 (16:45 +0000)]
Fixed signed/unsigned comparison warning.

llvm-svn: 268249

8 years agoRemove extra whitespace. NFC.
Chad Rosier [Mon, 2 May 2016 16:45:00 +0000 (16:45 +0000)]
Remove extra whitespace. NFC.

llvm-svn: 268248

8 years agoAMDGPU/SI: Use hazard recognizer to detect DPP hazards
Tom Stellard [Mon, 2 May 2016 16:23:09 +0000 (16:23 +0000)]
AMDGPU/SI: Use hazard recognizer to detect DPP hazards

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 268247

8 years agoremove blank lines
Sanjay Patel [Mon, 2 May 2016 15:49:09 +0000 (15:49 +0000)]
remove blank lines

llvm-svn: 268246

8 years ago[InstCombine] regenerate checks
Sanjay Patel [Mon, 2 May 2016 15:32:10 +0000 (15:32 +0000)]
[InstCombine] regenerate checks

llvm-svn: 268245

8 years ago[InstCombine] regenerate checks
Sanjay Patel [Mon, 2 May 2016 15:25:49 +0000 (15:25 +0000)]
[InstCombine] regenerate checks

llvm-svn: 268244

8 years ago[sanitizer] Fix a crash in SizeClassAllocator32 with an out-of-range pointer
Kuba Brecka [Mon, 2 May 2016 15:23:01 +0000 (15:23 +0000)]
[sanitizer] Fix a crash in SizeClassAllocator32 with an out-of-range pointer

This happens on a 64-bit platform that uses SizeClassAllocator32 (e.g. ASan on AArch64). When querying a large invalid pointer, `__sanitizer_get_allocated_size(0xdeadbeefdeadbeef)`, an assertion will fail.  This patch changes PointerIsMine to return false if the pointer is outside of [kSpaceBeg, kSpaceBeg + kSpaceSize).

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

llvm-svn: 268243

8 years ago[InstCombine] regenerate checks
Sanjay Patel [Mon, 2 May 2016 15:21:41 +0000 (15:21 +0000)]
[InstCombine] regenerate checks

llvm-svn: 268242

8 years ago[InstCombine] regenerate checks
Sanjay Patel [Mon, 2 May 2016 15:18:13 +0000 (15:18 +0000)]
[InstCombine] regenerate checks

llvm-svn: 268241

8 years agoForce llvm-ar to use the gnu format.
Rafael Espindola [Mon, 2 May 2016 15:16:43 +0000 (15:16 +0000)]
Force llvm-ar to use the gnu format.

Should fix the bots. Otherwise we try to create a thin bsd anchive.

llvm-svn: 268240

8 years ago[InstCombine] regenerate checks
Sanjay Patel [Mon, 2 May 2016 15:06:55 +0000 (15:06 +0000)]
[InstCombine] regenerate checks

llvm-svn: 268239

8 years ago[sanitizer] Don't reuse the main thread in ThreadRegistry
Kuba Brecka [Mon, 2 May 2016 15:06:08 +0000 (15:06 +0000)]
[sanitizer] Don't reuse the main thread in ThreadRegistry

There is a hard-to-reproduce crash happening on OS X that involves terminating the main thread (dispatch_main does that, see discussion at http://reviews.llvm.org/D18496) and later reusing the main thread's ThreadContext. This patch disables reuse of the main thread. I believe this problem exists only on OS X, because on other systems the main thread cannot be terminated without exiting the process.

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

llvm-svn: 268238

8 years ago[X86][SSE] Dropped X86ISD::FGETSIGNx86 and use MOVMSK instead for FGETSIGN lowering
Simon Pilgrim [Mon, 2 May 2016 14:58:22 +0000 (14:58 +0000)]
[X86][SSE] Dropped X86ISD::FGETSIGNx86 and use MOVMSK instead for FGETSIGN lowering

movmsk.ll tests are unchanged.

llvm-svn: 268237

8 years agoCleanup comments. NFC.
Chad Rosier [Mon, 2 May 2016 14:56:21 +0000 (14:56 +0000)]
Cleanup comments. NFC.

llvm-svn: 268236

8 years agoCleanup comments. NFC.
Chad Rosier [Mon, 2 May 2016 14:50:30 +0000 (14:50 +0000)]
Cleanup comments. NFC.

llvm-svn: 268235

8 years agoSilence unused variable warnings; NFC.
Aaron Ballman [Mon, 2 May 2016 14:48:03 +0000 (14:48 +0000)]
Silence unused variable warnings; NFC.

llvm-svn: 268234

8 years agoCleanup comments. NFC.
Chad Rosier [Mon, 2 May 2016 14:32:17 +0000 (14:32 +0000)]
Cleanup comments. NFC.

llvm-svn: 268233

8 years ago[InstCombine] regenerate checks
Sanjay Patel [Mon, 2 May 2016 14:21:55 +0000 (14:21 +0000)]
[InstCombine] regenerate checks

llvm-svn: 268232

8 years agoDon't include the output dir in the response file.
Rafael Espindola [Mon, 2 May 2016 14:12:35 +0000 (14:12 +0000)]
Don't include the output dir in the response file.

With this it is possible to use chroot/fakechroot to have a completely
reproducible link even when thin archives or linker scripts have
absolute paths.

llvm-svn: 268231

8 years ago[CLANG][AVX512][BUILTIN]movap{d|s}{128|256|512}
Michael Zuckerman [Mon, 2 May 2016 14:02:01 +0000 (14:02 +0000)]
[CLANG][AVX512][BUILTIN]movap{d|s}{128|256|512}

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

llvm-svn: 268230

8 years agoCopy thin archive members with --reproduce.
Rafael Espindola [Mon, 2 May 2016 13:54:10 +0000 (13:54 +0000)]
Copy thin archive members with --reproduce.

llvm-svn: 268229

8 years ago[ELF] - keep alive all non-text sections referenced by .eh_frame
George Rimar [Mon, 2 May 2016 13:49:42 +0000 (13:49 +0000)]
[ELF] - keep alive all non-text sections referenced by .eh_frame

Patch implements one of suggestions from Rafael Ávila de Espíndola,
to fix segfault after section that contains personality being
garbage collected.

Suggestion was just to keep alive all non executable sections
referenced by .eh_frame.

This fixes PR27529.

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

llvm-svn: 268228

8 years agoEnable the X86 call frame optimization for the 64-bit targets that allow it.
David L Kreitzer [Mon, 2 May 2016 13:45:25 +0000 (13:45 +0000)]
Enable the X86 call frame optimization for the 64-bit targets that allow it.
Fixes PR27241.

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

llvm-svn: 268227

8 years agoExpose a getFullName for thin archive members.
Rafael Espindola [Mon, 2 May 2016 13:45:06 +0000 (13:45 +0000)]
Expose a getFullName for thin archive members.

It will be used in lld.

llvm-svn: 268226

8 years agoDon't quote "--hash-style gnu".
Rafael Espindola [Mon, 2 May 2016 13:00:42 +0000 (13:00 +0000)]
Don't quote "--hash-style gnu".

Otherwise lld fails to use the response file.

llvm-svn: 268225

8 years agoTypo: ToComplex -> TooComplex. NFC.
Michael Kruse [Mon, 2 May 2016 12:25:36 +0000 (12:25 +0000)]
Typo: ToComplex -> TooComplex. NFC.

llvm-svn: 268224

8 years agoRename Conjuncts -> Disjunctions. NFC.
Michael Kruse [Mon, 2 May 2016 12:25:18 +0000 (12:25 +0000)]
Rename Conjuncts -> Disjunctions. NFC.

The check for complexity compares the number of polyhedra in a set,
which are combined by disjunctions (union, "OR"),
not conjunctions (intersection, "AND").

llvm-svn: 268223

8 years ago[ScheduleOptimizer] Add -polly-opt-outer-coincidence option.
Michael Kruse [Mon, 2 May 2016 11:35:27 +0000 (11:35 +0000)]
[ScheduleOptimizer] Add -polly-opt-outer-coincidence option.

Add a command line switch to set the
isl_options_set_schedule_outer_coincidence option. ISL then tries to
build schedules where the outer member of a band satisfies the
coincidence constraints.

In practice this allows loop skewing for more parallelism in inner
loops.

llvm-svn: 268222

8 years ago[WWW] Mark task as done and me as owner of some task
Johannes Doerfert [Mon, 2 May 2016 11:21:30 +0000 (11:21 +0000)]
[WWW] Mark task as done and me as owner of some task

llvm-svn: 268221

8 years agoTypo: isToComplex -> isTooComplex. NFC.
Michael Kruse [Mon, 2 May 2016 10:44:20 +0000 (10:44 +0000)]
Typo: isToComplex -> isTooComplex. NFC.

llvm-svn: 268220

8 years ago[SystemZ] Temporarily disable codegen test int-add-12.ll.
Jonas Paulsson [Mon, 2 May 2016 10:42:47 +0000 (10:42 +0000)]
[SystemZ] Temporarily disable codegen test int-add-12.ll.

This checks for AGSI transformation, which is temporarily disabled.

llvm-svn: 268219