This is an archive of the discontinued LLVM Phabricator instance.

[X86] Fix VZEROUPPER scheduling info on SNB,HSW,BDW,SXL,SKX.
ClosedPublic

Authored by courbet on Nov 5 2018, 8:11 AM.

Details

Summary

Starting from SNB, VZEROUPPER is handled by the renamer and uses no proc resources.
After HSW, it also has zero latency.

This fixes PR35606.

To reproduce:
Uops:

llvm-exegesis -mode=uops -opcode-name=VZEROUPPER

Latency:

echo -e '#LLVM-EXEGESIS-DEFREG XMM0 1\n#LLVM-EXEGESIS-DEFREG XMM1 1\nvzeroupper' | /tmp/llvm-exegesis -mode=latency -snippets-file=-
echo -e '#LLVM-EXEGESIS-DEFREG XMM0 1\n#LLVM-EXEGESIS-DEFREG XMM1 1\nvzeroupper\naddps %xmm0, %xmm1' | /tmp/llvm-exegesis -mode=latency -snippets-file=-

Diff Detail

Repository
rL LLVM

Event Timeline

courbet created this revision.Nov 5 2018, 8:11 AM
RKSimon added inline comments.Nov 5 2018, 8:35 AM
tools/llvm-mca/lib/Stages/Decode.cpp
1 ↗(On Diff #172595)

Typo?

courbet updated this revision to Diff 172597.Nov 5 2018, 8:37 AM

remove unrelated file

courbet added inline comments.Nov 5 2018, 8:37 AM
tools/llvm-mca/lib/Stages/Decode.cpp
1 ↗(On Diff #172595)

oops, yes.

RKSimon accepted this revision.Nov 8 2018, 5:17 AM

LGTM

This revision is now accepted and ready to land.Nov 8 2018, 5:17 AM
This revision was automatically updated to reflect the committed changes.