예제 #1
0
boolean is_game_finished(MonopolyMap map ){
    BlockAddress B = map.first;
    if(( NbElmt(map.ListPlayer) == 1 )|| is_tourism(map) || is_triple(map))
    {
        return true;
    }
    else
    {
        return false;
    }
}
예제 #2
0
파일: ir_gvn.cpp 프로젝트: Grainspring/xoc
VN * IR_GVN::register_tri_vn(IR_TYPE irt, VN const* v0, VN const* v1,
							 VN const* v2)
{
	IS_TRUE0(v0 && v1 && v2);
	IS_TRUE0(is_triple(irt));
	VEC3 * v0_vec = (VEC3*)m_irt_vec.get(irt);
	if (v0_vec == NULL) {
		v0_vec = new VEC3();
		m_vec_lst.append_tail((VEC1*)v0_vec);
		m_irt_vec.set(irt, (VEC2*)v0_vec);
	}

	VEC2 * v1_vec = v0_vec->get(VN_id(v0));
	if (v1_vec == NULL) {
		v1_vec = new VEC2();
		m_vec_lst.append_tail((VEC1*)v1_vec);
		v0_vec->set(VN_id(v0), v1_vec);
	}

	VEC1 * v2_vec = v1_vec->get(VN_id(v1));
	if (v2_vec == NULL) {
		v2_vec = new VEC1();
		m_vec_lst.append_tail((VEC1*)v2_vec);
		m_vnvec_lst.append_tail(v2_vec);
		v1_vec->set(VN_id(v1), v2_vec);
	}

	VN * res = v2_vec->get(VN_id(v2));
	if (res == NULL) {
		res = new_vn();
		VN_type(res) = VN_OP;
		VN_op(res) = irt;
		v2_vec->set(VN_id(v2), res);
	}
	return res;
}
예제 #3
0
파일: ir_gvn.cpp 프로젝트: Grainspring/xoc
bool IR_GVN::verify()
{
	for (INT i = 0; i <= m_irt_vec.get_last_idx(); i++) {
		if (is_bin_irt((IR_TYPE)i) || i == IR_LDA) {
			SVECTOR<SVECTOR<VN*>*> * v0_vec = m_irt_vec.get(i);
			if (v0_vec == NULL) { continue; }
			for (INT j = 0; j <= v0_vec->get_last_idx(); j++) {
				SVECTOR<VN*> * v1_vec = v0_vec->get(j);
				if (v1_vec == NULL) { continue; }
				//v1_vec->clean();
			}
		} else if (i == IR_BNOT || i == IR_LNOT ||
				   i == IR_NEG || i == IR_CVT) {
			SVECTOR<VN*> * v0_vec = (SVECTOR<VN*>*)m_irt_vec.get(i);
			if (v0_vec == NULL) { continue; }
			//v0_vec->clean();
		} else if (is_triple((IR_TYPE)i)) {
			VEC3 * v0_vec = (VEC3*)m_irt_vec.get(i);
			if (v0_vec == NULL) { continue; }
			for (INT j = 0; j <= v0_vec->get_last_idx(); j++) {
				VEC2 * v1_vec = v0_vec->get(j);
				if (v1_vec == NULL) { continue; }
				for (INT k = 0; k <= v1_vec->get_last_idx(); k++) {
					VEC1 * v2_vec = v1_vec->get(k);
					if (v1_vec == NULL) { continue; }
					//v2_vec->clean();
				}
			}
		} else if (is_quad((IR_TYPE)i)) {
			//
		} else {
			IS_TRUE0(m_irt_vec.get(i) == NULL);
		}
	}
	return true;
}