summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AVX512] Add patterns to implement stores of extracts of least signficant ↵Craig Topper2016-05-222-1/+340
| | | | | | | | subvectors using XMM or YMM stores instead of the vector extract instructions. Similar is already done for AVX and we had lost it going to AVX512VL. llvm-svn: 270383
* Refactor EHOutputSection.Rui Ueyama2016-05-225-145/+154
| | | | | | | | | | | | | | This patch refactors EHOutputSection using SectionPiece struct. EHRegion class was removed since we can now directly use SectionPiece. An incomplete support of large CIE/FDE record (> 2^32 bytes) was removed because it silently created broken executable. There are several places in the existing code that "size" field is always 4 bytes and at offset 4 in the record, which is not true for 64-bit size records. We will have to support that in future, but it is better to error out instead of creating malformed eh_frame sections. llvm-svn: 270382
* [Kaleidoscope] Fix static global ordering to prevent crash on exit.Lang Hames2016-05-225-5/+5
| | | | | | | If TheModule is declared before LLVMContext then it will be destructed after it, crashing when it tries to deregister itself from the destructed context. llvm-svn: 270381
* [driver][mips] Follow-up to r270373. Add missed folder.Simon Atanasyan2016-05-221-0/+0
| | | | llvm-svn: 270380
* [X86][SSE] Added extra i8 extract element testSimon Pilgrim2016-05-221-0/+20
| | | | llvm-svn: 270379
* [x86, AVX] don't add a vzeroupper if that's what the code is already doing ↵Sanjay Patel2016-05-223-6/+6
| | | | | | | | | | | | | | | (PR27823) This isn't the complete fix, but it handles the trivial examples of duplicate vzero* ops in PR27823: https://llvm.org/bugs/show_bug.cgi?id=27823 ...and amusingly, the bogus cases already exist as regression tests, so let's take this baby step. We'll need to do more in the general case where there's legitimate AVX usage in the function + there's already a vzero in the code. Differential Revision: http://reviews.llvm.org/D20477 llvm-svn: 270378
* SymbolFile: remove an unused variableSaleem Abdulrasool2016-05-221-2/+1
| | | | | | Address a -Wunused-but-set-variable warning from gcc. NFC. llvm-svn: 270377
* [sanitizer] Don't use -fomit-frame-pointer in COMPILER_RT_DEBUG=On buildsKuba Brecka2016-05-221-1/+3
| | | | | | | | Using -fomit-frame-pointer sometimes makes a crash log miss some frames. Let's not use this optimization in debug builds. Differential Revision: http://reviews.llvm.org/D20425 llvm-svn: 270376
* [x86, AVX] add test file to show vzeroupper pass excessesSanjay Patel2016-05-221-0/+43
| | | | llvm-svn: 270375
* [driver][mips] clang-format the code. NFCSimon Atanasyan2016-05-221-27/+27
| | | | llvm-svn: 270374
* [driver][mips] Support new versions of MIPS CodeScape toolchainsSimon Atanasyan2016-05-22265-6/+938
| | | | llvm-svn: 270373
* reduce indent; NFCSanjay Patel2016-05-221-19/+19
| | | | llvm-svn: 270372
* [profile] initialize static pool properly Xinliang David Li2016-05-225-13/+20
| | | | | | | Remove dependency on runtime initializer to avoid issues related to initialization order. llvm-svn: 270371
* use 'auto' with 'dyn_cast'; fix formatting; NFCSanjay Patel2016-05-221-10/+8
| | | | llvm-svn: 270370
* [ValueTracking, InstCombine] extend isKnownToBeAPowerOfTwo() to handle ↵Sanjay Patel2016-05-224-13/+8
| | | | | | | | | | | | | | vector splat constants We could try harder to handle non-splat vector constants too, but that seems much rarer to me. Note that the div test isn't resolved because there's a check for isIntegerTy() guarding that transform. Differential Revision: http://reviews.llvm.org/D20497 llvm-svn: 270369
* [driver][mips] Use target triple mips-mti-linux-gnu for toolchain detectionSimon Atanasyan2016-05-222-117/+119
| | | | llvm-svn: 270368
* [driver][mips] Rename some variables to better reflect their purpose. NFCSimon Atanasyan2016-05-221-8/+9
| | | | llvm-svn: 270367
* [driver][mips] Drop support for outdated version of CodeSourcery MIPS toolchainSimon Atanasyan2016-05-22180-752/+1
| | | | llvm-svn: 270366
* Reword ThreadSanitizer messages to use a lowercase 't' in thread names when ↵Kuba Brecka2016-05-221-5/+5
| | | | | | in the middle of a sentence. llvm-svn: 270365
* Reword ThreadSanitizer message for invalid mutex reports.Kuba Brecka2016-05-222-2/+2
| | | | llvm-svn: 270364
* A better fix of incorrectly used locking in HistoryThread and HistoryUnwind.Kuba Brecka2016-05-222-2/+2
| | | | llvm-svn: 270363
* Revert r270358 ("Fix an incorrectly used locking in HistoryThread and ↵Kuba Brecka2016-05-222-2/+4
| | | | | | HistoryUnwind"). llvm-svn: 270359
* Fix an incorrectly used locking in HistoryThread and HistoryUnwind, where ↵Kuba Brecka2016-05-222-4/+2
| | | | | | unique_lock's release() was called causing the mutex to stay locked. llvm-svn: 270358
* [AVX512] Implement missing patterns for any_extend load lowering.Igor Breger2016-05-223-55/+158
| | | | | | Differential Revision: http://reviews.llvm.org/D20513 llvm-svn: 270357
* [AVX512] The AVX512 file only need subtract_subvector index 0 patterns where ↵Craig Topper2016-05-221-15/+35
| | | | | | the source is 512-bits. The 256-bit source patterns were redundant with AVX. llvm-svn: 270356
* [AVX512] Add an AddedComplexity line to the 512-bit insert_subvector undef ↵Craig Topper2016-05-222-14/+16
| | | | | | index 0 patterns. This gives them higher priority than the memory patterns. This matches AVX1/2. llvm-svn: 270355
* [AVX512] Change the AddedComplexity on some patterns to match their AVX/SSE ↵Craig Topper2016-05-221-9/+13
| | | | | | equivalents. This helps group them close together in the isel tables and enable table compression. llvm-svn: 270354
* [AST] Cleanup comments regarding CXXRecordDecl::isEmptyDavid Majnemer2016-05-222-11/+15
| | | | | | | | | We were missing references to the standard, some of our home-grown verbiage didn't make any sense. No functional change is intended. llvm-svn: 270353
* Driver: sink getLinuxDynamicLoader into the ToolchainSaleem Abdulrasool2016-05-223-70/+72
| | | | | | | | The parameter already requires the toolchain, sink the method into the class. This also enables the use of the distro detection logic which will be needed to support Exherbo's multiarch approach. llvm-svn: 270352
* Driver: simplify getDynameLinkerSaleem Abdulrasool2016-05-221-47/+49
| | | | | | | | Convert the cascading if/else to a switch. This makes it easier to follow the logic. Minor difference is that we no longer default to x86_64 but rather to the architecture specified by the architecture. llvm-svn: 270351
* bug fix: trim section specifier name lengthXinliang David Li2016-05-221-2/+2
| | | | llvm-svn: 270350
* bug fix: trim section specifier name lengthXinliang David Li2016-05-221-2/+2
| | | | llvm-svn: 270349
* Store section contents to SectionPiece. NFC.Rui Ueyama2016-05-223-16/+20
| | | | | | So that we don't need to cut a slice when we use a SectionPiece. llvm-svn: 270348
* Use StringPiece::Size instead of calculating it again. NFC.Rui Ueyama2016-05-221-28/+10
| | | | llvm-svn: 270347
* Simplify SplitInputSection::getRangeAndSize.Rui Ueyama2016-05-225-20/+17
| | | | | | | | This patch adds Size member to SectionPiece so that getRangeAndSize can just return a SectionPiece instead of a std::pair<SectionPiece *, uint_t>. Also renamed the function. llvm-svn: 270346
* [X86] Add a common check-prefix to both run lines on a test so identical ↵Craig Topper2016-05-221-361/+168
| | | | | | checks appear just once. llvm-svn: 270345
* [AVX512] Add a couple patterns to fix some cases where two vector mask ↵Craig Topper2016-05-222-12/+15
| | | | | | inversions could appear in a row. llvm-svn: 270344
* [AVX512] Remove seemingly unnecessary AddedComplexity adjustment.Craig Topper2016-05-221-2/+0
| | | | llvm-svn: 270343
* Use slightly longer names. NFC.Rui Ueyama2016-05-222-55/+56
| | | | | | | We generally prefer short names, but this code went probably a bit too far. This patch renames single letter local/member varables. llvm-svn: 270342
* Use ArrayRef<uint8_t> for binary data instead of StringRef. NFC.Rui Ueyama2016-05-222-6/+6
| | | | llvm-svn: 270341
* Define SectionPiece and use it instead of std::pair<uint_t, uint_t>.Rui Ueyama2016-05-225-76/+56
| | | | | | | | | | | | | We were using std::pair to represents pieces of splittable section contents. It hurt readability because "first" and "second" are not meaningful. This patch give them names. One more thing is that piecewise liveness information is stored to the second element of the pair as a special value of output section offset. It was confusing, so I defiend a new bit, "Live", in the new struct. llvm-svn: 270340
* Fix a typo (darwin only)Xinliang David Li2016-05-211-1/+1
| | | | llvm-svn: 270339
* Fix typoXinliang David Li2016-05-212-2/+2
| | | | llvm-svn: 270338
* [profile] Static counter allocation for value profiling (part-2)Xinliang David Li2016-05-2111-24/+136
| | | | | | Differential Revision: http://reviews.llvm.org/D20460 llvm-svn: 270337
* [profile] Static counter allocation for value profiling (part-1)Xinliang David Li2016-05-215-13/+161
| | | | | | Differential Revision: http://reviews.llvm.org/D20459 llvm-svn: 270336
* [X86] Remove unnecessary alignment check on patterns that use VEXTRACTF128 ↵Craig Topper2016-05-211-8/+8
| | | | | | for integer types when only AVX1 is supported. llvm-svn: 270335
* [AVX512] Add patterns for extracting subvectors and storing to memory.Craig Topper2016-05-214-16/+99
| | | | llvm-svn: 270334
* [AVX512] Capitalize the Z in VEXTRACTPSzmr. Lowercase z has been primarily ↵Craig Topper2016-05-211-2/+2
| | | | | | used to indicating the zero masking behavior which is not the case here. NFC llvm-svn: 270333
* [AVX512] Rename vector extract instructions so 'mr' intead of 'rm' to ↵Craig Topper2016-05-211-2/+2
| | | | | | reflect the fact that memory is the destination. llvm-svn: 270332
* [AVX512] Fix copy/paste mistake a I made in a comment.Craig Topper2016-05-211-1/+1
| | | | llvm-svn: 270331
OpenPOWER on IntegriCloud