This is an archive of the discontinued LLVM Phabricator instance.

[X86] Modify LOOP*, HLT control flow attributes
ClosedPublic

Authored by Amir on May 11 2021, 6:30 PM.

Details

Summary

Add missing control flow attributes:

  • LOOP*: isBranch, isTerminator
  • HLT: isTerminator

This helps downstream disassemblers (such as BOLT) reconstruct the control
flow graph more accurately.

Diff Detail

Event Timeline

Amir created this revision.May 11 2021, 6:30 PM
Amir published this revision for review.May 12 2021, 2:58 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 12 2021, 2:58 PM

Why adding encoding information to TAILJMP? It's morphed in X86MCInstLower.cpp before it gets to the encoder.

Needs an explanation of what this accomplishes.

Needs some sort of test, or an explanation of why it can't be tested.

epastor requested changes to this revision.Jun 8 2021, 11:21 AM

Marking as Request Changes to get it off of my dashboard until the other comments get a response.

This revision now requires changes to proceed.Jun 8 2021, 11:21 AM
Amir updated this revision to Diff 354346.Jun 24 2021, 1:32 PM

Removed TAILJMP encoding changes.

Amir retitled this revision from [X86] Modify LOOP*, HLT control flow attributes, add TAILJMP encoding to [X86] Modify LOOP*, HLT control flow attributes.Jun 24 2021, 1:33 PM
Amir edited the summary of this revision. (Show Details)
Amir edited the summary of this revision. (Show Details)
Amir added a comment.Jul 1 2021, 10:26 AM

@craig.topper: looks like there were no objections in a week. Can you please land this diff for me? (I don't have a commit access yet)

This revision was not accepted when it landed; it landed in state Needs Review.Jul 2 2021, 10:35 AM
This revision was automatically updated to reflect the committed changes.