- Apr 07, 2020
-
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D74937
-
River Riddle authored
The pass tablegen backend now generates base classes instead of utilities, so this revision updates the documentation to reflect that.
-
Louis Dionne authored
It has never been used, and it actually doesn't really work because it assumes that the target supports Python. Instead, it's better to just use `!` since we're running ShTests in system shells anyway.
-
Francis Visoiu Mistrih authored
Previous fix missed a check to willEmitRemarks, causing remarks to always be enabled for LTO.
-
Benjamin Kramer authored
This is undefined behavior. Found by asan's detect_container_overflow.
-
River Riddle authored
Summary: This is much cleaner, and fits the same structure as many other tablegen backends. This was not done originally as the CRTP in the pass classes made it overly verbose/complex. Differential Revision: https://reviews.llvm.org/D77367
-
River Riddle authored
This revision removes all of the CRTP from the pass hierarchy in preparation for using the tablegen backend instead. This creates a much cleaner interface in the C++ code, and naturally fits with the rest of the infrastructure. A new utility class, PassWrapper, is added to replicate the existing behavior for passes not suitable for using the tablegen backend. Differential Revision: https://reviews.llvm.org/D77350
-
River Riddle authored
ModulePass doesn't provide any special utilities and thus doesn't give enough benefit to warrant a special pass class. This revision replaces all usages with the more general OperationPass. Differential Revision: https://reviews.llvm.org/D77339
-
Matt Arsenault authored
-
Nikita Popov authored
This reduces max-rss of sqlite compilation by 2.5%.
-
Jacques Pienaar authored
Summary: Add directive to indicate the location to give to op being created. This directive is optional and if unused the location will still be the fused location of all source operations. Currently this directive only works with other op locations, reusing an existing op location or a fusion of op locations. But doesn't yet support supplying metadata for the FusedLoc. Based off initial revision by antiagainst@ and effectively mirrors GlobalIsel debug_locations directive. Differential Revision: https://reviews.llvm.org/D77649
-
Lawrence D'Anna authored
Summary: The buffer protocol does not allow us to just call PyBuffer_Release and assume the buffer will still be there. Most things that implement the buffer protocol will let us get away with that, but not all. We need to release it at the end of the SWIG wrapper. Reviewers: labath, jasonmolenda, JDevlieghere, vadimcn Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77480
-
Nathan James authored
-
Stella Laurenzo authored
Summary: * Removal of FxpMathOps was discussed on the mailing list. * Will send a courtesy note about also removing the Quantizer (which had some dependencies on FxpMathOps). * These were only ever used for experimental purposes and we know how to get them back from history as needed. * There is a new proposal for more generalized quantization tooling, so moving these older experiments out of the way helps clean things up. Subscribers: mgorny, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77479
-
David Blaikie authored
-
Eric Astor authored
Summary: /PDBSTREAM:<name>=<file> adds the contents of <file> to stream <name> in the resulting PDB. This allows native uses with workflows that (for example) add srcsrv streams to PDB files to provide a location for the build's source files. Results should be equivalent to linking with lld-link, then running Microsoft's pdbstr tool with the command line: pdbstr.exe -w -p:<PDB LOCATION> -s:<name> -i:<file> except in cases where the named stream overlaps with a default named stream, such as "/names". In those cases, the added stream will be overridden, making the /pdbstream option a no-op. Reviewers: thakis, rnk Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D77310
-
Louis Dionne authored
Instead of creating a temporary directory inside /tmp and running the tests there, use a directory name based on LIT's %t substitution. This has the benefit of not hitting /tmp so much (which is slow on some filesystems). It also has the benefit that `ninja -C build clean` will automatically remove the artifacts even if a test somehow failed to remove its temporary directory (I've seen this happen when CTRL-C is received).
-
George Burgess IV authored
__strlen_chk returns a `size_t`, not a `char *`.
-
Matt Arsenault authored
-
River Riddle authored
Summary: Diagnostics may be cached in the parallel diagnostic handler to preserve proper ordering. Storing the Operation as a DiagnosticArgument is problematic as the operation may be erased or changed before it finally gets printed. Differential Revision: https://reviews.llvm.org/D77675
-
Alexey Bataev authored
-
Davide Italiano authored
Discussed on lldb-dev with Pavel Labath. This doesn't work for background processes [causes Python to be stuck forever], and it's unclear whether it's needed. There's no test, also. If this turns out to be useful, it can be recommitted with a functional implementation and a test.
-
Johannes Doerfert authored
This reverts commit 97aa593a as it causes problems (PR45453) https://reviews.llvm.org/D77574#1966321. This additionally adds an explicit reference to FrontendOpenMP to clang-tidy where ASTMatchers is used. This is hopefully just a temporary solution. The dependence on `FrontendOpenMP` from `ASTMatchers` should be handled by CMake implicitly, not us explicitly. Reviewed By: aheejin Differential Revision: https://reviews.llvm.org/D77666
-
Alexey Bataev authored
Implemented codegen for the iterator expression in the depend clauses. Iterator construct is emitted the following way: iterator(cnt1, cnt2, ...), in : <dep> <TotalNumDeps> = <cnt1_size> * <cnt2_size> * ...; kmp_depend_t deps[<TotalNumDeps>]; deps_counter = 0; for (cnt1) { for (cnt2) { ... deps[deps_counter].base_addr = &<dep>; deps[deps_counter].size = sizeof(<dep>); deps[deps_counter].flags = in; deps_counter += 1; ... } } For depobj construct the codegen is very similar, but the memory is allocated dynamically and added extra first item reserved for internal use.
-
Wei Mi authored
The common profile usage is to collect profile from a target and then use the profile to guide the optimized build for the same target. There are some cases that no profile can be collected for a target. In those cases, although no full profile is available, it is possible to have some partial profile collected from other targets to optimize common libraries and utilities. A flag is needed to tell the partial profile from the full profile apart, so compiler can use different strategy for them. Differential Revision: https://reviews.llvm.org/D77426
-
Nemanja Ivanovic authored
There are a few patterns where we use a superclass for inputs to this instruction rather than the correct class. This can sometimes lead to unncessary copies.
-
Nathan James authored
Summary: Change all checks that take enums as configuration to use enum specific methods in `ClangTidyCheck::OptionsView`. Reviewers: aaron.ballman, alexfh Reviewed By: aaron.ballman Subscribers: wuzish, nemanjai, kbarton, arphaman, xazax.hun, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D76606
-
Shilei Tian authored
[OpenMP] Optimized stream selection by scheduling data mapping for the same target region into a same stream Summary: This patch introduces two things for offloading: 1. Asynchronous data transferring: those functions are suffix with `_async`. They have one more argument compared with their synchronous counterparts: `__tgt_async_info*`, which is a new struct that only has one field, `void *Identifier`. This struct is for information exchange between different asynchronous operations. It can be used for stream selection, like in this case, or operation synchronization, which is also used. We may expect more usages in the future. 2. Optimization of stream selection for data mapping. Previous implementation was using asynchronous device memory transfer but synchronizing after each memory transfer. Actually, if we say kernel A needs four memory copy to device and two memory copy back to host, then we can schedule these seven operations (four H2D, two D2H, and one kernel launch) into a same stream and just need synchronization after memory copy from device to host. In this way, we can save a huge overhead compared with synchronization after each operation. Reviewers: jdoerfert, ye-luo Reviewed By: jdoerfert Subscribers: yaxunl, lildmh, guansong, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D77005
-
Nathan James authored
Summary: Adds support for `ClangTidyCheck::OptionsView` to deteremine: - If an option is found in the configuration. - If an integer option read from configuration is parsable to an integer. - Parse and Serialize enum configuration options directly using a mapping from `llvm::StringRef` to `EnumType`. - If an integer or enum option isn't parseable but there is a default value it will issue a warning to stderr that the config value hasn't been used. - If an enum option isn't parsable it can provide a hint if the value was a typo. Reviewers: aaron.ballman, alexfh, gribozavr2 Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D77085
-
Sid Manning authored
Update the sysroot expectation to match other targets and breakout linux/musl toolchain tests into a new file. Differential Revision: https://reviews.llvm.org/D77440
-
Aaron Ballman authored
WG14 has adopted N2480 (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2480.pdf) into C2x at the meetings last week, allowing parameter names of a function definition to be elided. This patch relaxes the error so that C++ and C2x do not diagnose this situation, and modes before C2x will allow it as an extension. This also adds the same feature to ObjC blocks under the assumption that ObjC wishes to follow the C standard in this regard.
-
Louis Dionne authored
This allows both the old and the new testing formats to handle these tests with modules enabled. We also include the modules flags in the %{flags} substitution, which means that .sh.cpp tests in the old format and all tests in the new format will use modules flags when enabled.
-
Graham Sellers authored
This patch extends existing constant folding in logical operations to handle S_XNOR, S_NAND, S_NOR, S_ANDN2, S_ORN2, V_LSHL_ADD_U32 and V_AND_OR_B32. Also added a couple of tests for existing folds.
-
Craig Topper authored
This removes a call to getScalarType from a bunch of call sites. It also makes the behavior consistent with SIGN_EXTEND_INREG. Differential Revision: https://reviews.llvm.org/D77631
-
LLVM GN Syncbot authored
-
Alexey Lapshin authored
For implementing "remove obsolete debug info in lld", it is neccesary to have DWARF generation code implementation. dsymutil uses DwarfStreamer for that purpose. DwarfStreamer uses AsmPrinter. It is considered OK to use AsmPrinter based code in lld(D74169). This patch moves DwarfStreamer implementation into DWARFLinker, so that it could be reused from lld. Generally, a better place for such a common DWARF generation code would be not DWARFLinker but an additional separate library. Such a library could contain a single version of DWARF generation routines and could also be independent of AsmPrinter. At the current moment, DwarfStreamer does not pretend to be such a general implementation of DWARF generation. So I decided to put it into DWARFLinker since it is the only user of DwarfStreamer. Testing: it passes "check-all" lit testing. MD5 checksum for clang .dSYM bundle matches for the dsymutil with/without that patch. Reviewed By: JDevlieghere Differential revision: https://reviews.llvm.org/D77169
-
Matt Arsenault authored
-
Artem Dergachev authored
This reverts commit 21efb06f. Changes since last attempt to land this patch: - Sort files before deduplicating. This hopefully avoids some buildbot failures. - Fix use of uninitialized variable when running without --use-analyzer. - Remove the "REQUIRES: windows" item.
-
Eli Friedman authored
7aecf232 fixed the bug where we would miscompile, but we still generate a crazy amount of code. Turn off the expansion until someone implements an appropriate heuristic. Differential Revision: https://reviews.llvm.org/D77599
-