Map cells with static data for LLVM kompile#1084
Draft
mariaKt wants to merge 9 commits into
Draft
Conversation
Collaborator
Author
|
Relevant discussion on slack |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR introduces a dual lookup mechanism for static data, using a
MaybeMapsort, aiming to avoid per-program LLVM kompile in concrete execution. Program-specific data (functions, types, allocations) is stored inMapcells for LLVM execution, while the existingno-evaluatorsKore functions are preserved for the Haskell/booster backend.Status
LLVM backend works. Haskell/booster backend has a blocking issue, with details in 'booster-lookup-issue.md
andbooster-lookup-issue-proof.txt`.Commits
MaybeMapsort (noMap | someMap(Map)) and new<functions>,<types>,<memory>cells to the configuration.lookupFunction/lookupTy/lookupAlloctolookupFunctionKore/lookupTyKore/lookupAllocKore(keeping[no-evaluators]).lookupFunctionMap,lookupTyMap,lookupAllocMap) usingorDefaultfor missing keys.lookupFunction(MaybeMap, Ty)etc. that dispatch to Kore or Map versions.kmir.mdandrt/data.mdto read the new cells and use the wrapper functions.symbol(MaybeMap::noMap)andsymbol(MaybeMap::someMap)attributes for clean Python integration._make_smir_maps) and skip LLVMkompilein concrete execution.noMapviatop_downKORE traversal).noMapin the symbolic call config to have concrete values instead of unbound Kore variables.booster-lookup-issue.md
booster-lookup-issue-proof.txt