This is an archive of the discontinued LLVM Phabricator instance.

[GlobalISel] Add ISel support for @llvm.lifetime.start and @llvm.lifetime.end for opt levels above O0
ClosedPublic

Authored by paquette on Jan 24 2019, 1:39 PM.

Details

Summary

This adds instruction selection support for lifetime markers. It also updates the arm64-irtranslator test, and updates some AArch64 tests that use them for added coverage. It also adds a testcase taken from the X86 codegen tests which verified a bug caused by lifetime markers + stack colouring in the past. This is intended to make sure that GISel doesn't re-introduce the bug.

(This is basically a straight copy from what SelectionDAG does in SelectionDAGBuilder.cpp)

Diff Detail

Event Timeline

paquette created this revision.Jan 24 2019, 1:39 PM
aemerson accepted this revision.Jan 25 2019, 5:39 PM

LGTM.

This revision is now accepted and ready to land.Jan 25 2019, 5:39 PM
arsenm added a subscriber: arsenm.Jan 25 2019, 6:03 PM
arsenm added inline comments.
lib/CodeGen/GlobalISel/IRTranslator.cpp
798

The pass name is spelled in American

812

Reference unnecessary

813

I don't think GetUnderlyingObjects ever returns null values?

paquette closed this revision.Jan 28 2019, 11:24 AM
paquette marked 2 inline comments as done.

Committed in r352410.

https://reviews.llvm.org/rL352410