[LTO][Legacy] Add new C inferface to query libcall functions
authorSteven Wu <stevenwu@apple.com>
Mon, 16 Sep 2019 18:49:54 +0000 (18:49 +0000)
committerSteven Wu <stevenwu@apple.com>
Mon, 16 Sep 2019 18:49:54 +0000 (18:49 +0000)
commit34d80461ff77269d6342768a5801ec655da7cea7
treea838a723dc1d2a7b1a6840253ef87974483f223f
parent32837a0c93ecdb33faaba253c5c7e868db9c529f
[LTO][Legacy] Add new C inferface to query libcall functions

Summary:
This is needed to implemented the same approach as lld (implemented in r338434)
for how to handling symbols that can be generated by LTO code generator
but not present in the symbol table for linker that uses legacy C APIs.

libLTO is in charge of providing the list of symbols. Linker is in
charge of implementing the eager loading from static libraries using
the list of symbols.

rdar://problem/52853974

Reviewers: tejohnson, bd1976llvm, deadalnix, espindola

Reviewed By: tejohnson

Subscribers: emaste, arichardson, hiraditya, MaskRay, dang, kledzik, mehdi_amini, inglorion, jkorous, dexonsmith, ributzka, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67568

llvm-svn: 372021
llvm/include/llvm-c/lto.h
llvm/include/llvm/LTO/LTO.h
llvm/lib/LTO/LTO.cpp
llvm/tools/lto/lto.cpp
llvm/tools/lto/lto.exports