Skip to content

Conversation

@topperc
Copy link
Collaborator

@topperc topperc commented Jul 10, 2025

These were remove in #147830 due to ignoring that these instructions operate on bytes. This patch adds them back with tests including a test for the byte boundary issue.

I seperated out the commits to show bad optimization if we don't round Bits to the nearest byte.

@llvmbot
Copy link
Member

llvmbot commented Jul 10, 2025

@llvm/pr-subscribers-backend-risc-v

Author: Craig Topper (topperc)

Changes

These were remove in #147830 due to ignoring that these instructions operate on bytes. This patch adds them back with tests including a test for the byte boundary issue.

I seperated out the commits to show bad optimization if we don't round Bits to the nearest byte.


Full diff: https://github.com/llvm/llvm-project/pull/148076.diff

2 Files Affected:

  • (modified) llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp (+6)
  • (modified) llvm/test/CodeGen/RISCV/sextw-removal.ll (+185-2)
diff --git a/llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp b/llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
index 24c05a2f807d0..d257f56cf4129 100644
--- a/llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
+++ b/llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
@@ -323,6 +323,12 @@ static bool hasAllNBitUsers(const MachineInstr &OrigMI,
         Worklist.push_back(std::make_pair(UserMI, Bits));
         break;
 
+      case RISCV::BREV8:
+      case RISCV::ORC_B:
+        // BREV8 and ORC_B work on bytes. Round Bits down to the nearest byte.
+        Worklist.push_back(std::make_pair(UserMI, alignDown(Bits, 8)));
+        break;
+
       case RISCV::PseudoCCMOVGPR:
       case RISCV::PseudoCCMOVGPRNoX0:
         // Either operand 4 or operand 5 is returned by this instruction. If
diff --git a/llvm/test/CodeGen/RISCV/sextw-removal.ll b/llvm/test/CodeGen/RISCV/sextw-removal.ll
index 1a978d1a0fcac..9c8230572b926 100644
--- a/llvm/test/CodeGen/RISCV/sextw-removal.ll
+++ b/llvm/test/CodeGen/RISCV/sextw-removal.ll
@@ -1,9 +1,9 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc < %s -mtriple=riscv64 -mattr=+m,+f,+zknh,+v -target-abi=lp64f \
 ; RUN:   | FileCheck %s --check-prefixes=CHECK,RV64I
-; RUN: llc < %s -mtriple=riscv64 -mattr=+m,+zba,+zbb,+f,+zknh,+v -target-abi=lp64f \
+; RUN: llc < %s -mtriple=riscv64 -mattr=+m,+zba,+zbb,+zbkb,+f,+zknh,+v -target-abi=lp64f \
 ; RUN:   | FileCheck %s --check-prefixes=CHECK,RV64ZBB
-; RUN: llc < %s -mtriple=riscv64 -mattr=+m,+zba,+zbb,+f,+zknh,+v -target-abi=lp64f \
+; RUN: llc < %s -mtriple=riscv64 -mattr=+m,+zba,+zbb,+zbkb,+f,+zknh,+v -target-abi=lp64f \
 ; RUN:   -riscv-disable-sextw-removal | FileCheck %s --check-prefix=NOREMOVAL
 
 define void @test1(i32 signext %arg, i32 signext %arg1) nounwind {
@@ -1499,3 +1499,186 @@ bb7:                                              ; preds = %bb2
 }
 
 declare i32 @llvm.riscv.vmv.x.s.nxv1i32( <vscale x 1 x i32>)
+
+; Test that we can look through brev8 in hasAllNBitUsers.
+define signext i32 @test21(i64 %arg1, i64 %arg2, i64 %arg3)  {
+; RV64I-LABEL: test21:
+; RV64I:       # %bb.0: # %entry
+; RV64I-NEXT:    addi a2, a2, -1
+; RV64I-NEXT:    lui a3, 61681
+; RV64I-NEXT:    lui a4, 209715
+; RV64I-NEXT:    addi a3, a3, -241
+; RV64I-NEXT:    addi a4, a4, 819
+; RV64I-NEXT:    slli a5, a3, 32
+; RV64I-NEXT:    add a3, a3, a5
+; RV64I-NEXT:    slli a5, a4, 32
+; RV64I-NEXT:    add a4, a4, a5
+; RV64I-NEXT:    li a5, 256
+; RV64I-NEXT:  .LBB25_1: # %bb2
+; RV64I-NEXT:    # =>This Inner Loop Header: Depth=1
+; RV64I-NEXT:    srli a6, a0, 4
+; RV64I-NEXT:    and a0, a0, a3
+; RV64I-NEXT:    and a6, a6, a3
+; RV64I-NEXT:    slli a0, a0, 4
+; RV64I-NEXT:    or a0, a6, a0
+; RV64I-NEXT:    srli a6, a0, 2
+; RV64I-NEXT:    and a0, a0, a4
+; RV64I-NEXT:    and a6, a6, a4
+; RV64I-NEXT:    slli a0, a0, 2
+; RV64I-NEXT:    or a0, a6, a0
+; RV64I-NEXT:    andi a6, a0, 65
+; RV64I-NEXT:    srli a0, a0, 1
+; RV64I-NEXT:    slli a6, a6, 1
+; RV64I-NEXT:    andi a0, a0, 1104
+; RV64I-NEXT:    or a0, a0, a6
+; RV64I-NEXT:    addi a2, a2, 1
+; RV64I-NEXT:    add a0, a0, a1
+; RV64I-NEXT:    bltu a2, a5, .LBB25_1
+; RV64I-NEXT:  # %bb.2: # %bb7
+; RV64I-NEXT:    sext.w a0, a0
+; RV64I-NEXT:    ret
+;
+; RV64ZBB-LABEL: test21:
+; RV64ZBB:       # %bb.0: # %entry
+; RV64ZBB-NEXT:    addi a2, a2, -1
+; RV64ZBB-NEXT:    li a3, 256
+; RV64ZBB-NEXT:  .LBB25_1: # %bb2
+; RV64ZBB-NEXT:    # =>This Inner Loop Header: Depth=1
+; RV64ZBB-NEXT:    brev8 a0, a0
+; RV64ZBB-NEXT:    andi a0, a0, 1234
+; RV64ZBB-NEXT:    addi a2, a2, 1
+; RV64ZBB-NEXT:    addw a0, a0, a1
+; RV64ZBB-NEXT:    bltu a2, a3, .LBB25_1
+; RV64ZBB-NEXT:  # %bb.2: # %bb7
+; RV64ZBB-NEXT:    ret
+;
+; NOREMOVAL-LABEL: test21:
+; NOREMOVAL:       # %bb.0: # %entry
+; NOREMOVAL-NEXT:    addi a2, a2, -1
+; NOREMOVAL-NEXT:    li a3, 256
+; NOREMOVAL-NEXT:  .LBB25_1: # %bb2
+; NOREMOVAL-NEXT:    # =>This Inner Loop Header: Depth=1
+; NOREMOVAL-NEXT:    brev8 a0, a0
+; NOREMOVAL-NEXT:    andi a0, a0, 1234
+; NOREMOVAL-NEXT:    addi a2, a2, 1
+; NOREMOVAL-NEXT:    add a0, a0, a1
+; NOREMOVAL-NEXT:    bltu a2, a3, .LBB25_1
+; NOREMOVAL-NEXT:  # %bb.2: # %bb7
+; NOREMOVAL-NEXT:    sext.w a0, a0
+; NOREMOVAL-NEXT:    ret
+entry:
+  br label %bb2
+
+bb2:                                              ; preds = %bb2, %entry
+  %i1 = phi i64 [ %arg1, %entry ], [ %i5, %bb2 ]
+  %i2 = phi i64 [ %arg3, %entry ], [ %i3, %bb2 ]
+  %i3 = add i64 %i2, 1
+  %bswap = call i64 @llvm.bswap.i64(i64 %i1)
+  %bitreverse = call i64 @llvm.bitreverse.i64(i64 %bswap)
+  %i4 = and i64 %bitreverse, 1234
+  %i5 = add i64 %i4, %arg2
+  %i6 = icmp ugt i64 %i2, 255
+  br i1 %i6, label %bb7, label %bb2
+
+bb7:                                              ; preds = %bb2
+  %i7 = trunc i64 %i5 to i32
+  ret i32 %i7
+}
+
+; Negative test for looking through brev8. Make sure we consider that it works
+; on bytes.
+define signext i32 @test22(i64 %arg1, i64 %arg2, i64 %arg3)  {
+; RV64I-LABEL: test22:
+; RV64I:       # %bb.0: # %entry
+; RV64I-NEXT:    addi a2, a2, -1
+; RV64I-NEXT:    lui a3, %hi(.LCPI26_0)
+; RV64I-NEXT:    lui a4, %hi(.LCPI26_1)
+; RV64I-NEXT:    lui a5, %hi(.LCPI26_2)
+; RV64I-NEXT:    lui a6, %hi(.LCPI26_3)
+; RV64I-NEXT:    li a7, 69
+; RV64I-NEXT:    ld a3, %lo(.LCPI26_0)(a3)
+; RV64I-NEXT:    ld a4, %lo(.LCPI26_1)(a4)
+; RV64I-NEXT:    ld a5, %lo(.LCPI26_2)(a5)
+; RV64I-NEXT:    ld a6, %lo(.LCPI26_3)(a6)
+; RV64I-NEXT:    slli a7, a7, 32
+; RV64I-NEXT:    li t0, 65
+; RV64I-NEXT:    slli t0, t0, 28
+; RV64I-NEXT:    li t1, 256
+; RV64I-NEXT:  .LBB26_1: # %bb2
+; RV64I-NEXT:    # =>This Inner Loop Header: Depth=1
+; RV64I-NEXT:    slli t2, a0, 11
+; RV64I-NEXT:    slli a0, a0, 3
+; RV64I-NEXT:    and t2, t2, a3
+; RV64I-NEXT:    and a0, a0, a4
+; RV64I-NEXT:    or a0, a0, t2
+; RV64I-NEXT:    srli t2, a0, 2
+; RV64I-NEXT:    and a0, a0, a6
+; RV64I-NEXT:    and t2, t2, a5
+; RV64I-NEXT:    slli a0, a0, 2
+; RV64I-NEXT:    or a0, t2, a0
+; RV64I-NEXT:    srli t2, a0, 1
+; RV64I-NEXT:    and a0, a0, t0
+; RV64I-NEXT:    and t2, t2, a7
+; RV64I-NEXT:    slli a0, a0, 1
+; RV64I-NEXT:    or a0, t2, a0
+; RV64I-NEXT:    srli a0, a0, 28
+; RV64I-NEXT:    addi a2, a2, 1
+; RV64I-NEXT:    add a0, a0, a1
+; RV64I-NEXT:    bltu a2, t1, .LBB26_1
+; RV64I-NEXT:  # %bb.2: # %bb7
+; RV64I-NEXT:    sext.w a0, a0
+; RV64I-NEXT:    ret
+;
+; RV64ZBB-LABEL: test22:
+; RV64ZBB:       # %bb.0: # %entry
+; RV64ZBB-NEXT:    addi a2, a2, -1
+; RV64ZBB-NEXT:    li a3, 256
+; RV64ZBB-NEXT:  .LBB26_1: # %bb2
+; RV64ZBB-NEXT:    # =>This Inner Loop Header: Depth=1
+; RV64ZBB-NEXT:    slli a0, a0, 7
+; RV64ZBB-NEXT:    brev8 a0, a0
+; RV64ZBB-NEXT:    srli a0, a0, 28
+; RV64ZBB-NEXT:    andi a0, a0, 1234
+; RV64ZBB-NEXT:    addi a2, a2, 1
+; RV64ZBB-NEXT:    add a0, a0, a1
+; RV64ZBB-NEXT:    bltu a2, a3, .LBB26_1
+; RV64ZBB-NEXT:  # %bb.2: # %bb7
+; RV64ZBB-NEXT:    sext.w a0, a0
+; RV64ZBB-NEXT:    ret
+;
+; NOREMOVAL-LABEL: test22:
+; NOREMOVAL:       # %bb.0: # %entry
+; NOREMOVAL-NEXT:    addi a2, a2, -1
+; NOREMOVAL-NEXT:    li a3, 256
+; NOREMOVAL-NEXT:  .LBB26_1: # %bb2
+; NOREMOVAL-NEXT:    # =>This Inner Loop Header: Depth=1
+; NOREMOVAL-NEXT:    slli a0, a0, 7
+; NOREMOVAL-NEXT:    brev8 a0, a0
+; NOREMOVAL-NEXT:    srli a0, a0, 28
+; NOREMOVAL-NEXT:    andi a0, a0, 1234
+; NOREMOVAL-NEXT:    addi a2, a2, 1
+; NOREMOVAL-NEXT:    add a0, a0, a1
+; NOREMOVAL-NEXT:    bltu a2, a3, .LBB26_1
+; NOREMOVAL-NEXT:  # %bb.2: # %bb7
+; NOREMOVAL-NEXT:    sext.w a0, a0
+; NOREMOVAL-NEXT:    ret
+entry:
+  br label %bb2
+
+bb2:                                              ; preds = %bb2, %entry
+  %i1 = phi i64 [ %arg1, %entry ], [ %i5, %bb2 ]
+  %i2 = phi i64 [ %arg3, %entry ], [ %i3, %bb2 ]
+  %i3 = add i64 %i2, 1
+  %shl = shl i64 %i1, 7
+  %bswap = call i64 @llvm.bswap.i64(i64 %shl)
+  %bitreverse = call i64 @llvm.bitreverse.i64(i64 %bswap)
+  %lshr = lshr i64 %bitreverse, 28
+  %i4 = and i64 %lshr, 1234
+  %i5 = add i64 %i4, %arg2
+  %i6 = icmp ugt i64 %i2, 255
+  br i1 %i6, label %bb7, label %bb2
+
+bb7:                                              ; preds = %bb2
+  %i7 = trunc i64 %i5 to i32
+  ret i32 %i7
+}

Copy link
Collaborator

@preames preames left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@topperc topperc merged commit 6882a30 into llvm:main Jul 11, 2025
11 checks passed
@topperc topperc deleted the pr/brev8-optw branch July 11, 2025 16:23
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2025

LLVM Buildbot has detected a new failure on builder lldb-arm-ubuntu running on linaro-lldb-arm-ubuntu while building llvm at step 6 "test".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/18/builds/18854

Here is the relevant piece of the build log for the reference
Step 6 (test) failure: build (failure)
...
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/4/12 (3315 of 3324)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/5/12 (3316 of 3324)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/6/12 (3317 of 3324)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/7/12 (3318 of 3324)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/8/12 (3319 of 3324)
PASS: lldb-unit :: ValueObject/./LLDBValueObjectTests/9/12 (3320 of 3324)
PASS: lldb-unit :: tools/lldb-server/tests/./LLDBServerTests/1/2 (3321 of 3324)
PASS: lldb-unit :: tools/lldb-server/tests/./LLDBServerTests/0/2 (3322 of 3324)
PASS: lldb-unit :: Process/gdb-remote/./ProcessGdbRemoteTests/8/35 (3323 of 3324)
TIMEOUT: lldb-api :: tools/lldb-dap/module/TestDAP_module.py (3324 of 3324)
******************** TEST 'lldb-api :: tools/lldb-dap/module/TestDAP_module.py' FAILED ********************
Script:
--
/usr/bin/python3.10 /home/tcwg-buildbot/worker/lldb-arm-ubuntu/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./lib --env LLVM_INCLUDE_DIR=/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/include --env LLVM_TOOLS_DIR=/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin --arch armv8l --build-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex --lldb-module-cache-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin/lldb --compiler /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin/clang --dsymutil /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./bin --lldb-obj-root /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/tools/lldb --lldb-libs-dir /home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/./lib --cmake-build-type Release /home/tcwg-buildbot/worker/lldb-arm-ubuntu/llvm-project/lldb/test/API/tools/lldb-dap/module -p TestDAP_module.py
--
Exit Code: -9
Timeout: Reached timeout of 600 seconds

Command Output (stdout):
--
lldb version 21.0.0git (https://github.com/llvm/llvm-project.git revision 6882a30acec695beab568d5393af9bd15970d0d6)
  clang revision 6882a30acec695beab568d5393af9bd15970d0d6
  llvm revision 6882a30acec695beab568d5393af9bd15970d0d6

--
Command Output (stderr):
--
========= DEBUG ADAPTER PROTOCOL LOGS =========
1752251969.216261148 (stdio) --> {"command":"initialize","type":"request","arguments":{"adapterID":"lldb-native","clientID":"vscode","columnsStartAt1":true,"linesStartAt1":true,"locale":"en-us","pathFormat":"path","supportsRunInTerminalRequest":true,"supportsVariablePaging":true,"supportsVariableType":true,"supportsStartDebuggingRequest":true,"supportsProgressReporting":true,"$__lldb_sourceInitFile":false},"seq":1}
1752251969.221118212 (stdio) <-- {"body":{"$__lldb_version":"lldb version 21.0.0git (https://github.com/llvm/llvm-project.git revision 6882a30acec695beab568d5393af9bd15970d0d6)\n  clang revision 6882a30acec695beab568d5393af9bd15970d0d6\n  llvm revision 6882a30acec695beab568d5393af9bd15970d0d6","completionTriggerCharacters":["."," ","\t"],"exceptionBreakpointFilters":[{"description":"C++ Catch","filter":"cpp_catch","label":"C++ Catch","supportsCondition":true},{"description":"C++ Throw","filter":"cpp_throw","label":"C++ Throw","supportsCondition":true},{"description":"Objective-C Catch","filter":"objc_catch","label":"Objective-C Catch","supportsCondition":true},{"description":"Objective-C Throw","filter":"objc_throw","label":"Objective-C Throw","supportsCondition":true}],"supportTerminateDebuggee":true,"supportsBreakpointLocationsRequest":true,"supportsCancelRequest":true,"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDataBreakpoints":true,"supportsDelayedStackTraceLoading":true,"supportsDisassembleRequest":true,"supportsEvaluateForHovers":true,"supportsExceptionFilterOptions":true,"supportsExceptionInfoRequest":true,"supportsFunctionBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsInstructionBreakpoints":true,"supportsLogPoints":true,"supportsModulesRequest":true,"supportsReadMemoryRequest":true,"supportsSetVariable":true,"supportsSteppingGranularity":true,"supportsValueFormattingOptions":true,"supportsWriteMemoryRequest":true},"command":"initialize","request_seq":1,"seq":0,"success":true,"type":"response"}
1752251969.223576784 (stdio) --> {"command":"launch","type":"request","arguments":{"program":"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/tools/lldb-dap/module/TestDAP_module.test_compile_units/a.out","initCommands":["settings clear --all","settings set symbols.enable-external-lookup false","settings set target.inherit-tcc true","settings set target.disable-aslr false","settings set target.detach-on-error false","settings set target.auto-apply-fixits false","settings set plugin.process.gdb-remote.packet-timeout 60","settings set symbols.clang-modules-cache-path \"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"","settings set use-color false","settings set show-statusline false"],"disableASLR":false,"enableAutoVariableSummaries":false,"enableSyntheticChildDebugging":false,"displayExtendedBacktrace":false},"seq":2}
1752251969.224087715 (stdio) <-- {"body":{"category":"console","output":"Running initCommands:\n"},"event":"output","seq":0,"type":"event"}
1752251969.224171877 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings clear --all\n"},"event":"output","seq":0,"type":"event"}
1752251969.224188566 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.enable-external-lookup false\n"},"event":"output","seq":0,"type":"event"}
1752251969.224205971 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.inherit-tcc true\n"},"event":"output","seq":0,"type":"event"}
1752251969.224219084 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.disable-aslr false\n"},"event":"output","seq":0,"type":"event"}
1752251969.224231958 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.detach-on-error false\n"},"event":"output","seq":0,"type":"event"}
1752251969.224244833 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.auto-apply-fixits false\n"},"event":"output","seq":0,"type":"event"}
1752251969.224257708 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set plugin.process.gdb-remote.packet-timeout 60\n"},"event":"output","seq":0,"type":"event"}
1752251969.224324703 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.clang-modules-cache-path \"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"\n"},"event":"output","seq":0,"type":"event"}
1752251969.224339485 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set use-color false\n"},"event":"output","seq":0,"type":"event"}
1752251969.224352598 (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set show-statusline false\n"},"event":"output","seq":0,"type":"event"}
1752251969.421964645 (stdio) <-- {"command":"launch","request_seq":2,"seq":0,"success":true,"type":"response"}
1752251969.422087431 (stdio) <-- {"event":"initialized","seq":0,"type":"event"}
1752251969.422118187 (stdio) <-- {"body":{"module":{"addressRange":"0xf7ecc000","debugInfoSize":"983.3KB","id":"0D794E6C-AF7E-D8CB-B9BA-E385B4F8753F-5A793D65","name":"ld-linux-armhf.so.3","path":"/usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3","symbolFilePath":"/usr/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":0,"type":"event"}
1752251969.422411680 (stdio) <-- {"body":{"module":{"addressRange":"0x540000","debugInfoSize":"1.1KB","id":"7E7CC924","name":"a.out","path":"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/tools/lldb-dap/module/TestDAP_module.test_compile_units/a.out","symbolFilePath":"/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/lldb-test-build.noindex/tools/lldb-dap/module/TestDAP_module.test_compile_units/a.out","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":0,"type":"event"}
1752251969.422827005 (stdio) --> {"command":"setBreakpoints","type":"request","arguments":{"source":{"name":"main.cpp","path":"main.cpp"},"sourceModified":false,"lines":[5],"breakpoints":[{"line":5}]},"seq":3}
1752251969.435216904 (stdio) <-- {"body":{"breakpoints":[{"column":3,"id":1,"instructionReference":"0x55073C","line":5,"source":{"name":"main.cpp","path":"main.cpp"},"verified":true}]},"command":"setBreakpoints","request_seq":3,"seq":0,"success":true,"type":"response"}
1752251969.435619354 (stdio) --> {"command":"configurationDone","type":"request","arguments":{},"seq":4}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants