[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