Exploring effective uses of the tagged memory for reducing bounds checking overheads