This is an archive of the discontinued LLVM Phabricator instance.

Make basic_string::operator=() tail call properly
ClosedPublic

Authored by mvels on Apr 10 2020, 3:36 PM.

Details

Reviewers
EricWF
Group Reviewers
Restricted Project
Commits
rG7ba045a430b9: Make basic_string::operator=() tail call properly
Summary

We discovered that the compiler may chose not to inline the operator=, which leads to an expensive extra stack frame. This change makes __assign_no_alias always tail called.

Diff Detail

Event Timeline

mvels created this revision.Apr 10 2020, 3:36 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 10 2020, 3:36 PM
Herald added a reviewer: Restricted Project. · View Herald Transcript
EricWF accepted this revision.Apr 10 2020, 3:54 PM
This revision is now accepted and ready to land.Apr 10 2020, 3:54 PM
This revision was automatically updated to reflect the committed changes.