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

Enable assert in perfScoreUnhandledInstruction #810

Open
wants to merge 2 commits into
base: master
from

Conversation

@briansull
Copy link
Contributor

briansull commented Dec 12, 2019

perfScoreUnhandledInstruction will now assert in a DEBUG or CHECKED build when it encounters an unhanded instruction

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Dec 12, 2019

Related to PR #751

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Dec 12, 2019

Copy link
Member

BruceForstall left a comment

Can you make sure to run outerloop and outerloop stress jobs? I wouldn't want this to cause new asserts to show up, especially as we aren't actively monitoring all the various pipelines yet.

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Dec 12, 2019

I am leaving this PR open as I will be leaving for a vacation shortly.

…uild when it encounters an unhanded instruction
@briansull briansull force-pushed the briansull:perfscore-assert branch from 613b11c to ccaf3b2 Jan 17, 2020
@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

@BruceForstall I have refreshed this

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

/AZP list

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

/AZP runtime-coreclr outerloop

@azure-pipelines

This comment has been minimized.

Copy link

azure-pipelines bot commented Jan 17, 2020

Command 'runtime-coreclr' is not supported by Azure Pipelines.

Supported commands
  • help:
    • Get descriptions, examples and documentation about supported commands
    • Example: help "command_name"
  • list:
    • List all pipelines for this repository using a comment.
    • Example: "list"
  • run:
    • Run all pipelines or specific pipelines for this repository using a comment. Use this command by itself to trigger all related pipelines, or specify specific pipelines to run.
    • Example: "run" or "run pipeline_name, pipeline_name, pipeline_name"
  • where:
    • Report back the Azure DevOps orgs that are related to this repository and org
    • Example: "where"

See additional documentation.
@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

/AZP run runtime-coreclr outerloop

@azure-pipelines

This comment has been minimized.

Copy link

azure-pipelines bot commented Jan 17, 2020

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.
@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

There are some unhanded instructions for ARM64:

https://helix.dot.net/api/2019-06-17/jobs/25335df6-3701-444a-878f-9e5140003fcd/workitems/JIT.HardwareIntrinsics/console

Assert failure(PID 220 [0x000000dc], Thread: 220 [0x00dc]): Assertion failed '!"PerfScore: unhandled instruction"' in 'JIT.HardwareIntrinsics.Arm.SimpleBinaryOpTest__AbsoluteCompareGreaterThan_Vector128_Double:RunBasicScenario_UnsafeRead():this' (IL size 114)

@tannergooding

This comment has been minimized.

Copy link
Member

tannergooding commented Jan 17, 2020

@echesakovMSFT

This comment has been minimized.

Copy link
Member

echesakovMSFT commented Jan 17, 2020

@tannergooding I believe you wanted to ping me instead of Egor Bogatov. I added these instructions and I can update their perf score

@tannergooding

This comment has been minimized.

Copy link
Member

tannergooding commented Jan 17, 2020

Yes, sorry. Auto-complete chose the wrong person 😄

Copy link
Member

CarolEidt left a comment

My preference would be not to enable this assert. I'm not in favor of asserts that appear only when dumping or disassembling.

// and instead of returning we will assert
//
// Otherwise we will return default latencies of 1 cycle.
// Remove the assert and we return default latencies of 1 cycle.

This comment has been minimized.

Copy link
@CarolEidt

CarolEidt Jan 17, 2020

Member

I think that this should be deleted, and the above comment should be clarified to say that it asserts in a DEBUG build, and returns a default latency of 1 cycle otherwise.

This comment has been minimized.

Copy link
@briansull

briansull Jan 17, 2020

Author Contributor

OK

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

People working on Arm64 instructions could just add this change-set to their enlistment to catch the missing instructions. I put this PR up because Tanner wanted to have this enabled.

@briansull

This comment has been minimized.

Copy link
Contributor Author

briansull commented Jan 17, 2020

The outer loop testing printed these two missing instructions on Arm64:

PerfScore: unhandled instruction: facgt, format IF_DV_3B
PerfScore: unhandled instruction: crc32b, format IF_DR_3A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.