platform/upstream/llvm.git
8 years ago[LTO] Teach LTO about @llvm.used global.
Davide Italiano [Tue, 29 Mar 2016 21:46:35 +0000 (21:46 +0000)]
[LTO] Teach LTO about @llvm.used global.

If a symbol appears in @llvm.used, the linker is forced to treat
the symbol as there's a reference to it.

llvm-svn: 264790

8 years agoExploit graph properties during domain generation
Johannes Doerfert [Tue, 29 Mar 2016 21:31:05 +0000 (21:31 +0000)]
Exploit graph properties during domain generation

  As a CFG is often structured we can simplify the steps performed
  during domain generation. When we push domain information we can
  utilize the information from a block A to build the domain of a
  block B, if A dominates B. When we pull domain information we can
  use information from a block A to build the domain of a block B
  if B post-dominates A. This patch implements both ideas and thereby
  simplifies domains that were not simplified by isl. For the FINAL
  basic block in
    test/ScopInfo/complex-successor-structure-3.ll .
  we used to build a universe set with 81 basic sets. Now it actually is
  represented as universe set.

  While the initial idea to utilize the graph structure depended on the
  dominator and post-dominator tree we can use the available region
  information as a coarse grained replacement. To this end we push the
  region entry domain to the region exit and pull it from the region
  entry for the region exit.

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

llvm-svn: 264789

8 years ago[Sema] Attempt [3] to fix tests for utf-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 21:30:58 +0000 (21:30 +0000)]
[Sema] Attempt [3] to fix tests for utf-8 invalid format string specifiers

Make the tests darwin only. The bots complaining already output UTF-8
invalid specifiers, test the output as we expect on darwin systems.

llvm-svn: 264788

8 years agoEnable the SafeStack sanitizer on CloudABI by default.
Ed Schouten [Tue, 29 Mar 2016 21:13:53 +0000 (21:13 +0000)]
Enable the SafeStack sanitizer on CloudABI by default.

Over the last month we've been testing SafeStack extensively. As far as
we know, it works perfectly fine. That why I'd like to see us having
this enabled by default for CloudABI.

This change introduces a getDefaultSanitizers() function that toolchains
can use to specify which sanitizers are enabled by default. Once all
flags are processed, only flags that had no -fno-sanitize overrides are
enabled.

Extend the thests for CloudABI to test both the default case and the
case in which we want to explicitly disable SafeStack.

Reviewed by: eugenis, pcc
Differential Revision: http://reviews.llvm.org/D18505

llvm-svn: 264787

8 years agoFix comment in kmp_wait_release.h
Jonathan Peyton [Tue, 29 Mar 2016 21:08:29 +0000 (21:08 +0000)]
Fix comment in kmp_wait_release.h

Removed reference to "ref ct" in a comment, as ref_ct no longer exists. Also
moved the comment to where the task_team is about to be tested if NULL.

llvm-svn: 264786

8 years agoSimplify. NFC.
Rui Ueyama [Tue, 29 Mar 2016 20:53:21 +0000 (20:53 +0000)]
Simplify. NFC.

llvm-svn: 264785

8 years ago[Sema] Attempt [2] to fix tests for utf-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 20:47:09 +0000 (20:47 +0000)]
[Sema] Attempt [2] to fix tests for utf-8 invalid format string specifiers

Some buildbots still complain. Followup from r264752 and 264765.

llvm-svn: 264784

8 years ago[PGO] Move the instrumentation point closer to the value site.
Betul Buyukkurt [Tue, 29 Mar 2016 20:44:09 +0000 (20:44 +0000)]
[PGO] Move the instrumentation point closer to the value site.

For terminator instructions, the value profiling instrumentation
happens in a basic block other than where the value site resides.
This CR moves the instrumentation point prior to the value site.
Mostly NFC.

llvm-svn: 264783

8 years agoFactor out "adjustDomainDimensions" function [NFC]
Johannes Doerfert [Tue, 29 Mar 2016 20:41:24 +0000 (20:41 +0000)]
Factor out "adjustDomainDimensions" function [NFC]

llvm-svn: 264782

8 years agoFactor out "getFirstNonBoxedLoopFor" function [NFC]
Johannes Doerfert [Tue, 29 Mar 2016 20:32:43 +0000 (20:32 +0000)]
Factor out "getFirstNonBoxedLoopFor" function [NFC]

llvm-svn: 264781

8 years agoAdd a print method to MachineFunctionProperties for better error messages
Derek Schuff [Tue, 29 Mar 2016 20:28:20 +0000 (20:28 +0000)]
Add a print method to MachineFunctionProperties for better error messages

This makes check failures much easier to understand.
Make it empty (but leave it in the class) for NDEBUG builds.

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

llvm-svn: 264780

8 years agoClarifying some of the requirements for building with Visual Studio on Windows. Namel...
Aaron Ballman [Tue, 29 Mar 2016 20:23:55 +0000 (20:23 +0000)]
Clarifying some of the requirements for building with Visual Studio on Windows. Namely, we require the latest Update to be installed (for sanity purposes), and we require CMake 2.8.12.2 for building LLVM with Visual Studio.

llvm-svn: 264779

8 years agoFix some bugs in the posix output of llvm-nm. Which is documented on
Kevin Enderby [Tue, 29 Mar 2016 20:18:07 +0000 (20:18 +0000)]
Fix some bugs in the posix output of llvm-nm.  Which is documented on
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nm.html .

1) For Mach-O files the code was not printing the values in hex as is the default.
2) The values printed had leading zeros which they should not have.
3) The address for undefined symbols was printed as spaces instead of 0.
4) With the -A option with posix output for an archive did not use square
brackets around the archive member name.

rdar://25311883 and rdar://25299678

llvm-svn: 264778

8 years agoFix incorrect indention in kmp_alloc.c
Jonathan Peyton [Tue, 29 Mar 2016 20:10:00 +0000 (20:10 +0000)]
Fix incorrect indention in kmp_alloc.c

llvm-svn: 264777

8 years agoRemove dead KMP_USE_POOLED_ALLOC code
Jonathan Peyton [Tue, 29 Mar 2016 20:05:27 +0000 (20:05 +0000)]
Remove dead KMP_USE_POOLED_ALLOC code

llvm-svn: 264776

8 years agoBail as early as possible
Johannes Doerfert [Tue, 29 Mar 2016 20:02:05 +0000 (20:02 +0000)]
Bail as early as possible

  Instead of waiting for the domain construction to finish we will now
  bail as early as possible in case a complexity problem is encountered.
  This might save compile time but more importantly it makes the "abort"
  explicit. While we can always check if we invalidated the assumed
  context we can simply propagate the result of the construction back.
  This also removes the HasComplexCFG flag that was used for the very
  same reason.

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

llvm-svn: 264775

8 years agoclang-cl: Silently ignore /d2FastFail flag.
Nico Weber [Tue, 29 Mar 2016 19:41:02 +0000 (19:41 +0000)]
clang-cl: Silently ignore /d2FastFail flag.

It's some debugging flag for cl.exe related to how it writes crash dumps.

llvm-svn: 264774

8 years ago[profile] Make a test work if run by the super-user
Vedant Kumar [Tue, 29 Mar 2016 19:24:58 +0000 (19:24 +0000)]
[profile] Make a test work if run by the super-user

llvm-svn: 264773

8 years agoReplace a FIXME with a regular comment.
Rui Ueyama [Tue, 29 Mar 2016 19:19:03 +0000 (19:19 +0000)]
Replace a FIXME with a regular comment.

Because it doesn't have to be fixed even though it is probably
better to do.

llvm-svn: 264772

8 years ago[SPARC] Use AtomicExpandPass to expand AtomicRMW instructions.
James Y Knight [Tue, 29 Mar 2016 19:09:54 +0000 (19:09 +0000)]
[SPARC] Use AtomicExpandPass to expand AtomicRMW instructions.

They were previously expanded to CAS loops in a custom isel expansion,
but AtomicExpandPass knows how to do that generically.

Testing is covered by the existing sparc atomics.ll testcases.

llvm-svn: 264771

8 years agoMake BitcodeCompiler::compile a non-template function. NFC.
Rui Ueyama [Tue, 29 Mar 2016 19:08:46 +0000 (19:08 +0000)]
Make BitcodeCompiler::compile a non-template function. NFC.

llvm-svn: 264770

8 years agoMachineVerifier: On dead-def live segments, check that corresponding machine operand...
Matthias Braun [Tue, 29 Mar 2016 19:07:43 +0000 (19:07 +0000)]
MachineVerifier: On dead-def live segments, check that corresponding machine operand has a dead flag

llvm-svn: 264769

8 years agoLiveVariables: Fix typo and shorten comment
Matthias Braun [Tue, 29 Mar 2016 19:07:40 +0000 (19:07 +0000)]
LiveVariables: Fix typo and shorten comment

llvm-svn: 264768

8 years agoIR: Add DbgInfoIntrinsic::getVariableLocation
Duncan P. N. Exon Smith [Tue, 29 Mar 2016 18:56:03 +0000 (18:56 +0000)]
IR: Add DbgInfoIntrinsic::getVariableLocation

Create a common accessor, DbgInfoIntrinsic::getVariableLocation, which
doesn't care about the type of debug info intrinsic.  Use this to
further unify the implementations of DbgDeclareInst::getAddress and
DbgValueInst::getValue.

Besides being a cleanup, I'm planning to use this to prepare DEBUG
output without having to branch on the concrete type.

llvm-svn: 264767

8 years ago[asan] Make the Darwin/dead-strip.c test require El Capitan or newer
Ryan Govostes [Tue, 29 Mar 2016 18:54:29 +0000 (18:54 +0000)]
[asan] Make the Darwin/dead-strip.c test require El Capitan or newer

llvm-svn: 264766

8 years ago[Sema] Attempt to fix tests for utf-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 18:38:44 +0000 (18:38 +0000)]
[Sema] Attempt to fix tests for utf-8 invalid format string specifiers

Followup from r264752.

Attempt to appease buildbots:
 http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/2882
 http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/2619

llvm-svn: 264765

8 years agoRevert "[asan] Make the global_metadata_darwin.ll test require El Capitan or newer"
Ryan Govostes [Tue, 29 Mar 2016 18:27:24 +0000 (18:27 +0000)]
Revert "[asan] Make the global_metadata_darwin.ll test require El Capitan or newer"

llvm-svn: 264764

8 years ago[ThinLTO] Remove post-pass metadata linking support
Teresa Johnson [Tue, 29 Mar 2016 18:24:19 +0000 (18:24 +0000)]
[ThinLTO] Remove post-pass metadata linking support

Since we have moved to a model where functions are imported in bulk from
each source module after making summary-based importing decisions, there
is no longer a need to link metadata as a postpass, and all users have
been removed.

This essentially reverts r255909 and follow-on fixes.

llvm-svn: 264763

8 years agoWhen creating typedefs, don't call Type::GetName() since that might recursively call...
Greg Clayton [Tue, 29 Mar 2016 18:22:07 +0000 (18:22 +0000)]
When creating typedefs, don't call Type::GetName() since that might recursively call "lldb_private::Type::ResolveClangType(lldb_private::Type::ResolveStateTag)" and cause a crash. A lldb_private::Type should have a valid name if it is created without a backing CompilerType. Also provide a name that we can recognize so if we see it in a as the typename of a variable, we will know to check it out. This crash is happening quite a bit and we need to determine if this is due to incorrect debug info, or just due to some bug in LLDBD.

<rdar://problem/25192037>

llvm-svn: 264762

8 years agoChange how we handle R_MIPS_LO16.
Rafael Espindola [Tue, 29 Mar 2016 18:18:19 +0000 (18:18 +0000)]
Change how we handle R_MIPS_LO16.

Mips aligns PT_LOAD to 16 bits (0x10000). That means that the lower 16
bits are always the same, so we can, effectively, say that the
relocation is relative.

llvm-svn: 264761

8 years agoRemoved class FormatStyle, which is a struct, forward declaration from Refactoring...
Eric Liu [Tue, 29 Mar 2016 18:17:11 +0000 (18:17 +0000)]
Removed class FormatStyle, which is a struct, forward declaration from Refactoring.h to avoid compilation error.

llvm-svn: 264760

8 years ago[clang-tidy] Add check to detect dangling references in value handlers.
Samuel Benzaquen [Tue, 29 Mar 2016 18:02:26 +0000 (18:02 +0000)]
[clang-tidy] Add check to detect dangling references in value handlers.

Summary:
Add check misc-dangling-handle to detect dangling references in value
handlers like std::experimental::string_view.
It provides a configuration option to specify other handle types that
should also be checked.

Right now it detects:
 - Construction from temporaries.
 - Assignment from temporaries.
 - Return statements from temporaries or locals.
 - Insertion into containers from temporaries.

Reviewers: alexfh

Subscribers: cfe-commits

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

llvm-svn: 264759

8 years ago[asan] Make the global_metadata_darwin.ll test require El Capitan or newer
Ryan Govostes [Tue, 29 Mar 2016 17:58:49 +0000 (17:58 +0000)]
[asan] Make the global_metadata_darwin.ll test require El Capitan or newer

llvm-svn: 264758

8 years ago[Order Files] Fix order file usage
Chris Bieneman [Tue, 29 Mar 2016 17:51:08 +0000 (17:51 +0000)]
[Order Files] Fix order file usage

The CMake EXISTS operator needs to have the variable expanded. Not expanding this was causing the if statement to always be false, which made it impossible to pass linker order files in.

llvm-svn: 264757

8 years agoAdd support for no-jump-tables
Nirav Dave [Tue, 29 Mar 2016 17:46:23 +0000 (17:46 +0000)]
Add support for no-jump-tables

Add function soft attribute to the generation of Jump Tables in CodeGen
as initial step towards clang support of gcc's no-jump-table support

Reviewers: hans, echristo

Subscribers: llvm-commits

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

llvm-svn: 264756

8 years agoAdd MachineVerifier check for AllVRegsAllocated MachineFunctionProperty
Derek Schuff [Tue, 29 Mar 2016 17:40:22 +0000 (17:40 +0000)]
Add MachineVerifier check for AllVRegsAllocated MachineFunctionProperty

Summary:
Check that any function that has the property set is free of virtual
register operands.

Also, it is actually VirtRegMap (and not the register allocators) that
acutally remove the VReg operands (except for RegAllocFast).

Reviewers: qcolombet

Subscribers: MatzeB, llvm-commits, qcolombet

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

llvm-svn: 264755

8 years agoSwift Calling Convention: add swiftself attribute.
Manman Ren [Tue, 29 Mar 2016 17:37:21 +0000 (17:37 +0000)]
Swift Calling Convention: add swiftself attribute.

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

llvm-svn: 264754

8 years agoDon't try to call getTypeSize() on a class if it isn't complete as clang will assert...
Greg Clayton [Tue, 29 Mar 2016 17:36:38 +0000 (17:36 +0000)]
Don't try to call getTypeSize() on a class if it isn't complete as clang will assert and kill the process.

llvm-svn: 264753

8 years ago[Sema] Handle UTF-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 17:35:02 +0000 (17:35 +0000)]
[Sema] Handle UTF-8 invalid format string specifiers

Improve invalid format string specifier handling by printing out
invalid specifiers characters with \x, \u and \U. Previously clang
would print gargabe whenever the character is unprintable.

Example, before:
  NSLog(@"%\u25B9"); => warning: invalid conversion specifier ' [-Wformat-invalid-specifier]
after:
  NSLog(@"%\u25B9"); => warning: invalid conversion specifier '\u25b9' [-Wformat-invalid-specifier]

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

rdar://problem/24672159

llvm-svn: 264752

8 years ago[Darwin] [Builtins] Cleaning up OS X exclude lists. NFC.
Chris Bieneman [Tue, 29 Mar 2016 17:34:13 +0000 (17:34 +0000)]
[Darwin] [Builtins] Cleaning up OS X exclude lists. NFC.

This just gets rid of a bunch of empty object file warnings. It doesn't impact the generated archives.

llvm-svn: 264751

8 years ago[Darwin] [Builtins] Remove multi3 from the exclude list.
Chris Bieneman [Tue, 29 Mar 2016 17:24:23 +0000 (17:24 +0000)]
[Darwin] [Builtins] Remove multi3 from the exclude list.

This addresses PR27077. For some historical reason Darwin wasn't shipping multi3 in the compiler builtin library or in the OS builtin library. This caused building ffmpeg to fail because Polly was generating calls to multi3. It is easy enough to just add the builtin.

llvm-svn: 264750

8 years ago[Darwin] [Builtins] Cleaning up 10.4 exclude lists NFC
Chris Bieneman [Tue, 29 Mar 2016 17:24:21 +0000 (17:24 +0000)]
[Darwin] [Builtins] Cleaning up 10.4 exclude lists NFC

This just gets rid of a bunch of empty object file warnings. It doesn't impact the generated archives.

llvm-svn: 264749

8 years ago[x86] add tests to show current memset codegen
Sanjay Patel [Tue, 29 Mar 2016 17:09:27 +0000 (17:09 +0000)]
[x86] add tests to show current memset codegen

llvm-svn: 264748

8 years ago[SCEV] Extract out a MatchBinaryOp; NFCI
Sanjoy Das [Tue, 29 Mar 2016 16:40:44 +0000 (16:40 +0000)]
[SCEV] Extract out a MatchBinaryOp; NFCI

MatchBinaryOp abstracts out the IR instructions from the operations they
represent.  While this change is NFC, we will use this factoring later
to map things like `(extractvalue 0 (sadd.with.overflow X Y))` to `(add
X Y)`.

llvm-svn: 264747

8 years ago[SCEV] Use Operator::getOpcode instead of manual dispatch; NFC
Sanjoy Das [Tue, 29 Mar 2016 16:40:39 +0000 (16:40 +0000)]
[SCEV] Use Operator::getOpcode instead of manual dispatch; NFC

llvm-svn: 264746

8 years agoAdded formatAndApplyAllReplacements that works on multiple files in libTooling.
Eric Liu [Tue, 29 Mar 2016 16:31:53 +0000 (16:31 +0000)]
Added formatAndApplyAllReplacements that works on multiple files in libTooling.

Summary:
formatAndApplyAllReplacements takes a set of Replacements, applies them on a
Rewriter, and reformats the changed code.

Reviewers: klimek, djasper

Subscribers: ioeric, klimek, cfe-commits

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

llvm-svn: 264745

8 years agoMake InlineSimple's one-arg constructor explicit. NFC
Justin Lebar [Tue, 29 Mar 2016 16:26:06 +0000 (16:26 +0000)]
Make InlineSimple's one-arg constructor explicit. NFC

llvm-svn: 264744

8 years agoReformat a comment in InlineSimple.cpp. NFC
Justin Lebar [Tue, 29 Mar 2016 16:26:03 +0000 (16:26 +0000)]
Reformat a comment in InlineSimple.cpp. NFC

llvm-svn: 264743

8 years ago[CUDA] Add missing #undef __DEVICE__ to CUDA shim header.
Justin Lebar [Tue, 29 Mar 2016 16:24:23 +0000 (16:24 +0000)]
[CUDA] Add missing #undef __DEVICE__ to CUDA shim header.

llvm-svn: 264742

8 years ago[CUDA] Fix order of overloading preferences in comment.
Justin Lebar [Tue, 29 Mar 2016 16:24:22 +0000 (16:24 +0000)]
[CUDA] Fix order of overloading preferences in comment.

llvm-svn: 264741

8 years ago[CUDA] Make CUDA description strings in langopts into noun phrases. NFC
Justin Lebar [Tue, 29 Mar 2016 16:24:20 +0000 (16:24 +0000)]
[CUDA] Make CUDA description strings in langopts into noun phrases.  NFC

rsmith quoth in D18380:

> This should be a noun phrase -- this string appears in contexts like
> "support for %0 is enabled" -- so this should be "treating
> unattributed [...]".

llvm-svn: 264740

8 years ago[CUDA] Remove three obsolete CUDA cc1 flags.
Justin Lebar [Tue, 29 Mar 2016 16:24:16 +0000 (16:24 +0000)]
[CUDA] Remove three obsolete CUDA cc1 flags.

Summary:
* -fcuda-target-overloads

  Previously unconditionally set to true by the driver.  Necessary for
  correct functioning of the compiler -- our CUDA headers wrapper won't
  compile without this.

* -fcuda-disable-target-call-checks

  Previously unconditionally set to true by the driver.  Necessary to
  compile almost any external CUDA code -- almost all libraries assume
  that host+device code can call host or device functions.

* -fcuda-allow-host-calls-from-host-device

  No effect when target overloading is enabled.

Reviewers: tra

Subscribers: rsmith, cfe-commits

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

llvm-svn: 264739

8 years agoregenerate checks
Sanjay Patel [Tue, 29 Mar 2016 16:11:29 +0000 (16:11 +0000)]
regenerate checks

llvm-svn: 264738

8 years ago[AMDGPU] Switch linker to amdphdrs + update test
Konstantin Zhuravlyov [Tue, 29 Mar 2016 15:54:09 +0000 (15:54 +0000)]
[AMDGPU] Switch linker to amdphdrs + update test

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

llvm-svn: 264737

8 years agoTest commit access
Konstantin Zhuravlyov [Tue, 29 Mar 2016 15:15:44 +0000 (15:15 +0000)]
Test commit access

llvm-svn: 264736

8 years agoMove DynamicLoader plugins to SystemInitializerFull
Pavel Labath [Tue, 29 Mar 2016 15:00:26 +0000 (15:00 +0000)]
Move DynamicLoader plugins to SystemInitializerFull

Summary: These are not needed by lldb-server. Removing them shrinks the server by about 0.5%.

Reviewers: zturner

Subscribers: lldb-commits

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

llvm-svn: 264735

8 years ago[ThinLTO] Use new GlobalValue::getGUID helper (NFC)
Teresa Johnson [Tue, 29 Mar 2016 14:49:26 +0000 (14:49 +0000)]
[ThinLTO] Use new GlobalValue::getGUID helper (NFC)

This was already being used for functions and aliases, was missed when
handling global variables.

llvm-svn: 264734

8 years agoRevert the "build fix" in r264104
Pavel Labath [Tue, 29 Mar 2016 14:39:10 +0000 (14:39 +0000)]
Revert the "build fix" in r264104

this was needed because lldb-mi temporarily contained references to private lldb symbols
(lldb_private namespace), which it shouldn't have. The situation has since been rectified and
this wasn't the right fix anyway, since it can lead to funny ODR violations.

llvm-svn: 264733

8 years ago[ELF][MIPS] Remove redundant comments from the test. NFC.
Simon Atanasyan [Tue, 29 Mar 2016 14:26:24 +0000 (14:26 +0000)]
[ELF][MIPS] Remove redundant comments from the test. NFC.

Now llvm-objdump prints target function name for `jal` instruction by itself.

llvm-svn: 264732

8 years ago[llvm-readobj] NFC: Remove unneeded parenthesis
Hemant Kulkarni [Tue, 29 Mar 2016 14:20:20 +0000 (14:20 +0000)]
[llvm-readobj] NFC: Remove unneeded parenthesis

llvm-svn: 264731

8 years ago[ELF][MIPS] Reduce number of redundant entries in the local part of MIPS GOT
Simon Atanasyan [Tue, 29 Mar 2016 14:07:22 +0000 (14:07 +0000)]
[ELF][MIPS] Reduce number of redundant entries in the local part of MIPS GOT

Local symbol which requires GOT entry initialized by "page" address.
This address is high 16 bits of sum of the symbol value and the relocation
addend. In the relocation scanning phase final values of symbols are unknown
so to reduce number of allocated GOT entries do the following trick. Save
all output sections referenced by GOT relocations during the relocation
scanning phase. Then later in the `GotSection::finalize` method calculate
number of "pages" required to cover all saved output sections and allocate
appropriate number of GOT entries. We assume the worst case - each 64kb
page of the output section has at least one GOT relocation against it.

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

llvm-svn: 264730

8 years agoFix infinite recursion in DWO file parsing
Pavel Labath [Tue, 29 Mar 2016 13:42:02 +0000 (13:42 +0000)]
Fix infinite recursion in DWO file parsing

Summary:
Since r264316, clang started adding DW_AT_GNU_dwo_name attribute to dwo files (previously, this
attribute was only present in main object files), breaking pretty much every dwo test. The
problem was that we were treating the presence of said attribute as a signal that we should look
for information in an external object file, and caused us to enter an infinite loop. I fix this
by making sure we do not go looking for an external dwo file if we already *are* parsing a dwo
file.

Reviewers: tberghammer, clayborg

Subscribers: lldb-commits

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

llvm-svn: 264729

8 years ago[mips] Test commit: Mark insertNoop as dead code (NFC)
Simon Dardis [Tue, 29 Mar 2016 13:02:19 +0000 (13:02 +0000)]
[mips] Test commit: Mark insertNoop as dead code (NFC)

llvm-svn: 264728

8 years agoAdd additional Hi/Lo registers to Clang MipsTargetInfoBase
Hrvoje Varga [Tue, 29 Mar 2016 12:46:16 +0000 (12:46 +0000)]
Add additional Hi/Lo registers to Clang MipsTargetInfoBase
Differential Revision: http://reviews.llvm.org/D17378

llvm-svn: 264727

8 years agoAdd ClangUtil.cpp to the xcode project
Pavel Labath [Tue, 29 Mar 2016 12:06:37 +0000 (12:06 +0000)]
Add ClangUtil.cpp to the xcode project

llvm-svn: 264721

8 years ago[OPENMP 4.5] Allow data members in 'aligned' clause.
Alexey Bataev [Tue, 29 Mar 2016 10:59:56 +0000 (10:59 +0000)]
[OPENMP 4.5] Allow data members in 'aligned' clause.

OpenMP 4.5 allows privatization of data members OpenMP clauses. Patch
adds support for data members in 'aligned' clause.

llvm-svn: 264715

8 years agoVisual Studio native visualization for TemplateParameterList and TemplateTypeParmDecl
Mike Spertus [Tue, 29 Mar 2016 10:57:24 +0000 (10:57 +0000)]
Visual Studio native visualization for TemplateParameterList and TemplateTypeParmDecl

With this change, a TemplateParameterList will suggestively display in the locals window something like:
  <typename T, int i>

llvm-svn: 264714

8 years agoAdd missing swig wrappers for r264662
Pavel Labath [Tue, 29 Mar 2016 10:41:40 +0000 (10:41 +0000)]
Add missing swig wrappers for r264662

llvm-svn: 264713

8 years ago[mips] Correct MIPS16 jal/jalx to have uimm26 offsets and add MC layer range checks...
Daniel Sanders [Tue, 29 Mar 2016 09:40:38 +0000 (09:40 +0000)]
[mips] Correct MIPS16 jal/jalx to have uimm26 offsets and add MC layer range checks. NFC.

Summary:
However, this has no effect at this time because the instructions affected
are marked 'isCodeGenOnly=1' and have no alternative for the MC layer.

Reviewers: vkalintiris

Subscribers: llvm-commits, dsanders

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

llvm-svn: 264712

8 years agoForgot to address last minor review comment in r264708. Doing that now.
George Rimar [Tue, 29 Mar 2016 09:37:17 +0000 (09:37 +0000)]
Forgot to address last minor review comment in r264708. Doing that now.

llvm-svn: 264711

8 years agoVisual Studio native visualizer for InjectedClassNameType
Mike Spertus [Tue, 29 Mar 2016 09:24:45 +0000 (09:24 +0000)]
Visual Studio native visualizer for InjectedClassNameType

Also fixes some omissions for TemplateSpecializationType

llvm-svn: 264710

8 years ago[OPENMP] Remove extra code transformation.
Alexey Bataev [Tue, 29 Mar 2016 08:58:54 +0000 (08:58 +0000)]
[OPENMP] Remove extra code transformation.

For better support of some specific GNU extensions some extra
transformation of AST nodes were introduced. These transformations are
very hard to handle. The code is improved in handling of these
extensions by using captured expressions construct.

llvm-svn: 264709

8 years ago[ELF, PR27091] - Implemented -t/--trace option
George Rimar [Tue, 29 Mar 2016 08:45:40 +0000 (08:45 +0000)]
[ELF, PR27091] - Implemented -t/--trace option

-t/--trace
Print the names of the input files as ld processes them.
This fixes https://llvm.org/bugs/show_bug.cgi?id=27091.

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

llvm-svn: 264708

8 years ago[ELF] - Error out when R_X86_64_PC32/R_X86_64_32 are used against preemptible symbol...
George Rimar [Tue, 29 Mar 2016 08:35:42 +0000 (08:35 +0000)]
[ELF] - Error out when R_X86_64_PC32/R_X86_64_32 are used against preemptible symbol when linking shared object.

When R_X86_64_PC32/R_X86_64_32 relocations are
used against preemptible symbol and output is position independent,
error should be generated.

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

llvm-svn: 264707

8 years agofix CHECK_NOT -> CHECK-NOT
Junmo Park [Tue, 29 Mar 2016 07:53:07 +0000 (07:53 +0000)]
fix CHECK_NOT -> CHECK-NOT

llvm-svn: 264706

8 years agoRevert "[ScopInfo] Fix domains after loops."
Michael Kruse [Tue, 29 Mar 2016 07:50:52 +0000 (07:50 +0000)]
Revert "[ScopInfo] Fix domains after loops."

This reverts commit r264118. The approach is still under discussion.

llvm-svn: 264705

8 years agofixed typo - CHECK-LABEL
Junmo Park [Tue, 29 Mar 2016 07:03:27 +0000 (07:03 +0000)]
fixed typo - CHECK-LABEL

llvm-svn: 264704

8 years agoAdded 2 notes
Elena Demikhovsky [Tue, 29 Mar 2016 06:55:56 +0000 (06:55 +0000)]
Added 2 notes
1) Skylake and KNL support for X86
2) masked intrinsics load/store/gather/scatter

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

llvm-svn: 264703

8 years agofixed typo - CHECK-LABEL
Elena Demikhovsky [Tue, 29 Mar 2016 06:49:38 +0000 (06:49 +0000)]
fixed typo - CHECK-LABEL

llvm-svn: 264702

8 years agoAVX-512: fixed a bug in fp_to_uint pattern on KNL
Elena Demikhovsky [Tue, 29 Mar 2016 06:33:41 +0000 (06:33 +0000)]
AVX-512: fixed a bug in fp_to_uint pattern on KNL

Fixed fp_to_uint instruction selection on KNL.
One pattern was missing for <4 x double> to <4 x i32>

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

llvm-svn: 264701

8 years ago[OPENMP] Allow runtime insert its own code inside OpenMP regions.
Alexey Bataev [Tue, 29 Mar 2016 05:34:15 +0000 (05:34 +0000)]
[OPENMP] Allow runtime insert its own code inside OpenMP regions.

Solution unifies interface of RegionCodeGenTy type to allow insert
runtime-specific code before/after main codegen action defined in
CGStmtOpenMP.cpp file. Runtime should not define its own RegionCodeGenTy
for general OpenMP directives, but must be allowed to insert its own
 (required) code to support target specific codegen.

llvm-svn: 264700

8 years agoBitcodeReader: Allow METADATA_STRINGS to only have !""
Duncan P. N. Exon Smith [Tue, 29 Mar 2016 05:25:17 +0000 (05:25 +0000)]
BitcodeReader: Allow METADATA_STRINGS to only have !""

Support parsing a METADATA_STRINGS record that only has a single piece
of metadata, !"".  Fixes a corner case in r264551.

llvm-svn: 264699

8 years ago[LTO] Don't internalize if --export-dynamic is passed.
Davide Italiano [Tue, 29 Mar 2016 04:34:09 +0000 (04:34 +0000)]
[LTO] Don't internalize if --export-dynamic is passed.

We treat that in the same way we treat shared libraries.

llvm-svn: 264698

8 years ago[SimlifyCFG] Prevent passes from destroying canonical loop structure, especially...
Hyojin Sung [Tue, 29 Mar 2016 04:08:57 +0000 (04:08 +0000)]
[SimlifyCFG] Prevent passes from destroying canonical loop structure, especially for nested loops

When eliminating or merging almost empty basic blocks, the existence of non-trivial PHI nodes
is currently used to recognize potential loops of which the block is the header and keep the block.
However, the current algorithm fails if the loops' exit condition is evaluated only with volatile
values hence no PHI nodes in the header. Especially when such a loop is an outer loop of a nested
loop, the loop is collapsed into a single loop which prevent later optimizations from being
applied (e.g., transforming nested loops into simplified forms and loop vectorization).

The patch augments the existing PHI node-based check by adding a pre-test if the BB actually
belongs to a set of loop headers and not eliminating it if yes.

llvm-svn: 264697

8 years agoRegisterPressure: Simplify liveness tracking when lanemasks are not checked.
Matthias Braun [Tue, 29 Mar 2016 03:54:22 +0000 (03:54 +0000)]
RegisterPressure: Simplify liveness tracking when lanemasks are not checked.

Split RegisterOperands code that collects defs/uses into a variant with
and without lanemask tracking. This is a bit of code duplication, but
there are enough subtle differences between the two variants that this
seems cleaner (and potentially faster).

This also fixes a problem where lanes where tracked even though
TrackLaneMasks was false. This is part of the fix for
http://llvm.org/PR27106. I will commit the testcase when it is
completely fixed.

llvm-svn: 264696

8 years agoLiveVariables: Do not remove dead flags from vreg operands
Matthias Braun [Tue, 29 Mar 2016 03:08:18 +0000 (03:08 +0000)]
LiveVariables: Do not remove dead flags from vreg operands

Also add a FIXME comment on why Mips RDDSP causes bogus dead flags to be
added which LiveVariables cleans up by accident.

llvm-svn: 264695

8 years ago[clang-tidy] Add performance check to flag function parameters of expensive to copy...
Felix Berger [Tue, 29 Mar 2016 02:42:38 +0000 (02:42 +0000)]
[clang-tidy] Add performance check to flag function parameters of expensive to copy types that can be safely converted to const references.

Reviewers: alexfh

Subscribers: fowles, cfe-commits

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

llvm-svn: 264694

8 years ago[llvm-readobj] Support GNU style dyn-relocations
Hemant Kulkarni [Tue, 29 Mar 2016 02:41:49 +0000 (02:41 +0000)]
[llvm-readobj] Support GNU style dyn-relocations

http://reviews.llvm.org/D18534

llvm-svn: 264693

8 years agoRevert r264961. I didn't have asserts enable when testing.
Davide Italiano [Tue, 29 Mar 2016 02:20:10 +0000 (02:20 +0000)]
Revert r264961. I didn't have asserts enable when testing.

llvm-svn: 264692

8 years ago[LTO] Include bitcode symbol name in unreachable messages.
Davide Italiano [Tue, 29 Mar 2016 01:40:07 +0000 (01:40 +0000)]
[LTO] Include bitcode symbol name in unreachable messages.

llvm-svn: 264691

8 years ago[PowerPC] Refactor popcnt[dw] target features
Hal Finkel [Tue, 29 Mar 2016 01:36:01 +0000 (01:36 +0000)]
[PowerPC] Refactor popcnt[dw] target features

Instead of using two feature bits, one to indicate the availability of the
popcnt[dw] instructions, and another to indicate whether or not they're fast,
use a single enum. This allows more consistent control via target attribute
strings, and via Clang's command line.

llvm-svn: 264690

8 years ago[Codegen] Decrease minimum jump table density.
Kyle Butt [Tue, 29 Mar 2016 00:23:41 +0000 (00:23 +0000)]
[Codegen] Decrease minimum jump table density.

Minimum density for both optsize and non optsize are now options
-sparse-jump-table-density (default 10) for non optsize functions
-dense-jump-table-density (default 40) for optsize functions, which
matches the current default. This improves several benchmarks at google
at the cost of a small codesize increase. For code compiled with -Os,
the old behavior continues

llvm-svn: 264689

8 years ago[LTO] Include in .symtab/.dynsym symbols introduced by optimizations.
Davide Italiano [Tue, 29 Mar 2016 00:15:52 +0000 (00:15 +0000)]
[LTO] Include in .symtab/.dynsym symbols introduced by optimizations.

Some optimizations, e.g. SimplifyLibCalls, can replace functions with
others as part of the lowering, e.g. printf => puts.
The new symbols don't have the isUsedInRegularObj flag set so they
don't get included in the final symbol table (and dynamic symbol
table), and the dynamic linker gets confused. Include  them as a fix.

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

llvm-svn: 264688

8 years ago[analyzer] Use BodyFarm-synthesized body even when actual body available.
Devin Coughlin [Mon, 28 Mar 2016 23:55:58 +0000 (23:55 +0000)]
[analyzer] Use BodyFarm-synthesized body even when actual body available.

Change body autosynthesis to use the BodyFarm-synthesized body even when
an actual body exists. This enables the analyzer to use the simpler,
analyzer-provided body to model the behavior of the function rather than trying
to understand the actual body. Further, this makes the analyzer robust against
changes in headers that expose the implementations of those bodies.

rdar://problem/25145950

llvm-svn: 264687

8 years agoSample profile summary cleanup
Easwaran Raman [Mon, 28 Mar 2016 23:14:29 +0000 (23:14 +0000)]
Sample profile summary cleanup

Replace references to MaxHeadSamples with MaxFunctionCount

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

llvm-svn: 264686

8 years agoMove some functions from DWARFASTParserClang to ClangASTImporter.
Zachary Turner [Mon, 28 Mar 2016 22:53:41 +0000 (22:53 +0000)]
Move some functions from DWARFASTParserClang to ClangASTImporter.

This allows these functions to be re-used by a forthcoming
PDBASTParser.  The functions in question are CanCompleteType,
CompleteType, and CanImport.  Conceptually, these functions belong
on ClangASTImporter anyway, and previously they were just ping
ponging around through a few levels of indirection to end up there
as well, so this patch actually makes the code somewhat simpler.

A few methods were moved to a new file called ClangUtil, so that
they can be shared between ClangASTImporter and ClangASTContext
without creating a circular dependency between those two cpp
files.

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

llvm-svn: 264685

8 years ago[WebAssembly] Remove duplicate disabling of passes
Derek Schuff [Mon, 28 Mar 2016 22:52:20 +0000 (22:52 +0000)]
[WebAssembly] Remove duplicate disabling of passes

Also put all the disabled passes together

llvm-svn: 264684

8 years ago[PowerPC] Clarify a comment in PPCTTI about vector loads
Hal Finkel [Mon, 28 Mar 2016 22:39:35 +0000 (22:39 +0000)]
[PowerPC] Clarify a comment in PPCTTI about vector loads

This should say that we could do unaligned vector loads on the P7 using VSX
instructions, not that we should.

llvm-svn: 264683

8 years ago[libprofile] Use one fewer -mllvm option in this test.
Sean Silva [Mon, 28 Mar 2016 22:23:03 +0000 (22:23 +0000)]
[libprofile] Use one fewer -mllvm option in this test.

AFAIK there is still no way to avoid `-mllvm -disable-vp=false`
currently.

llvm-svn: 264682

8 years ago[PGO] More comments how function pointers for indirect calls are mapped
Adam Nemet [Mon, 28 Mar 2016 22:18:53 +0000 (22:18 +0000)]
[PGO] More comments how function pointers for indirect calls are mapped
to function names

Summary:
Hopefully this will make it easier for the next person to figure all
this out...

Reviewers: bogner, davidxl

Subscribers: davidxl, cfe-commits

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

llvm-svn: 264681