- Apr 03, 2020
-
-
Nicolas Vasilache authored
A certain number of EDSCs have a named form (e.g. `linalg.matmul`) and a generic form (e.g. `linalg.generic` with matmul traits). Despite living in different namespaces, using the same name is confusiong in clients. Rename them as `linalg_matmul` and `linalg_generic_matmul` respectively.
-
Austin Kerbow authored
Summary: This fixes a few issues related to SMRD offsets. On gfx9 and gfx10 we have a signed byte offset immediate, however we can overflow into a negative since we treat it as unsigned. Also, the SMRD SOFFSET sgpr is an unsigned offset on all subtargets. We sometimes tried to use negative values here. Third, S_BUFFER instructions should never use a signed offset immediate. Differential Revision: https://reviews.llvm.org/D77082
-
Adrian Prantl authored
Debug info for labels is not generated at -gline-tables-only, so this pass should remove them. Differential Revision: https://reviews.llvm.org/D77345
-
Adrian Prantl authored
This patch also strips llvm.dbg.addr intrinsics when downgrading debug info to linetables-only. Differential Revision: https://reviews.llvm.org/D77343
-
Nico Weber authored
-
Nico Weber authored
Things pass locally, but some tests on some bots are still unhappy. I'm not sure why. See if using forward slashes as before helps.
-
Lang Hames authored
Forgot to include part of the testcase. Thank to Nico for spotting that and reverting!
-
Matt Arsenault authored
-
Hubert Tong authored
Summary: This patch addresses, for the interfaces implemented by `COFFDump.cpp`, multiple issues identified with the current structure of `llvm-objdump.h` in the review of D72973. This patch moves implementation details of the tool into an `llvm::objdump` namespace for external linkage names, splits the implementation details into separate headers for each implementation file, and uses qualified names when declaring members of the `llvm::objdump` namespace in place of leaving the namespace definition open. Reviewers: jhenderson, DiggerLin, jasonliu, daltenty, MaskRay Reviewed By: jhenderson, MaskRay Subscribers: MaskRay, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77285
-
Julian Lettner authored
rdar://59643443
-
Julian Lettner authored
Picking a default filter `.*` that matches everything lets us streamline some error handling code.
-
Julian Lettner authored
On shutdown, the result complete handler is not racing with the main thread anymore because we are now always waiting for process pool termination via ``` finally: pool.join() ``` -
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
Switch to using the denormal-fp-math/denormal-fp-math-f32 attributes.
-
Matt Arsenault authored
-
Matt Arsenault authored
This will likely introduce catastrophic performance regressions on older subtargets, but should be correct. A follow up change will remove the old fp32-denormals subtarget features, and switch to using the new denormal-fp-math/denormal-fp-math-f32 attributes. Frontends should be making sure to add the denormal-fp-math-f32 attribute when appropriate to avoid performance regressions.
-
Duncan P. N. Exon Smith authored
Diagnostics from modules do not have a `main-file` listed. Tweak `clang-parse-diagnostics-file` to patch this up. Previously, the call to `os.path.basename` would crash. Radar-Id: rdar://problem/59000292
-
Louis Dionne authored
-
Louis Dionne authored
Instead of hardcoding absolute paths on the build-host in the executables, use relative paths from the current working directory. Also, use FILE_DEPENDENCIES to mark the static test env as being required by the relevant tests. Given a SSH executor that copies the files to the remote host properly, the tests can be run on that remote host.
-
Nico Weber authored
The problem on Windows was that the \b in "..\bin" was interpreted as an escape sequence. Use r"" strings to prevent that. This reverts commit ab11b9ee, with raw strings in the lit.site.cfg.py.in files. Differential Revision: https://reviews.llvm.org/D77184
-
Cyndy Ishida authored
Summary: [llvm][TextAPI] adding inlining reexported libraries support * this patch adds reader/writer support for MachO tbd files. The usecase is to represent reexported libraries in top level library that won't need to exist for linker indirection because all of the needed content will be inlined in the same document. Reviewers: ributzka, steven_wu, jhenderson Reviewed By: ributzka Subscribers: JDevlieghere, hiraditya, mgrang, dexonsmith, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67646
-
Casey Carter authored
... keep the warning suppression, but revert the `__pragma` to `_Pragma` change because `_Pragma` interacts badly with `/Zc:preprocessor`.
-
Craig Topper authored
The compares are going to be type legalized to 256 bits so we might as well fold the extend.
-
Fangrui Song authored
With a fix for http://lab.llvm.org:8011/builders/clang-cmake-armv8-lld/builds/3636 Also trims some unneeded dependencies.
-
Nico Weber authored
This reverts commit fb80b6b2 and follow-up 631ee8b2. Seems to not work on Windows: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/31684 http://lab.llvm.org:8011/builders/llvm-clang-win-x-aarch64/builds/6512 Let's revert while I investigate.
-
Mehdi Amini authored
This slightly tweaks the generated code from: #ifdef GEN_PASS_REGISTRATION ::mlir::registerPass("flag1", ... ::mlir::registerPass("flag2", ... #endif // GEN_PASS_REGISTRATION to: #ifdef GEN_PASS_REGISTRATION #define GEN_PASS_REGISTRATION_Pass1 #define GEN_PASS_REGISTRATION_Pass2 #endif // GEN_PASS_REGISTRATION #ifdef GEN_PASS_REGISTRATION_Pass1 ::mlir::registerPass("flag1", ... #endif #ifdef GEN_PASS_REGISTRATION_Pass1 ::mlir::registerPass("flag2", ... #endif That way the generated code can be included by defining the `GEN_PASS_REGISTRATION` macro as currenty and register all the passes, but one can also define only `GEN_PASS_REGISTRATION_Pass1` to register a subset of the passes. Differential Revision: https://reviews.llvm.org/D77322 -
Walter Erquinigo authored
* This is a reattempted commit due to a previous builtbot failure - Now using a env var to determine whether to run the test, as someone might have built liblldbIntelFeatures.so without intelPT support, which would make this test fail. Summary: Depends on D76872. There was no test for the Intel PT support on LLDB, so I'm creating one, which will help making progress on solid grounds. The test is skipped if the Intel PT plugin library is not built. Reviewers: clayborg, labath, kusmour, aadsm Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77107
-
Nico Weber authored
I broke it with last-minute changes right before committing. Differential Revision: https://reviews.llvm.org/D77184
-
Anna Thomas authored
Consider a callee function that has a call (C) within it which feeds into the return. When we inline that callee into a callsite that has return attributes, we can backward propagate valid attributes to the call (C) within that inlined callee body. This is safe to do so only if we can guarantee transfer of execution to successor in the window of instructions between return value (i.e. the call C) and the return instruction. Also, this is valid only for attributes which are a property of a callsite and not those that are not dependent on the ABI, or a property of the call itself. Reviewed-By: reames, jdoerfert Differential Revision: https://reviews.llvm.org/D76140
-
Matt Arsenault authored
This is a workaround for clang adding noinline to all functions at -O0. Previously, we would just add alwaysinline, and the verifier would complain about having both noinline and alwaysinline. We currently can't truly codegen this case as a freestanding function, so override the user forcing noinline.
-
Nico Weber authored
Currently, all generated lit.site.cfg files contain absolute paths. This makes it impossible to build on one machine, and then transfer the build output to another machine for test execution. Being able to do this is useful for several use cases: 1. When running tests on an ARM machine, it would be possible to build on a fast x86 machine and then copy build artifacts over after building. 2. It allows running several test suites (clang, llvm, lld) on 3 different machines, reducing test time from sum(each test suite time) to max(each test suite time). This patch makes it possible to pass a list of variables that should be relative in the generated lit.site.cfg.py file to configure_lit_site_cfg(). The lit.site.cfg.py.in file needs to call `path()` on these variables, so that the paths are converted to absolute form at lit start time. The testers would have to have an LLVM checkout at the same revision, and the build dir would have to be at the same relative path as on the builder. This does not yet cover how to figure out which files to copy from the builder machine to the tester machines. (One idea is to look at the `--graphviz=test.dot` output and copy all inputs of the `check-llvm` target.) Differential Revision: https://reviews.llvm.org/D77184
-
Sterling Augustine authored
Summary: This patch follows libgcc's lead: When the return-address register is zero, there won't be additional stack frames to examine, or gather information about. Exit before spending time looking for something known not to be found. Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77099
-
Sanjay Patel authored
shuf (bitcast X), undef, Mask --> bitcast X' The 'inverse shuffles' test (shuf_bitcast_operand) is a pattern in the motivating examples from PR35454: https://bugs.llvm.org/show_bug.cgi?id=35454 (see also D76727) We can deal with this class of patterns in generic instcombine because we are not creating any new shuffles, just a bitcast. Alive2 proof: http://volta.cs.utah.edu:8080/z/mwDUZf Differential Revision: https://reviews.llvm.org/D76844
-
Sanjay Patel authored
bitcast (shuf V, MaskC) --> shuf (bitcast V), MaskC' We do not attempt this in InstCombine because we do not want to change types and create new shuffle ops that are potentially not lowered as well as the original code. Here, we can check the cost model to see if it is worthwhile. I've aggressively enabled this transform even if the types are the same size and/or equal cost because moving the bitcast allows InstCombine to make further simplifications. In the motivating cases from PR35454: https://bugs.llvm.org/show_bug.cgi?id=35454 ...this is enough to let instcombine and the backend eliminate the redundant shuffles, but we probably want to extend VectorCombine to handle the inverse pattern (shuffle-of-bitcast) to get that simplification directly in IR. Differential Revision: https://reviews.llvm.org/D76727
-
Stanislav Mekhanoshin authored
SILoadStoreOptimizer::checkAndPrepareMerge() expects base and paired instruction to come in order and scans MBB from base to the paired instruction. An original order can be changed if there were a dependent instruction in between and base instruction was moved. Fixed by bailing the optimization. In theory it might be possible still to perform a merge by swapping instructions, but on practice it bails anyway because it finds dependency on that same instruction which has resulted in the base move. Differential Revision: https://reviews.llvm.org/D77245
-
Louis Dionne authored
To avoid wasting the valuable time of contributors, add a link to a blocked review to document additional issues with the removal of some GCC 4.9 workaround.
-
Louis Dionne authored
Chromium's build sets LIBCXX_CXX_ABI_SYSTEM explicitly when building libc++, which was broken by 61e89737 (which stopped listening to that option). As a workaround, this commit uses the system libc++abi when LIBCXX_CXX_ABI_SYSTEM is used. However, we will need to work with Chromium to standardize their build of libc++, because LIBCXX_CXX_ABI_SYSTEM is not a public facing build configuration for libc++, and has never been AFAICT.
-
Nicolas Vasilache authored
C interface emission is controlled by a flag and has coarse granularity. With this coarse control, interfaces are emitted for all external functions. This makes is easy to get undefined symbols. This revision adds support for controlling per-function emission with an "emit_c_interface" attribute.
-
Sanjay Patel authored
These are versions of a function that regressed with: rGf2fbdf76 That particular problem occurs with an instcombine-simplifycfg-instcombine sequence, but we can show that it exists within instcombine only with other variations of the pattern.
-