- Nov 19, 2022
-
-
Med Ismail Bennani authored
This patch improves the ScriptedPythonInterface::Dispatch method to support passing lldb_private types to the python implementation. This will allow, for instance, the Scripted Process python implementation to report errors when reading memory back to lldb. To do so, the Dispatch method will transform the private types in the parameter pack into `PythonObject`s to be able to pass them down to the python methods. Then, if the call succeeded, the transformed arguments will be converted back to their original type and re-assigned in the parameter pack, to ensure pointers and references behaviours are preserved. This patch also updates various scripted process python class and tests to reflect this change. rdar://100030995 Differential Revision: https://reviews.llvm.org/D134033 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Med Ismail Bennani authored
This patch extends the template specialization of PythonFormat structs and makes use of the pre-existing PythonObject class to format arguments and pass them to the right method, before calling it. This is a preparatory patch to merge PythonFormat with SWIGPythonBridge's GetPythonValueFormatString methods. Differential Revision: https://reviews.llvm.org/D138248 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Sami Tolvanen authored
Avoid unnecessary folding as X86KCFIPass would have to unfold these anyway when emitting the KCFI_CHECK.
-
Krzysztof Parzyszek authored
Some instructions that don't actually exist in hardware were emitted by the generator script in error. Delete them from the .td files.
-
Arthur Eubanks authored
D137915 has somehow caused a flang bot to fail: https://lab.llvm.org/buildbot/#/builders/191/builds/11279. Given that the issue is with the legacy pipeline registration code and the legacy pipeline registration infrastructure is to be removed soon, remove this part of Bye.
-
Peiming Liu authored
This is the beginning patch of a sequence of dependent patches that in together provide the affine expression on matched indexing mapping for sparse tensors. This patch itself simply move `genAffine` into loop emitter to be prepared for upcoming patches. D138169 provides support for affine expression on dense dimensions only (except for constant affine expression) D138170 provides support for constant affine expressions on dense dimensions D138171 provides **merger** support for affine expression on sparse dimension (without codegen) D138172 provides **codegen** support (by generating a "filter" loop) for affine expression on sparse dimensions. D138173 fixes a crash on resolveCycle when dealing with affine expressions. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D138168
-
Simon Pilgrim authored
-
Evgenii Stepanov authored
Try to trigger an MTE fault on double/invalid free by touching the first byte of the allocation with the provided pointer. Differential Revision: https://reviews.llvm.org/D137352
-
Sanjay Patel authored
This is no externally visible change intended, but appears to be a noticeable (surprising) improvement in compile-time based on: https://llvm-compile-time-tracker.com/compare.php?from=0f3e72e86c8c7c6bf0ec24bf1e2acd74b4123e7b&to=5e8c2026d10e8e2c93c038c776853bed0e7c8fc1&stat=instructions:u The early returns in the individual fold functions are not good enough to avoid the overhead of the many "fold*" calls, so this speeds up the main instruction loop enough to make a difference.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Slava Zakharin authored
Clang uses signext/zeroext attributes for integer arguments shorter than the default 'int' type on a target. So Flang has to match this for functions from Fortran runtime and also for BIND(C) routines. This patch implements ABI adjustments only for Fortran runtime calls. BIND(C) part will be done separately. This resolves https://github.com/llvm/llvm-project/issues/58579 Differential Revision: https://reviews.llvm.org/D137050
-
Philip Reames authored
The major change is falling through to ComputeKnownBits when we don't have an implementation of ComputeNumSignBits due to conservatism over scalable vectors. Right now, we're mostly conservative in the same cases, but this allows our results to improve when we change ComputeKnownBits without also needing to improve ComputeNumSignBits at the same time.
-
Valentin Clement authored
Add a `ClassIs` function that takes a descriptor and a type desc to implement the check needed by the CLASS IS type guard in SELECT TYPE construct. Since the kind type parameter are directly folded in the type itself in Flang and the type descriptor is a global, the function just check if the type descriptor address of the descriptor is equivalent to the type descriptor address of the global. If not, it check in the parents of the descriptor's type descriptor. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D138279
-
Slava Zakharin authored
Translate align, noalias, noundef, signext and zeroext result attributes from llvm.func to LLVM IR. This is needed for https://github.com/llvm/llvm-project/issues/58579 Differential Revision: https://reviews.llvm.org/D137049
-
Rob Suderman authored
Change for kDynamicShape means the size needs to be updated to a new value for slice operation shape inference. Landing fix. Reviewed By: NatashaKnk Differential Revision: https://reviews.llvm.org/D138314
-
Nico Weber authored
matchLinkerVeneer() returns 3 if `Instruction` and the last two instructions in `[Instructions.begin, Instructions.end())` match the pattern ADRP x16, imm ADD x16, x16, imm BR x16 BinaryContext.cpp used to use --Count; for (auto It = std::prev(Instructions.end()); Count != 0; It = std::prev(It), --Count) { ...use It... } to walk these instructions. The first `--Count` skips the instruction that's in `Instruction` instead of in `Instructions`. The loop then walks over `Instructions`. However, on the last iteration, this calls `std::prev()` on an iterator that points at the container's begin(), which can blow up. Instead, use rbegin(), which sidesteps this issue. Fixes test/AArch64/veneer-gold.s on a macOS host. With this, check-bolt passes on macOS. Differential Revision: https://reviews.llvm.org/D138313 -
Kelvin Li authored
Fix https://github.com/llvm/llvm-project/issues/56303 Differential Revision: https://reviews.llvm.org/D137742
-
Valentin Clement authored
Remove `appendTableEntry` as it is not used. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D138293
-
Bill Wendling authored
This patch is spamming compiles with unhelpful and confusing messages. E.g. the Linux kernel uses "grep -q" in several places. It's meant to quit with a return code of zero when the first match is found. This can cause a SIGPIPE signal, but that's expected, and there's no way to turn this error message off to avoid spurious error messages. UNIX03 apparently doesn't require printing an error message on SIGPIPE, but specifically when there's an error on the stdout stream in a normal program flow, e.g. when SIGPIPE trap is disabled. A separate patch is planned to address the specific case we care most about (involving llvm-nm). This reverts commit b89bcefa. Link: https://github.com/llvm/llvm-project/issues/59037 Link: https://github.com/ClangBuiltLinux/linux/issues/1651 Differential Revision: https://reviews.llvm.org/D138244
-
Aaron Ballman authored
-
Krzysztof Parzyszek authored
Checks for builtins for the following instructions were aded: V6_v6mpyhubs10 V6_v6mpyhubs10_vxx V6_v6mpyvubs10 V6_v6mpyvubs10_vxx V6_vlutvvbi V6_vlutvvb_oracci V6_vlutvwhi V6_vlutvwh_oracci
-
Peter Rong authored
Signed-off-by:Peter Rong <PeterRong96@gmail.com>
-
Philip Reames authored
This is a continuation of the series of patches adding lane wise support for scalable vectors in various knownbit-esq routines. The basic idea here is that we track a single lane for scalable vectors which corresponds to an unknown number of lanes at runtime. This is enough for us to perform lane wise reasoning on many arithmetic operations. Differential Revision: https://reviews.llvm.org/D137141
-
Abhina Sreeskantharajan authored
This patch sets the text flag correctly for llvm-reduce files Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D138304
-
Matt Arsenault authored
+/-0 is obviously foldable. Other non-special, non-subnormal values are also probably OK. For denormal values, check the calling function's denormal mode. For now, don't fold denormals to the input for IEEE mode because as far as I know the langref is still pretending LLVM's float isn't IEEE. Also folds undef to 0, although NaN may make more sense. Skips folding nans and infinities, although it should be OK to fold those in a future change.
-
Michael Maitland authored
[RISCV][CodeGen] Chapter of vector instruction type corresponds with chapters in RISCV vector specification. NFC The [vector spec](https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc) is organized in chapters based on instruction type. The comments in the tablegen marked the incorrect chapters. This change updates the comments with the correct chapter numbers. Differential Revision: https://reviews.llvm.org/D138311
-
Diego Caballero authored
This utility is useful when we need to know if shape is dynamic and we don't have a Type itself. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D138267
-
Matt Arsenault authored
-
Philip Reames authored
When we have a precisely known VLEN, we can replace runtime usage of VLENB with compile time constants. This converts offsets involving both fixed and scalable components into fixed offsets. The result is that we avoid the csr read of vlenb, and can often fold the multiply as well. Differential Revision: https://reviews.llvm.org/D137591
-
Michael Maitland authored
On x86 and AArch, SIMD instructions encode all of the scheduling information in the instruction itself. For example, VADD.I16 q0, q1, q2 is a neon instruction that operates on 16-bit integer elements stored in 128-bit Q registers, which leads to eight 16-bit lanes in parallel. This kind of information impacts how the instruction takes to execute and what dependencies this may cause. On RISCV however, the data that impacts scheduling is encoded in CSR registers such as vtype or vl, in addition with the instruction itself. But MCA does not track or use the data in these registers. This patch fixes this problem by introducing Instruments into MCA. * Replace `CodeRegions` with `AnalysisRegions` * Add `Instrument` and `InstrumentManager` * Add `InstrumentRegions` * Add RISCV Instrument and `InstrumentManager` * Parse `Instruments` in driver * Use instruments to override schedule class * RISCV use lmul instrument to override schedule class * Fix unit tests to pass empty instruments * Add -ignore-im clopt to disable this change A prior version of this patch was commited in 5e82ee53. 2323a4ee reverted that change because the unit test files caused build errors. The change with fixes were committed in b88b8307 but reverted once again e8e92c83 due to more build errors. This commit adds the prior changes and fixes the build error. Differential Revision: https://reviews.llvm.org/D137440
-
Krzysztof Parzyszek authored
-
Mirko Brkusanin authored
Differential Revision: https://reviews.llvm.org/D133012
-
Matt Arsenault authored
-
zhijian authored
Reviewers: James Henderson, Esme Yi Differential Revision: https://reviews.llvm.org/D135887
-
Nico Weber authored
Without this, clang builds a binary for macOS on a macOS host, and then the linker complains that it doesn't know the -q flag. Differential Revision: https://reviews.llvm.org/D138306
-
Nico Weber authored
"tac" doesn't exist on macOS, so this makes the test pass there. Differential Revision: https://reviews.llvm.org/D138305
-
Nico Weber authored
* Stop setting config.python_executable in Unit/lit.site.cfg.py.in. All other projects only set this in the main lit config, not in the one for unit tests. (Unit tests don't spawn Python.) * Set config.python_executable to Python3_EXECUTABLE in main lit.site.cfg.py.in instead of PYTHON_EXECUTABLE. All other files did this in c4c3883b. * Stop setting enable_abi_breaking_checks, enable_backtrace, enable_shared. Nothing in bolt's tests (or in lit) reads them. Differential Revision: https://reviews.llvm.org/D138299
-
Alex Langford authored
In 52f39853 the option LLDB_INCLUDE_TESTS was moved above the inclusion of LLDBStandalone. This isn't a problem per-se, but it changes the default value of LLDB_INCLUDE_TESTS in standalone builds. LLDBStandalone explicitly sets LLVM_INCLUDE_TESTS to true, indicating that for standalone builds this is considered the default behavior. This patch restores said default behavior. Differential Revision: https://reviews.llvm.org/D138237
-
Petar Avramovic authored
When selectVOP3PMadMixModsImpl fails, it can still create new copy instr via selectVOP3ModsImpl. When selectG_FMA_FMAD gives up, new copy instr will remain dead but will not be automatically removed. InstructionSelect does not check if instructions created during selection are dead. Such dead copy doesn't have register class on dst operand and causes crash. Fix is to build copy when operands are being added to selected instruction. Differential Revision: https://reviews.llvm.org/D138044
-