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

Please model non-taken branches as 1*p06 on hsw/skl #27

Open
amonakov opened this issue Apr 21, 2023 · 0 comments
Open

Please model non-taken branches as 1*p06 on hsw/skl #27

amonakov opened this issue Apr 21, 2023 · 0 comments

Comments

@amonakov
Copy link

amonakov commented Apr 21, 2023

At the moment uica removes p0 as a possible execution port on hsw/skl for a branch early on:

uiCA/convertXML.py

Lines 95 to 96 in 9cbbe93

if (archNode.attrib['name'] not in ['ICL', 'TGL', 'RKL', 'ADL-P']) and (XMLInstr.attrib['category'] == 'COND_BR') and (ports == '1*p06'):
ports = '1*p6' # taken branches can only use port 6

I'd like to suggest that this should be done only for the branch that terminates the input basic block. If the user provided a snippet that contains extra branches in the middle, like I did in issue #14 earlier, they are assumed to be never taken, and hence modeling them as occupying either port 0 or port 6 would be more accurate.

edit: to be clear, I understand that with extra branches the input snippet is not a basic block (potentially an "extended basic block" in compiler developer speak, if jumping into it after the first instruction is impossible)

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

1 participant