15 #ifndef LLVM_MC_MCMODULE_H
16 #define LLVM_MC_MCMODULE_H
20 #include "llvm/Support/DataTypes.h"
29 class MCObjectDisassembler;
43 typedef std::vector<MCAtom*> AtomListTy;
53 void remap(
MCAtom *Atom, uint64_t NewBegin, uint64_t NewEnd);
61 typedef std::vector<MCBasicBlock*> BBsByAtomTy;
62 BBsByAtomTy BBsByAtom;
76 typedef std::vector<MCFunction*> FunctionListTy;
77 FunctionListTy Functions;
FunctionListTy::iterator func_iterator
AtomListTy::iterator atom_iterator
const MCAtom * findFirstAtomAfter(uint64_t Addr) const
An atom consisting of disassembled instructions.
const MCAtom * findAtomContaining(uint64_t Addr) const
An atom consising of a sequence of bytes.
uint64_t getEntrypoint() const
Get the address of the entrypoint function, or 0 if there is none.
MCFunction * createFunction(StringRef Name)
Create a new MCFunction.
MCDataAtom * createDataAtom(uint64_t Begin, uint64_t End)
Represents a function in machine code, containing MCBasicBlocks. MCFunctions are created by MCModule...
MCTextAtom * createTextAtom(uint64_t Begin, uint64_t End)
const_atom_iterator atom_end() const
atom_iterator atom_begin()
Disassemble an ObjectFile to an MCModule and MCFunctions. This class builds on MCDisassembler to disa...
const_func_iterator func_begin() const
const_func_iterator func_end() const
AtomListTy::const_iterator const_atom_iterator
Basic block containing a sequence of disassembled instructions. The basic block is backed by an MCTex...
#define LLVM_DELETED_FUNCTION
Represents a contiguous range of either instructions (a TextAtom) or data (a DataAtom). Address ranges are expressed as closed intervals.
A completely disassembled object file or executable. It comprises a list of MCAtom's, each representing a contiguous range of either instructions or data. An MCModule is created using MCObjectDisassembler::buildModule.
FunctionListTy::const_iterator const_func_iterator
func_iterator func_begin()
const_atom_iterator atom_begin() const