summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add more isl object printing functionsHongbin Zheng2016-02-202-0/+13
| | | | llvm-svn: 261402
* Assign meaningful name to MemoryAccess. NFCHongbin Zheng2016-02-202-1/+5
| | | | | | | Now the name of MemoryAccess is <StatementName>_[Read|Write|MayWrite]<Number>_<BaseName>, e.g. Stmt_for_body_4_Read0_MemRef_A llvm-svn: 261401
* fixing msvc warning.Mike Aizatsky2016-02-201-1/+2
| | | | llvm-svn: 261396
* [SCEV] Don't spell `SCEV *` variables as `Scev`; NFCSanjoy Das2016-02-201-4/+3
| | | | | | I missed a spot in rL261393. llvm-svn: 261395
* [SCEV] Don't spell `SCEV *` variables as `Scev`; NFCSanjoy Das2016-02-201-15/+14
| | | | | | | It reads odd since most other places name a `SCEV *` as `S`. Pure renaming change. llvm-svn: 261393
* [SCEV] Don't use std::make_pair; NFCSanjoy Das2016-02-201-15/+14
| | | | | | `{A, B}` reads cleaner than `std::make_pair(A, B)`. llvm-svn: 261392
* Work around GCC bug in .fail.cpp testsEric Fiselier2016-02-201-1/+7
| | | | llvm-svn: 261391
* [SimplifyCFG] Merge together cleanuppadsDavid Majnemer2016-02-202-2/+84
| | | | | | | | | | Cleanuppads may be merged together if one is the only predecessor of the other in which case a simple transform can be performed: replace the a cleanupret with a branch and remove an unnecessary cleanuppad. Differential Revision: http://reviews.llvm.org/D17459 llvm-svn: 261390
* Fix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in ↵Eugene Zelenko2016-02-208-309/+206
| | | | | | some files in source/Commands; other minor fixes. llvm-svn: 261389
* Remove a duplicate declaration specifier from _ReadBarrierDavid Majnemer2016-02-201-1/+0
| | | | | | This fixes PR26675. llvm-svn: 261388
* [X86ISelLowering] Fix TLSADDR lowering when shrink-wrapping is enabled.Davide Italiano2016-02-204-2/+99
| | | | | | | | | | TLSADDR nodes are lowered into actuall calls inside MC. In order to prevent shrink-wrapping from pushing prologue/epilogue past them (which result in TLS variables being accessed before the stack frame is set up), we put markers, so that the stack gets adjusted properly. Thanks to Quentin Colombet for guidance/help on how to fix this problem! llvm-svn: 261387
* AMDGPU/SI: Use v_readfirstlane to legalize SMRD with VGPR base pointerTom Stellard2016-02-205-252/+43
| | | | | | | | | | | | | | | | | | | | | | Summary: Instead of trying to replace SMRD instructions with a VGPR base pointer with an equivalent MUBUF instruction, we now copy the base pointer to SGPRs using v_readfirstlane. This is safe to do, because any load selected as an SMRD instruction has been proven to have a uniform base pointer, so each thread in the wave will have the same pointer value in VGPRs. This will fix some errors on VI from trying to replace SMRD instructions with addr64-enabled MUBUF instructions that don't exist. Reviewers: arsenm, cfang, nhaehnle Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D17305 llvm-svn: 261385
* [RegAllocFast] Properly track the physical register definitions on calls.Quentin Colombet2016-02-203-5/+35
| | | | | | PR26485 llvm-svn: 261384
* Fix PR26622 - Make CheckLibcxxAtomic.cmake use the libc++ headers.Eric Fiselier2016-02-201-2/+2
| | | | llvm-svn: 261383
* Make __wrap_iter work with GCC againEric Fiselier2016-02-203-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This bug was originally fixed in http://reviews.llvm.org/D7201. However it was broken again by the fix to https://llvm.org/bugs/show_bug.cgi?id=22605. This patch re-fixes __wrap_iter with GCC by providing a forward declaration of <vector> before the friend declaration in __wrap_iter. This patch avoids the issues in PR22605 by putting canonical forward declarations in <iosfwd> and including <iosfwd> in <vector>. <iosfwd> was chosen as the canonical forward declaration headers for the following reasons: 1. `<iosfwd>` is small with almost no dependancies. 2. It already forward declares `std::allocator` 3. It is already included in `<iterator>` which we need to fix the GCC bug. This patch fixes the test "gcc_workaround.pass.cpp" Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16345 llvm-svn: 261382
* Add stdbool.h wrapper for libc++Eric Fiselier2016-02-201-0/+39
| | | | | | | | | | | | | | | | | | Summary: According to the C++ standard <stdbool.h> isn't allowed to define `true` `false` or `bool`. However these macros are sometimes defined by the compilers `stdbool.h`. Clang defines the macros whenever `__STRICT_ANSI__` isn't defined (ie `-std=gnu++11`). New GCC versions define the macros in C++03 mode only, older GCC versions (4.9 and before) always define the macros. This patch adds a wrapper header for `stdbool.h` that undefs the required macros. Reviewers: mclow.lists, rsmith, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16346 llvm-svn: 261381
* [codeview] Fix emission of file changes in inline line tablesReid Kleckner2016-02-192-1/+113
| | | | | | These are supposed to be file checksum table offsets, not file ids. llvm-svn: 261379
* [CMake] Adding a CMake cache file that matches Apple's build configsChris Bieneman2016-02-191-0/+12
| | | | | | This should have no impact on anyone, but we're going to use it from GreenDragon to make our builders match what we ship. llvm-svn: 261377
* [sancov] use GetLoadedModules for list of modules rather than sanitizer's list.Mike Aizatsky2016-02-191-12/+33
| | | | llvm-svn: 261376
* [sancov] sanitizer html report cosmetic improvements.Mike Aizatsky2016-02-191-15/+25
| | | | llvm-svn: 261375
* Handle undef symbols in LTO.Rafael Espindola2016-02-194-1/+53
| | | | | | This also handles bc files is archives. llvm-svn: 261374
* [modules] Do less scanning of macro definition chains when computing the set ofRichard Smith2016-02-191-5/+20
| | | | | | | exported module macros outside local submodule visibility mode. Related to PR24667. llvm-svn: 261373
* [modules] Flatten -fmodule-name= and -fmodule-implementation-of= into a singleRichard Smith2016-02-1922-104/+67
| | | | | | | | | | | | option. Previously these options could both be used to specify that you were compiling the implementation file of a module, with a different set of minor bugs in each case. This change removes -fmodule-implementation-of, and instead tracks a flag to determine whether we're currently building a module. -fmodule-name now behaves the same way that -fmodule-implementation-of previously did. llvm-svn: 261372
* [X86ISelLowering] Provide a more informative assert message.Davide Italiano2016-02-191-1/+1
| | | | | | I stumbled upon this while debugging a lowering bug. llvm-svn: 261371
* [X86ISelLowering] Merge two conditions inside a single if.Davide Italiano2016-02-191-3/+1
| | | | llvm-svn: 261370
* Revert r255691 "[LoopVectorizer] Refine loop vectorizer's register usage ↵Hans Wennborg2016-02-193-178/+32
| | | | | | | | calculator by ignoring specific instructions." It caused PR26509. llvm-svn: 261368
* Revert r253557 "Alternative to long nops for X86 CPUs, by Andrey Turetsky"Hans Wennborg2016-02-192-33/+21
| | | | | | Turns out the new nop sequences aren't actually nops on x86_64 (PR26554). llvm-svn: 261365
* llvm-dwp: Improve performance (N^2 to amortized N) by using a MapVector ↵David Blaikie2016-02-191-39/+35
| | | | | | | | | | | | | | | instead of linear searches through a vector Figured this would be a problem, but didn't want to jump the gun - large inputs demonstrate it pretty easily (mostly for type units, but might as well do the same for CUs too). A random sample 6m27s -> 27s change. Also, by checking this up-front for CUs (rather than when building the cu_index) we can probably provide better error messages (see FIXMEs), hopefully providing the name of the CUs rather than just their signature. llvm-svn: 261364
* [sancov] requiring dynamic asan.Mike Aizatsky2016-02-191-1/+1
| | | | llvm-svn: 261362
* minor test runline cleanupXinliang David Li2016-02-192-2/+2
| | | | llvm-svn: 261361
* Fix incorrect selection of AVX512 sqrt when OptForSize is onDimitry Andric2016-02-192-1/+21
| | | | | | | | | | | | | | | | | | | | | | Summary: When optimizing for size, sqrt calls can be incorrectly selected as AVX512 VSQRT instructions. This is because X86InstrAVX512.td has a `Requires<[OptForSize]>` in its `avx512_sqrt_scalar` multiclass definition. Even if the target does not support AVX512, the class can apparently still be chosen, leading to an incorrect selection of `vsqrtss`. In PR26625, this lead to an assertion: Reg >= X86::FP0 && Reg <= X86::FP6 && "Expected FP register!", because the `vsqrtss` instruction requires an XMM register, which is not available on i686 CPUs. Reviewers: grosbach, resistor, joker.eph Subscribers: spatel, emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D17414 llvm-svn: 261360
* [StatepointLowering] Minor non-semantic cleanupsSanjoy Das2016-02-191-23/+18
| | | | | | Use auto, bring file up to coding standards etc. llvm-svn: 261358
* Fix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in ↵Eugene Zelenko2016-02-196-362/+250
| | | | | | some files in source/Commands; other minor fixes. llvm-svn: 261356
* Remove expectedFailureFreeBSD decoratorEd Maste2016-02-1919-26/+22
| | | | | | | | All invocations are updated to use the generic expectedFailureAll. Differential Revision: http://reviews.llvm.org/D17455 llvm-svn: 261355
* [WebAssembly] Add another optimization idea to README.txt.Dan Gohman2016-02-191-0/+6
| | | | llvm-svn: 261354
* Don't use an atexit handler for cleaning up the temp directory.Zachary Turner2016-02-193-16/+20
| | | | | | Differential Revision: http://reviews.llvm.org/D17420 llvm-svn: 261353
* [sancov] using static asanMike Aizatsky2016-02-191-1/+1
| | | | | | | We are not able to recover coverage points from dynamically linked binaries at this point without symbols in @plt tables. llvm-svn: 261352
* [OpenCL] Generate metadata for opencl_unroll_hint attributeAnastasia Stulova2016-02-1912-11/+269
| | | | | | | | | | | | | | | Add support for opencl_unroll_hint attribute from OpenCL v2.0 s6.11.5. Reusing most of metadata generation from CGLoopInfo helper class. The code is based on Khronos OpenCL compiler: https://github.com/KhronosGroup/SPIR/tree/spirv-1.0 Patch by Liu Yaxun (Sam)! Differential Revision: http://reviews.llvm.org/D16686 llvm-svn: 261350
* [AArch64][ShrinkWrap] Fix bug in prolog clobbering live reg when shrink ↵Geoff Berry2016-02-193-9/+152
| | | | | | | | | | | | | | wrapping. Summary: See bug https://llvm.org/bugs/show_bug.cgi?id=26642 Reviewers: qcolombet, t.p.northover Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D17350 llvm-svn: 261349
* [StatepointLowering] Update StatepointMaxSlotsRequired correctlySanjoy Das2016-02-191-3/+4
| | | | | | | | | | Now that we don't always add an element to AllocatedStackSlots if we don't find a pre-existing unallocated stack slot, bumping StatepointMaxSlotsRequired to `NumSlots + 1` is not correct. Instead bump the statistic near the push_back, to Builder.FuncInfo.StatepointStackSlots.size(). llvm-svn: 261348
* [StatepointLowering] Fix a mistake in rL261336Sanjoy Das2016-02-191-4/+5
| | | | | | | | The check on MFI->getObjectSize() has to be on the FrameIndex, not on the index of the FrameIndex in AllocatedStackSlots. Weirdly, the tests I added in rL261336 didn't catch this. llvm-svn: 261347
* [LV] Vectorize first-order recurrencesMatthew Simpson2016-02-194-6/+450
| | | | | | | | | | | | | | | | | | This patch enables the vectorization of first-order recurrences. A first-order recurrence is a non-reduction recurrence relation in which the value of the recurrence in the current loop iteration equals a value defined in the previous iteration. The load PRE of the GVN pass often creates these recurrences by hoisting loads from within loops. In this patch, we add a new recurrence kind for first-order phi nodes and attempt to vectorize them if possible. Vectorization is performed by shuffling the values for the current and previous iterations. The vectorization cost estimate is updated to account for the added shuffle instruction. Contributed-by: Matthew Simpson and Chad Rosier <mcrosier@codeaurora.org> Differential Revision: http://reviews.llvm.org/D16197 llvm-svn: 261346
* refactor/cleanup ClangExpressionParser::ParseEwan Crawford2016-02-191-33/+20
| | | | | | | | | | | | | | | This patches does the following: + fix return type: ClangExpressionParser::Parse returns unsigned, but was actually returning a signed value, num_errors. + use helper clang::TextDiagnosticBuffer::getNumErrors() instead of counting the errors ourself. + limit scoping of block-level automatic variables as much as practical. + remove reused multipurpose TextDiagnosticBuffer::const_iterator in favour of loop-scoped err, warn, and note variables in the diagnostic printing code. + refactor diagnostic printing loops to use a proper loop invariant. Author: Luke Drummond <luke.drummond@codeplay.com> Differential Revision: http://reviews.llvm.org/D17273 llvm-svn: 261345
* [PGO] Enable profile-rt testing on all supported targetsXinliang David Li2016-02-193-8/+43
| | | | | | Differential Revision: http://reviews.llvm.org/D17361 llvm-svn: 261344
* [Windows] Simplify more tests now that Clang supports EHReid Kleckner2016-02-192-85/+2
| | | | | | | Remove TestCases/Windows/throw_catch.cc, since it is redundant with the portable test TestCases/throw_catch.cc. llvm-svn: 261342
* Remove XFAIL from test passing on FreeBSDEd Maste2016-02-191-1/+0
| | | | | | | | | | | There is a report in the PR from several months ago that it failed intermittently, but it is passing consistently for me on FreeBSD 10 and 11. We can re-add a decorator if further testing shows it is still flakey. llvm.org/pr17214 llvm-svn: 261340
* Remove XFAIL from test passing on FreeBSDEd Maste2016-02-191-1/+0
| | | | | | | | This is passing for me consistently on FreeBSD 10 and FreeBSD 11. llvm.org/pr15989 llvm-svn: 261339
* [Windows] Add 10s timeout to some WaitForSingleObject callsReid Kleckner2016-02-193-13/+10
| | | | | | | | | | | | | | I ran the test suite yesterday and when I came back this morning the queue_user_work_item.cc test was hung. This could be why the sanitizer-windows buildbot keeps randomly timing out. I updated all the usages of WaitForSingleObject involving threading events. I'm assuming the API can reliably wait for subprocesses, which is what the majority of call sites use it for. While I'm at it, we can simplify some EH tests now that clang can compile C++ EH. llvm-svn: 261338
* [StatepointLowering] Change AllocatedStackSlots to use SmallBitVectorSanjoy Das2016-02-192-13/+15
| | | | | | | | | | | | | | | | | NFCI. They key motivation here is that I'd like to use SmallBitVector::all() in a later change. Also, using a bit vector here seemed better in general. The only interesting change here is that in the failure case of allocateStackSlot, we no longer (the equivalent of) push_back(true) to AllocatedStackSlots. As far as I can tell, this is fine, since we'd never re-use those slots in the same StatepointLoweringState instance. Technically there was no need to change the operator[] type accesses to set() and test(), but I thought it'd be nice to make it obvious that we're using something other than a std::vector like thing. llvm-svn: 261337
* [StatepointLowering] Fix bug in allocateStackSlotSanjoy Das2016-02-192-2/+58
| | | | | | | | | | | | | | | | | | | | | | | | | allocateStackSlot did not consider the size of the value to be spilled before deciding to re-use a spill slot. This was originally okay (since originally we'd only ever spill pointers), but it became not okay when we changed our scheme to directly spill vectors of pointers. While this change fixes the bug pointed out, it has two performance caveats: - It matches spill slot and spillee size exactly, while in theory we can spill, e.g., an 8 byte pointer into a 16 byte slot. This is slightly complicated to fix since in the stackmaps section, we report the size of the spill slot as the size of the "indirect value"; and if they're no longer equivalent, we'll have to keep track of the (indirect) value size separately from the stack slot size. - It will "spuriously run out" of reusable slots, since we now have an second check in the search loop in addition to the availablity check (e.g. you had two free scalar slots, and you first ask for a vector slot followed by a scalar slot). I'll fix this in a later commit. llvm-svn: 261336
OpenPOWER on IntegriCloud