forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 3
Mark
Mark Mroz edited this page Aug 21, 2018
·
30 revisions
Learned:
- SIL language
- How Swift interfaces with WALA
- Discussed with Bryan about how to implement float literal handling
Achieved:
- Pull request for feature/FloatLiterals
- Added Bryan's changes to the PR feature/FloatLiterals
Next Week:
- Resolve Issue #12 - 'handleAllocBoxInst() in InstrKindInfoGetter causes segfault'
Learned:
- About how branching statements are handled
- WALA Casting of AllocBox
Achieved:
- Some ideas for fixes for Issue #12
- Discovered some examples on unhindered instance types
Next Week:
- Resolve Issue #12 - 'handleAllocBoxInst() in InstrKindInfoGetter causes segfault'
Learned:
- Figured out the cause of Issue #12
- Able to write tests that cause Issue 12 to trigger
- Learned about how Swift inline functions work
- Learned about inline functions and SIL and WALA cast associated with it
Achieved:
- Wrote tests to trigger Issue #12
- UOttawa administrative tasks for deliverable 0 and 1
Next Week:
- Learn more about handleAllocBoxInst() in InstrKindInfoGetter
Learned:
- Differences between handling of AllocBoxInst between Swift 4.0 and 4.1
Achieved:
- Examined possible issues with AllocBoxInst in different scenarios and wrote more tests
Next Week: *work more on trying to resolve issue #12
Learned:
- As of Swift 4.1 there were changes to the way protocols are handled by SIL
Achieved:
- Examined the differences in handling AllocBoxInst between Swift 4.0 and 4.1
Next Week:
- work more on trying to resolve issue #12
Learned:
- handleAllocBoxInst() is caused by the improper handling on @inlineable methods
Achieved:
- Started working on applying coverage for switch_value instruction
Next Week:
- resolve issue with @inlineable
- work more on handleSwitchValue()
Learned:
- how to use gdb to debug
Achieved: *discovered the issue causing alloc_box to fail is because the instruction is handled as *Decl instead of *VarDecl
Next Week:
- move on to handleSwitchValue()
Learned:
- about the handleSwitchValue()
Achieved:
- Made a pull request for handleSwitchValue()
Next Week:
- start on handleEnumInst()
Learned:
- about the how enums are handled
Achieved:
- partial success implementing handleEnumInst
- made changes to the handleSwitchValue() PR
Next Week:
- finish handleEnumInst
- start on handleSwitchEnumInst()
Learned:
- how to properly handle unit instructions in WALA
Achieved:
- Fixed the Switch Value instruction PR
- Created Switch Enum instruction PR
- Created Enum instruction PR
- Created Select Value instruction PR
Next Week:
- Continue with enum instructions
Achieved:
- Wrapped up the pull requests to match any changes needed
- Completed slides for final presentation
Issues
- difficulty accessing the remote server after the migration to HDD
Learned:
- about the unchecked_enum_data instruction
Achieved:
- resolved merge conflicts, merged and closed issues 32, 33 and 35
Next Week:
- finish pull request for unchecked_enum_data instruction
- begin the init_enum_data_addr instruction
Issues
- Laptop was broken so I was unable to commit changes
Achieved:
- Started implementing solution for copy_addr instruction
Next Week:
- Finished solution for copy_addr
Achieved:
- Created a pull request for copy_addr instruction
- Created a pull request for destroy_addr instruction
- Created a pull request for destroy_value instruction
- Created a pull request for struct instruction
Next Week:
- Start select_enum instruction
Achieved:
- Created a pull request for witness_method instruction
- Created a pull request for select_enum instruction
Next Week:
- Start convert_function instruction
- Start tuple instruction
Achieved:
- Created a pull request for convert_function instruction
- Created a pull request for tuple instruction
Next Week:
- Start instruction ref_element_addr
- Start instruction address_to_pointer
- Start instruction thin_function_to_pointer
Achieved:
- Created a pull request for begin_unpaired_access
- Created a pull request for tuple instruction
- Created a pull request for convert_function
- Created a pull request for select_enum
- Worked with Taufique on Index_addr and helped him understand the code base
Next Week:
- Start instruction witness_method_inst
- Start instruction ref_element_addr
- Start instruction end_unpair_access
- Start instruction address_to_pointer
Achieved:
- Created a pull request for ref_element_addr
- Working with Taufique to resolve index_addr
- Started working to remove nullptr's from Code
Next Week:
- Continue to remove nullptr returns
Achieved:
- Created a pull request for thin_function_to_pointer
- Created a pull request for address_to_pointer
- Created a pull request for witness_method
- Created a pull request for struct_extract
- Created a pull request for struct_element_addr
- Worked with Taufique on the tuple_extract
Next Week:
- Upcast instruction
- Tail Addr instruction
Achieved:
- Created a pull request for class_method
- Created a pull request for unchecked_ref_cast
- Created a pull request for unchecked_ownership_conversion
- Created a pull request for dealloc_ref
- Created a pull request for upcast
- Created a pull request for destroy_value
- Created a pull request for destroy_addr
- Created a pull request for tail_addr
Achieved:
- Created a pull request for alloc_ref
- Created a pull request for store_borrow
- Created a pull request for alloc_value_buffer
- Created a pull request for init_existential_ref
- Created a pull request for checked_cast_branch_addr
- Created a pull request for dealloc_value_buffer
- Created a pull request for switch_enum_addr
- Created a pull request for unchecked_take_enum_data_addr
Achieved:
- Created a pull request for init_enum_data_addr
- Created a pull request for inject_enum_data_addr
- Created a pull request for bond_fail
- Created a pull request for mark_dependence
- Created a pull request for strong_unpin
- Created a pull request for raw_pointer_to_ref
- Created a pull request for checked_cast_branch
- Created a pull request for objc_method
- Created a pull request for checked_addr_cast
- Created a pull request for ref_to_raw_pointer
- Created a pull request for ref_tail_addr
- Created a pull request for pointer_to_thin_function