HomePhabricator

Add IRBuilder API to create memcpy/memmove calls with differing source and dest…

Description

Add IRBuilder API to create memcpy/memmove calls with differing source and dest alignments

Summary:

This change is step two in the series of changes to remove alignment argument from

memcpy/memmove/memset in favour of alignment attributes. Steps:

Step 1) Remove alignment parameter and create alignment parameter attributes for

memcpy/memmove/memset. ( rL322965 )

Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing

source and dest alignments.

Step 3) Update Clang to use the new IRBuilder API.
Step 4) Update Polly to use the new IRBuilder API.
Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API,

and those that use use MemIntrinsicInst::[get|set]Alignment() to use
getDestAlignment() and getSourceAlignment() instead.

Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the

MemIntrinsicInst::[get|set]Alignment() methods.

Reference

http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html

Details

Committed
dneilsonJan 27 2018, 9:59 AM
Parents
rL323596: Regenerate test result for vastart-defs-eflags.ll. NFC.
Branches
Unknown
Tags
Unknown

Event Timeline