This is an archive of the discontinued LLVM Phabricator instance.

[lto] added getCOFFWeakExternalFallback
ClosedPublic

Authored by inglorion on Jan 31 2017, 7:07 PM.

Details

Summary

This allows clients of the LTO API to determine the name of the fallback symbol for COFF weak externals.

Event Timeline

inglorion created this revision.Jan 31 2017, 7:07 PM
pcc added inline comments.Feb 1 2017, 4:18 PM
include/llvm/LTO/LTO.h
150

I'd make this function specifically for COFF weak externals. No other format requires this feature during symbol resolution, as far as I know.

151

*refers to

153

Maybe assert that the symbol is a weak external?

155

This could be a bitcast or a gep, so I think you need to call stripPointerCasts on the result. You also need to mangle the symbol name, see how we set Name for example.

157

I don't think we can get here if the symbol is a valid weak external. I'd assert (via cast or otherwise) that this is the case.

inglorion updated this revision to Diff 86867.Feb 2 2017, 12:05 PM
  • renamed to getCOFFWeakExternalFallback to indicate this only works for COFF weak externals
  • asserted that the symbol is a weak external
  • added mangling

(I'll update the title of the revision if you're happy with the new name.)

pcc accepted this revision.Feb 2 2017, 12:15 PM

LGTM

This revision is now accepted and ready to land.Feb 2 2017, 12:15 PM
inglorion updated this revision to Diff 86903.Feb 2 2017, 3:18 PM
inglorion retitled this revision from [lto] added getAliasName to [lto] added getCOFFWeakExternalFallback.
inglorion edited the summary of this revision. (Show Details)

Updating title and summary.

This revision was automatically updated to reflect the committed changes.