forked from iree-org/iree
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow flags to be set with greater flexibility (iree-org#17659)
Changes to the python binding to allow iree.runtime.flags.parse_flags to take effect at times other than before the first time a driver is created. Also includes fixes for bugs exposed during the development of this feature. - Added "internal" API functions `create_hal_driver()` and `clear_hal_driver_cache()` to create a driver object independent of the cache, and to clear the cache, respectively - Added `HalDriver` class implementation functions for the above new API functions. Refactored class to share as much common code as possible. - Factored out driver URI processing into its own nested class for easier handling of URI components - Fixed dangling pointer bug. In the C layer flags are being kept by reference as string views, requiring the caller to keep the original flag strings (argc, argv) around for as long as the flags are being used. However, the python binding was using a local variable for those strings, letting them go out of scope and causing garbage values later on. The fix is to move the strings to a file scope variable. Flag handling does not appear to be getting used in a multi-threaded environment, as other aspects of flag handling use static variables with no mutex guarding that I could find. - Fixed runtime assert in Windows debug build for the improper use of std::vector<>::front() on an empty vector. The code never used the value of front(), as it was guarded by a check for the vector's size, but the assert prevents the debug build from running. --------- Signed-off-by: Dave Liddell <[email protected]> Signed-off-by: daveliddell <[email protected]>
- Loading branch information
1 parent
3428231
commit c5d4b96
Showing
5 changed files
with
109 additions
and
17 deletions.
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
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
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