platform/upstream/llvm.git
8 years agollvm-bcanalyzer: Produce summary information for the BLOCKINFO block, it can be
Richard Smith [Sat, 6 Feb 2016 00:46:09 +0000 (00:46 +0000)]
llvm-bcanalyzer: Produce summary information for the BLOCKINFO block, it can be
a significant fraction of the file size (for files that otherwise have few
records). Also include an average size per record in the summary information.

llvm-svn: 259965

8 years agoFix an issue where certain CommandObjects (or Options thereof) were being created...
Enrico Granata [Sat, 6 Feb 2016 00:43:07 +0000 (00:43 +0000)]
Fix an issue where certain CommandObjects (or Options thereof) were being created once, bound to a specific CommandInterpreter (and hence a specific Debugger), and then cached for reuse across different Debugger instances

Obviously, if the original Debugger goes away, those commands are holding on to now stale memory, which has the potential to cause crashes

Fixes rdar://24460882

llvm-svn: 259964

8 years agoAdd note of suboptimal behavior in MemorySSA. NFC.
George Burgess IV [Sat, 6 Feb 2016 00:42:52 +0000 (00:42 +0000)]
Add note of suboptimal behavior in MemorySSA. NFC.

llvm-svn: 259963

8 years agoFix "thread backtrace -s": option was misparsed because of a missing break.
Jim Ingham [Sat, 6 Feb 2016 00:31:23 +0000 (00:31 +0000)]
Fix "thread backtrace -s": option was misparsed because of a missing break.

<rdar://problem/24525106>

llvm-svn: 259962

8 years ago[asan] add an experimental feature that prints the scariness score of the error messa...
Kostya Serebryany [Sat, 6 Feb 2016 00:29:44 +0000 (00:29 +0000)]
[asan] add an experimental feature that prints the scariness score of the error message. To enable it use ASAN_OPTIONS=print_scariness=1

llvm-svn: 259961

8 years agoMove creation of "__LINKEDIT" segment. NFC.
Pete Cooper [Sat, 6 Feb 2016 00:14:15 +0000 (00:14 +0000)]
Move creation of "__LINKEDIT" segment.  NFC.

We currently tag on a "__LINKEDIT" when we are emitting the segments.
However, an upcoming patch aims to set the initprot and maxprot segment members
to their correct values, and in order to share code, its better to create this
segment for real and handle it in buildFileOffsets the same way ld64 does.

The commit for segment protections will add a test for this all being correct so
no test here until that code is committed.

llvm-svn: 259960

8 years agoSort headers. NFC.
Rafael Espindola [Sat, 6 Feb 2016 00:06:26 +0000 (00:06 +0000)]
Sort headers. NFC.

llvm-svn: 259959

8 years ago[AArch64] Add the scheduling model for Exynos-M1
Evandro Menezes [Sat, 6 Feb 2016 00:01:41 +0000 (00:01 +0000)]
[AArch64] Add the scheduling model for Exynos-M1

Summary:
Add the core scheduling model for the Samsung Exynos-M1 (ARMv8-A).

Reviewers: jmolloy, rengolin, christof, MinSeongKIM, t.p.northover

Subscribers: aemerson, rengolin, MatzeB

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

llvm-svn: 259958

8 years ago[StatepointLower] Use None instead of Optional<int>()
Sanjoy Das [Fri, 5 Feb 2016 23:40:04 +0000 (23:40 +0000)]
[StatepointLower] Use None instead of Optional<int>()

llvm-svn: 259956

8 years ago[PGO] Test case update
Xinliang David Li [Fri, 5 Feb 2016 23:36:08 +0000 (23:36 +0000)]
[PGO] Test case update

  Temporarily relax check in test to avoid
  breakage for format change in LLVM side. Once that is
  done, the test case will be retightened.

llvm-svn: 259955

8 years agoMake the OCaml tests temporarily unsupported until they can be updated.
Eric Christopher [Fri, 5 Feb 2016 23:28:03 +0000 (23:28 +0000)]
Make the OCaml tests temporarily unsupported until they can be updated.

llvm-svn: 259954

8 years ago[Orc] Fix a typo in the comments for the x86_64 resolver block.
Lang Hames [Fri, 5 Feb 2016 23:27:48 +0000 (23:27 +0000)]
[Orc] Fix a typo in the comments for the x86_64 resolver block.

llvm-svn: 259953

8 years agoVariable naming style fix /nfc
Xinliang David Li [Fri, 5 Feb 2016 23:24:42 +0000 (23:24 +0000)]
Variable naming style fix /nfc

llvm-svn: 259952

8 years agoELF: Simplify readEntryLength.
Rui Ueyama [Fri, 5 Feb 2016 23:24:05 +0000 (23:24 +0000)]
ELF: Simplify readEntryLength.

I removed "CIE/FIE size is too large" error because that was not
checking for correct error conditions. [UINT_MAX - 4, UINT_MAX) is
a correct range as a size of a CIE/FDE record. It's just that the
size cannot be larger than the section size.

llvm-svn: 259951

8 years agoEliminate an unnecessary enum, use the LLVM version. NFC
Paul Robinson [Fri, 5 Feb 2016 23:23:25 +0000 (23:23 +0000)]
Eliminate an unnecessary enum, use the LLVM version. NFC

llvm-svn: 259950

8 years agoAdd qualifiers that are about to be necessary. NFC
Paul Robinson [Fri, 5 Feb 2016 23:20:02 +0000 (23:20 +0000)]
Add qualifiers that are about to be necessary. NFC

llvm-svn: 259949

8 years agoAttempt#2 to work around MSVC rejects-valid.
Richard Smith [Fri, 5 Feb 2016 23:05:09 +0000 (23:05 +0000)]
Attempt#2 to work around MSVC rejects-valid.

llvm-svn: 259948

8 years agoExempt char array initializers from -Wconstant-converion.
Richard Trieu [Fri, 5 Feb 2016 23:02:38 +0000 (23:02 +0000)]
Exempt char array initializers from -Wconstant-converion.

Sometimes, char arrays are used as bit storage, with no difference made between
signed and unsigned char.  Thus, it is reasonable to use 0 to 255 instead of
-128 to 127 and not trigger this warning.

llvm-svn: 259947

8 years agoELF: Make EHOutputSection::readEntryLength a non-member function.
Rui Ueyama [Fri, 5 Feb 2016 22:56:03 +0000 (22:56 +0000)]
ELF: Make EHOutputSection::readEntryLength a non-member function.

This function did not use any fields of the class.

llvm-svn: 259946

8 years agoFix PT_GNU_RELRO computation.
Rafael Espindola [Fri, 5 Feb 2016 22:55:06 +0000 (22:55 +0000)]
Fix PT_GNU_RELRO computation.

We were not including TLS sections.

llvm-svn: 259945

8 years ago[CUDA] Bug 26497 : Remove wrappers for variants provided by CUDA headers.
Artem Belevich [Fri, 5 Feb 2016 22:54:05 +0000 (22:54 +0000)]
[CUDA] Bug 26497 : Remove wrappers for variants provided by CUDA headers.

... and pull global-scope ones into std namespace with using-declaration.

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

llvm-svn: 259944

8 years agoAttempt to work around an MSVC rejects-valid. Apparently it gets the access
Richard Smith [Fri, 5 Feb 2016 22:48:19 +0000 (22:48 +0000)]
Attempt to work around an MSVC rejects-valid. Apparently it gets the access
check wrong when inheriting a member through two levels of private inheritance,
where the middle one is a class template specialization.

llvm-svn: 259943

8 years agoMore workarounds for undefined behavior exposed when compiling in C++14 with
Richard Smith [Fri, 5 Feb 2016 22:32:52 +0000 (22:32 +0000)]
More workarounds for undefined behavior exposed when compiling in C++14 with
-fsized-deallocation. Disable sized deallocation for all objects derived from
TrailingObjects, as we expect the storage allocated for these objects to be
larger than the size of their dynamic type.

llvm-svn: 259942

8 years ago[PGO] Speed up name tab reading
Xinliang David Li [Fri, 5 Feb 2016 22:32:01 +0000 (22:32 +0000)]
[PGO] Speed up name tab reading
 The change allows skipping duplicate strings
 early to avoid redundant md5 computation and
 string copying/swapping.

llvm-svn: 259941

8 years ago[llvm-nm] Prefer empty() over size() == 0.
Davide Italiano [Fri, 5 Feb 2016 22:10:42 +0000 (22:10 +0000)]
[llvm-nm] Prefer empty() over size() == 0.

Thanks to David Blaikie for pointing this out!

llvm-svn: 259938

8 years ago[llvm-nm] Transform a switch() statement in a pair of if(s).
Davide Italiano [Fri, 5 Feb 2016 22:07:09 +0000 (22:07 +0000)]
[llvm-nm] Transform a switch() statement in a pair of if(s).

This is more uniform wrt what other tools do and makes the code
a little bit more readable.

llvm-svn: 259937

8 years agoMove DebugInfoKind enum from Driver to Basic. NFC
Paul Robinson [Fri, 5 Feb 2016 21:54:42 +0000 (21:54 +0000)]
Move DebugInfoKind enum from Driver to Basic. NFC

llvm-svn: 259935

8 years agoAdd an ARC autoreleased-return-value caller marker on i386.
John McCall [Fri, 5 Feb 2016 21:37:38 +0000 (21:37 +0000)]
Add an ARC autoreleased-return-value caller marker on i386.

rdar://24531556

llvm-svn: 259932

8 years ago[SystemZ] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP macros
Ulrich Weigand [Fri, 5 Feb 2016 21:34:28 +0000 (21:34 +0000)]
[SystemZ] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP macros

Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248] macros on SystemZ.

This fixes a miscompile of GCC C++11 standard library headers
due to use of those macros in an ABI-changing manner.

See e.g. /usr/include/c++/4.8.5/ext/concurrence.h:

  // Compile time constant that indicates prefered locking policy in
  // the current configuration.
  static const _Lock_policy __default_lock_policy =
#ifdef __GTHREADS
#if (defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2) \
     && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4))
  _S_atomic;
#else
  _S_mutex;
#endif
#else
  _S_single;
#endif

A different choice of __default_lock_policy causes different
sizes of several of the C++11 data structures, which are then
incompatible when inlined in clang-compiled code with what the
(GCC-compiled) external library expects.

This in turn leads to various crashes when using std::thread
in code compiled with clang, as see e.g. via the ThreadPool
unit tests.  See PR 26473 for an example.

llvm-svn: 259931

8 years ago[llvm-nm] Simplify code logic. NFCI.
Davide Italiano [Fri, 5 Feb 2016 21:10:48 +0000 (21:10 +0000)]
[llvm-nm] Simplify code logic. NFCI.

llvm-svn: 259917

8 years agoDo not honor explicit alignment attribute on fields for PS4.
Sunil Srivastava [Fri, 5 Feb 2016 20:50:02 +0000 (20:50 +0000)]
Do not honor explicit alignment attribute on fields for PS4.
This change reverts r257462 for PS4 triple.

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

llvm-svn: 259916

8 years agoCallAnalyzer::analyzeCall: change the condition back to "Cost < Threshold"
Hans Wennborg [Fri, 5 Feb 2016 20:32:42 +0000 (20:32 +0000)]
CallAnalyzer::analyzeCall: change the condition back to "Cost < Threshold"

In r252595, I inadvertently changed the condition to "Cost <= Threshold",
which caused a significant size regression in Chrome. This commit rectifies
that.

llvm-svn: 259915

8 years ago[AArch64] Refactoring aarch64-ldst-opt. NCF.
Jun Bum Lim [Fri, 5 Feb 2016 20:02:03 +0000 (20:02 +0000)]
[AArch64] Refactoring aarch64-ldst-opt. NCF.

Remove narrow load / store instructions from getMatchingPairOpcode(),
and add getMatchingWideOpcode().

llvm-svn: 259914

8 years agoTableGen: Add IsOptional field to AsmOperandClass
Tom Stellard [Fri, 5 Feb 2016 19:59:33 +0000 (19:59 +0000)]
TableGen: Add IsOptional field to AsmOperandClass

Summary:
This makes it possible to specify some operands as optional to the AsmMatcher.
Setting this field to true will prevent the AsmMatcher from emitting
'too few operands' errors when there are missing optional operands.

Reviewers: olista01, ab

Subscribers: nhaustov, arsenm, llvm-commits

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

llvm-svn: 259913

8 years agoAMDGPU: Account for LDS alignment
Matt Arsenault [Fri, 5 Feb 2016 19:47:29 +0000 (19:47 +0000)]
AMDGPU: Account for LDS alignment

The current situation isn't great, because the amount of padding
requires is determined by the inverse order of the first encountered
use. We should eventually somehow sort these to minimize wasted space.

Another problem is the alignment of kernel arguments isn't
respected. The group_segment_alignment is always emitted as
the default 16, and typed arguments with higher alignments
or an explicitly set alignment are also ignored.

llvm-svn: 259912

8 years agoAMDGPU: Preserve alignments on new created globals
Matt Arsenault [Fri, 5 Feb 2016 19:47:23 +0000 (19:47 +0000)]
AMDGPU: Preserve alignments on new created globals

Also switch to internal linkage, and include the name of the function in
the name.

llvm-svn: 259911

8 years ago[Parser] Perform CachedTokens update dependent on token consumption
Bruno Cardoso Lopes [Fri, 5 Feb 2016 19:36:39 +0000 (19:36 +0000)]
[Parser] Perform CachedTokens update dependent on token consumption

In the context where we break one tok::greatergreater into two
tok::greater in order to correctly update the cached tokens; update the
CachedTokens with two tok::greater only if ParseGreaterThanInTemplateList
clients asks to consume the last token. Otherwise we only need to add
one because the second is already added later on, as a not yet cached token.

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

rdar://problem/24488367

llvm-svn: 259910

8 years ago[codeview] Dump a missing field and change its signedness
Reid Kleckner [Fri, 5 Feb 2016 19:15:45 +0000 (19:15 +0000)]
[codeview] Dump a missing field and change its signedness

llvm-svn: 259904

8 years agoSimplify. NFC.
Rui Ueyama [Fri, 5 Feb 2016 19:13:18 +0000 (19:13 +0000)]
Simplify. NFC.

llvm-svn: 259903

8 years agoTake 2: Use an artifical namespace so that member vars do not hide local vars.
Siva Chandra [Fri, 5 Feb 2016 19:10:04 +0000 (19:10 +0000)]
Take 2: Use an artifical namespace so that member vars do not hide local vars.

Summary: This relands r259810 with fix for failures on Mac.

Reviewers: spyffe, tfiala

Subscribers: tfiala, lldb-commits

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

llvm-svn: 259902

8 years ago[modules] Separately track whether an identifier's preprocessor information and
Richard Smith [Fri, 5 Feb 2016 19:03:40 +0000 (19:03 +0000)]
[modules] Separately track whether an identifier's preprocessor information and
name lookup information have changed since deserialization. For a C++ modules
build, we do not need to re-emit the identifier into the serialized identifier
table if only the name lookup information has changed (and in all cases, we
don't need to re-emit the macro information if only the name lookup information
has changed).

llvm-svn: 259901

8 years agoAMDGPU: Remove some purely R600 functions from AMDGPUInstrInfo
Tom Stellard [Fri, 5 Feb 2016 18:44:57 +0000 (18:44 +0000)]
AMDGPU: Remove some purely R600 functions from AMDGPUInstrInfo

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 259900

8 years agoELF: Make Out<ELFT> initialization less error-prone.
Rui Ueyama [Fri, 5 Feb 2016 18:41:40 +0000 (18:41 +0000)]
ELF: Make Out<ELFT> initialization less error-prone.

Previously, it was easy to leave some Out<ELFT> fields uninitialized
because assignments to the fields are mixed with output section
instantiations. In this patch, I separate initializations from assignments
to improve readability.

http://reviews.llvm.org/D16864

llvm-svn: 259899

8 years ago[ASTMatchers] Allow hasName() to look through inline namespaces
Samuel Benzaquen [Fri, 5 Feb 2016 18:29:24 +0000 (18:29 +0000)]
[ASTMatchers] Allow hasName() to look through inline namespaces

Summary:
Allow hasName() to look through inline namespaces.
This will fix the interaction between some clang-tidy checks and libc++.

libc++ defines names in an inline namespace named std::<version_#>.
When we try to match a name using hasName("std::xxx") it fails to match and the clang-tidy check does not work.

Reviewers: klimek

Subscribers: klimek, cfe-commits

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

llvm-svn: 259898

8 years agoAMDGPU: Fix ordering of CPU and FS parameters in TargetMachine constructors
Tom Stellard [Fri, 5 Feb 2016 18:29:17 +0000 (18:29 +0000)]
AMDGPU: Fix ordering of CPU and FS parameters in TargetMachine constructors

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 259897

8 years agoFix echo.ll test failing due to DOS line endings
Reid Kleckner [Fri, 5 Feb 2016 18:21:28 +0000 (18:21 +0000)]
Fix echo.ll test failing due to DOS line endings

llvm-svn: 259896

8 years agoSome stackslots are allocated to vregs which have no real reference.
Wei Mi [Fri, 5 Feb 2016 18:14:24 +0000 (18:14 +0000)]
Some stackslots are allocated to vregs which have no real reference.

LiveRangeEdit::eliminateDeadDef is used to remove dead define instructions
after rematerialization. To remove a VNI for a vreg from its LiveInterval,
LiveIntervals::removeVRegDefAt is used. However, after non-PHI VNIs are all
removed, PHI VNI are still left in the LiveInterval. Such unused vregs will
be kept in RegsToSpill[] at the end of InlineSpiller::reMaterializeAll and
spiller will allocate stackslot for them.

The fix is to get rid of unused reg by checking whether it has non-dbg
reference instead of whether it has non-empty interval.

llvm-svn: 259895

8 years agoAMDGPU/SI: Correctly initialize SIInsertWaits pass
Tom Stellard [Fri, 5 Feb 2016 17:42:38 +0000 (17:42 +0000)]
AMDGPU/SI: Correctly initialize SIInsertWaits pass

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 259894

8 years ago[WebAssembly] Update the select instructions' operand orders to match the spec.
Dan Gohman [Fri, 5 Feb 2016 17:14:59 +0000 (17:14 +0000)]
[WebAssembly] Update the select instructions' operand orders to match the spec.

llvm-svn: 259893

8 years agoRename IsUsedInDynamicReloc to MustBeInDynSym.
Rafael Espindola [Fri, 5 Feb 2016 15:27:15 +0000 (15:27 +0000)]
Rename IsUsedInDynamicReloc to MustBeInDynSym.

The variable was marking various cases where a symbol must be included
in the dynamic symbol table. Being used by a dynamic relocation was only
one of them.

llvm-svn: 259889

8 years agoAdd the missing test case for PR26193
Nemanja Ivanovic [Fri, 5 Feb 2016 15:03:17 +0000 (15:03 +0000)]
Add the missing test case for PR26193

llvm-svn: 259888

8 years agoCentralize most calls to setUsedInDynamicReloc.
Rafael Espindola [Fri, 5 Feb 2016 15:03:10 +0000 (15:03 +0000)]
Centralize most calls to setUsedInDynamicReloc.

llvm-svn: 259887

8 years agoFix for PR 26193
Nemanja Ivanovic [Fri, 5 Feb 2016 14:50:29 +0000 (14:50 +0000)]
Fix for PR 26193

This is a simple fix for a PowerPC intrinsic that was incorrectly defined
(the return type was incorrect).

llvm-svn: 259886

8 years agoAdd support to detect arm hard float ABI based binaries for ABISysV_arm
Omair Javaid [Fri, 5 Feb 2016 14:37:53 +0000 (14:37 +0000)]
Add support to detect arm hard float ABI based binaries for ABISysV_arm

This patch adds logic to detect if underlying binary is using arm hard float abi and use that information while handling return values in ABISysV_arm.

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

llvm-svn: 259885

8 years agoclang-format: Fix corner case in template detection.
Daniel Jasper [Fri, 5 Feb 2016 14:17:16 +0000 (14:17 +0000)]
clang-format: Fix corner case in template detection.

Before:
  f(a.operator() < A > ());

After:
  f(a.operator()<A>());

llvm-svn: 259884

8 years agoMove classes defined in a cpp file into an anonymous namespace.
Benjamin Kramer [Fri, 5 Feb 2016 13:50:53 +0000 (13:50 +0000)]
Move classes defined in a cpp file into an anonymous namespace.

No functionality change intended.

llvm-svn: 259883

8 years agoPrefix external symbols in llvm-c-test.
Benjamin Kramer [Fri, 5 Feb 2016 13:31:14 +0000 (13:31 +0000)]
Prefix external symbols in llvm-c-test.

This makes it less likely to clash with other stuff that might be linked
in by change, e.g. ncurses exposes an external function called simply
"echo", so linking ncurses statically into the binary explodes in funny
ways.

llvm-svn: 259882

8 years agoRevert "[AArch64] Improve load/store optimizer to handle LDUR + LDR (take 3)."
Renato Golin [Fri, 5 Feb 2016 12:14:30 +0000 (12:14 +0000)]
Revert "[AArch64] Improve load/store optimizer to handle LDUR + LDR (take 3)."

This reverts commit r259812 as it broke AArch64 self-hosting.

llvm-svn: 259881

8 years agoUnbreak the cmake shared build.
Benjamin Kramer [Fri, 5 Feb 2016 11:38:50 +0000 (11:38 +0000)]
Unbreak the cmake shared build.

llvm-svn: 259880

8 years ago[clang-tdiy] Add header file extension configuration support.
Haojian Wu [Fri, 5 Feb 2016 11:23:59 +0000 (11:23 +0000)]
[clang-tdiy] Add header file extension configuration support.

Summary: * Add a `HeaderFileExtensions` check option in misc-definitions-in-headers, google-build-namespaces and google-global-names-in-headers.

Reviewers: aaron.ballman, alexfh

Subscribers: cfe-commits

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

llvm-svn: 259879

8 years agoBump up the packet timeout for gdbremote tests
Pavel Labath [Fri, 5 Feb 2016 11:17:22 +0000 (11:17 +0000)]
Bump up the packet timeout for gdbremote tests

Log confirmed that the we are sometimes timing out on the receive, even though the server is
sending the correct packets.

llvm-svn: 259878

8 years ago[DebugInfo] Eliminate compilation warning about used variable LSDA
Dmitry Polukhin [Fri, 5 Feb 2016 09:24:34 +0000 (09:24 +0000)]
[DebugInfo] Eliminate compilation warning about used variable LSDA

The waring was:
lib/DebugInfo/DWARF/DWARFDebugFrame.cpp:643:20: warning: variable ‘LSDA’ set but not used

llvm-svn: 259877

8 years ago[CMake] Introduce OPENMP_LLVM_TOOLS_DIR
Jonas Hahnfeld [Fri, 5 Feb 2016 07:00:13 +0000 (07:00 +0000)]
[CMake] Introduce OPENMP_LLVM_TOOLS_DIR

This will be used in a later patch to find additional LLVM tools for tests and
enables reusability for libomptarget that is currently under review.

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

llvm-svn: 259876

8 years ago[analyzer] Suppress localization diagnostics in debug classes and methods.
Devin Coughlin [Fri, 5 Feb 2016 04:22:15 +0000 (04:22 +0000)]
[analyzer] Suppress localization diagnostics in debug classes and methods.

If the class or method name case-insensitively contains the term "debug",
suppress warnings about string constants flowing to user-facing UI APIs.

llvm-svn: 259875

8 years agoCodeGen: correct Windows ARM C++ assertion
Saleem Abdulrasool [Fri, 5 Feb 2016 04:12:40 +0000 (04:12 +0000)]
CodeGen: correct Windows ARM C++ assertion

Because the Decl is explicitly passed as nullptr further up the call chain, it
is possible to invoke isa on a nullptr, which will assert.  Guard against the
nullptr.

Take the opportunity to reuse the helper method rather than re-implementing this
logic.

llvm-svn: 259874

8 years ago[CMake] One more try to make CMake clean up after itself
Chris Bieneman [Fri, 5 Feb 2016 03:59:08 +0000 (03:59 +0000)]
[CMake] One more try to make CMake clean up after itself

Seriously... CMake... You're on my list...

llvm-svn: 259873

8 years agoRevert "[CMake] Improve the clang order-file generation workflow"
Chris Bieneman [Fri, 5 Feb 2016 03:40:37 +0000 (03:40 +0000)]
Revert "[CMake] Improve the clang order-file generation workflow"

This reverts commit r259862, and attempts to fix builder CMakeCaches.

Will try this again some other time...

Conflicts:

CMakeLists.txt
tools/driver/CMakeLists.txt

llvm-svn: 259872

8 years ago[CMake] One more try to fix this.
Chris Bieneman [Fri, 5 Feb 2016 03:02:40 +0000 (03:02 +0000)]
[CMake] One more try to fix this.

This change will catch any bots that generated the order file that GNU ld doesn't like and delete it before trying to generate one that I think GNU ld will deal with.

llvm-svn: 259871

8 years ago[CMake] Speculative fix for linker error on Linux
Chris Bieneman [Fri, 5 Feb 2016 02:51:33 +0000 (02:51 +0000)]
[CMake] Speculative fix for linker error on Linux

I can't reproduce this locally, but I think this may fix it.

llvm-svn: 259870

8 years ago[LoopUnrolling] Try harder to avoid rebuilding LCSSA when possible.
Michael Zolotukhin [Fri, 5 Feb 2016 02:17:36 +0000 (02:17 +0000)]
[LoopUnrolling] Try harder to avoid rebuilding LCSSA when possible.

In r255133 (reapplied r253126) we started to avoid redundant
recomputation of LCSSA after loop-unrolling. This patch moves one step
further in this direction - now we can avoid it for much wider range of
loops, as we start to look at IR and try to figure out if the
transformation actually breaks LCSSA phis or makes it necessary to
insert new ones.

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

llvm-svn: 259869

8 years ago[MC] Add support for encoding CodeView variable definition ranges
David Majnemer [Fri, 5 Feb 2016 01:55:49 +0000 (01:55 +0000)]
[MC] Add support for encoding CodeView variable definition ranges

CodeView, like most other debug formats, represents the live range of a
variable so that debuggers might print them out.

They use a variety of records to represent how a particular variable
might be available (in a register, in a frame pointer, etc.) along with
a set of ranges where this debug information is relevant.

However, the format only allows us to use ranges which are limited to a
maximum of 0xF000 in size.  This means that we need to split our debug
information into chunks of 0xF000.

Because the layout of code is not known until *very* late, we must use a
new fragment to record the information we need until we can know
*exactly* what the range is.

llvm-svn: 259868

8 years ago[RS4GC] Pass DenseMap by reference, NFC
Joseph Tremoulet [Fri, 5 Feb 2016 01:42:52 +0000 (01:42 +0000)]
[RS4GC] Pass DenseMap by reference, NFC

Summary:
Passing the rematerialized values map to insertRematerializationStores by
value looks to be a simple oversight; update it to pass by reference.

Reviewers: reames, sanjoy

Subscribers: llvm-commits

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

llvm-svn: 259867

8 years ago[modules] Factor out common code to mark identifier being "from AST", and add a
Richard Smith [Fri, 5 Feb 2016 01:40:54 +0000 (01:40 +0000)]
[modules] Factor out common code to mark identifier being "from AST", and add a
call in one more place to reduce the size of identifier tables in non-leaf
modules. No behavior change.

llvm-svn: 259866

8 years agoAdd two more addresses to check for the address of the kernel in debug mode;
Jason Molenda [Fri, 5 Feb 2016 01:38:56 +0000 (01:38 +0000)]
Add two more addresses to check for the address of the kernel in debug mode;
also add some logging about where lldb is lookin for a kernel as it connects.
<rdar://problem/24454582>

llvm-svn: 259865

8 years ago[CMake] Trying to fix a bot failure I introduced in r259862
Chris Bieneman [Fri, 5 Feb 2016 01:27:31 +0000 (01:27 +0000)]
[CMake] Trying to fix a bot failure I introduced in r259862

CMake caching behavior makes me sad.

llvm-svn: 259864

8 years agoAdd various binary operations in the LLVM C API echo test
Amaury Sechet [Fri, 5 Feb 2016 01:27:11 +0000 (01:27 +0000)]
Add various binary operations in the LLVM C API echo test

Summary: This diff increase the tested surface of the C API.

Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker

Subscribers: llvm-commits

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

llvm-svn: 259863

8 years ago[CMake] Improve the clang order-file generation workflow
Chris Bieneman [Fri, 5 Feb 2016 01:22:03 +0000 (01:22 +0000)]
[CMake] Improve the clang order-file generation workflow

Summary:
With this change generating clang order files using dtrace uses the following workflow:

cmake <whatever options you want>

ninja generate-order-file

ninja clang

This patch works by setting a default path to the order file (which can be overridden by the user). If the order file doesn't exist during configuration CMake will create an empty one.

CMake then ties up the dependencies between the clang link job and the order file, and generate-order-file overwrites CLANG_ORDER_FILE with the new order file.

Reviewers: bogner

Subscribers: cfe-commits

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

llvm-svn: 259862

8 years ago[LoopLoadElim] Don't allow versioning when optForSize
Adam Nemet [Fri, 5 Feb 2016 01:14:05 +0000 (01:14 +0000)]
[LoopLoadElim] Don't allow versioning when optForSize

This was requested in the review of D16300.

llvm-svn: 259861

8 years agoFix typo in comment
Adam Nemet [Fri, 5 Feb 2016 01:14:00 +0000 (01:14 +0000)]
Fix typo in comment

llvm-svn: 259860

8 years agoDon't synthesize an ImportDecl for a module named in -fmodule-implementation-of
Ben Langmuir [Fri, 5 Feb 2016 01:10:05 +0000 (01:10 +0000)]
Don't synthesize an ImportDecl for a module named in -fmodule-implementation-of

When building a PCH with modules enabled this import would assert in the
ASTWriter and (if assertions were disabled) sometimes crash the compiler
that loaded the resulting PCH when trying to lookup the submodule ID.

rdar://problem/24137448

llvm-svn: 259859

8 years agoFix printing of f16 machine operands
Matt Arsenault [Fri, 5 Feb 2016 00:50:18 +0000 (00:50 +0000)]
Fix printing of f16 machine operands

Only single and double FP immediates are correctly printed by
MachineInstr::print() during debug output. Half float type goes to
APFloat::convertToDouble() and hits assertion it is not a double
semantics. This diff prints half machine operands correctly.

This cannot currently be hit by any in-tree target.

Patch by Stanislav Mekhanoshin

llvm-svn: 259857

8 years agoFix build breakage introduced by r259846.
Easwaran Raman [Fri, 5 Feb 2016 00:45:02 +0000 (00:45 +0000)]
Fix build breakage introduced by r259846.

llvm-svn: 259855

8 years agoAdd a test for MemorySSA. NFC.
George Burgess IV [Fri, 5 Feb 2016 00:42:02 +0000 (00:42 +0000)]
Add a test for MemorySSA. NFC.

We don't currently have many tests that deal with operations on multiple
local MemoryLocations. This new test helps out a bit in that regard.

llvm-svn: 259854

8 years agoAdd Support to llvm-c-test dependancies
Amaury Sechet [Fri, 5 Feb 2016 00:19:50 +0000 (00:19 +0000)]
Add Support to llvm-c-test dependancies

Summary: As per title. It is required and don't get linked in in some builds.

Reviewers: chapuni, joker.eph

Subscribers: llvm-commits

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

llvm-svn: 259853

8 years agoELF: Make names for TLS module indices shorter.
Rui Ueyama [Fri, 5 Feb 2016 00:10:02 +0000 (00:10 +0000)]
ELF: Make names for TLS module indices shorter.

The previous names contained "Local" and "Current", but what we
are handling is always local and current, so they were redundant.

TlsIndex comes from "tls_index" struct that Ulrich Drepper is using
in this document to describe this data structure in GOT.

llvm-svn: 259852

8 years agoFunction name change /NFC
Xinliang David Li [Thu, 4 Feb 2016 23:59:09 +0000 (23:59 +0000)]
Function name change /NFC

llvm-svn: 259851

8 years agoAdd a little logging to ProcessMachCore so it is easier to tell when a user process...
Jason Molenda [Thu, 4 Feb 2016 23:45:17 +0000 (23:45 +0000)]
Add a little logging to ProcessMachCore so it is easier to tell when a user process dyld
or mach kernel binary are found, and if there are multiples of them found within a single
corefile.
<rdar://problem/24446112>

llvm-svn: 259850

8 years agoSimplify. NFC.
Rui Ueyama [Thu, 4 Feb 2016 23:39:35 +0000 (23:39 +0000)]
Simplify. NFC.

llvm-svn: 259848

8 years agoDo not round uintX_t to uint32_t.
Rui Ueyama [Thu, 4 Feb 2016 23:39:33 +0000 (23:39 +0000)]
Do not round uintX_t to uint32_t.

On 64-bit computers, this value can be larger than UINT32_MAX.

llvm-svn: 259847

8 years agoRefactor profile summary support code. NFC.
Easwaran Raman [Thu, 4 Feb 2016 23:34:31 +0000 (23:34 +0000)]
Refactor profile summary support code. NFC.

Summary computation is not just for instrumented profiling and so I have moved
the ProfileSummary class to ProfileCommon.h (named so to allow code unrelated
to summary but common to instrumented and sampled profiling to be placed there)

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

llvm-svn: 259846

8 years agoFix the search path for CMake files
Niels Ole Salscheider [Thu, 4 Feb 2016 23:28:57 +0000 (23:28 +0000)]
Fix the search path for CMake files

This allows to find the LLVM's CMake files after moving them in
r259821.

llvm-svn: 259845

8 years agoImprove testing for the C API
Amaury Sechet [Thu, 4 Feb 2016 23:26:19 +0000 (23:26 +0000)]
Improve testing for the C API

Summary:
This basically add an echo test case in C. The support is limited right now, but full support would just be too much to review at once.

The echo test case simply get a module as input and try to output the same exact module. This allow to check the both reading and writing API are working as expected.

I want to improve this test over time to support more and more of the API, in order to improve coverage (coverage is quite poor right now).

Test Plan: Run the test.

Reviewers: chandlerc, bogner

Subscribers: llvm-commits

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

llvm-svn: 259844

8 years agoMerge conditions of two nested `if`s.
Rui Ueyama [Thu, 4 Feb 2016 23:18:22 +0000 (23:18 +0000)]
Merge conditions of two nested `if`s.

llvm-svn: 259843

8 years agoFix the search path for CMake files
Niels Ole Salscheider [Thu, 4 Feb 2016 23:17:20 +0000 (23:17 +0000)]
Fix the search path for CMake files

This allows to find the LLVM's CMake files after moving them in
r259821.

llvm-svn: 259842

8 years agoFix the libdir suffix for LLVM_CMAKE_PATH
Niels Ole Salscheider [Thu, 4 Feb 2016 23:15:29 +0000 (23:15 +0000)]
Fix the libdir suffix for LLVM_CMAKE_PATH

llvm-svn: 259841

8 years agoFix for PR 26356
Nemanja Ivanovic [Thu, 4 Feb 2016 23:14:42 +0000 (23:14 +0000)]
Fix for PR 26356

Using the load immediate only when the immediate (whether signed or unsigned)
can fit in a 16-bit signed field. Namely, from -32768 to 32767 for signed and
0 to 65535 for unsigned. This patch also ensures that we sign-extend under the
right conditions.

llvm-svn: 259840

8 years agoFix typo and test commit
Evandro Menezes [Thu, 4 Feb 2016 23:07:57 +0000 (23:07 +0000)]
Fix typo and test commit

llvm-svn: 259839

8 years agoMove the rest of the tests over to using the new decorator module.
Zachary Turner [Thu, 4 Feb 2016 23:04:17 +0000 (23:04 +0000)]
Move the rest of the tests over to using the new decorator module.

llvm-svn: 259838

8 years agoPR25271: When attaching default template arguments to redeclarations of a
Richard Smith [Thu, 4 Feb 2016 22:54:41 +0000 (22:54 +0000)]
PR25271: When attaching default template arguments to redeclarations of a
template, keep looking for default arguments if we see a template parameter
pack. There may be default arguments preceding a pack with no default argument.

Patch by Jannis Harder!

llvm-svn: 259836

8 years agoProvide a test case for rl259798
Nemanja Ivanovic [Thu, 4 Feb 2016 22:36:10 +0000 (22:36 +0000)]
Provide a test case for rl259798

llvm-svn: 259835