[PATCH] D19373: Remangle intrinsics names when types are renamed
Artur Pilipenko via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 21 10:31:15 PDT 2016
apilipenko created this revision.
apilipenko added reviewers: rafael, reames, qikon, joker.eph.
apilipenko added a subscriber: llvm-commits.
This is a fix for the problem mentioned in "LTO and intrinsics mangling" llvm-dev mail thread:
http://lists.llvm.org/pipermail/llvm-dev/2016-April/098387.html
Two approaches to fix the problem were mentioned: remangle intrinsics names when types are renamed or avoid using pointer other than i8* in masked load/store intrinsics. I prototyped both and decided to go ahead with the former. It's just cleaner and simple than shuffling masked load/store arguments in autoupgrade/builder/tests. It's also more generic and I expect that we will have the same problem with gather/scatter when we decide to support arbitrary address spaces in these intrinsics.
In this patch I reuse AutoUpgrade to trigger intrinsic renaming in the case when types were renamed during module loading. I also changed IRMover to rename the intrinsics if the types were remapped.
http://reviews.llvm.org/D19373
Files:
include/llvm/IR/Intrinsics.h
lib/IR/AutoUpgrade.cpp
lib/IR/Function.cpp
lib/Linker/IRMover.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19373.54530.patch
Type: text/x-patch
Size: 4388 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160421/4fcf36d6/attachment.bin>
More information about the llvm-commits
mailing list