Code extractor outlines function with token parameter which isn't an intrinsic. This patch:
- Adds a verifier to check valid parameter types.
- Allows hotcoldsplit to bail out once input parameters are calculated (before splitting)
- Adds a sanity check using the verifier in debug mode (after splitting)
The validation done by validateInputDataDependencies should be moved into isEligible. This way, extractCodeRegion will simply fail on non-eligible regions -- this is something clients of CodeExtractor can already handle.
Adding a new validation API may leave some clients, like PartialInliner, unfixed.