libTriton version 1.0 build 1592
Loading...
Searching...
No Matches
symbolicSimplification.hpp
Go to the documentation of this file.
1
2/*
3** Copyright (C) - Triton
4**
5** This program is under the terms of the Apache License 2.0.
6*/
7
8#ifndef TRITON_SYMBOLICSIMPLIFICATION_H
9#define TRITON_SYMBOLICSIMPLIFICATION_H
10
12#include <triton/ast.hpp>
13#include <triton/basicBlock.hpp>
14#include <triton/callbacks.hpp>
15#include <triton/dllexport.hpp>
16
17
18
20namespace triton {
27 namespace engines {
35 namespace symbolic {
43
45 private:
47 triton::arch::Architecture* architecture;
48
51
53 void copy(const SymbolicSimplification& other);
54
56 triton::arch::BasicBlock deadStoreElimination(const triton::arch::BasicBlock& block, bool padding=false) const;
57
58 public:
60 TRITON_EXPORT SymbolicSimplification(triton::arch::Architecture* architecture, triton::callbacks::Callbacks* callbacks=nullptr);
61
63 TRITON_EXPORT SymbolicSimplification(const SymbolicSimplification& other);
64
67
69 TRITON_EXPORT triton::arch::BasicBlock simplify(const triton::arch::BasicBlock& block, bool padding=false) const;
70
72 TRITON_EXPORT SymbolicSimplification& operator=(const SymbolicSimplification& other);
73 };
74
76 };
78 };
80};
81
82#endif /* TRITON_SYMBOLICSIMPLIFICATION_H */
The abstract architecture class.
This class is used to represent a basic block.
The callbacks class.
Definition callbacks.hpp:79
TRITON_EXPORT SymbolicSimplification(triton::arch::Architecture *architecture, triton::callbacks::Callbacks *callbacks=nullptr)
Constructor.
TRITON_EXPORT triton::ast::SharedAbstractNode simplify(const triton::ast::SharedAbstractNode &node) const
Processes all recorded simplifications. Returns the simplified node.
TRITON_EXPORT SymbolicSimplification & operator=(const SymbolicSimplification &other)
Copies a SymbolicSimplification.
std::shared_ptr< triton::ast::AbstractNode > SharedAbstractNode
Shared Abstract Node.
Definition ast.hpp:59
The Triton namespace.