Given a map from target_features to whether they are enabled or disabled, ensure only valid
combinations are allowed. Returns Some if a violation is found.
Utility function for a codegen backend to compute the set of all actually enabled Rust target
features (which will be stored in sess.internal_target_features).
Parse the value of the target spec features field or -Ctarget-feature, calling the closure
for each entry in the list, also expanding implied features (but only for actual Rust target
features). If the list contains a syntactically invalid item (not starting with +/-) , the
error callback is invoked.
Computes the backend target features to be added to account for retpoline flags.
Used by both LLVM and GCC since their target features are, conveniently, the same.