- Feb 04, 2023
-
-
Jessica Paquette authored
`Mapper.UnsignedVec.begin()` never changes throughout the call to `erase_if`, so no need to recalculate it. Also drop some redundant braces.
-
Jessica Paquette authored
If the size is < 2, then we just break anyway.
-
Jessica Paquette authored
We have `using llvm`, we don't need to say `llvm::`.
-
Jessica Paquette authored
The MachineOutliner + SuffixTree both used `std::vector` everywhere because I didn't know any better at the time. At least for small types, such as `unsigned` and iterators, I can't see any particular reason to use std::vector over `SmallVector` here.
-
Mircea Trofin authored
This reverts commit a7354899. The way stdout/stderr get routed seems to work differently locally and on the bots. Investigating.
-
Adrian Prantl authored
-
Mircea Trofin authored
This hooks up the interactive model runner to the passes that support ml-based decisions. Because the interface to this runner is the exact same as the one used during inference, we just reuse the exact same setup we have for "release mode". This makes "release mode" a misnomer - and that's something we needed to resolve sooner or later (e.g. supporting more than one embedded model for the same problem was another reason to drop that nomenclature). That will happen in a subsequent change. To use this evaluator, just enable the pass in (currently) "release" mode, but also pass the base name for the 2 channel files via the pass-specific flag. The 2 files are the responsibilty of the hosting process. The added tests use a minimal, toy such host, illustrating setup and communication. Differential Revision: https://reviews.llvm.org/D143218
-
Adrian Prantl authored
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D143281
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D143230
-
Bruno Cardoso Lopes authored
D115187 exposed CoroutineSuspendExpr's operand, which makes some nodes to show up twice during the traversal, confusing the check for unsequenced operations. Skip the operand since it's already handled as part of the common expression and get rid of the misleading warnings. https://github.com/llvm/llvm-project/issues/56768 Differential Revision: https://reviews.llvm.org/D142077
-
Jessica Paquette authored
Recommit with bug fixes + added testcases to the outliner. Also adds some debug output. We found a case in the Swift benchmarks where the MachineOutliner introduces about a 20% compile time overhead in comparison to building without the MachineOutliner. The origin of this slowdown is that the benchmark has long blocks which incur lots of LRU checks for lots of candidates. Imagine a case like this: ``` bb: i1 i2 i3 ... i123456 ``` Now imagine that all of the outlining candidates appear early in the block, and that something like, say, NZCV is defined at the end of the block. The outliner has to check liveness for certain registers across all candidates, because outlining from areas where those registers are used is unsafe at call boundaries. This is fairly wasteful because in the previously-described case, the outlining candidates will never appear in an area where those registers are live. To avoid this, precalculate areas where we will consider outlining from. Anything outside of these areas is mapped to illegal and not included in the outlining search space. This allows us to reduce the size of the outliner's suffix tree as well, giving us a potential memory win. By precalculating areas, we can also optimize other checks too, like whether or not LR is live across an outlining candidate. Doing all of this is about a 16% compile time improvement on the case. This is likely useful for other targets (e.g. ARM + RISCV) as well, but for now, this only implements the AArch64 path. The original "is the MBB safe" method still works as before.
-
John Demme authored
GitPython 3.1.28 has a security vulnerability which was fixed in 3.1.30: https://nvd.nist.gov/vuln/detail/CVE-2022-24439 Differential Revision: https://reviews.llvm.org/D143238
-
Michael Jones authored
This patch adds the final conversion to printf, %g. This is a floating point conversion that selects automatically between the %e and %f formats based on the precision requested and resulting exponent. Additionally it trims trailing zeroes. With this done all that's left for finishing printf is adding long double support to the decimal float conversions. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D143006
-
Ben Langmuir authored
We were not hashing constant strings in the command-line, only ones that required allocations. This was causing us to get the same hash across different flag options. rdar://101053855 Differential Revision: https://reviews.llvm.org/D143027
-
Haojian Wu authored
-
Parker Schuh authored
Fix tsan problem where the per-thread shared_ptr() can be locked right before the cache is destroyed causing a race where it tries to remove an entry from a destroyed cache. This is a rollforward with fixes of https://reviews.llvm.org/rGbcc10817d5569172ee065015747e226280e9b698 (originally https://reviews.llvm.org/D142394). The original patch exposed an asan problem on aarch64, which is fixed by simply calling the context destructors properly. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D143294
-
Louis Dionne authored
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D143224
-
Joseph Huber authored
Summary: This list previously had empty members. Fix it and print out which architectures we're building for as a status message.
-
Louis Dionne authored
Some clients use libc++ with modules and LSV (Local Submodule Visibility) enabled, and we see frequent downstream breakage caused by that. Until modules use LSV by default (which is apparently a desire), add a CI job that tests this sub-configuration to avoid high cost downstream breakage. For more information about LSV, see https://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150504/128395.html. Differential Revision: https://reviews.llvm.org/D143273
-
Aart Bik authored
Even though we introduced the size_hint, we never used it. This is a very first step, using the hint during the codegen path. Note that we can refine the heuristics. Also, we need to start adding the hint on all allocation generated for reading tensors, converting tensors, etc. Reviewed By: Peiming, bixia Differential Revision: https://reviews.llvm.org/D143292
-
George Petterson authored
This commit adds a canonicalization pattern for tensor.pad which changes the output type to static at each dimension where the input shape is static and the high and low operands are constants. This corrects an issue arising in Torch-MLIR where pad ops would sometimes introduce dynamic shapes unnecessarily. Reviewed By: raikonenfnu Differential Revision: https://reviews.llvm.org/D143135
-
Craig Topper authored
Delete the opt intrinsics since they are now identical. I left the side effects due to user expectations about how these interact with things like inline assembly or function calls. Or that they wouldn't be hoisted. I think we should look at other ways to address thoughs. If I could, I'd rename them these somehow to distance them from the vsetvli instruction. In some sense they only query the VL for a particular SEW and LMUL. They don't guarantee a vsetvli instruction will be emitted. Fixes https://github.com/llvm/llvm-project/issues/59359 Reviewed By: rogfer01, kito-cheng Differential Revision: https://reviews.llvm.org/D143220
-
Adrian Prantl authored
-
Craig Topper authored
If .L1 is not within +-4KiB range, convert ``` bge a0, a1, .L1 ``` to ``` blt a0, a1, 8 j .L1 ``` In this patch, if the symbol is unresolved at assembly time, do not do this relaxation. Fix the bug reported in https://bugs.llvm.org/show_bug.cgi?id=47910 Co-authored-by: Hsiangkai Wang Reviewed By: asb Differential Revision: https://reviews.llvm.org/D108961
-
Med Ismail Bennani authored
This patch introduces a new `GetScriptedImplementation` method to the SBProcess class in the SBAPI. It will allow users of Scripted Processes to fetch the scripted implementation object from to script interpreter to be able to interact with it directly (without having to go through lldb). This allows to user to perform action that are not specified in the scripted process interface, like calling un-specified methods, but also to enrich the implementation, by passing it complex objects. Differential Revision: https://reviews.llvm.org/D143236 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Tue Ly authored
-
Tue Ly authored
instructions. For clang-11, having -mfma without -mavx2 does not generate fma instructions, causing a build bot to fail on log10_test. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D143234
-
Tue Ly authored
Add bazel targets and unit tests for single precision exponential, logarithm, trigonometric, inverse trig, hyperbolic, and inverse hyperbolic functions. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D143275
-
Lang Hames authored
-
Florian Hahn authored
Passing ArrayRef doesn't force users to construct a SmallVector to pass blocks.
-
Khem Raj authored
On 32-bit glibc>=2.34 systems using 64bit time_t build fails because _FILE_OFFSET_BITS is undefined here but _TIME_BITS is still set to 64 Fixes ``` /usr/include/features-time64.h:26:5: error: "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" | # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" | ^ | 1 error generated. ``` Reviewed By: thesamesam, MaskRay Differential Revision: https://reviews.llvm.org/D140812
-
Sanjay Patel authored
shuffle (fabs X), Mask --> fabs (shuffle X, Mask) shuffle (fabs X), (fabs Y), Mask --> fabs (shuf X, Y, Mask) https://alive2.llvm.org/ce/z/JH2nkf This generalizes the existing fneg transforms to also work with fabs. A likely follow-up would generalize this further to move any unary intrinsic op.
-
Anastasia Stulova authored
-
Janek van Oirschot authored
Revert "[AMDGPU] Modify adjustInliningThreshold to also consider the cost of passing function arguments through the stack" This reverts commit 142c28ff.
-
Aart Bik authored
in particular, the trailing COO optimization was not desribed in the general layout description Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D143284
-
Fangrui Song authored
Similar to e7a7ad13 and 2bf06d93 for other linker script syntax. Close https://github.com/llvm/llvm-project/issues/60496
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/Transform/Transforms/TransformInterpreterPassBase.cpp:248:14: error: unused variable 'root' [-Werror,-Wunused-variable]
-
Fangrui Song authored
For -fno-pic, without DW_EH_PE_indirect, the personality routine pointer in a CIE needs an R_AARCH64_ABS64 relocation. In common configurations that `__gcc_personality_v0` is defined in a shared object, this will lead to a discouraged canonical PLT entry, or, if `ld.lld -z notext` (betwen D122459 and D143136), a dynamic R_AARCH64_ABS64 relocation with an incorrect offset: https://github.com/llvm/llvm-project/issues/60392 Since GCC uses DW_EH_PE_indirect for -fno-pic code (the behavior hasn't changed since the initial port in 2012), let's follow suit by simplifying the code. ( For tiny and small code models, we use DW_EH_PE_sdata8 instead of GCC's DW_EH_PE_sdata4. This is a deliberate choice to support personality-.eh_frame offset > 2GiB. This is necessary for small code model since "Max text segment size < 2GiB" but it is unnecessary to make `-fno-pic -mcmodel={tiny,small}` different: The scenarios that uses both -fno-pic and C++ exceptions have been increasingly rare now, so there is little advantage optimizing for the little size saving with code complexity. ) Reviewed By: MatzeB Differential Revision: https://reviews.llvm.org/D143039
-