platform/upstream/llvm.git
8 years ago[X86] Remove unused operand from a function and all its callers. NFC
Craig Topper [Thu, 28 Apr 2016 05:58:46 +0000 (05:58 +0000)]
[X86] Remove unused operand from a function and all its callers. NFC

llvm-svn: 267854

8 years ago[CodeGen] Default CTTZ_ZERO_UNDEF/CTLZ_ZERO_UNDEF to Expand in TargetLoweringBase...
Craig Topper [Thu, 28 Apr 2016 03:34:31 +0000 (03:34 +0000)]
[CodeGen] Default CTTZ_ZERO_UNDEF/CTLZ_ZERO_UNDEF to Expand in TargetLoweringBase. This is what the majority of the targets want and removes a bunch of code. Set it to Legal explicitly in the few cases where that's the desired behavior.

llvm-svn: 267853

8 years agoRemove names of unreferenced parameters. Patch from STL@microsoft.com
Eric Fiselier [Thu, 28 Apr 2016 03:17:56 +0000 (03:17 +0000)]
Remove names of unreferenced parameters. Patch from STL@microsoft.com

llvm-svn: 267852

8 years agoCodeGen: Add DetectDeadLanes pass.
Matthias Braun [Thu, 28 Apr 2016 03:07:16 +0000 (03:07 +0000)]
CodeGen: Add DetectDeadLanes pass.

The DetectDeadLanes pass performs a dataflow analysis of used/defined
subregister lanes across COPY instructions and instructions that will
get lowered to copies. It detects dead definitions and uses reading
undefined values which are obscured by COPY and subregister usage.

These dead definitions cause trouble in the register coalescer which
cannot deal with definitions suddenly becoming dead after coalescing
COPY instructions.

For now the pass only adds dead and undef flags to machine operands. It
should be possible to extend it in the future to remove the dead
instructions and redo the analysis for the affected virtual
registers.

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

llvm-svn: 267851

8 years agoTableGen: Produce CoveredBySubRegs summary for register classes
Matthias Braun [Thu, 28 Apr 2016 03:07:11 +0000 (03:07 +0000)]
TableGen: Produce CoveredBySubRegs summary for register classes

This will be used in the upcoming "DetectDeadLanes" pass.

llvm-svn: 267850

8 years agoTargetRegisterInfo: Introduce reverseComposeSubRegIndexLaneMask()
Matthias Braun [Thu, 28 Apr 2016 03:07:07 +0000 (03:07 +0000)]
TargetRegisterInfo: Introduce reverseComposeSubRegIndexLaneMask()

This function performs the reverse computation of
composeSubRegIndexLaneMask().

It will be used in the upcoming "DetectDeadLanes" pass.

llvm-svn: 267849

8 years agoTableGen: Support lanemasks for classes without subregisters
Matthias Braun [Thu, 28 Apr 2016 03:07:04 +0000 (03:07 +0000)]
TableGen: Support lanemasks for classes without subregisters

Previously using lanemasks on registers without any subregisters was not
well defined. This commit extends TargetRegisterInfo/tablegen to:
- Report a lanemask of 1 for regclasses without subregisters
- Do the right thing when mapping a 0/1 lanemask from a class without
  subregisters into a class with subregisters in
  TargetRegisterInfo::composeSubRegIndexLaneMasks().

This will be used in the upcoming "DetectDeadLanes" patch.

llvm-svn: 267848

8 years agoAdd comment.
Rui Ueyama [Thu, 28 Apr 2016 03:04:15 +0000 (03:04 +0000)]
Add comment.

llvm-svn: 267847

8 years agoCGOpenMPRuntime.h: Prune extra comma in \param. [-Wdocumentation]
NAKAMURA Takumi [Thu, 28 Apr 2016 02:45:21 +0000 (02:45 +0000)]
CGOpenMPRuntime.h: Prune extra comma in \param. [-Wdocumentation]

llvm-svn: 267845

8 years agoAdd braces, move braces, and rename variables to avoid shadowing. Patch from STL...
Eric Fiselier [Thu, 28 Apr 2016 02:45:11 +0000 (02:45 +0000)]
Add braces, move braces, and rename variables to avoid shadowing. Patch from STL@microsoft.com

llvm-svn: 267844

8 years agoProvide member function definitions to avoid warnings. Patch from STL@microsoft.com
Eric Fiselier [Thu, 28 Apr 2016 02:18:48 +0000 (02:18 +0000)]
Provide member function definitions to avoid warnings. Patch from STL@microsoft.com

llvm-svn: 267843

8 years agoFix an inefficiency in the handling of $__lldb_local_vars in expressions.
Jim Ingham [Thu, 28 Apr 2016 02:17:02 +0000 (02:17 +0000)]
Fix an inefficiency in the handling of $__lldb_local_vars in expressions.

The code in ClangExpressionDeclMap::FindExternalVisibleDecls figures out what the token
means, and adds the namespace to the lookup context, but since it doesn't mark it as
special in the search context, we go on to pass the name $__lldb_local_vars to the ASTSource
for further lookup.  Unless we've done our job wrong, those lookups will always fail, but
the can be costly.

So I added a bit to m_found & use that to short-circuit the lookup.

<rdar://problem/25613384>

llvm-svn: 267842

8 years agoFindAllSymbolsTest.CTypedefTest: Tweak for LLP64 like x86_64-win32.
NAKAMURA Takumi [Thu, 28 Apr 2016 02:15:16 +0000 (02:15 +0000)]
FindAllSymbolsTest.CTypedefTest: Tweak for LLP64 like x86_64-win32.

  In file included from symbol.cc:1:
  symbols.h:2:24: error: typedef redefinition with different types ('unsigned int'
        vs 'unsigned long long')
        typedef unsigned size_t;
                         ^

llvm-svn: 267841

8 years agoLiveIntervalAnalysis: Fix handleMove() using wrong value numbers
Matthias Braun [Thu, 28 Apr 2016 02:11:49 +0000 (02:11 +0000)]
LiveIntervalAnalysis: Fix handleMove() using wrong value numbers

handleMove() was incorrectly swapping two value numbers. This was missed
before because the problem only occured when moving subregister definitions
and needed -verify-machineinstrs to be detected.

I cannot add a testcase as long as I cannot reapply r260905/r260806.

llvm-svn: 267840

8 years agoDo not call hasArg and getLastArg for the same option.
Rui Ueyama [Thu, 28 Apr 2016 02:08:54 +0000 (02:08 +0000)]
Do not call hasArg and getLastArg for the same option.

llvm-svn: 267839

8 years agoRename function parameters to avoid shadowing. Patch from STL@microsoft.com
Eric Fiselier [Thu, 28 Apr 2016 02:00:52 +0000 (02:00 +0000)]
Rename function parameters to avoid shadowing. Patch from STL@microsoft.com

llvm-svn: 267838

8 years ago[AArch64] Expand CTTZ for all vector types.
Craig Topper [Thu, 28 Apr 2016 01:58:21 +0000 (01:58 +0000)]
[AArch64] Expand CTTZ for all vector types.

llvm-svn: 267837

8 years agoGuard Clang and GCC specific pragmas. Patch from STL@microsoft.com
Eric Fiselier [Thu, 28 Apr 2016 01:49:03 +0000 (01:49 +0000)]
Guard Clang and GCC specific pragmas. Patch from STL@microsoft.com

llvm-svn: 267836

8 years agoFix include path in ClangTidy.cpp.
Stephen Hines [Thu, 28 Apr 2016 01:42:12 +0000 (01:42 +0000)]
Fix include path in ClangTidy.cpp.

Summary:
https://llvm.org/bugs/show_bug.cgi?id=27355
To compile with other binary output directory structures in build systems like Android.

Reviewers: srhines, alexfh

Subscribers: tberghammer, danalbert, cfe-commits

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

llvm-svn: 267835

8 years agoAdd the ability to limit "source regexp" breakpoints to a particular function
Jim Ingham [Thu, 28 Apr 2016 01:40:57 +0000 (01:40 +0000)]
Add the ability to limit "source regexp" breakpoints to a particular function
within a source file.

This isn't done, I need to make the name match smarter (right now it requires an
exact match which is annoying for methods of a class in a namespace.

Also, though we use it in tests all over the place, it doesn't look like we have
a test for Source Regexp breakpoints by themselves, I'll add that in a follow-on patch.

llvm-svn: 267834

8 years agoFixed a bug where const this would cause parser errors about $__lldb_expr.
Sean Callanan [Thu, 28 Apr 2016 01:36:21 +0000 (01:36 +0000)]
Fixed a bug where const this would cause parser errors about $__lldb_expr.

In templated const functions, trying to run an expression would produce the
error

error: out-of-line definition of '$__lldb_expr' does not match any declaration in 'foo'
member declaration does not match because it is const qualified
error: 1 error parsing expression

which is no good.  It turned out we don't actually need to worry about "const,"
we just need to be consistent about the declaration of the expression and the
FunctionDecl we inject into the class for "this."

Also added a test case.

<rdar://problem/24985958>

llvm-svn: 267833

8 years ago[analyzer] Move Checkers.inc to clang/include/...
Chih-Hung Hsieh [Thu, 28 Apr 2016 01:09:09 +0000 (01:09 +0000)]
[analyzer] Move Checkers.inc to clang/include/...

Simplify sharing of Checkers.inc with other files like ClangTidy.cpp.

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

llvm-svn: 267832

8 years agoFix bogus documentation for StringRef::slice in the End < Start case.
Richard Smith [Thu, 28 Apr 2016 00:57:14 +0000 (00:57 +0000)]
Fix bogus documentation for StringRef::slice in the End < Start case.

llvm-svn: 267831

8 years agoclang/test/CodeGenCXX/cfi-blacklist.cpp: Exclude ms targets. They would be non-cfi.
NAKAMURA Takumi [Thu, 28 Apr 2016 00:53:30 +0000 (00:53 +0000)]
clang/test/CodeGenCXX/cfi-blacklist.cpp: Exclude ms targets. They would be non-cfi.

llvm-svn: 267830

8 years agoUse llvm:Twine instead of std::to_string.
Chaoren Lin [Thu, 28 Apr 2016 00:49:37 +0000 (00:49 +0000)]
Use llvm:Twine instead of std::to_string.

std::to_string is not available from the Android NDK.

Reviewers: lhames, ovyalov, chandlerc

Subscribers: llvm-commits

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

llvm-svn: 267829

8 years agoclang-tools-extra/test/clang-tidy/cppcoreguidelines-pro-type-member-init-cxx98.cpp...
NAKAMURA Takumi [Thu, 28 Apr 2016 00:39:48 +0000 (00:39 +0000)]
clang-tools-extra/test/clang-tidy/cppcoreguidelines-pro-type-member-init-cxx98.cpp: Appease ms targets with -fno-delayed-template-parsing.

llvm-svn: 267828

8 years agoUpdate test to use FileCheck
Sanjay Patel [Thu, 28 Apr 2016 00:29:27 +0000 (00:29 +0000)]
Update test to use FileCheck

Also, add some metadata to show what that currently looks like.

llvm-svn: 267827

8 years agoRemove Size from Undefined symbol.
Rui Ueyama [Thu, 28 Apr 2016 00:26:54 +0000 (00:26 +0000)]
Remove Size from Undefined symbol.

There seems to be no reason to keep st_size of undefined symbols.
This patch removes the member for it. This patch will change outputs
in cases that undefined symbols are copied to output, but I think
this is unimportant.

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

llvm-svn: 267826

8 years agoDriver: only produce CFI -fvisibility= error when compiling.
Peter Collingbourne [Thu, 28 Apr 2016 00:18:30 +0000 (00:18 +0000)]
Driver: only produce CFI -fvisibility= error when compiling.

The -fvisibility= flag only affects compile jobs, so there's no need to
error out because of it if we aren't compiling (e.g. if we are only linking).

llvm-svn: 267824

8 years ago[SystemZ] Support Swift Calling Convention
Bryan Chan [Thu, 28 Apr 2016 00:17:23 +0000 (00:17 +0000)]
[SystemZ] Support Swift Calling Convention

Summary:
Port rL265480, rL264754, rL265997 and rL266252 to SystemZ, in order to enable the Swift port on the architecture. SwiftSelf and SwiftError are assigned to R10 and R9, respectively, which are normally callee-saved registers. For more information, see:

RFC: Implementing the Swift calling convention in LLVM and Clang
https://groups.google.com/forum/#!topic/llvm-dev/epDd2w93kZ0

Reviewers: kbarton, manmanren, rjmccall, uweigand

Subscribers: llvm-commits

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

llvm-svn: 267823

8 years agoDo not lookup the symbol table twice for each --wrap.
Rui Ueyama [Thu, 28 Apr 2016 00:03:38 +0000 (00:03 +0000)]
Do not lookup the symbol table twice for each --wrap.

llvm-svn: 267822

8 years agoSort includes. NFC.
Rafael Espindola [Wed, 27 Apr 2016 23:54:04 +0000 (23:54 +0000)]
Sort includes. NFC.

llvm-svn: 267821

8 years agoLTO: Don't bother trying to mangle unnamed globals, as they can't be preserved with...
Peter Collingbourne [Wed, 27 Apr 2016 23:48:11 +0000 (23:48 +0000)]
LTO: Don't bother trying to mangle unnamed globals, as they can't be preserved with MustPreserveSymbols.

Summary: Should fix sanitizer-windows bot.

Reviewers: joker.eph

Subscribers: llvm-commits, joker.eph

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

llvm-svn: 267820

8 years agoFix bugs in llvm-objdump printing the last word for -section in non i386 and x86...
Kevin Enderby [Wed, 27 Apr 2016 23:43:00 +0000 (23:43 +0000)]
Fix bugs in llvm-objdump printing the last word for -section in non i386 and x86 files.
Two problems, 1) for the last 4 bytes it would print them as separate bytes not a word
and 2) it would print the same last byte for those bytes less than a word.

rdar://25938224

llvm-svn: 267819

8 years agoParse module information from DBI stream.
Zachary Turner [Wed, 27 Apr 2016 23:41:42 +0000 (23:41 +0000)]
Parse module information from DBI stream.

This gets more data out of the DBI strema of the PDB.  In
particular it extracts the metadata for the list of modules
(compilands) that this PDB contains info about, and adds support
for dumping these fields to llvm-pdbdump.

Differential Revision: http://reviews.llvm.org/D19570
Reviewed By: ruiu

llvm-svn: 267818

8 years ago[ImplicitNullChecks] Properly update the live-in of the block of the memory operation.
Quentin Colombet [Wed, 27 Apr 2016 23:26:40 +0000 (23:26 +0000)]
[ImplicitNullChecks] Properly update the live-in of the block of the memory operation.

We basically replace:
HoistBB:
cond_br NullBB, NotNullBB

NullBB:
  ...

NotNullBB:
  <reg> = load

into
HoistBB
<reg> = load_faulting_op NullBB
uncond_br NotNullBB

NullBB:
  ...

NotNullBB: ## <reg> is now live-in of NotNullBB
  ...

This partially fixes the machine verifier error for
test/CodeGen/X86/implicit-null-check.ll, but it still fails because
of the implicit CFG structure.

llvm-svn: 267817

8 years agomore buildbot failure fix to r267792
Rong Xu [Wed, 27 Apr 2016 23:23:53 +0000 (23:23 +0000)]
more buildbot failure fix to r267792

__llvm_prf_nm length is embedded in llvm_used. Relax llvm_used check.

llvm-svn: 267816

8 years ago[PGO] Promote indirect calls to conditional direct calls with value-profile
Rong Xu [Wed, 27 Apr 2016 23:20:27 +0000 (23:20 +0000)]
[PGO] Promote indirect calls to conditional direct calls with value-profile

This patch implements the transformation that promotes indirect calls to
conditional direct calls when the indirect-call value profile meta-data is
available.

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

llvm-svn: 267815

8 years ago[OpenMP] Code generation for target exit data directive
Samuel Antao [Wed, 27 Apr 2016 23:14:30 +0000 (23:14 +0000)]
[OpenMP] Code generation for target exit data directive

Summary:
This patch adds support for the target exit data directive code generation.

Given that, apart from the employed runtime call, target exit data requires the same code generation pattern as target enter data, the OpenMP codegen entry point was renamed and reused for both.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: cfe-commits, fraggamuffin, caomhin

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

llvm-svn: 267814

8 years ago[SimplifyCFG] propagate branch metadata when creating select
Sanjay Patel [Wed, 27 Apr 2016 23:14:12 +0000 (23:14 +0000)]
[SimplifyCFG] propagate branch metadata when creating select

There's no existing test for this path, and I don't know how to expose
it in a regression test, but I'm assuming there's some reason this
path exists.

llvm-svn: 267813

8 years ago[OpenMP] Code generation for target enter data directive
Samuel Antao [Wed, 27 Apr 2016 23:07:29 +0000 (23:07 +0000)]
[OpenMP] Code generation for target enter data directive

Summary: This patch adds support for the target enter data directive code generation.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: cfe-commits, fraggamuffin, caomhin

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

llvm-svn: 267812

8 years ago[OpenMP] Code generation for target data directive
Samuel Antao [Wed, 27 Apr 2016 22:58:19 +0000 (22:58 +0000)]
[OpenMP] Code generation for target data directive

Summary:
This patch adds support for the target data directive code generation.

Part of the already existent functionality related with data maps is moved to a new function so that it could be reused.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: cfe-commits, fraggamuffin, caomhin

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

llvm-svn: 267811

8 years ago[RuntimeDyld] Propagate another dropped error in RuntimeDyldELF.
Lang Hames [Wed, 27 Apr 2016 22:54:03 +0000 (22:54 +0000)]
[RuntimeDyld] Propagate another dropped error in RuntimeDyldELF.

This should fix the PPC64 bots.

llvm-svn: 267810

8 years ago[X86] Enable the post-RA-scheduler for clang's default 32-bit cpu.
Mitch Bodart [Wed, 27 Apr 2016 22:52:35 +0000 (22:52 +0000)]
[X86] Enable the post-RA-scheduler for clang's default 32-bit cpu.

For compilations with no explicit cpu specified, this exhibits
nice gains on Silvermont, with neutral performance on big cores.

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

llvm-svn: 267809

8 years ago[OpenMP] Map clause codegeneration.
Samuel Antao [Wed, 27 Apr 2016 22:40:57 +0000 (22:40 +0000)]
[OpenMP] Map clause codegeneration.

Summary:
Implement codegen for the map clause. All the new list items in 4.5 specification are supported.

Fix bug in the generation of array sections that was exposed by some of the map clause tests: for pointer types the offsets have to be calculated from the pointee not the pointer.

Reviewers: hfinkel, kkwli0, carlo.bertolli, arpith-jacob, ABataev

Subscribers: ABataev, cfe-commits, caomhin, fraggamuffin

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

llvm-svn: 267808

8 years agoFix a bug in llvm-objdump printing of 32-bit addresses for -section in non i386 and...
Kevin Enderby [Wed, 27 Apr 2016 22:36:18 +0000 (22:36 +0000)]
Fix a bug in llvm-objdump printing of 32-bit addresses for -section in non i386 and x86 files.

rdar://25896202

llvm-svn: 267807

8 years ago[X86][FastISel] Make sure we use the right register class when we select stores.
Quentin Colombet [Wed, 27 Apr 2016 22:33:42 +0000 (22:33 +0000)]
[X86][FastISel] Make sure we use the right register class when we select stores.

llvm-svn: 267806

8 years agoRemove unused LangOpts private variable in HeaderSearch.
Samuel Antao [Wed, 27 Apr 2016 22:28:32 +0000 (22:28 +0000)]
Remove unused LangOpts private variable in HeaderSearch.

Was causing warnings during the build.

llvm-svn: 267805

8 years agoMinor test simplification (per David Blaikie suggestion).
Paul Robinson [Wed, 27 Apr 2016 22:18:46 +0000 (22:18 +0000)]
Minor test simplification (per David Blaikie suggestion).

llvm-svn: 267804

8 years agoFix buildbot failure due to r267792
Rong Xu [Wed, 27 Apr 2016 22:06:35 +0000 (22:06 +0000)]
Fix buildbot failure due to r267792

Relax the test check as some targets do not have name compression.

llvm-svn: 267803

8 years ago[modules] When diagnosing a missing module import, suggest adding a #include if
Richard Smith [Wed, 27 Apr 2016 21:57:05 +0000 (21:57 +0000)]
[modules] When diagnosing a missing module import, suggest adding a #include if
the current language doesn't have an import syntax and we can figure out a
suitable file to include.

llvm-svn: 267802

8 years ago[ELF] -R is an alias for -rpath.
Davide Italiano [Wed, 27 Apr 2016 21:56:53 +0000 (21:56 +0000)]
[ELF] -R is an alias for -rpath.

perl-5 uses the former, so provide an alias. Found while linking
the whole set of FreeBSD ports with lld.

llvm-svn: 267801

8 years agoXFail TestIRInterpreter on Windows
Adrian McCarthy [Wed, 27 Apr 2016 21:53:19 +0000 (21:53 +0000)]
XFail TestIRInterpreter on Windows

There's an open bug with calling functions in the inferior.  And Windows doesn't have the POSIX function getpid().

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

llvm-svn: 267800

8 years ago[Hexagon] Merging nops in to previous packet rather than always creating a new one.
Colin LeMahieu [Wed, 27 Apr 2016 21:37:44 +0000 (21:37 +0000)]
[Hexagon] Merging nops in to previous packet rather than always creating a new one.

llvm-svn: 267798

8 years ago[X86] Fix the lowering of TLS calls.
Quentin Colombet [Wed, 27 Apr 2016 21:37:37 +0000 (21:37 +0000)]
[X86] Fix the lowering of TLS calls.

The callseq_end node must be glued with the TLS calls, otherwise,
the generic code will miss the uses of the returned value and will
mark it dead.
Moreover, TLSCall 64-bit pseudo must not set an implicit-use on RDI,
the pseudo uses the symbol address at this point not RDI and the
lowering will do the right thing.

llvm-svn: 267797

8 years ago[MCAssembler] Allow backend to finalize layout post-relaxation.
Colin LeMahieu [Wed, 27 Apr 2016 21:26:13 +0000 (21:26 +0000)]
[MCAssembler] Allow backend to finalize layout post-relaxation.

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

llvm-svn: 267796

8 years ago[MSan] [PowerPC] Dereference function descriptors when recording stack origins.
Marcin Koscielnicki [Wed, 27 Apr 2016 21:24:24 +0000 (21:24 +0000)]
[MSan] [PowerPC] Dereference function descriptors when recording stack origins.

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

llvm-svn: 267795

8 years ago[sanitizers] Get the proper symbol version when long double transition is involved.
Marcin Koscielnicki [Wed, 27 Apr 2016 21:24:21 +0000 (21:24 +0000)]
[sanitizers] Get the proper symbol version when long double transition is involved.

On linux, some architectures had an ABI transition from 64-bit long double
(ie. same as double) to 128-bit long double.  On those, glibc symbols
involving long doubles come in two versions, and we need to pass the
correct one to dlvsym when intercepting them.

A few more functions we intercept are also versioned (all printf, scanf,
strtold variants), but there's no need to fix these, as the REAL() versions
are never called.

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

llvm-svn: 267794

8 years ago[sanitizer] Add early call handling to strchr + strrchr interceptors
Derek Bruening [Wed, 27 Apr 2016 21:20:46 +0000 (21:20 +0000)]
[sanitizer] Add early call handling to strchr + strrchr interceptors

Summary:
The strchr and strrchr interceptors are sometimes invoked too early
for their REAL() counterparts to be initialized.  We have seen this in
hooks invoked from tcmalloc on the dlsym() used in initializing
interceptors.  A special check is added to use internal_ routines for
this situation.

Reviewers: vitalybuka, aizatsky, filcab

Subscribers: filcab, llvm-commits, eugenis, kcc, zhaoqin, aizatsky, kubabrecka

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

llvm-svn: 267793

8 years ago[PGO] Prohibit address recording if the function is both internal and COMDAT
Rong Xu [Wed, 27 Apr 2016 21:17:30 +0000 (21:17 +0000)]
[PGO] Prohibit address recording if the function is both internal and COMDAT

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

llvm-svn: 267792

8 years agoAMDGPU: Account for globals in AMDGPUPromoteAlloca pass
Matt Arsenault [Wed, 27 Apr 2016 21:05:08 +0000 (21:05 +0000)]
AMDGPU: Account for globals in AMDGPUPromoteAlloca pass

Patch by Bas Nieuwenhuizen

llvm-svn: 267791

8 years ago[RuntimeDyld] Add missing include - <string> is requried for std::to_string.
Lang Hames [Wed, 27 Apr 2016 20:54:49 +0000 (20:54 +0000)]
[RuntimeDyld] Add missing include - <string> is requried for std::to_string.

This should fix the compile error that showed up in build:
http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-buildserver/builds/6754/

llvm-svn: 267790

8 years ago[RuntimeDyld] Propagate Errors from findPPC64TOCSection.
Lang Hames [Wed, 27 Apr 2016 20:51:58 +0000 (20:51 +0000)]
[RuntimeDyld] Propagate Errors from findPPC64TOCSection.

llvm-svn: 267789

8 years agoRevert unnecessary tblgen change.
Peter Collingbourne [Wed, 27 Apr 2016 20:49:44 +0000 (20:49 +0000)]
Revert unnecessary tblgen change.

llvm-svn: 267788

8 years agoWdocumentation fix
Simon Pilgrim [Wed, 27 Apr 2016 20:43:32 +0000 (20:43 +0000)]
Wdocumentation fix

llvm-svn: 267786

8 years agoRework interface for bitset-using features to use a notion of LTO visibility.
Peter Collingbourne [Wed, 27 Apr 2016 20:39:53 +0000 (20:39 +0000)]
Rework interface for bitset-using features to use a notion of LTO visibility.

Bitsets, and the compiler features they rely on (vtable opt, CFI),
only have visibility within the LTO'd part of the linkage unit. Therefore,
only enable these features for classes with hidden LTO visibility. This
notion is based on object file visibility or (on Windows)
dllimport/dllexport attributes.

We provide the [[clang::lto_visibility_public]] attribute to override the
compiler's LTO visibility inference in cases where the class is defined
in the non-LTO'd part of the linkage unit, or where the ABI supports
calling classes derived from abstract base classes with hidden visibility
in other linkage units (e.g. COM on Windows).

If the cross-DSO CFI mode is enabled, bitset checks are emitted even for
classes with public LTO visibility, as that mode uses a separate mechanism
to cause bitsets to be exported.

This mechanism replaces the whole-program-vtables blacklist, so remove the
-fwhole-program-vtables-blacklist flag.

Because __declspec(uuid()) now implies [[clang::lto_visibility_public]], the
support for the special attr:uuid blacklist entry is removed.

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

llvm-svn: 267784

8 years agoAdd a test case for the crash fixed with r267037. David Blaikie said it would be...
Kevin Enderby [Wed, 27 Apr 2016 20:37:06 +0000 (20:37 +0000)]
Add a test case for the crash fixed with r267037.  David Blaikie said it would be nice to have!

This was crashing llvm-objdump with -macho -objc-meta-data when trying dump a non-existent section.
So the test binary is simply created from an empty .s file compiled with: clang -arch armv7 empty.s -c

llvm-svn: 267782

8 years ago[ARM] Set AddPristinesAndCSRs to expandCMP_SWAP LivePhysRegs.
Ahmed Bougacha [Wed, 27 Apr 2016 20:33:07 +0000 (20:33 +0000)]
[ARM] Set AddPristinesAndCSRs to expandCMP_SWAP LivePhysRegs.

We run after PEI.
Found via inspection; no obvious testcase.

Follow-up to r266679.

llvm-svn: 267781

8 years ago[AArch64] Set AddPristinesAndCSRs to expandCMP_SWAP LivePhysRegs.
Ahmed Bougacha [Wed, 27 Apr 2016 20:33:05 +0000 (20:33 +0000)]
[AArch64] Set AddPristinesAndCSRs to expandCMP_SWAP LivePhysRegs.

We run after PEI.
Found via inspection; no obvious testcase.

Follow-up to r266339.

llvm-svn: 267780

8 years ago[AArch64] Set correct successors in CMPXCHG pseudo expansion.
Ahmed Bougacha [Wed, 27 Apr 2016 20:33:02 +0000 (20:33 +0000)]
[AArch64] Set correct successors in CMPXCHG pseudo expansion.

transferSuccessors() would LoadCmpBB a successor of DoneBB,
whereas it should be a successor of the original MBB.

Follow-up to r266339.

Unfortunately, it's tricky to catch this in the verifier.

llvm-svn: 267779

8 years ago[ARM] Set correct successors in CMPXCHG pseudo expansion.
Ahmed Bougacha [Wed, 27 Apr 2016 20:32:54 +0000 (20:32 +0000)]
[ARM] Set correct successors in CMPXCHG pseudo expansion.

transferSuccessors() would LoadCmpBB a successor of DoneBB, whereas
it should be a successor of the original MBB.

The testcase changes are caused by Thumb2SizeReduction, which
was previously confused by the broken CFG.

Follow-up to r266679.

Unfortunately, it's tricky to catch this in the verifier.

llvm-svn: 267778

8 years ago[InstCombine][AVX2] Add AVX2 per-element vector shift tests
Simon Pilgrim [Wed, 27 Apr 2016 20:25:34 +0000 (20:25 +0000)]
[InstCombine][AVX2] Add AVX2 per-element vector shift tests

At the moment we don't simplify PSRAV/PSRLV/PSLLV intrinsics to generic IR for constant shift amounts, but we could.

llvm-svn: 267777

8 years ago[RuntimeDyld] Plumb Error/Expected through the internals of RuntimeDyld.
Lang Hames [Wed, 27 Apr 2016 20:24:48 +0000 (20:24 +0000)]
[RuntimeDyld] Plumb Error/Expected through the internals of RuntimeDyld.

Also replaces a number of calls to report_fatal_error with Error returns.

The plumbing will make it easier to return errors originating in libObject.

Replacing report_fatal_errors with Error returns will give JIT clients the
opportunity to recover gracefully when the JIT is unable to produce/relocate
code, as well as providing meaningful error messages that can be used to file
bug reports.

llvm-svn: 267776

8 years agoELF: Create .gnu.version and .gnu.version_r sections when linking against versioned...
Peter Collingbourne [Wed, 27 Apr 2016 20:22:31 +0000 (20:22 +0000)]
ELF: Create .gnu.version and .gnu.version_r sections when linking against versioned DSOs.

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

llvm-svn: 267775

8 years agoFix build failure under NDEBUG.
Than McIntosh [Wed, 27 Apr 2016 20:07:02 +0000 (20:07 +0000)]
Fix build failure under NDEBUG.

llvm-svn: 267774

8 years ago[X86]: Quit promoting 16 bit loads to 32 bit.
Kevin B. Smith [Wed, 27 Apr 2016 19:58:03 +0000 (19:58 +0000)]
[X86]: Quit promoting 16 bit loads to 32 bit.
Differential Revision: http://reviews.llvm.org/D19592

llvm-svn: 267773

8 years agoSet the default C standard to C99 when targeting the PS4.
Sunil Srivastava [Wed, 27 Apr 2016 19:53:03 +0000 (19:53 +0000)]
Set the default C standard to C99 when targeting the PS4.

Patch by Douglas Yung!

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

llvm-svn: 267772

8 years ago[libFuzzer] disable leak detection if we have tried it for 1000 times w/o finding...
Kostya Serebryany [Wed, 27 Apr 2016 19:52:56 +0000 (19:52 +0000)]
[libFuzzer] disable leak detection if we have tried it for 1000 times w/o finding a leak [part 2]

llvm-svn: 267771

8 years ago[libFuzzer] disable leak detection if we have tried it for 1000 times w/o finding...
Kostya Serebryany [Wed, 27 Apr 2016 19:52:34 +0000 (19:52 +0000)]
[libFuzzer] disable leak detection if we have tried it for 1000 times w/o finding a leak

llvm-svn: 267770

8 years agoAdd optimization bisect opt-in calls for PowerPC passes
Andrew Kaylor [Wed, 27 Apr 2016 19:39:32 +0000 (19:39 +0000)]
Add optimization bisect opt-in calls for PowerPC passes

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

llvm-svn: 267769

8 years agoAdded a testcase for the IR interpreter, ensuring that it behaves like the JIT.
Sean Callanan [Wed, 27 Apr 2016 19:37:42 +0000 (19:37 +0000)]
Added a testcase for the IR interpreter, ensuring that it behaves like the JIT.

<rdar://problem/25785338>

llvm-svn: 267768

8 years ago[CodeGenPrepare] Don't sink a cast past its user
David Majnemer [Wed, 27 Apr 2016 19:36:38 +0000 (19:36 +0000)]
[CodeGenPrepare] Don't sink a cast past its user

The sink cast machinery is supposed to sink casts as close to their user
as possible.  However, an EH pad is the first instruction in it's basic
block.  Don't sink if the user is an EH pad.

This fixes PR27536.

llvm-svn: 267767

8 years agoRefactor debugging code, NFC.
Than McIntosh [Wed, 27 Apr 2016 19:26:25 +0000 (19:26 +0000)]
Refactor debugging code, NFC.

Summary:
Refactor debugging routines to reduce code duplication. Remove a couple
of #include's that were not needed. Don't require MachineDominator as a
prereq for this pass (not needed).

These changes split off from http://reviews.llvm.org/D18827.

Reviewers: wmi, gbiv, qcolombet

Subscribers: llvm-commits, davidxl, jevinskie

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

llvm-svn: 267766

8 years ago[NVPTX] Run NVVMReflect at the beginning of IR passes.
Justin Lebar [Wed, 27 Apr 2016 19:13:37 +0000 (19:13 +0000)]
[NVPTX] Run NVVMReflect at the beginning of IR passes.

Summary:
Currently the NVVMReflect pass is run at the beginning of our backend
passes.  But really, it should be run as early as possible, as it's
simply resolving an "if" statement in code.  So copy it into
TargetMachine::addEarlyAsPossiblePasses.

We still run it at the beginning of the backend passes, since it's
needed for correctness when lowering to nvptx.

(Specifically, NVVMReflect changes each call to the __nvvm_reflect
function or llvm.nvvm.reflect intrinsic into an integer constant, based
on the pass's configuration.  Clearly we miss many optimization
opportunities if we perform this transformation at the beginning of
codegen.)

Reviewers: rnk

Subscribers: tra, llvm-commits, jholewinski

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

llvm-svn: 267765

8 years agoCall TargetMachine::addEarlyAsPossiblePasses from BackendUtil.
Justin Lebar [Wed, 27 Apr 2016 19:12:56 +0000 (19:12 +0000)]
Call TargetMachine::addEarlyAsPossiblePasses from BackendUtil.

Summary:
As of D18614, TargetMachine exposes a hook to add a set of passes that should
be run as early as possible.  Invoke this hook from clang when setting up the
pass manager.

Reviewers: chandlerc

Subscribers: rnk, cfe-commits, tra

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

llvm-svn: 267764

8 years agoAdd TargetMachine::addEarlyAsPossiblePasses, and call it from opt.
Justin Lebar [Wed, 27 Apr 2016 19:08:24 +0000 (19:08 +0000)]
Add TargetMachine::addEarlyAsPossiblePasses, and call it from opt.

Summary:
This is a hook to allow TargetMachine to install passes at the
EP_EarlyAsPossible PassManagerBuilder extension point.

Reviewers: chandlerc

Subscribers: llvm-commits

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

llvm-svn: 267763

8 years ago[LIR] Set attributes on memset_pattern16.
Ahmed Bougacha [Wed, 27 Apr 2016 19:04:50 +0000 (19:04 +0000)]
[LIR] Set attributes on memset_pattern16.

"inferattrs" will deduce the attribute, but it will be too late for
many optimizations. Set it ourselves when creating the call.

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

llvm-svn: 267762

8 years ago[LIR] Reuse variable. NFCI.
Ahmed Bougacha [Wed, 27 Apr 2016 19:04:46 +0000 (19:04 +0000)]
[LIR] Reuse variable. NFCI.

llvm-svn: 267761

8 years ago[InferAttrs] Mark memset_pattern16 params nocapture.
Ahmed Bougacha [Wed, 27 Apr 2016 19:04:43 +0000 (19:04 +0000)]
[InferAttrs] Mark memset_pattern16 params nocapture.

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

llvm-svn: 267760

8 years ago[TLI] Unify LibFunc attribute inference. NFCI.
Ahmed Bougacha [Wed, 27 Apr 2016 19:04:40 +0000 (19:04 +0000)]
[TLI] Unify LibFunc attribute inference. NFCI.

Now the pass is just a tiny wrapper around the util. This lets us reuse
the logic elsewhere (done here for BuildLibCalls) instead of duplicating
it.

The next step is to have something like getOrInsertLibFunc that also
sets the attributes.

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

llvm-svn: 267759

8 years ago[TLI] Unify LibFunc signature checking. NFCI.
Ahmed Bougacha [Wed, 27 Apr 2016 19:04:35 +0000 (19:04 +0000)]
[TLI] Unify LibFunc signature checking. NFCI.

I tried to be as close as possible to the strongest check that
existed before; cleaning these up properly is left for future work.

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

llvm-svn: 267758

8 years ago[TLI] Fix indentation. NFC.
Ahmed Bougacha [Wed, 27 Apr 2016 19:04:29 +0000 (19:04 +0000)]
[TLI] Fix indentation. NFC.

llvm-svn: 267757

8 years ago[CMake] On Darwin bootstrap LTO builds set DYLD_LIBRARY_PATH instead of using llvm-ar
Chris Bieneman [Wed, 27 Apr 2016 18:52:48 +0000 (18:52 +0000)]
[CMake] On Darwin bootstrap LTO builds set DYLD_LIBRARY_PATH instead of using llvm-ar

llvm-ar isn't really supported for Darwin, instead the host tools will load libLTO, so we can use the just-built libLTO.

This actually makes Darwin bootstrap builds a little faster because you don't need to build llvm-ar before starting the next stage.

llvm-svn: 267756

8 years agoFix a bunch of sign-compare warnings
David Blaikie [Wed, 27 Apr 2016 18:47:45 +0000 (18:47 +0000)]
Fix a bunch of sign-compare warnings

llvm-svn: 267754

8 years agoClean up to avoid compiler warnings for casting away const qualifiers.
Sjoerd Meijer [Wed, 27 Apr 2016 18:35:02 +0000 (18:35 +0000)]
Clean up to avoid compiler warnings for casting away const qualifiers.

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

llvm-svn: 267753

8 years agoRevert "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD."
Chad Rosier [Wed, 27 Apr 2016 18:29:11 +0000 (18:29 +0000)]
Revert "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD."

This reverts commit r267733 due to a -Werror,-Wunused-function error.

llvm-svn: 267752

8 years ago[LV] Reallow positive-stride interleaved load groups with gaps
Matthew Simpson [Wed, 27 Apr 2016 18:21:36 +0000 (18:21 +0000)]
[LV] Reallow positive-stride interleaved load groups with gaps

We previously disallowed interleaved load groups that may cause us to
speculatively access memory out-of-bounds (r261331). We did this by ensuring
each load group had an access corresponding to the first and last member.
Instead of bailing out for these interleaved groups, this patch enables us to
peel off the last vector iteration, ensuring that we execute at least one
iteration of the scalar remainder loop. This solution was proposed in the
review of the previous patch.

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

llvm-svn: 267751

8 years ago[sanitizers] read/write page fault detection on mac.
Mike Aizatsky [Wed, 27 Apr 2016 18:02:21 +0000 (18:02 +0000)]
[sanitizers] read/write page fault detection on mac.

Summary: Resubmit of http://reviews.llvm.org/D19495 enabled only on intel.

Subscribers: kubabrecka

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

llvm-svn: 267750

8 years agoRenamed system plugin directory to address https://bugs.swift.org/browse/SR-1093
Kate Stone [Wed, 27 Apr 2016 17:49:51 +0000 (17:49 +0000)]
Renamed system plugin directory to address https://bugs.swift.org/browse/SR-1093

llvm-svn: 267749

8 years ago[SLPVectorizer] Refactor where MinVecRegSize and MaxVecRegSize live.
Arch D. Robison [Wed, 27 Apr 2016 17:46:25 +0000 (17:46 +0000)]
[SLPVectorizer] Refactor where MinVecRegSize and MaxVecRegSize live.

This is the first of two commits for extending SLP Vectorizer to deal with aggregates.
This commit merely refactors existing logic.

http://reviews.llvm.org/D14185

llvm-svn: 267748