[DynInst_API:] [dyninst/dyninst] 302ad4: Use depth-first traversal in MultiRegisterAST::visit


Date: Thu, 30 Oct 2025 13:55:15 -0700
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 302ad4: Use depth-first traversal in MultiRegisterAST::visit
  Branch: refs/heads/thaines/MultiRegisterAST_visit
  Home:   https://github.com/dyninst/dyninst
  Commit: 302ad47f124924bfe2d503ff03f71b4d6d414595
      https://github.com/dyninst/dyninst/commit/302ad47f124924bfe2d503ff03f71b4d6d414595
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2025-10-30 (Thu, 30 Oct 2025)

  Changed paths:
    M instructionAPI/h/InstructionAST.h
    M instructionAPI/src/MultiRegister.C

  Log Message:
  -----------
  Use depth-first traversal in MultiRegisterAST::visit

This makes it consistent with the other AST types. This _could_ affect
user code. However, MultiRegisterAST hasn't been part of a release yet,
so a change of behavior is acceptable since API breakages are allowed
on major releases.

Summary of effects on current Visitor implementations in Dyninst:

getUsedRegisters
  updated

StateEvalVisitor
  no change in behavior

ExpressionConversionVisitor
  multireg isn't supported

thunkVisitor
  no change in behavior

detectToppedLoc
  There could be a change of behavior here since the registers of a
  multireg will now be seen before the multireg, itself. It's possible
  the RegisterAST visit method could do work that it wouldn't have
  before this change.

BPatch_memoryAccessAdapter
  multireg isn't supported

leaSimplifyVisitor
  This is only for x86 where the parts of a multireg can't be used as
  and index or base register for addressing, so there's no change in
  behavior.

ASTFactory
  multireg isn't supported.


  Commit: fe42a5468f116b2c729823b08815ea204d6cf4ba
      https://github.com/dyninst/dyninst/commit/fe42a5468f116b2c729823b08815ea204d6cf4ba
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2025-10-30 (Thu, 30 Oct 2025)

  Changed paths:
    M tests/unit/CMakeLists.txt
    A tests/unit/instructionAPI/AST/CMakeLists.txt
    A tests/unit/instructionAPI/AST/getUsedRegisters.cpp

  Log Message:
  -----------
  Add tests


Compare: https://github.com/dyninst/dyninst/compare/302ad47f1249%5E...fe42a5468f11

To unsubscribe from these emails, change your notification settings at https://github.com/dyninst/dyninst/settings/notifications
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 302ad4: Use depth-first traversal in MultiRegisterAST::visit, Tim Haines <=