> I don't like B), it is unlike everything else a pass does. You seem to > use the new field to indicate a group - that makes it a flat hierarchy > which might make it limiting (for example 'vect' may include both loop > and scalar vectorization, but would 'loop' also include loop vectorization?). > Using a bitmask and an enum would be my preference for this reason > (similar to how we have TDF_ flags). Loop vectorization would then > be vect|loop for example.
Yes, I was thinking of groups of optimizations as a single high-level name. But I agree that it is an unnecessary restriction. I will work towards a set of flags instead. Also, another kind of grouping is possible via sub-passes in certain cases. For example, "loop2" or "early_optimizations" could imply sub-passes. Not sure how useful that would be. Thanks, Sharad