summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add another workaround for C++17 inline variable ABI breakage.Eric Fiselier2016-07-011-1/+4
| | | | llvm-svn: 274408
* Remove accidental change committed in r274403.Eric Fiselier2016-07-011-1/+1
| | | | llvm-svn: 274407
* LoadStoreVectorizer: Fix warning about extra semicolonMatt Arsenault2016-07-011-2/+2
| | | | llvm-svn: 274406
* TII: Fix inlineasm size counting comments as instsMatt Arsenault2016-07-012-7/+117
| | | | | | | The main problem was counting comments on their own line as instructions. llvm-svn: 274405
* Turn off ASAN's odr-violation diagnostics for now. See PR28391Eric Fiselier2016-07-011-0/+3
| | | | llvm-svn: 274404
* Work around ABI break caused by C++17 inline variables.Eric Fiselier2016-07-011-1/+8
| | | | llvm-svn: 274403
* PeepholeOptimizer: Relax assertMatt Arsenault2016-07-011-2/+4
| | | | | | Allow implicit defs llvm-svn: 274402
* [CodeView] Include MSVC style names for unnamed typesDavid Majnemer2016-07-012-9/+65
| | | | | | | | The CodeView printer expects to be able to generate fully qualified names from the debug info graph. This means that we need to include the MSVC-style name in the debug info for anonymous types. llvm-svn: 274401
* [CodeView] Include the offset of nested membersDavid Majnemer2016-07-012-4/+66
| | | | | | | | | | | | | Given something like: struct S { int a; struct { int b; }; }; We would fail to give 'b' offset 4. Instead, we would give it the offset it has inside of it's struct. llvm-svn: 274400
* [CodeView] Pretty print anonymous scopesDavid Majnemer2016-07-013-16/+44
| | | | | | | | A namespace without a name should be written out as `anonymous namespace' while a tag type without a name should be written out as <unnamed-tag>. llvm-svn: 274399
* AMDGPU: Add feature for unaligned accessMatt Arsenault2016-07-017-172/+287
| | | | llvm-svn: 274398
* AMDGPU: Expand unaligned accesses earlyMatt Arsenault2016-07-016-229/+254
| | | | | | | | Due to visit order problems, in the case of an unaligned copy the legalized DAG fails to eliminate extra instructions introduced by the expansion of both unaligned parts. llvm-svn: 274397
* Removes CHECKs for symbolic label names (as Debug Clang will generate).Tim Shen2016-07-011-5/+10
| | | | | | Differential Revision: http://reviews.llvm.org/D20499 llvm-svn: 274396
* [msan] Fix __msan_maybe_ for non-standard type sizes.Evgeniy Stepanov2016-07-012-1/+86
| | | | | | | | | | | Fix incorrect calculation of the type size for __msan_maybe_warning_N call that resulted in an invalid (narrowing) zext instruction and "Assertion `castIsValid(op, S, Ty) && "Invalid cast!"' failed." Only happens in very large functions (with more than 3500 MSan checks) operating on integer types that are not power-of-two. llvm-svn: 274395
* AMDGPU: Improve load/store of illegal types.Matt Arsenault2016-07-0130-1454/+500
| | | | | | | | | | There was a combine before to handle the simple copy case. Split this into handling loads and stores separately. We might want to change how this handles some of the vector extloads, since this can result in large code size increases. llvm-svn: 274394
* Fixed thread local storage test case to run normally with no expected fail ↵Greg Clayton2016-07-011-2/+12
| | | | | | for Darwin, always skip on windows, and expected fail for all other OSs while mentioning the new bug I filed to track fixing TLS variables: https://llvm.org/bugs/show_bug.cgi?id=28392 llvm-svn: 274393
* C++14 init-capture: error out instead of crashing.Manman Ren2016-07-012-1/+20
| | | | | | | | | | | | | | | | | | | When we have template arguments, we have a function and a pattern, the variable in init-capture belongs to the pattern decl when checking if the lhs of "max = current" is modifiable: auto find = [max = init](auto current) { max = current; }; In function isReferenceToNonConstCapture, we handle the case where the decl context for the variable is not part of the current context. Instead of crashing, we emit an error message: cannot assign to a variable captured by copy in a non-mutable lambda rdar://26997922 llvm-svn: 274392
* [codeview] Don't record UDTs for anonymous structsReid Kleckner2016-07-012-53/+72
| | | | | | | | MSVC makes up names for these anonymous structs, but we don't (yet). Eventually Clang should use getTypedefNameForAnonDecl() to put some name in the debug info, and we can update the test case when that happens. llvm-svn: 274391
* IR: Set TargetPrefix for some X86 and AArch64 intrinsics where it was missingJustin Bogner2016-07-012-1/+3
| | | | llvm-svn: 274390
* Address two correctness issues in LoadStoreVectorizerAlina Sbirlea2016-07-015-6/+66
| | | | | | | | | | | | | | Summary: GetBoundryInstruction returns the last instruction as the instruction which follows or end(). Otherwise the last instruction in the boundry set is not being tested by isVectorizable(). Partially solve reordering of instructions. More extensive solution to follow. Reviewers: tstellarAMD, llvm-commits, jlebar Subscribers: escha, arsenm, mzolotukhin Differential Revision: http://reviews.llvm.org/D21934 llvm-svn: 274389
* Thread local storage was already broken on Linux and the tests were passing ↵Greg Clayton2016-07-013-2/+9
| | | | | | | | | | | because there was a dectorator: @unittest2.expectedFailure("rdar://7796742") Which was covering up the fact this was failing on linux and hexagon. I added back a decorator so we don't break any build bots. llvm-svn: 274388
* Remove unncessary CHECKs from r274385Tim Shen2016-07-011-2/+0
| | | | llvm-svn: 274387
* [compiler-rt] Fix cmake to propagate debug info to runtime unittestsEtienne Bergeron2016-07-011-2/+2
| | | | | | | | | | | | | | Summary: The debug information is not present due to a mis named variabl in the cmake files. Reviewers: rnk Subscribers: kubabrecka, wang0109, llvm-commits, chrisha Differential Revision: http://reviews.llvm.org/D21938 llvm-svn: 274386
* [Temporary, Lifetime] Add lifetime marks for temporariesTim Shen2016-07-018-50/+298
| | | | | | | | | With all MaterializeTemporaryExprs coming with a ExprWithCleanups, it's easy to add correct lifetime.end marks into the right RunCleanupsScope. Differential Revision: http://reviews.llvm.org/D20499 llvm-svn: 274385
* [Hexagon] Revert r274381: that was actually wrongKrzysztof Parzyszek2016-07-011-1/+1
| | | | llvm-svn: 274384
* [BitcodeFile] Simplify shouldSkip(). NFCI.Davide Italiano2016-07-011-5/+2
| | | | llvm-svn: 274383
* tab to whitespacesEtienne Bergeron2016-07-011-2/+2
| | | | llvm-svn: 274382
* [Hexagon] Use MachineOperand::readsReg instead of isUseKrzysztof Parzyszek2016-07-011-1/+1
| | | | llvm-svn: 274381
* [clang-tidy] UnnecessaryValueParamCheck - suggest std::move() if non-const ↵Felix Berger2016-07-019-21/+245
| | | | | | | | | | | | | | | | | | | | value parameter can be moved. Summary: Make check more useful in the following two cases: The parameter is passed by non-const value, has a non-deleted move constructor and is only referenced once in the function as argument to the type's copy constructor. The parameter is passed by non-const value, has a non-deleted move assignment operator and is only referenced once in the function as argument of the the type's copy assignment operator. In this case suggest a fix to move the parameter which avoids the unnecessary copy and is closest to what the user might have intended. Reviewers: alexfh, sbenza Subscribers: cfe-commits, Prazek Differential Revision: http://reviews.llvm.org/D20277 llvm-svn: 274380
* [Driver] Delete some dead code (NFC)Vedant Kumar2016-07-011-3/+0
| | | | llvm-svn: 274379
* [libclang] Sync-up the way top-level decls in an ASTUnit are handled with ↵Argyrios Kyrtzidis2016-07-013-33/+46
| | | | | | | | how decls in a DeclContext are handled. rdar://19775013 llvm-svn: 274378
* Revert fix that didn't work. I will need to debug this on linux to figure ↵Greg Clayton2016-07-011-10/+1
| | | | | | things out. llvm-svn: 274377
* [pdb] Check the display name for <unnamed-tag>, not the linkage nameReid Kleckner2016-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This issue was encountered on libcmt.pdb, which has a type record that looks like this: Struct (0x1094) { TypeLeafKind: LF_STRUCTURE (0x1505) MemberCount: 3 Properties [ (0x200) HasUniqueName (0x200) ] FieldList: <field list> (0x1093) DerivedFrom: 0x0 VShape: 0x0 SizeOf: 4 Name: <unnamed-tag> LinkageName: .?AU<unnamed-tag>@@ } The checks for startswith/endswith "<unnamed-tag>" should look at the display name, not the linkage name. llvm-svn: 274376
* Try to fix Ubuntu buildbots after I broke thread local variables with 274366.Greg Clayton2016-07-011-5/+13
| | | | llvm-svn: 274374
* [codeview] Assert that our CV type records are validReid Kleckner2016-07-011-3/+27
| | | | | | | | | | | We were asserting that our type records were valid when emitting assembly, but not when emitting an object file. I've been seeing lots of LNK1285 errors (corrupt PDB) during incremental debug self-host builds with the MSVC linker, and hopefully this will catch some of them earlier. llvm-svn: 274373
* AMDGPU/SI: Enable testing several variants for si schedulerMatt Arsenault2016-07-011-2/+2
| | | | | | | | | | Enable testing different scheduling variants if sgpr usage is very high. It was previously disabled because of a bug in handleMove, but it has been fixed since. Patch by Axel Davy llvm-svn: 274372
* Fix checks on schedule structJonathan Peyton2016-07-011-19/+13
| | | | | | | | | | | | This change fixes an error in comparing the existing schedule on the team to the new schedule, in the chunk field. Also added additional checks and used KMP_CHECK_UPDATE where appropriate. Patch by Terry Wilmarth. Differential Revision: http://reviews.llvm.org/D21897 llvm-svn: 274371
* Emit more intrinsics for builtin functionsMatt Arsenault2016-07-012-39/+184
| | | | | | | | | | | | This is important for building libclc. Since r273039 tests are failing due to now emitting calls to these functions instead of emitting the DAG node. The libm function names are implemented for OpenCL, and should call the locally defined versions, so -fno-builtin is used. The IR Some functions use the __builtins and expect the intrinsics to be emitted. Without this we end up with nobuiltin calls to intrinsics or to unsupported library calls. llvm-svn: 274370
* Improve performance of #pragma omp singleJonathan Peyton2016-07-011-2/+4
| | | | | | | | | | | | EPCC Performance of single is considerably worse than plain barrier. Adding a read-only check to the code before the atomic compare-and-store helps considerably. Patch by Terry Wilmarth. Differential Revision: http://reviews.llvm.org/D21893 llvm-svn: 274369
* Specify mtriple for the frame-order.ll test.Dehao Chen2016-07-011-5/+5
| | | | | | | | | | | | Summary: original test may have different bahavior on different bot, specifically it broke llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast Reviewers: majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21931 llvm-svn: 274368
* Revert r274347 "[ARM] Refactor Thumb2 mul instruction descs"Hans Wennborg2016-07-011-144/+327
| | | | | | This caused PR28387: Assertion "#operands for dag node doesn't match .td file!" llvm-svn: 274367
* Added support for thread local variables on all Apple OS variants.Greg Clayton2016-07-0123-80/+416
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had support that assumed that thread local data for a variable could be determined solely from the module in which the variable exists. While this work for linux, it doesn't work for Apple OSs. The DWARF for thread local variables consists of location opcodes that do something like: DW_OP_const8u (x) DW_OP_form_tls_address or DW_OP_const8u (x) DW_OP_GNU_push_tls_address The "x" is allowed to be anything that is needed to determine the location of the variable. For Linux "x" is the offset within the TLS data for a given executable (ModuleSP in LLDB). For Apple OS variants, it is the file address of the data structure that contains a pthread key that can be used with pthread_getspecific() and the offset needed. This fix passes the "x" along to the thread: virtual lldb::addr_t lldb_private::Thread::GetThreadLocalData(const lldb::ModuleSP module, lldb::addr_t tls_file_addr); Then this is passed along to the DynamicLoader::GetThreadLocalData(): virtual lldb::addr_t lldb_private::DynamicLoader::GetThreadLocalData(const lldb::ModuleSP module, const lldb::ThreadSP thread, lldb::addr_t tls_file_addr); This allows each DynamicLoader plug-in do the right thing for the current OS. The DynamicLoaderMacOSXDYLD was modified to be able to grab the pthread key from the data structure that is in memory and call "void *pthread_getspecific(pthread_key_t key)" to get the value of the thread local storage and it caches it per thread since it never changes. I had to update the test case to access the thread local data before trying to print it as on Apple OS variants, thread locals are not available unless they have been accessed at least one by the current thread. I also added a new lldb::ValueType named "eValueTypeVariableThreadLocal" so that we can ask SBValue objects for their ValueType and be able to tell when we have a thread local variable. <rdar://problem/23308080> llvm-svn: 274366
* Make extract_symbols.py be compatible with Python 3John Brawn2016-07-011-13/+21
| | | | | | | | This involved running 2to3 on it and adjusting all uses of subprocess to use universal_newlines=True so the output is text instead of binary. It remains compatible with Python 2.7. llvm-svn: 274365
* Skip TestDisassembleRawData when remoteFrancis Ricci2016-07-011-0/+1
| | | | | | | | | | | | | | | Summary: As this test will create a new target, it will cause all following tests to fail when running in platform mode, if the new target does not match the existing architecture (for example, x86 vs x86_64). Reviewers: zturner, spyffe, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D21906 llvm-svn: 274364
* CodeGen: Use MachineInstr& in RegisterCoalescer, NFCDuncan P. N. Exon Smith2016-07-011-38/+37
| | | | | | | Remove a few more implicit iterator to pointer conversions by preferring MachineInstr&. llvm-svn: 274363
* fix documentation comments; NFCSanjay Patel2016-07-011-13/+12
| | | | llvm-svn: 274362
* CodeGen: Avoid implicit conversions in TargetInstrInfo, NFCDuncan P. N. Exon Smith2016-07-011-2/+2
| | | | | | | Avoid implicit conversions from MachineBasicBlock::iterator to MachineInstr* in TargetInstrInfo. llvm-svn: 274361
* CodeGen: Use MachineInstr& in ScheduleDAGIntrs, NFCDuncan P. N. Exon Smith2016-07-011-43/+43
| | | | | | | | | | | | | Use MachineInstr& to avoid implicit conversions from MachineBasicBlock::iterator to MachineInstr*. In one case, this could use a range-based for loop, but the other loops iterated in reverse order. One of the reverse-loops checked the MachineInstr* for nullptr, a condition that is provably unreachable. (And even if my proof has a flaw, UBSan would catch the bug.) llvm-svn: 274360
* Revert r274348 and r274349 until the Windows failures are fixed.Vassil Vassilev2016-07-013-215/+45
| | | | llvm-svn: 274359
* Reapply "Define a module map entry for DebugInfo/CodeView."Adrian Prantl2016-07-012-1/+14
| | | | | | | | | This reapplies r274313 with two additional #include directives needed when submodule visibility is enabled. Fixes PR28384. llvm-svn: 274358
OpenPOWER on IntegriCloud