platform/upstream/llvm.git
8 years agoFix doxygen comments from r265224, NFC
Duncan P. N. Exon Smith [Sat, 2 Apr 2016 15:16:56 +0000 (15:16 +0000)]
Fix doxygen comments from r265224, NFC

llvm-svn: 265225

8 years agoBitcodeWriter: Further unify function metadata, NFC
Duncan P. N. Exon Smith [Sat, 2 Apr 2016 15:09:42 +0000 (15:09 +0000)]
BitcodeWriter: Further unify function metadata, NFC

Further unify the handling of function-local metadata with global
metadata, by exposing the same interface in ValueEnumerator.  Both
contexts use the same accessors:

  - getMDStrings(): get the strings for this block.
  - getNonMDStrings(): get the non-strings for this block.

A future commit will start adding strings to the function-block.

llvm-svn: 265224

8 years agoBitcodeReader: Check for unresolved function metadata
Duncan P. N. Exon Smith [Sat, 2 Apr 2016 14:55:01 +0000 (14:55 +0000)]
BitcodeReader: Check for unresolved function metadata

A follow-up commit will start using function metadata blocks more
heavily.  This commit adds some error checking to confirm that metadata
is fully resolved before (and after) materializing each function.

This is valid even when reading very old bitcode from before the
metadata/value split.  The global metadata block always came before the
function blocks.  However, in case somehow this causes a regression
(i.e., an old LLVM did produce such bitcode after all) I'm committing
separately.

llvm-svn: 265223

8 years ago[X86][AVX] Added vector float truncation (double2float) tests
Simon Pilgrim [Sat, 2 Apr 2016 14:09:17 +0000 (14:09 +0000)]
[X86][AVX] Added vector float truncation (double2float) tests

llvm-svn: 265222

8 years agoReverts r265219.
Mehdi Amini [Sat, 2 Apr 2016 05:35:03 +0000 (05:35 +0000)]
Reverts r265219.

Unintentionally commited... time to call the day off!

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

8 years agoFix "warning: variabl 'XX’ set but not used" in release build (variable used in asser...
Mehdi Amini [Sat, 2 Apr 2016 05:34:19 +0000 (05:34 +0000)]
Fix "warning: variabl 'XX’ set but not used" in release build (variable used in assertion, NFC)

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

8 years agowip
Mehdi Amini [Sat, 2 Apr 2016 05:34:14 +0000 (05:34 +0000)]
wip

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

8 years ago[test] Don't use "UNSUPPORTED" in FileCheck prefixes
Greg Parker [Sat, 2 Apr 2016 05:29:00 +0000 (05:29 +0000)]
[test] Don't use "UNSUPPORTED" in FileCheck prefixes

lit uses "UNSUPPORTED:" for its own purposes and may be
confused if that text appears elsewhere in the test file.

llvm-svn: 265218

8 years agoconstify GlobalValue::getGUID() and GlobalValue::getGlobalIdentifier() (NFC)
Mehdi Amini [Sat, 2 Apr 2016 05:25:27 +0000 (05:25 +0000)]
constify GlobalValue::getGUID() and GlobalValue::getGlobalIdentifier() (NFC)

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

8 years agoRevert "ThinLTO: add module caching handling."
Mehdi Amini [Sat, 2 Apr 2016 05:08:18 +0000 (05:08 +0000)]
Revert "ThinLTO: add module caching handling."

This reverts commit r265214, unintentionally commited.

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

8 years agoCreate a typedef GlobalValue::GUID for uint64_t and RAUW (NFC)
Mehdi Amini [Sat, 2 Apr 2016 05:07:53 +0000 (05:07 +0000)]
Create a typedef GlobalValue::GUID for uint64_t and RAUW  (NFC)

Summary: This should make the code more readable, especially all the map declarations.

Reviewers: tejohnson

Subscribers: llvm-commits

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

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

8 years agoThinLTO: add module caching handling.
Mehdi Amini [Sat, 2 Apr 2016 05:07:08 +0000 (05:07 +0000)]
ThinLTO: add module caching handling.

Reviewers: tejohnson

Subscribers: llvm-commits, joker.eph

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

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

8 years agoCall cl::ParseCommandLineOptions from the driver.
Sean Silva [Sat, 2 Apr 2016 04:08:02 +0000 (04:08 +0000)]
Call cl::ParseCommandLineOptions from the driver.

Thanks to Rui for the suggestion; this simplifies things.

llvm-svn: 265213

8 years ago80 lines column after renaming "shouldDiscardValueNames" (NFC)
Mehdi Amini [Sat, 2 Apr 2016 03:59:58 +0000 (03:59 +0000)]
80 lines column after renaming "shouldDiscardValueNames" (NFC)

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

8 years agoRename Context::discardValueNames() to shouldDiscardValueNames() (NFC)
Mehdi Amini [Sat, 2 Apr 2016 03:46:17 +0000 (03:46 +0000)]
Rename Context::discardValueNames() to shouldDiscardValueNames() (NFC)

Suggested by Sean Silva.

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

8 years ago[clang-tidy] Update an example. NFC.
Alexander Kornienko [Sat, 2 Apr 2016 03:44:23 +0000 (03:44 +0000)]
[clang-tidy] Update an example. NFC.

llvm-svn: 265210

8 years agoAdd Cache Pruning support
Mehdi Amini [Sat, 2 Apr 2016 03:28:26 +0000 (03:28 +0000)]
Add Cache Pruning support

Incremental LTO will usea cache to store object files.
This patch handles the pruning part of the cache, exposing
a few knobs:

- Pruning interval: the implementation keeps a "timestamp" file in the
  directory and will scan it only after a given interval since the
  last modification of the timestamp file. This is for performance
  purpose, we don't want to scan continuously the folder.
- Entry expiration: this is the time after which a file that hasn't
  been used is remove from the cache.
- Maximum size: expressed in percentage of the available disk space,
  it helps to avoid that we blow up the disk space.

http://reviews.llvm.org/D18422

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

8 years ago[LTO] Fix symbols which were internalized incorrectly.
Davide Italiano [Sat, 2 Apr 2016 02:10:40 +0000 (02:10 +0000)]
[LTO] Fix symbols which were internalized incorrectly.

If a symbol is defined in an archive, when we replace its body
the isUsedInRegularObj wasn't set correctly. Internalize makes
its decision based on that bit so we ended up internalizing
symbols that we shouldn't (because they're referenced).
This should fix. Thanks to Peter and Rafael for discussion
and help diagnosing the issue!

Found during LTO of unittests.

llvm-svn: 265208

8 years agoFix MSVC build after r265206
Sean Silva [Sat, 2 Apr 2016 01:51:51 +0000 (01:51 +0000)]
Fix MSVC build after r265206

c:\b\slave\sanitizer-windows\llvm\tools\lld\elf\Config.h(94) : error C2797: 'lld::elf::Configuration::MLlvm': list initialization inside member initializer list or non-static data member initializer is not implemented

llvm-svn: 265207

8 years agoPR27104: Add -mllvm option
Sean Silva [Sat, 2 Apr 2016 01:39:56 +0000 (01:39 +0000)]
PR27104: Add -mllvm option

The argv[0] is based on the analogous thing in clang.

llvm-svn: 265206

8 years ago[Clang-tidy] Improve checks documentation consistency.
Eugene Zelenko [Sat, 2 Apr 2016 01:07:18 +0000 (01:07 +0000)]
[Clang-tidy] Improve checks documentation consistency.

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

llvm-svn: 265205

8 years agoFix -Wpedantic warning about extra semi-colon
Hans Wennborg [Sat, 2 Apr 2016 01:03:41 +0000 (01:03 +0000)]
Fix -Wpedantic warning about extra semi-colon

llvm-svn: 265204

8 years agoDon't create a plt when LD access is optimized.
Rafael Espindola [Sat, 2 Apr 2016 00:19:22 +0000 (00:19 +0000)]
Don't create a plt when LD access is optimized.

llvm-svn: 265203

8 years agoDon't create a PLT when we optimize out the plt use.
Rafael Espindola [Fri, 1 Apr 2016 23:36:56 +0000 (23:36 +0000)]
Don't create a PLT when we optimize out the plt use.

llvm-svn: 265202

8 years ago[Objective-C] Introduce objc_runtime_visible attribute.
Douglas Gregor [Fri, 1 Apr 2016 23:23:52 +0000 (23:23 +0000)]
[Objective-C] Introduce objc_runtime_visible attribute.

The objc_runtime_visible attribute deals with an odd corner case where
a particular Objective-C class is known to the Objective-C runtime
(and, therefore, accessible by name) but its symbol has been hidden
for some reason. For such classes, teach CodeGen to use
objc_lookUpClass to retrieve the Class object, rather than referencing
the class symbol directly.

Classes annotated with objc_runtime_visible have two major limitations
that fall out from places where Objective-C metadata needs to refer to
the class (or metaclass) symbol directly:

* One cannot implement a subclass of an objc_runtime_visible class.
* One cannot implement a category on an objc_runtime_visible class.

Implements rdar://problem/25494092.

llvm-svn: 265201

8 years agoAdd some unit tests for ClangASTContext.
Zachary Turner [Fri, 1 Apr 2016 23:20:35 +0000 (23:20 +0000)]
Add some unit tests for ClangASTContext.

In doing so, two bugs were uncovered (and fixed).  The first bug
is that ClangASTContext::RemoveFastQualifiers() was broken, and
was not removing fast qualifiers (or doing anything else for that
matter).  The second bug is that UnifyAccessSpecifiers treated
AS_None asymmetrically, which is probably an edge case, but seems
like a bug nonetheless.

llvm-svn: 265200

8 years ago[PGO] Use a helper function to find all indirect call-sites
Rong Xu [Fri, 1 Apr 2016 23:16:44 +0000 (23:16 +0000)]
[PGO] Use a helper function to find all indirect call-sites

Use a helper function to find all the direct-calls-sites in a function.
Also split the code into a separated file as this will be use by
indirect-call-promotion transformation.

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

llvm-svn: 265199

8 years agoAArch64: avoid clobbering SP for dead MOVimm pseudos.
Tim Northover [Fri, 1 Apr 2016 23:14:52 +0000 (23:14 +0000)]
AArch64: avoid clobbering SP for dead MOVimm pseudos.

We were producing ORR, which actually defines a GPR32sp rather than a GPR32.

Should fix PR23209.

llvm-svn: 265198

8 years ago[CodeGen] Emit lifetime.end intrinsic after objects are destructed in
Akira Hatanaka [Fri, 1 Apr 2016 22:58:55 +0000 (22:58 +0000)]
[CodeGen] Emit lifetime.end intrinsic after objects are destructed in
landing pads.

Previously, lifetime.end intrinsics were inserted only on normal control
flows. This prevented StackColoring from merging stack slots for objects
that were destroyed on the exception handling control flow since it
couldn't tell their lifetime ranges were disjoint. This patch fixes
code-gen to emit the intrinsic on both control flows.

rdar://problem/22181976

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

llvm-svn: 265197

8 years agoFixed an issue where if we have DWARF in an executable that has multiple languages...
Greg Clayton [Fri, 1 Apr 2016 22:57:22 +0000 (22:57 +0000)]
Fixed an issue where if we have DWARF in an executable that has multiple languages where these languages use different type systems, you can end up trying to find the actualy definition for a forward declaration for a type, you will call:

TypeSP SymbolFileDWARF::FindDefinitionTypeForDWARFDeclContext (const DWARFDeclContext &dwarf_decl_ctx);

The problem was we might be looking for a type "Foo", and find one from another langauge. Then the DWARFASTParserClang would try to make an AST type using a CompilerType that might return an empty.

This fix makes sure that when we create a DWARFDeclContext from a DWARFDIE that the DWARFDeclContext we set the language of the DIE. Then when we go to find matches for DWARFDeclContext, we end up with bunch of DIEs. We check each DWARFDIE that we found by asking it for its language and making sure the language is compatible with the type system that we want to use. This keeps us from using the wrong types to resolve forward declarations.

<rdar://problem/25276165>

llvm-svn: 265196

8 years ago[modules] Start moving the code for encoding AST records out of ASTWriter into
Richard Smith [Fri, 1 Apr 2016 22:52:03 +0000 (22:52 +0000)]
[modules] Start moving the code for encoding AST records out of ASTWriter into
a separate class. The goal is for this class to have a separate lifetime from
the AST writer so that it can meaningfully track pending statement nodes and
context for more compact encoding of various types.

llvm-svn: 265195

8 years agoRename a few variables. NFC.
Rui Ueyama [Fri, 1 Apr 2016 22:42:04 +0000 (22:42 +0000)]
Rename a few variables. NFC.

We had Phdr, PHdr and Phdrs in one line. That was a bit confusing.

llvm-svn: 265194

8 years agoMake DIASession work if msdia*.dll isn't registered.
Nico Weber [Fri, 1 Apr 2016 22:21:51 +0000 (22:21 +0000)]
Make DIASession work if msdia*.dll isn't registered.

This fixes various symbolization test failures for me when I build with a
hermetic VS2015 without having run the 2015 installer.

http://reviews.llvm.org/D18707

llvm-svn: 265193

8 years agoAdd missing emissionKind flags to the DICompileUnits of several old testcases.
Adrian Prantl [Fri, 1 Apr 2016 22:18:43 +0000 (22:18 +0000)]
Add missing emissionKind flags to the DICompileUnits of several old testcases.

llvm-svn: 265192

8 years agoThinLTO: special handling for LinkOnce functions
Mehdi Amini [Fri, 1 Apr 2016 21:53:50 +0000 (21:53 +0000)]
ThinLTO: special handling for LinkOnce functions

These function can be dropped by the compiler if they are no longer
referenced in the current module. However there is a change that
another module is still referencing them because of the import.

Multiple solutions can be used:

- Always import LinkOnce when a caller is imported. This ensure that
  every module with a call to a LinkOnce has the definition and will
  be able to emit it if it emits the call.
- Turn the LinkOnce into Weak, so that it is always emitted.
- Turn all LinkOnce into available_externally and come back after all
  modules are codegen'ed to emit only one copy of the linkonce, when
  there is still a reference to it.

This patch implement the second option, with am optimization that
only *one* module will turn the LinkOnce into Weak, while the others
will turn it into available_externally, so that there is exactly one
copy emitted for the whole compilation.

http://reviews.llvm.org/D18346

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

8 years agoSwift Calling Convention: add swifterror attribute.
Manman Ren [Fri, 1 Apr 2016 21:41:15 +0000 (21:41 +0000)]
Swift Calling Convention: add swifterror attribute.

A ``swifterror`` attribute can be applied to a function parameter or an
AllocaInst.

This commit does not include any target-specific change. The target-specific
optimization will come as a follow-up patch.

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

llvm-svn: 265189

8 years agoskip and xfail two std::list-related libcxx tests that fail on OS X with TOT libcxx
Todd Fiala [Fri, 1 Apr 2016 21:36:58 +0000 (21:36 +0000)]
skip and xfail two std::list-related libcxx tests that fail on OS X with TOT libcxx

Enrico has a bug on him to make this work across older libcxx list
and newer libcxx list simultaneously.  Needed in preparation of
getting the OS X public CI to run the TSAN tests.

tracked by:
rdar://25499635

llvm-svn: 265188

8 years agoClean up a couple more preprocessor tests to use match-full-lines.
James Y Knight [Fri, 1 Apr 2016 21:33:20 +0000 (21:33 +0000)]
Clean up a couple more preprocessor tests to use match-full-lines.

llvm-svn: 265187

8 years ago[X86][SSE] Regenerated vector float tests - fabs / floor(etc.) / fneg / float2double
Simon Pilgrim [Fri, 1 Apr 2016 21:30:48 +0000 (21:30 +0000)]
[X86][SSE] Regenerated vector float tests - fabs / floor(etc.) / fneg / float2double

llvm-svn: 265186

8 years ago[X86][SSE] Vector i64 load tests
Simon Pilgrim [Fri, 1 Apr 2016 21:06:17 +0000 (21:06 +0000)]
[X86][SSE] Vector i64 load tests

llvm-svn: 265185

8 years ago[X86][SSE] Regenerated comparison mask and float immediate tests
Simon Pilgrim [Fri, 1 Apr 2016 21:00:00 +0000 (21:00 +0000)]
[X86][SSE] Regenerated comparison mask and float immediate tests

llvm-svn: 265184

8 years ago[X86][SSE] Regenerated the vec_extract tests.
Simon Pilgrim [Fri, 1 Apr 2016 20:55:19 +0000 (20:55 +0000)]
[X86][SSE] Regenerated the vec_extract tests.

llvm-svn: 265183

8 years agoUpdate owners to reflect recent changes
David Blaikie [Fri, 1 Apr 2016 20:40:49 +0000 (20:40 +0000)]
Update owners to reflect recent changes

llvm-svn: 265182

8 years agoRemove more of the code-running ObjC data formatter support
Enrico Granata [Fri, 1 Apr 2016 20:33:22 +0000 (20:33 +0000)]
Remove more of the code-running ObjC data formatter support

llvm-svn: 265181

8 years agoFix buildbot lldb-amd64-ninja-netbsd7 failure
Rong Xu [Fri, 1 Apr 2016 20:15:04 +0000 (20:15 +0000)]
Fix buildbot lldb-amd64-ninja-netbsd7 failure

llvm-svn: 265180

8 years ago[X86][SSE] Regenerated the vec_insert tests.
Simon Pilgrim [Fri, 1 Apr 2016 19:42:23 +0000 (19:42 +0000)]
[X86][SSE] Regenerated the vec_insert tests.

llvm-svn: 265179

8 years agoRemove useless check for ThreadModel==Single in ARMISelLowering. NFC.
James Y Knight [Fri, 1 Apr 2016 19:33:19 +0000 (19:33 +0000)]
Remove useless check for ThreadModel==Single in ARMISelLowering. NFC.

ThreadModel::Single is already handled already by ARMPassConfig adding
LowerAtomicPass to the pass list, which lowers all atomics to non-atomic
ops and deletes fences.

So by the time we get to ISel, there's no atomic fences left, so they
don't need special handling.

llvm-svn: 265178

8 years agoDiagnose missing macro argument following charize operator.
Andy Gibbs [Fri, 1 Apr 2016 19:02:20 +0000 (19:02 +0000)]
Diagnose missing macro argument following charize operator.

For completeness, add a test-case for the equivalent stringize operator
diagnostic too.

llvm-svn: 265177

8 years agoLowerBitSets: Move declarations to separate namespace.
Peter Collingbourne [Fri, 1 Apr 2016 18:46:50 +0000 (18:46 +0000)]
LowerBitSets: Move declarations to separate namespace.

Should fix modules build.

llvm-svn: 265176

8 years agomark TestCallWithTimeout.py XFAIL on macosx.
Todd Fiala [Fri, 1 Apr 2016 18:42:45 +0000 (18:42 +0000)]
mark TestCallWithTimeout.py XFAIL on macosx.

This test is failing on the CI but not locally for me.  Needs
investigation.

tracked by:
https://llvm.org/bugs/show_bug.cgi?id=27182

llvm-svn: 265175

8 years ago[libfuzzer] adding license headers to cpp files
Mike Aizatsky [Fri, 1 Apr 2016 18:38:58 +0000 (18:38 +0000)]
[libfuzzer] adding license headers to cpp files

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

llvm-svn: 265174

8 years ago[X86][SSE] Regenerated vec_partial tests.
Simon Pilgrim [Fri, 1 Apr 2016 18:30:29 +0000 (18:30 +0000)]
[X86][SSE] Regenerated vec_partial tests.

llvm-svn: 265173

8 years ago[x86] add an SSE2 + fast-unaligned accesses run for memset nonzero tests
Sanjay Patel [Fri, 1 Apr 2016 18:29:25 +0000 (18:29 +0000)]
[x86] add an SSE2 + fast-unaligned accesses run for memset nonzero tests

Was there really no other way to splat a byte in SSE2?
    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
    pshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]

llvm-svn: 265172

8 years ago[X86][SSE] Regenerated vec_logical tests.
Simon Pilgrim [Fri, 1 Apr 2016 18:28:23 +0000 (18:28 +0000)]
[X86][SSE] Regenerated vec_logical tests.

llvm-svn: 265171

8 years agoAMDGPU: Implement {BUFFER,FLAT}_ATOMIC_CMPSWAP{,_X2}
Tom Stellard [Fri, 1 Apr 2016 18:27:37 +0000 (18:27 +0000)]
AMDGPU: Implement {BUFFER,FLAT}_ATOMIC_CMPSWAP{,_X2}

Summary:
Implement BUFFER_ATOMIC_CMPSWAP{,_X2} instructions on all GCN targets, and FLAT_ATOMIC_CMPSWAP{,_X2} on CI+.

32-bit instruction variants tested manually on Kabini and Bonaire. Tests and parts of code provided by Jan Veselý.

Patch by: Vedran Miletić

Reviewers: arsenm, tstellarAMD, nhaehnle

Subscribers: jvesely, scchan, kanarayan, arsenm

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

llvm-svn: 265170

8 years ago[X86][SSE] Regenerated vector sdiv to shifts tests
Simon Pilgrim [Fri, 1 Apr 2016 18:18:40 +0000 (18:18 +0000)]
[X86][SSE] Regenerated vector sdiv to shifts tests

Added SSE + AVX1 tests as well as AVX2

llvm-svn: 265169

8 years ago[sancov] save entry block from pruning (it is always full dominator)
Mike Aizatsky [Fri, 1 Apr 2016 18:13:19 +0000 (18:13 +0000)]
[sancov] save entry block from pruning (it is always full dominator)

llvm-svn: 265168

8 years ago[x86] add an SSE1 run for these tests
Sanjay Patel [Fri, 1 Apr 2016 18:11:30 +0000 (18:11 +0000)]
[x86] add an SSE1 run for these tests

Note however that this is identical to the existing SSE2 run.
What we really want is yet another run for an SSE2 machine that
also has fast unaligned 16-byte accesses.

llvm-svn: 265167

8 years agoSimplify if. NFC.
Rafael Espindola [Fri, 1 Apr 2016 18:04:21 +0000 (18:04 +0000)]
Simplify if. NFC.

llvm-svn: 265166

8 years agoGuard xunit result test class and test method name access to prevent testbot breakage
Todd Fiala [Fri, 1 Apr 2016 17:59:51 +0000 (17:59 +0000)]
Guard xunit result test class and test method name access to prevent testbot breakage

http://llvm.org/bugs/show_bug.cgi?id=27179

llvm-svn: 265165

8 years ago[X86][SSE] Regenerated vec_setcc tests.
Simon Pilgrim [Fri, 1 Apr 2016 17:55:02 +0000 (17:55 +0000)]
[X86][SSE] Regenerated vec_setcc tests.

llvm-svn: 265164

8 years ago[X86][SSE] Regenerated the vec_set tests.
Simon Pilgrim [Fri, 1 Apr 2016 17:40:25 +0000 (17:40 +0000)]
[X86][SSE] Regenerated the vec_set tests.

Replaced lots of dodgy greps with actual codegen

llvm-svn: 265163

8 years ago[CrashReproducer] Add -fmodule-cache-path to reproducer script
Bruno Cardoso Lopes [Fri, 1 Apr 2016 17:39:08 +0000 (17:39 +0000)]
[CrashReproducer] Add -fmodule-cache-path to reproducer script

The cc1 invocation in the reproducer script should contain a valid path in
-fmodule-cache-path; for that reuse "<name>.cache/module" dir we already
use to dump the vfs and modules.

llvm-svn: 265162

8 years ago[x86] avoid intermediate splat for non-zero memsets (PR27100)
Sanjay Patel [Fri, 1 Apr 2016 17:36:45 +0000 (17:36 +0000)]
[x86] avoid intermediate splat for non-zero memsets (PR27100)

Follow-up to http://reviews.llvm.org/D18566 and http://reviews.llvm.org/D18676 -
where we noticed that an intermediate splat was being generated for memsets of
non-zero chars.

That was because we told getMemsetStores() to use a 32-bit vector element type,
and it happily obliged by producing that constant using an integer multiply.

The 16-byte test that was added in D18566 is now equivalent for AVX1 and AVX2
(no splats, just a vector load), but we have PR27141 to track that splat difference.

Note that the SSE1 path is not changed in this patch. That can be a follow-up.
This patch should resolve PR27100.

llvm-svn: 265161

8 years ago[AArch64] Fix a typo. NFC.
Chad Rosier [Fri, 1 Apr 2016 17:34:38 +0000 (17:34 +0000)]
[AArch64] Fix a typo. NFC.

llvm-svn: 265160

8 years ago[ELF] - Split Writer::assignAddresses(): extract code for initializing dummies sections
George Rimar [Fri, 1 Apr 2016 17:30:52 +0000 (17:30 +0000)]
[ELF] - Split Writer::assignAddresses(): extract code for initializing dummies sections

Extracts code for initializing dummies sections
to avoid possible duplication in following patches.

Differential review: http://reviews.llvm.org/D18691

llvm-svn: 265159

8 years ago[InstCombine] Don't sink an instr after a catchswitch
David Majnemer [Fri, 1 Apr 2016 17:28:17 +0000 (17:28 +0000)]
[InstCombine] Don't sink an instr after a catchswitch

A catchswitch is a terminator, instructions cannot be inserted after it.

llvm-svn: 265158

8 years ago[SLPVectorizer] Don't insert an extractelement before a catchswitch
David Majnemer [Fri, 1 Apr 2016 17:28:15 +0000 (17:28 +0000)]
[SLPVectorizer] Don't insert an extractelement before a catchswitch

A catchswitch cannot be preceded by another instruction in the same
basic block (other than a PHI node).

Instead, insert the extract element right after the materialization of
the vectorized value.  This isn't optimal but is a reasonable compromise
given the constraints of WinEH.

This fixes PR27163.

llvm-svn: 265157

8 years agoMake error handling consistent.
Rui Ueyama [Fri, 1 Apr 2016 17:24:19 +0000 (17:24 +0000)]
Make error handling consistent.

Some functions in Writer reports error using HasError, and some reports
their return values. This patch makes them to consistently use HasError.

llvm-svn: 265156

8 years agoRemove dead code.
Rui Ueyama [Fri, 1 Apr 2016 17:17:14 +0000 (17:17 +0000)]
Remove dead code.

Thanks to George Rimor for pointing it out.

llvm-svn: 265155

8 years agoDon't do extra work if -r is given.
Rui Ueyama [Fri, 1 Apr 2016 17:11:42 +0000 (17:11 +0000)]
Don't do extra work if -r is given.

fixAbsoluteSymbols fixes linker-created symbol addresses. Since we don't
create such symbols for relocatable output, we don't need to call this
function.

llvm-svn: 265154

8 years agoFix warnings uncovered by building with clang-cl
Reid Kleckner [Fri, 1 Apr 2016 17:09:12 +0000 (17:09 +0000)]
Fix warnings uncovered by building with clang-cl

Move ifdefs to avoid unused static helpers. Move alignment attribute so
that it is respected in GCC and MSVC.

llvm-svn: 265153

8 years agoFix a load of -Wunknown-pragma warnings from clang-cl
Reid Kleckner [Fri, 1 Apr 2016 17:09:08 +0000 (17:09 +0000)]
Fix a load of -Wunknown-pragma warnings from clang-cl

llvm-svn: 265152

8 years agoTidy up address and file offset assignments in the Writer.
Rui Ueyama [Fri, 1 Apr 2016 17:07:17 +0000 (17:07 +0000)]
Tidy up address and file offset assignments in the Writer.

assignAddressesRelocatable function did not set addresses to sections
despite its name. What it actually did is to set file offsets to sections.
assignAddresses function assigned addresses and file offsets to sections.
So there was a confusion what they were doing, and they had duplicate code.

This patch separates file offset assignments from address assignments.
A new function, assignFileOffsets assign file offsets. assignAddresses
do not care about file offsets anymore.

llvm-svn: 265151

8 years agoBring r264761 back with an extra fix.
Rafael Espindola [Fri, 1 Apr 2016 17:00:36 +0000 (17:00 +0000)]
Bring r264761 back with an extra fix.

The extra fix is to note that it still requires copy relocations.

Original message:

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.

P.S.: Suggestions for a better name for the predicate are welcome :-)

llvm-svn: 265150

8 years ago[PGO] Refactor PGOFuncName meta data code to be used in clang
Rong Xu [Fri, 1 Apr 2016 16:43:30 +0000 (16:43 +0000)]
[PGO] Refactor PGOFuncName meta data code to be used in clang

Refactor the code that gets and creates PGOFuncName meta data so that it can be
used in clang's value profile annotation.

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

llvm-svn: 265149

8 years ago[x86] avoid intermediate splat for non-zero memsets (PR27100)
Sanjay Patel [Fri, 1 Apr 2016 16:27:14 +0000 (16:27 +0000)]
[x86] avoid intermediate splat for non-zero memsets (PR27100)

Follow-up to D18566 - where we noticed that an intermediate splat was being
generated for memsets of non-zero chars.

That was because we told getMemsetStores() to use a 32-bit vector element type,
and it happily obliged by producing that constant using an integer multiply.

The tests that were added in the last patch are now equivalent for AVX1 and AVX2
(no splats, just a vector load), but we have PR27141 to track that splat difference.
In the new tests, the splat via shuffling looks ok to me, but there might be some
room for improvement depending on uarch there.

Note that the SSE1/2 paths are not changed in this patch. That can be a follow-up.
This patch should resolve PR27100.

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

llvm-svn: 265148

8 years agoDon't apply a recolation that the dynamic linker will rewrite.
Rafael Espindola [Fri, 1 Apr 2016 16:21:09 +0000 (16:21 +0000)]
Don't apply a recolation that the dynamic linker will rewrite.

This matches the behavior of both bfd and gold. Looks like we just got
here for mips because of a bad ordering of an if else chain.

llvm-svn: 265147

8 years ago[OpenCL] Moved nosvm attribute handling in Sema to other OpenCL attrs
Anastasia Stulova [Fri, 1 Apr 2016 16:05:09 +0000 (16:05 +0000)]
[OpenCL] Moved nosvm attribute handling in Sema to other OpenCL attrs

llvm-svn: 265146

8 years ago[ADT] Make StringMap's tombstone aligned.
Benjamin Kramer [Fri, 1 Apr 2016 15:51:51 +0000 (15:51 +0000)]
[ADT] Make StringMap's tombstone aligned.

This avoids undefined behavior when casting pointers to it. Also make
sure that we don't cast to a derived StringMapEntry before checking for
tombstone, as that may have different alignment requirements.

llvm-svn: 265145

8 years ago[PGOProfile] Rename a test to make it more reusable, NFC
Vedant Kumar [Fri, 1 Apr 2016 15:45:33 +0000 (15:45 +0000)]
[PGOProfile] Rename a test to make it more reusable, NFC

llvm-svn: 265144

8 years agoPass a const pointer to getImplicitAddend. NFC.
Rafael Espindola [Fri, 1 Apr 2016 14:36:09 +0000 (14:36 +0000)]
Pass a const pointer to getImplicitAddend. NFC.

llvm-svn: 265143

8 years agoRefactor duplicated code.
Rafael Espindola [Fri, 1 Apr 2016 14:14:48 +0000 (14:14 +0000)]
Refactor duplicated code.

We had almost identical code to handle creating a plt entry in two
places.

llvm-svn: 265142

8 years ago[AMDGPU] fix MADAK/MADMK instructions operand namings to match encoding fields.
Valery Pykhtin [Fri, 1 Apr 2016 13:13:12 +0000 (13:13 +0000)]
[AMDGPU] fix MADAK/MADMK instructions operand namings to match encoding fields.

$vsrc1 -> $src1, $k -> $imm

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

llvm-svn: 265141

8 years agoFix clean rule for a makefile
Pavel Labath [Fri, 1 Apr 2016 12:59:37 +0000 (12:59 +0000)]
Fix clean rule for a makefile

The test was failing on windows because the clean rule (which is executed even if the test is
skipped) returned an error there.

llvm-svn: 265140

8 years agoAvoid creating duplicated relocations.
Rafael Espindola [Fri, 1 Apr 2016 12:54:27 +0000 (12:54 +0000)]
Avoid creating duplicated relocations.

llvm-svn: 265139

8 years ago[x86] Remove redundant call to setTargetDAGCombine for BUILD_VECTOR node type.
Andrea Di Biagio [Fri, 1 Apr 2016 12:25:44 +0000 (12:25 +0000)]
[x86] Remove redundant call to setTargetDAGCombine for BUILD_VECTOR node type.

Since revision 235394, we no longer perform target specific combines on
build_vector nodes. No functional change intended.

llvm-svn: 265138

8 years agoFix linux buildbot after r265136
George Rimar [Fri, 1 Apr 2016 12:24:28 +0000 (12:24 +0000)]
Fix linux buildbot after r265136

http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/20138

Fix: Move method above class that uses it.
Works fine with MSVS.

llvm-svn: 265137

8 years agoMake dummySectionsNum() to be not a member of writer. NFC.
George Rimar [Fri, 1 Apr 2016 11:59:32 +0000 (11:59 +0000)]
Make dummySectionsNum() to be not a member of writer. NFC.

llvm-svn: 265136

8 years ago[X86][AVX512] Regenerated intrinsics tests
Simon Pilgrim [Fri, 1 Apr 2016 11:57:51 +0000 (11:57 +0000)]
[X86][AVX512] Regenerated intrinsics tests

llvm-svn: 265135

8 years ago[MIPS][LLVM-MC] Fix JR encoding for MIPSR6 ISA
Sagar Thakur [Fri, 1 Apr 2016 11:55:33 +0000 (11:55 +0000)]
[MIPS][LLVM-MC] Fix JR encoding for MIPSR6 ISA

Summary: The assembler was picking the wrong JR variant because the pre-R6 one was still enabled at R6.

Author: nitesh.jain
Reviewers: vkalintiris, dsanders
Subscribers: dsanders, llvm-commits, mohit.bhakkad, sagar, bhushan, jaydeep
Differential: D18387
llvm-svn: 265134

8 years ago[ThinLTO] Fix uninitialized flags.
Benjamin Kramer [Fri, 1 Apr 2016 11:49:59 +0000 (11:49 +0000)]
[ThinLTO] Fix uninitialized flags.

Found by msan. Patch by Adrian Kuegel!

llvm-svn: 265133

8 years ago[FIX] Adjust the insert point for non-affine region PHIs
Johannes Doerfert [Fri, 1 Apr 2016 11:25:47 +0000 (11:25 +0000)]
[FIX] Adjust the insert point for non-affine region PHIs

  If a non-affine region PHI is generated we should not move the insert
  point prior to the synthezised value in the same block as we might
  split that block at the insert point later on. Only if the incoming
  value should be placed in a different block we should change the
  insertion point.

llvm-svn: 265132

8 years agoSplit Writer::assignAddresses(): extract common code to fixFileOff(). NFC.
George Rimar [Fri, 1 Apr 2016 11:04:47 +0000 (11:04 +0000)]
Split Writer::assignAddresses(): extract common code to fixFileOff(). NFC.

llvm-svn: 265131

8 years agoSplit Writer::assignAddresses(): extract assignPhdrs(). NFC.
George Rimar [Fri, 1 Apr 2016 10:49:14 +0000 (10:49 +0000)]
Split Writer::assignAddresses(): extract assignPhdrs(). NFC.

llvm-svn: 265130

8 years ago[ELF] - Move calculation of _end to fixAbsoluteSymbols()
George Rimar [Fri, 1 Apr 2016 10:23:32 +0000 (10:23 +0000)]
[ELF] - Move calculation of _end to fixAbsoluteSymbols()

That is consistent with other symbols: _edata, _etext
and can help to avoid duplicate code.

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

llvm-svn: 265129

8 years ago[X86] Introduce Lakemont CPU.
Andrey Turetskiy [Fri, 1 Apr 2016 10:16:15 +0000 (10:16 +0000)]
[X86] Introduce Lakemont CPU.

Add a new Intel MCU CPU Lakemont, which doesn't support X87.

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

llvm-svn: 265128

8 years ago[OPENMP] Fixed documentation category for 'declare simd' attribute, NFC.
Alexey Bataev [Fri, 1 Apr 2016 10:12:06 +0000 (10:12 +0000)]
[OPENMP] Fixed documentation category for 'declare simd' attribute, NFC.

llvm-svn: 265127

8 years ago[Lexer] Let the compiler infer string lengths. No functionality change intended.
Benjamin Kramer [Fri, 1 Apr 2016 10:04:07 +0000 (10:04 +0000)]
[Lexer] Let the compiler infer string lengths. No functionality change intended.

llvm-svn: 265126

8 years ago[Lexer] Don't read out of bounds if a conflict marker is at the end of a file
Benjamin Kramer [Fri, 1 Apr 2016 09:58:45 +0000 (09:58 +0000)]
[Lexer] Don't read out of bounds if a conflict marker is at the end of a file

This can happen as we look for '<<<<' while scanning tokens but then expect
'<<<<\n' to tell apart perforce from diff3 conflict markers. Just harden
the pointer arithmetic.

Found by libfuzzer + asan!

llvm-svn: 265125