Same as D32530 except for a (much) lighter-weight method of rejecting scalable vectors in globals, arrays, and structs in the verifier and a couple of comment changes.
Should address pr42210, which had problems with compile time using LTO due to the recursive verifier implementation.