Do not consider mem intrinsics as error.

The intrinsics memset, memcopy and memmove do have their memory accesses
modeled by ScopBuilder. Do not consider them error-case behavior.

Test case will come with a future patch that requires memory intrinsics
outside of error blocks.

llvm-svn: 312021
This commit is contained in:
Michael Kruse 2017-08-29 18:27:47 +00:00
parent 25d3f85a43
commit 99cc9ded41
1 changed files with 4 additions and 0 deletions

View File

@ -415,6 +415,10 @@ bool polly::isErrorBlock(BasicBlock &BB, const Region &R, LoopInfo &LI,
if (isIgnoredIntrinsic(CI))
continue;
// memset, memcpy and memmove are modeled intrinsics.
if (isa<MemSetInst>(CI) || isa<MemTransferInst>(CI))
continue;
if (!CI->doesNotAccessMemory())
return true;
if (CI->doesNotReturn())