Skip to content
Mark Mroz edited this page Aug 21, 2018 · 30 revisions

Date: Jan 23, 2018

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'

Date: Jan 30, 2018

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'

Date: Feb 6, 2018

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

Date: Feb 13, 2018

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

Date: Feb 20, 2018

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

Date: Feb 27, 2018

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()

Date: Mar 6, 2018

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()

Date: Mar 13, 2018

Learned:

  • about the handleSwitchValue()

Achieved:

  • Made a pull request for handleSwitchValue()

Next Week:

  • start on handleEnumInst()

Date: Mar 20, 2018

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()

Date: Mar 27, 2018

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

Date: April 3, 2018

Achieved:

  • Wrapped up the pull requests to match any changes needed
  • Completed slides for final presentation

Date: May 29, 2018

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

Date: June 5, 2018

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

Date: June 12, 2018

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

Date: June 19, 2018

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

Date: June 26, 2018

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

Date: July 3, 2018

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

Date: July 10, 2018

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

Date: July 17, 2018

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

Date: July 24, 2018

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

Date: July 31, 2018

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

Date: August 21, 2018

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
Clone this wiki locally