platform/upstream/llvm.git
8 years ago[WebAssembly] Add tests for negative offsets with global variable addresses.
Dan Gohman [Mon, 25 Jan 2016 15:19:39 +0000 (15:19 +0000)]
[WebAssembly] Add tests for negative offsets with global variable addresses.

llvm-svn: 258693

8 years ago[WebAssembly] Minor code formatting cleanups. NFC.
Dan Gohman [Mon, 25 Jan 2016 15:12:05 +0000 (15:12 +0000)]
[WebAssembly] Minor code formatting cleanups. NFC.

llvm-svn: 258692

8 years ago[SelectionDAG] Use the correct return type for memcpy, memmove, and memset.
Dan Gohman [Mon, 25 Jan 2016 15:05:56 +0000 (15:05 +0000)]
[SelectionDAG] Use the correct return type for memcpy, memmove, and memset.

When generating calls to memcpy, memmove, and memset, use void* as the return
type rather than void, to match the standard signatures for these functions.

This has no practical effect for most targets, since the return values of
these calls aren't being used anyway, and most calling conventions tolerate
this kind of mismatch. However, this change will help support future
optimizations to utilize the return value to avoid holding the argument
value live across a call.

llvm-svn: 258691

8 years ago[DemandedBits] Fix computation of demanded bits for ICmps
James Molloy [Mon, 25 Jan 2016 14:49:36 +0000 (14:49 +0000)]
[DemandedBits] Fix computation of demanded bits for ICmps

The computation of ICmp demanded bits is independent of the individual operand being evaluated. We simply return a mask consisting of the minimum leading zeroes of both operands.

We were incorrectly passing "I" to ComputeKnownBits - this should be "UserI->getOperand(0)". In cases where we were evaluating the 1th operand, we were taking the minimum leading zeroes of it and itself.

This should fix PR26266.

llvm-svn: 258690

8 years ago[AVX512] Adding PTESTNMB/D/W/Q instruction
Michael Zuckerman [Mon, 25 Jan 2016 14:43:23 +0000 (14:43 +0000)]
[AVX512] Adding PTESTNMB/D/W/Q instruction

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

llvm-svn: 258688

8 years agoReapplying r256836 with a fix for MSVC 14 support.
Aaron Ballman [Mon, 25 Jan 2016 14:17:39 +0000 (14:17 +0000)]
Reapplying r256836 with a fix for MSVC 14 support.

Enable more strict standards conformance in MSVC for rvalue casting and string literal type conversion to non-const types. Also enables generation of intrinsics for more functions.

Patch by Alexander Riccio

llvm-svn: 258687

8 years ago[AVX512] Adding PTESTMB/W/D/Q instruction
Michael Zuckerman [Mon, 25 Jan 2016 13:27:32 +0000 (13:27 +0000)]
[AVX512] Adding PTESTMB/W/D/Q instruction

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

llvm-svn: 258686

8 years ago[LLDB][MIPS] Fix TestPrintStackTraces.py
Sagar Thakur [Mon, 25 Jan 2016 12:33:03 +0000 (12:33 +0000)]
[LLDB][MIPS] Fix TestPrintStackTraces.py

Patch by Nitesh Jain.

Summary: The thread_start function in libc doesn't contain any epilogue and prologue instructions. Hence unwinding fail when we are stopped in thread_start.

Reviewers: ovyalov, clayborg
Subscribers: lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep
Differential: reviews.llvm.org/D16136
llvm-svn: 258685

8 years ago[LLDB][MIPS] Fix TestExprsChar.py
Sagar Thakur [Mon, 25 Jan 2016 12:27:46 +0000 (12:27 +0000)]
[LLDB][MIPS] Fix TestExprsChar.py

Patch by Nitesh Jain.

Summary: When incorrect type used for 'char' then (at least) one of the expression evaluates to incorrect value. Please refer to bug llvm.org/pr23069

Reviewers: ovyalov, clayborg
Subscribers: lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep
Differential: reviews.llvm.org/D16132
llvm-svn: 258684

8 years ago[ARM] Add DSP build attribute and extension targeting
Bradley Smith [Mon, 25 Jan 2016 11:26:11 +0000 (11:26 +0000)]
[ARM] Add DSP build attribute and extension targeting

This patch was originally committed as r257885, but was reverted due to windows
failures. The cause of these failures has been fixed under r258677, hence
re-committing the original patch.

llvm-svn: 258683

8 years ago[ARM] Add new system registers to ARMv8-M Baseline/Mainline
Bradley Smith [Mon, 25 Jan 2016 11:25:36 +0000 (11:25 +0000)]
[ARM] Add new system registers to ARMv8-M Baseline/Mainline

This patch was originally committed as r257884, but was reverted due to windows
failures. The cause of these failures has been fixed under r258677, hence
re-committing the original patch.

llvm-svn: 258682

8 years ago[ARM] Add ARMv8-M security extension instructions to ARMv8-M Baseline/Mainline
Bradley Smith [Mon, 25 Jan 2016 11:24:47 +0000 (11:24 +0000)]
[ARM] Add ARMv8-M security extension instructions to ARMv8-M Baseline/Mainline

This patch was originally committed as r257883, but was reverted due to windows
failures. The cause of these failures has been fixed under r258677, hence
re-committing the original patch.

llvm-svn: 258681

8 years ago[X86][IFMA] adding intrinsics and encoding for multiply and add of unsigned 52bit...
Asaf Badouh [Mon, 25 Jan 2016 11:14:24 +0000 (11:14 +0000)]
[X86][IFMA] adding intrinsics and encoding for multiply and add of unsigned 52bit integer

VPMADD52LUQ - Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Qword Accumulators
 VPMADD52HUQ - Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to 64-bit Accumulators

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

llvm-svn: 258680

8 years agoFix printing of types in initializers with suppressed tags.
Benjamin Kramer [Mon, 25 Jan 2016 10:34:06 +0000 (10:34 +0000)]
Fix printing of types in initializers with suppressed tags.

Tag and specifier printing can be suppressed in Decl::printGroup, but these suppressions leak into the initializers. Thus
    int *x = ((void *)0), *y = ((void *)0);
gets printed as
    int *x = ((void *)0), *y = ((*)0);
And
    struct { struct Z z; } z = {(struct Z){}};
gets printed as
    struct { struct Z z; } z = {(){}};
The stops the suppressions from leaking into the initializers.

Patch by Nick Sumner!

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

llvm-svn: 258679

8 years ago[ARM] Add ARMv8.2-A FP16 scalar instructions
Oliver Stannard [Mon, 25 Jan 2016 10:26:26 +0000 (10:26 +0000)]
[ARM] Add ARMv8.2-A FP16 scalar instructions

This was originally committed as r255762, but reverted as it broke windows
bots. Re-commitiing the exact same patch, as the underlying cause was fixed by
r258677.

ARMv8.2-A adds 16-bit floating point versions of all existing VFP
floating-point instructions. This is an optional extension, so all of
these instructions require the FeatureFullFP16 subtarget feature.

The assembly for these instructions uses S registers (AArch32 does not
have H registers), but the instructions have ".f16" type specifiers
rather than ".f32" or ".f64". The top 16 bits of each source register
are ignored, and the top 16 bits of the destination register are set to
zero.

These instructions are mostly the same as the 32- and 64-bit versions,
but they use coprocessor 9 rather than 10 and 11.

Two new instructions, VMOVX and VINS, have been added to allow packing
and extracting two 16-bit floats stored in the top and bottom halves of
an S register.

New fixup kinds have been added for the PC-relative load and store
instructions, but no ELF relocations have been added as they have a
range of 512 bytes.

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

llvm-svn: 258678

8 years ago[TableGen] Fix sort order of asm operand classes
Oliver Stannard [Mon, 25 Jan 2016 10:20:19 +0000 (10:20 +0000)]
[TableGen] Fix sort order of asm operand classes

This is a fix for https://llvm.org/bugs/show_bug.cgi?id=22796.

The previous implementation of ClassInfo::operator< allowed cycles of classes
such that x < y < z < x, meaning that a list of them cannot be correctly
sorted, and the sort order could differ with different standard libraries.

The original implementation sorted classes by ValueName if they were otherwise
equal. This isn't strictly necessary, but some backends seem to accidentally
rely on it. If I reverse this comparison I get 8 test failures spread across
the AArch64, Mips and X86 backends, so I have left it in until those backends
can be fixed.

There was one case in the X86 backend where the observable behaviour of the
assembler is changed by this patch. This was because some of the memory asm
operands were not marked as children of X86MemAsmOperand.

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

llvm-svn: 258677

8 years agoSilence a -Wparentheses warning; NFC.
Junmo Park [Mon, 25 Jan 2016 10:17:17 +0000 (10:17 +0000)]
Silence a -Wparentheses warning; NFC.

llvm-svn: 258676

8 years agoAVX1 : Enable vector masked_load/store to AVX1.
Igor Breger [Mon, 25 Jan 2016 10:17:11 +0000 (10:17 +0000)]
AVX1 : Enable vector masked_load/store to AVX1.
Use AVX1 FP instructions (vmaskmovps/pd) in place of the AVX2 int instructions (vpmaskmovd/q).

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

llvm-svn: 258675

8 years ago[Sema] Improve constness
Daniel Marjamaki [Mon, 25 Jan 2016 09:29:38 +0000 (09:29 +0000)]
[Sema] Improve constness

llvm-svn: 258673

8 years ago[ELF] - Symbols from object files that override symbols in DSO are added to .dynsym...
George Rimar [Mon, 25 Jan 2016 08:44:38 +0000 (08:44 +0000)]
[ELF] - Symbols from object files that override symbols in DSO are added to .dynsym table.

Main executable did not export symbols that exist both in the main executable and in DSOs before this patch.
Symbols from object files that override symbols in DSO should be added to .dynsym table.

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

llvm-svn: 258672

8 years ago[AVX512] [CMPPS ][ CMPPD ] Adding full Comparison Predicate names
Michael Zuckerman [Mon, 25 Jan 2016 08:43:26 +0000 (08:43 +0000)]
[AVX512] [CMPPS ][ CMPPD ] Adding full Comparison Predicate names

X86AsmParser.cpp is missing full comparison predicate names for CMPPD and CMPPS Instructions.
X86AsmParser.cpp defines only the short names of the Comparison predicate that you can find in the following pdf:
https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
Page 5-61 table 5-3

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

llvm-svn: 258671

8 years agoUse of assert instead of llvm_unreachable in EhFrameHeader<ELFT>::assignEhFrame().
George Rimar [Mon, 25 Jan 2016 08:20:16 +0000 (08:20 +0000)]
Use of assert instead of llvm_unreachable in EhFrameHeader<ELFT>::assignEhFrame().

llvm-svn: 258670

8 years agoAllow capture typedefs/type aliases for VLAs in lambdas/captured statements chain.
Alexey Bataev [Mon, 25 Jan 2016 07:06:23 +0000 (07:06 +0000)]
Allow capture typedefs/type aliases for VLAs in lambdas/captured statements chain.
Previous it was allowed to capture VLAs/types with arrays of runtime bounds only inside the first lambda/capture statement in stack. Patch allows to capture these typedefs implicitly in chains of lambdas/captured statements.

llvm-svn: 258669

8 years agoFixed processing of GNU extensions to C99 designated initializers
Alexey Bataev [Mon, 25 Jan 2016 05:14:03 +0000 (05:14 +0000)]
Fixed processing of GNU extensions to C99 designated initializers
Clang did not handles correctly inner parts of arrays/structures initializers in GNU extensions to C99 designated initializers.

llvm-svn: 258668

8 years ago[llvm-size] Use stderr instead of stdout for error messages.
Davide Italiano [Mon, 25 Jan 2016 01:24:15 +0000 (01:24 +0000)]
[llvm-size] Use stderr instead of stdout for error messages.

This matches the behavior of other tools: objdump, readobj etc..

llvm-svn: 258667

8 years ago[Object][COFF] Revert r258665 - It doesn't do what I had intended.
Lang Hames [Mon, 25 Jan 2016 01:21:45 +0000 (01:21 +0000)]
[Object][COFF] Revert r258665 - It doesn't do what I had intended.

I'm discussing the right approach for tracking visibility for COFF symbols on
the llvm-dev list.

llvm-svn: 258666

8 years ago[Object][COFF] Set the generic SF_Exported flag on COFF exported symbols.
Lang Hames [Sun, 24 Jan 2016 21:56:40 +0000 (21:56 +0000)]
[Object][COFF] Set the generic SF_Exported flag on COFF exported symbols.

The ORC ObjectLinkingLayer uses this flag during symbol lookup. Failure to set
it causes all symbols to behave as if they were non-exported, which has caused
failures in the kaleidoscope tutorials on Windows. Raising the flag should
un-break the tutorials.

No test case yet - none of the existing command line tools for printing symbol
tables (llvm-nm, llvm-objdump) show the status of this flag, and I don't want to
change the format from these tools without consulting their owners. I'll send an
email to the dev-list to figure out the right way forward.

llvm-svn: 258665

8 years ago[COFF] Simplify SetSectionName
David Majnemer [Sun, 24 Jan 2016 20:46:11 +0000 (20:46 +0000)]
[COFF] Simplify SetSectionName

Consolidate the code which handles string table offsets less than 999999
with the code for offsets less than 9999999.  While we are here,
simplify the code by not using sprintf to generate the string.

llvm-svn: 258664

8 years ago[LoopSimplify] Reuse changeToUnreachable
David Majnemer [Sun, 24 Jan 2016 19:32:52 +0000 (19:32 +0000)]
[LoopSimplify] Reuse changeToUnreachable

Use existing functionality provided in changeToUnreachable instead of
reinventing it in LoopSimplify.

No functionality change is intended.

llvm-svn: 258663

8 years agotest: Name instructions in a test case [NFC]
Tobias Grosser [Sun, 24 Jan 2016 17:51:37 +0000 (17:51 +0000)]
test: Name instructions in a test case [NFC]

llvm-svn: 258662

8 years agoFix build bot breakage
David Majnemer [Sun, 24 Jan 2016 16:46:53 +0000 (16:46 +0000)]
Fix build bot breakage

llvm-svn: 258661

8 years agoBlockGenerators: Avoid redundant map lookup [NFC]
Tobias Grosser [Sun, 24 Jan 2016 14:16:59 +0000 (14:16 +0000)]
BlockGenerators: Avoid redundant map lookup [NFC]

llvm-svn: 258660

8 years agoAdded Skylake client to X86 targets and features
Elena Demikhovsky [Sun, 24 Jan 2016 10:41:28 +0000 (10:41 +0000)]
Added Skylake client to X86 targets and features

Changes in X86.td:

I set features of Intel processors in incremental form: IVB = SNB + X HSW = IVB + X ..
I added Skylake client processor and defined it's features
FeatureADX was missing on KNL
Added some new features to appropriate processors SMAP, IFMA, PREFETCHWT1, VMFUNC and others

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

llvm-svn: 258659

8 years agoFixed few comments.
Amjad Aboud [Sun, 24 Jan 2016 08:18:55 +0000 (08:18 +0000)]
Fixed few comments.

llvm-svn: 258658

8 years agoAVX512: VMOVDQU8/16/32/64 (load) intrinsic implementation.
Igor Breger [Sun, 24 Jan 2016 08:04:33 +0000 (08:04 +0000)]
AVX512: VMOVDQU8/16/32/64 (load) intrinsic implementation.

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

llvm-svn: 258657

8 years ago[TableGen] In AsmWriterEmitter unique command search, rather than storing a mapping...
Craig Topper [Sun, 24 Jan 2016 07:13:28 +0000 (07:13 +0000)]
[TableGen] In AsmWriterEmitter unique command search, rather than storing a mapping from instruction to unique command, instead store a list of which instructions each unique command corresponds to.

This simplifies the complexity of the code that tries to find further operands to merge into the unique command.

llvm-svn: 258656

8 years agoFix buildbot failures
David Majnemer [Sun, 24 Jan 2016 06:40:37 +0000 (06:40 +0000)]
Fix buildbot failures

llvm-svn: 258655

8 years ago[SCCP] Remove duplicate code
David Majnemer [Sun, 24 Jan 2016 06:26:47 +0000 (06:26 +0000)]
[SCCP] Remove duplicate code

SCCP has code identical to changeToUnreachable's behavior, switch it
over to just call changeToUnreachable.

No functionality change intended.

llvm-svn: 258654

8 years ago[InstCombine, SCCP] Consolidate code used to remove instructions
David Majnemer [Sun, 24 Jan 2016 05:26:18 +0000 (05:26 +0000)]
[InstCombine, SCCP] Consolidate code used to remove instructions

InstCombine and SCCP both want to remove dead code in a very particular
way but using identical means to do so.  Share the code between the two.

No functionality change is intended.

llvm-svn: 258653

8 years ago[PGO] Windows buildbot failure fix. [NFC]
Betul Buyukkurt [Sun, 24 Jan 2016 00:56:19 +0000 (00:56 +0000)]
[PGO] Windows buildbot failure fix. [NFC]

llvm-svn: 258652

8 years ago[WinEH] Don't miscompile cleanups which conditionally unwind to caller
David Majnemer [Sat, 23 Jan 2016 23:54:33 +0000 (23:54 +0000)]
[WinEH] Don't miscompile cleanups which conditionally unwind to caller

A cleanup can have paths which unwind or end up in unreachable.
If there is an unreachable path *and* a path which unwinds to caller,
we would mistakenly inject an unwind path to a catchswitch on the
unreachable path.  This results in a verifier assertion firing because
the cleanup unwinds to two different places: to the caller and to the
catchswitch.

This occured because we used getCleanupRetUnwindDest to determine if the
cleanuppad had no cleanuprets.
This is incorrect, getCleanupRetUnwindDest returns null for cleanuprets
which unwind to caller.

llvm-svn: 258651

8 years agoClang changes for value profiling
Betul Buyukkurt [Sat, 23 Jan 2016 22:50:44 +0000 (22:50 +0000)]
Clang changes for value profiling

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

llvm-svn: 258650

8 years agoRemove duplicate documentation in ConstantFolding.cpp. NFC.
Manuel Jacob [Sat, 23 Jan 2016 22:49:54 +0000 (22:49 +0000)]
Remove duplicate documentation in ConstantFolding.cpp.  NFC.

The documentation for these functions is already present in the header file.

llvm-svn: 258649

8 years agoRemove duplicate documentation in Attributes.cpp. NFC.
Manuel Jacob [Sat, 23 Jan 2016 22:42:24 +0000 (22:42 +0000)]
Remove duplicate documentation in Attributes.cpp.  NFC.

The documentation for these methods is already present in the header.

llvm-svn: 258648

8 years agoUpdate outdated method documention in Attributes.h. NFC.
Manuel Jacob [Sat, 23 Jan 2016 22:38:39 +0000 (22:38 +0000)]
Update outdated method documention in Attributes.h.  NFC.

Nowadays the alignment attribute is not the only integer attribute.

llvm-svn: 258647

8 years ago[SelectionDAG] Generalised the CONCAT_VECTORS creation to support BUILD_VECTOR and...
Simon Pilgrim [Sat, 23 Jan 2016 22:27:54 +0000 (22:27 +0000)]
[SelectionDAG] Generalised the CONCAT_VECTORS creation to support BUILD_VECTOR and UNDEF folding.

llvm-svn: 258646

8 years ago[X86][SSE] Generalised TRUNC -> PACKSS/PACKUS code. NFC.
Simon Pilgrim [Sat, 23 Jan 2016 22:02:48 +0000 (22:02 +0000)]
[X86][SSE] Generalised TRUNC -> PACKSS/PACKUS code. NFC.

Generalised mask generation / subvector extraction to use the input/output types directly instead of an if/else through all the currently accepted types.

llvm-svn: 258645

8 years agoTidied up TRUNC combine code. NFC.
Simon Pilgrim [Sat, 23 Jan 2016 21:50:40 +0000 (21:50 +0000)]
Tidied up TRUNC combine code. NFC.

Make use of DAG.getBitcast and use clang-format to reduce number of lines (and make it more readable).

llvm-svn: 258644

8 years ago[CUDA] Disallow variadic functions other than printf in device code.
Justin Lebar [Sat, 23 Jan 2016 21:28:17 +0000 (21:28 +0000)]
[CUDA] Disallow variadic functions other than printf in device code.

Reviewers: tra

Subscribers: cfe-commits, echristo, jhen

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

llvm-svn: 258643

8 years ago[CUDA] Make printf work.
Justin Lebar [Sat, 23 Jan 2016 21:28:14 +0000 (21:28 +0000)]
[CUDA] Make printf work.

Summary:
The code in CGCUDACall is largely based on a patch written by Eli
Bendersky:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20140324/210218.html

That patch implemented an LLVM pass lowering printf to vprintf; this
one does something similar, but in Clang codegen.

Reviewers: echristo

Subscribers: cfe-commits, jhen, tra, majnemer

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

llvm-svn: 258642

8 years ago[CUDA] Reject the alias attribute in CUDA device code.
Justin Lebar [Sat, 23 Jan 2016 21:28:10 +0000 (21:28 +0000)]
[CUDA] Reject the alias attribute in CUDA device code.

Summary: CUDA (well, strictly speaking, NVPTX) doesn't support aliases.

Reviewers: echristo

Subscribers: cfe-commits, jhen, tra

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

llvm-svn: 258641

8 years ago[CUDA] Use Triple::isNVPTX() instead of enumerating nvptx && nvptx64.
Justin Lebar [Sat, 23 Jan 2016 21:28:08 +0000 (21:28 +0000)]
[CUDA] Use Triple::isNVPTX() instead of enumerating nvptx && nvptx64.

Summary: No functional changes.

Subscribers: tra, echristo, jhen, cfe-commits

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

llvm-svn: 258640

8 years ago[CUDA] Add Target::isNVPTX().
Justin Lebar [Sat, 23 Jan 2016 21:12:22 +0000 (21:12 +0000)]
[CUDA] Add Target::isNVPTX().

Summary: Helper so we don't have to enumerate nvptx && nvptx64 everywhere.

Reviewers: echristo

Subscribers: llvm-commits, jhen, tra

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

llvm-svn: 258639

8 years ago[CUDA] Die gracefully when trying to output an LLVM alias.
Justin Lebar [Sat, 23 Jan 2016 21:12:20 +0000 (21:12 +0000)]
[CUDA] Die gracefully when trying to output an LLVM alias.

Summary:
Previously, we would just output "foo = bar" in the assembly, and then
ptxas would choke.  Now we die before emitting any invalid code.

Reviewers: echristo

Subscribers: jholewinski, llvm-commits, jhen, tra

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

llvm-svn: 258638

8 years ago[CUDA] Make empty parameter lists in nvptx function decls easier to read.
Justin Lebar [Sat, 23 Jan 2016 21:12:17 +0000 (21:12 +0000)]
[CUDA] Make empty parameter lists in nvptx function decls easier to read.

Summary:
Before:

  .func  (.param .b32 func_retval0) _ZL21__nvvm_reflect_anchorv(

  )
  {

After:

  .func  (.param .b32 func_retval0) _ZL21__nvvm_reflect_anchorv()
  {

Reviewers: bkramer

Subscribers: llvm-commits, tra, jhen, echristo, jholewinski

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

llvm-svn: 258637

8 years agoDon't check if a list is empty with ilist::size.
Benjamin Kramer [Sat, 23 Jan 2016 20:58:09 +0000 (20:58 +0000)]
Don't check if a list is empty with ilist::size.

ilist::size() is O(n) while ilist::empty() is O(1)

llvm-svn: 258636

8 years agoObjectTransformLayerTest.cpp: Rework r258633. [-Winconsistent-missing-override]
NAKAMURA Takumi [Sat, 23 Jan 2016 20:48:50 +0000 (20:48 +0000)]
ObjectTransformLayerTest.cpp: Rework r258633. [-Winconsistent-missing-override]

Sorry for the noise.

llvm-svn: 258635

8 years agoObjectTransformLayerTest.cpp: Fix a warning. [-Wredundant-move]
NAKAMURA Takumi [Sat, 23 Jan 2016 20:45:55 +0000 (20:45 +0000)]
ObjectTransformLayerTest.cpp: Fix a warning. [-Wredundant-move]

llvm-svn: 258634

8 years agoObjectTransformLayerTest.cpp: Fix a warning. [-Winconsistent-missing-override]
NAKAMURA Takumi [Sat, 23 Jan 2016 20:45:50 +0000 (20:45 +0000)]
ObjectTransformLayerTest.cpp: Fix a warning. [-Winconsistent-missing-override]

llvm-svn: 258633

8 years agoScopInfo: Simplify code by folding definition into if
Tobias Grosser [Sat, 23 Jan 2016 20:23:06 +0000 (20:23 +0000)]
ScopInfo: Simplify code by folding definition into if

llvm-svn: 258632

8 years ago[libFuzzer] add -abort_on_timeout option
Kostya Serebryany [Sat, 23 Jan 2016 19:34:19 +0000 (19:34 +0000)]
[libFuzzer] add -abort_on_timeout option

llvm-svn: 258631

8 years ago[ORC] Update ObjectTransformLayer signature
Joseph Tremoulet [Sat, 23 Jan 2016 18:36:01 +0000 (18:36 +0000)]
[ORC] Update ObjectTransformLayer signature

Summary:
Update ObjectTransformLayer::addObjectSet to take the object set by
value rather than reference and pass it to the base layer with move
semantics rather than copy, to match r258185's changes to
ObjectLinkingLayer.

Update the unit test to verify that ObjectTransformLayer's signature stays
in sync with ObjectLinkingLayer's.

Reviewers: lhames

Subscribers: llvm-commits

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

llvm-svn: 258630

8 years agoregenerate checks and note some near-term improvements
Sanjay Patel [Sat, 23 Jan 2016 17:52:56 +0000 (17:52 +0000)]
regenerate checks and note some near-term improvements

For the moment, this file takes way too long to run (see inline comments), but
that should be a temporary problem. The fact that the compile time is so slow
for a target that doesn't support maskmov may be a bug worth investigating too.

llvm-svn: 258629

8 years agoImproving documentation for the isMoveAssignmentOperator AST matcher.
Aaron Ballman [Sat, 23 Jan 2016 17:49:18 +0000 (17:49 +0000)]
Improving documentation for the isMoveAssignmentOperator AST matcher.

Patch by Jonathan Coe.

llvm-svn: 258628

8 years ago[Bitcode] Insert the darwin wrapper at the beginning of a file when the
Akira Hatanaka [Sat, 23 Jan 2016 16:02:10 +0000 (16:02 +0000)]
[Bitcode] Insert the darwin wrapper at the beginning of a file when the
target is macho.

It looks like the check for macho was accidentally dropped in r132959.

I don't have a test case, but I'll add one if anyone knows how this can
be tested.

llvm-svn: 258627

8 years agoSilence a -Wparentheses warning; NFC.
Aaron Ballman [Sat, 23 Jan 2016 15:42:21 +0000 (15:42 +0000)]
Silence a -Wparentheses warning; NFC.

llvm-svn: 258626

8 years agoRevert "unordered_map: Reuse insert logic in emplace when possible, NFC"
Duncan P. N. Exon Smith [Sat, 23 Jan 2016 15:12:47 +0000 (15:12 +0000)]
Revert "unordered_map: Reuse insert logic in emplace when possible, NFC"

This reverts commit r258575.  EricWF sent me an email (no link since it
was off-list) requesting to review this pre-commit instead of
post-commit.

llvm-svn: 258625

8 years agoAdded missing comment. NFC.
Simon Pilgrim [Sat, 23 Jan 2016 14:38:02 +0000 (14:38 +0000)]
Added missing comment. NFC.

llvm-svn: 258624

8 years agoAlignOf.h: Satisfy both g++-4.7 and msc18.
NAKAMURA Takumi [Sat, 23 Jan 2016 13:52:09 +0000 (13:52 +0000)]
AlignOf.h: Satisfy both g++-4.7 and msc18.

llvm-svn: 258623

8 years ago[X86][SSE] Remove INSERTPS dependencies from unreferenced operands.
Simon Pilgrim [Sat, 23 Jan 2016 13:37:07 +0000 (13:37 +0000)]
[X86][SSE] Remove INSERTPS dependencies from unreferenced operands.

If the INSERTPS zeroes out all the referenced elements from either of the 2 input vectors (and the input is not already UNDEF), then set that input to UNDEF to reduce dependencies.

llvm-svn: 258622

8 years ago[LLDB] Consider only valid symbols while resolving by address
Mohit K. Bhakkad [Sat, 23 Jan 2016 10:36:06 +0000 (10:36 +0000)]
[LLDB] Consider only valid symbols while resolving by address

Reviewers: clayborg.
Subscribers: jaydeep, bhushan, sagar, nitesh.jain, lldb-commits.
Differential Revision: http://reviews.llvm.org/D16397

llvm-svn: 258621

8 years ago[LIR] Add support for structs and hand unrolled loops
Haicheng Wu [Sat, 23 Jan 2016 06:52:41 +0000 (06:52 +0000)]
[LIR] Add support for structs and hand unrolled loops

Now LIR can turn following codes into memset:

typedef struct foo {
  int a;
  int b;
} foo_t;

void bar(foo_t *f, unsigned n) {
  for (unsigned i = 0; i < n; ++i) {
    f[i].a = 0;
    f[i].b = 0;
  }
}

void test(foo_t *f, unsigned n) {
  for (unsigned i = 0; i < n; i += 2) {
    f[i] = 0;
    f[i+1] = 0;
  }
}

llvm-svn: 258620

8 years agoInline variable into assert
Matthias Braun [Sat, 23 Jan 2016 06:49:29 +0000 (06:49 +0000)]
Inline variable into assert

Seems like some compilers still give unused variable warnings for
bool var = ...;
(void)var;
so I have to inline the variable.

llvm-svn: 258619

8 years agoAArch64ISelLowering.cpp: Fix a warning. [-Wunused-variable]
NAKAMURA Takumi [Sat, 23 Jan 2016 06:34:59 +0000 (06:34 +0000)]
AArch64ISelLowering.cpp: Fix a warning. [-Wunused-variable]

llvm-svn: 258618

8 years agoRemove extra whitespace. NFC.
Junmo Park [Sat, 23 Jan 2016 06:34:36 +0000 (06:34 +0000)]
Remove extra whitespace. NFC.

llvm-svn: 258617

8 years ago[PruneEH] Don't try to insert a terminator after another terminator
David Majnemer [Sat, 23 Jan 2016 06:00:44 +0000 (06:00 +0000)]
[PruneEH] Don't try to insert a terminator after another terminator

LLVM's BasicBlock has a single terminator, it is not valid to have two.

llvm-svn: 258616

8 years agoPut space after pointer type in test. NFC.
Manuel Jacob [Sat, 23 Jan 2016 05:47:34 +0000 (05:47 +0000)]
Put space after pointer type in test.  NFC.

llvm-svn: 258615

8 years agoAMDGPU: Replace some deprecated intrinsic uses in tests
Matt Arsenault [Sat, 23 Jan 2016 05:42:49 +0000 (05:42 +0000)]
AMDGPU: Replace some deprecated intrinsic uses in tests

llvm-svn: 258614

8 years agoAMDGPU: Run instnamer on a few tests
Matt Arsenault [Sat, 23 Jan 2016 05:42:43 +0000 (05:42 +0000)]
AMDGPU: Run instnamer on a few tests

This will make future test updates easier

llvm-svn: 258613

8 years agoAMDGPU: Remove more unused intrinsics
Matt Arsenault [Sat, 23 Jan 2016 05:42:38 +0000 (05:42 +0000)]
AMDGPU: Remove more unused intrinsics

Replace tests with lrp with basic IR expansion

llvm-svn: 258612

8 years ago[PruneEH] FuncletPads must not have undef operands
David Majnemer [Sat, 23 Jan 2016 05:41:29 +0000 (05:41 +0000)]
[PruneEH] FuncletPads must not have undef operands

Instead of RAUW with undef, replace the first non-token instruction with
unreachable.

This fixes PR26263.

llvm-svn: 258611

8 years ago[PruneEH] Unify invoke and call handling in DeleteBasicBlock
David Majnemer [Sat, 23 Jan 2016 05:41:27 +0000 (05:41 +0000)]
[PruneEH] Unify invoke and call handling in DeleteBasicBlock

No functionality change is intended.

llvm-svn: 258610

8 years ago[PruneEH] Reuse code from removeUnwindEdge
David Majnemer [Sat, 23 Jan 2016 05:41:22 +0000 (05:41 +0000)]
[PruneEH] Reuse code from removeUnwindEdge

PruneEH had functionality idential to removeUnwindEdge.
Consolidate around removeUnwindEdge.
No functionality change is intended.

llvm-svn: 258609

8 years agoAMDGPU: Move amdgcn intrinsic handling into SITargetLowering
Matt Arsenault [Sat, 23 Jan 2016 05:32:20 +0000 (05:32 +0000)]
AMDGPU: Move amdgcn intrinsic handling into SITargetLowering

llvm-svn: 258608

8 years agoAMDGPU: Remove IntrNoMem from llvm.SI.sendmsg
Matt Arsenault [Sat, 23 Jan 2016 05:32:18 +0000 (05:32 +0000)]
AMDGPU: Remove IntrNoMem from llvm.SI.sendmsg

This has side effects.

llvm-svn: 258607

8 years agoAMDGPU: Remove Feature64BitPtr
Matt Arsenault [Sat, 23 Jan 2016 05:32:14 +0000 (05:32 +0000)]
AMDGPU: Remove Feature64BitPtr

This is a leftover from AMDIL that doesn't do anything
and doesn't belong here.

llvm-svn: 258606

8 years agoAArch64ISel: Fix ccmp code selection matching deep expressions.
Matthias Braun [Sat, 23 Jan 2016 04:05:22 +0000 (04:05 +0000)]
AArch64ISel: Fix ccmp code selection matching deep expressions.

Some of the conditions necessary to produce ccmp sequences were only
checked in recursive calls to emitConjunctionDisjunctionTree() after
some of the earlier expressions were already built. Move all checks over
to isConjunctionDisjunctionTree() so they are all checked before we
start emitting instructions.

Also rename some variable to better reflect their usage.

llvm-svn: 258605

8 years agoAArch64ISelLowering: Reduce maximum recursion depth of isConjunctionDisjunctionTree()
Matthias Braun [Sat, 23 Jan 2016 04:05:18 +0000 (04:05 +0000)]
AArch64ISelLowering: Reduce maximum recursion depth of isConjunctionDisjunctionTree()

This function will exhibit exponential runtime (2**n) so we should
rather use a lower limit.

llvm-svn: 258604

8 years agoFix wrong indentation
Matthias Braun [Sat, 23 Jan 2016 04:05:16 +0000 (04:05 +0000)]
Fix wrong indentation

llvm-svn: 258603

8 years agoSkipped IncompleteModulesTestCase on OS X
Todd Fiala [Sat, 23 Jan 2016 02:34:16 +0000 (02:34 +0000)]
Skipped IncompleteModulesTestCase on OS X

This is hitting an assert in clang when evaluating the
module load.  I am seeing it locally on Xcode 7.3 public Beta 1
and on the llvm.org Green Dragon buildbot supposedly running
Xcode 7.0.

Tracked by:
https://llvm.org/bugs/show_bug.cgi?id=26267

llvm-svn: 258602

8 years agofixed TestConsecutiveBreakpoints test on OS X
Todd Fiala [Sat, 23 Jan 2016 02:24:41 +0000 (02:24 +0000)]
fixed TestConsecutiveBreakpoints test on OS X

Also renamed directory and class name to fix typos.

llvm-svn: 258601

8 years agoAlignOf.h: Appease g++-4.7 for now. Will fix later.
NAKAMURA Takumi [Sat, 23 Jan 2016 02:22:36 +0000 (02:22 +0000)]
AlignOf.h: Appease g++-4.7 for now. Will fix later.

llvm-svn: 258600

8 years ago[ELF] Avoid unnecessary global variable.
Sean Silva [Sat, 23 Jan 2016 01:49:37 +0000 (01:49 +0000)]
[ELF] Avoid unnecessary global variable.

Summary: It looks like this snuck through in r256143/D15383.

Reviewers: ruiu, grimar

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

llvm-svn: 258599

8 years agoSemaOpenMP.cpp: Fix a warning in r258543. [-Wunused-variable]
NAKAMURA Takumi [Sat, 23 Jan 2016 01:38:20 +0000 (01:38 +0000)]
SemaOpenMP.cpp: Fix a warning in r258543. [-Wunused-variable]

llvm-svn: 258598

8 years ago[WebAssembly] Fix RegNumbering for the stack pointer
Derek Schuff [Sat, 23 Jan 2016 01:20:43 +0000 (01:20 +0000)]
[WebAssembly] Fix RegNumbering for the stack pointer

Previously it failed to add NumArgRegs to the offset and so clobbered an
already-used register. Now just start the numbering after the arg regs
and don't duplicate the add. Test coverage for this coming shortly with
the implementation of byval.

llvm-svn: 258597

8 years ago[cfi] Do not emit bit set entry for available_externally vtables.
Evgeniy Stepanov [Sat, 23 Jan 2016 01:20:18 +0000 (01:20 +0000)]
[cfi] Do not emit bit set entry for available_externally vtables.

In the Itanium ABI, vtable may be emitted speculatively as an
available_externally global. Such vtable may not be present at the
link time and should not have a corresponding CFI bit set entry.

llvm-svn: 258596

8 years ago[analyzer] SATestBuild.py: Remove html and log when producing reference results.
Devin Coughlin [Sat, 23 Jan 2016 01:09:07 +0000 (01:09 +0000)]
[analyzer] SATestBuild.py: Remove html and log when producing reference results.

The html reports are huge -- every issue in a given file results in a separate
copy of the source code, in HTML form, for the file. This gets very large
quickly and it doesn't make sense to check this into a reference repository.
Also remove the log when generating reference results because it can leak
absolute path names. We still keep both the html and the log around when
producing non-reference results.

llvm-svn: 258594

8 years agoFix test to pass in C++03
Marshall Clow [Sat, 23 Jan 2016 01:02:29 +0000 (01:02 +0000)]
Fix test to pass in C++03

llvm-svn: 258593

8 years agoFix missing function argument passthrough.
Zachary Turner [Sat, 23 Jan 2016 00:49:11 +0000 (00:49 +0000)]
Fix missing function argument passthrough.

llvm-svn: 258592

8 years ago[analyzer] Fixup r258572 Utility to match function calls.
Anna Zaks [Sat, 23 Jan 2016 00:45:37 +0000 (00:45 +0000)]
[analyzer] Fixup r258572 Utility to match function calls.

Initialize the IdentifierInfo pointer. Hope this fixes the buildbot breakage.

llvm-svn: 258591