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 [