Zachary Turner [Mon, 25 Jan 2016 23:21:09 +0000 (23:21 +0000)]
Fix swig typemap for SBEvent.
This needs to be able to handle bytes, strings, and bytearray objects.
In Python 2 this was easy because bytes and strings are the same thing,
but in Python 3 the 2 cases need to be handled separately. So as not
to mix raw Python C API code with PythonDataObjects code, I've also
introduced a PythonByteArray class to PythonDataObjects to make the
paradigm used here consistent.
llvm-svn: 258741
Philip Reames [Mon, 25 Jan 2016 23:19:12 +0000 (23:19 +0000)]
[GVN] Factor out common code [NFCI]
We had the same code duplicated for each type of Def. We also have the entire block duplicated between the local and non-local case, but let's start with local cleanup.
llvm-svn: 258740
Bill Seurer [Mon, 25 Jan 2016 23:03:04 +0000 (23:03 +0000)]
[powerpc] make test case as xfail
This test case which worked for a while is now failing again. I was unable to
trace the change in status to any particular revision.
llvm-svn: 258739
Justin Lebar [Mon, 25 Jan 2016 22:52:31 +0000 (22:52 +0000)]
[CUDA] Add -target to cuda-constructor-alias.cu test so it doesn't fail on Mac.
The test was checking that we passed -mconstructor-alias to host
compilation, but that explicitly shouldn't happen on Mac.
llvm-svn: 258737
Vedant Kumar [Mon, 25 Jan 2016 22:47:54 +0000 (22:47 +0000)]
[docs] Document how to merge patches into release branches
llvm-svn: 258736
Manman Ren [Mon, 25 Jan 2016 22:37:47 +0000 (22:37 +0000)]
Update comments to match the implementation.
llvm-svn: 258735
Justin Lebar [Mon, 25 Jan 2016 22:36:37 +0000 (22:36 +0000)]
[CUDA] Don't generate aliases for static extern "C" functions.
Summary:
These aliases are done to support inline asm, but there's nothing we can
do: NVPTX doesn't support aliases.
Reviewers: tra
Subscribers: cfe-commits, jhen, echristo
Differential Revision: http://reviews.llvm.org/D16501
llvm-svn: 258734
Justin Lebar [Mon, 25 Jan 2016 22:36:35 +0000 (22:36 +0000)]
[CUDA] Disable ctor/dtor aliases in device code.
Summary: NVPTX doesn't support aliases, so don't generate them.
Reviewers: tra
Subscribers: cfe-commits, jhen, echristo
Differential Revision: http://reviews.llvm.org/D16499
llvm-svn: 258733
Xinliang David Li [Mon, 25 Jan 2016 22:33:29 +0000 (22:33 +0000)]
[PGO] Add a test case covering IR based VP instrumentation
llvm-svn: 258732
Xinliang David Li [Mon, 25 Jan 2016 22:09:30 +0000 (22:09 +0000)]
[PGO] Add test case covering clang FE based VP instrumentation
llvm-svn: 258730
Matthias Braun [Mon, 25 Jan 2016 22:08:25 +0000 (22:08 +0000)]
X86ISelLowering: Fix cmov(cmov) special lowering bug
There's a special case in EmitLoweredSelect() that produces an improved
lowering for cmov(cmov) patterns. However this special lowering is
currently broken if the inner cmov has multiple users so this patch
stops using it in this case.
If you wonder why this wasn't fixed by continuing to use the special
lowering and inserting a 2nd PHI for the inner cmov: I believe this
would incur additional copies/register pressure so the special lowering
does not improve upon the normal one anymore in this case.
This fixes http://llvm.org/PR26256 (= rdar://
24329747)
llvm-svn: 258729
Teresa Johnson [Mon, 25 Jan 2016 22:04:56 +0000 (22:04 +0000)]
[ThinLTO] Find all needed metadata when linking metadata as postpass
For metadata postpass linking, after importing all functions, we need
to recursively walk through any nodes reached via imported functions to
locate needed subprogram metadata. Some might only be reached indirectly
via the variable list for an inlined function.
llvm-svn: 258728
Manman Ren [Mon, 25 Jan 2016 21:52:26 +0000 (21:52 +0000)]
Move ObjCPropertyDecl to before ObjCContainerDecl.
After we add ObjCPropertyDecl::isClassProperty, we can use it in
ObjCContainerDecl to define filter to iterate over instance properties
and class properties.
This is the first patch in a series of patches to support class properties
in addition to instance properties in objective-c.
rdar://
23891898
llvm-svn: 258727
Simon Pilgrim [Mon, 25 Jan 2016 21:51:34 +0000 (21:51 +0000)]
[X86][AVX] Add commutation support for VPERM2X128 instructions
Its main use is to allow memory folding of the 1st operand
Differential Revision: http://reviews.llvm.org/D16521
llvm-svn: 258726
Pete Cooper [Mon, 25 Jan 2016 21:50:54 +0000 (21:50 +0000)]
Use an ilist instead of std::list. NFC.
The TrieNode/TrieEdge data structures here are allocated in a bumpptrallocator.
Unfortunately, TrieNode contained a std::list<TrieEdge> and as the allocator doesn't
call the TrieNode destructor, we ended up leaking the memory allocated by the std::list
itself.
Instead we can use an intrusive list as then we save the extra allocations anyway.
llvm-svn: 258725
Rui Ueyama [Mon, 25 Jan 2016 21:47:25 +0000 (21:47 +0000)]
Use Symtab.find() instead of Symtab.getSymbols().lookup().
This was the only place we directly called lookup on the internal table
of the symbol table.
llvm-svn: 258724
Rafael Espindola [Mon, 25 Jan 2016 21:32:04 +0000 (21:32 +0000)]
Avoid almost duplication in .dynamic finalize and write.
There are a few cases where we have almost duplicated code.
This patches fixes the simplest: the finalize and write of dynamic
section. Right now they have to have exactly the same structure to
decide if a DT_* entry is needed and then to actually write it.
We cannot just write it to a std::vector in the first pass since
addresses have not been computed yet.
llvm-svn: 258723
Teresa Johnson [Mon, 25 Jan 2016 21:29:55 +0000 (21:29 +0000)]
[ThinLTO] Handle DISubprogram reached indirectly from DIImportedEntity
Extend fix for PR26037 to identify DISubprogram reached from a
DIImportedEntity via a DILexicalBlock.
llvm-svn: 258722
Ehsan Akhgari [Mon, 25 Jan 2016 21:14:52 +0000 (21:14 +0000)]
[MSVC Compat] Only warn for unknown clang-cl arguments
Summary:
MSVC's driver accepts all unknown arguments but warns about them. clang
by default rejects all unknown arguments. This causes issues
specifically with build systems such as autoconf which liberally pass
things such as $LDFLAGS to the compiler and expect everything to work.
This patch teaches clang-cl to ignore unknown driver arguments.
Reviewers: rnk
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D16511
llvm-svn: 258720
Pete Cooper [Mon, 25 Jan 2016 20:41:48 +0000 (20:41 +0000)]
Initialize member variable.
Found by Rafael using valgrind in https://llvm.org/bugs/show_bug.cgi?id=21466.
llvm-svn: 258718
Xinliang David Li [Mon, 25 Jan 2016 20:38:40 +0000 (20:38 +0000)]
sync up InstrProfData.h -- typo fix
llvm-svn: 258717
Xinliang David Li [Mon, 25 Jan 2016 20:38:13 +0000 (20:38 +0000)]
Fix a typo
llvm-svn: 258716
Aaron Ballman [Mon, 25 Jan 2016 20:00:53 +0000 (20:00 +0000)]
Add support to the misc-assert-side-effect check for MSVC-style assert macros, which use !! instead of an if statement or a conditional operator.
llvm-svn: 258714
Mike Aizatsky [Mon, 25 Jan 2016 19:52:25 +0000 (19:52 +0000)]
Revert "[sanitizers] extracted process management functions"
This reverts commit
e5b34d5a2bf4c882bc647dd26a8cea2adc76f63c.
llvm-svn: 258713
Paul Robinson [Mon, 25 Jan 2016 19:46:40 +0000 (19:46 +0000)]
LTO via the gold plugin needs to be told about debugger tuning.
Differential Revision: http://reviews.llvm.org/D16094
llvm-svn: 258712
Mike Aizatsky [Mon, 25 Jan 2016 19:43:55 +0000 (19:43 +0000)]
fixed clang-tidy config
llvm-svn: 258711
Mike Aizatsky [Mon, 25 Jan 2016 19:43:52 +0000 (19:43 +0000)]
[sanitizers] extracted process management functions
Differential Revision: http://reviews.llvm.org/D16542
llvm-svn: 258710
Lawrence Hu [Mon, 25 Jan 2016 19:43:45 +0000 (19:43 +0000)]
Enable loopreroll to rerool loop with pointer induction variable.
Example:
while (buf !=end ) {
S += buf[0];
S += buf[1];
buf +=2;
};
Differential Revision: http://reviews.llvm.org/D13151
llvm-svn: 258709
Lawrence Hu [Mon, 25 Jan 2016 19:36:30 +0000 (19:36 +0000)]
Undo commit 258700 due to missing commit message
llvm-svn: 258708
George Rimar [Mon, 25 Jan 2016 19:27:50 +0000 (19:27 +0000)]
Fix: added assert condition to EhFrameHeader<ELFT>::assignEhFrame().
Thanks to David Blaikie who found that issue.
llvm-svn: 258707
Evgeniy Stepanov [Mon, 25 Jan 2016 19:25:20 +0000 (19:25 +0000)]
[asan] Don't use sysconf(_SC_PAGESIZE) on Android.
This is broken in the current (post-MNC) master branch.
Use EXEC_PAGESIZE instead, the same as on x86 Linux.
This change fixes startup crashes in the existing tests on AOSP
master.
llvm-svn: 258706
Matthew Simpson [Mon, 25 Jan 2016 19:24:29 +0000 (19:24 +0000)]
Reapply commit r25804 with fix
We were hitting an assertion because we were computing smaller type sizes for
instructions that cannot be demoted. The fix first determines the instructions
that will be demoted, and then applies the smaller type size to only those
instructions.
This should fix PR26239.
llvm-svn: 258705
Adrian McCarthy [Mon, 25 Jan 2016 19:13:35 +0000 (19:13 +0000)]
Fix TestSourceManager.py on Windows.
Python 3.5 is picky about writing strings to binary files, so we now open the
file in text mode, and we explicitly set the newline mode to avoid re-writing
it with CR+LF on Windows (which causes git to think the file had changed).
llvm-svn: 258704
Quentin Colombet [Mon, 25 Jan 2016 19:12:49 +0000 (19:12 +0000)]
Speculatively revert r258620 as it is the likely culprid of PR26293.
llvm-svn: 258703
Ivan Krasin [Mon, 25 Jan 2016 19:05:45 +0000 (19:05 +0000)]
Temporary disable broken fuzzer/timeout tests.
Reviewers: kcc
Differential Revision: http://reviews.llvm.org/D16543
llvm-svn: 258702
Rafael Espindola [Mon, 25 Jan 2016 19:02:20 +0000 (19:02 +0000)]
Add a test showing we can write a vector of floats.
llvm-svn: 258701
Lawrence Hu [Mon, 25 Jan 2016 18:53:39 +0000 (18:53 +0000)]
Differential Revision: reviews.llvm.org/D13151
llvm-svn: 258700
Sanjay Patel [Mon, 25 Jan 2016 18:38:38 +0000 (18:38 +0000)]
don't repeat function names in documentation comments; NFC
llvm-svn: 258699
Rafael Espindola [Mon, 25 Jan 2016 18:29:16 +0000 (18:29 +0000)]
Pass --wrap=pthread_create to linker for -fsplit-stack.
From
https://gcc.gnu.org/ml/gcc-patches/2010-09/msg01807.html
-fsplit-stack should pass --wrap=pthread_create to linker for -fsplit-stack
It is needed to initialize the stack guard. This fixes PR 20148.
Patch by H.J Lu!
llvm-svn: 258698
Marshall Clow [Mon, 25 Jan 2016 17:29:55 +0000 (17:29 +0000)]
Implement LWG#2385; remove the allocator-aware std::function::assign call. It was useless, and didn't actually *do anything* with the allocator. Now it's gone. On the off chance that someone is mistakenly calling it, it's only gone in C++1z
llvm-svn: 258697
Andrey Churbanov [Mon, 25 Jan 2016 16:52:10 +0000 (16:52 +0000)]
omp_barrier.c test fixed in order to reliably and faster run on any number of processors
llvm-svn: 258695
Dan Gohman [Mon, 25 Jan 2016 16:48:44 +0000 (16:48 +0000)]
[WebAssembly] Fix unbalanced register stack code in the case of late DCE.
Instructions can be DCE'd after the RegStackify pass. If the instruction which
would be the pop for what would be a push is removed, don't use a push.
llvm-svn: 258694
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
Dan Gohman [Mon, 25 Jan 2016 15:12:05 +0000 (15:12 +0000)]
[WebAssembly] Minor code formatting cleanups. NFC.
llvm-svn: 258692
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Junmo Park [Mon, 25 Jan 2016 10:17:17 +0000 (10:17 +0000)]
Silence a -Wparentheses warning; NFC.
llvm-svn: 258676
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
Daniel Marjamaki [Mon, 25 Jan 2016 09:29:38 +0000 (09:29 +0000)]
[Sema] Improve constness
llvm-svn: 258673
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
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
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
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
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
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
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
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
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
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
Tobias Grosser [Sun, 24 Jan 2016 17:51:37 +0000 (17:51 +0000)]
test: Name instructions in a test case [NFC]
llvm-svn: 258662
David Majnemer [Sun, 24 Jan 2016 16:46:53 +0000 (16:46 +0000)]
Fix build bot breakage
llvm-svn: 258661
Tobias Grosser [Sun, 24 Jan 2016 14:16:59 +0000 (14:16 +0000)]
BlockGenerators: Avoid redundant map lookup [NFC]
llvm-svn: 258660
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
Amjad Aboud [Sun, 24 Jan 2016 08:18:55 +0000 (08:18 +0000)]
Fixed few comments.
llvm-svn: 258658
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
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
David Majnemer [Sun, 24 Jan 2016 06:40:37 +0000 (06:40 +0000)]
Fix buildbot failures
llvm-svn: 258655
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
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
Betul Buyukkurt [Sun, 24 Jan 2016 00:56:19 +0000 (00:56 +0000)]
[PGO] Windows buildbot failure fix. [NFC]
llvm-svn: 258652
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
NAKAMURA Takumi [Sat, 23 Jan 2016 20:45:55 +0000 (20:45 +0000)]
ObjectTransformLayerTest.cpp: Fix a warning. [-Wredundant-move]
llvm-svn: 258634