- Sep 15, 2018
-
-
Craig Topper authored
llvm-svn: 342293
-
Sanjay Patel authored
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
-
- Sep 14, 2018
-
-
Adrian Prantl authored
llvm-svn: 342291
-
Fangrui Song authored
%t-dir/2.c made tools (rsync, ripgrep, ...) sad (EACCES warning). llvm-svn: 342290
-
Sanjay Patel authored
The mul case can already be refactored to use this similar to rL342278. The sub case is proposed in D52075. llvm-svn: 342289
-
Lion Yang authored
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
-
Thomas Lively authored
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
-
Zachary Turner authored
llvm-svn: 342286
-
Reid Kleckner authored
llvm-svn: 342285
-
Zachary Turner authored
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
-
Wei Mi authored
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
-
Reid Kleckner authored
Mark index-tools.test as REQUIRES: shell so that it does not run with the internal lit shell which does not support "if" llvm-svn: 342282
-
Reid Kleckner authored
llvm-svn: 342281
-
Davide Italiano authored
llvm-svn: 342280
-
Fangrui Song authored
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
-
Sanjay Patel authored
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
-
Sebastian Pop authored
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
-
Sebastian Pop authored
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
-
Sebastian Pop authored
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
-
Sanjay Patel authored
llvm-svn: 342274
-
Thomas Lively authored
Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52110 llvm-svn: 342273
-
Reid Kleckner authored
llvm-svn: 342272
-
Shuai Wang authored
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
-
Konstantin Zhuravlyov authored
Change by Tony Tye llvm-svn: 342270
-
Alex Langford authored
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
-
Lion Yang authored
Remove trailing spaces llvm-svn: 342268
-
Jonas Toth authored
llvm-svn: 342267
-
Alex Langford authored
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
-
Reid Kleckner authored
Revert r342183 "[DAGCombine] Fix crash when store merging created an extract_subvector with invalid index." Causes 'isVector() && "Invalid vector type!"' assertion when building Skia in Chrome. llvm-svn: 342265
-
Adrian Prantl authored
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
-
Steven Wu authored
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
-
Davide Italiano authored
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
-
Sam McCall authored
llvm-svn: 342261
-
Reid Kleckner authored
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
-
Jim Ingham authored
using the scripted breakpoint resolver. Differential Revision: https://reviews.llvm.org/D52111 llvm-svn: 342259
-
Simon Pilgrim authored
llvm-svn: 342258
-
Simon Pilgrim authored
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
-
Craig Topper authored
The regular expression used for stack accesses is different today. llvm-svn: 342256
-
Matt Morehouse authored
Test no longer finds the BINGO on clang-cmake-aarch64-full bot, and I can't reproduce on our ARM machine. llvm-svn: 342255
-
Sanjay Patel authored
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
-