annotate gen/llvm.h @ 445:cc40db549aea

Changed the handling of variadic intrinsics a bit. Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues. Changed the handling of parameter attributes to a bit more generalized approach. Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 . Parameter attribs now properly set for intrinsic calls if necessary. Made the tango.math.Math patch less intrusive. Fixed/added some mini tests.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Fri, 01 Aug 2008 17:59:58 +0200
parents d59c363fccad
children 607b6b5819a7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
1 #ifndef GEN_LLVM_H
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
2 #define GEN_LLVM_H
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
3
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
4 #include "llvm/Type.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
5 #include "llvm/DerivedTypes.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
6 #include "llvm/Constants.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
7 #include "llvm/IntrinsicInst.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
8 #include "llvm/CallingConv.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
9 #include "llvm/GlobalVariable.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
10 #include "llvm/Function.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
11 #include "llvm/Module.h"
43
eb7bf7b7972e [svn r47] fixed a problem with gdc 4.1
lindquist
parents: 40
diff changeset
12 #include "llvm/Value.h"
445
cc40db549aea Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 309
diff changeset
13 #include "llvm/ParameterAttributes.h"
40
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
14
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
15 #include "llvm/Target/TargetData.h"
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
16
205
9d44ec83acd1 [svn r221] Update: Switched to the 2.3 LLVM svn branch, http://llvm.org/svn/llvm-project/llvm/branches/release_23 .
lindquist
parents: 43
diff changeset
17 #include "llvm/Support/IRBuilder.h"
9d44ec83acd1 [svn r221] Update: Switched to the 2.3 LLVM svn branch, http://llvm.org/svn/llvm-project/llvm/branches/release_23 .
lindquist
parents: 43
diff changeset
18 using llvm::IRBuilder;
40
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
19
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 205
diff changeset
20 #define GET_INTRINSIC_DECL(_X) (llvm::Intrinsic::getDeclaration(gIR->module, llvm::Intrinsic:: _X ))
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 205
diff changeset
21
244
a95056b3c996 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents: 213
diff changeset
22 // shortcuts for the common llvm types
a95056b3c996 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents: 213
diff changeset
23
309
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
24 #define LLType llvm::Type
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
25 #define LLFunctionType llvm::FunctionType
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
26 #define LLPointerType llvm::PointerType
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
27 #define LLStructType llvm::StructType
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
28 #define LLArrayType llvm::ArrayType
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
29 #define LLIntegerType llvm::IntegerType
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
30 #define LLOpaqueType llvm::OpaqueType
244
a95056b3c996 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents: 213
diff changeset
31
309
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
32 #define LLValue llvm::Value
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
33 #define LLGlobalValue llvm::GlobalValue
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
34 #define LLGlobalVariable llvm::GlobalVariable
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
35 #define LLFunction llvm::Function
244
a95056b3c996 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents: 213
diff changeset
36
309
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
37 #define LLConstant llvm::Constant
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
38 #define LLConstantStruct llvm::ConstantStruct
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
39 #define LLConstantArray llvm::ConstantArray
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
40 #define LLConstantInt llvm::ConstantInt
445
cc40db549aea Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 309
diff changeset
41 #define LLConstantFP llvm::ConstantFP
244
a95056b3c996 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents: 213
diff changeset
42
309
d59c363fccad [svn r330] Implemented synchronized statements.
lindquist
parents: 244
diff changeset
43 #define LLPATypeHolder llvm::PATypeHolder
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 205
diff changeset
44
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 205
diff changeset
45 #define LLSmallVector llvm::SmallVector
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 205
diff changeset
46
445
cc40db549aea Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 309
diff changeset
47 #define APFloat llvm::APFloat
cc40db549aea Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 309
diff changeset
48
40
8b0e809563df [svn r44] Lots of bug fixes.
lindquist
parents:
diff changeset
49 #endif // GEN_LLVM_H