summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add -iframeworkwithsysroot compiler optionAlex Lorenz2017-03-133-0/+9
| | | | | | | | | | | | | This commit adds support for a new -iframeworkwithsysroot compiler option which allows the user to specify a framework path that can be prefixed with the sysroot. This option is similar to the -iwithsysroot option that exists to supplement -isystem. rdar://21316352 Differential Revision: https://reviews.llvm.org/D30183 llvm-svn: 297614
* [compiler-rt][builtins] Ignore the deprecated warning forAlex Lorenz2017-03-131-1/+5
| | | | | | CFPropertyListCreateFromXMLData that's used in __isOSVersionAtLeast llvm-svn: 297613
* Fix android buildPavel Labath2017-03-132-2/+2
| | | | | | | | | | | | | | getpwent is not available on android until API level 21, and even then it is only available when doing a non-static link. Since android's concept of users is very different from linux, it's doubtful the home directory resolution would be useful, so I approximate this state by just not using getpwent on android. We've had another getpwent occurance in FileSpec for a while -- it wasn't causing problems because it was stripped out by the linker, but I disable that also, for consistency's sake. llvm-svn: 297612
* [AArch64] Map Sched Read/Write resources for Falkor.Balaram Makam2017-03-131-1/+183
| | | | llvm-svn: 297611
* [LV] Set memcheck metadata also for VF==1Gil Rapaport2017-03-131-5/+1
| | | | | | | | This commit is a follow-up on r297580. It fixes the FIXME added temporarily by that commit to keep the removal of Unroller's specialized version of scalarizeInstruction() an NFC. See https://reviews.llvm.org/D30715 for details. llvm-svn: 297610
* Fix Linux build for the FileSpec changesPavel Labath2017-03-133-36/+43
| | | | | | | Propagate changes that were made during review, and fix a couple of warnings while I'm in there. llvm-svn: 297609
* ARMDisassembler: loop over ARM decode tablesSjoerd Meijer2017-03-131-57/+20
| | | | | | | | | Loop over the ARM decode tables; this is a clean-up to reduce some code duplication. Differential Revision: https://reviews.llvm.org/D30814 llvm-svn: 297608
* clang-format: [JS] do not wrap @see tags.Martin Probst2017-03-132-2/+10
| | | | | | | | | | | | | | | Summary: @see is special among JSDoc tags in that it is commonly followed by URLs. The JSDoc spec suggests that users should wrap URLs in an additional {@link url...} tag (@see http://usejsdoc.org/tags-see.html), but this is very commonly violated, with @see being followed by a "naked" URL. This change special cases all JSDoc lines that contain an @see not to be wrapped to account for that. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D30883 llvm-svn: 297607
* clang-format: [JS] allow breaking after non-null assertions.Martin Probst2017-03-133-5/+28
| | | | | | | | | | | | | | | | Summary: Previously clang-format would not break after any !. However in TypeScript, ! can be used as a post fix operator for non-nullability: x.foo()!.bar()!; With this change, clang-format will wrap after the ! if it is likely a post-fix non null operator. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D30705 llvm-svn: 297606
* clang-format: [JS] do not wrap after interface and type.Martin Probst2017-03-132-5/+18
| | | | | | | | | | | | | | | | | | | | | Summary: `interface` and `type` are pseudo keywords and cause automatic semicolon insertion when followed by a line break: interface // gets parsed as a long variable access to "interface" VeryLongInterfaceName { } With this change, clang-format not longer wraps after `interface` or `type`. Reviewers: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D30874 llvm-svn: 297605
* AMDGPU/RelocVisitor: Handle R_AMDGPU_ABS64Konstantin Zhuravlyov2017-03-131-0/+7
| | | | | | | | Test is in the separate patch. Differential Revision: https://reviews.llvm.org/D30027 llvm-svn: 297604
* [AVX-512] Add EVEX2VEX test cases for the cvt instructions fixed in r297599 ↵Craig Topper2017-03-131-0/+20
| | | | | | and r297600. llvm-svn: 297603
* Revert "[AVX-512] EVEX2VEX, don't reject intrinsic instructions when both ↵Craig Topper2017-03-132-7/+6
| | | | | | | | | | have a memory operand. We should just continue to check other operands instead." This reverts r297596. There were other issues that were making this not work that have been fixed now. Reverting this results in a more accurate table. llvm-svn: 297602
* [AVX-512] Add VEX_WIG to VEX vcvtsd2ss/vcvtss2sd intrinsic instructions so ↵Craig Topper2017-03-131-8/+8
| | | | | | they can be correctly matched by EVEX2VEX table generation. llvm-svn: 297601
* [AVX-512] Use sse_loadf32/f64 for vcvtss2sd and vcvtsd2ss intrinsic patterns.Craig Topper2017-03-131-3/+2
| | | | llvm-svn: 297600
* [AVX-512] Use sse_load_f64/f32 in VCVTSS2SI/VCVTSD2SI patterns.Craig Topper2017-03-131-10/+10
| | | | llvm-svn: 297599
* Use LLVM for file / directory enumeration.Zachary Turner2017-03-135-257/+48
| | | | | | | | | | FileSpec::EnumerateDirectory has a bunch of platform-specific gunk in it for posix and non-posix platforms. We can get rid of all this by using LLVM's easy-to-use directory iterators. Differential Revision: https://reviews.llvm.org/D30807 llvm-svn: 297598
* Resubmit "Make file / directory completion work properly on Windows."Zachary Turner2017-03-137-166/+613
| | | | | | This fixes the compilation failures with the original patch. llvm-svn: 297597
* [AVX-512] EVEX2VEX, don't reject intrinsic instructions when both have a ↵Craig Topper2017-03-132-6/+7
| | | | | | | | memory operand. We should just continue to check other operands instead. This exposed that we have several intrinsic instructions that have identical TSFlags to other instructions. We should merge their patterns and kill of the duplicate. I'll fix that in a follow up patch. llvm-svn: 297596
* [X86] Minor formatting tweaks in EVEX to VEX tables. NFCCraig Topper2017-03-131-45/+45
| | | | llvm-svn: 297595
* [X86] Remove unused SDTypeProfile. NFCCraig Topper2017-03-121-2/+0
| | | | llvm-svn: 297594
* [X86] Lower SSE/AVX cmpps/pd intrinsics directly to X86ISD::CMPP SDNodes.Craig Topper2017-03-123-46/+17
| | | | | | This allows us to remove a duplicate set of patterns. llvm-svn: 297593
* Allow the nonnull attribute to be inherited as a parameter in the ↵Aaron Ballman2017-03-122-1/+8
| | | | | | | | redefinition of a function. Fixes PR30828. Patch by Matt Bettinson. llvm-svn: 297592
* [AVX-512] Fix the valid immediates for the scatter/gather prefetch intrinsics.Craig Topper2017-03-122-6/+7
| | | | | | The immediate should be 1 or 2, not 0 or 1. This was found while adding bounds checking to clang. In fact the existing clang builtin test failed if we ran it all the way to assembly. llvm-svn: 297591
* [AVX-512] Add range check for locality hint immediate on scatter/gather ↵Craig Topper2017-03-121-0/+10
| | | | | | prefetch builtins. llvm-svn: 297590
* Revert "Make file / directory completion work properly on Windows."Zachary Turner2017-03-127-613/+166
| | | | | | | | | This reverts commit a6a29374662716710f80c8ece96629751697841e. It has a few compilation failures that I don't have time to fix at the moment. llvm-svn: 297589
* [x86] these aren't the undefs you're looking for (PR32176)Sanjay Patel2017-03-1210-110/+115
| | | | | | | | | | | | | x86 has undef SSE/AVX intrinsics that should represent a bogus register operand. This is not the same as LLVM's undef value which can take on multiple bit patterns. There are better solutions / follow-ups to this discussed here: https://bugs.llvm.org/show_bug.cgi?id=32176 ...but this should prevent miscompiles with a one-line code change. Differential Revision: https://reviews.llvm.org/D30834 llvm-svn: 297588
* [ScheduleOptimizer] Allow tiling after fusionTobias Grosser2017-03-122-8/+169
| | | | | | | | | | | | | | | | | | | | | | | In ScheduleOptimizer::isTileableBand(), allow the case in which the band node's child is an isl_schedule_sequence_node and its grandchildren isl_schedule_leaf_nodes. This case can arise when two or more statements are fused by the isl scheduler. The tile_after_fusion.ll test has two statements in separate loop nests and checks whether they are tiled after being fused when polly-opt-fusion equals "max". Reviewers: grosser Subscribers: gareevroman, pollydev Tags: #polly Contributed-by: Theodoros Theodoridis <theodort@student.ethz.ch> Differential Revision: https://reviews.llvm.org/D30815 llvm-svn: 297587
* [x86] don't blindly transform SETB into SBBSanjay Patel2017-03-1216-191/+220
| | | | | | | | | | | | | | | | | | | | I noticed unnecessary 'sbb' instructions in D30472 and while looking at 'ptest' codegen recently. This happens because we were transforming any 'setb' - even when we only wanted a single-bit result. This patch moves those transforms under visitAdd/visitSub, so we we're only creating sbb/adc when it is a win. I don't know why we need a SETCC_CARRY node type, but I'm not proposing to change that existing behavior in this patch. Also, I'm skeptical that sbb/adc are a win for all micro-arches, so I added comments to the test files where this transform still fires. The test changes here are all cases where we no longer produce sbb/adc. Avoiding partial register stalls (generating an xor to clear a register) is not handled in some cases, but that's a separate issue. Differential Revision: https://reviews.llvm.org/D30611 llvm-svn: 297586
* Make file / directory completion work properly on Windows.Zachary Turner2017-03-127-166/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a couple of problems with this function on Windows. Different separators and differences in how tilde expressions are resolved for starters, but in addition there was no clear indication of what the function's inputs or outputs were supposed to be, and there were no tests to demonstrate its use. To more easily paper over the differences between Windows paths, non-Windows paths, and tilde expressions, I've ported this function to use LLVM-based directory iteration (in fact, I would like to eliminate all of LLDB's directory iteration code entirely since LLVM's is cleaner / more efficient (i.e. it invokes fewer stat calls)). and llvm's portable path manipulation library. Since file and directory completion assumes you are referring to files and directories on your local machine, it's safe to assume the path syntax properties of the host in doing so, so LLVM's APIs are perfect for this. I've also added a fairly robust set of unit tests. Since you can't really predict what users will be on your machine, or what their home directories will be, I added an interface called TildeExpressionResolver, and in the unit test I've mocked up a fake implementation that acts like a unix password database. This allows us to configure some fake users and home directories in the test, so we can exercise all of those hard-to-test codepaths that normally otherwise depend on the host. Differential Revision: https://reviews.llvm.org/D30789 llvm-svn: 297585
* [AVX-512] Fix avx512vl gather builtins to require the scale argument to be ↵Craig Topper2017-03-121-16/+16
| | | | | | an ICE like the rest of the gather builtins. llvm-svn: 297584
* [LVI] Add Datalayout to the class LazyValueInfo since all its Impls require ↵Anna Thomas2017-03-122-4/+6
| | | | | | it. NFC llvm-svn: 297583
* Remove CRC32 instructions from AArch64InstrInfo::hasShiftedRegAzharuddin Mohammed2017-03-122-8/+1
| | | | | | | | | | | | | | | | | | | | | | | Summary: A53 scheduler causes an assertion failure on all CRC instructions: include/llvm/CodeGen/MachineInstr.h:280: const llvm::MachineOperand &llvm::MachineInstr::getOperand(unsigned int) const: Assertion `i < getNumOperands() && "getOperand() out of range!"' failed. The case statements corresponding to CRC instructions are incorrect and should be removed. Also adding a testcase while on this. Reviewers: t.p.northover, javed.absar, apazos, rengolin Reviewed By: rengolin Subscribers: evandro, aemerson, llvm-commits, rengolin Differential Revision: https://reviews.llvm.org/D30274 llvm-svn: 297582
* [X86] Add vector zext tests.Igor Breger2017-03-123-0/+215
| | | | llvm-svn: 297581
* [LV] A unified scalarizeInstruction() for Vectorizer and Unroller; NFCGil Rapaport2017-03-121-66/+8
| | | | | | | | | | | | | | | | Unroller's specialized scalarizeInstruction() is mostly duplicating Vectorizer's variant. OTOH Vectorizer's scalarizeInstruction() already supports the special case of VF==1 except for avoiding mask-bit extraction in that case. This patch removes Unroller's specialized version in favor of a unified method. The only functional difference between the two variants seems to be setting memcheck metadata for loads and stores only in Vectorizer's variant, which is a bug in Unroller. To keep this patch an NFC the unified method doesn't set memcheck metadata for VF==1. Differential Revision: https://reviews.llvm.org/D30715 llvm-svn: 297580
* Test commit.Ayal Zaks2017-03-121-0/+1
| | | | llvm-svn: 297579
* Possible error in doc commentTobias Grosser2017-03-121-1/+1
| | | | | | | | | | | | | | | | | If a SCoP is most probably sequential, then it's better to run it on a CPU. Hence, there's no point in running it on a GPU. Reviewers: grosser Subscribers: nemanjai Tags: #polly Contributed-by: Singapuram Sanjay <singapuram.sanjay@gmail.com> Differential Revision: https://reviews.llvm.org/D30864 llvm-svn: 297578
* [isl++] Add missing /* implicit */ markerTobias Grosser2017-03-121-1/+1
| | | | llvm-svn: 297577
* Split NewGVN class into a legacy pass and an impl, instead of a merged class.Daniel Berlin2017-03-123-84/+88
| | | | llvm-svn: 297576
* Add documentation on debug counters to Programmers Manual.Daniel Berlin2017-03-121-0/+63
| | | | | | | | | | Reviewers: mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30842 llvm-svn: 297575
* [AVX-512] Fix a bad use of a high GR8 register after copying from a mask ↵Craig Topper2017-03-123-5/+24
| | | | | | | | | | register during fast isel. This ends up extracting from bits 15:8 instead of the lower bits of the mask. I'm pretty sure there are more problems lurking here. But I think this fixes PR32241. I've added the test case from that bug and added asserts that will fail if we ever try to copy between high registers and mask registers again. llvm-svn: 297574
* [AVX-512] Add test case for PR32241. Fix coming in another commit.Craig Topper2017-03-121-0/+97
| | | | llvm-svn: 297573
* [AVX-512] Remove unused field in X86VectorVTInfo tablegen class.Craig Topper2017-03-121-7/+0
| | | | llvm-svn: 297572
* Revert "[Builtin] Implement lit-test support"Weiming Zhao2017-03-11195-335/+7
| | | | | | | Due to test failure of check-builtins for aarch64 and armhf. This reverts commit r297566. llvm-svn: 297569
* [X86][SSE] Improve extraction of elements from v16i8 (pre-SSE41)Simon Pilgrim2017-03-113-46/+54
| | | | | | | | | | | | Without SSE41 (pextrb) we currently extract byte elements from a vector by spilling to stack and reloading the byte. This patch is an initial attempt at using MOVD/PEXTRW to extract the relevant DWORD/WORD from the vector and then shift+truncate to collect the correct byte. Extraction of multiple bytes this way would result in code bloat, but as explained in the patch we could probably afford to be more aggressive with the supported extractions before again falling back on spilling - possibly through counting the number of extracts and which DWORD/WORD they originate? Differential Revision: https://reviews.llvm.org/D29841 llvm-svn: 297568
* Remove unnecessary whitespace.Simon Pilgrim2017-03-111-7/+1
| | | | llvm-svn: 297567
* [Builtin] Implement lit-test supportWeiming Zhao2017-03-11195-7/+335
| | | | | | | | | | | | | | | | | | | Summary: This patch implements a initial support of lit test for builtins. Unit/arm/call_apsr.S is updated to support thumb1. It also fixes a bug in arm/aeabi_uldivmod_test.c gcc_personality_test is XFAILED as the framework cannot handle it so far. cpu_model_test is also XFAILED for now as it is expected to return non-zero. Reviewers: rengolin, compnerd, jroelofs, erik.pilkington, arphaman Reviewed By: jroelofs Subscribers: jroelofs, aemerson, srhines, nemanjai, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D30802 llvm-svn: 297566
* Fix signed/unsigned comparison warningSimon Pilgrim2017-03-111-1/+1
| | | | llvm-svn: 297565
* [X86] Add avx2 gather tests cases that show a failure to remove zeroing of ↵Craig Topper2017-03-111-0/+52
| | | | | | the source when the mask is all ones. llvm-svn: 297564
* [X86] Remove unnecessary commented out code. NFCCraig Topper2017-03-111-1/+0
| | | | llvm-svn: 297563
OpenPOWER on IntegriCloud