This is an archive of the discontinued LLVM Phabricator instance.

[IRSim][IROutliner] Ignore outlined sections that include musttail calls
ClosedPublic

Authored by AndrewLitteken on Mar 1 2022, 7:57 AM.

Details

Summary

Musttail calls require extra handling to properly propagate the calling convention information and tail call information. The outliner does not currently do this, so we ignore call instructions that utilize the swifttailcc and tailcc calling convention as well as functions marked with the attribute musttail.

Diff Detail

Event Timeline

AndrewLitteken created this revision.Mar 1 2022, 7:57 AM
AndrewLitteken requested review of this revision.Mar 1 2022, 7:57 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 1 2022, 7:57 AM
AndrewLitteken added inline comments.Mar 1 2022, 8:05 AM
llvm/include/llvm/Transforms/IPO/IROutliner.h
384

Could be removed from this version, is needed in the patch that handles outlining musttail calls.

llvm/lib/Analysis/IRSimilarityIdentifier.cpp
1203

Needs Comment to denote the argument name.

1222

Needs Comment to denote the argument name.

paquette added inline comments.Mar 1 2022, 11:49 AM
llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
563

Can you add comments here explaining why this is currently disabled? In the future, we may want to handle this, or someone may be interested in why it's disabled.

Adding comments explaining reasoning for skipping for now.

Herald added a project: Restricted Project. · View Herald TranscriptMar 2 2022, 10:02 PM
paquette accepted this revision.Mar 3 2022, 9:14 AM

LGTM

This revision is now accepted and ready to land.Mar 3 2022, 9:14 AM
This revision was landed with ongoing or failed builds.Mar 13 2022, 5:28 PM
This revision was automatically updated to reflect the committed changes.