This is an archive of the discontinued LLVM Phabricator instance.

[CSInfo][GlobalISel] CallSiteInfo support when using GlobalISel
Needs RevisionPublic

Authored by matejam on Sep 18 2020, 6:48 AM.

Details

Reviewers
djtodoro
arsenm
Summary

Save information about the call sites like block number and offset within that block of the call site instruction and pairs of argument serial numbers and registers that are being used when using GlobalISel as an instruction selector.
We save this information in order to keep track of call instructions and registers that are being used to transfer call arguments.

Diff Detail

Event Timeline

matejam created this revision.Sep 18 2020, 6:48 AM
matejam requested review of this revision.Sep 18 2020, 6:48 AM
djtodoro added inline comments.Sep 18 2020, 6:54 AM
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
2207

Early continue here?

matejam added inline comments.Sep 18 2020, 7:10 AM
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
2207

That's a good idea. Thanks.

arsenm added inline comments.Sep 18 2020, 10:29 AM
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
2203

This is making a *lot* of assumptions about what lowerCall did. You can't assume there will only be a single copy exactly corresponding to a single IR argument, that appear in order

arsenm added inline comments.Sep 18 2020, 10:30 AM
llvm/test/CodeGen/X86/call-site-info-output2.ll
34–37

Should remove these

55

Need some tests with complex arguments that will need decomposing

arsenm requested changes to this revision.Apr 9 2021, 1:36 PM
This revision now requires changes to proceed.Apr 9 2021, 1:36 PM