Пример #1
0
 def hhpx(self, tran):  # 混合排序
     dist = 0
     res = 0
     defSet = set(tran.getvDefList())
     for item in reversed(self.tranlist):
         dist += 1
         defSet = defSet - set(item.getvDefList())  # 消去迁移中已有的定义变量
         if len(defSet) == 0:  # 不存在 没在序列中找到定义的 def集合 时,break
             break
         res += config.distMap(dist) * config.numMap(
             len(defSet & set(item.getvUseList())))  # 距离的映射函数 * 数量的映射函数
     return dist
Пример #2
0
    def hhpx(self, tran):  # 混合排序#不是看最近距离,看每个重合变量的距离
        dist = 0
        defSet = set(tran.getvDefList())

        for item in reversed(self.tranlist):
            defSet = defSet - set(item.getvDefList())
            if len(defSet) == 0:  # 不存在 没在序列中找到定义的 def集合 时,break
                break
        for item in reversed(self.tranlist):
            dist += 1
            if len(set(defSet) & set(item.getvUseList())) != 0:
                break

        res = config.distMap(dist) * config.numMap(self.achcdpx(tran))  # 距离的映射函数 * 数量的映射函数
        return res