⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.dom.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char sccsid[] = "@(#)2.dom.c	4.1	(Berkeley)	2/11/83";#endif not lint#include <stdio.h>#/*set dom[v] to immediate dominator of v, based on arcs as stored in inarcs(i.e. pretending the graph is reducible if it isn't).Algorithm is from Hecht and Ullman, Analysis of a simple algorithm for globalflow analysis problems, except bit vector operations replaced by searchthrough DOM to save quadratic blowup in space */#include "def.h"#include "2.def.h"getdom(inarc,dom)struct list **inarc;VERT *dom;	{	VERT v;	int i;	struct list *ls;	for (v = 0; v < nodenum; ++v)		dom[v] = UNDEFINED;	for (i = 1; i < accessnum; ++i)		{		v = after[i];		for (ls = inarc[v]; ls; ls = ls->nxtlist)			{			ASSERT(ntoaft[ls->elt] < i,getdom);			dom[v] = comdom(dom[v],ls->elt,dom);			}		}	}comdom(u,v,dom)			/* find closest common dominator of u,v */VERT u,v, *dom;	{	if (u == UNDEFINED) return(v);	if (v == UNDEFINED) return(u);	while(u != v)		{		ASSERT(u != UNDEFINED && v != UNDEFINED, comdom);		if (ntoaft[u] < ntoaft[v])				v = dom[v];		else			u = dom[u];		}	return(u);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -