Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Illegal (or unknown) operand: What does this mean? #60

Open
thereAreDemonsNearby opened this issue Oct 28, 2020 · 4 comments
Open

Illegal (or unknown) operand: What does this mean? #60

thereAreDemonsNearby opened this issue Oct 28, 2020 · 4 comments

Comments

@thereAreDemonsNearby
Copy link

Illegal (or unknown) operand:
$0x000055e40e799337
In instruction:
jle $0x000055e40e799337

@alexrenda
Copy link
Collaborator

Not entirely sure why the reported error is that the operand is unknown, but Ithemal only operates over basic blocks so it won't be able to generate a prediction for a jump instruction

@andreas-abel
Copy link

But a jump instruction can be part of a basic block if it is the last instruction in this block.

@alexrenda
Copy link
Collaborator

That's true, and that is a limitation of Ithemal's current model — different jump instructions could plausibly result in different timings. Unfortunately, including jump instructions at the end of basic blocks makes it quite a bit harder (though potentially not impossible) to get an accurate measure of ground-truth throughput, so we don't include that currently. It would definitely be interesting to see examples of blocks where the choice of jump instruction has a real impact on throughput though.

@thereAreDemonsNearby
Copy link
Author

Thank you for your reply. It's true that there are several if statements in the loop body I've tested using Ithemal. It seems that IACA or llvm-mca is more suitable for such code snippets

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants