summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [AVX512] Fix intrinsic vcvtps2ph lowering.Igor Breger2016-05-312-8/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D20788 llvm-svn: 271255
* Fix intrinsic vbroadcast{i32|f32}x2 lowering.Igor Breger2016-05-313-37/+46
| | | | | | Differential Revision: http://reviews.llvm.org/D20780 llvm-svn: 271254
* [AVX512] Remove masked store intrinsics. Clang now emits generic masked ↵Craig Topper2016-05-312-30/+66
| | | | | | | | store intrinsics instead. The intrinsics will be autoupgraded to the same generic masked stores. llvm-svn: 271245
* X86: permit using SjLj EH on x86 targets as an optionSaleem Abdulrasool2016-05-316-1/+284
| | | | | | | | | | | This adds support to the backed to actually support SjLj EH as an exception model. This is *NOT* the default model, and requires explicitly opting into it from the frontend. GCC supports this model and for MinGW can still be enabled via the `--using-sjlj-exceptions` options. Addresses PR27749! llvm-svn: 271244
* [X86] Remove SSE/AVX unaligned store intrinsics as clang no longer uses ↵Craig Topper2016-05-304-75/+17
| | | | | | them. Auto upgrade to native unaligned store instructions. llvm-svn: 271236
* [X86] Simplify and remove some unnecessary auto-upgrade code.Craig Topper2016-05-301-10/+2
| | | | llvm-svn: 271233
* [X86] Reduce the number of string compares in the autoupgrade logic by ↵Craig Topper2016-05-301-41/+17
| | | | | | checking more prefixes instead of complete matches. llvm-svn: 271232
* Fix a crash when producing COFF.Rafael Espindola2016-05-301-0/+2
| | | | llvm-svn: 271229
* [BPF] Remove exit-on-error from tests (PR27768, PR27769)Diana Picus2016-05-301-1/+5
| | | | | | | | | | | The exit-on-error flag is necessary to avoid some assertions/unreachables. We can get past them by creating a few dummy nodes. Fixes PR27768, PR27769. Differential Revision: http://reviews.llvm.org/D20726 llvm-svn: 271200
* [IndVars] Assert that the incoming IR is in LCSSASanjoy Das2016-05-301-0/+3
| | | | | | | | | | | Since we already assert that the outgoing IR is in LCSSA, it is easy to get misled into thinking that -indvars broke LCSSA if the incoming IR is non-LCSSA. Checking this pre-condition will make such cases break in more obvious ways. Inspired by (but does _not_ fix) PR26682. llvm-svn: 271196
* [IndVarSimplify] Extract the logic of `-indvars` out into a class; NFCSanjoy Das2016-05-292-52/+58
| | | | | | This will be used later to port IndVarSimplify to the new pass manager. llvm-svn: 271190
* [libFuzzer] fix a use-after-free (!) in libFuzzer caused by r270905: that CL ↵Kostya Serebryany2016-05-292-5/+8
| | | | | | caused a push_back in the main corpus invalidating the vector<> iterators in rare cases. llvm-svn: 271186
* Remove some 'const' specifiers that do nothing but prevent moving the argument.Benjamin Kramer2016-05-294-4/+4
| | | | | | | Found by clang-tidy's misc-move-const-arg. While there drop some obsolete c_str() calls. llvm-svn: 271181
* [ProfileData] Clean up string handling a bit.Benjamin Kramer2016-05-293-13/+11
| | | | llvm-svn: 271180
* [X86] Simplify some of the autoupgrade code. NFCCraig Topper2016-05-291-61/+38
| | | | llvm-svn: 271174
* Make sure we don't add an empty string to the stringmapDavid Majnemer2016-05-291-1/+2
| | | | llvm-svn: 271172
* [IR] Teach the ArrayRef<int> form of IRBuilder::CreateShuffleVector to use ↵Craig Topper2016-05-291-0/+5
| | | | | | | | ConstantDataVector. This will be used in a follow up commit to simplify code in clang that creates a ConstantDataVector and calls the other form. llvm-svn: 271164
* Add RelaxELFRelocations to TargetOptions.h.Rafael Espindola2016-05-291-0/+2
| | | | | | It will be used in clang. llvm-svn: 271161
* Move RelaxELFRel out to llvm-mc.Rafael Espindola2016-05-291-6/+0
| | | | llvm-svn: 271160
* [PM] Reassociate: cache analyses more aggressively.Davide Italiano2016-05-291-2/+7
| | | | | | While here, add a FIXME for setPreserveCFG(). llvm-svn: 271159
* [SCEV] Consolidate comments; NFCSanjoy Das2016-05-291-240/+86
| | | | | | | Consolidate documentation by removing comments from the .cpp file where the comments in the .cpp file were copy-pasted from the header. llvm-svn: 271157
* [SCEV] Rename functions to LLVM style; NFCSanjoy Das2016-05-291-13/+13
| | | | llvm-svn: 271156
* [IndVars] Eliminate op.with.overflow when possible (re-apply)Sanjoy Das2016-05-291-0/+107
| | | | | | | | | | | | | | | | | | | Summary: If we can prove that an op.with.overflow intrinsic does not overflow, we can get rid of the intrinsic, and replace it with non-wrapping arithmetic. This was first checked in at r265913 but reverted in r265950 because it exposed some issues around how SCEV handled post-inc add recurrences. Those issues have now been fixed. Reviewers: atrick, regehr Subscribers: sanjoy, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D18685 llvm-svn: 271153
* [SCEV] See through op.with.overflow intrinsics (re-apply)Sanjoy Das2016-05-292-5/+110
| | | | | | | | | | | | | | | | | | | Summary: This change teaches SCEV to see reduce `(extractvalue 0 (op.with.overflow X Y))` into `op X Y` (with a no-wrap tag if possible). This was first checked in at r265912 but reverted in r265950 because it exposed some issues around how SCEV handled post-inc add recurrences. Those issues have now been fixed. Reviewers: atrick, regehr Subscribers: mcrosier, mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D18684 llvm-svn: 271152
* [SCEV] Don't always add no-wrap flags to post-inc add recsSanjoy Das2016-05-291-7/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes PR27315. The post-inc version of an add recurrence needs to "follow the same rules" as a normal add or subtract expression. Otherwise we miscompile programs like ``` int main() { int a = 0; unsigned a_u = 0; volatile long last_value; do { a_u += 3; last_value = (long) ((int) a_u); if (will_add_overflow(a, 3)) { // Leave, and don't actually do the increment, so no UB. printf("last_value = %ld\n", last_value); exit(0); } a += 3; } while (a != 46); return 0; } ``` This patch changes SCEV to put no-wrap flags on post-inc add recurrences only when the poison from a potential overflow will go ahead to cause undefined behavior. To avoid regressing performance too much, I've assumed infinite loops without side effects is undefined behavior to prove poison<->UB equivalence in more cases. This isn't ideal, but is not new to LLVM as a whole, and far better than the situation I'm trying to fix. llvm-svn: 271151
* [ValueTracking] ICmp instructions propagate poisonSanjoy Das2016-05-291-0/+5
| | | | | | | This is a stripped down version of D19211, leaving out the questionable "branching in poison is UB" bit. llvm-svn: 271150
* [PM] SCCP should preserve GlobalsAA even if the IR is mutated.Davide Italiano2016-05-291-1/+4
| | | | llvm-svn: 271149
* [SymbolDumper] Validate the string table offset before using itDavid Majnemer2016-05-281-6/+6
| | | | llvm-svn: 271145
* [SymbolDumper] Validate the string table offset before using itDavid Majnemer2016-05-281-5/+6
| | | | llvm-svn: 271142
* [Object] Return an error code instead of assertingDavid Majnemer2016-05-281-4/+4
| | | | | | This makes it easier to report errors up the stack. llvm-svn: 271140
* [X86][SSE] (Reapplied) Replace (V)PMOVSX and (V)PMOVZX integer extension ↵Simon Pilgrim2016-05-283-65/+12
| | | | | | | | | | | | intrinsics with generic IR (llvm) This patch removes the llvm intrinsics VPMOVSX and (V)PMOVZX sign/zero extension intrinsics and auto-upgrades to SEXT/ZEXT calls instead. We already did this for SSE41 PMOVSX sometime ago so much of that implementation can be reused. Reapplied now that the the companion patch (D20684) removes/auto-upgrade the clang intrinsics has been committed. Differential Revision: http://reviews.llvm.org/D20686 llvm-svn: 271131
* Tighten some of the name map checks furtherDavid Majnemer2016-05-281-1/+5
| | | | llvm-svn: 271130
* ValueMapper: fix assertion when null-mapping a constant for linking metadataMehdi Amini2016-05-281-3/+17
| | | | | | | | | | | | | | | | Summary: When RF_NullMapMissingGlobalValues is set, mapValue can return null for GlobalValue. When mapping the operands of a constant that is referenced from metadata, we need to handle this case and actually return null instead of mapping this constant. Reviewers: dexonsmith, rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D20713 llvm-svn: 271129
* Fix production of R_X86_64_GOTPCRELX/R_X86_64_REX_GOTPCRELX.Rafael Espindola2016-05-285-31/+70
| | | | | | | | We were producing R_X86_64_GOTPCRELX for invalid instructions and sometimes producing R_X86_64_GOTPCRELX instead of R_X86_64_REX_GOTPCRELX. llvm-svn: 271118
* [x86] avoid printing unnecessary sign bits of hex immediates in asm comments ↵Sanjay Patel2016-05-281-4/+13
| | | | | | | | | | | (PR20347) It would be better to check the valid/expected size of the immediate operand, but this is generally better than what we print right now. Differential Revision: http://reviews.llvm.org/D20385 llvm-svn: 271114
* [X86] Try to zero elts when lowering 256-bit shuffle with PSHUFB.Ahmed Bougacha2016-05-281-35/+66
| | | | | | | | Otherwise we fallback to a blend of PSHUFBs later on. Differential Revision: http://reviews.llvm.org/D19661 llvm-svn: 271113
* Simplify and clang-format a table.Rafael Espindola2016-05-281-5/+5
| | | | llvm-svn: 271112
* Fix default reloc model on ARM.Rafael Espindola2016-05-281-2/+2
| | | | llvm-svn: 271111
* [MC] Return early when .fill size is negativePetr Hosek2016-05-281-1/+1
| | | | | | | | | Rather than invoking emitFill with negative size, which may trigger an undefined behavior, return immediately after emitting the warning. Differential Revision: http://reviews.llvm.org/D20768 llvm-svn: 271107
* Bounds check the number of bitmap blocks in the name mapDavid Majnemer2016-05-281-0/+10
| | | | llvm-svn: 271105
* Make sure the directory contains info for all streamsDavid Majnemer2016-05-281-3/+8
| | | | llvm-svn: 271103
* [MC] Support symbolic expressions in assembly directivesPetr Hosek2016-05-284-34/+102
| | | | | | | | | This matches the behavior of GNU assembler which supports symbolic expressions in absolute expressions used in assembly directives. Differential Revision: http://reviews.llvm.org/D20752 llvm-svn: 271102
* [pdb] Finish conversion to zero copy pdb access.Zachary Turner2016-05-2810-89/+45
| | | | | | | | | | | | | | This converts remaining uses of ByteStream, which was still left in the symbol stream and type stream, to using the new StreamInterface zero-copy classes. RecordIterator is finally deleted, so this is the only way left now. Additionally, more error checking is added when iterating the various streams. With this, the transition to zero copy pdb access is complete. llvm-svn: 271101
* Revert "Revert "Map DynamicNoPIC to Static on non-darwin.""Renato Golin2016-05-281-0/+5
| | | | | | | | This reverts commit r271096, as reverting it broke even more buildbots! But that also means I'll break on ARM again... :( llvm-svn: 271099
* Add a comment about why we need to buffer the attribute changes.Sean Silva2016-05-281-0/+3
| | | | llvm-svn: 271097
* Revert "Map DynamicNoPIC to Static on non-darwin."Renato Golin2016-05-281-5/+0
| | | | | | This reverts commit r271052, as it broke some ARM buildbots. llvm-svn: 271096
* [libFuzzer] fix a failure that occurs when running individual inputsKostya Serebryany2016-05-281-0/+1
| | | | llvm-svn: 271095
* Small cleanup.Sean Silva2016-05-281-6/+6
| | | | | | | Centralize assertion. Clean up max loop. llvm-svn: 271094
* Inline this into its only use. NFC.Sean Silva2016-05-281-10/+5
| | | | | | | The name was out of date at this point and it seems simple enough to have in-line. llvm-svn: 271093
* Bring back r271090 in a way that doesn't depend on r271089.Sean Silva2016-05-281-0/+1
| | | | llvm-svn: 271092
OpenPOWER on IntegriCloud