summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AVX-512] Add test cases for masked floating point logic operations with ↵Craig Topper2016-08-312-1/+1192
| | | | | | | | bitcasts between the logic ops and the select. We don't currently select masked operations for these cases. Test cases taken from optimized clang output after trying to convert the masked floating point logical op intrinsics to native IR. llvm-svn: 280194
* [X86] Regenerate a test using update_llc_test_checks.py.Craig Topper2016-08-311-48/+81
| | | | llvm-svn: 280193
* [XRay] Support multiple return instructions in a single basic blockDean Michael Berris2016-08-313-1/+60
| | | | | | | Add a .mir test to catch this case, and fix the xray-instrumentation pass to handle it appropriately. llvm-svn: 280192
* [Loads] Properly populate the visited set in isDereferenceableAndAlignedPointerDavid Majnemer2016-08-311-2/+5
| | | | | | | | | There were paths where we wouldn't populate the visited set, causing us to recurse forever if an SSA variable was defined in terms of itself. This fixes PR30210. llvm-svn: 280191
* PR12298 et al: don't recursively instantiate a template specialization fromRichard Smith2016-08-3111-51/+206
| | | | | | | | | | | | | | | within the instantiation of that same specialization. This could previously happen for eagerly-instantiated function templates, variable templates, exception specifications, default arguments, and a handful of other cases. We still have an issue here for default template arguments that recursively make use of themselves and likewise for substitution into the type of a non-type template parameter, but in those cases we're producing a different entity each time, so they should instead be caught by the instantiation depth limit. However, currently we will typically run out of stack before we reach it. :( llvm-svn: 280190
* Concatenate two FileCheck lines in a test.Richard Trieu2016-08-311-8/+4
| | | | | | | | | 'cc1' is a valid sequence of hexadecimal and sometimes can occur in the path when testing. This can lead to FileCheck matching the incorrect occurance of the 'cc1' string and causing a test failure. Join two adjacent flags together into one check to prevent this. llvm-svn: 280189
* [PowerPC] Don't spill the frame pointer twiceHal Finkel2016-08-312-0/+37
| | | | | | | | | | | | | | When a function contains something, such as inline asm, which explicitly clobbers the register used as the frame pointer, don't spill it twice. If we need a frame pointer, it will be saved/restored in the prologue/epilogue code. Explicitly spilling it again will reuse the same spill slot used by the prologue/epilogue code, thus clobbering the saved value. The same applies to the base-pointer or PIC-base register. Partially fixes PR26856. Thanks to Ulrich for his analysis and the small inline-asm reproducer. llvm-svn: 280188
* clangTooling: Update libdeps: LLVMOptions, since r280118.NAKAMURA Takumi2016-08-311-1/+4
| | | | llvm-svn: 280187
* clangTooling depends on ClangDriverOptions since r280118.NAKAMURA Takumi2016-08-311-0/+3
| | | | llvm-svn: 280186
* [sanitizer] remove kBatchClassID that is not used any more; NFCKostya Serebryany2016-08-313-33/+3
| | | | llvm-svn: 280185
* [Coroutines] Part 10: Add coroutine promise support.Gor Nishanov2016-08-316-9/+198
| | | | | | | | | | | | | | | | | | | Summary: 1) CoroEarly now lowers llvm.coro.promise intrinsic that allows to obtain a coroutine promise pointer from a coroutine frame and vice versa. 2) CoroFrame now interprets Promise argument of llvm.coro.begin to place CoroutinPromise alloca at a deterministic offset from the coroutine frame. Now, the coroutine promise example from docs\Coroutines.rst compiles and produces expected result (see test/Transform/Coroutines/ex4.ll). Reviewers: majnemer Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D23993 llvm-svn: 280184
* [InstCombine] clean up InsertRangeTest; NFCISanjay Patel2016-08-311-35/+15
| | | | | | | | | | It's much less code and easier to read if we don't duplicate everything between the 'Inside' and not 'Inside' cases. As noted with the FIXME, the goal is to make this vector-friendly in a follow-up patch. llvm-svn: 280183
* [StreamExecutor] Add Stream::blockHostUntilDoneJason Henline2016-08-311-1/+10
| | | | | | | | | | | | Summary: Add the type-safe wrapper to the platform-specific implementation. Reviewers: jlebar Subscribers: jprice, parallel_libs-commits Differential Revision: https://reviews.llvm.org/D24063 llvm-svn: 280182
* [llvm-cov] Drop redundant "No." suffix in a column titleVedant Kumar2016-08-312-2/+2
| | | | llvm-svn: 280181
* [clang-tidy] modernize-make-{smart_ptr} private ctor bugfixPiotr Padlewski2016-08-314-1/+79
| | | | | | | | | | | | | | | Summary: Bugfix for 27321. When the constructor of stored pointer type is private then it is invalid to change it to make_shared or make_unique. Reviewers: alexfh, aaron.ballman, hokein Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D23343 llvm-svn: 280180
* [LoadStoreVectorizer] Change VectorSet to Vector to match head and tail ↵Alina Sbirlea2016-08-303-7/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | positions. Resolves PR29148. Summary: LSV was using two vector sets (heads and tails) to track pairs of adjiacent position to vectorize. A recent optimization is trying to obtain the longest chain to vectorize and assumes the positions in heads(H) and tails(T) match, which is not the case is there are multiple tails for the same head. e.g.: i1: store a[0] i2: store a[1] i3: store a[1] Leads to: H: i1 T: i2 i3 Instead of: H: i1 i1 T: i2 i3 So the positions for instructions that follow i3 will have different indexes in H/T. This patch resolves PR29148. This issue also surfaced the fact that if the chain is too long, and TLI returns a "not-fast" answer, the whole chain will be abandoned for vectorization, even though a smaller one would be beneficial. Added a testcase and FIXME for this. Reviewers: tstellarAMD, arsenm, jlebar Subscribers: mzolotukhin, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D24057 llvm-svn: 280179
* Don't try to run a test that generates code for x86 if it's not a registered ↵Richard Smith2016-08-301-0/+2
| | | | | | target. llvm-svn: 280178
* [StreamExecutor] Simplify Kernel classesJason Henline2016-08-307-212/+87
| | | | | | | | | | | | | | Summary: Make the Kernel class follow the pattern of the other classes. It now has a type-safe user wrapper and a typeless, platform-specific handle. Reviewers: jlebar Subscribers: jprice, parallel_libs-commits Differential Revision: https://reviews.llvm.org/D24043 llvm-svn: 280176
* [InstCombine] add tests to show type limitations of InsertRangeTest and callersSanjay Patel2016-08-303-3/+56
| | | | llvm-svn: 280175
* [analyzer] Use lazily created buffer in EmptyLocalizationContextCheckerDevin Coughlin2016-08-303-2/+20
| | | | | | | | | | | Fix a crash when relexing the underlying memory buffer to find incorrect arguments to NSLocalizedString(). With precompiled headers, the raw buffer may be NULL. Instead, use the source manager to get the buffer, which will lazily create the buffer for precompiled headers. rdar://problem/27429091 llvm-svn: 280174
* Rename the test classEnrico Granata2016-08-301-1/+1
| | | | llvm-svn: 280173
* Add an helper class lldb.formatters.synth.PythonObjectSyntheticChildProviderEnrico Granata2016-08-306-0/+153
| | | | | | | | This class enables one to easily write a synthetic child provider by writing a class that returns pairs of names and primitive Python values - the base class then converts those into LLDB SBValues Comes with a test case llvm-svn: 280172
* Driver: use the canonical static library namingSaleem Abdulrasool2016-08-303-9/+9
| | | | | | | | | | On Windows, static libraries are named lib<name>.lib while import libraries are named <name>.lib. Use the appropriate naming on itanium and msvc environments. This is setup properly so that if a dynamic builtins is used on Windows, it would do the right thing, although this is not currently wired through the driver (i.e. there is no equivalent to -{shared,static}-gcc). llvm-svn: 280169
* [codeview] Remove redundant TypeTable lookupReid Kleckner2016-08-301-17/+1
| | | | | | | | As written, the code should assert if this lookup would have ever succeeded. Without looking through composite types, the type graph should be acyclic. llvm-svn: 280168
* Add a test file, macho-invalid-dysymtab-extreloff-nextrel,Kevin Enderby2016-08-301-0/+0
| | | | | | I forgot to do an svn add on. llvm-svn: 280167
* Teach ValueObject::ReadPointedString how to read char[] in host memoryEnrico Granata2016-08-301-5/+16
| | | | llvm-svn: 280166
* clang-format: Correctly calculate affected ranges when sorting #includes.Daniel Jasper2016-08-302-6/+18
| | | | | | affectedRanges takes a start and an end offset, not offset and length. llvm-svn: 280165
* Fix a typo/thinko - this was generating the wrong kind of arrayEnrico Granata2016-08-301-1/+1
| | | | llvm-svn: 280164
* [ORC][RPC] Fix some bugs in the callB primitive.Lang Hames2016-08-301-3/+3
| | | | | | | Still no unit test due to synchronization bugs on s390. These issues were discovered in an out-of-tree utility. llvm-svn: 280163
* [CMake] Ensure that compiler-rt is added firstChris Bieneman2016-08-301-0/+15
| | | | | | This will enable other runtime projects to detect the presence of sanitizer runtimes by referring to the sanitizer targets directly. llvm-svn: 280162
* Next set of additional error checks for invalid Mach-O files for bad ↵Kevin Enderby2016-08-3016-6/+144
| | | | | | | | LC_DYSYMTAB’s. This contains the missing checks for LC_DYSYMTAB load command fields. llvm-svn: 280161
* [Modules] Add 'gnuinlineasm' to the 'requires-declaration' feature-list.Bruno Cardoso Lopes2016-08-307-0/+31
| | | | | | | | | | | | | This adds support for modules that require (no-)gnu-inline-asm environment, such as the compiler builtin cpuid submodule. This is the gnu-inline-asm variant of https://reviews.llvm.org/D23871 Differential Revision: https://reviews.llvm.org/D23905 rdar://problem/26931199 llvm-svn: 280159
* llvm-readobj: speculative fix for MSVCSaleem Abdulrasool2016-08-301-1/+1
| | | | | | Use the typedef rather than using to type alias the typename. llvm-svn: 280158
* Fix memory leak by storing returned pointer in std::unique_ptrRichard Trieu2016-08-301-4/+3
| | | | llvm-svn: 280157
* Pass Binding instead of IsWeak to addBitcode.Rafael Espindola2016-08-303-8/+6
| | | | | | We were computing the binding on both the caller and callee. llvm-svn: 280156
* GlobalISel: combine extracts & sequences created for legalizationTim Northover2016-08-306-11/+198
| | | | | | | | Legalization ends up creating many G_SEQUENCE/G_EXTRACT pairs which leads to inefficient codegen (even for -O0), so add a quick pass over the function to remove them again. llvm-svn: 280155
* AMDGPU: Relax SGPR asm constraint register classMatt Arsenault2016-08-302-1/+11
| | | | | | | s should be SReg_32 to be as general as possible. This can avoid a copy from m0. llvm-svn: 280154
* [libfuzzer] simplified unit truncation; do not write trunc items to discMike Aizatsky2016-08-302-34/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D24049 llvm-svn: 280153
* Revert "ELFDumper: Unversioned symbols must not have trailing @"Hemant Kulkarni2016-08-303-16/+13
| | | | | | | | This reverts commit 8df7a877949e8782a3a28e3ecdb0770c1e444056. Fixing other repositories and adding changes together. llvm-svn: 280152
* Add SBType::GetArrayType() such that - given a type - one can make an array ↵Enrico Granata2016-08-309-1/+57
| | | | | | | | (of a given size) of that type This is currently only implemented for the clang-based TypeSystem, but other languages are welcome to jump in! llvm-svn: 280151
* [test] Pass a fake libLTO.dylib to a driver test which depends on itVedant Kumar2016-08-301-7/+7
| | | | | | | This makes it possible to run 'check-clang' on Darwin without building libLTO.dylib. See r280142 for more context. llvm-svn: 280150
* Revert "[test] Add libLTO as a clang test dependency on Darwin"Vedant Kumar2016-08-301-4/+0
| | | | | | | | This reverts commit r280142. Mehdi suggested a better way to fix up the test: just create a fake libLTO.dylib and tell the driver where to find it. Patch incoming... llvm-svn: 280149
* [LoopVectorizer] Predicate instructions in blocks with several incoming edgesMichael Kuperstein2016-08-303-16/+66
| | | | | | | | | | We don't need to limit predication to blocks that have a single incoming edge, we just need to use the right mask. This fixes PR30172. Differential Revision: https://reviews.llvm.org/D24009 llvm-svn: 280148
* [COFFObjectFile] Ignore broken symbol tableDavid Majnemer2016-08-302-3/+12
| | | | | | | | | | | | | | | | When binaries are compressed by UPX, information about symbol table offset and symbol count remain unchanged (but became invalid due to compression). This causes failure in the constructor and the rest of the binary cannot be processed. Instead, reset symbol related information (symbol/string table pointers, sizes) - this should disable the related iterators and functions while the rest of the binary can still be processed. Patch by Bandzi Michal! llvm-svn: 280147
* stats: define WIN32_LEAN_AND_MEAN when including windows.hSaleem Abdulrasool2016-08-301-0/+1
| | | | | | | Reduce the amount of the header that we end up including in the build. The additional definitions are not necessary. llvm-svn: 280146
* profile: add missing include for WindowsSaleem Abdulrasool2016-08-301-0/+3
| | | | | | | Add a missing Windows.h which is needed for the windows type usage in the TU (e.g. HANDLE). llvm-svn: 280145
* [LTO] Fix the logic for dropping unnamed_addr.Davide Italiano2016-08-308-31/+75
| | | | | | Differential Revision: https://reviews.llvm.org/D24037 llvm-svn: 280144
* IntrArgMemOnly is only defined (and current AA machinery only sanely ↵Daniel Berlin2016-08-302-3/+44
| | | | | | supports) pointer arguments, and these intrinsics have vector of pointer arguments. Remove ArgMemOnly until we either have the machinery, define a new attribute, or something similar llvm-svn: 280143
* [test] Add libLTO as a clang test dependency on DarwinVedant Kumar2016-08-301-0/+4
| | | | | | | | | | | | | Running 'check-clang' on a stock checkout of llvm+clang doesn't work on Darwin, because test/Driver/darwin-ld-lto.c can't find libLTO.dylib. Add libLTO as a clang test dependency on Darwin to fix the problem. Note: We don't have this issue with check-all because libLTO is in the test-depends target. Differential Revision: https://reviews.llvm.org/D24042 llvm-svn: 280142
* Re-instate recent RPC updates (r280016, r280017, r280027, r280051) with aLang Hames2016-08-302-74/+176
| | | | | | workaround for the limitations of MSVC 2013's std::future class. llvm-svn: 280141
OpenPOWER on IntegriCloud