def get(flag='host'): if flag == 'host': arch_val = overrides.get('CHPL_HOST_ARCH', '') elif flag == 'target': arch_val = overrides.get('CHPL_TARGET_ARCH', '') else: error("Invalid flag: '{0}'".format(flag), ValueError) arch_flag = "CHPL_TARGET_ARCH" cpu_flag = "CHPL_TARGET_CPU" if flag == 'host': arch_flag = "CHPL_HOST_ARCH" cpu_flag = "CHPL_HOST_CPU" if arch_val: return arch_val # compute the default cpu_val = chpl_cpu.get(flag).cpu cpuarch = chpl_cpu.arch_for_cpu(cpu_val, flag) machine = chpl_cpu.get_default_machine(flag) if cpuarch: if cpuarch != machine: sys.stderr.write('Warning: Cross compilation not yet supported. ' 'Inferred {0}={1} based upon {2}={3} ' 'but running on {4}.\n'.format( arch_flag, cpuarch, cpu_flag, cpu_val, machine)) return chpl_cpu.get_default_machine(flag)
def knl(self): """Returns True when testing KNL (Xeon Phi). :rtype: bool :returns: True when testing KNL """ return chpl_cpu.get('target').cpu == 'mic-knl'
def default_uniq_cfg_path(): cpu_val = chpl_cpu.get('target', map_to_compiler=True, get_lcd=using_chapel_module()).cpu return '{0}-{1}-{2}-{3}-{4}'.format(chpl_platform.get('target'), chpl_arch.get('target'), cpu_val, chpl_compiler.get('target'), chpl_lib_pic.get())
def validate(flag='host'): arch_flag = "CHPL_TARGET_ARCH" cpu_flag = "CHPL_TARGET_CPU" if flag == 'host': arch_flag = "CHPL_HOST_ARCH" cpu_flag = "CHPL_HOST_CPU" cpu_val = chpl_cpu.get(flag).cpu cpuarch = chpl_cpu.arch_for_cpu(cpu_val, flag) machine = chpl_cpu.get_default_machine(flag) if cpuarch: if cpuarch != machine: warning('Cross compilation not yet supported. Inferred {0}={1} ' 'based upon {2}={3} but running on {4}.'.format( arch_flag, cpuarch, cpu_flag, cpu_val, machine))
def get(flag='host'): if flag == 'host': arch_val = overrides.get('CHPL_HOST_ARCH', '') elif flag == 'target': arch_val = overrides.get('CHPL_TARGET_ARCH', '') else: error("Invalid flag: '{0}'".format(flag), ValueError) arch_flag = "CHPL_TARGET_ARCH" cpu_flag = "CHPL_TARGET_CPU" if flag == 'host': arch_flag = "CHPL_HOST_ARCH" cpu_flag = "CHPL_HOST_CPU" cpuarch = chpl_cpu.arch_for_cpu(arch_val, flag) if cpuarch: sys.stderr.write('Warning: {0}={1} is deprecated. ' 'Please use {2}={3}\n'.format(arch_flag, arch_val, cpu_flag, arch_val)) arch_val = cpuarch if arch_val: return arch_val # compute the default cpu_val = chpl_cpu.get(flag).cpu cpuarch = chpl_cpu.arch_for_cpu(cpu_val, flag) machine = chpl_cpu.get_default_machine(flag) if cpuarch: if cpuarch != machine: sys.stderr.write('Warning: Cross compilation not yet supported. ' 'Inferred {0}={1} based upon {2}={3} ' 'but running on {4}.\n'.format(arch_flag, cpuarch, cpu_flag, cpu_val, machine)) return chpl_cpu.get_default_machine(flag)
def get(flag='host'): platform = chpl_platform.get(flag) arch = chpl_arch.get(flag) (_, cpu) = chpl_cpu.get(flag, map_to_compiler=True, get_lcd=chpl_home_utils.using_chapel_module()) # platform result = platform # compiler is never included since it shouldn't be needed # for a bin/ path. # arch result += '-' + arch # cpu if cpu != 'none' and cpu != 'unknown': result += '-' + cpu return result