-
Notifications
You must be signed in to change notification settings - Fork 14
feat: LLVM lowering for borrow arrays using bitmasks #2574
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
Merged
Merged
Changes from all commits
Commits
Show all changes
41 commits
Select commit
Hold shift + click to select a range
bdc4795
Make copy of existing array lowering
mark-koch 5bc67e3
Rename everything
mark-koch fe5d575
Implement bitmask lowering
mark-koch b23b593
Handle 0 sized arrays
mark-koch b3d5b8e
Clippy
mark-koch 877771c
Stop using lazy_static
mark-koch 924a6d3
Fix docs
mark-koch 2d19e2f
Refactor and rename outline_into_function
mark-koch cb58a3a
Rename ERR_NOT_FREE to ERR_NOT_BORROWED
mark-koch 56eee57
Add codegen for conversion ops
mark-koch 439f09c
refactor: allow non-void get_or_make_function (#2609)
ss2165 437762e
comments
acl-cqc 1775208
Avoid a match using .as_ref().map::<&dyn BasicValue,_>
acl-cqc 207b254
rename toplevel funcs to be consistent
acl-cqc f729f34
Inline variable 'memset_intrinsic'; outline i8t with comment
acl-cqc e3ee86d
inspect_mask_idx closure adds terminator
acl-cqc 975771e
inspect_mask_blocks takes expected value and error message rather tha…
acl-cqc a33d99c
rename inspect_mask_blocks, doc
acl-cqc aaac55c
update snapshots due to renaming of blocks
acl-cqc a616a8e
also pass MaskInfo into build_mask_padding
acl-cqc cab33fa
check_all_mask_blocks_eq -> check_all_mask_eq with build_mask_padding…
acl-cqc 72e7c54
switch triple to struct BArrayFatPtrComponents
acl-cqc 4cc2bca
A load more discard_all_borrowed_panic tests...all passing
acl-cqc 9b6299c
Test returning just one index to an array of all-borrowed...still all…
acl-cqc 073d039
more tests, finally demonstrating the problem(s?)
acl-cqc 202dc48
fix shifting in one direction only, with llvm test
acl-cqc d5d5999
fix: reorder loads/stores in build_mask_padding
acl-cqc 4a64ae4
Fix accessing/padding beyond end of mask
acl-cqc 6c45cbf
trivial refactor: pass last_idx into build_mask_padding, avoids recom…
acl-cqc e619155
refactor: split build_mask_padding into two calls
acl-cqc bf4b6d6
refactor: build_mask_padding1d tests value before direction, some com…
acl-cqc b056e4d
build_barray_alloc: do not return mask_ptr
acl-cqc b80bc0e
build_barray_fat_pointer takes BArrayFatPointerComponents
acl-cqc 5ca60ce
build_(idx_(free,not_borrowed)_check,mask_flip) -> check_mask_eq(enum…
acl-cqc dc99387
Avoid xor in mask-check methods by flipping bbs; update more snapshots
acl-cqc c2cdf79
common up array allocation w/bit-cast
acl-cqc 6cf427b
check_mask_idx -> check_mask_elem, does not check the index is correct
acl-cqc e5a364a
refactor: Make check_mask_elem into MaskCheck.emit
acl-cqc b7e50ab
refactor: rename CheckPresent -> CheckNotBorrowed
acl-cqc 5aaba8f
doc MaskCheck
acl-cqc 14dced7
Merge remote-tracking branch 'origin/main' into feat/barray-llvm
acl-cqc 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
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
//! Emission logic for collections. | ||
|
||
pub mod array; | ||
pub mod borrow_array; | ||
pub mod list; | ||
pub mod stack_array; | ||
pub mod static_array; |
Oops, something went wrong.
Oops, something went wrong.
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.
bizarre here that
BasicTypeEnum
andVoidType
definefn_type
as two completely unrelated methods! But yeah I don't see a better way :(