A Compiler-Assisted Cache Coherence Solution for Multiprcessors