-
Notifications
You must be signed in to change notification settings - Fork 174
Updates for QIR validation #1250
Updates for QIR validation #1250
Conversation
bettinaheim
left a comment
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.
lgtm
src/Passes/Source/Rules/Factory.cpp
Outdated
| removeFunctionCall("__quantum__rt__message"); | ||
| removeFunctionCall("__quantum__rt__fail"); | ||
| removeFunctionCall("__quantum__rt__message"); | ||
| removeFunctionCall("__quantum__rt__bool_to_string"); |
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.
There are a couple missing compared to what is in the spec. See here for the full list of string-related runtime functions: https://github.com/microsoft/qsharp-language/blob/main/Specifications/QIR/Data-Types.md#strings
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.
I've updated adding all functions. It feels like we should consider what our string elimination strategy should be. Regardless, we probably should emit warnings for every function removed without further processing.
| return module_analysis_manager_; | ||
| } | ||
|
|
||
| void Validator::saveLogsToFileIfNeeded() |
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.
I would expect such a helper to be in the logger rather than part of the validator.
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.
The idea is that this will write a validation report even if it just writing a log to JSON format atm. Hence it is meant to be beyond just writing a log. I've updated the function name to reflect this.
* added MSBuild_Logs to gitignore (#1171) * Command Line Support for Project File Input (#1192) * Change --inputs to --input (#1210) * Deprecate new array expression (#956) * Removing temporary project (#1225) * Formatter Updates Deprecated Boolean Operator Syntax (#1214) * Update the documentation found in the Q# Formatter Project (#1203) * Formatter Updates Deprecated Specialization Declaration Parameters (#1226) * Adding Sdk integration, and formatting support + code action for syntax updates to the language server (#1207) * QAT v. 0.1 (#1230) * Sdk changes to support Qir targets (#1238) * Quantum Development Kit Telemetry Library (#1199) Co-authored-by: Sarah Marshall <[email protected]> Co-authored-by: Scott Carda <[email protected]> * Allowing to use the LLVM intrinsic readcyclecounter from Q# (#1248) * Do case-insensitive comparisons for targets names (#1241) During the build stage of a Q# job submission via the CLI or the stand-alone executable, there is a case sensitive enforcement of target names. Since this limitation does not exist in the service or in other clients, we're aligning by making the corresponding comparison case insensitive. * Refactor language server code for extracting symbols from Q# fragments (#1220) * Start adding SymbolOccurrence module * Replace SymbolInformation implementation * Add C# interop for SymbolOccurrence * Rename SymbolInformation.cs to match class name * Mark SymbolInformation as obsolete * Add SymbolOccurrence.fsi * Add doc comments * Fix nullable errors with .NET Core 3.1 * Use as instead of is * Take in fragment instead of file in SymbolOccurrence * Update todo comments * Return NS in open directive as UsedVariable * Use TryGet for SymbolOccurrence C# API * Statement Kinds Support (#1212) * Addressing last comments - QAT v0.1 (#1240) * Type renaming * Removing redudant setModulePassManager * Fixing recursion * Refactoring filenames * Renaming directory * Updating names and files * Formatting * Fixing include * Updates for QIR validation (#1250) * Type renaming * Removing redudant setModulePassManager * Fixing recursion * Refactoring filenames * Renaming directory * Updating names and files * Formatting * Changing default to interop friendly * Updating base profile * Styling * Updating logger * Fixing style * Removing comment * Moving testing to run before linting * Updating CMake * Attempting to solve tests issue * Updating according to PR comments * Complete NamespaceItem in qsfmt (#1239) Co-authored-by: Filip W <[email protected]> Co-authored-by: Scott Carda <[email protected]> Co-authored-by: Sarah Marshall <[email protected]> Co-authored-by: bettinaheim <[email protected]> Co-authored-by: Jintao YU <[email protected]> Co-authored-by: Troels F. Rønnow <[email protected]> Co-authored-by: XField <[email protected]> Co-authored-by: Ricardo Espinoza <[email protected]>
* Type renaming * Removing redudant setModulePassManager * Fixing recursion * Refactoring filenames * Renaming directory * Updating names and files * Formatting * Changing default to interop friendly * Updating base profile * Styling * Updating logger * Fixing style * Removing comment * Moving testing to run before linting * Updating CMake * Attempting to solve tests issue * Updating according to PR comments
This PR makes minor updates to make QAT more robust and provide better QIR validation.