public PredictionContext add(PredictionContext ctx) {
		if ( ctx==EmptyPredictionContext.Instance ) return EmptyPredictionContext.Instance;
		PredictionContext existing = cache.get(ctx);
		if ( existing!=null ) {
//			System.out.println(name+" reuses "+existing);
			return existing;
		}
		cache.put(ctx, ctx);
		return ctx;
	}
Add a context to the cache and return it. If the context already exists,
 return that one instead and do not add a new context to the cache.
 Protect shared cache from unsafe thread access.
runtime/Java/src/org/antlr/v4/runtime/atn/PredictionContextCache.java