Skip to content

16. Meeting Minutes (11.10.2018)

Samer AL Masri edited this page Oct 11, 2018 · 3 revisions

Meeting Agenda

Summary

  • I had a problem building after rebasing. I am getting error: comparison between signed and unsigned integer expressions
  • Built successfully in Docker (2 tests fail)
  • I added dumb LinkagePolicy class successfully
  • I am adding the implementation of createLinkage in each LinkagePolicy class

Problem

We plan to extract two functions from CodeGenerator to LinkagePolicy:

  • createLinkageForCompilation. This function is only implemented in OMR and J9 namespaces; it depends on:
    • In OMR::CodeGenerator:
      • CodeGenerator member _linkages[lc]
      • CodeGenerator member function createLinkage
    • In J9::CodeGenerator: Out of scope for now
  • createLinkage, depends on:
    • In OMR::CodeGenerator: nothing
    • In OMR::X86::CodeGenerator:
      • TR::Compilation
      • TR::Linkage
      • TR::AMD64ABILinkage(self());: code
      • CodeGenerator member function setLinkage()
    • In OMR::Power::CodeGenerator:
      • TR::Linkage
      • TR::PPCSystemLinkage(self());: code
      • CodeGenerator member function setLinkage()
    • In OMR::Z::CodeGenerator:
      • TR::Compilation
      • TR::Linkage
      • TR::S390zLinuxSystemLinkage(self());: code
      • CodeGenerator member function setLinkage()

To fix the setLinkage dependency, we can pass a CodeGenerator pointer to createLinkage function. I am not sure how can we fix the TR:: functions that take self() though.

Solution

pass CodeGenerator's this pointer to createLinkage. In the TR:: functions, use the passed CodeGenerator pointer instead of self()