Skip to content

Make QCOR QIR Compatible with QIR Alliance QAT Tool #246

@amccaskey

Description

@amccaskey

I just tried to take a QIR file output from qcor and translate to the base profile with the QAT tool from the QIR Alliance. It did not work out of the box. Turns out, QAT will look for a function attribute and perform the transformation from there.

From Stefan

QAT looks for a specific LLVM attribute to know which function to start it’s processing from. 
This can be either “InteropFriendly” (the default) or “EntryPoint” (selectable with “—entry-point-attr EntryPoint”). 
Then the IR needs to be updated to have that attribute on exactly one function.
In this case, if I update main to include that attribute, the transformation succeeds.

Also there is a discrepancy with our measurement call

One other thing to note: transformation of measurement into the form described in the base profile, 
which uses static result identifiers, is dependent on seeing the intrinsic “__quantum__qis__m__body” 
as the measurement function. That’s why the “__quantum__qis__mz” in the above did not get transformed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions