Files
rocm-systems/rocclr/compiler/lib/backends/common/library.cpp
T
foreman a8cd480328 P4 to Git Change 1208996 by bsumner@bsumner-lin-opencl on 2015/11/09 14:14:50
SWDEV-10637 - clean up half_math and merge CI lib into main lib

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/library.cpp#19 edit
... //depot/stg/opencl/drivers/opencl/library/build/Makefile.library#46 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/Makefile#4 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/Makefile#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/build/Makefile#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/build/Makefile.hsail-amd-ci#18 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_argred.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_cosF.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_expF.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_logF.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_rsqrtF.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_sinF.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_sincos.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail-amd-ci/src/math32/half_sqrtF.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/argredhalfF.cl#1 add
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_cosF.cl#3 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_divideF.cl#4 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_exp10F.cl#1 add
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_exp2F.cl#1 add
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_expF.cl#3 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_log10F.cl#1 add
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_log2F.cl#1 add
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_logF.cl#4 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_powrF.cl#2 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_recipF.cl#3 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_rsqrtF.cl#3 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_sinF.cl#3 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_sincos.cl#2 delete
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_sqrtF.cl#3 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/half_tanF.cl#2 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/sincoshalfF.cl#1 add
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/math32/tanredF.cl#1 add
... //depot/stg/opencl/drivers/opencl/tests/hsa/bin/hsa_dist.pl#3 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/bin/test_driver.pl#21 edit
2015-11-09 14:24:12 -05:00

294 lines
11 KiB
C++

// Copyright (c) 2008 Advanced Micro Devices, Inc. All rights reserved.
//
#include <vector>
#include <string>
#include "top.hpp"
#include "aclTypes.h"
#include "library.hpp"
#include "utils/options.hpp"
namespace amd {
/*
Integrated bitcode libraries
*/
// GPU libraries
#if defined(WITH_TARGET_AMDIL)
#include "builtins-gpugen-comm.inc"
#include "builtins-gpugen-diff.gpu.inc"
#include "builtins-gpugen-diff.gpu-64.inc"
#include "builtins-gpucommon-comm.inc"
#include "builtins-gpucommon-diff.gpu.inc"
#include "builtins-gpucommon-diff.gpu-64.inc"
#include "builtins-SI-comm.inc"
#include "builtins-SI-diff.gpu.inc"
#include "builtins-SI-diff.gpu-64.inc"
#include "builtins-CI-comm.inc"
#include "builtins-CI-diff.gpu.inc"
#include "builtins-CI-diff.gpu-64.inc"
#endif // WITH_TARGET_AMDIL
// CPU libraries
#if defined(WITH_TARGET_X86)
#include "builtins-cpugen.x86.inc"
#include "builtins-cpucommon.x86.inc"
#include "builtins-avx.x86.inc"
#include "builtins-fma4.x86.inc"
#include "builtins-cpugen.x86-64.inc"
#include "builtins-cpucommon.x86-64.inc"
#include "builtins-avx.x86-64.inc"
#include "builtins-fma4.x86-64.inc"
#endif // WITH_TARGET_X86
#if defined(WITH_TARGET_ARM)
#include "builtins-cpugen.arm.inc"
#include "builtins-cpucommon.arm.inc"
#endif // WITH_TARGET_ARM
#ifdef WITH_TARGET_HSAIL
// HSAIL libraries
#include "builtins-hsail.inc"
#include "builtins-gcn.inc"
#include "builtins-ocml.inc"
#include "builtins-spirv.inc"
#endif
#include <cstdlib>
// getLibsDesc() : returns a list of libraries that need to be linked with the
// application. The max number of libraries is defined by
// enum MAX_NUM_LIBRARY_DESCS in class LibraryDescriptor.
//
// Return 0: successful
// <n>: error happened
int
getLibDescs (
LibrarySelector LibType, // input
LibraryDescriptor* LibDesc, // output
int& LibDescSize // output -- LibDesc[0:LibDescSize-1]
)
{
switch (LibType) {
#if defined(WITH_TARGET_AMDIL)
case GPU_Library_Evergreen:
// Library order is important!
LibDesc[0].start = reinterpret_cast<const char*>
(builtins_gpucommon_comm);
LibDesc[0].size = builtins_gpucommon_comm_size;
LibDesc[1].start = reinterpret_cast<const char*>
(builtins_gpucommon_diff_gpu);
LibDesc[1].size = builtins_gpucommon_diff_gpu_size;
LibDesc[2].start = reinterpret_cast<const char*>
(builtins_gpugen_comm);
LibDesc[2].size = builtins_gpugen_comm_size;
LibDesc[3].start = reinterpret_cast<const char*>
(builtins_gpugen_diff_gpu);
LibDesc[3].size = builtins_gpugen_diff_gpu_size;
LibDescSize = 4;
break;
case GPU_Library_SI:
// Library order is important!
LibDesc[0].start = reinterpret_cast<const char*>
(builtins_SI_comm);
LibDesc[0].size = builtins_SI_comm_size;
LibDesc[1].start = reinterpret_cast<const char*>
(builtins_SI_diff_gpu);
LibDesc[1].size = builtins_SI_diff_gpu_size;
LibDesc[2].start = reinterpret_cast<const char*>
(builtins_gpucommon_comm);
LibDesc[2].size = builtins_gpucommon_comm_size;
LibDesc[3].start = reinterpret_cast<const char*>
(builtins_gpucommon_diff_gpu);
LibDesc[3].size = builtins_gpucommon_diff_gpu_size;
LibDesc[4].start = reinterpret_cast<const char*>
(builtins_gpugen_comm);
LibDesc[4].size = builtins_gpugen_comm_size;
LibDesc[5].start = reinterpret_cast<const char*>
(builtins_gpugen_diff_gpu);
LibDesc[5].size = builtins_gpugen_diff_gpu_size;
LibDescSize = 6;
break;
case GPU64_Library_SI:
// Library order is important!
LibDesc[0].start = reinterpret_cast<const char*>
(builtins_SI_comm);
LibDesc[0].size = builtins_SI_comm_size;
LibDesc[1].start = reinterpret_cast<const char*>
(builtins_SI_diff_gpu_64);
LibDesc[1].size = builtins_SI_diff_gpu_64_size;
LibDesc[2].start = reinterpret_cast<const char*>
(builtins_gpucommon_comm);
LibDesc[2].size = builtins_gpucommon_comm_size;
LibDesc[3].start = reinterpret_cast<const char*>
(builtins_gpucommon_diff_gpu_64);
LibDesc[3].size = builtins_gpucommon_diff_gpu_64_size;
LibDesc[4].start = reinterpret_cast<const char*>
(builtins_gpugen_comm);
LibDesc[4].size = builtins_gpugen_comm_size;
LibDesc[5].start = reinterpret_cast<const char*>
(builtins_gpugen_diff_gpu_64);
LibDesc[5].size = builtins_gpugen_diff_gpu_64_size;
LibDescSize = 6;
break;
case GPU_Library_CI:
// Library order is important!
LibDesc[0].start = reinterpret_cast<const char*>
(builtins_CI_comm);
LibDesc[0].size = builtins_CI_comm_size;
LibDesc[1].start = reinterpret_cast<const char*>
(builtins_CI_diff_gpu);
LibDesc[1].size = builtins_CI_diff_gpu_size;
LibDesc[2].start = reinterpret_cast<const char*>
(builtins_SI_comm);
LibDesc[2].size = builtins_SI_comm_size;
LibDesc[3].start = reinterpret_cast<const char*>
(builtins_SI_diff_gpu);
LibDesc[3].size = builtins_SI_diff_gpu_size;
LibDesc[4].start = reinterpret_cast<const char*>
(builtins_gpucommon_comm);
LibDesc[4].size = builtins_gpucommon_comm_size;
LibDesc[5].start = reinterpret_cast<const char*>
(builtins_gpucommon_diff_gpu);
LibDesc[5].size = builtins_gpucommon_diff_gpu_size;
LibDesc[6].start = reinterpret_cast<const char*>
(builtins_gpugen_comm);
LibDesc[6].size = builtins_gpugen_comm_size;
LibDesc[7].start = reinterpret_cast<const char*>
(builtins_gpugen_diff_gpu);
LibDesc[7].size = builtins_gpugen_diff_gpu_size;
LibDescSize = 8;
break;
case GPU64_Library_CI:
// Library order is important!
LibDesc[0].start = reinterpret_cast<const char*>
(builtins_CI_comm);
LibDesc[0].size = builtins_CI_comm_size;
LibDesc[1].start = reinterpret_cast<const char*>
(builtins_CI_diff_gpu_64);
LibDesc[1].size = builtins_CI_diff_gpu_64_size;
LibDesc[2].start = reinterpret_cast<const char*>
(builtins_SI_comm);
LibDesc[2].size = builtins_SI_comm_size;
LibDesc[3].start = reinterpret_cast<const char*>
(builtins_SI_diff_gpu_64);
LibDesc[3].size = builtins_SI_diff_gpu_64_size;
LibDesc[4].start = reinterpret_cast<const char*>
(builtins_gpucommon_comm);
LibDesc[4].size = builtins_gpucommon_comm_size;
LibDesc[5].start = reinterpret_cast<const char*>
(builtins_gpucommon_diff_gpu_64);
LibDesc[5].size = builtins_gpucommon_diff_gpu_64_size;
LibDesc[6].start = reinterpret_cast<const char*>
(builtins_gpugen_comm);
LibDesc[6].size = builtins_gpugen_comm_size;
LibDesc[7].start = reinterpret_cast<const char*>
(builtins_gpugen_diff_gpu_64);
LibDesc[7].size = builtins_gpugen_diff_gpu_64_size;
LibDescSize = 8;
break;
#endif // WITH_TARGET_AMDIL
#if defined(WITH_TARGET_X86)
case CPU64_Library_Generic:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_cpucommon_x86_64);
LibDesc[0].size = builtins_cpucommon_x86_64_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_cpugen_x86_64);
LibDesc[1].size = builtins_cpugen_x86_64_size;
LibDescSize = 2;
break;
case CPU64_Library_AVX:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_avx_x86_64);
LibDesc[0].size = builtins_avx_x86_64_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_cpucommon_x86_64);
LibDesc[1].size = builtins_cpucommon_x86_64_size;
LibDesc[2].start = reinterpret_cast<const char*>(builtins_cpugen_x86_64);
LibDesc[2].size = builtins_cpugen_x86_64_size;
LibDescSize = 3;
break;
case CPU64_Library_FMA4:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_fma4_x86_64);
LibDesc[0].size = builtins_fma4_x86_64_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_avx_x86_64);
LibDesc[1].size = builtins_avx_x86_64_size;
LibDesc[2].start = reinterpret_cast<const char*>(builtins_cpucommon_x86_64);
LibDesc[2].size = builtins_cpucommon_x86_64_size;
LibDesc[3].start = reinterpret_cast<const char*>(builtins_cpugen_x86_64);
LibDesc[3].size = builtins_cpugen_x86_64_size;
LibDescSize = 4;
break;
case CPU_Library_Generic:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_cpucommon_x86);
LibDesc[0].size = builtins_cpucommon_x86_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_cpugen_x86);
LibDesc[1].size = builtins_cpugen_x86_size;
LibDescSize = 2;
break;
case CPU_Library_AVX:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_avx_x86);
LibDesc[0].size = builtins_avx_x86_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_cpucommon_x86);
LibDesc[1].size = builtins_cpucommon_x86_size;
LibDesc[2].start = reinterpret_cast<const char*>(builtins_cpugen_x86);
LibDesc[2].size = builtins_cpugen_x86_size;
LibDescSize = 3;
break;
case CPU_Library_FMA4:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_fma4_x86);
LibDesc[0].size = builtins_fma4_x86_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_avx_x86);
LibDesc[1].size = builtins_avx_x86_size;
LibDesc[2].start = reinterpret_cast<const char*>(builtins_cpucommon_x86);
LibDesc[2].size = builtins_cpucommon_x86_size;
LibDesc[3].start = reinterpret_cast<const char*>(builtins_cpugen_x86);
LibDesc[3].size = builtins_cpugen_x86_size;
LibDescSize = 4;
break;
#endif // WITH_TARGET_X86
#if defined(WITH_TARGET_ARM)
case CPU_Library_Generic:
LibDesc[0].start = reinterpret_cast<const char*>(builtins_cpucommon_arm);
LibDesc[0].size = builtins_cpucommon_arm_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_cpugen_arm);
LibDesc[1].size = builtins_cpugen_arm_size;
LibDescSize = 2;
break;
#endif // WITH_TARGET_ARM
#if defined(WITH_TARGET_HSAIL)
case GPU_Library_HSAIL:
// Library order is important!
LibDesc[0].start = reinterpret_cast<const char*>(builtins_gcn);
LibDesc[0].size = builtins_gcn_size;
LibDesc[1].start = reinterpret_cast<const char*>(builtins_hsail);
LibDesc[1].size = builtins_hsail_size;
LibDesc[2].start = reinterpret_cast<const char*>(builtins_ocml);
LibDesc[2].size = builtins_ocml_size;
LibDesc[3].start = reinterpret_cast<const char*>(builtins_spirv);
LibDesc[3].size = builtins_spirv_size;
LibDescSize = 4;
break;
#endif // WITH_TARGET_HSAIL
default:
// Failed
return 1; //
}
return 0;
}
} // namespace amd