platform/upstream/llvm.git
8 years ago[Hexagon] Fixing relocation generation and adding tests.
Colin LeMahieu [Tue, 9 Feb 2016 19:18:02 +0000 (19:18 +0000)]
[Hexagon] Fixing relocation generation and adding tests.

llvm-svn: 260259

8 years ago[MC] Adding GOTREL expression variant.
Colin LeMahieu [Tue, 9 Feb 2016 19:17:34 +0000 (19:17 +0000)]
[MC] Adding GOTREL expression variant.

llvm-svn: 260258

8 years ago[AArch64] Hoist now common logic. NFC.
Chad Rosier [Tue, 9 Feb 2016 19:17:18 +0000 (19:17 +0000)]
[AArch64] Hoist now common logic. NFC.

llvm-svn: 260257

8 years ago[AArch64] Rename variable to make it clear we're merging here, not pairing.
Chad Rosier [Tue, 9 Feb 2016 19:09:22 +0000 (19:09 +0000)]
[AArch64] Rename variable to make it clear we're merging here, not pairing.

llvm-svn: 260256

8 years ago[libclang] indexing: make sure to not visit init-list expressions twice.
Argyrios Kyrtzidis [Tue, 9 Feb 2016 19:07:24 +0000 (19:07 +0000)]
[libclang] indexing: make sure to not visit init-list expressions twice.

llvm-svn: 260255

8 years ago[libclang] indexing: handle 'TopLevelDeclInObjCContainers' at the point where they...
Argyrios Kyrtzidis [Tue, 9 Feb 2016 19:07:21 +0000 (19:07 +0000)]
[libclang] indexing: handle 'TopLevelDeclInObjCContainers' at the point where they are reported.

It isn't much benefit and doesn't worth the complexity to try to handle them after the container is encountered.

llvm-svn: 260254

8 years ago[libclang] indexing: for a synthesized property reference have the parent be the...
Argyrios Kyrtzidis [Tue, 9 Feb 2016 19:07:19 +0000 (19:07 +0000)]
[libclang] indexing: for a synthesized property reference have the parent be the ObjC implementation decl.

llvm-svn: 260253

8 years ago[Frontend] Handle ASTConsumer::shouldSkipFunctionBody via the MultiplexConsumer.
Argyrios Kyrtzidis [Tue, 9 Feb 2016 19:07:16 +0000 (19:07 +0000)]
[Frontend] Handle ASTConsumer::shouldSkipFunctionBody via the MultiplexConsumer.

llvm-svn: 260252

8 years ago[ASTUnit] Change the parameter of ASTUnit::LoadFromCompilerInvocationAction to accept...
Argyrios Kyrtzidis [Tue, 9 Feb 2016 19:07:13 +0000 (19:07 +0000)]
[ASTUnit] Change the parameter of ASTUnit::LoadFromCompilerInvocationAction to accept a more general FrontendAction.

llvm-svn: 260251

8 years ago[libclang] indexing: Have the semantic container of synthesized ObjC getter/setter...
Argyrios Kyrtzidis [Tue, 9 Feb 2016 19:07:07 +0000 (19:07 +0000)]
[libclang] indexing: Have the semantic container of synthesized ObjC getter/setter methods be the implementation decl.

Matches the behavior of other ObjC methods.

llvm-svn: 260250

8 years ago[AArch64] Separage the codegen logic for widening vs. pairing. NFC.
Chad Rosier [Tue, 9 Feb 2016 19:02:12 +0000 (19:02 +0000)]
[AArch64] Separage the codegen logic for widening vs. pairing. NFC.

llvm-svn: 260249

8 years agoAligned __stub_helper section to 4-bytes.
Pete Cooper [Tue, 9 Feb 2016 18:56:37 +0000 (18:56 +0000)]
Aligned __stub_helper section to 4-bytes.

ld64 aligns most of the stub's to 2 byte alignment, expect for
the stub helper common atoms which are 4 byte aligned.

This adds a new field to StubInfo which tracks this alignment
and ensures that this is the alignment we get in the final image.

rdar://problem/24570220

llvm-svn: 260248

8 years agoMention the --all-files option in the -p help string.
Jim Ingham [Tue, 9 Feb 2016 18:53:49 +0000 (18:53 +0000)]
Mention the --all-files option in the -p help string.

llvm-svn: 260247

8 years agoSimplify EnterTokenStream API to make it more robust for memory management
David Blaikie [Tue, 9 Feb 2016 18:52:09 +0000 (18:52 +0000)]
Simplify EnterTokenStream API to make it more robust for memory management

While this won't help fix things like the bug that r260219 addressed, it
seems like good tidy up to have anyway.

(it might be nice if "makeArrayRef" always produced a MutableArrayRef &
let it decay to an ArrayRef when needed - then I'd use that for the
MutableArrayRefs in this patch)

If we had std::dynarray I'd use that instead of unique_ptr+size_t,
ideally (but then it'd have to be threaded down through the Preprocessor
all the way - no idea how painful that would be)

llvm-svn: 260246

8 years ago[llvm-readobj][ELF] Show MIPS GOT content when there is another zero-sized section...
Simon Atanasyan [Tue, 9 Feb 2016 18:45:35 +0000 (18:45 +0000)]
[llvm-readobj][ELF] Show MIPS GOT content when there is another zero-sized section at the same address

It is possible to have .got section and one or more zero-sized section
at the same address. This patch first checks that GOT (or GOT PLT)
section should have non-zero size using corresponding dynamic tags. Then
it looks up not empty section at the specified address.

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

llvm-svn: 260245

8 years ago[FunctionAttrs] Fix SCC logic around operand bundles
Sanjoy Das [Tue, 9 Feb 2016 18:40:40 +0000 (18:40 +0000)]
[FunctionAttrs] Fix SCC logic around operand bundles

FunctionAttrs does an "optimistic" analysis of SCCs as a unit, which
means normally it is able to disregard calls from an SCC into itself.
However, calls and invokes with operand bundles are allowed to have
memory effects not fully described by the memory effects on the call
target, so we can't be optimistic around operand-bundled calls from an
SCC into itself.

llvm-svn: 260244

8 years agoFix a formatting problems with llvm-size and the -m option.
Kevin Enderby [Tue, 9 Feb 2016 18:33:15 +0000 (18:33 +0000)]
Fix a formatting problems with llvm-size and the -m option.
It was using format() with a string for 64-bit types but was
passed a 32-bit type in places when printing values for
32-bit Mach-O files.

rdar://24542509

llvm-svn: 260243

8 years ago[AArch64] Cleanup to simplify logic when widening vs. pairing loads/stores. NFC.
Chad Rosier [Tue, 9 Feb 2016 18:10:20 +0000 (18:10 +0000)]
[AArch64] Cleanup to simplify logic when widening vs. pairing loads/stores. NFC.

The logic to pair instructions and merge narrow instructions has become cloogy
and error prone.  This patch beings to unravel these two similar, but distinct
optimizations.

llvm-svn: 260242

8 years agoRevert "Avoid forcing emission of delayed dllexported classes on template instantiation"
Reid Kleckner [Tue, 9 Feb 2016 17:48:27 +0000 (17:48 +0000)]
Revert "Avoid forcing emission of delayed dllexported classes on template instantiation"

This reverts commit r260194.

It caused PR26549. There's probably a better way to do this also.

llvm-svn: 260241

8 years ago[x86] make getOneTrueElt() a helper function ; NFC
Sanjay Patel [Tue, 9 Feb 2016 17:39:58 +0000 (17:39 +0000)]
[x86] make getOneTrueElt() a helper function ; NFC

As mentioned in http://reviews.llvm.org/D16828 , the related masked load transform
will need this logic, so I'm moving it out to make that patch smaller.

llvm-svn: 260240

8 years agoFix invalid shift operator overload in Scalar
Pavel Labath [Tue, 9 Feb 2016 17:28:01 +0000 (17:28 +0000)]
Fix invalid shift operator overload in Scalar

Summary: This also fixes an infinite recursion between lldb_private::operator>> () and Scalar::operator>>= ().

Reviewers: sagar, tberghammer, labath

Subscribers: lldb-commits

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

Patch by Marianne Mailhot-Sarrasin

llvm-svn: 260239

8 years ago[MS ABI] Cleanup emitVTableDefinitions
David Majnemer [Tue, 9 Feb 2016 17:27:52 +0000 (17:27 +0000)]
[MS ABI] Cleanup emitVTableDefinitions

Use the VFTable components to determine whether or not we should emit
RTTI data instead of duplicating the VFTableBuilder's logic.

llvm-svn: 260238

8 years agoIntroduce a cmake module to figure out whether we need to link with libatomic.
Vasileios Kalintiris [Tue, 9 Feb 2016 17:00:38 +0000 (17:00 +0000)]
Introduce a cmake module to figure out whether we need to link with libatomic.

Summary:
This fixes the tests under std/atomics for 32-bit MIPS CPUs where the
8-byte atomic operations call into the libatomic library.

Reviewers: dsanders, mclow.lists, EricWF, jroelofs, joerg

Subscribers: cfe-commits

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

llvm-svn: 260235

8 years ago[lsan] Run the tests for each supported arch and suffix each one to distinguish them.
Daniel Sanders [Tue, 9 Feb 2016 16:22:39 +0000 (16:22 +0000)]
[lsan] Run the tests for each supported arch and suffix each one to distinguish them.

Summary:
Previously, the tests only ran for the 64-bit equivalent of the default target
(see -m64).
Given the supported architecture list only contains 64-bit targets, this happens
to work out the same as the supported targets in most cases but may matter for
X86_64/X86_64h on Darwin.

For other targets, the practical effect is that the test names contain the
architecture. This resolves some confusion when lsan tests fail since their
name no longer implies that they are trying to test the default target.

Reviewers: samsonov

Subscribers: tberghammer, danalbert, llvm-commits, srhines

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

llvm-svn: 260232

8 years ago[dfsan] Run the tests for each supported arch and suffix each one to distinguish...
Daniel Sanders [Tue, 9 Feb 2016 16:20:37 +0000 (16:20 +0000)]
[dfsan] Run the tests for each supported arch and suffix each one to distinguish them.

Summary:
Previously, the tests only ran for the 64-bit equivalent of the default target
(see -m64).
Given the supported architecture list only contains 64-bit targets, this happens
to work out the same as the supported targets in most cases but may matter for
X86_64/X86_64h on Darwin.

For other targets, the practical effect is that the test names contain the
architecture. This resolves some confusion when msan tests fail since their
name no longer implies that they are trying to test the default target.

Reviewers: samsonov

Subscribers: tberghammer, danalbert, llvm-commits, srhines

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

llvm-svn: 260231

8 years ago[msan] Run the tests for each supported arch and suffix each one to distinguish them.
Daniel Sanders [Tue, 9 Feb 2016 16:18:15 +0000 (16:18 +0000)]
[msan] Run the tests for each supported arch and suffix each one to distinguish them.

Summary:
Previously, the tests only ran for the 64-bit equivalent of the default target
(see -m64).
Given the supported architecture list only contains 64-bit targets, this happens
to work out the same as the supported targets in most cases but may matter for
X86_64/X86_64h on Darwin.

For other targets, the practical effect is that the test names contain the
architecture. This resolves some confusion when msan tests fail since their
name no longer implies that they are trying to test the default target.

Reviewers: samsonov

Subscribers: tberghammer, danalbert, srhines, llvm-commits

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

llvm-svn: 260230

8 years ago[sanitizer_common] Correct the nits that should have been committed as part of r260227.
Daniel Sanders [Tue, 9 Feb 2016 16:14:31 +0000 (16:14 +0000)]
[sanitizer_common] Correct the nits that should have been committed as part of r260227.

llvm-svn: 260229

8 years ago[AArch64] Rename variable to improve readability. NFC.
Chad Rosier [Tue, 9 Feb 2016 15:59:57 +0000 (15:59 +0000)]
[AArch64] Rename variable to improve readability. NFC.

llvm-svn: 260228

8 years ago[sanitizer_common] Add suffix to lit testsuite name to distinguish subtargets.
Daniel Sanders [Tue, 9 Feb 2016 15:52:35 +0000 (15:52 +0000)]
[sanitizer_common] Add suffix to lit testsuite name to distinguish subtargets.

Summary:
This fixes duplicate test names in the test results, so:
  PASS: SanitizerCommon-asan :: fopen_nullptr.c (304 of 431)
  PASS: SanitizerCommon-asan :: fopen_nullptr.c (305 of 431)
is now:
  PASS: SanitizerCommon-asan-i386-Linux :: fopen_nullptr.c (282 of 431)
  PASS: SanitizerCommon-asan-x86_64-Linux :: fopen_nullptr.c (316 of 431)

Reviewers: samsonov

Subscribers: llvm-commits

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

llvm-svn: 260227

8 years ago[AArch64] Remove stale comment.
Chad Rosier [Tue, 9 Feb 2016 15:51:33 +0000 (15:51 +0000)]
[AArch64] Remove stale comment.

llvm-svn: 260226

8 years ago[clang-tidy] Add -target in misc-misplaced-widening-cast test so it will work on...
Daniel Marjamaki [Tue, 9 Feb 2016 15:43:05 +0000 (15:43 +0000)]
[clang-tidy] Add -target in misc-misplaced-widening-cast test so it will work on various bots

llvm-svn: 260225

8 years agoUse the plt entry as the address of some symbols.
Rafael Espindola [Tue, 9 Feb 2016 15:11:01 +0000 (15:11 +0000)]
Use the plt entry as the address of some symbols.

This is the function equivalent of a copy relocation.

Since functions are expected to change sizes, we cannot use copy
relocations. In situations where one would be needed, what is done
instead is:
* Create a plt entry
* Output an undefined symbol whose addr is the plt entry.

The dynamic linker makes sure any shared library uses the plt entry as
the function address.

llvm-svn: 260224

8 years ago[clang-tidy] Add 'misc-misplaced-widening-cast' check.
Daniel Marjamaki [Tue, 9 Feb 2016 14:08:49 +0000 (14:08 +0000)]
[clang-tidy] Add 'misc-misplaced-widening-cast' check.

Reviewers: alexfh

Subscribers: cfe-commits

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

llvm-svn: 260223

8 years agoRegistering the gnuNullExpr AST matcher as a dynamic matcher so that it is available...
Aaron Ballman [Tue, 9 Feb 2016 14:04:49 +0000 (14:04 +0000)]
Registering the gnuNullExpr AST matcher as a dynamic matcher so that it is available from clang-query.

llvm-svn: 260222

8 years agoFix comment for MD5Hash.
Teresa Johnson [Tue, 9 Feb 2016 13:28:44 +0000 (13:28 +0000)]
Fix comment for MD5Hash.

llvm-svn: 260221

8 years ago[OPENMP] Fix test incompatibility with arm buildbots.
Alexey Bataev [Tue, 9 Feb 2016 12:16:42 +0000 (12:16 +0000)]
[OPENMP] Fix test incompatibility with arm buildbots.

llvm-svn: 260220

8 years agoFix possible OOB access found by buildbot
Alexey Bataev [Tue, 9 Feb 2016 11:01:58 +0000 (11:01 +0000)]
Fix possible OOB access found by buildbot

llvm-svn: 260219

8 years agoAdd AST matcher reference to documentation directory when building HTML docs.
Manuel Klimek [Tue, 9 Feb 2016 10:59:21 +0000 (10:59 +0000)]
Add AST matcher reference to documentation directory when building HTML docs.

llvm-svn: 260218

8 years ago[clang-tidy] Make readability-container-size-empty work with inline namespaces. Fix...
Gabor Horvath [Tue, 9 Feb 2016 10:20:48 +0000 (10:20 +0000)]
[clang-tidy] Make readability-container-size-empty work with inline namespaces. Fix PR25812.

llvm-svn: 260217

8 years agoFix a typo in an xfail decorator in TestExprsChar
Tamas Berghammer [Tue, 9 Feb 2016 10:10:42 +0000 (10:10 +0000)]
Fix a typo in an xfail decorator in TestExprsChar

llvm-svn: 260216

8 years ago[OPENMP] Allow to use the variable in the same 'threadprivate'
Alexey Bataev [Tue, 9 Feb 2016 09:41:42 +0000 (09:41 +0000)]
[OPENMP] Allow to use the variable in the same 'threadprivate'
directive.

llvm-svn: 260215

8 years agoDo not mark variable as threadprivate if it was marked already.
Alexey Bataev [Tue, 9 Feb 2016 09:41:33 +0000 (09:41 +0000)]
Do not mark variable as threadprivate if it was marked already.

llvm-svn: 260214

8 years ago[OPENMP] Allow to reference threadprivate variable in same directive.
Alexey Bataev [Tue, 9 Feb 2016 09:41:09 +0000 (09:41 +0000)]
[OPENMP] Allow to reference threadprivate variable in same directive.

llvm-svn: 260213

8 years ago[clang-tidy] Replace a custom ASTMatcher with a built-in one.
Gabor Horvath [Tue, 9 Feb 2016 09:26:11 +0000 (09:26 +0000)]
[clang-tidy] Replace a custom ASTMatcher with a built-in one.

llvm-svn: 260212

8 years agoFixed preprocessed output of the first token for pragmas.
Alexey Bataev [Tue, 9 Feb 2016 08:51:26 +0000 (08:51 +0000)]
Fixed preprocessed output of the first token for pragmas.
Clang did not expanded macros in the very first token of the pragmas
during preprocessed output

llvm-svn: 260211

8 years ago[X86][AVX2] Fix SIGN_EXTEND vector handling on AVX2 targets.
Simon Pilgrim [Tue, 9 Feb 2016 08:19:19 +0000 (08:19 +0000)]
[X86][AVX2] Fix SIGN_EXTEND vector handling on AVX2 targets.

On AVX2 target we are poorly legalizing SIGN_EXTEND ops for which the input's legalized type doesn't have the same number of elements as the destination, resulting in an ANY_EXTEND followed by a SIGN_EXTEND_INREG.

This patch uses the existing SIGN_EXTEND -> SIGN_EXTEND_VECTOR_INREG combine to extend the input to the size of the result and using SIGN_EXTEND_VECTOR_INREG instead.

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

llvm-svn: 260210

8 years agolld/test/mach-o/dependency_info.yaml: Forgot to remove XFAIL:win32.
NAKAMURA Takumi [Tue, 9 Feb 2016 07:44:10 +0000 (07:44 +0000)]
lld/test/mach-o/dependency_info.yaml: Forgot to remove XFAIL:win32.

llvm-svn: 260209

8 years agolld/test/mach-o/dependency_info.yaml: Tweak for dos path.
NAKAMURA Takumi [Tue, 9 Feb 2016 07:30:24 +0000 (07:30 +0000)]
lld/test/mach-o/dependency_info.yaml: Tweak for dos path.

llvm-svn: 260208

8 years agocheck-lld: Introduce %python.
NAKAMURA Takumi [Tue, 9 Feb 2016 07:30:18 +0000 (07:30 +0000)]
check-lld: Introduce %python.

llvm-svn: 260207

8 years agoIntroduce the feature 'demangler' in check-lld. Mark lld/test/old-elf/X86_64/demangle...
NAKAMURA Takumi [Tue, 9 Feb 2016 07:30:11 +0000 (07:30 +0000)]
Introduce the feature 'demangler' in check-lld. Mark lld/test/old-elf/X86_64/demangle.test as REQUIRES:demangler.

llvm-svn: 260206

8 years agoDisable lld/test/old-elf/group-cmd-search.test on win32. "XFAIL:win32" was insufficient.
NAKAMURA Takumi [Tue, 9 Feb 2016 07:30:04 +0000 (07:30 +0000)]
Disable lld/test/old-elf/group-cmd-search.test on win32. "XFAIL:win32" was insufficient.

llvm-svn: 260205

8 years ago[GCC] GOMP_task: Change argument type of if_cond from int to bool
Jonas Hahnfeld [Tue, 9 Feb 2016 07:07:30 +0000 (07:07 +0000)]
[GCC] GOMP_task: Change argument type of if_cond from int to bool

(libgomp has bool as well)

This was causing a test failure in omp_test_if.c when building with GCC in
Debug mode. I have verified that GCC versions 4.9.2 and 5.3.0 now work and
compile-tested this change with clang 3.7.1 and Intel Compiler 16.0.

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

llvm-svn: 260204

8 years ago[CMake] Updating caches README with explanations of useful cache files.
Chris Bieneman [Tue, 9 Feb 2016 06:49:08 +0000 (06:49 +0000)]
[CMake] Updating caches README with explanations of useful cache files.

This is in response to silvas' post-commit suggestion.

llvm-svn: 260203

8 years agoMinor updates to failing tests. NFC
Marshall Clow [Tue, 9 Feb 2016 06:38:56 +0000 (06:38 +0000)]
Minor updates to failing tests. NFC

llvm-svn: 260202

8 years ago[CMake] Providing a CMake cache for 3-stage builds
Chris Bieneman [Tue, 9 Feb 2016 06:01:47 +0000 (06:01 +0000)]
[CMake] Providing a CMake cache for 3-stage builds

This cache file can be used to generate a 3-stage clang build. You can configure using the following CMake command:

cmake -C <path to clang>/cmake/caches/3-stage.cmake -G Ninja <path to llvm>

You can then run "ninja stage3-clang" to build stage1, stage2 and stage3 clangs.

This is useful for finding non-determinism the compiler by verifying that stage2 and stage3 are identical.

llvm-svn: 260201

8 years agoAdd comments to some tests
Xinliang David Li [Tue, 9 Feb 2016 05:47:08 +0000 (05:47 +0000)]
Add comments to some tests

llvm-svn: 260200

8 years agoFix an issue where pressing CTRL+C in the interactive script interpreter causes LLDB...
Enrico Granata [Tue, 9 Feb 2016 05:46:47 +0000 (05:46 +0000)]
Fix an issue where pressing CTRL+C in the interactive script interpreter causes LLDB to crash

This is because PyThreadState_Get() assumes a non-NULL thread state and crashes otherwise; but PyThreadState_GET is just a shortcut (in non-Python-debugging builds) for the global variable that holds the thread state

The behavior of CTRL+C is slightly more erratic than one would like. CTRL+C in the middle of execution of Python code will cause that execution to be interrupted (e.g. time.sleep(1000)), but a CTRL+C at the prompt will just cause a KeyboardInterrupt and not exit the interpreter - worse, it will only trigger the exception once one presses ENTER.

None of this is optimal, of course, but I don't have a lot of time to appease the Python deities with the proper spells right now, and fixing the crasher is already a good thing in and of itself

llvm-svn: 260199

8 years agoFurther reduce test overhead
Xinliang David Li [Tue, 9 Feb 2016 05:36:57 +0000 (05:36 +0000)]
Further reduce test overhead

llvm-svn: 260198

8 years agoRefactor PGO function naming and MD5 hashing support out of ProfileData
Teresa Johnson [Tue, 9 Feb 2016 05:12:44 +0000 (05:12 +0000)]
Refactor PGO function naming and MD5 hashing support out of ProfileData

Summary:
Move the function renaming logic into the Function class, and the
MD5Hash routine into the MD5 header.

This will enable these routines to be shared with ThinLTO, which
will be changed to store the MD5 hash instead of full function name
in the combined index for significant size reductions. And using the same
function naming for locals in the function index facilitates future
integration with indirect call value profiles.

Reviewers: davidxl

Subscribers: llvm-commits

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

llvm-svn: 260197

8 years agoUse std::forward to make ErrorOr<T> constructible from a value that has a user-define...
Nick Lewycky [Tue, 9 Feb 2016 04:47:58 +0000 (04:47 +0000)]
Use std::forward to make ErrorOr<T> constructible from a value that has a user-defined conversion to T. No functionality change intended.

llvm-svn: 260196

8 years agoUse the reserved spellings for attributes
Saleem Abdulrasool [Tue, 9 Feb 2016 04:05:37 +0000 (04:05 +0000)]
Use the reserved spellings for attributes

Change the no_sanitize attribute to use the reserved spelling.

llvm-svn: 260195

8 years agoAvoid forcing emission of delayed dllexported classes on template instantiation
Reid Kleckner [Tue, 9 Feb 2016 02:51:17 +0000 (02:51 +0000)]
Avoid forcing emission of delayed dllexported classes on template instantiation

Fixes PR26490

llvm-svn: 260194

8 years ago[GMR/OperandBundles] Teach getModRefBehavior about operand bundles
Sanjoy Das [Tue, 9 Feb 2016 02:31:47 +0000 (02:31 +0000)]
[GMR/OperandBundles] Teach getModRefBehavior about operand bundles

In general, memory restrictions on a called function (e.g. readnone)
cannot be transferred to a CallSite that has operand bundles.  It is
possible to make this inference smarter, but lets fix the behavior to be
correct first.

llvm-svn: 260193

8 years ago[TestExprsChar] Fix a typo is failure archs list
Siva Chandra [Tue, 9 Feb 2016 02:18:50 +0000 (02:18 +0000)]
[TestExprsChar] Fix a typo is failure archs list

Reviewers: zturner

Subscribers: lldb-commits

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

llvm-svn: 260192

8 years agoAdd cmdline options for LC_DATA_IN_CODE load command.
Pete Cooper [Tue, 9 Feb 2016 02:10:39 +0000 (02:10 +0000)]
Add cmdline options for LC_DATA_IN_CODE load command.

Also added the defaults for whether to generate this load command, which
the cmdline options are able to override.

There was also a difference to ld64 which is fixed here in that ld64 will
generate an empty data in code command if requested.

rdar://problem/24472630

llvm-svn: 260191

8 years agoRemove TrailingObjects::operator delete. It's still suffering from
Richard Smith [Tue, 9 Feb 2016 02:09:16 +0000 (02:09 +0000)]
Remove TrailingObjects::operator delete. It's still suffering from
compiler-specific issues. Instead, repeat an 'operator delete' definition in
each derived class that is actually deleted, and give up on the static type
safety of an error when sized delete is accidentally used on a type derived
from TrailingObjects.

llvm-svn: 260190

8 years agoRemove 'llvm::TrailingObjects::operator delete', clang side.
Richard Smith [Tue, 9 Feb 2016 01:57:24 +0000 (01:57 +0000)]
Remove 'llvm::TrailingObjects::operator delete', clang side.

llvm-svn: 260189

8 years agoGenerate LC_FUNCTION_STARTS load command.
Pete Cooper [Tue, 9 Feb 2016 01:38:13 +0000 (01:38 +0000)]
Generate LC_FUNCTION_STARTS load command.

This load command generates data in the LINKEDIT section which
is a list of ULEB128 delta's to all of the functions in the __text section.

It is then 0 terminated and pointer aligned to pad.

ld64 exposes the -function-starts and no-function-starts cmdline options
to override behaviour from the defaults based on file types.

rdar://problem/24472630

llvm-svn: 260188

8 years agoFix the LLVM_ENABLE_MODULES build after adding TargetOpcodes.def in r259726.
David L Kreitzer [Tue, 9 Feb 2016 01:35:45 +0000 (01:35 +0000)]
Fix the LLVM_ENABLE_MODULES build after adding TargetOpcodes.def in r259726.

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

llvm-svn: 260186

8 years agoWe should never dead strip mach header symbols.
Pete Cooper [Tue, 9 Feb 2016 01:34:13 +0000 (01:34 +0000)]
We should never dead strip mach header symbols.

This was a bug in our handling of these symbols compared to ld64.

Turns out that ld64 always marks these symbols as being not dead stripped.

llvm-svn: 260185

8 years agoReorder enum entry as its used for atom sorting.
Pete Cooper [Tue, 9 Feb 2016 01:27:30 +0000 (01:27 +0000)]
Reorder enum entry as its used for atom sorting.

The atom content type enum is used as a tie breaker to sort atoms.
In that case, we want MachHeader to be before typeCode as it really will
be before the code in the final executable.

Test case to follow in the next commit or two.

llvm-svn: 260184

8 years agoAdd an "addUsedAAAnalyses" helper function
Sanjoy Das [Tue, 9 Feb 2016 01:21:57 +0000 (01:21 +0000)]
Add an "addUsedAAAnalyses" helper function

Summary:
Passes that call `getAnalysisIfAvailable<T>` also need to call
`addUsedIfAvailable<T>` in `getAnalysisUsage` to indicate to the
legacy pass manager that it uses `T`.  This contract was being
violated by passes that used `createLegacyPMAAResults`.  This change
fixes this by exposing a helper in AliasAnalysis.h,
`addUsedAAAnalyses`, that is complementary to createLegacyPMAAResults
and does the right thing when called from `getAnalysisUsage`.

Reviewers: chandlerc

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 260183

8 years agoRemove SCEVAAWrapperPass from createLegacyPMAAResults; NFC
Sanjoy Das [Tue, 9 Feb 2016 01:21:50 +0000 (01:21 +0000)]
Remove SCEVAAWrapperPass from createLegacyPMAAResults; NFC

Summary:
createLegacyPMAAResults is only called by CGSCC and Module passes, so
the call to getAnalysisIfAvailable<SCEVAAWrapperPass>() never
succeeds (SCEVAAWrapperPass is a function pass).

Reviewers: chandlerc

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 260182

8 years agoFix undefined behavior when compiling in C++14 due to sized operator delete
Richard Smith [Tue, 9 Feb 2016 01:05:04 +0000 (01:05 +0000)]
Fix undefined behavior when compiling in C++14 due to sized operator delete
being called with the wrong size: convert CGFunctionInfo to use TrailingObjects
and ask TrailingObjects to provide a working 'operator delete' for us.

llvm-svn: 260181

8 years agoRe-commit r259942 (reverted in r260053) with a different workaround for the MSVC...
Richard Smith [Tue, 9 Feb 2016 01:03:42 +0000 (01:03 +0000)]
Re-commit r259942 (reverted in r260053) with a different workaround for the MSVC bug.

This fixes undefined behavior in C++14 due to the size of the object being
deleted being different from sizeof(dynamic type) when it is allocated with
trailing objects.

MSVC seems to have several bugs around using-declarations changing the access
of a member inherited from a base class, so use forwarding functions instead of
using-declarations to make TrailingObjects::operator delete accessible where
desired.

llvm-svn: 260180

8 years agoSimplify some expressions involving unique_ptr and ErrorOr
David Blaikie [Tue, 9 Feb 2016 01:02:24 +0000 (01:02 +0000)]
Simplify some expressions involving unique_ptr and ErrorOr

llvm-svn: 260179

8 years agoRemove skip and xfail decorators for target architecture.
Zachary Turner [Tue, 9 Feb 2016 00:36:34 +0000 (00:36 +0000)]
Remove skip and xfail decorators for target architecture.

This removes the following decorators:

* skipIfI386
* expectedFailureI386
* expectedFailurex86_64
* skipIfArch
* skipUnlessArch
* skipUnlessI386

And other related decorators.  All code using those decorators
is updated to use expectedFailureAll and skipIf

llvm-svn: 260178

8 years agoRemove skipIfHostPlatform and skipUnlessHostPlatform decorators.
Zachary Turner [Tue, 9 Feb 2016 00:36:27 +0000 (00:36 +0000)]
Remove skipIfHostPlatform and skipUnlessHostPlatform decorators.

llvm-svn: 260177

8 years agoRemove the skipUnlessArch decorator.
Zachary Turner [Tue, 9 Feb 2016 00:36:22 +0000 (00:36 +0000)]
Remove the skipUnlessArch decorator.

Convert everything over to using skipIf.

llvm-svn: 260176

8 years ago[asan] Fix build on Windows and PowerPC.
Evgeniy Stepanov [Tue, 9 Feb 2016 00:28:57 +0000 (00:28 +0000)]
[asan] Fix build on Windows and PowerPC.

llvm-svn: 260175

8 years agoThis patch is to fix PR26529 caused by r259736.
Wei Mi [Tue, 9 Feb 2016 00:07:08 +0000 (00:07 +0000)]
This patch is to fix PR26529 caused by r259736.

IndVarSimplify assumes scAddRecExpr to be expanded in literal form instead of
canonical form by calling disableCanonicalMode after it creates SCEVExpander.
When CanonicalMode is disabled, SCEVExpander::expand should always return PHI
node for scAddRecExpr. r259736 broke the assumption.

The fix is to let SCEVExpander::expand skip the reuse Value logic if
CanonicalMode is false.

In addition, Besides IndVarSimplify, LSR pass also calls disableCanonicalMode
before doing rewrite. We can remove the original check of LSRMode in reuse
Value logic and use CanonicalMode instead.

llvm-svn: 260174

8 years ago[llvm-nm] Remove excessive parenthesis, noticed by David Blaikie.
Davide Italiano [Mon, 8 Feb 2016 23:50:23 +0000 (23:50 +0000)]
[llvm-nm] Remove excessive parenthesis, noticed by David Blaikie.

llvm-svn: 260173

8 years agoRevert r260012 due to __gnu_cxx::hash_map breakage
Eric Fiselier [Mon, 8 Feb 2016 23:47:13 +0000 (23:47 +0000)]
Revert r260012 due to __gnu_cxx::hash_map breakage

llvm-svn: 260172

8 years ago[PGO] Revert r260146 as it breaks Darwin platforms.
Rong Xu [Mon, 8 Feb 2016 23:11:16 +0000 (23:11 +0000)]
[PGO] Revert r260146 as it breaks Darwin platforms.
r260146 | xur | 2016-02-08 13:07:46 -0800 (Mon, 08 Feb 2016) | 13 lines
[PGO] Differentiate Clang instrumentation and IR level instrumentation profiles

llvm-svn: 260170

8 years agoFactor out UnrollAnalyzer to Analysis, and add unit tests for it.
Michael Zolotukhin [Mon, 8 Feb 2016 23:03:59 +0000 (23:03 +0000)]
Factor out UnrollAnalyzer to Analysis, and add unit tests for it.

Summary:
Unrolling Analyzer is already pretty complicated, and it becomes harder and harder to exercise it with usual IR tests, as with them we can only check the final decision: whether the loop is unrolled or not. This change factors this framework out from LoopUnrollPass to analyses, which allows to use unit tests.
The change itself is supposed to be NFC, except adding a couple of tests.

I plan to add more tests as I add new functionality and find/fix bugs.

Reviewers: chandlerc, hfinkel, sanjoy

Subscribers: zzheng, sanjoy, llvm-commits

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

llvm-svn: 260169

8 years ago[X86][SSE1] Add MOVLHPS/MOVHLPS lowering and memory folding support
Simon Pilgrim [Mon, 8 Feb 2016 23:03:46 +0000 (23:03 +0000)]
[X86][SSE1] Add MOVLHPS/MOVHLPS lowering and memory folding support

As discussed on PR26491, this patch adds support for lowering v4f32 shuffles to the MOVLHPS/MOVHLPS instructions. It also adds support for memory folding with their MOVLPS/MOVHPS load equivalents.

This first patch only really helps SSE1 targets as SSE2+ targets will widen the shuffle mask and use v2f64 equivalents (although they still combine to MOVLHPS/MOVHLPS for v2f64 splats). This will have to be addressed in a future patch, most likely when we add support for binary target shuffle combines.

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

llvm-svn: 260168

8 years ago[asan] Fix Windows build.
Evgeniy Stepanov [Mon, 8 Feb 2016 23:01:06 +0000 (23:01 +0000)]
[asan] Fix Windows build.

llvm-svn: 260167

8 years ago[llvm-nm] Yet another attempt of simplifying code.
Davide Italiano [Mon, 8 Feb 2016 22:58:26 +0000 (22:58 +0000)]
[llvm-nm] Yet another attempt of simplifying code.

llvm-svn: 260166

8 years ago[asan] Remove leftover debug print statement.
Evgeniy Stepanov [Mon, 8 Feb 2016 22:54:46 +0000 (22:54 +0000)]
[asan] Remove leftover debug print statement.

llvm-svn: 260165

8 years ago[regalloc][WinEH] Do not mark intervals as not spillable if they contain a regmask
Andrew Kaylor [Mon, 8 Feb 2016 22:52:51 +0000 (22:52 +0000)]
[regalloc][WinEH] Do not mark intervals as not spillable if they contain a regmask

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

llvm-svn: 260164

8 years ago[asan] Implement SEGV read vs write detection for ARM and AArch64.
Evgeniy Stepanov [Mon, 8 Feb 2016 22:50:25 +0000 (22:50 +0000)]
[asan] Implement SEGV read vs write detection for ARM and AArch64.

llvm-svn: 260163

8 years agollvm-cov: Fix reading gcov data that does not have function names
Justin Bogner [Mon, 8 Feb 2016 22:49:40 +0000 (22:49 +0000)]
llvm-cov: Fix reading gcov data that does not have function names

In order for recent gcov versions to read the coverage data, you have
to use UseCfgChecksum=true and FunctionNamesInData=false options for
coverage profiling pass. This is because gcov is expecting the
function section in .gcda to be exactly 3 words in size, containing
ident and two checksums.

While llvm-cov is compatible with UseCfgChecksum=true, it always
expects a function name in .gcda function sections (it's not
compatible with FunctionNamesInData=false). Thus it's currently
impossible to generate one set of coverage files that works with both
gcov and llvm-cov.

This change fixes the reading of coverage information to only read the
function name if it's present.

Patch by Arseny Kapoulkine. Thanks!

llvm-svn: 260162

8 years ago[PGO] Cover more cases of implicitly generated C++ methods
Xinliang David Li [Mon, 8 Feb 2016 22:41:37 +0000 (22:41 +0000)]
[PGO] Cover more cases of implicitly generated C++ methods

llvm-svn: 260161

8 years agoThis patch adds doxygen comments for all the intrinsincs in the header file pmmintrin...
Ekaterina Romanova [Mon, 8 Feb 2016 22:35:09 +0000 (22:35 +0000)]
This patch adds doxygen comments for all the intrinsincs in the header file pmmintrin.h. The doxygen comments are automatically generated based on Sony's intrinsics document.

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

llvm-svn: 260160

8 years agoMake ParentMap work with explicit specializations of function templates.
Nico Weber [Mon, 8 Feb 2016 22:23:09 +0000 (22:23 +0000)]
Make ParentMap work with explicit specializations of function templates.

For an explicit specialization, we first build a FunctionDecl, and then
we call SubstDecl() on it to build a second FunctionDecl, which has the
first FunctionDecl as canonical decl.

The address of an explicit specialization of function template used to be the
canonical decl of the FunctionDecl.  This is different from all the other
DeduceTemplateArguments() calls in SemaOverload, and since the canonical decl
isn't visited by ParentMap while the redecl is, it also made ParentMap assert
when computing the parent of a address-of-explicit-specialization-fun-template.

To fix, remove the getCanonicalDecl() call.  No behavior difference for clang,
but it fixes an assert in ParentMap (which is e.g. used by libTooling).

llvm-svn: 260159

8 years ago[Concepts] Remove the IsConcept bit and associated member functions from VarDecl
Nathan Wilson [Mon, 8 Feb 2016 22:02:50 +0000 (22:02 +0000)]
[Concepts] Remove the IsConcept bit and associated member functions from VarDecl
because the information is now stored in TemplateDecl.

llvm-svn: 260155

8 years agocmake: Use "set" instead of "option" for LLVM_ENABLE_LTO
Justin Bogner [Mon, 8 Feb 2016 21:55:19 +0000 (21:55 +0000)]
cmake: Use "set" instead of "option" for LLVM_ENABLE_LTO

Apparently option is for bools and cmake-gui will display this
strangely with option.

Pointed out by edward-san - thanks!

llvm-svn: 260154

8 years agoMove includes inside guards. NFC.
Pete Cooper [Mon, 8 Feb 2016 21:50:45 +0000 (21:50 +0000)]
Move includes inside guards.  NFC.

These includes were before the #ifndef/#define guards.  Moving them to
where they should be.

llvm-svn: 260153

8 years ago[WebAssembly] Update the br_if instructions' operand orders to match the spec.
Dan Gohman [Mon, 8 Feb 2016 21:50:13 +0000 (21:50 +0000)]
[WebAssembly] Update the br_if instructions' operand orders to match the spec.

llvm-svn: 260152

8 years agorangify; NFC
Sanjay Patel [Mon, 8 Feb 2016 21:32:43 +0000 (21:32 +0000)]
rangify; NFC

llvm-svn: 260151