Lines Matching defs:types

1 //===---- llvm/TypeBuilder.h - Builder for LLVM types -----------*- C++ -*-===//
11 // create LLVM types with a consistent and simplified interface.
24 /// TypeBuilder - This provides a uniform API for looking up types
26 /// series of tag types in the llvm::types namespace, like i<N>,
30 /// these. TypeBuilder<T, true> removes native C types from this set
32 /// We define the primitive types, pointer types, and functions up to
33 /// 5 arguments here, but to use this class with your own types,
45 /// Function::Create(TypeBuilder<types::i<8>(MyType*), true>::get(), ...)
57 /// TypeBuilder<types::i<32>, xcompile>::get(Context),
58 /// TypeBuilder<types::i<32>*, xcompile>::get(Context),
59 /// TypeBuilder<types::i<8>*[], xcompile>::get(Context),
74 /// TypeBuilder cannot handle recursive types or types you only know at runtime.
81 namespace types {
85 // The following classes represent the LLVM floating types.
93 } // namespace types
95 // LLVM doesn't have const or volatile types.
129 // Define the C integral types only for TypeBuilder<T, false>.
131 // C integral types do not have a defined size. It would be nice to use the
143 // addition to the defined-size types because we'd get duplicate definitions on
150 // So we define all the primitive C types and nothing else.
160 /* define these types to work. */ \
181 class TypeBuilder<types::i<num_bits>, cross> {
204 template<bool cross> class TypeBuilder<types::ieee_float, cross> {
208 template<bool cross> class TypeBuilder<types::ieee_double, cross> {
212 template<bool cross> class TypeBuilder<types::x86_fp80, cross> {
216 template<bool cross> class TypeBuilder<types::fp128, cross> {
220 template<bool cross> class TypeBuilder<types::ppc_fp128, cross> {
224 template<bool cross> class TypeBuilder<types::x86_mmx, cross> {
236 /// void* is disallowed in LLVM types, but it occurs often enough in C code that
239 : public TypeBuilder<types::i<8>*, false> {};
241 : public TypeBuilder<types::i<8>*, false> {};
243 : public TypeBuilder<types::i<8>*, false> {};
245 : public TypeBuilder<types::i<8>*, false> {};