diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2012-04-24 13:31:07 -0400 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2012-05-03 09:20:17 -0400 |
commit | ddb4dac13341d5b33b9e129ecb0e2abec30a27b6 (patch) | |
tree | f9615f8bef10678e35173a412384a034e8af1dee | |
parent | 1bd3dafeca90f1293acd9b9ab63bf617139bfacf (diff) |
r600g/llvm: Don't duplicate R600 intrinsics installed by LLVM
At this point, in order for OpenCL to work correctly with r600g, OpenCL
specific intrinsics need to be defined in the LLVM tree. So, we need
to check for these intrinsics in the LLVM include directory to make sure
not to re-define them.
-rw-r--r-- | src/gallium/drivers/radeon/Makefile | 9 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/Makefile.sources | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/R600IntrinsicsNoOpenCL.td (renamed from src/gallium/drivers/radeon/R600Intrinsics.td) | 0 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/R600IntrinsicsOpenCL.td | 16 |
4 files changed, 26 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/Makefile b/src/gallium/drivers/radeon/Makefile index 807dc781c7..13aa3605dc 100644 --- a/src/gallium/drivers/radeon/Makefile +++ b/src/gallium/drivers/radeon/Makefile @@ -18,6 +18,8 @@ CXXFLAGS := $(filter-out -DDEBUG, $(CXXFLAGS)) tablegen = $(TBLGEN) -I $(LLVM_INCLUDEDIR) $1 $2 -o $3 +HAVE_LLVM_INTRINSICS = $(shell grep IntrinsicsR600.td $(LLVM_INCLUDEDIR)/llvm/Intrinsics.td) + gen: $(GENERATED_SOURCES) SIRegisterInfo.td: SIGenRegisterInfo.pl @@ -26,6 +28,13 @@ SIRegisterInfo.td: SIGenRegisterInfo.pl SIRegisterGetHWRegNum.inc: SIGenRegisterInfo.pl $(PERL) $^ $@ > /dev/null +R600Intrinsics.td: R600IntrinsicsNoOpenCL.td R600IntrinsicsOpenCL.td +ifeq ($(HAVE_LLVM_INTRINSICS),) + cp R600IntrinsicsNoOpenCL.td R600Intrinsics.td +else + cp R600IntrinsicsOpenCL.td R600Intrinsics.td +endif + R600ShaderPatterns.td: AMDGPUGenShaderPatterns.pl $(PERL) $^ C > $@ diff --git a/src/gallium/drivers/radeon/Makefile.sources b/src/gallium/drivers/radeon/Makefile.sources index 7d2932b4db..6e64915212 100644 --- a/src/gallium/drivers/radeon/Makefile.sources +++ b/src/gallium/drivers/radeon/Makefile.sources @@ -1,5 +1,6 @@ GENERATED_SOURCES := \ + R600Intrinsics.td \ R600ShaderPatterns.td \ R600RegisterInfo.td \ AMDGPUInstrEnums.td \ diff --git a/src/gallium/drivers/radeon/R600Intrinsics.td b/src/gallium/drivers/radeon/R600IntrinsicsNoOpenCL.td index 8038fee1a3..8038fee1a3 100644 --- a/src/gallium/drivers/radeon/R600Intrinsics.td +++ b/src/gallium/drivers/radeon/R600IntrinsicsNoOpenCL.td diff --git a/src/gallium/drivers/radeon/R600IntrinsicsOpenCL.td b/src/gallium/drivers/radeon/R600IntrinsicsOpenCL.td new file mode 100644 index 0000000000..cd76135847 --- /dev/null +++ b/src/gallium/drivers/radeon/R600IntrinsicsOpenCL.td @@ -0,0 +1,16 @@ +//===-- R600Intrinsics.td - TODO: Add brief description -------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// TODO: Add full description +// +//===----------------------------------------------------------------------===// + +let TargetPrefix = "R600", isTarget = 1 in { + def int_R600_load_input : Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrReadWriteArgMem]>; +} |