- Mar 08, 2023
-
-
Jez Ng authored
Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D145261
-
Siva Chandra authored
All syscall wrapper functions which have unit tests have been enabled. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D145452
-
Michael Jones authored
Previously we only linked to the channel within the discord. Differential Revision: https://reviews.llvm.org/D145283
-
Mehdi Amini authored
Differential Revision: https://reviews.llvm.org/D145398
-
Jonas Devlieghere authored
This patch copies over log files to the diagnostic directory. The caveat here is that this only works for logs that are redirected to a file. The implementation piggybacks of the mapping kept by the debugger. The advantage is that it's free until you generate the diagnostics, at which point you only pay the price of copying over the file. Differential revision: https://reviews.llvm.org/D135631
-
Craig Topper authored
We need to check for identifier before optionally parsing a minus sign.
-
Owen Pan authored
See https://reviews.llvm.org/D137486#3910570.
-
Michael Spencer authored
Add `module.modulemap` as a file we cache stat failures for as there are a lot of stats for this file. Clang currently uses the files it should minimize as a proxy for files it should cache stat failures for, but really we should cache stat failures for all paths we don't expect to change during the build. Unfortunately the VFS API does not know _why_ clang is trying to stat a path, so we use the filename as a proxy. Differential Revision: https://reviews.llvm.org/D145526
-
Daniel Thornburgh authored
LLVM_ENABLE_PROJECTS is automatically forwarded from stage 1 builds to stage 2 builds, so setting FUCHSIA_ENABLE_LLDB has no effect on two-stage builds. Instead, add FUCHSIA_ENABLE_LLDB to the stage one build as well. This also disables curses and libedit by default for now in both stage1 and stage 2 builds; these should be opt-in. Reviewed By: haowei Differential Revision: https://reviews.llvm.org/D145449
-
Jez Ng authored
This implements ld64's checks for duplicate method names in categories & classes. In addition, this sets us up for implementing Obj-C category merging. This diff handles the most of the parsing work; what's left is rewriting those category / class structures. Numbers for chromium_framework: base diff difference (95% CI) sys_time 2.182 ± 0.027 2.200 ± 0.047 [ -0.2% .. +1.8%] user_time 6.451 ± 0.034 6.479 ± 0.062 [ -0.0% .. +0.9%] wall_time 6.841 ± 0.048 6.885 ± 0.105 [ -0.1% .. +1.4%] samples 33 22 Fixes https://github.com/llvm/llvm-project/issues/54912. Reviewed By: #lld-macho, thevinster, oontvoo Differential Revision: https://reviews.llvm.org/D142916 -
Jeffrey Tan authored
Adding a new SBDebugger::SetDestroyCallback() API. This API can be used by any client to query for statistics/metrics before exiting debug sessions. Differential Revision: https://reviews.llvm.org/D143520
-
Craig Topper authored
MatchOperand_NoMatch will fall back to regular operand parsing. Returning MatchOperand_ParseFail will prevent this. We also printed our own error message which we should only do for MatchOperand_ParseFail.
-
wren romano authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D145432
-
Owen Pan authored
See https://reviews.llvm.org/D142412#4078127.
-
Han Zhu authored
`RankVectorTypes` is a not an equivalence relation so when it is used in `std::unique`, the behavior is undefined. Create `RankVectorTypesEq` and use that instead.
-
Chia-hung Duan authored
With memory group, we always mark the free blocks from the same region. Therefore, we don't need to calculate the offset from base and determine the region index. Also improve the way we deal with the last block in the region so that the loop body is simpler. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D143303
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D145518
-
David Green authored
There is a fold to create LD1DUPpost from dup(load) that can be postinc. If the dup is used by a "by element" operation such as fmul or fma then it can be slightly better to fold the dup into the fmul instead, which produces slightly fast code. ld1r { v1.4s }, [x0], #4 fmul v0.4s, v1.4s, v0.4s vs ldr s1, [x0], #4 fmul v0.4s, v0.4s, v1.s[0] This could also be done with integer operations such as smull/umull too, so long as the load/dup gets correctly combined into the mul operation. Currently this just operates on foating point types. Differential Revision: https://reviews.llvm.org/D145184 -
Kazu Hirata authored
This patch freezes potentially poisonous conditions in conditional branches so that we do not "move up" conditional branches "br i1 poison". Differential Revision: https://reviews.llvm.org/D145008
-
Aaron Ballman authored
The proposal is about the behavior of the _Float16, _Float32, and _Float64 types and whether they undergo default argument promotions (they don't). Clang doesn't yet support TS 18661 or the parts that made it into C2x, so we don't implement this paper.
-
Dave Lee authored
Redefine the `p` alias to the `dwim-print` command instead of `expression`. See https://reviews.llvm.org/D138315 for the introduction of `dwim-print`. To summarize, `dwim-print` is, as the name suggests, a command for printing. How a value gets printed, is decided by `dwim-print`. In some cases, `dwim-print` will print values using the same means as `frame variable` (because it's generally more reliable and faster that `expression` evaluation), and in other cases `dwim-print` uses the same code path as `expression`. This change has been tested in two different ways: 1. Re-aliasing `p` to `dwim-print`, as in this patch 2. Redefinining the `expression` command to `CommandObjectDWIMPrint` Previously, many of the lldb's tests used `p`, and which meant a test run with `p` aliases to `dwim-print` was a good way to test `dwim-print`. However most of those tests were updated to use `expression` explicitly (in anticipation of this change). Now, the best way to test `dwim-print` is the second approach: ``` diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index 373c894f34f5..9c943cd30c7c 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -539,7 +539,7 @@ void CommandInterpreter::LoadCommandDictionary() { REGISTER_COMMAND_OBJECT("diagnostics", CommandObjectDiagnostics); REGISTER_COMMAND_OBJECT("disassemble", CommandObjectDisassemble); REGISTER_COMMAND_OBJECT("dwim-print", CommandObjectDWIMPrint); - REGISTER_COMMAND_OBJECT("expression", CommandObjectExpression); + REGISTER_COMMAND_OBJECT("expression", CommandObjectDWIMPrint); REGISTER_COMMAND_OBJECT("frame", CommandObjectMultiwordFrame); REGISTER_COMMAND_OBJECT("gui", CommandObjectGUI); REGISTER_COMMAND_OBJECT("help", CommandObjectHelp); ``` When the test suite is run with this change, there are two main categories of test failures for specific to features that `dwim-print` intentionally doesn't support: 1. Top level expressions (`--top-level`/`-p`) 2. Multiline expressions In cases where the behavior of `expression` is needed, users can use `expression` at those times. Differential Revision: https://reviews.llvm.org/D145189
-
Alexey Bataev authored
Previously only the very first gather/buildvector node might be probed for reshuffling of other nodes. But the compiler may do the same for other gather/buildvector nodes too, just need to check the dependency and postpone the emission of the dependent nodes, if the origin nodes were not emitted yet. Part of D110978 Differential Revision: https://reviews.llvm.org/D144958
-
Snehasish Kumar authored
Update the isRuntime check to only match against known memprof filenames where interceptors are defined. This avoid issues where the path does not include the directory based on how the runtime was compiled. Also update the unittest. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D145521
-
Mark de Wever authored
Since the CI is broken, I didn't investigate why it happened. It just fixes it.
-
Mitch Phillips authored
Getting compile units for data addresses is much slower, as it often requires a slow fallback path to walk every DWARF entry, as data addresses don't fall into the compilation unit ranges. Most lookups are code addresses, and don't need this logic. Split the functionality out so that we restore the fast-path behaviour for the code lookups. More context at: https://discourse.llvm.org/t/llvm-symbolizer-has-gotten-extremely-slow/67262 Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D145009
-
James Y Knight authored
After the work in a538d1f1 5351878b 372240df, and subsequently cleanup of all the in-tree targets, we can now delete the support for positional operand matching! This removes three options which could previously be set in a Target's "InstrInfo" tablegen definition: - useDeprecatedPositionallyEncodedOperands - decodePositionallyEncodedOperands - noNamedPositionallyEncodedOperands (Also announced at https://discourse.llvm.org/t/tablegen-deleting-deprecated-positional-instruction-operand-matching-support/68524) Differential Revision: https://reviews.llvm.org/D144210
-
Rahul Kayaith authored
This updates most (all?) error-diagnostic-emitting python APIs to capture error diagnostics and include them in the raised exception's message: ``` >>> Operation.parse('"arith.addi"() : () -> ()')) Traceback (most recent call last): File "<stdin>", line 1, in <module> mlir._mlir_libs.MLIRError: Unable to parse operation assembly: error: "-":1:1: 'arith.addi' op requires one result note: "-":1:1: see current operation: "arith.addi"() : () -> () ``` The diagnostic information is available on the exception for users who may want to customize the error message: ``` >>> try: ... Operation.parse('"arith.addi"() : () -> ()') ... except MLIRError as e: ... print(e.message) ... print(e.error_diagnostics) ... print(e.error_diagnostics[0].message) ... Unable to parse operation assembly [<mlir._mlir_libs._mlir.ir.DiagnosticInfo object at 0x7fed32bd6b70>] 'arith.addi' op requires one result ``` Error diagnostics captured in exceptions aren't propagated to diagnostic handlers, to avoid double-reporting of errors. The context-level `emit_error_diagnostics` option can be used to revert to the old behaviour, causing error diagnostics to be reported to handlers instead of as part of exceptions. API changes: - `Operation.verify` now raises an exception on verification failure, instead of returning `false` - The exception raised by the following methods has been changed to `MLIRError`: - `PassManager.run` - `{Module,Operation,Type,Attribute}.parse` - `{RankedTensorType,UnrankedTensorType}.get` - `{MemRefType,UnrankedMemRefType}.get` - `VectorType.get` - `FloatAttr.get` closes #60595 depends on D144804, D143830 Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D143869 -
Michael Buch authored
Reland "[lldb][TypeSystemClang] Use the CXXFunctionPointerSummaryProvider for member-function pointers" With this patch member-function pointers are formatted using `CXXFunctionPointerSummaryProvider`. This turns, ``` (lldb) v pointer_to_member_func (void (Foo::*)()) ::pointer_to_member_func = 0x00000000000000000000000100003f94 ``` into ``` (lldb) v pointer_to_member_func (void (Foo::*)()) ::pointer_to_member_func = 0x00000000000000000000000100003f94 (a.out`Foo::member_func() at main.cpp:3) ``` Differential Revision: https://reviews.llvm.org/D145242
-
Michael Buch authored
Before this patch, LLDB used to format pointers to members, such as, ``` void (Foo::*pointer_to_member_func)() = &Foo::member_func; ``` as `eFormatBytes`. E.g., ``` (lldb) v pointer_to_member_func (void (Foo::*)()) $1 = 94 3f 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ``` This patch makes sure we format pointers to member functions the same way we do regular function pointers. After this patch we format member pointers as: ``` (lldb) v pointer_to_member_func (void (Foo::*)()) ::pointer_to_member_func = 0x00000000000000000000000100003f94 ``` Differential Revision: https://reviews.llvm.org/D145241
-
Alex Langford authored
Currently empty arguments are not respected. They are silently dropped in two places: (1) when extracting them from the target.run-args setting and (2) when constructing the lldb-argdumper invocation. (1) is actually a regression from a few years ago. We did not always drop empty arguments. See 31d97a5c. rdar://106279228 Differential Revision: https://reviews.llvm.org/D145450
-
Dave Lee authored
Change lldb-vscode to use the `expression` command for generating completions, instead of the `p` alias. Aliases are user overrideable, and even deletable, but the `expression` command is unchangeable. See D141539 where a similar replacement was done to tests. Differential Revision: https://reviews.llvm.org/D145437
-
Andrew Gozillon authored
[Flang][OpenMP][MLIR][Driver][bbc] Add -fopenmp-is-device flag to Flang -fc1 & the bbc tool, and omp.is_device attribute Adds the -fopenmp-is-device flag to bbc and Flang's -fc1 (but not flang-new) and in addition adds an omp.is_device attribute onto the module when fopenmp is passed, this is a boolean attribute that is set to false or true dependent on if fopenmp-is-device is specified alongside the fopenmp flag on the commandline when invoking flang or bbc. Reviewers: awarzynski kiranchandramohan Differential Revision: https://reviews.llvm.org/D144864
-
Piotr Zegar authored
-
Fangrui Song authored
GNU ld's internal linker scripts for RISC-V place .sdata and .sbss close. This makes GP relaxation more profitable. While here, when .sbss is present, set `__bss_start` to the start of .sbss instead of .bss, to match GNU ld. Note: GNU ld's internal linker scripts have symbol assignments and input section descriptions which are not relevant for modern systems. We only add things that make sense. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D145118
-
Mark de Wever authored
LWG3358 §[span.cons] is mistaken that to_address can throw Since last - first has to throw tests are added to make sure this always happens. Depends on D142808 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D142843
-
Mark de Wever authored
LWG3839 range_formatter's set_separator, set_brackets, and underlying functions should be noexcept Adds tests for: template<ranges::input_range R, class charT> struct range-default-formatter<range_format::sequence, R, charT> These were missing, the format functions tests for the sequences are already present. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D144286 -
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D145466
-
Siva Chandra Reddy authored
Also, an "arm" subfolder for baremetal config has been added. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D145476
-
Mark de Wever authored
LWG3881 Incorrect formatting of container adapters backed by std::string Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D144277
-
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D145475
-