Skip to content

[llvm-mca] Teach how to identify serializing instructions. #36016

@adibiagio

Description

@adibiagio
Bugzilla Link 36668
Version trunk
OS All
CC @legrosbuffle,@RKSimon,@rotateright

Extended Description

Similar to bug 36667.
However, serializing operations block the Backend until all the are no other instructions in-flight. Essentially, these instructions block the Dispatch, and force all the in-flight instructions to complete before new instructions are dispatched.

This could be fixed by using an extra flag in MCInstrDesc.
In llvm-mca, this requires a few changes in the Backend/DispatchUnit logic. At the moment, the tool doesn't know about serializing instructions.

Examples of non-privileged serializing instructions on X86 are:
CPUID, IRET

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions