[lldb][NFC] Refactor Watchpoint class

Refactor watchpoint logic 1/2

This patch refactors the Watchpoint class to prepare for future code
improvements. The core changes include:

* Adding check logic to the stoppoint side
This patch adds a ShouldReport method to the Watchpoint class. This
method implements the logic from PerformAction for determining whether
a watchpoint hit should be reported. While the original logic in
StopInfoWatchpoint remains unchanged for now, ShouldReport allows to
simplify PerformAction and reduce coupling between the classes in the
subsequent patch.

* Preparing to eliminate redundant calculations
Currently, WatchedValueReportable and CaptureWatchedValue contain
duplicated code for calculating the watched value. Since PerformAction
calls these methods sequentially, the value is computed twice.
Consolidation of logic in ShouldReport provides the ability to remove
the code duplication and redundant calculations in the next patch.

Note that this patch doesn't use new functions yet. This is just a
preparatory step that facilitates the subsequent refactoring of
PerformAction logic.
2 files changed
tree: 081c8c6c5717111076ba834845e656ccd4e8ebc8
  1. .ci/
  2. .github/
  3. bolt/
  4. clang/
  5. clang-tools-extra/
  6. cmake/
  7. compiler-rt/
  8. cross-project-tests/
  9. flang/
  10. flang-rt/
  11. libc/
  12. libclc/
  13. libcxx/
  14. libcxxabi/
  15. libsycl/
  16. libunwind/
  17. lld/
  18. lldb/
  19. llvm/
  20. llvm-libgcc/
  21. mlir/
  22. offload/
  23. openmp/
  24. orc-rt/
  25. polly/
  26. runtimes/
  27. third-party/
  28. utils/
  29. .clang-format
  30. .clang-format-ignore
  31. .clang-tidy
  32. .git-blame-ignore-revs
  33. .gitattributes
  34. .gitignore
  35. .mailmap
  36. CODE_OF_CONDUCT.md
  37. CONTRIBUTING.md
  38. LICENSE.TXT
  39. pyproject.toml
  40. README.md
  41. SECURITY.md
README.md

The LLVM Compiler Infrastructure

OpenSSF Scorecard OpenSSF Best Practices libc++

Welcome to the LLVM project!

This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.

The LLVM project has multiple components. The core of the project is itself called “LLVM”. This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.

C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

Consult the Getting Started with LLVM page for information on building and running LLVM.

For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.

Getting in touch

Join the LLVM Discourse forums, Discord chat, LLVM Office Hours or Regular sync-ups.

The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.