-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Support MCDC Coverage with LLVM backend. #123358
Closed
+1,238
−29
Closed
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
3f791cb
mcdc-coverage: Add `mcdc` and `no-mcdc` options for `-Zcoverage-options`
RenjiSann 1782978
mcdc-coverage: Update ffi RegionKind to match LLVM's
RenjiSann 5c5cd19
mcdc-coverage: Add FFI for getting Bitmap IPSK, Bump CoverageMappingV…
RenjiSann f789616
mcdc-coverage: Add utils for instrprof.mcdc.parameters intrinsic
RenjiSann 7b321ca
mcdc-coverage: Add FFI MCDC Params for coverage mappings encoding
RenjiSann 7d1dc67
mcdc-coverage: Add MCDCBlockMarker and MCDCDecisionMarker to the MIR
RenjiSann 5bdabd0
mcdc-coverage: Add Data in BranchInfo for MCDC Tracability
RenjiSann e8b9b7c
mcdc-coverage: Add CoverageKind::MCDCBitmapRequire
RenjiSann 7669154
mcdc-coverage: Generate `mcdc.parameters` intrinsic call at the begin…
RenjiSann 1e2afe6
mcdc-coverage: allocate a condition bitmap on the function stackframe…
RenjiSann a30b4bb
mcdc-coverage: rename Decision marker to MCDCDecisionEntryMarker, add…
RenjiSann f831496
mcdc-coverage: Refactor Decision markers creation, add outcome marker…
RenjiSann 6e7e2c5
mcdc-coverage: Add CoverageKinds for Bitmap manipulations.
RenjiSann 20cdc51
mcdc-coverage: Add doc comments, move too many conditions error
RenjiSann cb55ae4
mcdc-coverage: Remove MCDCBlockMarker, Rename DecisionMarkerId, Add C…
RenjiSann 9fea26a
mcdc-coverage: Refactor the MCDC info building
RenjiSann 25768f8
mcdc-coverage: Add FFI equivalents of MCDC bitmap update intrinsics
RenjiSann 83b8166
mcdc-coverage(codegen): Add MCDCCondBitmap(Reset|Update) Handling in …
RenjiSann 33de2bb
mcdc-coverage(instrumentation): Rename Id names, Start instrumentatio…
RenjiSann e00df5d
mcdc-coverage(codegen): Add MCDCTestVectorBitmapUpdate codegen implem…
RenjiSann e112dc8
mcdc-coverage(mappings): Add variants for MCDCDecision and MCDCBranch…
RenjiSann File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
mcdc-coverage: Add FFI MCDC Params for coverage mappings encoding
commit 7b321ca0916474b4f1ffbd2fd555cae002c91d50
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a good example of how we should be passing data from Rust to C++. I think something like this is what we should be using in #123409.
However, the fields should be declared as
unsigned
, so that they exactly match the type declarations that LLVM uses inMCDCParameters
. And the corresponding struct on the Rust side should uselibc::c_uint
to match.That makes it easier to verify that the FFI mapping has been done correctly.