Add support for generic-64 target.
This commit is contained in:
2
Makefile
2
Makefile
@@ -85,7 +85,7 @@ CXX_SRC=ast.cpp builtins.cpp cbackend.cpp ctx.cpp decl.cpp expr.cpp func.cpp \
|
|||||||
HEADERS=ast.h builtins.h ctx.h decl.h expr.h func.h ispc.h llvmutil.h module.h \
|
HEADERS=ast.h builtins.h ctx.h decl.h expr.h func.h ispc.h llvmutil.h module.h \
|
||||||
opt.h stmt.h sym.h type.h util.h
|
opt.h stmt.h sym.h type.h util.h
|
||||||
TARGETS=avx1 avx1-x2 avx2 avx2-x2 sse2 sse2-x2 sse4 sse4-x2 generic-4 generic-8 \
|
TARGETS=avx1 avx1-x2 avx2 avx2-x2 sse2 sse2-x2 sse4 sse4-x2 generic-4 generic-8 \
|
||||||
generic-16 generic-32 generic-1
|
generic-16 generic-32 generic-64 generic-1
|
||||||
BUILTINS_SRC=$(addprefix builtins/target-, $(addsuffix .ll, $(TARGETS))) \
|
BUILTINS_SRC=$(addprefix builtins/target-, $(addsuffix .ll, $(TARGETS))) \
|
||||||
builtins/dispatch.ll
|
builtins/dispatch.ll
|
||||||
BUILTINS_OBJS=$(addprefix builtins-, $(notdir $(BUILTINS_SRC:.ll=.o))) \
|
BUILTINS_OBJS=$(addprefix builtins-, $(notdir $(BUILTINS_SRC:.ll=.o))) \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2010-2011, Intel Corporation
|
Copyright (c) 2010-2012, Intel Corporation
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
@@ -854,6 +854,13 @@ DefineStdlib(SymbolTable *symbolTable, llvm::LLVMContext *ctx, llvm::Module *mod
|
|||||||
builtins_bitcode_generic_32_length,
|
builtins_bitcode_generic_32_length,
|
||||||
module, symbolTable);
|
module, symbolTable);
|
||||||
break;
|
break;
|
||||||
|
case 64:
|
||||||
|
extern unsigned char builtins_bitcode_generic_64[];
|
||||||
|
extern int builtins_bitcode_generic_64_length;
|
||||||
|
AddBitcodeToModule(builtins_bitcode_generic_64,
|
||||||
|
builtins_bitcode_generic_64_length,
|
||||||
|
module, symbolTable);
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
extern unsigned char builtins_bitcode_generic_1[];
|
extern unsigned char builtins_bitcode_generic_1[];
|
||||||
extern int builtins_bitcode_generic_1_length;
|
extern int builtins_bitcode_generic_1_length;
|
||||||
|
|||||||
33
builtins/target-generic-64.ll
Normal file
33
builtins/target-generic-64.ll
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
;; Copyright (c) 2010-2012, Intel Corporation
|
||||||
|
;; All rights reserved.
|
||||||
|
;;
|
||||||
|
;; Redistribution and use in source and binary forms, with or without
|
||||||
|
;; modification, are permitted provided that the following conditions are
|
||||||
|
;; met:
|
||||||
|
;;
|
||||||
|
;; * Redistributions of source code must retain the above copyright
|
||||||
|
;; notice, this list of conditions and the following disclaimer.
|
||||||
|
;;
|
||||||
|
;; * Redistributions in binary form must reproduce the above copyright
|
||||||
|
;; notice, this list of conditions and the following disclaimer in the
|
||||||
|
;; documentation and/or other materials provided with the distribution.
|
||||||
|
;;
|
||||||
|
;; * Neither the name of Intel Corporation nor the names of its
|
||||||
|
;; contributors may be used to endorse or promote products derived from
|
||||||
|
;; this software without specific prior written permission.
|
||||||
|
;;
|
||||||
|
;;
|
||||||
|
;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
;; IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
;; TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
;; PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
||||||
|
;; OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
;; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
;; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
define(`WIDTH',`64')
|
||||||
|
include(`target-generic-common.ll')
|
||||||
9
ispc.cpp
9
ispc.cpp
@@ -268,6 +268,15 @@ Target::GetTarget(const char *arch, const char *cpu, const char *isa,
|
|||||||
t->hasHalf = true;
|
t->hasHalf = true;
|
||||||
t->hasTranscendentals = true;
|
t->hasTranscendentals = true;
|
||||||
}
|
}
|
||||||
|
else if (!strcasecmp(isa, "generic-64")) {
|
||||||
|
t->isa = Target::GENERIC;
|
||||||
|
t->nativeVectorWidth = 64;
|
||||||
|
t->vectorWidth = 64;
|
||||||
|
t->maskingIsFree = true;
|
||||||
|
t->maskBitCount = 1;
|
||||||
|
t->hasHalf = true;
|
||||||
|
t->hasTranscendentals = true;
|
||||||
|
}
|
||||||
else if (!strcasecmp(isa, "generic-1")) {
|
else if (!strcasecmp(isa, "generic-1")) {
|
||||||
t->isa = Target::GENERIC;
|
t->isa = Target::GENERIC;
|
||||||
t->nativeVectorWidth = 1;
|
t->nativeVectorWidth = 1;
|
||||||
|
|||||||
14
ispc.vcxproj
14
ispc.vcxproj
@@ -30,6 +30,7 @@
|
|||||||
<ClCompile Include="gen-bitcode-generic-8.cpp" />
|
<ClCompile Include="gen-bitcode-generic-8.cpp" />
|
||||||
<ClCompile Include="gen-bitcode-generic-16.cpp" />
|
<ClCompile Include="gen-bitcode-generic-16.cpp" />
|
||||||
<ClCompile Include="gen-bitcode-generic-32.cpp" />
|
<ClCompile Include="gen-bitcode-generic-32.cpp" />
|
||||||
|
<ClCompile Include="gen-bitcode-generic-64.cpp" />
|
||||||
<ClCompile Include="gen-bitcode-sse2.cpp" />
|
<ClCompile Include="gen-bitcode-sse2.cpp" />
|
||||||
<ClCompile Include="gen-bitcode-sse2-x2.cpp" />
|
<ClCompile Include="gen-bitcode-sse2-x2.cpp" />
|
||||||
<ClCompile Include="gen-bitcode-sse4.cpp" />
|
<ClCompile Include="gen-bitcode-sse4.cpp" />
|
||||||
@@ -278,6 +279,19 @@
|
|||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Building gen-bitcode-generic-32.cpp</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Building gen-bitcode-generic-32.cpp</Message>
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="builtins\target-generic-64.ll">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">m4 -Ibuiltins/ -DLLVM_VERSION=%LLVM_VERSION% builtins\target-generic-64.ll | python bitcode2cpp.py builtins\target-generic-64.ll > gen-bitcode-generic-64.cpp</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">gen-bitcode-generic-64.cpp</Outputs>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">builtins\util.m4;builtins\target-generic-common.ll</AdditionalInputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">m4 -Ibuiltins/ -DLLVM_VERSION=%LLVM_VERSION% builtins\target-generic-64.ll | python bitcode2cpp.py builtins\target-generic-64.ll > gen-bitcode-generic-64.cpp</Command>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">gen-bitcode-generic-64.cpp</Outputs>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">builtins\util.m4;builtins\target-generic-common.ll</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Building gen-bitcode-generic-64.cpp</Message>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Building gen-bitcode-generic-64.cpp</Message>
|
||||||
|
</CustomBuild>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CustomBuild Include="lex.ll">
|
<CustomBuild Include="lex.ll">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
|
|||||||
Reference in New Issue
Block a user