search for: intrwritemem

Displaying 20 results from an estimated 22 matches for "intrwritemem".

2008 May 07
2
[LLVMdev] Creation of Intrinsics with Pointer Return Types
...laced by them.<br>In the process I created a "migrate_begin" variable argument intrinsic which handles the incoming data dependenices to these set of instructions.<br>Entry in the Intrinsics.td file:<br>def int_migrate_begin : Intrinsic<[llvm_i32_ty,llvm_vararg_ty],[IntrWriteMem],"llvm.migrate_begin">;<br> <br>I want to replace the instructions from this set , having outgoing data dependencies, with " migrate_end " intrinsic instructions.<br>I created two migrate_end intrinsics with return types anyint(iAny Value Type) and any flo...
2008 Aug 22
3
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...sicsPowerPC.td > =================================================================== > --- include/llvm/IntrinsicsPowerPC.td (revision 54985) > +++ include/llvm/IntrinsicsPowerPC.td (working copy) > @@ -26,6 +26,9 @@ > def int_ppc_dcbtst: Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; > def int_ppc_dcbz : Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; > def int_ppc_dcbzl : Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; > + > + // sync instruction > + def int_ppc_sync : Intrinsic<[llvm_void_ty], [IntrWriteMem]>; &g...
2008 Aug 19
2
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...ndex: include/llvm/IntrinsicsPowerPC.td =================================================================== --- include/llvm/IntrinsicsPowerPC.td (revision 54985) +++ include/llvm/IntrinsicsPowerPC.td (working copy) @@ -26,6 +26,9 @@ def int_ppc_dcbtst: Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; def int_ppc_dcbz : Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; def int_ppc_dcbzl : Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; + + // sync instruction + def int_ppc_sync : Intrinsic<[llvm_void_ty], [IntrWriteMem]>; } Index: lib/Target/Po...
2008 May 07
0
[LLVMdev] Creation of Intrinsics with Pointer Return Types
...them. > In the process I created a "migrate_begin" variable argument > intrinsic which handles the incoming data dependenices to these set > of instructions. > Entry in the Intrinsics.td file: > def int_migrate_begin : Intrinsic<[llvm_i32_ty,llvm_vararg_ty], > [IntrWriteMem],"llvm.migrate_begin">; > > I want to replace the instructions from this set , having outgoing > data dependencies, with " migrate_end " intrinsic instructions. > I created two migrate_end intrinsics with return types anyint(iAny > Value Type) and any float...
2008 Aug 21
2
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...ndex: include/llvm/IntrinsicsPowerPC.td =================================================================== --- include/llvm/IntrinsicsPowerPC.td (revision 54985) +++ include/llvm/IntrinsicsPowerPC.td (working copy) @@ -26,6 +26,9 @@ def int_ppc_dcbtst: Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; def int_ppc_dcbz : Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; def int_ppc_dcbzl : Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>; + + // sync instruction + def int_ppc_sync : Intrinsic<[llvm_void_ty], [IntrWriteMem]>; } Index: lib/Target/Po...
2008 Aug 22
0
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...============================================================= >> --- include/llvm/IntrinsicsPowerPC.td (revision 54985) >> +++ include/llvm/IntrinsicsPowerPC.td (working copy) >> @@ -26,6 +26,9 @@ >> def int_ppc_dcbtst: Intrinsic<[llvm_void_ty, llvm_ptr_ty], >> [IntrWriteMem]>; >> def int_ppc_dcbz : Intrinsic<[llvm_void_ty, llvm_ptr_ty], >> [IntrWriteMem]>; >> def int_ppc_dcbzl : Intrinsic<[llvm_void_ty, llvm_ptr_ty], >> [IntrWriteMem]>; >> + >> + // sync instruction >> + def int_ppc_sync : Intrinsic&l...
2008 Aug 21
0
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
On Aug 19, 2008, at 7:18 AMPDT, Gary Benson wrote: > Hi all, > > I'm trying to implement llvm.memory.barrier on PowerPC. I've modelled > my patch (attached) on the implementation in X86, but when I try and > compile my test file (also attached) with llc I get the error "Cannot > yet select: 0x10fa4ad0: ch = MemBarrier 0x10fa4828, 0x10fa4c68, > 0x10fa4be0,
2008 Feb 19
2
[LLVMdev] Problem with variable argument intrinsics
...ructions 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(),sizeof(Type*)); /* extTys vector contains data types(pointers) of formal parameters of the fun...
2008 Aug 21
0
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
This looks OK to check in, do you have write access? On Aug 21, 2008, at 6:38 AMPDT, Gary Benson wrote: > Dale Johannesen wrote: >> On Aug 19, 2008, at 7:18 AMPDT, Gary Benson wrote: >>> I'm trying to implement llvm.memory.barrier on PowerPC. I've >>> modelled my patch (attached) on the implementation in X86, but >>> when I try and compile my test
2008 Feb 20
1
[LLVMdev] Invalid intrinsic name error
...s presumably because the created intrinsic is named: llvm.migrate_begin.i32 Intrinsics.gen checks for a string length of 18 (i.e. the length without the .i32). Kindly help me through it. //Additions made to Intrinsics.td file: def int_migrate_begin : Intrinsic<[llvm_i32_ty,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(),sizeof(Type*)); /*extTys vector contains function type of the function "f" */ int i=0...
2019 Jul 25
2
Intrinsics InstrReadMem memory properties
So I removed the 'tail' from the call and try out different properties: - IntrNoMem: memset() and the intrinsic are both optimized away as expected - IntrWriteMem: memset() optimized away by DSE but the intrinsic isn't. I would expect both to be removed, since the intrinsic is now also a dead store. - IntrReadMem: memset() and the intrinsic are both optimized away *unexpectedly* (CSE removes the intrinsic, then InstCombine removes memset). The latter is...
2008 Feb 19
0
[LLVMdev] Problem with variable argument intrinsics
...end. > > 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 lists is different from overloading. > > > Overloaded intrinsic has incorrect suffix: '.i32.i32'. &...
2017 Jan 27
2
Preserving Call to Intrinsic function
Hello everyone, Consider we have this following set of code: int foo() { int a,b; a = __builtin_XX(0x11); b = __builtin_XX(0x11); return a+b; } The problem currently is that LLVM eliminated the second call and copied the result from the first call into a new set of registers. Is there is a way to force LLVM to generate two explicit calls to a builtin function. The builtin takes in an integer
2007 Aug 01
0
[LLVMdev] Adding custom operation intrinsic for ASIP architectures.
...insicsX86.td contains: let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_movnt_ps : GCCBuiltin<"__builtin_ia32_movntps">, Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_v4f32_ty], [IntrWriteMem]>; } and lib/Target/X86/X86InstrSSE.td contains: def MOVNTPSmr : PSI<0x2B, MRMDestMem, (outs), (ins i128mem:$dst, VR128:$src), "movntps {$src, $dst|$dst, $src}", [(int_x86_sse_movnt_ps addr:$dst, VR128:$src)]>; There is corresponding c...
2008 Sep 15
1
[LLVMdev] Prevent a intrinsic to be reordered?
Nothing... I'll show you all the info related to: The intrinsic: def int_soru_sre : Intrinsic<[llvm_void_ty, llvm_i32_ty], [IntrWriteMem]>; The lower instruction (in MIPS): class SORUI<bits<6> op, dag outs, dag ins, string asmstr, list<dag> pattern, InstrItinClass itin>: FI<op, outs, ins, asmstr, pattern, itin> { let isBarrier = 1; // or call, hassideefects, ..., nothing work } def SORU_SRE: S...
2007 Jul 31
3
[LLVMdev] Adding custom operation intrinsic for ASIP architectures.
Hi, I was talking with aKor in #llvm how we could implement custom operation support for our ASIP architecture. We came into solution that the best way would be to write new custom operation intrinsic and optimization pass for raising certain type of function calls to those intrinsics (similar to raising mallocs). Basically our custom operation are like calls, with operand name and multiple
2008 Sep 14
0
[LLVMdev] Prevent a intrinsic to be reordered?
Hello, Julio > These later things are ignored, I don't know if when the intrinsic is > lowered, then it doesn't matter (or perhaps the reorder is made > before). What is the description of the instruction you're lowering intrinsic into? Have you looked for the instruction flags defined in Target.td file? You instruction should definitely have "isBarrier" flag set.
2009 Apr 22
0
[LLVMdev] a very strange question about adding new instrinsic.
Hi: I want add new Instrinsic for my target. So I first do some test. I add them in IntrinsicsPowerPC.td //===--------------------===// let TargetPrefix = "ppc" in { def int_ppc_mytest : Intrinsic<[llvm_void_ty], [], [IntrWriteMem]>; } //===--------------------===// I add them in PPCInstrInfo.td //===--------------------===// def MYTEST : XForm_24_sync<31, 599, (outs), (ins),                         "mytest", LdStSync,                         [(int_ppc_mytest)]>; //===--------------------===// I inser...
2008 Feb 12
0
[LLVMdev] Inrinsic Creation Problem
...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(),sizeof(Type*)); /* extTys vector contains data types(pointers) of formal parameters of the function &qu...
2008 Sep 14
3
[LLVMdev] Prevent a intrinsic to be reordered?
Hello, I have an intrinsic that matches to a asm instruction directly. This intrinsic starts a coprocessor that can do anything. If I put another instruction next to it (a multiplication for example), the "llc" reorders and puts the intrinsic after the multiplication. I have tried all: - Setting the instruction like if it takes 256 cycles or 0 cycles. - Setting the instruction with