This is an archive of the discontinued LLVM Phabricator instance.

[WIP] Demo a functional problem from D81647 with a fix and test case
AbandonedPublic

Authored by reames on Jul 30 2020, 11:29 AM.

Details

Reviewers
dantrushin
Summary

When spilling gc operands, we have to mark them as load and store. They were originally defs and we need to preserve that.

This is semantically important as a relocating collector *will* update them sometimes.

Diff Detail

Event Timeline

reames created this revision.Jul 30 2020, 11:29 AM

I will incorporate this into D81647, since fix will be even simpler there.

llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
238

Defs are never seen here by construction of OpsToSpill

248

Can iterate over MI.defs() (not operands()) and delete these checks

reames abandoned this revision.Aug 14 2020, 3:54 PM