platform/upstream/llvm.git
9 years agoAdded utility function to get correct signal number from remote platform.
Chaoren Lin [Tue, 2 Jun 2015 16:46:28 +0000 (16:46 +0000)]
Added utility function to get correct signal number from remote platform.

Summary:
This change adds a utility that uses the `kill -l` command to get the
correct signal number. Falls back to using `SBUnixSignals`, and finally
`signal.SIG<signal>` if all else fails.

Reviewers: tberghammer, clayborg, ovyalov

Reviewed By: clayborg, ovyalov

Subscribers: tberghammer, lldb-commits

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

llvm-svn: 238850

9 years agoFix OBJCOPY and AR for Android.
Chaoren Lin [Tue, 2 Jun 2015 16:43:19 +0000 (16:43 +0000)]
Fix OBJCOPY and AR for Android.

Summary:
Previously, OBJCOPY was empty because of the missing comma,
and ar was just `ar`.

Reviewers: ovyalov, tberghammer

Subscribers: tberghammer, lldb-commits

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

llvm-svn: 238849

9 years agoImplement the first part of N4258 - allocator_traits<X>::is_always_equal. Also fixes...
Marshall Clow [Tue, 2 Jun 2015 16:34:03 +0000 (16:34 +0000)]
Implement the first part of N4258 - allocator_traits<X>::is_always_equal. Also fixes PR#23723

llvm-svn: 238848

9 years agoRemove unused KMP_IOMP_NAME macro from kmp.h
Jonathan Peyton [Tue, 2 Jun 2015 16:19:44 +0000 (16:19 +0000)]
Remove unused KMP_IOMP_NAME macro from kmp.h

Getting rid of more iomp references.
http://lists.cs.uiuc.edu/pipermail/openmp-dev/2015-June/000659.html

llvm-svn: 238847

9 years agoImplement uncaught_exceptions() using the newly added hooks in libc++abi, when available
Marshall Clow [Tue, 2 Jun 2015 15:33:38 +0000 (15:33 +0000)]
Implement uncaught_exceptions() using the newly added hooks in libc++abi, when available

llvm-svn: 238846

9 years agoclang-format: Don't try to detect C++ lambdas in other languages.
Daniel Jasper [Tue, 2 Jun 2015 15:31:37 +0000 (15:31 +0000)]
clang-format: Don't try to detect C++ lambdas in other languages.

llvm-svn: 238845

9 years ago[mips][mcjit] Add support for R_MIPS_PC32.
Daniel Sanders [Tue, 2 Jun 2015 15:28:29 +0000 (15:28 +0000)]
[mips][mcjit] Add support for R_MIPS_PC32.

Summary:
This allows us to resolve relocations for DW_EH_PE_pcrel TType encodings
in the exception handling LSDA.

Also fixed a nearby typo.

Reviewers: petarj, vkalintiris

Reviewed By: vkalintiris

Subscribers: vkalintiris, llvm-commits

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

llvm-svn: 238844

9 years agoPush constness through LoopInfo::isLoopHeader and clean it up a bit.
Benjamin Kramer [Tue, 2 Jun 2015 15:28:27 +0000 (15:28 +0000)]
Push constness through LoopInfo::isLoopHeader and clean it up a bit.

NFC.

llvm-svn: 238843

9 years agomake reciprocal estimate code generation more flexible by adding command-line options...
Sanjay Patel [Tue, 2 Jun 2015 15:28:15 +0000 (15:28 +0000)]
make reciprocal estimate code generation more flexible by adding command-line options (2nd try)

The first try (r238051) to land this was reverted due to bot failures
that were hopefully addressed by r238788.

This patch adds a TargetRecip class for processing many recip codegen possibilities.
The class is intended to handle both command-line options to llc as well
as options passed in from a front-end such as clang with the -mrecip option.

The x86 backend is updated to use the new functionality.
Only -mcpu=btver2 with -ffast-math should see a functional change from this patch.
All other x86 CPUs continue to *not* use reciprocal estimates by default with -ffast-math.

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

llvm-svn: 238842

9 years agoclang-format: [JS] Fix incorrect line length calculation.
Daniel Jasper [Tue, 2 Jun 2015 15:14:21 +0000 (15:14 +0000)]
clang-format: [JS] Fix incorrect line length calculation.

llvm-svn: 238841

9 years agoChange Intel(R) OpenMP* to LLVM* OpenMP* in libomp.rc.var
Jonathan Peyton [Tue, 2 Jun 2015 15:06:08 +0000 (15:06 +0000)]
Change Intel(R) OpenMP* to LLVM* OpenMP* in libomp.rc.var

Missed some places that referenced the Intel(R) OpenMP* Runtime Library.

llvm-svn: 238840

9 years agoclang-format: [JS] Array literal detection fix #3.
Daniel Jasper [Tue, 2 Jun 2015 15:04:29 +0000 (15:04 +0000)]
clang-format: [JS] Array literal detection fix #3.

llvm-svn: 238839

9 years ago[mips] Add RuntimeDyld tests for currently supported O32 relocations.
Daniel Sanders [Tue, 2 Jun 2015 15:01:25 +0000 (15:01 +0000)]
[mips] Add RuntimeDyld tests for currently supported O32 relocations.

Reviewers: petarj, vkalintiris

Reviewed By: vkalintiris

Subscribers: vkalintiris, llvm-commits

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

llvm-svn: 238838

9 years ago[ASan] Fixed tests to pass on Darwin. Patch by Maria Guseva!
Yury Gribov [Tue, 2 Jun 2015 14:59:26 +0000 (14:59 +0000)]
[ASan] Fixed tests to pass on Darwin. Patch by Maria Guseva!

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

llvm-svn: 238837

9 years agoMark TestHelloWorld as XTIMEOUT for Linux
Tamas Berghammer [Tue, 2 Jun 2015 14:45:25 +0000 (14:45 +0000)]
Mark TestHelloWorld as XTIMEOUT for Linux

It is times out on the build bot ~10% of the times

llvm-svn: 238836

9 years agoclang-format: [JS] Fix another regression when detecting array literals.
Daniel Jasper [Tue, 2 Jun 2015 14:20:08 +0000 (14:20 +0000)]
clang-format: [JS] Fix another regression when detecting array literals.

llvm-svn: 238835

9 years agoAVX-512: Implemented VRANGESD and VRANGESS instructions for SKX Implemented DAG lower...
Elena Demikhovsky [Tue, 2 Jun 2015 14:12:54 +0000 (14:12 +0000)]
AVX-512: Implemented VRANGESD and VRANGESS instructions for SKX Implemented DAG lowering for all these forms.
Added tests for encoding.

By Igor Breger (igor.breger@intel.com)

llvm-svn: 238834

9 years agoSkip TestChangeProcessGroup on FreeBSD for now
Ed Maste [Tue, 2 Jun 2015 14:11:25 +0000 (14:11 +0000)]
Skip TestChangeProcessGroup on FreeBSD for now

It consistently times out. The test is already XTIMEOUT'd, but causes
tests to take an extra 5 minutes waiting for the timeout to expire.

llvm.org/pr23731

llvm-svn: 238833

9 years agoclang-format: [JS] Fix regression of detecting array literals.
Daniel Jasper [Tue, 2 Jun 2015 13:56:43 +0000 (13:56 +0000)]
clang-format: [JS] Fix regression of detecting array literals.

llvm-svn: 238832

9 years agoFix some places where we could call memmove(null,xxx,0) - which is UB
Marshall Clow [Tue, 2 Jun 2015 13:52:16 +0000 (13:52 +0000)]
Fix some places where we could call memmove(null,xxx,0) - which is UB

llvm-svn: 238831

9 years agoAVX-512: Shorten implementation of lowerV16X32VectorShuffle()
Elena Demikhovsky [Tue, 2 Jun 2015 13:43:18 +0000 (13:43 +0000)]
AVX-512: Shorten implementation of lowerV16X32VectorShuffle()
using lowerVectorShuffleWithSHUFPS() and other shuffle-helpers routines.
Added matching of VALIGN instruction.

llvm-svn: 238830

9 years ago[mips] Add support for dynamic stack realignment.
Vasileios Kalintiris [Tue, 2 Jun 2015 13:14:46 +0000 (13:14 +0000)]
[mips] Add support for dynamic stack realignment.

Summary:
With this change we are able to realign the stack dynamically, whenever it
contains objects with alignment requirements that are larger than the
alignment specified from the given ABI.

We have to use the $fp register as the frame pointer when we perform
dynamic stack realignment. In complex stack frames, with variably-sized
objects, we reserve additionally the callee-saved register $s7 as the
base pointer in order to reference locals.

Reviewers: dsanders

Subscribers: llvm-commits

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

llvm-svn: 238829

9 years agoIn the case where we are copying/moving zero elements, do less work
Marshall Clow [Tue, 2 Jun 2015 13:04:18 +0000 (13:04 +0000)]
In the case where we are copying/moving zero elements, do less work

llvm-svn: 238828

9 years agoImplement uncaught_exceptions() to get a count, rather than a bool. Update the libc...
Marshall Clow [Tue, 2 Jun 2015 13:03:17 +0000 (13:03 +0000)]
Implement uncaught_exceptions() to get a count, rather than a bool. Update the libc++abi version. Reviewed as reviews.llvm.org/D10067

llvm-svn: 238827

9 years agoUn-enable TestEvents test on linux
Pavel Labath [Tue, 2 Jun 2015 12:50:25 +0000 (12:50 +0000)]
Un-enable TestEvents test on linux

Test still seems to fail about 1/10 runs. Skipping the test, but it a more greppable fashion.

llvm-svn: 238826

9 years agoUpdate for LLVM api change.
Rafael Espindola [Tue, 2 Jun 2015 12:05:36 +0000 (12:05 +0000)]
Update for LLVM api change.

llvm-svn: 238825

9 years agoSimplify now that we always use an alignment of 2 for ELF files.
Rafael Espindola [Tue, 2 Jun 2015 12:05:27 +0000 (12:05 +0000)]
Simplify now that we always use an alignment of 2 for ELF files.

This saves 123144 bytes out of llvm-nm on powerpc64le.

llvm-svn: 238824

9 years agoMake vim also output a helpful message in some error cases.
Manuel Klimek [Tue, 2 Jun 2015 12:01:50 +0000 (12:01 +0000)]
Make vim also output a helpful message in some error cases.

When clang-format encounters a syntax error, it will not format that
line; we're now using the same mechanism we're already using in emacs to
show a helpful error message to the user.

llvm-svn: 238823

9 years agoRemove error message when using the fallback style.
Manuel Klimek [Tue, 2 Jun 2015 11:52:15 +0000 (11:52 +0000)]
Remove error message when using the fallback style.

llvm-svn: 238822

9 years agoRevert "ARM: Thumb2 LDRD/STRD supports independent input/output regs"
Renato Golin [Tue, 2 Jun 2015 11:47:30 +0000 (11:47 +0000)]
Revert "ARM: Thumb2 LDRD/STRD supports independent input/output regs"

This reverts commit r238795, as it broke the Thumb2 self-hosting buildbot.

Since self-hosting issues with Clang are hard to investigate, I'm taking the
liberty to revert now, so we can investigate it offline.

llvm-svn: 238821

9 years ago[LLDB][MIPS] MIPS64 Branch instruction emulation for SW single stepping
Mohit K. Bhakkad [Tue, 2 Jun 2015 11:22:29 +0000 (11:22 +0000)]
[LLDB][MIPS] MIPS64 Branch instruction emulation for SW single stepping
Patch by Jaydeep Patil

Reviewers: clayborg, jasonmolenda
Subscribers: bhushan, mohit.bhakkad, sagar, lldb-commits.
Differential Revision: http://reviews.llvm.org/D10155

llvm-svn: 238820

9 years agoChange use of keyword 'or' to '||' as keyword not supported by visual studio 2013.
Aidan Dodds [Tue, 2 Jun 2015 11:20:44 +0000 (11:20 +0000)]
Change use of keyword 'or' to '||'  as keyword not supported by visual studio 2013.

llvm-svn: 238819

9 years ago[AArch64] Add v8.1a atomic instructions
Vladimir Sukharev [Tue, 2 Jun 2015 10:58:41 +0000 (10:58 +0000)]
[AArch64] Add v8.1a atomic instructions

Patch by: Tom Coxon

Reviewers: t.p.northover

Subscribers: llvm-commits

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

llvm-svn: 238818

9 years ago[mips] [IAS] Reformat mips-expansions.s. NFC.
Toma Tabacu [Tue, 2 Jun 2015 10:34:10 +0000 (10:34 +0000)]
[mips] [IAS] Reformat mips-expansions.s. NFC.

Summary:
Make mips-expansions.s more readable by grouping the instructions with their respective CHECK's.
This test is going to get a lot bigger soon and it will become essentially unreadable if the current formatting is kept.

I've also made the comments more useful and accurate, and I've restricted the RUN lines to under 80 columns.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

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

llvm-svn: 238817

9 years agoEnable TestEvents test on linux
Pavel Labath [Tue, 2 Jun 2015 10:19:33 +0000 (10:19 +0000)]
Enable TestEvents test on linux

This test was very inconspicuosly skipped on linux, when it was crashing for local debugging. It
seems to work fine with LLGS, so I'm enabling it.

llvm-svn: 238816

9 years ago[mips] Test both %dtprel_hi and %dtprel_lo instead of testing %dtprel_hi twice.
Daniel Sanders [Tue, 2 Jun 2015 10:09:08 +0000 (10:09 +0000)]
[mips] Test both %dtprel_hi and %dtprel_lo instead of testing %dtprel_hi twice.

The second %dtprel_hi is used on an addiu so it looks like a copy/paste error.

llvm-svn: 238815

9 years ago[mips] Expand tabs in test/MC/Mips/mips-relocations.s
Daniel Sanders [Tue, 2 Jun 2015 10:02:00 +0000 (10:02 +0000)]
[mips] Expand tabs in test/MC/Mips/mips-relocations.s

llvm-svn: 238814

9 years ago[mips] [IAS] Add support for the .set softfloat/hardfloat directives.
Toma Tabacu [Tue, 2 Jun 2015 09:48:04 +0000 (09:48 +0000)]
[mips] [IAS] Add support for the .set softfloat/hardfloat directives.

Summary: These directives are used to set the current value of the SoftFloat feature.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits, mpf

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

llvm-svn: 238813

9 years ago[Mips] Fix enumeral vs. non-enumeral warning in ternary. NFC
Denis Protivensky [Tue, 2 Jun 2015 09:22:38 +0000 (09:22 +0000)]
[Mips] Fix enumeral vs. non-enumeral warning in ternary. NFC

That's a weird gcc's complain.

llvm-svn: 238812

9 years agoAVX-512: Implemented VFIXUPIMMSD and VFIXUPIMMSS instructions for KNL
Elena Demikhovsky [Tue, 2 Jun 2015 08:28:57 +0000 (08:28 +0000)]
AVX-512: Implemented VFIXUPIMMSD and VFIXUPIMMSS instructions for KNL
Implemented DAG lowering for all these forms.
Added tests for encoding.

By Igor Breger (igor.breger@intel.com)

llvm-svn: 238811

9 years agorevert 238809
Asaf Badouh [Tue, 2 Jun 2015 07:45:19 +0000 (07:45 +0000)]
revert 238809

llvm-svn: 238810

9 years agoAVX-512: Implemented GETEXP instruction for KNL and SKX
Asaf Badouh [Tue, 2 Jun 2015 07:18:14 +0000 (07:18 +0000)]
AVX-512: Implemented GETEXP instruction for KNL and SKX
Added rounding mode modifier for SQRTPS/PD
Added tests for encoding and intrinsics.

llvm-svn: 238809

9 years ago[TableGen] Use range-based for loops. NFC
Craig Topper [Tue, 2 Jun 2015 06:19:28 +0000 (06:19 +0000)]
[TableGen] Use range-based for loops. NFC

llvm-svn: 238808

9 years agoFix typo in comment. NFC
Craig Topper [Tue, 2 Jun 2015 06:19:25 +0000 (06:19 +0000)]
Fix typo in comment. NFC

llvm-svn: 238807

9 years ago[TableGen] Rename ListInit::getSize to just 'size' to be more consistent.
Craig Topper [Tue, 2 Jun 2015 04:15:57 +0000 (04:15 +0000)]
[TableGen] Rename ListInit::getSize to just 'size' to be more consistent.

llvm-svn: 238806

9 years ago[TableGen] Use range-based for loops. NFC.
Craig Topper [Tue, 2 Jun 2015 04:15:51 +0000 (04:15 +0000)]
[TableGen] Use range-based for loops. NFC.

llvm-svn: 238805

9 years ago[RuntimeDydlELF] Use range-based loop.
Davide Italiano [Tue, 2 Jun 2015 01:52:28 +0000 (01:52 +0000)]
[RuntimeDydlELF] Use range-based loop.

Differential Revision: http://reviews.llvm.org/D10165
Reviewed by: rafael

llvm-svn: 238804

9 years agoAdd missing return statements in C++03 std::function
Eric Fiselier [Tue, 2 Jun 2015 01:31:33 +0000 (01:31 +0000)]
Add missing return statements in C++03 std::function

llvm-svn: 238803

9 years agoAdd TODO items and remove use of 'noexcept' in C++03 test.
Eric Fiselier [Tue, 2 Jun 2015 01:25:34 +0000 (01:25 +0000)]
Add TODO items and remove use of 'noexcept' in C++03 test.

llvm-svn: 238802

9 years agoCreate a MCSymbolELF.
Rafael Espindola [Tue, 2 Jun 2015 00:25:12 +0000 (00:25 +0000)]
Create a MCSymbolELF.

This create a MCSymbolELF class and moves SymbolSize since only ELF
needs a size expression.

This reduces the size of MCSymbol from 56 to 48 bytes.

llvm-svn: 238801

9 years agoMC: Tidy up LOH naming a bit. NFC.
Jim Grosbach [Mon, 1 Jun 2015 23:55:06 +0000 (23:55 +0000)]
MC: Tidy up LOH naming a bit. NFC.

llvm-svn: 238800

9 years agoMC: Tidy up formatting a bit. NFC.
Jim Grosbach [Mon, 1 Jun 2015 23:55:02 +0000 (23:55 +0000)]
MC: Tidy up formatting a bit. NFC.

llvm-svn: 238799

9 years ago[Support] Simplify Triple::getOSVersion
David Majnemer [Mon, 1 Jun 2015 23:45:25 +0000 (23:45 +0000)]
[Support] Simplify Triple::getOSVersion

Those who are interested in the Android version can use
getEnvironmentVersion instead of getOSVersion.

llvm-svn: 238798

9 years ago[Basic] Transition getEnvironmentVersion from getOSVersion for android
David Majnemer [Mon, 1 Jun 2015 23:38:25 +0000 (23:38 +0000)]
[Basic] Transition getEnvironmentVersion from getOSVersion for android

'android' occupies the environment component of the triple.  Let's use
getEnvironmentVersion to extract it instead of getOSVersion.

llvm-svn: 238797

9 years ago[ADT] Add Triple::getEnvironmentVersion
David Majnemer [Mon, 1 Jun 2015 23:38:09 +0000 (23:38 +0000)]
[ADT] Add Triple::getEnvironmentVersion

This allows us to extract version numbers from the environment.
getOSVersion is currently overloaded for that purpose, this allows us to
clean it up.

llvm-svn: 238796

9 years agoARM: Thumb2 LDRD/STRD supports independent input/output regs
Matthias Braun [Mon, 1 Jun 2015 23:27:08 +0000 (23:27 +0000)]
ARM: Thumb2 LDRD/STRD supports independent input/output regs

The existing code would unnecessarily break LDRD/STRD apart with
non-adjacent registers, on thumb2 this is not necessary.

Ideally on thumb2 we shouldn't match for ldrd/strd pre-regalloc anymore
as there is not reason to set register hints anymore, changing that is
something for a future patch however.

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

llvm-svn: 238795

9 years agoFix a race condition where 2 threads might try to call Process::SetExitStatus() at...
Greg Clayton [Mon, 1 Jun 2015 23:14:09 +0000 (23:14 +0000)]
Fix a race condition where 2 threads might try to call Process::SetExitStatus() at the same time.

The problem was the mutex was only protecting the setting of m_exit_string and m_exit_string, but this function relies on the m_private_state being set to eStateExited in order to prevent more than 1 client setting the exit status. We want to only allow the first caller to succeed.

On MacOSX we have a thread that reaps the process we are debugging, and we also have a thread that monitors the debugserver process. When a process exists, the ProcessGDBRemote::AsyncThread() would set the exit status to the correct value and then another thread would reap the debugserver process and they would often both end up in Process::SetExitStatus() at the same time. With the mutex at the top we allow all variables to be set and the m_private_state to be set to eStateExited _before_ the other thread (debugserver reaped) can try to set th exist status to -1 and "lost connection to debugserver" being set as the exit status.

This was probably an issue for lldb-server as well and could very well cleanup some tests that might have been expecting a specific exit status from the process being debugged.

llvm-svn: 238794

9 years agoAArch64: Use CMP;CCMP sequences for and/or/setcc trees.
Matthias Braun [Mon, 1 Jun 2015 22:31:17 +0000 (22:31 +0000)]
AArch64: Use CMP;CCMP sequences for and/or/setcc trees.

Previously CCMP/FCCMP instructions were only used by the
AArch64ConditionalCompares pass for control flow. This patch uses them
for SELECT like instructions as well by matching patterns in ISelLowering.

PR20927, rdar://18326194

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

llvm-svn: 238793

9 years ago[bpf] fix build
Alexei Starovoitov [Mon, 1 Jun 2015 22:24:36 +0000 (22:24 +0000)]
[bpf] fix build

fix breakage due to r238634

Patch by Vijay Subramanian.

llvm-svn: 238792

9 years agoMove the name pointer out of Value into a map that lives on the
Owen Anderson [Mon, 1 Jun 2015 22:24:01 +0000 (22:24 +0000)]
Move the name pointer out of Value into a map that lives on the
LLVMContext.  Production builds of clang do not set names on most
Value's, so this is wasted space on almost all subclasses of Value.
This reduces the size of all Value subclasses by 8 bytes on 64 bit
hosts.

The one tricky part of this change is averting compile time regression
by keeping Value::hasName() fast.  This required stealing bits out of
NumOperands.

With this change, peak memory usage on verify-uselistorder-nodbg.lto.bc
is decreased by approximately 2.3% (~3MB absolute on my machine).

llvm-svn: 238791

9 years ago[dsymutil] Remove extraneous std::move of local in return statement.
Frederic Riss [Mon, 1 Jun 2015 22:03:05 +0000 (22:03 +0000)]
[dsymutil] Remove extraneous std::move of local in return statement.

llvm-svn: 238790

9 years agoR600/SI: Don't hardcode pointer type
Matt Arsenault [Mon, 1 Jun 2015 21:58:24 +0000 (21:58 +0000)]
R600/SI: Don't hardcode pointer type

llvm-svn: 238789

9 years agoadd missing dependency for ExecutionEngine lib
Sanjay Patel [Mon, 1 Jun 2015 21:56:56 +0000 (21:56 +0000)]
add missing dependency for ExecutionEngine lib

This appears to be masked most of the time, but the problem
was exposed on some bots by r238051.

llvm-svn: 238788

9 years agoFix TestJoinAfterBreak test on Windows
Adrian McCarthy [Mon, 1 Jun 2015 21:51:50 +0000 (21:51 +0000)]
Fix TestJoinAfterBreak test on Windows

llvm-svn: 238787

9 years agoUse reinterpret_cast instead of const_cast and C-style cast.
Rui Ueyama [Mon, 1 Jun 2015 21:49:21 +0000 (21:49 +0000)]
Use reinterpret_cast instead of const_cast and C-style cast.

llvm-svn: 238786

9 years agoLiveRangeEdit: Fix liveranges not shrinking on subrange kill.
Matthias Braun [Mon, 1 Jun 2015 21:26:26 +0000 (21:26 +0000)]
LiveRangeEdit: Fix liveranges not shrinking on subrange kill.

If a dead instruction we may not only have a last-use in the main live
range but also in a subregister range if subregisters are tracked. We
need to partially rebuild live ranges in both cases.

The testcase only broke when subregister liveness was enabled. I
commited it in the current form because there is currently no flag to
enable/disable subregister liveness.

This fixes PR23720.

llvm-svn: 238785

9 years agoARMLoadStoreOptimizer: Fix doxygen comments; NFC
Matthias Braun [Mon, 1 Jun 2015 21:26:23 +0000 (21:26 +0000)]
ARMLoadStoreOptimizer: Fix doxygen comments; NFC

llvm-svn: 238784

9 years ago[dsymutil] Remove unnecessary ';'
Frederic Riss [Mon, 1 Jun 2015 21:25:53 +0000 (21:25 +0000)]
[dsymutil] Remove unnecessary ';'

llvm-svn: 238783

9 years agoCOFF: Remove BitcodeFile::BitcodeFile(StringRef Filename).
Rui Ueyama [Mon, 1 Jun 2015 21:19:43 +0000 (21:19 +0000)]
COFF: Remove BitcodeFile::BitcodeFile(StringRef Filename).

In r238690, I made all files have only MemoryBufferRefs. This change
is to do the same thing for the bitcode file reader. Also updated
a few variable names to match with other code.

llvm-svn: 238782

9 years ago[dsymutil] Use YAMLIO to dump debug map.
Frederic Riss [Mon, 1 Jun 2015 21:12:45 +0000 (21:12 +0000)]
[dsymutil] Use YAMLIO to dump debug map.

Doing so will allow us to also accept a YAML debug map in input as using
YAMLIO gives us the parsing for free. Being able to have textual debug
maps will in turn allow much more control over the tests, because 1/
no need to check-in a binary containing the debug map and 2/ it will allow
to use the same objects/IR files with made-up debug-maps to test
different scenari.

llvm-svn: 238781

9 years agoCOFF: Support import-by-ordinal DLL imports.
Rui Ueyama [Mon, 1 Jun 2015 21:05:27 +0000 (21:05 +0000)]
COFF: Support import-by-ordinal DLL imports.

Symbols exported by DLLs can be imported not by name but by
small number or ordinal. Usually, symbols have both ordinals
and names, and in that case ordinals are called "hints" and
used by the loader as hints.

However, symbols can have only ordinals. They are called
import-by-ordinal symbols. You need to manage ordinals by hand
so that they will never change if you choose to use the feature.
But it's supposed to make dynamic linking faster because
it needs no string comparison. Not sure if that claim still
stands in year 2015, though. Anyways, the feature exists,
and this patch implements that.

llvm-svn: 238780

9 years agoCOFF: Use Chunk instead of its derived classes.
Rui Ueyama [Mon, 1 Jun 2015 21:05:24 +0000 (21:05 +0000)]
COFF: Use Chunk instead of its derived classes.

I'm adding ordinal-only (nameless) imports to the import table.
The chunk for that type is going to be different from LookupChunk.
Without this change, we cannot add objects of the new type to the
vectors.

llvm-svn: 238779

9 years agoCOFF: Initial implementation of link-time optimization.
Peter Collingbourne [Mon, 1 Jun 2015 20:10:10 +0000 (20:10 +0000)]
COFF: Initial implementation of link-time optimization.

This implementation is known to work in very simple cases (see new test case).

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

llvm-svn: 238777

9 years agoMake the C++ LTO API easier to use from C++ clients.
Peter Collingbourne [Mon, 1 Jun 2015 20:08:30 +0000 (20:08 +0000)]
Make the C++ LTO API easier to use from C++ clients.

Start using C++ types such as StringRef and MemoryBuffer in the C++ LTO
API. In doing so, clarify the ownership of the native object file: the caller
now owns it, not the LTOCodeGenerator. The C libLTO library has been modified
to use a derived class of LTOCodeGenerator that owns the object file.

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

llvm-svn: 238776

9 years agoUpdate for clang API change.
Rafael Espindola [Mon, 1 Jun 2015 20:00:20 +0000 (20:00 +0000)]
Update for clang API change.

Patch by Косов Евгений.

llvm-svn: 238775

9 years agoReplace a few std::string& with StringRef. NFC.
Rafael Espindola [Mon, 1 Jun 2015 20:00:16 +0000 (20:00 +0000)]
Replace a few std::string& with StringRef. NFC.

Patch by Косов Евгений!

llvm-svn: 238774

9 years agoRevert "[Hexagon] Test passes for hexagon target now that the backend correctly gener...
Rafael Espindola [Mon, 1 Jun 2015 19:46:36 +0000 (19:46 +0000)]
Revert "[Hexagon] Test passes for hexagon target now that the backend correctly generates relocations."

This reverts commit r238754.

It depends on r238748, which was reverted.

llvm-svn: 238773

9 years agoRevert "[Hexagon] Adding basic ELF relocation generation and testing advanced relaxat...
Rafael Espindola [Mon, 1 Jun 2015 19:20:47 +0000 (19:20 +0000)]
Revert "[Hexagon] Adding basic ELF relocation generation and testing advanced relaxation codepath."

This reverts commit r238748.

It broke the msan bot:

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/4372/steps/check-llvm%20msan/logs/stdio

llvm-svn: 238772

9 years agoDump error if dotest itself fails and no tests were run.
Chaoren Lin [Mon, 1 Jun 2015 19:06:01 +0000 (19:06 +0000)]
Dump error if dotest itself fails and no tests were run.

Reviewers: zturner, clayborg

Subscribers: lldb-commits

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

llvm-svn: 238771

9 years agoDon't close handle returned by _get_osfhandle.
Oleksiy Vyalov [Mon, 1 Jun 2015 18:52:16 +0000 (18:52 +0000)]
Don't close handle returned by _get_osfhandle.

http://reviews.llvm.org/D9931

llvm-svn: 238770

9 years agoAdditional RenderScript debug features.
Colin Riley [Mon, 1 Jun 2015 18:23:41 +0000 (18:23 +0000)]
Additional RenderScript debug features.
Base framework for inspecting RenderScript runtime details and helpers for various runtime actions on x86 and arm targets.

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

llvm-svn: 238768

9 years agoFix TestPaths.
Chaoren Lin [Mon, 1 Jun 2015 18:04:10 +0000 (18:04 +0000)]
Fix TestPaths.

Reviewers: vharron, clayborg

Reviewed By: clayborg

Subscribers: lldb-commits

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

llvm-svn: 238767

9 years agolit: Allow configurations to restrict the set of tests to run
Arnold Schwaighofer [Mon, 1 Jun 2015 17:50:03 +0000 (17:50 +0000)]
lit: Allow configurations to restrict the set of tests to run

By setting limit_to_features to a non empty list of features a configuration can
restrict the set of tests to run to only include tests that require a feature in
this list.

rdar://21082253

llvm-svn: 238766

9 years agoUpdated dosep.py to output progress and dump std{out,err} on test failure.
Chaoren Lin [Mon, 1 Jun 2015 17:49:25 +0000 (17:49 +0000)]
Updated dosep.py to output progress and dump std{out,err} on test failure.

Reviewers: vharron, clayborg, zturner

Subscribers: lldb-commits

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

llvm-svn: 238765

9 years agoFix types.py to actually be able to run check_padding_command() without erroring...
Greg Clayton [Mon, 1 Jun 2015 17:28:45 +0000 (17:28 +0000)]
Fix types.py to actually be able to run check_padding_command() without erroring out.

<rdar://problem/21071347>

llvm-svn: 238764

9 years agoDisable MachineSink on convergent operations, similar to how IR Sink is
Owen Anderson [Mon, 1 Jun 2015 17:26:30 +0000 (17:26 +0000)]
Disable MachineSink on convergent operations, similar to how IR Sink is
restricted.  No test because no in-tree target currently has convergent
MachineInstr's.

llvm-svn: 238763

9 years agoTeach the IR Sink pass to (conservatively) respect convergent annotations.
Owen Anderson [Mon, 1 Jun 2015 17:20:31 +0000 (17:20 +0000)]
Teach the IR Sink pass to (conservatively) respect convergent annotations.

llvm-svn: 238762

9 years agoInitialize 3 variables which were being used un-initialized.
Hafiz Abid Qadeer [Mon, 1 Jun 2015 17:08:30 +0000 (17:08 +0000)]
Initialize 3 variables which were being used un-initialized.

No regression on testsuite. Comitted as obvious.

llvm-svn: 238761

9 years ago[mips][FastISel] Implement bswap.
Vasileios Kalintiris [Mon, 1 Jun 2015 16:40:45 +0000 (16:40 +0000)]
[mips][FastISel] Implement bswap.

Summary: Implement bswap intrinsic for MIPS FastISel. It's very different for misp32 r1/r2 .

Based on a patch by Reed Kotler.

Test Plan:
bswap1.ll
test-suite

Reviewers: dsanders, rkotler

Subscribers: llvm-commits, rfuhler

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

llvm-svn: 238760

9 years ago[mips][FastISel] Implement intrinsics memset, memcopy & memmove.
Vasileios Kalintiris [Mon, 1 Jun 2015 16:36:01 +0000 (16:36 +0000)]
[mips][FastISel] Implement intrinsics memset, memcopy & memmove.

Summary:
Implement the intrinsics memset, memcopy and memmove in MIPS FastISel.
Make some needed infrastructure fixes so that this can work.

Based on a patch by Reed Kotler.

Test Plan:
memtest1.ll
The patch passes test-suite for mips32 r1/r2 and at O0/O2

Reviewers: rkotler, dsanders

Subscribers: llvm-commits, rfuhler

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

llvm-svn: 238759

9 years agoFix PR21945: Crash in constant evaluator.
Jonathan Roelofs [Mon, 1 Jun 2015 16:23:08 +0000 (16:23 +0000)]
Fix PR21945: Crash in constant evaluator.

Patch by Косов Евгений!

llvm-svn: 238758

9 years ago[mips][FastISel] Implement srem/urem and sdiv/udiv instructions.
Vasileios Kalintiris [Mon, 1 Jun 2015 16:17:37 +0000 (16:17 +0000)]
[mips][FastISel] Implement srem/urem and sdiv/udiv instructions.

Summary: Implement the LLVM assembly urem/srem and sdiv/udiv instructions in MIPS FastISel.

Based on a patch by Reed Kotler.

Test Plan:
srem1.ll
div1.ll
test-suite at O0/O2 for mips32 r1/r2

Reviewers: dsanders, rkotler

Subscribers: llvm-commits, rfuhler

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

llvm-svn: 238757

9 years ago[mips][FastISel] Implement the select statement for MIPS FastISel.
Vasileios Kalintiris [Mon, 1 Jun 2015 15:56:40 +0000 (15:56 +0000)]
[mips][FastISel] Implement the select statement for MIPS FastISel.

Summary: Implement the LLVM IR select statement for MIPS FastISelsel.

Based on a patch by Reed Kotler.

Test Plan:
"Make check" test included now.
Passes test-suite at O2/O0 mips32 r1/r2.

Reviewers: dsanders, rkotler

Subscribers: llvm-commits, rfuhler

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

llvm-svn: 238756

9 years ago[mips][FastISel] Clobber HI0/LO0 registers in MUL instructions.
Vasileios Kalintiris [Mon, 1 Jun 2015 15:48:09 +0000 (15:48 +0000)]
[mips][FastISel] Clobber HI0/LO0 registers in MUL instructions.

Summary:
The contents of the HI/LO registers are unpredictable after the execution of
the MUL instruction. In addition to implicitly defining these registers in the
MUL instruction definition, we have to mark those registers as dead too.

Without this the fast register allocator is running out of registers when the
MUL instruction is followed by another one that tries to allocate the AC0
register.

Based on a patch by Reed Kotler.

Reviewers: dsanders, rkotler

Subscribers: llvm-commits, rfuhler

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

llvm-svn: 238755

9 years ago[Hexagon] Test passes for hexagon target now that the backend correctly generates...
Colin LeMahieu [Mon, 1 Jun 2015 15:47:46 +0000 (15:47 +0000)]
[Hexagon] Test passes for hexagon target now that the backend correctly generates relocations.

llvm-svn: 238754

9 years agoDrop remaining Dragonegg support in release scripts
Hans Wennborg [Mon, 1 Jun 2015 15:37:58 +0000 (15:37 +0000)]
Drop remaining Dragonegg support in release scripts

r236077 and r236081 dropped Dragonegg support from the release scripts
but left some pieces. The most notable change is that Dragonegg won't
be tagged any more.

Patch by David Wiberg <dwiberg@gmail.com>.

llvm-svn: 238753

9 years agoRefactor many file functions to use FileSpec over strings.
Ed Maste [Mon, 1 Jun 2015 15:24:37 +0000 (15:24 +0000)]
Refactor many file functions to use FileSpec over strings.

This is the FreeBSD change for r238604.

llvm-svn: 238752

9 years agoFix relocation selection for foo-. on mips.
Rafael Espindola [Mon, 1 Jun 2015 15:10:51 +0000 (15:10 +0000)]
Fix relocation selection for foo-. on mips.

This handles only the 32 bit case.

llvm-svn: 238751

9 years agoSimplify code, NFC.
Rafael Espindola [Mon, 1 Jun 2015 14:58:29 +0000 (14:58 +0000)]
Simplify code, NFC.

llvm-svn: 238750

9 years agoAdd isConstant argument to MDBuilder::createTBAAStructTagNode
Artur Pilipenko [Mon, 1 Jun 2015 14:53:55 +0000 (14:53 +0000)]
Add isConstant argument to MDBuilder::createTBAAStructTagNode

According to the TBAA description struct-path tag node can have an optional IsConstant field. Add corresponding argument to MDBuilder::createTBAAStructTagNode.

Reviewed By: hfinkel

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

llvm-svn: 238749