- Oct 13, 2023
-
-
Tom Yang authored
Add a new command ``` target modules dump separate-debug-info [-j] [<filename> [<filename> [...]]] ``` or ``` image dump separate-debug-info [-j] [<filename> [<filename> [...]]] ``` (since `image` is an alias for `target modules`). This lists the separate debug info files and their current status (loaded or not loaded) for the specified modules. This diff implements this command for mach-O files with OSO and ELF files with dwo. Example dwo: ``` (lldb) image dump separate-debug-info Symbol file: /home/toyang/workspace/dwo-scratch/a.out Type: "dwo" Dwo ID Err Dwo Path ------------------ --- ----------------------------------------- 0x9a429da5abb6faae /home/toyang/workspace/scratch-dwo/a-main.dwo 0xbcc129959e76ff33 /home/toyang/workspace/scratch-dwo/a-foo.dwo (lldb) image dump separate-debug-info -j [ { "separate-debug-info-files": [ { "comp_dir": "/home/toyang/workspace/dwo-scratch", "dwo_id": 11115620165179865774, "dwo_name": "a-main.dwo", "loaded": true, "resolved_dwo_path": "/home/toyang/workspace/dwo-scratch/a-main.dwo" }, { "comp_dir": "/home/toyang/workspace/dwo-scratch", "dwo_id": 13601198072221073203, "dwo_name": "a-foo.dwo", "loaded": true, "resolved_dwo_path": "/home/toyang/workspace/dwo-scratch/a-foo.dwo" } ], "symfile": "/home/toyang/workspace/dwo-scratch/a.out", "type": "dwo" } ] ``` Example dwo with missing dwo: ``` (lldb) image dump separate-debug-info Symbol file: /home/toyang/workspace/dwo-scratch/a.out Type: "dwo" Dwo ID Err Dwo Path ------------------ --- ----------------------------------------- 0x9a429da5abb6faae E unable to locate .dwo debug file "/home/toyang/workspace/scratch-dwo/b.out-main.dwo" for skeleton DIE 0x0000000000000014 0xbcc129959e76ff33 E unable to locate .dwo debug file "/home/toyang/workspace/scratch-dwo/b.out-foo.dwo" for skeleton DIE 0x000000000000003c (lldb) image dump separate-debug-info -j [ { "separate-debug-info-files": [ { "comp_dir": "/home/toyang/workspace/dwo-scratch", "dwo_id": 11115620165179865774, "dwo_name": "a-main.dwo", "error": "unable to locate .dwo debug file \"/home/toyang/workspace/dwo-scratch/a-main.dwo\" for skeleton DIE 0x0000000000000014", "loaded": false }, { "comp_dir": "/home/toyang/workspace/dwo-scratch", "dwo_id": 13601198072221073203, "dwo_name": "a-foo.dwo", "error": "unable to locate .dwo debug file \"/home/toyang/workspace/dwo-scratch/a-foo.dwo\" for skeleton DIE 0x000000000000003c", "loaded": false } ], "symfile": "/home/toyang/workspace/dwo-scratch/a.out", "type": "dwo" } ] ``` Example output with dwp: ``` (lldb) image dump separate-debug-info Symbol file: /home/toyang/workspace/dwo-scratch/a.out Type: "dwo" Dwo ID Err Dwo Path ------------------ --- ----------------------------------------- 0x9a429da5abb6faae /home/toyang/workspace/dwo-scratch/a.out.dwp(a-main.dwo) 0xbcc129959e76ff33 /home/toyang/workspace/dwo-scratch/a.out.dwp(a-foo.dwo) (lldb) image dump separate-debug-info -j [ { "separate-debug-info-files": [ { "comp_dir": "/home/toyang/workspace/dwo-scratch", "dwo_id": 11115620165179865774, "dwo_name": "a-main.dwo", "loaded": true, "resolved_dwo_path": "/home/toyang/workspace/dwo-scratch/a.out.dwp" }, { "comp_dir": "/home/toyang/workspace/dwo-scratch", "dwo_id": 13601198072221073203, "dwo_name": "a-foo.dwo", "loaded": true, "resolved_dwo_path": "/home/toyang/workspace/dwo-scratch/a.out.dwp" } ], "symfile": "/home/toyang/workspace/dwo-scratch/a.out", "type": "dwo" } ] ``` Example oso on my Mac: ``` (lldb) image dump separate-debug-info Symbol file: /Users/toyang/workspace/scratch/a.out Type: "oso" Mod Time Err Oso Path ------------------ --- --------------------- 0x0000000064e64868 /Users/toyang/workspace/scratch/foo.a(foo.o) 0x0000000064e64868 /Users/toyang/workspace/scratch/foo.a(main.o) (lldb) image dump separate-debug-info -j [ { "separate-debug-info-files": [ { "loaded": true, "oso_mod_time": 1692813416, "oso_path": "/Users/toyang/workspace/scratch/foo.a(foo.o)", "so_file": "/Users/toyang/workspace/scratch/foo.cpp" }, { "loaded": true, "oso_mod_time": 1692813416, "oso_path": "/Users/toyang/workspace/scratch/foo.a(main.o)", "so_file": "/Users/toyang/workspace/scratch/main.cpp" } ], "symfile": "/Users/toyang/workspace/scratch/a.out", "type": "oso" } ] ``` Test Plan: Tested on Mac OS and Linux. ``` lldb-dotest -p TestDumpDwo lldb-dotest -p TestDumpOso ``` --------- Co-authored-by:Tom Yang <toyang@fb.com>
-
vabridgers authored
We noticed that clang does not check for bitfield assignment widths, while gcc does check this. gcc produced a warning like so for it's -Wconversion flag: ``` $ gcc -Wconversion -c test.c test.c: In function 'foo': test.c:10:15: warning: conversion from 'int' to 'signed char:7' may change value [-Wconversion] 10 | vxx.bf = x; // no warning | ^ ``` This change simply adds this check for integral types under the -Wbitfield-conversion compiler option. -
Vlad Serebrennikov authored
While working on LLDB visualizer for `QualType`, I stumbled upon `Type` and `ExtQuals` defined with `alignas(8)`. Such alignment leaves only 3 lower bits available for pointer tagging, whereas `QualType` requires 4 (3 qualifiers + discriminator between `Type *` and `ExtQuals *`). Turns out `Type` and its derived classes are allocated with `TypeAlignment == 16` passed to `Allocate()`. So I'm removing misleading `alignas(8)` and fixing corresponding static asserts. Since they are already allocated with 16-byte alignment, this is a non-functional change.
-
Louis Dionne authored
The step that checked for ignore_format.txt being consistent with the tree wouldn't print any explicit diagnostic when failing, which led to confusion. After this patch, an explicit diagnostic will be printed by the job along with the required diff to ignore_format.txt.
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Benjamin Maxwell authored
This patch just avoids the underlying bug in VectorType::Builder, which currently has incorrect copy/move constructors. See https://lab.llvm.org/buildbot/#/builders/5/builds/37355
-
Peiming Liu authored
-
Nico Weber authored
-
Michael Liao authored
-
Michael Liao authored
-
ostannard authored
Advance the IT and VPT block state when parsing the .inst directive, so that it is possible to use them to emit conditional instructions. If we don't do this, then a later instruction inside or just after the block will have a mis-matched condition, so be incorrectly reported as an error.
-
- Oct 12, 2023
-
-
Kiran Chandramohan authored
Fix test expectations after https://github.com/llvm/llvm-project/pull/68723 Gets CI to pass https://lab.llvm.org/buildbot/#/builders/268/builds/142
-
john-brawn-arm authored
When an sreg sub-register of a q register was spilled, AArch64InstrInfo::foldMemoryOperandImpl would emit a spill of a d register, which gives the wrong result when the target is big-endian as the following q register fill will put the value in the top half. Fix this by greatly simplifying the existing code for widening the spill to only handle wzr to xzr widening, as the default result we get if the function returns nullptr is already that a widened spill will be emitted.
-
Zain Jaffal authored
This tool is a generic remark counter reporting count based on specified properties. The counter can be used to count remarks individually and filter them based on name, type and pass or count using remark arguments.
-
Christian Ulmann authored
This commit fixes a bug in the Mem2Reg operation erasure order. Replacing the use-def based topological order with a dominance-based weak order ensures that no operation is removed before all its uses have been replaced. The order relation uses the topological order of blocks and block internal ordering to determine a deterministic operation order. Additionally, the reliance on the `DenseMap` key order was eliminated by switching to a `MapVector`, that gives a deterministic iteration order. Example: ``` %ptr = alloca ... ... %val0 = %load %ptr ... // LOAD0 store %val0 %ptr ... %val1 = load %ptr ... // LOAD1 ```` When promoting the slot backing %ptr, it can happen that the LOAD0 was cleaned before LOAD1. This results in all uses of LOAD0 being replaced by its reaching definition, before LOAD1's result is replaced by LOAD0's result. The subsequent erasure of LOAD0 can thus not succeed, as it has re...
-
Ramkumar Ramachandra authored
The test reduction.ll was introduced before utils/update_test_checks.py, and hence contains hand-written CHECK lines. Revisit the test today, and modernize it by: - Removing extranous attributes on functions and their arguments, as LoopVectorize doesn't even look at these attributes. - Removing the target datalayout, as it is not essential for LoopVectorize. Finally, regenerate the CHECK lines using update_test_checks.py, eliminating hand-written error-prone CHECK lines.
-
Benjamin Maxwell authored
This adds slightly higher-level ops for converting masks between svbool and SVE predicate types. The main reason to use these over the intrinsics is these ops support vectors of masks (via unrolling). E.g. ``` // Convert a svbool mask to a mask of SVE predicates: %svbool = vector.load %memref[%c0, %c0] : memref<2x?xi1>, vector<2x[16]xi1> %mask = arm_sve.convert_from_svbool %svbool : vector<2x[8]xi1> // => Results in vector<2x[8]xi1> ``` Or: ``` // Convert a mask of SVE predicates to a svbool mask: %mask = vector.create_mask %c2, %dim_size : vector<2x[2]xi1> %svbool = arm_sve.convert_to_svbool %mask : vector<2x[2]xi1> // => Results in vector<2x[16]xi1> ``` Depends on #68418 -
Antonio Frighetto authored
Reported-by: shao-hua-li Fixes: https://github.com/llvm/llvm-project/issues/68745.
-
Nivetha Kuruparan authored
The Clang-AIX-Wyvern-Dev buildbot is currently failing at the set directory permission due to a bad symlink caused by this [commit](https://github.ibm.com/compiler/llvm-project/commit/a54f31fabd55ab111484b1e094e3d2c6b29c4715). This change is creating the additional symlink `readtapi -> llvm-readtapi` which causes it to appear in `/buildbot_worker/official-worker/clang-aix-dev/installdir`. After some investigation, it looks like `readtapi` is the only tool that is getting symlinked that is not guarded by the `LLVM_INSTALL_BINUTILS_SYMLINKS` macro. For example: 1. `llvm/tools/llvm-objcopy/CMakeLists.txt` ``` if(LLVM_INSTALL_BINUTILS_SYMLINKS) add_llvm_tool_symlink(objcopy llvm-objcopy) endif() ``` 2. `llvm/tools/llvm-dwp/CMakeLists.txt` ``` if(LLVM_INSTALL_BINUTILS_SYMLINKS) add_llvm_tool_symlink(dwp llvm-dwp) endif() ```
-
Krishna Narayanan authored
[clang-repl] Add Documentation for Execution Results Handling. This patch adds documentation for execution results handling in Clang-REPL with the below features: - Automatic Printf feature - Value Synthesis feature - Pretty Printing feature Continuing this work https://reviews.llvm.org/D156858 with this PR. I am issuing this patch on behalf of Saqib. Reviewers: @vgvassilev @junaire
-
Sebastian Neubauer authored
Like for Function::getArg, assert that the fetched argument is in-range and not out-of-bounds.
-
Guray Ozen authored
-
Sander de Smalen authored
Resolved issue with green dragon build by fixing relocations for MachO/Darwin which doesn't compile without @page/@pageoff directives. Also silenced a warning about constructor(90) priority being < 101, which is reserved for the implementation. In this case, we're compiling the implementation so we should be able to use 90. This reverts commit 072713ad.
-
zhongyunde 00443407 authored
Similar to D159254, this fixes the order of WriteAdr operands on post/pre-inc loads/stores in the TSV110 scheduling model.
-
zhongyunde 00443407 authored
-
Nikita Popov authored
-
Nico Weber authored
-
ZhangYin authored
Differential Revision: https://reviews.llvm.org/D159442
-
Nikita Popov authored
-
Nikita Popov authored
Avoid extra diffs on future change.
-
Mikhail Goncharov authored
for 0ce6255a
-
Mats Petersson authored
This avoids trying to version loops that can't be versioned, and thus avoids hitting an assert. Co-authored with Slava Zakharin (who provided the test-code).
-
David Truby authored
This patch fixes a bug where loop variables are always marked as predetermined even when they have an explicit data sharing attribute specified.
-
Nikita Popov authored
-
Benjamin Maxwell authored
This reverts commit e98a4bb0. This caused test failures: - https://lab.llvm.org/buildbot/#/builders/61/builds/50374 - https://lab.llvm.org/buildbot/#/builders/220/builds/29092
-
Benjamin Maxwell authored
This makes these match the behaviour of optional attributes (which are omitted when they are their default value of `none`). This allows for concise assembly formats without a custom printer. An extra print of " " is also removed, this does change any existing uses of oilists, but if the parameter before the oilist is optional, that would previously add an extra space.
-
Timm Bäder authored
This broke builders, e.g.: https://lab.llvm.org/buildbot/#/builders/139/builds/51404 Let's see if this works better.
-
Valery authored
Update existing tests to make further reviews on AMDGPU address sanitizer checks easier.
-
martinboehme authored
* Ensure timeline entries don't have linebreaks by setting `min-width: max-content`. * Give the timeline header some padding on the right so it doesn't run into the "Function" header. * Put some padding around the iteration choosers so they don't run into each other. * Eliminate the "Iteration" text from the iteration choosers, which took up a lot of space. It should be clear what these are without the "Iteration" text. (This makes the above problem of iteration choosers running into each other less likely, but also add the padding nonetheless.) Before:  After: 
-