diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2022-07-07 21:03:29 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2022-08-10 15:17:53 -0400 |
| commit | 390d5d27d4de6b7c9cb06b957a483bb2ab69f241 (patch) | |
| tree | 556133db637166968a77d68daf7ff2160df79b40 /binaryninjaapi.h | |
| parent | 4037000b6cb8a184ad098d0eff397518d7fe55b9 (diff) | |
Merge variables API/UI, variable liveness API for determining soundness of variable merges
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 8af70be6..7c73d066 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -5736,6 +5736,8 @@ namespace BinaryNinja { bool IsVariableUserDefinded(const Variable& var); Confidence<Ref<Type>> GetVariableType(const Variable& var); std::string GetVariableName(const Variable& var); + std::string GetVariableNameOrDefault(const Variable& var); + std::string GetLastSeenVariableNameOrDefault(const Variable& var); void SetAutoIndirectBranches( Architecture* sourceArch, uint64_t source, const std::vector<ArchAndAddr>& branches); @@ -5880,6 +5882,10 @@ namespace BinaryNinja { BNDeadStoreElimination GetVariableDeadStoreElimination(const Variable& var); void SetVariableDeadStoreElimination(const Variable& var, BNDeadStoreElimination mode); + std::map<Variable, std::set<Variable>> GetMergedVariables(); + void MergeVariables(const Variable& target, const std::set<Variable>& sources); + void UnmergeVariables(const Variable& target, const std::set<Variable>& sources); + uint64_t GetHighestAddress(); uint64_t GetLowestAddress(); std::vector<BNAddressRange> GetAddressRanges(); @@ -6755,6 +6761,8 @@ namespace BinaryNinja { } Ref<FlowGraph> CreateFunctionGraph(DisassemblySettings* settings = nullptr); + + std::set<size_t> GetLiveInstructionsForVariable(const Variable& var, bool includeLastUse = true); }; struct HighLevelILInstruction; |
