1*5971e316Smrg /* 2*5971e316Smrg * Copyright 2016 Sven Verdoolaege 3*5971e316Smrg * 4*5971e316Smrg * Use of this software is governed by the MIT license 5*5971e316Smrg * 6*5971e316Smrg * Written by Sven Verdoolaege 7*5971e316Smrg */ 8*5971e316Smrg 9*5971e316Smrg #include <isl_multi_macro.h> 10*5971e316Smrg #include <isl/hash.h> 11*5971e316Smrg 12*5971e316Smrg /* Return a hash value that digests "multi". 13*5971e316Smrg */ FN(MULTI (BASE),get_hash)14*5971e316Smrguint32_t FN(MULTI(BASE),get_hash)(__isl_keep MULTI(BASE) *multi) 15*5971e316Smrg { 16*5971e316Smrg int i; 17*5971e316Smrg uint32_t hash; 18*5971e316Smrg 19*5971e316Smrg if (!multi) 20*5971e316Smrg return 0; 21*5971e316Smrg 22*5971e316Smrg hash = isl_hash_init(); 23*5971e316Smrg for (i = 0; i < multi->n; ++i) { 24*5971e316Smrg uint32_t el_hash; 25*5971e316Smrg el_hash = FN(EL,get_hash)(multi->u.p[i]); 26*5971e316Smrg isl_hash_hash(hash, el_hash); 27*5971e316Smrg } 28*5971e316Smrg 29*5971e316Smrg return hash; 30*5971e316Smrg } 31