Summary form only given, as follows. The authors propose a novel compiler-directed cache management scheme which allows parallel invalidation of a subset of array elements. The scheme limits nonstale data invalidations using a novel memory allocation technique. Its correctness is proved using a flow graph model. It is also shown that the scheme provides more cacheability than the previous compiler-directed ones and has lower overhead in determining read hit at runtime. A new performance parameter called unwanted invalidation ratio, for compiler-directed coherence schemes, is also proposed.