summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Hexagon] Create global std::map lazily.Benjamin Kramer2016-07-021-3/+3
| | | | | | | | This could of course be a simple binary search with no global state involved at all if someone cares enough. Just don't make everyone linking the hexagon backend pay for it on process startup and shutdown. llvm-svn: 274437
* [X86][AVX512] Add support for lowering shuffles to MOVDDUP/MOVSLDUP/MOVSHDUPSimon Pilgrim2016-07-023-8/+23
| | | | llvm-svn: 274436
* [X86][AVX512] Add test cases that should lower to MOVSLDUP/MOVSHDUPSimon Pilgrim2016-07-021-1/+21
| | | | llvm-svn: 274435
* [X86][AVX512] Add fast-isel shuffle testsSimon Pilgrim2016-07-022-0/+737
| | | | | | Its not worth trying to write out tests for all the avx512f builtins yet, just adding tests for lowering of generic IR as we transition to it (shuffles mainly right now). llvm-svn: 274434
* [CUDA] Move argument type lists to the stack. NFC.Benjamin Kramer2016-07-021-4/+4
| | | | llvm-svn: 274433
* Use arrays or initializer lists to feed ArrayRefs instead of SmallVector ↵Benjamin Kramer2016-07-027-86/+53
| | | | | | | | where possible. No functionality change intended llvm-svn: 274432
* Use arrays or initializer lists to feed ArrayRefs instead of SmallVector ↵Benjamin Kramer2016-07-029-55/+28
| | | | | | | | where possible. No functionality change intended. llvm-svn: 274431
* Correct two typosTobias Grosser2016-07-021-2/+2
| | | | llvm-svn: 274430
* Remove duplicate declaration.Rui Ueyama2016-07-022-2/+1
| | | | llvm-svn: 274429
* Move getAddend to Relocations.h.Rui Ueyama2016-07-022-10/+10
| | | | | | | Because the function works on relocations, it should be in Relocations.h instead of OutputSections.h. llvm-svn: 274428
* CodegenCleanup: Drop CFLAA pass from codegen cleanup sequenceTobias Grosser2016-07-021-1/+0
| | | | | | | | | | | | Since r274197 -polly-position=before-vectorizer caused various LNT failures for example in SingleSource/Benchmarks/Linpack. These failures seem to only occur when the CFLAA pass is scheduled in our codegen-cleanup passes, which suggests that the way we call this AA pass is somehow problematic. As this pass is not of high importance, we drop the pass for now to prevent these failures from happening. At a later point, we might investigate more in-depth why this specific usage scenario caused correctness issues. llvm-svn: 274427
* Fix formatting. NFC.Rui Ueyama2016-07-021-2/+2
| | | | llvm-svn: 274426
* [X86] Replace 128-bit and 256 masked vpermilps/vpermilpd builtins with ↵Craig Topper2016-07-024-47/+48
| | | | | | native IR. llvm-svn: 274425
* Add unordered_map::insert benchmark test and rename fileEric Fiselier2016-07-022-29/+44
| | | | llvm-svn: 274424
* Improve performance of unordered_set<uint32_t>::find by 45%. Add benchmarks.Eric Fiselier2016-07-022-2/+33
| | | | | | | | | | | | | | | | This patch improves the performance of unordered_set's find by 45% when the value exists within the set. __hash_tables find method needs to check if it's reached the end of the bucket by constraining the hash of the current node and checking it against the bucket index. However constraining the hash is an expensive operations and it can be avoided if the two unconstrained hashes are equal. This patch applies that optimization. This patch also adds a top level directory called benchmarks. 'benchmarks/' is intended to store any/all benchmarks written for the standard library. Currently nothing is done with files under 'benchmarks/' but I would like to move towards introducing a formal format and test runner. llvm-svn: 274423
* Handle std::get<T>(...) for std::tuple<>Eric Fiselier2016-07-022-0/+8
| | | | llvm-svn: 274422
* [esan|cfrag] Add struct array access reportQin Zhao2016-07-022-19/+35
| | | | | | | | | | | | | | | Summary: Adds struct array access counter report. Updates test struct-simple.cpp. Reviewers: aizatsky Subscribers: vitalybuka, zhaoqin, kcc, eugenis, bruening, llvm-commits, kubabrecka Differential Revision: http://reviews.llvm.org/D21595 llvm-svn: 274421
* [esan|cfrag] Add counters for struct array accessesQin Zhao2016-07-023-72/+143
| | | | | | | | | | | | | | | | | Summary: Adds one counter to the struct counter array for counting struct array accesses. Adds instrumentation to insert counter update for struct array accesses. Reviewers: aizatsky Subscribers: llvm-commits, bruening, eugenis, kcc, zhaoqin, vitalybuka Differential Revision: http://reviews.llvm.org/D21594 llvm-svn: 274420
* Remove workarounds for C++17 inline variable ABI break. It has been fixed in ↵Eric Fiselier2016-07-022-11/+0
| | | | | | clang. llvm-svn: 274419
* Rewrite std::get<Type>(...) helper using constexpr functions.Eric Fiselier2016-07-026-120/+63
| | | | llvm-svn: 274418
* [SystemZ] Move misplaced SystemZ::TDC to non-memory opcode range.Marcin Koscielnicki2016-07-022-7/+7
| | | | llvm-svn: 274417
* PR28394: For compatibility with c++11 and c++14, if a static constexpr dataRichard Smith2016-07-024-4/+83
| | | | | | | | member is redundantly redeclared outside the class definition in code built in c++17 mode, ensure we emit a non-discardable definition of the data member for c++11 and c++14 compilations to use. llvm-svn: 274416
* Cleanup SFINAE in tuple, and add tests for reference assignmentEric Fiselier2016-07-023-30/+48
| | | | llvm-svn: 274414
* Make tuple_constructible and family lazy again.Eric Fiselier2016-07-022-3/+111
| | | | llvm-svn: 274413
* Add RenderScript ArchTypePirama Arumuga Nainar2016-07-022-117/+137
| | | | | | | | | | | | | | | | Summary: Add renderscript32 and renderscript64 ArchTypes. This is to configure the ABI requirement on 32-bit RenderScript that 'long' types have 64-bit size and alignment. 64-bit RenderScript is the same as AArch64, but is added here for completeness. Reviewers: echristo, rsmith Subscribers: aemerson, jfb, rampitec, dschuff, mehdi_amini, llvm-commits, srhines Differential Revision: http://reviews.llvm.org/D21333 llvm-svn: 274412
* [PM] Port ConstantHoisting to the new Pass ManagerMichael Kuperstein2016-07-027-136/+204
| | | | | | Differential Revision: http://reviews.llvm.org/D21945 llvm-svn: 274411
* [codeview] Set the Nested and Scoped ClassOptions based on the scope chainReid Kleckner2016-07-024-18/+43
| | | | | | These are set on both the declaration record and the definition record. llvm-svn: 274410
* Add TargetInfo for 32-bit and 64-bit RenderScriptPirama Arumuga Nainar2016-07-022-0/+66
| | | | | | | | | | | | | | | | | | | Summary: The TargetInfo for 'renderscript32' and 'renderscript64' ArchTypes are subclasses of ARMleTargetInfo and AArch64leTargetInfo respectively. RenderScript32TargetInfo modifies the ARM ABI to set LongWidth and LongAlign to be 64-bits. Other than this modification, the underlying TargetInfo base classes is initialized as if they have "armv7" and "aarch64" architecture type respectively. Reviewers: rsmith, echristo Subscribers: aemerson, tberghammer, cfe-commits, danalbert, mehdi_amini, srhines Differential Revision: http://reviews.llvm.org/D21334 llvm-svn: 274409
* 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
OpenPOWER on IntegriCloud