This is an archive of the discontinued LLVM Phabricator instance.

Ignore "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" in favor of "frame-pointer"
ClosedPublic

Authored by MaskRay on Dec 24 2019, 6:24 PM.

Details

Summary

D56351 (included in LLVM 8.0.0) introduced "frame-pointer". All tests
which use "no-frame-pointer-elim" or "no-frame-pointer-elim-non-leaf"
have been migrated to use "frame-pointer".

Implement UpgradeFramePointerAttributes to upgrade the two obsoleted
function attributes for bitcode. Their semantics are ignored.

(I have patches to fix two downstream users: ldc and Julia (lightweight use in jit on Windows and FreeBSD)).

Diff Detail

Event Timeline

MaskRay created this revision.Dec 24 2019, 6:24 PM
MaskRay updated this revision to Diff 235244.Dec 24 2019, 6:33 PM

+ if (!F.hasFnAttribute("frame-pointer"))
+ return false;

(Forgot to include them..

ychen added a comment.Dec 24 2019, 7:20 PM

Probably need to translate old attributes to new attribute in AutoUpgrade.cpp? Otherwise, this may cause problems for existing LTO libraries.

rnk added a comment.Dec 25 2019, 9:27 AM

Probably need to translate old attributes to new attribute in AutoUpgrade.cpp? Otherwise, this may cause problems for existing LTO libraries.

+1, let's do that.

MaskRay updated this revision to Diff 235292.Dec 25 2019, 11:46 AM
MaskRay edited the summary of this revision. (Show Details)

Implement UpgradeFramePointerAttributes to upgrade the two obsoleted function attributes for bitcode.

ychen accepted this revision.Dec 26 2019, 7:29 PM

LGTM

This revision is now accepted and ready to land.Dec 26 2019, 7:29 PM
This revision was automatically updated to reflect the committed changes.