search for: intrinsicproperty

Displaying 11 results from an estimated 11 matches for "intrinsicproperty".

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
2014 Jul 17
2
[LLVMdev] Fwd: Re: [PATCH] [TABLEGEN] Do not crash on intrinsics with names longer than 40 characters
...leGen/intrinsic-long-name.td =================================================================== --- llvm/trunk/test/TableGen/intrinsic-long-name.td +++ llvm/trunk/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 = n...
2014 Jul 17
2
[LLVMdev] Fwd: Re: [PATCH] [TABLEGEN] Do not crash on intrinsics with names longer than 40 characters
...================================= >> --- llvm/trunk/test/TableGen/intrinsic-long-name.td >> +++ llvm/trunk/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; >> +} >> +...
2014 Aug 05
2
[LLVMdev] Concerning not relevant argument count in TableGen Patterns.
...t;;* *def : TargetPat<(int_myintrinsicname), (MOVInstr)>;* /// error: In anonymous.4: Instruction 'MOVInstr' expects more operands than were provided./ int the corresponding /inclue/llvm/IR/IntrinsicsTarget.td/ file: *def int_myintrinsicname : Intrinsic< [llvm_i16_ty], [], [<IntrinsicProperty>], "llvm.my_intrinsic_name" >;* This causes an error (shown in a comment) because I have specified an instruction class which has two operands (one in "outs" list and the other one in "ins" list, but pattern knows that the SRC has one operand (return type of the...
2015 Jun 19
2
[LLVMdev] Attribute to mark that function only access memory through it's arguments
...ion from Intrinsics.td: // IntrReadWriteArgMem - This intrinsic reads and writes only from memory that // one of its arguments points to, but may access an unspecified amount. The // reads and writes may be volatile, but except for this it has no other side // effects. def IntrReadWriteArgMem : IntrinsicProperty; I did point out in the review that I think the notion of ReadsArgMem is redundant given the existing notions of ReadWriteArgMem and ReadOnly, but that's somewhat orthogonal. It's true of the existing implementation, not just Igor's patch. It may be worth settling on this to clar...
2014 Feb 26
2
[LLVMdev] How to 'define and use' a LOOP intrinsic that takes "iteration count" and the "label" to jump to ?
I have defined the intrinsic as * def int_loop: Intrinsic<[],[llvm_i8_ty, llvm_empty_ty],[]>;* and also got the Codegen backend support in Instructioninfo.td file. Then created a .ll file to test it. The .ll file is like this *declare void @llvm.loop(i8, label)define void @fn() nounwind readnone {entry: ..... ..... call void @llvm.loop(i8 10, label %entry) ret void}* But
2020 Jun 24
4
[RFC] `opt-out` attribute list for intrinsics
Hi all, A while back we started annotating intrinsics with new attributes ( https://reviews.llvm.org/D65377) After some discussion it was decided it would be good to have an `opt-out` attribute list for intrinsics. Some attributes that can be added to the list could be: nosync, nofree, nounwind, willreturn For now, there are 2 approaches: 1. Filtering opt-out attributes in tablegen source (
2016 Jun 13
2
LLVM IR intrinsics placeholder for strings [was Re: Back end with special loop instructions (using LLVM IR intrinsics)]
...p 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<[], [], []>; > def int_connex_end_repeat : Intrinsic<[llvm_i1_ty], [], []>; > and added C++ code doing CreateCall() like the on...
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.
2015 Jun 18
3
[LLVMdev] Attribute to mark that function only access memory through it's arguments
Hi, Currently in AliasAnalysis we can model ModRef behaviour for functions which only access memory through their pointer arguments. However we can't express this propery as a function attribute. For example, for intrinsics we can specify ReadWriteArgMem or ReadArgMem attributes in tablegen definitions. But due to the lack of the related function attributes on the llvm ir level, this
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 [