platform/upstream/llvm.git
6 years agocbrt: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:25 +0000 (19:48 +0000)]
cbrt: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317241

6 years agoatanpi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:23 +0000 (19:48 +0000)]
atanpi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317240

6 years agoatanh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:22 +0000 (19:48 +0000)]
atanh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317239

6 years agoatan: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:20 +0000 (19:48 +0000)]
atan: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317238

6 years agoasinpi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:18 +0000 (19:48 +0000)]
asinpi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317237

6 years agoasinh: Use unary_dec instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:16 +0000 (19:48 +0000)]
asinh: Use unary_dec instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317236

6 years agoasin: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:15 +0000 (19:48 +0000)]
asin: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317235

6 years agoacospi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:13 +0000 (19:48 +0000)]
acospi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317234

6 years agoacosh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:11 +0000 (19:48 +0000)]
acosh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317233

6 years agoacos: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:06 +0000 (19:48 +0000)]
acos: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317232

6 years agorevert r317228: remove unused function from ObjCRuntime.h, NFC
Alex Lorenz [Thu, 2 Nov 2017 19:42:40 +0000 (19:42 +0000)]
revert r317228: remove unused function from ObjCRuntime.h, NFC

This function is actually used in LLDB

llvm-svn: 317231

6 years ago[X86] Simplify the pentium4 code in getHostCPUName to be based on feature flags....
Craig Topper [Thu, 2 Nov 2017 19:13:34 +0000 (19:13 +0000)]
[X86] Simplify the pentium4 code in getHostCPUName to be based on feature flags. Don't use 'x86-64' ever.

'x86-64' has started to reflect a sort of generic tuning flag for more modern 64-bit CPUs. We probably shouldn't be using it as the name of an unidentifiable pentium4. So use nocona for all 64-bit pentium4s instead.

llvm-svn: 317230

6 years ago[X86] Change getHostCPUName fallback code to not select 'x86-64' for unknown CPUs...
Craig Topper [Thu, 2 Nov 2017 19:13:32 +0000 (19:13 +0000)]
[X86] Change getHostCPUName fallback code to not select 'x86-64' for unknown CPUs in family 6 that has 64-bit support but not any newer SSE features. Use 'core2' instead

We know that's the earliest CPU with 64-bit support. x86-64 has taken on a role of representing a more modern 64-bit CPU so we probably shouldn't be using that when we can't identify things.

llvm-svn: 317229

6 years agoremove unused function from ObjCRuntime.h, NFC
Alex Lorenz [Thu, 2 Nov 2017 19:01:34 +0000 (19:01 +0000)]
remove unused function from ObjCRuntime.h, NFC

llvm-svn: 317228

6 years ago[OPENMP] Fix PR35152: Do not use getInvokeDest() function for EH checks.
Alexey Bataev [Thu, 2 Nov 2017 18:55:05 +0000 (18:55 +0000)]
[OPENMP] Fix PR35152: Do not use getInvokeDest() function for EH checks.

The compiler may crash under some conditions if the getInvokeDest() is
used, but later it is not used. Fixed this problem in OpenMP.

llvm-svn: 317227

6 years ago[dsymutil][doc] Improve wording in manpage and rename file.
Jonas Devlieghere [Thu, 2 Nov 2017 18:44:54 +0000 (18:44 +0000)]
[dsymutil][doc] Improve wording in manpage and rename file.

 - Improve wording
 - Rename llvm-dsymutil to dsymutil
 - Name -arch=<arch> argument

Differential revision: https://reviews.llvm.org/D39561

llvm-svn: 317226

6 years agoStrip off invariant.start because memory locations arent invariant
Anna Thomas [Thu, 2 Nov 2017 18:24:04 +0000 (18:24 +0000)]
Strip off invariant.start because memory locations arent invariant

The original change was reverted in rL317217 because of the failure in
the RS4GC testcase. I couldn't reproduce the failure on my local machine
(macbook) but could reproduce it on a linux box.

The failure was around removing the uses of invariant.start. The fix
here is to just RAUW undef (which was the first implementation in D39388).
This is perfectly valid IR as discussed in the review.

llvm-svn: 317225

6 years ago[refactor][selection] canonicalize selected string literal to objc
Alex Lorenz [Thu, 2 Nov 2017 18:05:48 +0000 (18:05 +0000)]
[refactor][selection] canonicalize selected string literal to objc
string literal when possible

llvm-svn: 317224

6 years agoFixed line length style issue.
Mitch Phillips [Thu, 2 Nov 2017 18:04:44 +0000 (18:04 +0000)]
Fixed line length style issue.

Reviewers: zturner

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39395

llvm-svn: 317223

6 years ago[TargetParser][AArch64] Reorder enum to preserve 5.0.0 libLLVM ABI.
Chad Rosier [Thu, 2 Nov 2017 17:52:27 +0000 (17:52 +0000)]
[TargetParser][AArch64] Reorder enum to preserve 5.0.0 libLLVM ABI.

This is required for backporting r311659 to the 5.0.1 release.
PR35060

Differential Revision: https://reviews.llvm.org/D39558

llvm-svn: 317222

6 years ago[dsymutil] Add a manpage for dsymutil
Jonas Devlieghere [Thu, 2 Nov 2017 17:12:34 +0000 (17:12 +0000)]
[dsymutil] Add a manpage for dsymutil

llvm-svn: 317221

6 years ago[CodeGen] add builtin attr tests to show errno-related diffs; NFC
Sanjay Patel [Thu, 2 Nov 2017 17:06:05 +0000 (17:06 +0000)]
[CodeGen] add builtin attr tests to show errno-related diffs; NFC

llvm-svn: 317220

6 years agoRun clang-format on lldb.cpp
Stephane Sezer [Thu, 2 Nov 2017 16:56:52 +0000 (16:56 +0000)]
Run clang-format on lldb.cpp

llvm-svn: 317219

6 years agoUse LLVM version string
Stephane Sezer [Thu, 2 Nov 2017 16:56:19 +0000 (16:56 +0000)]
Use LLVM version string

Summary:
macOS builds of LLDB use the bundle version from
`tools/driver/lldb-Info.plist`. That file hasn't been updated since the 4.0
release so the version we print provides no value. I also think that even if it
were up to date, that number has no meaning and displaying the version from the
LLVM tree is more valuable.

I know that Apple folks have some form of override for the clang version to
match the Xcode version, so it'd make sense for them to do the same for LLDB.

Reviewers: clayborg

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D39429

llvm-svn: 317218

6 years agoRevert "[RS4GC] Strip off invariant.start because memory locations arent invariant"
Anna Thomas [Thu, 2 Nov 2017 16:45:51 +0000 (16:45 +0000)]
Revert "[RS4GC] Strip off invariant.start because memory locations arent invariant"

This reverts commit r317215, investigating the test failure.

llvm-svn: 317217

6 years agoFix comment typo
Jan Korous [Thu, 2 Nov 2017 16:37:00 +0000 (16:37 +0000)]
Fix comment typo

llvm-svn: 317216

6 years ago[RS4GC] Strip off invariant.start because memory locations arent invariant
Anna Thomas [Thu, 2 Nov 2017 16:23:31 +0000 (16:23 +0000)]
[RS4GC] Strip off invariant.start because memory locations arent invariant

Summary:
Invariant.start on memory locations has the property that the memory
location is unchanging. However, this is not true in the face of
rewriting statepoints for GC.
Teach RS4GC about removing invariant.start so that optimizations after
RS4GC does not incorrect sink a load from the memory location past a
statepoint.

Added test showcasing the issue.

Reviewers: reames, apilipenko, dneilson

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39388

llvm-svn: 317215

6 years ago[libomptarget] Remove stale omp handle
Jonas Hahnfeld [Thu, 2 Nov 2017 15:59:51 +0000 (15:59 +0000)]
[libomptarget] Remove stale omp handle

This was never used in the upstream compiler and was responsible
for some problems with reductions in the clang-ykt fork.

Differential Revision: https://reviews.llvm.org/D39553

llvm-svn: 317214

6 years agoRevert "[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass."
Clement Courbet [Thu, 2 Nov 2017 15:53:10 +0000 (15:53 +0000)]
Revert "[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass."

undefined reference to `llvm::TargetPassConfig::ID' on
clang-ppc64le-linux-multistage

This reverts commit eea333c33fa73ad225ef28607795984829f65688.

llvm-svn: 317213

6 years agoChange a bunch of comments from C++1z to C++17. NFC
Marshall Clow [Thu, 2 Nov 2017 15:03:25 +0000 (15:03 +0000)]
Change a bunch of comments from C++1z to C++17. NFC

llvm-svn: 317212

6 years ago[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass.
Clement Courbet [Thu, 2 Nov 2017 15:02:51 +0000 (15:02 +0000)]
[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass.

Summary:
This is mostly a noop (most of the test diffs are renamed blocks).
There are a few temporary register renames (eax<->ecx) and a few blocks are
shuffled around.

See the discussion in PR33325 for more details.

Reviewers: spatel

Subscribers: mgorny

Differential Revision: https://reviews.llvm.org/D39456

llvm-svn: 317211

6 years agoMark tests as unsupported in C++98 as well
Roger Ferrer Ibanez [Thu, 2 Nov 2017 15:01:43 +0000 (15:01 +0000)]
Mark tests as unsupported in C++98 as well

Differential Revision: https://reviews.llvm.org/D38362

llvm-svn: 317210

6 years agoMark Endian as 'in progress'
Marshall Clow [Thu, 2 Nov 2017 14:53:08 +0000 (14:53 +0000)]
Mark Endian as 'in progress'

llvm-svn: 317209

6 years ago[OPENMP] Fix PR35156: Get correct thread id with windows exceptions.
Alexey Bataev [Thu, 2 Nov 2017 14:25:34 +0000 (14:25 +0000)]
[OPENMP] Fix PR35156: Get correct thread id with windows exceptions.

If the thread id is requested in windows mode within funclets, we may
generate incorrect function call that could lead to broken codegen.

llvm-svn: 317208

6 years ago[OpenMP] Extend "Avoid VLAs for reduction" optimization to VLAs as base
Jonas Hahnfeld [Thu, 2 Nov 2017 13:30:42 +0000 (13:30 +0000)]
[OpenMP] Extend "Avoid VLAs for reduction" optimization to VLAs as base

We can generate constant sized arrays whenever the array section has constant
length, even if the base expression itself is a VLA.

Differential Revision: https://reviews.llvm.org/D39504

llvm-svn: 317207

6 years ago[X86] Fix bug in legalize vector types - Split large loads
Ayman Musa [Thu, 2 Nov 2017 13:07:06 +0000 (13:07 +0000)]
[X86] Fix bug in legalize vector types - Split large loads

When splitting a large load to smaller legally-typed loads, the last load should be padded to reach the size of the previous one so a CONCAT_VECTORS node could reunite them again.
The code currently pads the last load to reach the size of the first load (instead of the previous).

Differential Revision: https://reviews.llvm.org/D38495

Change-Id: Ib60b55ed26ce901fabf68108daf52683fbd5013f
llvm-svn: 317206

6 years agoFix clang-format CLion integration bug.
Eric Liu [Thu, 2 Nov 2017 12:48:48 +0000 (12:48 +0000)]
Fix clang-format CLion integration bug.

CLion's Sax parser threw this error:

Failed to parse clang-format XML replacements. Input: <?xml version='1.0'?>
<replacements xml:space='preserve' incomplete_format='true' line=89>
[...]
[org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 66; Open quote is expected for attribute "line" associated with an  element type  "replacements".]

Patch by Justine Tunney (jart@google.com)!

llvm-svn: 317205

6 years ago[mips] Use register scavenging with MSA.
Simon Dardis [Thu, 2 Nov 2017 12:47:22 +0000 (12:47 +0000)]
[mips] Use register scavenging with MSA.

MSA stores and loads to the stack are more likely to require an
emergency GPR spill slot due to the smaller offsets available
with those instructions.

Handle this by overestimating the size of the stack by determining
the largest offset presuming that all callee save registers are
spilled and accounting of incoming arguments when determining
whether an emergency spill slot is required.

Reviewers: atanasyan

Differential Revision: https://reviews.llvm.org/D39056

llvm-svn: 317204

6 years agoTemporary workaround for msan false positive.
Sam McCall [Thu, 2 Nov 2017 12:29:47 +0000 (12:29 +0000)]
Temporary workaround for msan false positive.

llvm-svn: 317203

6 years agoAdding test for extraxt sub vector load and store avx512
Michael Zuckerman [Thu, 2 Nov 2017 12:19:36 +0000 (12:19 +0000)]
Adding test for extraxt sub vector load and store avx512

Change-Id: Iefcb0ec6b6aa1b530ce5358081f02e6e522a8e50
llvm-svn: 317202

6 years agoAllow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call...
Yichao Yu [Thu, 2 Nov 2017 12:18:33 +0000 (12:18 +0000)]
Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call site with operand bundle

Summary:
Similar to argmemonly, readonly and readnone.

Fix PR35128

Reviewers: andrew.w.kaylor, chandlerc, hfinkel

Reviewed By: hfinkel

Subscribers: hfinkel, llvm-commits

Differential Revision: https://reviews.llvm.org/D39434

llvm-svn: 317201

6 years agoFix typo in class annotation
Jan Korous [Thu, 2 Nov 2017 12:15:51 +0000 (12:15 +0000)]
Fix typo in class annotation

llvm-svn: 317200

6 years ago[AsmPrinterDwarf] Add support for .cfi_restore directive
Francis Visoiu Mistrih [Thu, 2 Nov 2017 12:00:58 +0000 (12:00 +0000)]
[AsmPrinterDwarf] Add support for .cfi_restore directive

As of today we only use .cfi_offset to specify the offset of a CSR, but
we never use .cfi_restore when the CSR is restored.

If we want to perform a more advanced type of shrink-wrapping, we need
to use .cfi_restore in order to switch the CFI state between blocks.

This patch only aims at adding support for the directive.

Differential Revision: https://reviews.llvm.org/D36114

llvm-svn: 317199

6 years ago[SimplifyCFG] Discard speculated dbg intrinsics
Bjorn Pettersson [Thu, 2 Nov 2017 11:55:14 +0000 (11:55 +0000)]
[SimplifyCFG] Discard speculated dbg intrinsics

Summary:
SpeculativelyExecuteBB can flatten the CFG by doing
speculative execution followed by a select instruction.
When the speculatively executed BB contained dbg intrinsics
the result could be a little bit weird, since those dbg
intrinsics were inserted before the select in the flattened
CFG. So when single stepping in the debugger, printing the
value of the variable referenced in the dbg intrinsic, it
could happen that it looked like the variable had values
that never actually were assigned to the variable.

This patch simply discards all dbg intrinsics that were found
in the speculatively executed BB.

Reviewers: aprantl, chandlerc, craig.topper

Reviewed By: aprantl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39494

llvm-svn: 317198

6 years ago[ARM] and, or, xor and add with shl combine
Sam Parker [Thu, 2 Nov 2017 10:43:10 +0000 (10:43 +0000)]
[ARM] and, or, xor and add with shl combine

The generic dag combiner will fold:

(shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)
(shl (or x, c1), c2) -> (or (shl x, c2), c1 << c2)

This can create constants which are too large to use as an immediate.
Many ALU operations are also able of performing the shl, so we can
unfold the transformation to prevent a mov imm instruction from being
generated.

Other patterns, such as b + ((a << 1) | 510), can also be simplified
in the same manner.

Differential Revision: https://reviews.llvm.org/D38084

llvm-svn: 317197

6 years agoThe patch updates sched numbers for YMM AVX instrs such as VMOVx, VORx, VXOR, VPERMIL...
Andrew V. Tischenko [Thu, 2 Nov 2017 10:33:41 +0000 (10:33 +0000)]
The patch updates sched numbers for YMM AVX instrs such as VMOVx, VORx, VXOR, VPERMILx, VBROADCASTx, etc.
PR32857 should be closed.
Differential Revision: https://reviews.llvm.org/D39227

llvm-svn: 317196

6 years agoUpdate go bindings to use new functions from rL317135.
Sam McCall [Thu, 2 Nov 2017 10:22:26 +0000 (10:22 +0000)]
Update go bindings to use new functions from rL317135.

This fixes duplicate symbol problems.

llvm-svn: 317195

6 years agoFix clangd test on platforms where get_thread_name does nothing.
Sam McCall [Thu, 2 Nov 2017 09:48:55 +0000 (09:48 +0000)]
Fix clangd test on platforms where get_thread_name does nothing.

llvm-svn: 317194

6 years agoPerformance tracing facility for clangd.
Sam McCall [Thu, 2 Nov 2017 09:21:51 +0000 (09:21 +0000)]
Performance tracing facility for clangd.

Summary:
This lets you visualize clangd's activity on different threads over time,
and understand critical paths of requests and object lifetimes.
The data produced can be visualized in Chrome (at chrome://tracing), or
in a standalone copy of catapult (http://github.com/catapult-project/catapult)

This patch consists of:
 - a command line flag "-trace" that causes clangd to emit JSON trace data
 - an API (in Trace.h) allowing clangd code to easily add events to the stream
 - several initial uses of this API to capture JSON-RPC requests, builds, logs

Example result: https://photos.app.goo.gl/12L9swaz5REGQ1rm1

Caveats:
 - JSON serialization is ad-hoc (isn't it everywhere?) so the API is
   limited to naming events rather than attaching arbitrary metadata.
   I'd like to fix this (I think we could use a JSON-object abstraction).
 - The recording is very naive: events are written immediately by
   locking a mutex. Contention on the mutex might disturb performance.
 - For now it just traces instants or spans on the current thread.
   There are other things that make sense to show (cross-thread flows,
   non-thread resources such as ASTs). But we have to start somewhere.

Reviewers: ioeric, ilya-biryukov

Subscribers: cfe-commits, mgorny

Differential Revision: https://reviews.llvm.org/D39086

llvm-svn: 317193

6 years agoFix building for ARM with dwarf exception handling
Martin Storsjo [Thu, 2 Nov 2017 08:16:16 +0000 (08:16 +0000)]
Fix building for ARM with dwarf exception handling

The previous definition of _LIBUNWIND_HIGHEST_DWARF_REGISTER seems
to be a copy of the ARM64 value (introduced in SVN r276128); since
the code actually hasn't compiled properly for arm in dwarf mode
before, this hasn't actually been used. Set it to the correct value
based on the UNW_ARM_* enum values.

The iwmmx control variables have to be made mutable, since they are
touched from within getRegister (which previously wasn't const), and
getRegister is used on a const Registers object in DwarfInstructions.hpp.

Differential Revision: https://reviews.llvm.org/D39251

llvm-svn: 317192

6 years agollvm-c/DebugInfo.h: Fix warning. [-Wdocumentation]
NAKAMURA Takumi [Thu, 2 Nov 2017 08:03:12 +0000 (08:03 +0000)]
llvm-c/DebugInfo.h: Fix warning. [-Wdocumentation]

llvm-svn: 317191

6 years ago[test] Remove the leftover empty directory after SVN r317189. NFC.
Martin Storsjo [Thu, 2 Nov 2017 08:02:03 +0000 (08:02 +0000)]
[test] Remove the leftover empty directory after SVN r317189. NFC.

llvm-svn: 317190

6 years ago[test] Move llvm-dlltool tests into tools/llvm-dlltool. NFC.
Martin Storsjo [Thu, 2 Nov 2017 07:57:32 +0000 (07:57 +0000)]
[test] Move llvm-dlltool tests into tools/llvm-dlltool. NFC.

A toplevel test directory DllTool isn't consistent with other
similar tools.

Differential Revision: https://reviews.llvm.org/D39513

llvm-svn: 317189

6 years ago[libclang] Add dummy libclang-headers target
Shoaib Meenai [Thu, 2 Nov 2017 05:04:00 +0000 (05:04 +0000)]
[libclang] Add dummy libclang-headers target

`LLVM_DISTRIBUTION_COMPONENTS` assumes that each component has both
`component` and `install-component` targets. Add a dummy no-op target
for `libclang-headers` to placate this check.

Differential Revision: https://reviews.llvm.org/D39524

llvm-svn: 317188

6 years ago[clangd] Remove redundant install
Shoaib Meenai [Thu, 2 Nov 2017 05:02:24 +0000 (05:02 +0000)]
[clangd] Remove redundant install

`add_clang_tool` already adds the install command, so the one here is
redundant.

llvm-svn: 317187

6 years ago[fuzzer] Fix nested mallocs
Vitaly Buka [Thu, 2 Nov 2017 04:12:10 +0000 (04:12 +0000)]
[fuzzer] Fix nested mallocs

Summary: Nested mallocs are possible with internal symbolizer.

Reviewers: kcc

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39397

llvm-svn: 317186

6 years ago[X86] Remove the model checks from the 486 detection code in Host.cpp
Craig Topper [Thu, 2 Nov 2017 03:32:50 +0000 (03:32 +0000)]
[X86] Remove the model checks from the 486 detection code in Host.cpp

This just provided a bunch of comments to read and not much else.

llvm-svn: 317185

6 years ago[X86] Simplify the detection of pentium-mmx in Host.cpp.
Craig Topper [Thu, 2 Nov 2017 03:32:49 +0000 (03:32 +0000)]
[X86] Simplify the detection of pentium-mmx in Host.cpp.

Rather than looking at model numbers just check for the mmx feature flag. While there promote INTEL_PENTIUM_MMX to a CPU type instead of a subtype so that we don't have weird type with only one subtype.

llvm-svn: 317184

6 years agoRevert r317182 for https://reviews.llvm.org/D39128
Jason Molenda [Thu, 2 Nov 2017 03:17:07 +0000 (03:17 +0000)]
Revert r317182 for  https://reviews.llvm.org/D39128
we're still failing on android.  I'll ask Larry to
ask Pavel for any tips he might be able to give.

llvm-svn: 317183

6 years agoCommit Lawrence D'Anna's patch to change
Jason Molenda [Thu, 2 Nov 2017 02:43:27 +0000 (02:43 +0000)]
Commit Lawrence D'Anna's patch to change
SetOututFileHandle to work with IOBase.

I did make one change after checking with Larry --
I renamed SBDebugger::Flush to FlushDebuggerOutputHandles
and added a short docstring to the .i file to make it
a little clearer under which context programs may need
to use this API.

Differential Revision: https://reviews.llvm.org/D39128
<rdar://problem/34870417>

llvm-svn: 317182

6 years agoAhhhh roll back that commit, I didn't see that Lawrence had filed
Jason Molenda [Thu, 2 Nov 2017 02:33:59 +0000 (02:33 +0000)]
Ahhhh roll back that commit, I didn't see that Lawrence had filed
a separate phabracator with the revised change.  This was his
first atttempt which broke on the bots the second time too.

llvm-svn: 317181

6 years agoCommit Lawrence D'Anna's patch to change
Jason Molenda [Thu, 2 Nov 2017 02:02:56 +0000 (02:02 +0000)]
Commit Lawrence D'Anna's patch to change
SetOututFileHandle to work with IOBase.

I did make one change after checking with Larry --
I renamed SBDebugger::Flush to FlushDebuggerOutputHandles
and added a short docstring to the .i file to make it
a little clearer under which context programs may need
to use this API.

Differential Revision: https://reviews.llvm.org/D38829

llvm-svn: 317180

6 years ago[clang-tidy] Clean up installation rules
Shoaib Meenai [Thu, 2 Nov 2017 01:48:20 +0000 (01:48 +0000)]
[clang-tidy] Clean up installation rules

An installation rule for the executable with the correct component is
already created by `add_clang_tool`, so the rule in this file is
redundant. Correct the installation component for the Python scripts so
that they also get installed by `install-clang-tidy`.

llvm-svn: 317155

6 years agoRevert "Remove some of the go specific C bindings for debug info now that they've...
Eric Christopher [Thu, 2 Nov 2017 01:46:49 +0000 (01:46 +0000)]
Revert "Remove some of the go specific C bindings for debug info now that they've been migrated into the main C API."

This reverts commits r317151 and 317152

llvm-svn: 317154

6 years ago[X86] Fix fast-isel-int-float-conversion test
Steven Wu [Thu, 2 Nov 2017 01:34:15 +0000 (01:34 +0000)]
[X86] Fix fast-isel-int-float-conversion test

Test is failing due to the revert in r317136. Fix the test to make all
the bots happy.

llvm-svn: 317153

6 years agoFix for go bindings header to match previous commit.
Eric Christopher [Thu, 2 Nov 2017 01:25:00 +0000 (01:25 +0000)]
Fix for go bindings header to match previous commit.

llvm-svn: 317152

6 years agoRemove some of the go specific C bindings for debug info now that they've been migrat...
Eric Christopher [Thu, 2 Nov 2017 01:24:12 +0000 (01:24 +0000)]
Remove some of the go specific C bindings for debug info now that they've been migrated into the main C API.

Fixes a go bindings breakage after r317135.

llvm-svn: 317151

6 years ago[clang-rename] Use add_clang_tool
Shoaib Meenai [Thu, 2 Nov 2017 01:11:40 +0000 (01:11 +0000)]
[clang-rename] Use add_clang_tool

`add_clang_tool` includes a call to `add_clang_executable`, but it also
sets up the install rule, and adds an `install-*` target. The latter is
required for using `LLVM_DISTRIBUTION_COMPONENTS`.

Differential Revision: https://reviews.llvm.org/D39522

llvm-svn: 317150

6 years ago[clang-reorder-fields] Switch to add_clang_tool
Shoaib Meenai [Thu, 2 Nov 2017 01:10:05 +0000 (01:10 +0000)]
[clang-reorder-fields] Switch to add_clang_tool

`add_clang_tool` invokes `add_clang_executable` internally, but it also
takes care of setting up the install rule. It also adds an `install-*`
build target, which is required for `LLVM_DISTRIBUTION_COMPONENTS`.

Differential Revision: https://reviews.llvm.org/D39523

llvm-svn: 317149

6 years ago[cmake] Switch FATAL_ERROR to SEND_ERROR
Shoaib Meenai [Thu, 2 Nov 2017 01:07:37 +0000 (01:07 +0000)]
[cmake] Switch FATAL_ERROR to SEND_ERROR

It's possible for multiple distribution components to have missing
targets, and it's a lot more convenient to get all those errors in one
shot rather than having to fix them individually.

llvm-svn: 317148

6 years agoPR33746: Store the 'inline'ness of a static data member with the update record
Richard Smith [Thu, 2 Nov 2017 01:06:00 +0000 (01:06 +0000)]
PR33746: Store the 'inline'ness of a static data member with the update record
for instantiating its definition.

We model the 'inline'ness as being instantiated with the static data member in
order to track whether the declaration has become a definition yet.

llvm-svn: 317147

6 years agoCodeGen: simplify EH personality selection (NFC)
Saleem Abdulrasool [Thu, 2 Nov 2017 00:25:40 +0000 (00:25 +0000)]
CodeGen: simplify EH personality selection (NFC)

Fix a typo in the comment, reorder to ensure that the ordering matches
across the ObjC/ObjC++ cases.  NFCI.

llvm-svn: 317146

6 years ago[Core] Comparison for unsigned >= 0 is redundant. NFCI.
Davide Italiano [Wed, 1 Nov 2017 23:49:23 +0000 (23:49 +0000)]
[Core] Comparison for unsigned >= 0 is redundant. NFCI.

llvm-svn: 317145

6 years ago[XML] Simplify lambda removing unused capture. NFCI.
Davide Italiano [Wed, 1 Nov 2017 23:48:07 +0000 (23:48 +0000)]
[XML] Simplify lambda removing unused capture. NFCI.

llvm-svn: 317144

6 years ago[Interpreter] Remove unused variable usage. NFCI.
Davide Italiano [Wed, 1 Nov 2017 23:46:21 +0000 (23:46 +0000)]
[Interpreter] Remove unused variable usage. NFCI.

llvm-svn: 317143

6 years agoRevert "[libc++] Don't alias quick_exit if __ANDROID_API__ < 21"
Dan Albert [Wed, 1 Nov 2017 23:43:07 +0000 (23:43 +0000)]
Revert "[libc++] Don't alias quick_exit if __ANDROID_API__ < 21"

Broke the Darwin build bots.

This reverts commit f56f1bba1ade4a408d403ff050d50e837bae47df.

llvm-svn: 317142

6 years agoUpdate cl::opt<uint64_t> instances to cl::opt<unsigned long long>
Mitch Phillips [Wed, 1 Nov 2017 23:39:41 +0000 (23:39 +0000)]
Update cl::opt<uint64_t> instances to cl::opt<unsigned long long>

cl::opt<uint64_t> fails when parsing command line arguments.

See https://bugs.llvm.org/show_bug.cgi?id=19665.

Reviewers: pcc

Subscribers: mgorny, llvm-commits, kcc

Differential Revision: https://reviews.llvm.org/D38657

llvm-svn: 317141

6 years agoFix missing -Wregister warning when 'register' is applied to a function parameter.
Richard Smith [Wed, 1 Nov 2017 23:38:37 +0000 (23:38 +0000)]
Fix missing -Wregister warning when 'register' is applied to a function parameter.

llvm-svn: 317140

6 years ago[yaml2obj][ELF] Add support for setting alignment in program headers
Jake Ehrlich [Wed, 1 Nov 2017 23:14:48 +0000 (23:14 +0000)]
[yaml2obj][ELF] Add support for setting alignment in program headers

Sometimes program headers have larger alignments than any of the
sections they contain. Currently yaml2obj can't produce such files. A
bug recently appeared in llvm-objcopy that failed in such a case. I'd
like to be able to add tests to llvm-objcopy for such cases.

This change adds an optional alignment parameter to program headers that
will be used instead of calculating the alignment.

Differential Revision: https://reviews.llvm.org/D39130

llvm-svn: 317139

6 years agoloop-unroll: teach remapInstruction to update dbg.value intrinsics.
Adrian Prantl [Wed, 1 Nov 2017 23:12:35 +0000 (23:12 +0000)]
loop-unroll: teach remapInstruction to update dbg.value intrinsics.

Fixes PR35112.

https://bugs.llvm.org/show_bug.cgi?id=35112

llvm-svn: 317138

6 years ago[ASTMatchers] Fix some Clang-tidy modernize and Include What You Use warnings; other...
Eugene Zelenko [Wed, 1 Nov 2017 23:09:49 +0000 (23:09 +0000)]
[ASTMatchers] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

llvm-svn: 317137

6 years agoRevert "Correct dwarf unwind information in function epilogue for X86"
Petar Jovanovic [Wed, 1 Nov 2017 23:05:52 +0000 (23:05 +0000)]
Revert "Correct dwarf unwind information in function epilogue for X86"

This reverts r317100 as it introduced sanitizer-x86_64-linux-autoconf
buildbot failure (build #15606).

llvm-svn: 317136

6 years ago[LLVM-C] Expose functions to create debug locations via DIBuilder.
whitequark [Wed, 1 Nov 2017 22:18:52 +0000 (22:18 +0000)]
[LLVM-C] Expose functions to create debug locations via DIBuilder.

These include:
  * Several functions for creating an LLVMDIBuilder,
  * LLVMDIBuilderCreateCompileUnit,
  * LLVMDIBuilderCreateFile,
  * LLVMDIBuilderCreateDebugLocation.

Patch by Harlan Haskins.

Differential Revision: https://reviews.llvm.org/D32368

llvm-svn: 317135

6 years ago[X86] Use foreach in X86.td to combine some of the CPU names that are obviously alias...
Craig Topper [Wed, 1 Nov 2017 22:15:49 +0000 (22:15 +0000)]
[X86] Use foreach in X86.td to combine some of the CPU names that are obviously aliases. NFC

llvm-svn: 317134

6 years ago[X86] Add CMOV feature to 'i686' processor, making it a proper alias of pentiumpro...
Craig Topper [Wed, 1 Nov 2017 22:15:40 +0000 (22:15 +0000)]
[X86] Add CMOV feature to 'i686' processor, making it a proper alias of pentiumpro which I believe it should be.

This is consistent with current gcc behavior.

llvm-svn: 317133

6 years ago[globalisel][regbank] Warn about MIR ambiguities when register bank/class names clash.
Daniel Sanders [Wed, 1 Nov 2017 22:13:05 +0000 (22:13 +0000)]
[globalisel][regbank] Warn about MIR ambiguities when register bank/class names clash.

llvm-svn: 317132

6 years agodotest: consistently call finalize_build_dictionary in debug info variants
Pavel Labath [Wed, 1 Nov 2017 22:01:03 +0000 (22:01 +0000)]
dotest: consistently call finalize_build_dictionary in debug info variants

dwarf&dwo versions were doing it, but gmodules and dsym weren't. All
this function does right now is pass OS=Android to make when targeting
android. This enables us to run dotest without manually passing --env
OS=Android.

llvm-svn: 317130

6 years agoadd LibCxxTuple.cpp, LibCxxQueue.cpp to xcode project file.
Jason Molenda [Wed, 1 Nov 2017 21:55:35 +0000 (21:55 +0000)]
add LibCxxTuple.cpp, LibCxxQueue.cpp to xcode project file.

llvm-svn: 317129

6 years ago[X86][SSE] Add PACKUS support to LowerTruncate
Simon Pilgrim [Wed, 1 Nov 2017 21:52:29 +0000 (21:52 +0000)]
[X86][SSE] Add PACKUS support to LowerTruncate

Similar to the existing code to lower to PACKSS, we can use PACKUS if the input vector's leading zero bits extend all the way to the packed/truncated value.

We have to account for pre-SSE41 targets not supporting PACKUSDW

llvm-svn: 317128

6 years agoRewrite FileOutputBuffer as two separate classes.
Rui Ueyama [Wed, 1 Nov 2017 21:38:14 +0000 (21:38 +0000)]
Rewrite FileOutputBuffer as two separate classes.

This patch is to rewrite FileOutputBuffer as two separate classes;
one for file-backed output buffer and the other for memory-backed
output buffer. I think the new code is easier to follow because two
different implementations are now actually separated as different
classes.

Unlike the previous implementation, the class that does not replace the
final output file using rename(2) does not create a temporary file at
all. Instead, it allocates memory using mmap(2) and use it. I think
this is an improvement because it is now guaranteed that the temporary
memory region doesn't trigger any I/O and there's now zero chance to
leave a temporary file behind. Also, it shouldn't impose new restrictions
because were using mmap IO too.

Differential Revision: https://reviews.llvm.org/D39449

llvm-svn: 317127

6 years ago[libunwind] Don't use dl_iterate_phdr if __ANDROID_API__ < 21
Dan Albert [Wed, 1 Nov 2017 21:26:06 +0000 (21:26 +0000)]
[libunwind] Don't use dl_iterate_phdr if __ANDROID_API__ < 21

Summary:
On ARM, dl_iterate_phdr is only implemented in the Android NDK version 21 or later:
https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/link.h#55

Reviewers: thakis, danalbert

Reviewed By: danalbert

Subscribers: dtzWill, aemerson, srhines, kristof.beyls

Differential Revision: https://reviews.llvm.org/D39468

llvm-svn: 317125

6 years ago[libc++] Don't alias quick_exit if __ANDROID_API__ < 21
Dan Albert [Wed, 1 Nov 2017 21:17:56 +0000 (21:17 +0000)]
[libc++] Don't alias quick_exit if __ANDROID_API__ < 21

Summary:
quick_exit() and at_quick_exit() were introduced in android NDK 21:
https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/stdlib.h#55

This CL conditions `_LIBCPP_HAS_QUICK_EXIT` on `__ANDROID_API__ >= 21`.  The only place this macro is used is in some using declarations: `using ::quick_exit`, `using ::at_quick_exit`.

Also, add a missing include to sys/cdefs.h which is what defines `__BIONIC__`.

Reviewers: thakis, danalbert, EricWF

Reviewed By: danalbert

Subscribers: srhines, krytarowski

Differential Revision: https://reviews.llvm.org/D39479

llvm-svn: 317124

6 years ago[dsymutil, llvm-objcopy] Fix some Clang-tidy modernize and Include What You Use warni...
Eugene Zelenko [Wed, 1 Nov 2017 21:16:06 +0000 (21:16 +0000)]
[dsymutil, llvm-objcopy] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

llvm-svn: 317123

6 years ago[X86] Add custom code to EVEX to VEX pass to turn unmasked 128-bit VPALIGND/Q into...
Craig Topper [Wed, 1 Nov 2017 21:00:59 +0000 (21:00 +0000)]
[X86] Add custom code to EVEX to VEX pass to turn unmasked 128-bit VPALIGND/Q into VPALIGNR if the extended registers aren't being used.

This will enable us to prefer VALIGND/Q during shuffle lowering in order to get the extended register encoding space when BWI isn't available. But if we end up not using the extended registers we can switch VPALIGNR for the shorter VEX encoding.

Differential Revision: https://reviews.llvm.org/D39401

llvm-svn: 317122

6 years agoloop-rotate: avoid duplicating dbg.value intrinsics in the entry block.
Adrian Prantl [Wed, 1 Nov 2017 20:53:22 +0000 (20:53 +0000)]
loop-rotate: avoid duplicating dbg.value intrinsics in the entry block.

This fixes the second half of PR35113.

This reapplies r317106 without modifications.

llvm-svn: 317121

6 years agoloop-rotate: eliminate duplicate debug intrinsics after splicing.
Adrian Prantl [Wed, 1 Nov 2017 20:43:30 +0000 (20:43 +0000)]
loop-rotate: eliminate duplicate debug intrinsics after splicing.

Fixes part of PR35113.

This reapplies r317105 with an additional check for isa<Instruction>
as found by the bots.

llvm-svn: 317120

6 years ago[fuzzer] Script to detect unbalanced allocation in -trace_malloc output
Vitaly Buka [Wed, 1 Nov 2017 20:27:06 +0000 (20:27 +0000)]
[fuzzer] Script to detect unbalanced allocation in -trace_malloc output

Reviewers: kcc

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39466

llvm-svn: 317119

6 years agoInclude GUIDs from the same module when computing GUIDs that needs to be imported.
Dehao Chen [Wed, 1 Nov 2017 20:26:47 +0000 (20:26 +0000)]
Include GUIDs from the same module when computing GUIDs that needs to be imported.

Summary: In the compile phase of SamplePGO+ThinLTO, ICP is not invoked. Instead, indirect call targets will be included as function metadata for ThinIndex to buidl the call graph. This should not only include functions defined in other modules, but also functions defined in the same module, otherwise ThinIndex may find the callee dead and eliminate it, while ICP in backend will revive the symbol, which leads to undefined symbol.

Reviewers: tejohnson

Reviewed By: tejohnson

Subscribers: sanjoy, llvm-commits, mehdi_amini

Differential Revision: https://reviews.llvm.org/D39480

llvm-svn: 317118

6 years ago[globalisel][tablegen] Add support for multi-insn emission
Daniel Sanders [Wed, 1 Nov 2017 19:57:57 +0000 (19:57 +0000)]
[globalisel][tablegen] Add support for multi-insn emission

The importer will now accept nested instructions in the result pattern such as
(ADDWrr $a, (SUBWrr $b, $c)). This is only valid when the nested instruction
def's a single vreg and the parent instruction consumes a single vreg where a
nested instruction is specified. The importer will automatically create a vreg
to connect the two using the type information from the pattern. This vreg will
be constrained to the register classes given in the instruction definitions*.

* REG_SEQUENCE is explicitly rejected because of this. The definition doesn't
  constrain to a register class and it therefore needs special handling.

llvm-svn: 317117

6 years agoRevert 317016 and 317048
Philip Reames [Wed, 1 Nov 2017 19:49:20 +0000 (19:49 +0000)]
Revert 317016 and 317048

The former appears to have introduced a miscompile in a stage2 clang build.  Revert so I can investigate offline.

llvm-svn: 317116