Skip to content

Various antigen improvements - #442

Open
dhartglassMSFT wants to merge 2 commits into
dotnet:mainfrom
dhartglassMSFT:antigen_pipeline_issues
Open

dhartglassMSFT wants to merge 2 commits into
dotnet:mainfrom
dhartglassMSFT:antigen_pipeline_issues

Conversation

@dhartglassMSFT

Copy link
Copy Markdown
Contributor

Some fixes to some issues in the pipeline, and to make Antigen produce more useful testcases

Pipeline improvements

  • Antigen used to reflect over its own runtime for intrinsic names. Caused bad testcase generation for arm64 where some of those experimental APIs got renamed. Also caused us to not test the latest intrinsics. Instead change to use MetadataLoadContext to load methods from the supplied Core_Root.
  • Linux/MAC runs would never run to completion. This was because testcase's callstacks were too small, tests would stack overflow, and this would take down Antigen process itself. Fix by eunning testcases inside a dedicated thread with a larger stack, as Fuzzlyn currently also does.
  • Detect debug/release diffs using a run-to-run stable hash algorithm instead of *GetHashCode() which is only stable per process. This wasn't "broken", because base+diff runs both executed ion the same process, but this should make these repros much easier to work with.
  • Fix an issue with bucketing for runtime errors.

Testcase improvements

  • Reduce probability of *.AllBitsSet() (NaN) on floating point vectors from 50% to 5%. Hopefully not having NaN everywhere will make for more interesting computations.
  • Disallow Floating point->Integral reinterpret casts. This should avoid a common false positive where builds differ due to the bitwise representation of a NaN, which IS allowed to differ in debug and release builds.

add a method StableHash and call that instead of GethashCode to make the repros easier to work with

fix test bucketing

float to int reinterpret off by default.  Reduce float allbitsset probability

reflect over core_root so we get up to date intrinsics

have trimmer use up to date corerun

remove lazy initialization of metadata paths

fix indexing into single element vectors

clean up comments

reword comments.  add logging for unresolved types.  remove HasByRefParameter

clean up some comments

fixup another comment
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

Successfully merging this pull request may close these issues.

1 participant