This is an archive of the discontinued LLVM Phabricator instance.

[InstrRef][AArch64][3/4] Recover variables from aarch64 load/store combiner
AcceptedPublic

Authored by jmorse on Jun 18 2021, 4:56 AM.

Details

Reviewers
aprantl
Group Reviewers
debug-info
Summary

This pass combines several load or store instructions into a single instruction that defines several registers at a time. With the instruction referencing model of tracking variable values for debug-info, we need to record that this optimisation took place, mapping the instruction numbers of any optimised-out loads onto the relevant operands of the new LDP instruction. Stores should not be labelled.

The test added borrows functions from other aarch64 tests. Right now, the "case4" function produces a LDPXpost instruction that I'm not quite sure what to do with. That's left unlabelled (meaning variable locations are safely dropped) to be implemented as a future exercise.

Diff Detail