This is an archive of the discontinued LLVM Phabricator instance.

llvm-reduce: Don't set generic instruction operands to undef
ClosedPublic

Authored by arsenm on Jun 6 2022, 7:13 AM.

Details

Summary

The intention is that these should never have undef operands. It turns
out the restriction the verifier enforces is too lax. The verifier
enforces that registers without a register class cannot be undef, but
it's valid to use a register with a register class and type. The
verifier needs to change to be based on the opcode.

Diff Detail

Event Timeline

arsenm created this revision.Jun 6 2022, 7:13 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 6 2022, 7:13 AM
arsenm requested review of this revision.Jun 6 2022, 7:13 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 6 2022, 7:13 AM
Herald added a subscriber: wdng. · View Herald Transcript

I think this seems reasonable, but if this is a problem with the verifier, why not fix it there? Or would that not work?

I think this seems reasonable, but if this is a problem with the verifier, why not fix it there? Or would that not work?

The verifier problem is separate. The verifier is too lenient. This is following the stricter standard the verifier should enforce

paquette accepted this revision.Jun 6 2022, 10:26 AM

Ok, LGTM then

This revision is now accepted and ready to land.Jun 6 2022, 10:26 AM