[lworld] Extend loading of signature classes to flattened fields

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Unresolved
    • Priority: P4
    • repo-valhalla
    • Affects Version/s: repo-valhalla
    • Component/s: hotspot

      `Method::load_signature_classes` forces loading of all argument types before compilation. We should evaluate if this needs to be extended to arguments that were not declared but only brought in through flattening (calling convention optimizations). We would then also need to adapt `Method::has_unloaded_classes_in_signature`.

      The following assert catches such unloaded arguments:

      collect_inline_fields(ciInlineKlass* vk, const Type** field_array, u
           ciField* field = vk->nonstatic_field_at(j);
           BasicType bt = field->type()->basic_type();
           const Type* ft = Type::get_const_type(field->type());
      +#ifdef ASSERT
      + if (ft->isa_instptr() != NULL && !ft->is_instptr()->is_loaded()) {
      + ft->dump_on(tty);
      + assert(false, "Signature class not loaded");
      + }
      +#endif

            Assignee:
            Unassigned
            Reporter:
            Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: