def METHOD_NAME(ec):
    """
    Determine compilers of toolchain for given EasyConfig instance.
    :param ec: a parsed EasyConfig file (an AttributeError will occur if a simple dict is passed)
    """
    tc_elems = ec.toolchain.definition()
    if ec.toolchain.is_system_toolchain():
        # system toolchain has no (real) compiler component
        tc_comps = None
    elif TOOLCHAIN_COMPILER not in tc_elems:
        # every toolchain should have at least a compiler
        raise EasyBuildError("No compiler found in toolchain %s: %s", ec.toolchain.as_dict(), tc_elems)
    elif tc_elems[TOOLCHAIN_COMPILER]:
        tc_comps = []
        tc_comp_elems = copy.copy(tc_elems[TOOLCHAIN_COMPILER])
        # First consider a concatenation of list of compiler module names as a single toolchain element
        combined_comp_elem = ''.join(tc_comp_elems)
        elem_list = copy.copy(tc_comp_elems)
        combined_comp_elem_details = det_toolchain_element_details(ec.toolchain, combined_comp_elem, allow_missing=True)
        if not combined_comp_elem_details:
            # for toolchains including icc & ifort (like iccifortcuda), always consider iccifort
            if 'icc' in tc_comp_elems and 'ifort' in tc_comp_elems:
                combined_comp_elem_details = det_toolchain_element_details(ec.toolchain, 'iccifort', allow_missing=True)
                elem_list = ['icc', 'ifort']
        if combined_comp_elem_details:
            if isinstance(combined_comp_elem_details, EasyConfig):
                combined_comp_elem_details = combined_comp_elem_details.asdict()
            # add details for each compiler separately, using details from combo
            for comp_elem in elem_list:
                comp_elem_details = copy.copy(combined_comp_elem_details)
                comp_elem_details['name'] = comp_elem
                tc_comps.append(comp_elem_details)
                tc_comp_elems.remove(comp_elem)
        # consider any remaining individual compiler module names
        for comp_elem in tc_comp_elems:
            tc_comps.append(det_toolchain_element_details(ec.toolchain, comp_elem))
    else:
        raise EasyBuildError("Empty list of compilers for %s toolchain definition: %s",
                             ec.toolchain.as_dict(), tc_elems)
    _log.debug("Found compilers %s for toolchain %s (%s)", tc_comps, ec.toolchain.name, ec.toolchain.as_dict())
    return tc_comps