search for: llvmtype

Displaying 20 results from an estimated 20 matches for "llvmtype".

2014 Jul 17
2
[LLVMdev] Fwd: Re: [PATCH] [TABLEGEN] Do not crash on intrinsics with names longer than 40 characters
...unk/test/TableGen/intrinsic-long-name.td @@ -0,0 +1,32 @@ +// RUN: llvm-tblgen -gen-intrinsic %s | FileCheck %s +// XFAIL: vg_leak + +class IntrinsicProperty; + +class ValueType<int size, int value> { + string Namespace = "MVT"; + int Size = size; + int Value = value; +} + +class LLVMType<ValueType vt> { + ValueType VT = vt; +} + +class Intrinsic<string name, list<LLVMType> param_types = []> { + string LLVMName = name; + bit isTarget = 0; + string TargetPrefix = ""; + list<LLVMType> RetTypes = []; + list<LLVMType> ParamTypes = param_type...
2014 Jul 17
2
[LLVMdev] Fwd: Re: [PATCH] [TABLEGEN] Do not crash on intrinsics with names longer than 40 characters
...FileCheck %s >> +// XFAIL: vg_leak >> + >> +class IntrinsicProperty; >> + >> +class ValueType<int size, int value> { >> + string Namespace = "MVT"; >> + int Size = size; >> + int Value = value; >> +} >> + >> +class LLVMType<ValueType vt> { >> + ValueType VT = vt; >> +} >> + >> +class Intrinsic<string name, list<LLVMType> param_types = []> { >> + string LLVMName = name; >> + bit isTarget = 0; >> + string TargetPrefix = ""; >> + list<LLV...
2007 Feb 05
0
[LLVMdev] automatically generating intrinsic declarations
On Mon, 5 Feb 2007, Dan Gohman wrote: > LLVM knows what all the types of the intrinsic functions are; I thought, > why are users (including llvm-gcc...) required to duplicate all this > information in order to use them? I mean in order to call > getOrInsertFunction to get declarations for them. That is an excellent question! :) In the bad old days, we used to allow intrinsics
2007 Feb 06
1
[LLVMdev] automatically generating intrinsic declarations
...e Index: include/llvm/Intrinsics.td =================================================================== RCS file: /var/cvs/llvm/llvm/include/llvm/Intrinsics.td,v retrieving revision 1.41 diff -u -r1.41 Intrinsics.td --- include/llvm/Intrinsics.td +++ include/llvm/Intrinsics.td @@ -68,6 +68,15 @@ LLVMType ElTy = elty; } +class LLVMPointerType<LLVMType elty> + : LLVMType<iPTR, "Type::PointerTyID">{ + LLVMType ElTy = elty; +} + +class LLVMEmptyStructType + : LLVMType<OtherVT, "Type::StructTyID">{ +} + def llvm_void_ty : LLVMType<isVoid, "Ty...
2007 Feb 05
2
[LLVMdev] automatically generating intrinsic declarations
LLVM knows what all the types of the intrinsic functions are; I thought, why are users (including llvm-gcc...) required to duplicate all this information in order to use them? I mean in order to call getOrInsertFunction to get declarations for them. So I wrote this patch, which allows all this code to be generated automatically. Is this a good approach? Dan -- Dan Gohman, Cray Inc. <djg at
2008 May 07
2
[LLVMdev] Creation of Intrinsics with Pointer Return Types
...at : Intrinsic<[llvm_anyfloat_ty,llvm_i32_ty,llvm_i32_ty],[IntrWriteMem],"llvm.migrate_end_float">;<br><br>I am not able to handle all of the pointer return type instructions.<br><br>I tried using the types such as:<br><br>def llvm_vararg_ty : LLVMType<isVoid>; // this means vararg here<br>def llvm_iPTR_ty : LLVMType<iPTR><br>def llvm_descriptor_ty : LLVMPointerType<llvm_empty_ty>; <br>and adding types<br>def llvm_ptriAny_ty : LLVMPointerType<llvm_anyint_ty>; <br>def l...
2019 Oct 22
4
Complex proposal v3 + roundtable agenda
...128, aaa> def v4c32 : ValueType<128, bbb> def v4c64 : ValueType<512, ccc> ... def nxv8c16 : ValueType<128, ddd> def nxv4c32 : ValueType<128, eee> def nxv1c64 : ValueType<128, fff> def nxv2c64 : ValueType<256, ggg> ... def llvm_anycomplex_ty : LLVMType<Any>; def llvm_c16_ty : LLVMType<c16>; def llvm_c32_ty : LLVMType<c32>; def llvm_c64_ty : LLVMType<c64>; def llvm_x86c80_ty : LLVMType<x86c80>; def llvm_c128_ty : LLVMType<c128>; def llvm_ppcc128_ty : LLVMType<ppcc128>; de...
2008 May 07
0
[LLVMdev] Creation of Intrinsics with Pointer Return Types
...grate_end_float : > Intrinsic<[llvm_anyfloat_ty,llvm_i32_ty,llvm_i32_ty], > [IntrWriteMem],"llvm.migrate_end_float">; > > I am not able to handle all of the pointer return type instructions. > > I tried using the types such as: > > def llvm_vararg_ty : LLVMType<isVoid>; // this means vararg here > def llvm_iPTR_ty : LLVMType<iPTR> > def llvm_descriptor_ty : LLVMPointerType<llvm_empty_ty>; > and adding types > def llvm_ptriAny_ty : LLVMPointerType<llvm_anyint_ty>; > def llvm_ptrfAny_ty : LLVMPointerType...
2020 Nov 12
0
Complex proposal v3 + roundtable agenda
...t; > def v4c64 : ValueType<512, ccc> > ... > > def nxv8c16 : ValueType<128, ddd> > def nxv4c32 : ValueType<128, eee> > def nxv1c64 : ValueType<128, fff> > def nxv2c64 : ValueType<256, ggg> > ... > > def llvm_anycomplex_ty : LLVMType<Any>; > def llvm_c16_ty : LLVMType<c16>; > def llvm_c32_ty : LLVMType<c32>; > def llvm_c64_ty : LLVMType<c64>; > def llvm_x86c80_ty : LLVMType<x86c80>; > def llvm_c128_ty : LLVMType<c128>; > def llvm_ppcc128_ty...
2019 Jul 01
14
RFC: Complex in LLVM
...ow querying and creation of complex types: bool Type::isComplexTy() const; bool Type::isComplex32Ty() const; bool Type::isComplex64Ty() const; Analogous ValueTypes will be used by intrinsics. def c32 : ValueType<64, xxx> def c64 : ValueType<128, yyy> def llvm_anycomplex_ty : LLVMType<Any>; def llvm_c32_ty : LLVMType<c32>; def llvm_c64_ty : LLVMType<c64>; The numbering of the ValueTypes will be determined after discussion. It may be desirable to insert them before the existing vector types, grouping them with the other scalar types or we may want to put the...
2019 Aug 29
2
Complex proposal v2
...used by intrinsics. def c16 : ValueType<32, uuu> def c32 : ValueType<64, vvv> def c64 : ValueType<128, www> def x86c80 : ValueType<160, xxx> def c128 : ValueType<256, yyy> def ppcc128 : ValueType<256, zzz> def llvm_anycomplex_ty : LLVMType<Any>; def llvm_c16_ty : LLVMType<c16>; def llvm_c32_ty : LLVMType<c32>; def llvm_c64_ty : LLVMType<c64>; def llvm_x86c80_ty : LLVMType<x86c80>; def llvm_c128_ty : LLVMType<c128>; def llvm_ppcc128_ty : LLVMType<ppcc128>; Th...
2016 Jun 13
2
LLVM IR intrinsics placeholder for strings [was Re: Back end with special loop instructions (using LLVM IR intrinsics)]
...; CountBuilder.CreateCall(MTCTRFunc, ECValue); > > I have defined also some intrinsics for my loop instructions in my file > Intrinsics_Connex.td: 1 intrinsic for REPEAT_X_TIMES and 1 for END_REPEAT. > /* following Intrinsics.td: > class Intrinsic<list<LLVMType> ret_types, > list<LLVMType> param_types = [], > list<IntrinsicProperty> properties = [], > string name = ""> > */ > def int_connex_repeat_x_times : Intrinsic<[], [], []>; > d...
2008 Feb 19
2
[LLVMdev] Problem with variable argument intrinsics
Hi, I tried creating variable argument intrinsics which are to be placeholders for some instructions which should not be executed by the backend. Kindly help me with the errors in my "migrate_begin" intrinsic creation //Additions made to Intrinsics.td file: def llvm_migrate_begin : LLVMType<iAny>; def int_migrate_begin : Intrinsic<[llvm_migrate_begin,llvm_vararg_ty],[IntrWriteMem],"llvm.migrate_begin">; //A section of the code which deals with the //"migrate_begin" intrinsic creation is as follows: const Type **Tys=(const Type**)calloc(extTys.size(),s...
2008 Feb 19
0
[LLVMdev] Problem with variable argument intrinsics
...intrinsics which > are to be placeholders for some instructions which > should not be executed by the backend. > > Kindly help me with the errors in my "migrate_begin" > intrinsic creation > > //Additions made to Intrinsics.td file: > > def llvm_migrate_begin : LLVMType<iAny>; > def int_migrate_begin : > Intrinsic<[llvm_migrate_begin,llvm_vararg_ty], > [IntrWriteMem],"llvm.migrate_begin">; This says that the return type is overloaded (because it's iAny). But that's the only overloaded part here; using variadic argument li...
2016 May 30
1
Back end with special loop instructions
Hi Alex, You might find it useful to look at how lib/Target/PowerPC/PPCCTRLoops.cpp works. -Hal ----- Original Message ----- > From: "Alex Susu via llvm-dev" <llvm-dev at lists.llvm.org> > To: "llvm-dev" <llvm-dev at lists.llvm.org> > Sent: Monday, May 30, 2016 5:09:37 PM > Subject: [llvm-dev] Back end with special loop instructions > > Hello.
2016 May 30
2
Back end with special loop instructions
Hello. I'm writing a back end for my research SIMD processor that has an assembly language that is blocked structured, with one-level loops. An example program with my assembly language: REPEAT_X_TIMES(Param2) R0 = LS[offset_A]; END_REPEAT; The LLVM code somewhat equivalent to the above ASM program is: vector.body: %index = phi i64 [
2008 Feb 12
0
[LLVMdev] Inrinsic Creation Problem
...I tried creating intrinsics which are to be placeholders for some instructions which should not be executed by the backend. Kindly help me with the errors in my "migrate_begin" intrinsic creation The following are the additions made to the Intrinsics.td file def llvm_migrate_begin : LLVMType<iAny>; def int_migrate_begin : Intrinsic<[llvm_migrate_begin,llvm_vararg_ty], [IntrWriteMem],"llvm.migrate_begin">; A section of the code which deals with the "migrate_begin" intrinsic creation is as follows const Type **Tys=(const Type**)calloc(extTys.size(),sizeo...
2008 Feb 20
1
[LLVMdev] Invalid intrinsic name error
...s which > > should not be executed by the backend. > > > > Kindly help me with the errors in my > > "migrate_begin" > > > intrinsic creation > > > > //Additions made to Intrinsics.td file: > > > > def llvm_migrate_begin : LLVMType<iAny>; > > def int_migrate_begin : > > Intrinsic<[llvm_migrate_begin,llvm_vararg_ty], > > [IntrWriteMem],"llvm.migrate_begin">; > > This says that the return type is overloaded > (because it's iAny). But > that's > the only over...
2019 Sep 03
2
Complex proposal v2
Krzysztof Parzyszek via llvm-dev <llvm-dev at lists.llvm.org> writes: >> -----Original Message----- >> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of David Greene >> via llvm-dev >> Sent: Thursday, August 29, 2019 10:05 AM >> To: llvm-dev <llvm-dev at lists.llvm.org> >> Subject: [EXT] [llvm-dev] Complex proposal v2 >>
2015 Jan 16
3
[LLVMdev] Overloaded intrinsics: name explosion
Philip Reames wrote: >> 1. Introduce aAny. > > Having a generic any type seems fine. I assume you'd create something like > an llvm_any_type in Intrinsics.td? That's precisely what ifavpAny is about: integer, float, array, vector, pointer Any. aAny is meant for array-Any, and I wonder why so few people care about arrays. I'll go ahead with Any and llvm_any_type.