#define INCLUDE__BasicBlock_hxx
#include <cassert>
+#include <string>
+#include <sstream>
class BasicBlock {
public:
- BasicBlock() {
+ BasicBlock() {
next_blocks[0] = 0;
next_blocks[1] = 0;
}
- uint64_t getStartAddress() const {
- return start_address;
- }
+ uint64_t getStartAddress() const {
+ return start_address;
+ }
- uint64_t getEndAddress() const {
- return end_address;
- }
+ uint64_t getEndAddress() const {
+ return end_address;
+ }
uint64_t getNextBlock(size_t index) const {
assert(index < 2);
end_address = address;
}
+ std::string getName() {
+ std::stringstream s;
+ s << "BLOCK_" << std::hex << start_address << '_' << end_address;
+ return s.str();
+ }
+
private:
- uint64_t start_address;
- uint64_t end_address;
+ uint64_t start_address;
+ uint64_t end_address;
- uint64_t next_blocks[2];
+ uint64_t next_blocks[2];
};
#endif