This is an archive of the discontinued LLVM Phabricator instance.

Revert switch-based std::variant implementation again.
ClosedPublic

Authored by EricWF on Nov 17 2020, 2:44 PM.

Details

Reviewers
ldionne
EricWF
Group Reviewers
Restricted Project
Summary

These changes cause substantial binary size increases for non-opt builds.
For example, the visit.pass.cpp test grows from 20k to 420k.

Further work will be done to re-land this patch without the size increases,
but that work is proving too tricky to fix forward.

This patch fully reverts:

* 35d226911165a9aae1f01f521a0019f1a9c0a25f

And it partially reverts:

* bb43a0cd4adc4f1fa12e0d2fd1fe9aa6b5c00e34

The latter of which added XFAIL's to new variant tests
because the new implementation needlessly makes non-throwing code
paths in variant invoke throwing code.

Diff Detail

Event Timeline

EricWF created this revision.Nov 17 2020, 2:44 PM
Herald added a reviewer: Restricted Project. · View Herald TranscriptNov 17 2020, 2:44 PM
EricWF requested review of this revision.Nov 17 2020, 2:44 PM
EricWF updated this revision to Diff 305944.Nov 17 2020, 5:59 PM
EricWF edited the summary of this revision. (Show Details)

Revert the addition of unneeded availability XFAIL's to variant tests.

EricWF accepted this revision as: Restricted Project.Nov 17 2020, 6:48 PM

I'm trying to trigger a rebuild. Does accepting as libc++ do it?

EricWF set the repository for this revision to rG LLVM Github Monorepo.Nov 17 2020, 6:57 PM
EricWF updated this revision to Diff 305955.Nov 17 2020, 7:00 PM

Attempting to trigger rebuild

EricWF accepted this revision.Nov 17 2020, 8:06 PM

Bots are clean now.

The variant switch change also breaks backwards compatibility when targeting older OS X dylibs,
since it makes non-throwing relops and hash unavailable. We should fix that before recommitting things.

This revision is now accepted and ready to land.Nov 17 2020, 8:06 PM