[CodeGen] Add alias for cpu_dispatch function with IFunc & Fix resolver linkage type
authorFangrui Song <maskray@google.com>
Wed, 11 Sep 2019 01:54:48 +0000 (01:54 +0000)
committerFangrui Song <maskray@google.com>
Wed, 11 Sep 2019 01:54:48 +0000 (01:54 +0000)
commit9ca1b94a6d3f491f26ccbeacf910342e6861fc7f
treef8197545a4a7e4829b20cbee9edb46e7c5969703
parent56a34f4541cb6ca70f41f6229911894db18ff113
[CodeGen] Add alias for cpu_dispatch function with IFunc & Fix resolver linkage type

Multi-versioned functions defined by cpu_dispatch and implemented with IFunc
can not be called outside the translation units where they are defined due to
lack of symbols. This patch add function aliases for these functions and thus
make them visible outside.

Differential Revision: https://reviews.llvm.org/D67058
Patch by Senran Zhang

llvm-svn: 371586
12 files changed:
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGen/attr-cpuspecific.c
clang/test/CodeGen/attr-target-mv-func-ptrs.c
clang/test/CodeGen/attr-target-mv-va-args.c
clang/test/CodeGen/attr-target-mv.c
clang/test/CodeGenCXX/attr-cpuspecific.cpp
clang/test/CodeGenCXX/attr-target-mv-diff-ns.cpp
clang/test/CodeGenCXX/attr-target-mv-inalloca.cpp
clang/test/CodeGenCXX/attr-target-mv-member-funcs.cpp
clang/test/CodeGenCXX/attr-target-mv-modules.cpp
clang/test/CodeGenCXX/attr-target-mv-out-of-line-defs.cpp
clang/test/CodeGenCXX/attr-target-mv-overloads.cpp