summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Don't set reserved bits in the immediate in the test cases for vperm2f128.Craig Topper2017-09-161-6/+6
| | | | | | I'm going to autoupgrade these intrinsics in a future commit. This bit will never be set in the resulting output so pre-removing the bit. llvm-svn: 313434
* [X86] Remove slash in front of a CHECK line in a test.Craig Topper2017-09-161-1/+1
| | | | llvm-svn: 313433
* [ubsan] Update ubsan_interface.incVitaly Buka2017-09-161-0/+2
| | | | llvm-svn: 313432
* Revert "Fix Bug 30978 by emitting cv file checksums."Eric Beckmann2017-09-1616-310/+81
| | | | | | | | | | | This reverts commit 6389e7aa724ea7671d096f4770f016c3d86b0d54. There is a bug in this implementation where the string value of the checksum is outputted, instead of the actual hex bytes. Therefore the checksum is incorrect, and this prevent pdbs from being loaded by visual studio. Revert this until the checksum is emitted correctly. llvm-svn: 313431
* [WebAssembly] Restore __builtin_wasm_rethrow builtinHeejin Ahn2017-09-163-0/+11
| | | | | | | | | | | | | | | | Summary: Restore the `__builtin_wasm_rethrow` builtin deleted in D37931. On second thought, it appears it can be used to implement `__cxa_rethrow`. Reviewers: dschuff, sunfish Reviewed By: dschuff Subscribers: jfb, sbc100, jgravelle-google Differential Revision: https://reviews.llvm.org/D37942 llvm-svn: 313430
* Revert lit changes related to lit.llvm module.Zachary Turner2017-09-166-172/+157
| | | | | | | | It looks like this is going to be non-trivial to get working in both Py2 and Py3, so for now I'm reverting until I have time to fully test it under Python 3. llvm-svn: 313429
* [lit] Fix another Python 3 error.Zachary Turner2017-09-161-1/+8
| | | | | | | Apparently we have a buildbot running Python 3. This is going to be fun :-/ llvm-svn: 313428
* [lit] Better check for integral value.Zachary Turner2017-09-161-1/+2
| | | | | | | Some versions of python don't have 'long'. Use numbers.Number instead. llvm-svn: 313427
* Resubmit "[lit] Add a lit.llvm module that all llvm projects can use"Zachary Turner2017-09-166-157/+164
| | | | | | | This was reverted alongside the revert of the lit/llvm-lit refactor, but now that that has re-landed, I'm relanding this as well. llvm-svn: 313426
* [docs] add Windows examples to ThinLTO.rstBob Haarman2017-09-161-5/+21
| | | | | | | | | | | | Reviewers: pcc, ruiu Reviewed By: ruiu Subscribers: mehdi_amini, eraman, cfe-commits Differential Revision: https://reviews.llvm.org/D37943 llvm-svn: 313425
* [X86] Remove usages of vperm2f intrinsics from fast isel tests to match what ↵Craig Topper2017-09-152-4/+4
| | | | | | clang generates after r313418. llvm-svn: 313424
* Try to fix check-asan.Peter Collingbourne2017-09-151-0/+1
| | | | llvm-svn: 313423
* [llvm-cov] Fix a bot failure due to r313417Vedant Kumar2017-09-151-3/+3
| | | | | | | | | There's a type mismatch issue with the arguments to a call to std::min introduced in r313417. http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15/builds/11174 llvm-svn: 313422
* [libFuzzer] add linux-specific test for gc-sectionsKostya Serebryany2017-09-152-0/+27
| | | | llvm-svn: 313421
* [X86] Remove GCCBuiltin names from perm2f128/perm2i128 intrinsics so we can ↵Craig Topper2017-09-151-4/+3
| | | | | | provide a custom implementation in clang. llvm-svn: 313420
* llvm-dwarfdump: Add support for -debug-info=<offset>.Adrian Prantl2017-09-155-59/+151
| | | | | | | | | This is the first of many commits that enable selectively dumping just one record from the debug info. This reapplies r313412 with some extra qualification to appease GCC and MSVC. llvm-svn: 313419
* [X86] Use native shuffle vector for the perm2f128 intrinsicsCraig Topper2017-09-153-5/+44
| | | | | | | | | | This patch replaces the perm2f128 intrinsics with native shuffle vectors. This uses a pretty simple approach to allocate source 0 to the lower half input and source 1 to the upper half input. Then its just a matter of filling in the indices to use either the lower or upper half of that specific source. This can result in the same source being used by both operands. InstCombine or SelectionDAGBuilder should be able to clean that up. Differential Revision: https://reviews.llvm.org/D37892 llvm-svn: 313418
* [llvm-cov] Avoid over-counting covered lines and regionsVedant Kumar2017-09-159-8/+109
| | | | | | | | | | | | | | | | * Fix an unsigned integer overflow in the logic that computes the number of uncovered lines in a function. * When aggregating region and line coverage summaries, take into account that different instantiations may have a different number of regions. The new test case provides test coverage for both bugs. I also verified this change by preparing a coverage report for a stage2 build of llc -- the new assertions should detect any outstanding over-counting bugs. Fixes PR34613. llvm-svn: 313417
* [llvm-cov] Make some summary info fields private. NFC.Vedant Kumar2017-09-155-51/+74
| | | | | | | | There's a bug in the way the line and region summary objects are merged. It would have been less likely to occur if those objects kept some data private. llvm-svn: 313416
* [llvm-cov] Remove a redundant field. NFC.Vedant Kumar2017-09-154-22/+15
| | | | | | | | | | The "NotCovered" fields in the region and line summary structs are redundant. We should remove them to make the code clearer. As a follow-up, the "NotCovered" entries should be removed from the reports as well. llvm-svn: 313415
* Revert r303378: Set IMAGE_DLL_CHARACTERISTICS_NO_BIND.Rui Ueyama2017-09-155-10/+13
| | | | | | | | | | r303378 was submitted because r303374 (Merge IAT and ILT) made lld's output incompatible with the Binding feature. Now that r303374 was reverted, we do not need to keep this change. Pointed out by pcc. llvm-svn: 313414
* Revert "llvm-dwarfdump: Add support for -debug-info=<offset>."Adrian Prantl2017-09-155-147/+59
| | | | | | This reverts commit r313412 because of a g++ incompatibility. llvm-svn: 313413
* llvm-dwarfdump: Add support for -debug-info=<offset>.Adrian Prantl2017-09-155-59/+147
| | | | | | | This is the first of many commits that enable selectively dumping just one record from the debug info. llvm-svn: 313412
* [libFuzzer] test fixKostya Serebryany2017-09-151-1/+1
| | | | llvm-svn: 313411
* [TargetTransformInfo] Static alloca has 0 costGuozhi Wei2017-09-152-0/+13
| | | | | | | | Static alloca usually doesn't generate any machine instructions, so it has 0 cost. Differential Revision: https://reviews.llvm.org/D37879 llvm-svn: 313410
* [SLP] Revert r312791 and other necessary commits, except for TTI andChandler Carruth2017-09-153-2068/+1231
| | | | | | | | | | | | | | | | | | | | | | | | | | CostModel. The original patch added support for horizontal min/max reductions to the SLP vectorizer. This patch causes LLVM to miscompile fairly simple signed min reductions. I have attached a test progrom to http://llvm.org/PR34635 that shows the behavior change after this patch. We found this in a test for the open source Eigen library, but also in other code. Unfortunately, the revert is moderately challenging. It required reverting: r313042: [SLP] Test with multiple uses of conditional op and wrong parent. r312853: [SLP] Fix buildbots, NFC. r312793: [SLP] Fix the warning about paths not returning the value, NFC. r312791: [SLP] Support for horizontal min/max reduction. And even then, I had to completely skip reverting the changes to TTI and CostModel because r312832 rewrote so much of this code. Plus, the cost modeling changes aren implicated in the miscompile, so they should be fine and will just not be used until this gets re-introduced. llvm-svn: 313409
* Remove redundant parentheses.Rui Ueyama2017-09-151-1/+1
| | | | llvm-svn: 313408
* Resubmit "[lit] Force site configs to run before source-tree configs"Zachary Turner2017-09-1524-801/+254
| | | | | | | | | | | | | | | | | | | | This is a resubmission of r313270. It broke standalone builds of compiler-rt because we were not correctly generating the llvm-lit script in the standalone build directory. The fixes incorporated here attempt to find llvm/utils/llvm-lit from the source tree returned by llvm-config. If present, it will generate llvm-lit into the output directory. Regardless, the user can specify -DLLVM_EXTERNAL_LIT to point to a specific lit.py on their file system. This supports the use case of someone installing lit via a package manager. If it cannot find a source tree, and -DLLVM_EXTERNAL_LIT is either unspecified or invalid, then we print a warning that tests will not be able to run. Differential Revision: https://reviews.llvm.org/D37756 llvm-svn: 313407
* [libFuzzer] minor refactoring, NFCKostya Serebryany2017-09-153-7/+4
| | | | llvm-svn: 313406
* Name the sentinel value used for the location number of the undefined ↵Reid Kleckner2017-09-151-7/+9
| | | | | | register NFC llvm-svn: 313405
* Test patch to check my commit accessJake Ehrlich2017-09-151-1/+1
| | | | llvm-svn: 313404
* [libFuzzer] reduce the size of the merge control file by not dumping ↵Kostya Serebryany2017-09-151-9/+17
| | | | | | redundant features into it llvm-svn: 313403
* Remove __builtin_wasm_rethrow builtinHeejin Ahn2017-09-153-11/+0
| | | | | | | | | | | | | | | | | Summary: Remove `__builtin_wasm_rethrow` builtin. I thought it was required to implement `__cxa_rethrow` function in libcxxabi, but it turned out it will be using `__builtin_wasm_throw` instead. Reviewers: dschuff, jgravelle-google Reviewed By: jgravelle-google Subscribers: jfb, sbc100, jgravelle-google Differential Revision: https://reviews.llvm.org/D37931 llvm-svn: 313402
* [debuginfo-tests] Add string NRVO test for PR34513Reid Kleckner2017-09-151-0/+27
| | | | | | It should pass in -O0 and -O1 after r313400 and r313399. llvm-svn: 313401
* [DebugInfo] Insert DW_OP_deref when spilling indirect DBG_VALUEsReid Kleckner2017-09-154-38/+248
| | | | | | | | | | | | | | | | | | | | | Summary: This comes up in optimized debug info for C++ programs that pass and return objects indirectly by address. In these programs, llvm.dbg.declare survives optimization, which causes us to emit indirect DBG_VALUE instructions. The fast register allocator knows to insert DW_OP_deref when spilling indirect DBG_VALUE instructions, but the LiveDebugVariables did not until this change. This fixes part of PR34513. I need to look into why this doesn't work at -O0 and I'll send follow up patches to handle that. Reviewers: aprantl, dblaikie, probinson Subscribers: qcolombet, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D37911 llvm-svn: 313400
* [DebugInfo] Add missing DW_OP_deref when an NRVO pointer is spilledReid Kleckner2017-09-154-64/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fixes PR34513. Indirect DBG_VALUEs typically come from dbg.declares of non-trivially copyable C++ objects that must be passed by address. We were already handling the case where the virtual register gets allocated to a physical register and is later spilled. That's what usually happens for normal parameters that aren't NRVO variables: they usually appear in physical register parameters, and are spilled later in the function, which would correctly add deref. NRVO variables are different because the dbg.declare can come much later after earlier instructions cause the incoming virtual register to be spilled. Also, clean up this code. We only need to look at the first operand of a DBG_VALUE, which eliminates the operand loop. Reviewers: aprantl, dblaikie, probinson Subscribers: MatzeB, qcolombet, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D37929 llvm-svn: 313399
* [AutoUpgrade] Fix a compatibility issue with module flagSteven Wu2017-09-152-2/+22
| | | | | | | | | | | | | | | | | | | | | | Summary: After r304661, module flag to record objective-c image info section is encoded without whitespaces after comma. The new name is equivalent to the old one, except that when LTO a module built by old compiler and a module built by a new compiler, it will fail with conflicting values. Fix the issue by removing whitespaces in bitcode upgrade path. rdar://problem/34416934 Reviewers: compnerd Reviewed By: compnerd Subscribers: mehdi_amini, hans, llvm-commits Differential Revision: https://reviews.llvm.org/D37909 llvm-svn: 313398
* Fix build for LLVM unittestsReid Kleckner2017-09-151-6/+6
| | | | llvm-svn: 313397
* Update the monorepo URL in a lld's document.Rui Ueyama2017-09-151-1/+1
| | | | llvm-svn: 313396
* [WebAssembly] MC: Create wasm data segments based on MCSectionsSam Clegg2017-09-156-69/+151
| | | | | | | | | | | This means that we can honor -fdata-sections rather than always creating a segment for each symbol. It also allows for a followup change to add .init_array and friends. Differential Revision: https://reviews.llvm.org/D37876 llvm-svn: 313395
* [ConstantFold] Return the correct type when folding a GEP with vector indices.Davide Italiano2017-09-152-1/+23
| | | | | | | | | | | | | | | | As Eli pointed out (and I got wrong in the first place), langref says: "The getelementptr returns a vector of pointers, instead of a single address, when one or more of its arguments is a vector. In such cases, all vector arguments should have the same number of elements, and every scalar argument will be effectively broadcast into a vector during address calculation." Costantfold for gep doesn't really take in account this paragraph, returning a pointer instead of a vector of pointer which triggers an assertion in RAUW, as we're trying to replace values with mistmatching types. Differential Revision: https://reviews.llvm.org/D37928 llvm-svn: 313394
* Change encodeU/SLEB128 to pad to certain number of bytesSam Clegg2017-09-159-66/+85
| | | | | | | | | | | | | | | Previously the 'Padding' argument was the number of padding bytes to add. However most callers that use 'Padding' know how many overall bytes they need to write. With the previous code this would mean encoding the LEB once to find out how many bytes it would occupy and then using this to calulate the 'Padding' value. See: https://reviews.llvm.org/D36595 Differential Revision: https://reviews.llvm.org/D37494 llvm-svn: 313393
* [X86] Disable _mm512_maskz_set1_epi64 intrinsic on 32-bit targets to prevent ↵Craig Topper2017-09-153-8/+9
| | | | | | | | | | | | a backend isel failure. The __builtin_ia32_pbroadcastq512_mem_mask we were previously trying to use in 32-bit mode is not implemented in the x86 backend and causes isel to fail in release builds. In debug builds it fails even earlier during legalization with an llvm_unreachable. While there add the missing test case for this intrinsic for this for 64-bit mode. This fixes PR34631. D37668 should be able to recover this for 32-bit mode soon. But I wanted to fix the crash ahead of that. llvm-svn: 313392
* ubsan: Unbreak ubsan_cxx runtime library on Windows.Peter Collingbourne2017-09-1510-13/+46
| | | | | | | | | | | | | | | | This was originally broken by r258744 which introduced a weak reference from ubsan to ubsan_cxx. This reference does not work directly on Windows because COFF has no direct concept of weak symbols. The fix is to use /alternatename to create a weak external reference to ubsan_cxx. Also fix the definition (and the name, so that we drop cached values) of the cmake flag that controls whether to build ubsan_cxx. Now the user-controllable flag is always on, and we turn it off internally depending on whether we support building it. Differential Revision: https://reviews.llvm.org/D37882 llvm-svn: 313391
* This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352 Vivek Pandya2017-09-1523-250/+419
| | | | | | | | | | | It enables OptimizationRemarkEmitter::allowExtraAnalysis and MachineOptimizationRemarkEmitter::allowExtraAnalysis to return true not only for -fsave-optimization-record but when specific remarks are requested with command line options. The diagnostic handler used to be callback now this patch adds a class DiagnosticHandler. It has virtual method to provide custom diagnostic handler and methods to control which particular remarks are enabled. However LLVM-C API users can still provide callback function for diagnostic handler. llvm-svn: 313390
* This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352 LLVM code ↵Vivek Pandya2017-09-151-9/+34
| | | | | | change is as per https://reviews.llvm.org/D33514 llvm-svn: 313389
* [llvm] Fix some typos. NFC.Mandeep Singh Grang2017-09-154-5/+5
| | | | | | | | | | | | Reviewers: mcrosier Reviewed By: mcrosier Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D37922 llvm-svn: 313388
* This reverts r313381Vivek Pandya2017-09-1523-417/+248
| | | | llvm-svn: 313387
* [Sema] Error out early for tags defined inside an enumeration.Volodymyr Sapsai2017-09-154-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | This fixes PR28903 by avoiding access check for inner enum constant. We are performing access check because one enum constant references another and because enum is defined in CXXRecordDecl. But access check doesn't work because FindDeclaringClass doesn't expect more than one EnumDecl and because inner enum has access AS_none due to not being an immediate child of a record. The change detects an enum is defined in wrong place and allows to skip parsing its body. Access check is skipped together with body parsing. There was no crash in C, added test case to cover the new error. rdar://problem/28530809 Reviewers: rnk, doug.gregor, rsmith Reviewed By: doug.gregor Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D37089 llvm-svn: 313386
* [Analyzer] Check function name size before indexing.George Karpenkov2017-09-152-1/+4
| | | | | | https://reviews.llvm.org/D37908 llvm-svn: 313385
OpenPOWER on IntegriCloud