Skip to content
Bryan Tam edited this page Aug 7, 2018 · 20 revisions

Jul 24 - Aug 7

Work done:
  • init_existential_metatype
Next week:
  • More on Protocol and Protocol Composition Types (Existential-s)

Jul 18 - Jul 24

Work done:
  • end_apply
  • abort_apply
Next Week:
  • init_existential_metatype

Jul 11 - Jul 17

Work done:
  • deinit_existential_addr
  • init_existential_value
  • deinit_existential_value
Next Week:
  • end_apply
  • abort_apply
  • init_existential_metatype

Jul 4 - Jul 10

Work done:
  • init_existential_addr
Next Week:
  • init_existential_value

Jun 22 - Jul 3

Work done:
  • Finished Builtin Inst
Next Week:
  • init_existential_addr

Jun 13 - Jun 21

Work done:
  • Looking into DestroyValue
Learned:
  • Some SIL Type are Trivial, AddressOnly, Loadable, and are handled differently when destroyed

Jun 6 - Jun 12

Work done:
  • End Borrow
  • End Access
Next Week:
  • Destroy value

May 30 - Jun 5

Work done:
  • Investigating End borrow
Next Week:
  • End Borrow
  • End Access

May 23 - May 29

Work done:
  • Properly fixed the 0x48 offset issue, and made fix for other types that has the same issue
  • Looked into the build issue with latest LLVM

May 16 - May 22

Work done:
  • Investigated the 0x48 offset and provided a fix to my PR instead of hard coding
Next Week:
  • To see if this is also the case for some of the other Instructions

Mar 4 - Apr 10

Work done:
  • AllocExistentialBox and ProjectExistentialBox
Difficulties:
  • Things only match if I save the instruction in Symbol table after offsetting 0x48 bytes

Mar 28 - Apr 3

Work done:
  • Continued on AllocExistentialBox and ProjectExistentialBox
Next Week:
  • Wrap up AllocExistentialBox and ProjectExistentialBox

Mar 21 - Mar 27

Work done:
  • Investigate AllocExistentialBox
Learned:
  • alloc_existential_box is only part of the initialization, it needs project_existential_box to store an address
Next Week:
  • AllocExistentialBox
  • ProjectExistentialBox

Mar 14 - Mar 20

Work done:
  • Finished up ThrowInst- pull request created
  • Started investigating AllocExistentialBox
Next Week:
  • AllocExistentialBox

Mar 7 - Mar 13

Work done:
  • ThrowInst
Difficulties:
  • Need to get familiarize with the new structure
Learned:
  • ThrowInst throws existential_box, rather than the Error object
Next Week:
  • Work on alloc_existential_box
  • Test ThrowInst
  • Work on printing symbol table if have time

Feb 28 - Mar 6

Work done:
  • Add if-statements to check if Float Literal is actually a float/double
Next Week:
  • Work on ThrowInst

Feb 14 - Feb 27

Work done:
  • Made a fix for DebugValueInst, created pull request, pending confirmation
Next Week:
  • Depends on discussion on FloatLiteral, might produce a fix
  • Start work on ThrowInst

Feb 7 - Feb 13

Work done:
  • Made a fix for DebugValueInst, waiting for response
Difficulties:
  • Not sure if we need special handle for $error
Next Week:
  • Continue on DebugValueInst
  • Fix FloatLiteral so that it can handle both float, double and float80 if canonical SIL used

Jan 31 - Feb 6

Work done:
  • Investigated the reason of Seg Fault for DebugValueInst
Difficulties:
  • Not sure about how DebugValueInst should be handled in WALA
Learned:
  • Some functions has "$error" as parameter but it doesn't appear on the argument list
Next Week:
  • Continue on DebugValueInst
  • Take on one unfinished type

Jan 24 - 30

Work done:
  • Finished on handling Float Literal using BigDecimal
Difficulties:
  • BigDecimal init with string function does not accept Inf/NaN, and only accept decimal, not hexadecimal
Learned:
  • How to create java class and call function through JNI
Next Week:
  • Continue on reading more codes to get a sense of how everything is put together
  • Fix DebugValueInst

Jan 19 - 23

Work done:
  • Setup environment
  • Fixed ant code for compilation
  • Started on Float Literal Handling with Mark
Difficulties:
  • No native support for 80-bit float is provided by Java
Learned:
  • Overall structure of the swift-wala project
  • Swift SIL
Next Week:
  • Continue on implementing Float Literal
Clone this wiki locally