summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PGO] eliminate use of static variableXinliang David Li2016-01-223-63/+71
| | | | llvm-svn: 258486
* Use "_$" prefix instead of "$" for dynamic checker function inserted by LLDB ↵Bhushan D. Attarde2016-01-221-2/+2
| | | | | | | | | | | | | | | during expression evaluation SUMMARY: The symbol "$" has a special meaning for MIPS i.e it is marker for temporary symbols for MIPS. So this patch uses additional _ prefix for "$__lldb_valid_pointer_check" so that it wont be marked as temporary symbol in case of MIPS. Reviewers: clayborg, spyffe Subscribers: dean, emaste, mohit.bhakkad, sagar, jaydeep, lldb-commits Differential http://reviews.llvm.org/D14111 llvm-svn: 258485
* NFC WebAssembly: update linksJF Bastien2016-01-221-2/+2
| | | | | | I got a vanity URL, and moved the github waterfall repo. llvm-svn: 258484
* [SelectionDAG] Fold more offsets into GlobalAddressesDan Gohman2016-01-228-86/+855
| | | | | | | | This reapplies r258296 and r258366, and also fixes an existing bug in SelectionDAG.cpp's isMemSrcFromString, neglecting to account for the offset in a GlobalAddressSDNode, which is uncovered by those patches. llvm-svn: 258482
* [opaque pointer types] [NFC] Fix fallout from DataLayout::getIndexedOffset ↵Eduard Burtescu2016-01-221-3/+5
| | | | | | changes (rL258478). llvm-svn: 258481
* Replace Type::getInt32Ty() and comparison by isIntegerTy(32). NFC.Manuel Jacob2016-01-221-3/+1
| | | | llvm-svn: 258480
* Revert r258473 as it's breaking the build with libc++Ivan Krasin2016-01-224-57/+17
| | | | | | | | Reviewers: kcc Differential Revision: http://reviews.llvm.org/D16441 llvm-svn: 258479
* [opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source ↵Eduard Burtescu2016-01-225-32/+27
| | | | | | | | | | | | | | element type instead of pointer type and rename to getIndexedOffsetInType. Summary: Reviewers: mjacob, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16282 llvm-svn: 258478
* [opaque pointer types] [NFC] FindAvailableLoadedValue: take LoadInst instead ↵Eduard Burtescu2016-01-225-8/+8
| | | | | | | | | | | | of just the pointer. Reviewers: mjacob, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16422 llvm-svn: 258477
* [Docs] Slightly update LSan documentation.Alexey Samsonov2016-01-222-15/+50
| | | | llvm-svn: 258476
* [opaque pointer types] [NFC] gep_type_{begin,end} now take source element ↵Eduard Burtescu2016-01-223-11/+8
| | | | | | | | | | | | type and address space. Reviewers: mjacob, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16436 llvm-svn: 258474
* Use std::piecewise_constant_distribution instead of ad-hoc binary search.Ivan Krasin2016-01-224-17/+57
| | | | | | | | | | | | | | | | | | Summary: Fix the issue with the most recently discovered unit receiving much less attention. Note: I had to change the seed for one test to make it pass. Alternatively, the number of runs could be increased. I believe that the average time of 'foo' discovery is not increased, just seed=1 was particularly convenient for the previous PRNG scheme used. Reviewers: aizatsky, kcc Subscribers: llvm-commits, kcc Differential Revision: http://reviews.llvm.org/D16419 llvm-svn: 258473
* [opaque pointer types] [NFC] Add an explicit type argument to ↵Eduard Burtescu2016-01-227-29/+29
| | | | | | | | | | | | ConstantFoldLoadFromConstPtr. Reviewers: mjacob, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16418 llvm-svn: 258472
* Do not lower VSETCC if operand is an f16 vectorPirama Arumuga Nainar2016-01-223-0/+361
| | | | | | | | | | | | | | | | | Summary: SETCC with f16 vectors has OperationAction set to Expand but still gets lowered to FCM* intrinsics based on its result type. This patch skips lowering of VSETCC if the operand is an f16 vector. v4 and v8 tests included. Reviewers: ab, jmolloy Subscribers: srhines, llvm-commits Differential Revision: http://reviews.llvm.org/D15361 llvm-svn: 258471
* [OpenMP] Sema for depend clause on target enter data directive.Arpith Chacko Jacob2016-01-223-2/+232
| | | | | | | | | | | Summary: Accept depend clause on target enter data directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16400 llvm-svn: 258466
* Revert "[SelectionDAG] Fold more offsets into GlobalAddresses"Reid Kleckner2016-01-227-828/+84
| | | | | | | | | | | | | | This reverts r258296 and the follow up r258366. With this change, we miscompiled the following program on Windows: #include <string> #include <iostream> static const char kData[] = "asdf jkl;"; int main() { std::string s(kData + 3, sizeof(kData) - 3); std::cout << s << '\n'; } llvm-svn: 258465
* [libFuzzer] don't do expensive memmem if the result will not be usedKostya Serebryany2016-01-221-0/+2
| | | | llvm-svn: 258462
* [analyzer] Suppress nullability warning for defensive super initializer idiom.Devin Coughlin2016-01-222-5/+84
| | | | | | | | | | | | | | | A common idiom in Objective-C initializers is for a defensive nil-check on the result of a call to a super initializer: if (self = [super init]) { ... } return self; To avoid warning on this idiom, the nullability checker now suppress diagnostics for returns of nil on syntactic 'return self' even in initializers with non-null return types. llvm-svn: 258461
* [OpenMP] Sema for depend clause on target directive.Arpith Chacko Jacob2016-01-223-0/+103
| | | | | | | | | | | Summary: Accept depend clause on target directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16375 llvm-svn: 258460
* [OpenMP] Parsing + Sema for nowait clause on target exit data directive.Arpith Chacko Jacob2016-01-223-0/+82
| | | | | | | | | | | Summary: Accept nowait clause on target exit data directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16362 llvm-svn: 258459
* [ThinLTO] Do metadata linking during batch function importingTeresa Johnson2016-01-222-29/+7
| | | | | | | | | | | | | | | | | | | | Summary: Since we are currently not doing incremental importing there is no need to link metadata as a postpass. The module linker will only link in the imported subroutines due to the functionality added by r256003. (Note that the metadata postpass linking functionalitiy is still used by llvm-link, and may be needed here in the future if a more incremental strategy is adopted.) Reviewers: joker.eph Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D16424 llvm-svn: 258458
* [OpenMP] Parsing + Sema for nowait clause on target enter data directive.Arpith Chacko Jacob2016-01-223-0/+82
| | | | | | | | | | | Summary: Accept nowait clause on target enter data directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16361 llvm-svn: 258457
* [opaque pointer types] [NFC] Take advantage of get{Source,Result}ElementType ↵Eduard Burtescu2016-01-211-45/+58
| | | | | | | | | | | | | | when folding GEPs. Summary: Reviewers: mjacob, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16302 llvm-svn: 258456
* move function definitions so we don't need separate declarations ; NFCISanjay Patel2016-01-211-67/+63
| | | | llvm-svn: 258455
* .clang-tidy for sanitizer package to override root llvm styleMike Aizatsky2016-01-211-0/+12
| | | | | | | | | | Summary: sanitizer-common follows Google code style, override clang-tidy config. Differential Revision: http://reviews.llvm.org/D16373 llvm-svn: 258449
* Fix TestImport.py to work with Python 3.5.Adrian McCarthy2016-01-211-2/+4
| | | | | | Differential Revision: http://reviews.llvm.org/D16431 llvm-svn: 258448
* [MSVC Compat] Don't omit frame pointers if /Oy- is specified before /O2David Majnemer2016-01-212-1/+6
| | | | | | | | | Microsoft's documentation states that specifying /Oy- after the /O[12x] options disables frame-pointer omission. What it does *not* state is that it also disables frame-pointer omission if /Oy- is specified before /O[12x]. llvm-svn: 258447
* [LibCallSimplifier] refactor FP function signature checks ; NFCISanjay Patel2016-01-211-60/+24
| | | | | | | | | Use the helper function added in r258428. The check should really be hoisted to the caller of all of these optimize* functions, but that's another step. llvm-svn: 258446
* avoid variable shadowing; NFCSanjay Patel2016-01-211-2/+2
| | | | llvm-svn: 258445
* remove unnecessary variable; NFCSanjay Patel2016-01-211-2/+1
| | | | llvm-svn: 258444
* Always try to read DW_TAG_typedef types from DWO files first if we can. Greg Clayton2016-01-211-1/+24
| | | | | | | | | | | | | | | A lot of C code uses code like: typedef struct { int a; } FooType; This creates debug info with an anonymous struct (a DW_TAG_structure_type with no DW_AT_name) and then a DW_TAG_typedef that points to the anonymous structure type. When a typedef is from a module and clang uses -gmodules and -fmodules, then we can end up trying to resolve an anonymous structure type in a DWO symbol file. This doesn't work very well when the structuture has no name, so we now check if a typedef comes from a module, and we directly resolve the typedef type in the module and copy it over. The version we copy from the module of course is correctly able to find the structure in the DWO symbol file, so this fixes the issues we run into. <rdar://problem/24092915> llvm-svn: 258443
* Avoid unnecessary stack realignment in musttail thunks with SSE2 enabledReid Kleckner2016-01-213-2/+12
| | | | | | | | | | | The X86 musttail implementation finds register parameters to forward by running the calling convention algorithm until a non-register location is returned. However, assigning a vector memory location has the side effect of increasing the function's stack alignment. We shouldn't increase the stack alignment when we are only looking for register parameters, so this change conditionalizes it. llvm-svn: 258442
* [OpenMP] Parsing + Sema for nowait clause on target directiveArpith Chacko Jacob2016-01-213-0/+31
| | | | | | | | | | | Summary: Allow nowait clause on target directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16358 llvm-svn: 258441
* [X86][SSE] Improve i16 splatting shufflesSimon Pilgrim2016-01-2110-212/+189
| | | | | | | | | | | | Better handling of the annoying pshuflw/pshufhw ops which only shuffle lower/upper halves of a vector. Added vXi16 unary shuffle support for cases where i16 elements (from the same half of the source) are being splatted to the whole of one of the halves. This avoids the general lowering case which must shuffle the 32-bit elements first - meaning that we used to end up with unnecessary duplicate pshuflw/pshufhw shuffles. Note this has the side effect of a lot of SSSE3 test cases no longer needing to use PSHUFB, as it falls below the 3 op combine threshold for when PSHUFB is typically worth it. I've raised PR26183 to discuss if the threshold should be changed and whether we need to make it more specific to the target CPU. Differential Revision: http://reviews.llvm.org/D14901 llvm-svn: 258440
* In test-release.sh, only run `uname -s` once. NFC.Dimitry Andric2016-01-211-3/+4
| | | | llvm-svn: 258439
* [RuntimeDyld][AArch64] Add support for the MachO ARM64_RELOC_SUBTRACTOR reloc.Lang Hames2016-01-212-1/+58
| | | | llvm-svn: 258438
* Resubmit test case with more restrictionXinliang David Li2016-01-214-0/+58
| | | | | | | | The original submittion triggered a BFD linker bug (2.24) on Aarch64 only. Before the build bot is upgraded to more recent linker, restrict the test to be executed only with gold linker. llvm-svn: 258437
* Let test-release.sh checkout subprojects directly into the target tree,Dimitry Andric2016-01-211-43/+23
| | | | | | | | | | | | | | | | | | | | | instead of using symlinks Summary: In the past I have run into several problems with the way `test-release.sh` creates all the subproject directories as siblings, and then uses symlinks to stitch them all together. In some scenarios this leads to clang not being able to find header files, etc. This patch changes the script so it directly exports into the correct target locations for each subproject. Reviewers: hans Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D16420 llvm-svn: 258436
* Fix for two constant propagation problems in GVN with the assume intrinsicDavid L Kreitzer2016-01-214-5/+46
| | | | | | | | | | instruction. Patch by Yuanrui Zhang. Differential Revision: http://reviews.llvm.org/D16100 llvm-svn: 258435
* Fix MachOObjectFile::getSymbolSection() to not call report_fatal_error()Kevin Enderby2016-01-213-5/+20
| | | | | | | | | but to return object_error::parse_failed.  Then made the code in llvm-nm do for Mach-O files what is done in the darwin native tools which is to print "(?,?)" or just "s" for bad section indexes. Also added a test to show it prints the bad section index of "42" when printing the fields as raw hex. llvm-svn: 258434
* NFC. Corrects name of test class and a comment.Adrian McCarthy2016-01-211-2/+2
| | | | llvm-svn: 258433
* Remove assumptions that thread 0 is always the main thread.Zachary Turner2016-01-2118-147/+72
| | | | | | | | | | | | | | | | | Starting with Windows 10, the Windows loader is itself multi-threaded, meaning that the loader spins up a few threads to do process initialization before it executes main. Windows delivers these notifications asynchronously and they can come out of order, so we can't be sure that the first thread we get a notification about is actually the zero'th thread. This patch fixes this by requesting the thread stopped at the breakpoint that was specified, rather than getting thread 0 and verifying that it is stopped at a breakpoint. Differential Revision: http://reviews.llvm.org/D16247 llvm-svn: 258432
* ELF: Move code to emit copyrel to one place. NFC.Rui Ueyama2016-01-211-9/+11
| | | | | | | | | In this code, we avoid calling needsCopyRel in writeTo because we called that function already in scanRelocs. Making the same decision twice is a waste and has a risk of a bug that we get inconsistent resuts. llvm-svn: 258430
* Add CalculateSymbolSizes in ObjectFilePECOFF::GetSymtab to ensure that ↵Adrian McCarthy2016-01-211-0/+1
| | | | | | | | | | (nearly) all the symbols have sizes. This fixes the `thread step-over` regression exposed by http://reviews.llvm.org/D16186 , which depends on the symbols having actual sizes. Nine tests on Windows had started failing as a result. They all work again with this fix. Differential Revision: http://reviews.llvm.org/D16415 llvm-svn: 258429
* [LibCallSimplifier] don't get fooled by a fake fmin()Sanjay Patel2016-01-212-9/+45
| | | | | | | | | | | | | | | | This is similar to the bug/fix: https://llvm.org/bugs/show_bug.cgi?id=26211 http://reviews.llvm.org/rL258325 The fmin() test case reveals another bug caused by sloppy code duplication. It will crash without this patch because fp128 is a valid floating-point type, but we would think that we had matched a function that used doubles. The new helper function can be used to replace similar checks that are used in several other places in this file. llvm-svn: 258428
* Style change. NFC.Rui Ueyama2016-01-211-28/+24
| | | | llvm-svn: 258427
* [driver] Enable some static analyzer "unix" checkers on Windows.Devin Coughlin2016-01-211-2/+11
| | | | | | | | | | | | Many of the "unix" checkers are not actually unix-specific and would be valuable to run on Windows. This commit explicitly enables those checkers on Windows. A patch by Alexander Riccio! Differential Revision: http://reviews.llvm.org/D16245 llvm-svn: 258426
* [OpenMP] Check for at least one map clause on target data directive.Arpith Chacko Jacob2016-01-215-49/+62
| | | | | | | | | | | | | | Summary: Adds the following restriction in the OpenMP specifications. OpenMP [2.10.1, Restrictions, p. 97] At least one map clause must appear on the directive. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16341 llvm-svn: 258425
* [Coverage] Reduce complexity of adding function mapping recordsVedant Kumar2016-01-212-4/+7
| | | | | | | | | | Replace a string append operation in addFunctionMappingRecord with a vector append. The existing behavior is quadratic in the worst case: this patch makes it linear. Differential Revision: http://reviews.llvm.org/D16395 llvm-svn: 258424
* Fix buildbot failure due to r258420Rong Xu2016-01-211-0/+1
| | | | | | Include the needed headfile to fix the buildbot failure due to r258420 [PGO] Passmanagerbuilder change that enable IR level PGO instrumentation. llvm-svn: 258423
OpenPOWER on IntegriCloud