- Feb 19, 2024
-
-
Chen Zheng authored
P9 has vxform `Vector Extract Element Instructions` like `vextuwrx` and P10 has vxform `Vector Insert Element instructions` like `vinsd`. Update the instruction cost reflecting these instructions. Fixes https://github.com/llvm/llvm-project/issues/50249
-
XinWang10 authored
https://github.com/llvm/llvm-project/commit/1d27669e8ad07f8f2 add support for fold 512-bit concat(blendi(x,y,c0),blendi(z,w,c1)) to AVX512BW mask select. But when the type of subvector is v16i16, we need to generate repeated mask to make the result correct. The subnode looks like t87: v16i16 = X86ISD::BLENDI t132, t58, TargetConstant:i8<-86>.
-
Maksim Panchenko authored
Static calls are calls that are getting patched during runtime. Hence, for every such call the kernel runtime needs the location of the call or jmp instruction that will be patched. Instruction locations together with a corresponding key are stored in the static call site table. As BOLT rewrites these instructions it needs to update the table.
-
David Tellenbach authored
-
David Tellenbach authored
Fix an issue that produces a wrong coverage mapping when using binary conditional operators as show in the example below. Before this patch: 1| 1|int binary_cond(int x) { 2| 1| x = x ?: 4; 3| 1| int y = 0; 4| 0| return x; <-- Not covered 5| 1|} After this patch: 1| 1|int binary_cond(int x) { 2| 1| x = x ?: 4; 3| 1| int y = 0; 4| 1| return x; <-- Covered 5| 1|} -
Danny Mösch authored
Fixes #56021.
-
Florian Hahn authored
VPInstruction doesn't rely on the underlying instruction any longer for codegen, remove the unneeded setUnderlyingInstr.
-
Timm Bäder authored
-
Timm Bäder authored
See the attached test case.
-
Mark de Wever authored
This fixes two issues. The return value ---------------- Based on the wording [istream.unformatted]/37 Effects: Behaves as an unformatted input function (as described above), except that it does not count the number of characters extracted and does not affect the value returned by subsequent calls to gcount(). After constructing a sentry object, if rdbuf() is a null pointer, returns -1. [istream.unformatted]/1 ... It then creates an object of class sentry with the default argument noskipws (second) argument true. If the sentry object returns true, when converted to a value of type bool, the function endeavors to obtain the requested input. ... It could be argued the current behaviour is correct, however constructing a istream rdbuf() == nullptr creates a sentry that returns false; its state is always bad in this case. As mentioned in the bug report, after this change the 3 major implementations behave the same. The setting of the state ------------------------ When pubsync returned -1 it updated the local __state variable and returned. This early return caused the state up the istream not to be updated to the new state. Fixes: https://github.com/llvm/llvm-project/issues/51497 Fixes: https://github.com/llvm/llvm-project/issues/51499 --------- Co-authored-by:
Louis Dionne <ldionne.2@gmail.com>
-
Quinn Dawkins authored
This mirrors the existing pattern for pushing unpack down through padding, restricting to cases where the padded dimensions aren't tiled by the pack. Additionally reformats the propagation test to make it easier to read.
-
- Feb 18, 2024
-
-
Nick Anderson authored
fixes #81766
-
Timm Bäder authored
RT must be the type of the RHS, otherwise this later fails when we set the RHS value to the temporary variable.
-
Sergei Barannikov authored
EnumArgument may be a string or an identifier. If it is a string, it should be parsed as unevaluated string literal. Add IsString flag to EnumArgument so that the parser can choose the correct parsing method. Target-specific attributes that share spelling may have different attribute "prototypes". For example, ARM's version of "interrupt" attribute accepts a string enum, while MSP430's version accepts an unsigned integer. Adjust ClangAttrEmitter so that the generated `attributeStringLiteralListArg` returns the correct mask depending on target triple. It is worth noting that even after this change some string arguments are still parsed as identifiers or, worse, as expressions. This is because of some special logic in `ParseAttributeArgsCommon`. Fixing it is out of scope of this patch.
-
Piotr Zegar authored
- Fixed issue with invalid code being generated when static_cast is put into fix, and no space were added before it. - Fixed issue with duplicate parentheses being added when double implicit cast is used. Closes #71848
-
Sergei Barannikov authored
`MCRegister` is preferred over `unsigned` nowadays.
-
Felix Schneider authored
This patch aligns the shift Ops in `arith` with respective LLVM instructions. Specifically, shifting by an amount equal to the bitwidth of the operand is now defined to return poison. Relevant discussion: https://discourse.llvm.org/t/some-question-on-the-semantics-of-the-arith-dialect/74861/10 Relevant issue: https://github.com/llvm/llvm-project/issues/80960
-
Kareem Ergawy authored
Extends the `omp.parallel` op by adding a `private` clause to model [first]private variables. This uses the `omp.private` op to map privatized variables to their corresponding privatizers. Example `omp.private` op with `private` variable: ``` omp.parallel private(@x.privatizer %arg0 -> %arg1 : !llvm.ptr) { ^bb0(%arg1: !llvm.ptr): // ... use %arg1 ... omp.terminator } ``` Whether the variable is private or firstprivate is determined by the attributes of the corresponding `omp.private` op. -
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/80949 Previously, I thought the always-inline function can be an exception to enable optimizations as much as possible. However, it looks like it breaks the ABI requirement we discussed later. So it looks better to not import non-inline function bodies at all even if the function bodies are marked as always_inline. It doesn't produce regressions in some degree since the always_inline still works in the same TU.
-
SahilPatidar authored
Progress towards #77627 --------- Co-authored-by:
SahilPatidar <patidarsahil@2001gmail.com> Co-authored-by:
Lei Zhang <antiagainst@gmail.com>
-
Jonas Devlieghere authored
This reverts commit 21ddd7ff because it breaks a bunch of tests: https://lab.llvm.org/buildbot/#/builders/68/builds/69018 https://green.lab.llvm.org/green/view/LLDB/job/as-lldb-cmake/16273
-
Jonas Devlieghere authored
The unit tests only test the Python objects and don't actually use anything from the LLDB module. That means that all the additional complexity in ScriptInterpreterPythonImpl::Initialize is overkill. By doing the initialization by hand, we avoid the annoying ModuleNotFoundError. Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'lldb' The error is the result of us stubbing out the SWIG (specifically `PyInit__lldb`) because we cannot link against libLLDB from the unit tests. The downside of doing the initialization manually is that we do lose a bit of test coverage. For example, issue #70453 also manifested itself in the unit tests. -
Nico Weber authored
-
Aiden Grossman authored
There were a couple things in the comments of BenchmarkRunner.cpp (and maybe other files, I can't really remember) that were bugging me. This patch fixes a couple of minor issues specifically in BenchmarkRunner like typos and makes a couple instances more clear.
-
Jonas Devlieghere authored
The Python documentation [1] says that `PyImport_AppendInittab` should be called before `Py_Initialize()`. Starting with Python 3.12, this is enforced with a fatal error: Fatal Python error: PyImport_AppendInittab: PyImport_AppendInittab() may not be called after Py_Initialize() This commit ensures we only modify the table of built-in modules if Python hasn't been initialized. For Python embedded in LLDB, that means this happen exactly once, before the first call to `Py_Initialize`, which becomes a NO-OP after. However, when lldb is imported in an existing Python interpreter, Python will have already been initialized, but by definition, the lldb module will already have been loaded, so it's safe to skip adding it (again). This fixes #70453. [1] https://docs.python.org/3.12/c-api/import.html#c.PyImport_AppendInittab
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
mlevesquedion authored
It seems the `Traits.md` file was turned into `Traits/_index.md` in https://reviews.llvm.org/D153291, causing links to `Traits.md` to no longer work (instead, `Traits` needs to be used).
-
Artem Tyurin authored
Fixes #62128.
-
Lang Hames authored
The getArchPointerBitWidth method provides direct access to the pointer size for arithmetic or switch statements, instead of requiring clients to use the isArch16Bit / isArch32Bit / isArch64Bit predicates.
-
Alexander Yermolovich authored
Removed some redundant code. Should be NFC change.
-
Peiming Liu authored
…e-ops pass.
-
Alex Langford authored
Reverts llvm/llvm-project#80493 This increased clang compile times by 0.5%. I'll figure out a less expensive way to achieve this.
-
Wanyi authored
Currently running `statistics dump` will trigger lldb to load debug info that's not yet loaded (eg. dwo files). Resulted in a delay in the command return, which, can be interrupting. This patch also added a new option `--load-all-debug-info` asking statistics to dump all possible debug info, which will force loading all debug info available if not yet loaded.
-
Jonas Devlieghere authored
Use a Python Bytes and ByteArray object instead of Integers for TestOwnedReferences and TestBorrowedReferences. These two tests were failing when building against Python 3.12 because these Integer objects had a refcount of 4294967296 (-1). I didn't dig into it, but I suspect the Python runtime has adopted an optimization to decrease refcounting traffic for these simple objects.
-
Craig Topper authored
If the load is used by any signed setccs, we can use a sextload instead of zextload. Then we don't have to give up on extending the load.
-
Paul Kirth authored
-