[DynInst_API:] [dyninst/dyninst] 63bc94: Use depth-first traversal in MultiRegisterAST::vis...


Date: Fri, 31 Oct 2025 11:17:27 -0700
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 63bc94: Use depth-first traversal in MultiRegisterAST::vis...
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 63bc945bab064736dc1b2ccf24459de05fa12ccf
      https://github.com/dyninst/dyninst/commit/63bc945bab064736dc1b2ccf24459de05fa12ccf
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2025-10-31 (Fri, 31 Oct 2025)

  Changed paths:
    M instructionAPI/h/InstructionAST.h
    M instructionAPI/src/MultiRegister.C
    M tests/unit/CMakeLists.txt
    A tests/unit/instructionAPI/AST/CMakeLists.txt
    A tests/unit/instructionAPI/AST/getUsedRegisters.cpp

  Log Message:
  -----------
  Use depth-first traversal in MultiRegisterAST::visit (#2044)

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.



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] 63bc94: Use depth-first traversal in MultiRegisterAST::vis..., Tim Haines <=