Merged with upstream/master

This commit is contained in:
evghenii
2013-11-22 08:13:16 +01:00
33 changed files with 795 additions and 394 deletions

21
ispc.h
View File

@@ -40,8 +40,8 @@
#define ISPC_VERSION "1.5.1dev"
#if !defined(LLVM_3_1) && !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4)
#error "Only LLVM 3.1, 3.2, 3.3 and the 3.4 development branch are supported"
#if !defined(LLVM_3_1) && !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5)
#error "Only LLVM 3.1, 3.2, 3.3, 3.4 and the 3.5 development branch are supported"
#endif
#if defined(_WIN32) || defined(_WIN64)
@@ -214,9 +214,16 @@ public:
/** Convert ISA enum to string */
static const char *ISAToString(Target::ISA isa);
/** Returns a string like "avx" encoding the target. */
/** Returns a string like "avx" encoding the target. Good for mangling. */
const char *GetISAString() const;
/** Convert ISA enum to string */
static const char *ISAToTargetString(Target::ISA isa);
/** Returns a string like "avx1.1-i32x8" encoding the target.
This may be used for Target initialization. */
const char *GetISATargetString() const;
/** Returns the size of the given type */
llvm::Value *SizeOf(llvm::Type *type,
llvm::BasicBlock *insertAtEnd);
@@ -254,6 +261,8 @@ public:
int getNativeVectorWidth() const {return m_nativeVectorWidth;}
int getDataTypeWidth() const {return m_dataTypeWidth;}
int getVectorWidth() const {return m_vectorWidth;}
bool getGeneratePIC() const {return m_generatePIC;}
@@ -321,10 +330,14 @@ private:
#endif
/** Native vector width of the vector instruction set. Note that this
value is directly derived from the ISA Being used (e.g. it's 4 for
value is directly derived from the ISA being used (e.g. it's 4 for
SSE, 8 for AVX, etc.) */
int m_nativeVectorWidth;
/** Data type with in bits. Typically it's 32, but could be 8, 16 or 64.
For generic it's -1, which means undefined. */
int m_dataTypeWidth;
/** Actual vector width currently being compiled to. This may be an
integer multiple of the native vector width, for example if we're
"doubling up" and compiling 8-wide on a 4-wide SSE system. */