Program Listing for File HSTimingUndo.h¶
↰ Return to documentation for file (src/sta/HSTimingUndo.h)
#pragma once
#include <cfloat> // FLT_MAX
#include <cstdint> // std::uint8_t
namespace HSFullTiming {
// 前置声明:只用指针即可,不需要完整定义
struct slackData;
// Slack 回滚记录:只考虑 Modify(Pre/Post)
// side: 0=Pre, 1=Post
struct SlackUndo {
std::uint8_t side = 0;
// 指向被修改的 slackData 节点(评估期间不能 erase 该节点)
slackData *p = nullptr;
// old values(三元组)
short oldHop = -1;
float oldSlack = FLT_MAX;
int oldEdgeId = -1;
};
// 边 enable/disable 回滚记录
struct EnableUndo {
int edgeId = -1;
bool oldEnable = true;
};
} // namespace HSFullTiming