This is an archive of the discontinued LLVM Phabricator instance.

Disallow DIExpressions with shift operators from being fragmented
ClosedPublic

Authored by StephenTozer on Nov 22 2019, 8:48 AM.

Details

Summary

Pre-patch to: https://reviews.llvm.org/D70248

DIExpressions with shift operators should not be fragmented for the same reason as arithmetic operators: carry over cannot be expressed from one fragment to the other, so an invalid result would be produced.

Diff Detail

Event Timeline

StephenTozer created this revision.Nov 22 2019, 8:48 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 22 2019, 8:48 AM
vsk accepted this revision.Nov 22 2019, 9:57 AM

LGTM. It might be cleaner to replace the macros with helper functions which accept opcodes as vector<uint64_t> (using brace init on the caller side should be pretty readable).

This revision is now accepted and ready to land.Nov 22 2019, 9:57 AM

LGTM. It might be cleaner to replace the macros with helper functions which accept opcodes as vector<uint64_t> (using brace init on the caller side should be pretty readable).

+1

LGTM as well.

Please make a stack of patches for this one, D70248 and D61184, since it will be easier to review. Eventually, when we land this, we will have the reminder noted here that the patches were connected.

This revision was automatically updated to reflect the committed changes.