[LV] Wrap LV illegality reporting in a function. NFC.
authorRenato Golin <rengolin@systemcall.eu>
Thu, 6 Jun 2019 19:15:52 +0000 (19:15 +0000)
committerRenato Golin <rengolin@systemcall.eu>
Thu, 6 Jun 2019 19:15:52 +0000 (19:15 +0000)
commit9e97caf59474880349f8710463bffb97996a7336
tree3e56e6122daf048c947f2e80c17d8d41f94eea15
parent60ec248148c52a47cecf8b660c32a0e7568a8a00
[LV] Wrap LV illegality reporting in a function. NFC.

A function for loop vectorization illegality reporting has been
introduced:

void LoopVectorizationLegality::reportVectorizationFailure(
    const StringRef DebugMsg, const StringRef OREMsg,
    const StringRef ORETag, Instruction * const I) const;

The function prints a debug message when the debug for the compilation
unit is enabled as well as invokes the optimization report emitter to
generate a message with a specified tag. The function doesn't cover any
complicated logic when a custom lambda should be passed to the emitter,
only generating a message with a tag is supported.

The function always prints the instruction `I` after the debug message
whenever the instruction is specified, otherwise the debug message
ends with a dot: 'LV: Not vectorizing: Disabled/already vectorized.'

Patch by Pavel Samolysov <samolisov@gmail.com>

llvm-svn: 362736
llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp