summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] SIMD negThomas Lively2018-09-143-0/+117
| | | | | | | | | | | | Summary: Depends on D52007. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52009 llvm-svn: 342296
* [PDB] Make the pretty dumper output modified types.Zachary Turner2018-09-149-221/+285
| | | | | | | | | | | Currently if we got something like `const Foo` we'd ignore it and just rely on printing the unmodified `Foo` later on. However, for testing the native reading code we really would like to be able to see these so that we can verify that the native reader can actually handle them. Instead of printing out the full type though, just print out the header. llvm-svn: 342295
* [COFF] Provide __CTOR_LIST__ and __DTOR_LIST__ symbols for MinGWMartin Storsjo2018-09-1414-43/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MinGW uses these kind of list terminator symbols for traversing the constructor/destructor lists. These list terminators are actual pointers entries in the lists, with the values 0 and (uintptr_t)-1 (instead of just symbols pointing to the start/end of the list). (This mechanism exists in both the mingw-w64 crt startup code and in libgcc; normally the mingw-w64 one is used, but a DLL build of libgcc uses the libgcc one. Therefore it's not trivial to change the mechanism without lots of cross-project synchronization and potentially invalidating some combinations of old/new versions of them.) When mingw-w64 has been used with lld so far, the CRT startup object files have so far provided these symbols, ending up with different, incompatible builds of the CRT startup object files depending on whether binutils or lld are going to be used. In order to avoid the need of different configuration of the CRT startup object files depending on what linker to be used, provide these symbols in lld instead. (Mingw-w64 checks at build time whether the linker provides these symbols or not.) This unifies this particular detail between the two linkers. This does disallow the use of the very latest lld with older versions of mingw-w64 (the configure check for the list was added recently; earlier it simply checked whether the CRT was built with gcc or clang), and requires rebuilding the mingw-w64 CRT. But the number of users of lld+mingw still is low enough that such a change should be tolerable, and unifies this aspect of the toolchains, easing interoperability between the toolchains for the future. The actual test for this feature is added in ctors_dtors_priority.s, but a number of other tests that checked absolute output addresses are updated. Differential Revision: https://reviews.llvm.org/D52053 llvm-svn: 342294
* [BreakFalseDeps] Fix bad formatting. NFCCraig Topper2018-09-141-1/+1
| | | | llvm-svn: 342293
* [InstCombine] refactor mul narrowing folds; NFCISanjay Patel2018-09-145-136/+84
| | | | | | | | | | | | | Similar to rL342278: The test diffs are all cosmetic due to the change in value naming, but I'm including that to show that the new code does perform these folds rather than something else in instcombine. D52075 should be able to use this code too rather than duplicating all of the logic. llvm-svn: 342292
* Attempt to unbreak the build after r342286.Adrian Prantl2018-09-141-1/+2
| | | | llvm-svn: 342291
* test/Driver/output-file-cleanup.c: delete non-readable temporary fileFangrui Song2018-09-141-0/+1
| | | | | | %t-dir/2.c made tools (rsync, ripgrep, ...) sad (EACCES warning). llvm-svn: 342290
* [InstCombine] add/use overflowing math helper functions; NFCSanjay Patel2018-09-142-3/+19
| | | | | | | | The mul case can already be refactored to use this similar to rL342278. The sub case is proposed in D52075. llvm-svn: 342289
* [PowerPC] Fix the calling convention for i1 arguments on PPC32Lion Yang2018-09-142-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Integer types smaller than i32 must be extended to i32 by default. The feature "crbits" introduced at r202451 handles i1 as a special case, but it did not extend properly. The caller was, therefore, passing i1 stack arguments by writing 0/1 to the first byte of the 4-byte stack object and callee was reading the first byte for the value. "crbits" is enabled if the optimization level is greater than 1, which is very common in "release builds". Such discrepancies with ABI specification also introduces potential incompatibility with programs or libraries built with other compilers e.g. GCC. Fixes PR38661 Reviewers: hfinkel, cuviper Subscribers: sylvestre.ledru, glaubitz, nagisa, nemanjai, kbarton, llvm-commits Differential Revision: https://reviews.llvm.org/D51108 llvm-svn: 342288
* [WebAssembly][NFC] Move SIMD encoding tests to dedicated fileThomas Lively2018-09-146-1109/+1281
| | | | | | | | | | | | | | | | Summary: This change makes the tests more focused and avoids problematic interactions between the testing modes and instruction encoding. This change also allows the other tests to use less verbose output and stricter checks. Reviewers: aheejin, dschuff, aardappel Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52007 llvm-svn: 342287
* Add missing include.Zachary Turner2018-09-141-0/+1
| | | | llvm-svn: 342286
* [codeview] Remove dead codeReid Kleckner2018-09-142-17/+0
| | | | llvm-svn: 342285
* [PDB] Refactor a little of the Symbol creation code.Zachary Turner2018-09-146-41/+38
| | | | | | | | | | | Eventually we need to be able to support nested types, which don't have an associated CVType record. To handle this, remove the CVType from all of the record classes, and instead store the deserialized record. Then move the deserialization up to the thing that creates the type. This actually makes error handling better anyway as we can return an invalid symbol instead of asserting false. llvm-svn: 342284
* [SampleFDO] Add FunctionOffsetTable in compact binary format profile.Wei Mi2018-09-1411-24/+245
| | | | | | | | | | | | The patch saves a function offset table which maps function name index to the offset of its function profile to the start of the binary profile. By using the function offset table, for those function profiles which will not be used when compiling a module, the profile reader does't have to read them. For profile size around 10~20M, it saves ~10% compile time. Differential Revision: https://reviews.llvm.org/D51863 llvm-svn: 342283
* Mark index-tools.test as REQUIRES: shell so that it does not run with the ↵Reid Kleckner2018-09-141-0/+1
| | | | | | internal lit shell which does not support "if" llvm-svn: 342282
* Relax assumption about default method calling convention in new testReid Kleckner2018-09-141-1/+1
| | | | llvm-svn: 342281
* [IRInterpreter] Minor cleanups, add comments. NFCI.Davide Italiano2018-09-141-7/+3
| | | | llvm-svn: 342280
* test/Other/can-execute.txt: delete %t after the testFangrui Song2018-09-141-0/+1
| | | | | | This test constructs a non-readable file of mode 0111, which lingers in the test output directory and will cause EACCES to various tools (rg, rsync, ...) llvm-svn: 342279
* [InstCombine] refactor add narrowing folds; NFCISanjay Patel2018-09-143-101/+74
| | | | | | | | | The test diffs are all cosmetic due to the change in value naming, but I'm including that to show that the new code does perform these folds rather than something else in instcombine. llvm-svn: 342278
* HotColdSplit: fix invalid SSA due to outliningSebastian Pop2018-09-143-24/+45
| | | | | | | | The test used to fail with an invalid phi node: the two predecessors were outlined and the SSA representation was left invalid. The patch adds the exit block to the cold region. llvm-svn: 342277
* HotColdSplit: fix isSingleEntrySingleExitSebastian Pop2018-09-141-10/+6
| | | | | | | | | | | | remove duplicate entries from isSingleEntrySingleExit: the Entry block is already added by the loop over the dominance frontier. Remove the heuristic from isOutlineCandidate that a region is too small when it only contains a basic block. With this change we now grow regions starting from a block and we continue adding to the ValidColdRegion. Check the heuristic just before code generation. llvm-svn: 342276
* HotColdSplit: add back propagation to extend cold regionsSebastian Pop2018-09-141-18/+64
| | | | | | | | Also fix a problem in forward propagation: const TerminatorInst *TI = It->getTerminator(); was set outside the while loop that iterates over It. llvm-svn: 342275
* [InstCombine] add more tests for add narrowing folds; NFCSanjay Patel2018-09-141-0/+118
| | | | llvm-svn: 342274
* [WebAssembly][NFC] Fix unconventional test namesThomas Lively2018-09-145-0/+0
| | | | | | | | | | Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52110 llvm-svn: 342273
* Remove unused DIASession fieldReid Kleckner2018-09-143-6/+2
| | | | llvm-svn: 342272
* [analyzer] Handle forwarding reference better in ExprMutationAnalyzer.Shuai Wang2018-09-143-3/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: We used to treat an `Expr` mutated whenever it's passed as non-const reference argument to a function. This results in false positives in cases like this: ``` int x; std::vector<int> v; v.emplace_back(x); // `x` is passed as non-const reference to `emplace_back` ``` In theory the false positives can be suppressed with `v.emplace_back(std::as_const(x))` but that's considered overly verbose, inconsistent with existing code and spammy as diags. This diff handles such cases by following into the function definition and see whether the argument is mutated inside. Reviewers: lebedev.ri, JonasToth, george.karpenkov Subscribers: xazax.hun, szepet, a.sidorin, mikhail.ramalho, Szelethus, cfe-commits Differential Revision: https://reviews.llvm.org/D52008 llvm-svn: 342271
* AMDGPU: Clear the bits before they are being set in program resource registersKonstantin Zhuravlyov2018-09-141-0/+1
| | | | | | Change by Tony Tye llvm-svn: 342270
* Fix lit/example/many-tests pickling issueAlex Langford2018-09-142-20/+23
| | | | | | | | | | | | | | | | | Summary: The multiprocess module uses pickling to transfer information between processes and does not know how to pickle the class created in the lit.cfg file and thus the example fails. Implement ManyTests in a separate file and import for the example test passes Patch by Nathan Lanza <nathan@lanza.io> Differential Revision: https://reviews.llvm.org/D51328 llvm-svn: 342269
* Test commit accessLion Yang2018-09-141-1/+1
| | | | | | Remove trailing spaces llvm-svn: 342268
* [NFC][clangd] silence pedantic extra ';' warningJonas Toth2018-09-141-1/+1
| | | | llvm-svn: 342267
* Fix lldb-vscode README.mdAlex Langford2018-09-141-8/+8
| | | | | | | | | | Summary: The readme was missing "-" characters to enable links Patch by Nathan Lanza <nathan@lanza.io> Differential Revision: https://reviews.llvm.org/D52069 llvm-svn: 342266
* Revert r342183 "[DAGCombine] Fix crash when store merging created an ↵Reid Kleckner2018-09-142-27/+1
| | | | | | | | | extract_subvector with invalid index." Causes 'isVector() && "Invalid vector type!"' assertion when building Skia in Chrome. llvm-svn: 342265
* Fix debug info for SelectionDAG legalization of DAG nodes with two results.Adrian Prantl2018-09-142-1/+48
| | | | | | | | | | | | | | | | This patch fixes the debug info handling for SelectionDAG legalization of DAG nodes with two results. When an replaced SDNode has more than one result, transferDbgValues was always copying the SDDbgValue from the first result and attaching them to all members. In reality SelectionDAG::ReplaceAllUsesWith() is given an array of SDNodes (though the type signature doesn't make this obvious (cf. the call site code in ReplaceNode()). rdar://problem/44162227 Differential Revision: https://reviews.llvm.org/D52112 llvm-svn: 342264
* [ThinLTOCodeGenerator] Avoid Rehash StringMap in ThreadPoolSteven Wu2018-09-141-5/+9
| | | | | | | | | | | | | | | | | | | | Summary: During threaded thinLTO, it is possible that the entry for current module doesn't exist in StringMaps (like ExportLists, ResolvedODR, etc.). Using operator[] might trigger a rehash for the StringMap, which might happen on multiple threads at the same time. rdar://problem/43846199 Reviewers: tejohnson, mehdi_amini, kromanova, pcc Reviewed By: tejohnson Subscribers: dang, inglorion, eraman, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D52049 llvm-svn: 342263
* [IRInterpreter] Fall back to JIT with 128-bit values.Davide Italiano2018-09-144-0/+27
| | | | | | | | | | | | | They're not that common, and falling back is definitely better than throwing an error instead of the result. If we feel motivated, we might end up implementing support for these, but it's unclear whether it's worth the effort/complexity. Fixes PR38925. <rdar://problem/44436068> llvm-svn: 342262
* [clangd] Work around compiler macro expansion bugs(?) in completion testsSam McCall2018-09-141-3/+3
| | | | llvm-svn: 342261
* Revert r342210 "[ARM] bottom-top mul support in ARMParallelDSP"Reid Kleckner2018-09-143-612/+27
| | | | | | | | | | It causes assertion failures while building Skia for Android in Chromium: https://ci.chromium.org/buildbot/chromium.clang/ToTAndroid/4550 Reduction forthcoming. llvm-svn: 342260
* Make the eSearchDepthFunction searches work, add tests Jim Ingham2018-09-144-10/+80
| | | | | | | | using the scripted breakpoint resolver. Differential Revision: https://reviews.llvm.org/D52111 llvm-svn: 342259
* Revert a line-endings change that somehow got included with rL342257Simon Pilgrim2018-09-141-71/+71
| | | | llvm-svn: 342258
* [X86][SSE] Lower shuffles to permute(unpack(x,y)) (PR31151)Simon Pilgrim2018-09-146-139/+165
| | | | | | | | | | Attempt to lower a shuffle as an unpack of elements from two inputs followed by a single-input (wider) permutation. As long as the permutation is wider this is a win - there may be some circumstances where same size permutations would also be useful but I've left that for future work. Differential Revision: https://reviews.llvm.org/D52043 llvm-svn: 342257
* [X86] Re-generate test checks using current version of the script. NFCCraig Topper2018-09-142-20/+20
| | | | | | The regular expression used for stack accesses is different today. llvm-svn: 342256
* [libFuzzer] Disable value-profile-strncmp.test on aarch64.Matt Morehouse2018-09-141-1/+1
| | | | | | | Test no longer finds the BINGO on clang-cmake-aarch64-full bot, and I can't reproduce on our ARM machine. llvm-svn: 342255
* [InstCombine] rename test file to better describe the fold; NFCSanjay Patel2018-09-141-0/+0
| | | | | | | | The folds are not limited to zext, and the real goal is width reduction of a math op. D52075 is proposing to extend this to subtracts. llvm-svn: 342254
* [InstCombine] remove unnecessary target constraints for tests; NFCSanjay Patel2018-09-141-3/+0
| | | | | | These are universal folds. llvm-svn: 342253
* [modernize-use-transparent-functors] TypeLocs can be implicitly created, ↵Benjamin Kramer2018-09-142-1/+6
| | | | | | don't crash when encountering those. llvm-svn: 342252
* [InstCombine] move test next to related tests; NFCSanjay Patel2018-09-142-16/+16
| | | | llvm-svn: 342251
* [InstCombine] remove stall comment from test file; NFCSanjay Patel2018-09-141-2/+0
| | | | llvm-svn: 342250
* [InstCombine] regenerate test checks; NFCSanjay Patel2018-09-141-5/+5
| | | | | | | There was a bug in a check line regex that could cause the test to fail with a naming difference. The auto-gen script seems to work as expected now. llvm-svn: 342249
* Introduce explicit add_unittest_with_input_files target for tests that use ↵Nico Weber2018-09-143-6/+14
| | | | | | | | | | | llvm::getInputFileDirectory() Using llvm::getInputFileDirectory() in unit tests is discouraged, so require an explicit opt-in. This way, cmake also writes ~60 fewer unused files to disk. Differential Revision: https://reviews.llvm.org/D52095 llvm-svn: 342248
* fix noasserts buildAdrian Prantl2018-09-141-0/+2
| | | | llvm-svn: 342247
OpenPOWER on IntegriCloud