We currently emit incorrect codegen for this constraint because we set it as aconstraint that allows registers. This will cause the value to be copied to thestack and that address to be passed as the address. This is not what we want.

[analyzer] LoopUnrolling: fix crash when a parameter is a loop counter.

When loop counter is a function parameter "isPossiblyEscaped" will not findthe variable declaration which lead to hitting "llvm_unreachable".Parameters of reference type should be escaped like global variables;otherwise treat them as unescaped.

This is a fix for PR45965 - https://bugs.llvm.org/show_bug.cgi?id=45965 -which was left out of D80106 because of a test failure.

SLP does its own mini-CSE after potentially creating redundant instructions,so we need to wait for that to complete before running the verifier.Otherwise, we will see a test failure fortest/Transforms/SLPVectorizer/X86/crash_vectorizeTree.ll (not changed here)because a phi temporarily has identical but different incoming values forthe same incoming block.

A related, but independent, test that would have been altered here wasfixed with:rG880df55

The test was escaping verification in SLP without this change because wewere not running verifyFunction() unless SLP actually changed the IR.

Summary:When handling loops whose VF is 1, fold-tail vectorization sets thebackedge taken count of the original loop with a vector of a singleelement. This causes type-mismatch during instruction generartion.