Displaying 20 results from an estimated 900 matches similar to: "Implement LLVM Intrinsics in C/LLVM IR"
2019 Mar 26
2
Implement LLVM Intrinsics in C/LLVM IR
Have you looked at these?
https://llvm.org/docs/LangRef.html
https://llvm.org/docs/ExtendingLLVM.html
On Tue, Mar 26, 2019 at 9:06 AM div code via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Of course, in this sense they are not platform-dependent. I just want to
> write a semantics-correct version of such intrinsics and let my static
> analyzer goes smoothly.
>
> On
2018 Dec 16
2
LLC Version 3.8 : Unsupported library call operation for a mul instruction
Hello List,
I am on the hook to instrument a piece of legacy LLVM IR code, and then we
are planning to feed to the SeaHorn framework for some model checking tasks.
After the instrumentation, I tried to use llc (version 3.9) to compile the
IR code, and it works fine. However, when I try to use llc (version 3.8.1,
the default llvm version of SeaHorn) to compile the IR code, it shows the
following
2018 Dec 14
2
LLVM Error: Unsupported library call operation
Hello,
I am on the hook to instrument a piece of legacy LLVM IR code, and then we
are planning to feed to the SeaHorn framework for some model checking tasks.
After the instrumentation, I tried to use llc (version 3.9) to compile the
IR code, and it works fine. However, when I try to use llc (version 3.8.1,
the default llvm version of SeaHorn) to compile the IR code, it shows the
following
2019 Feb 08
2
Unfolded additions of constants after promotion of @llvm.ctlz.i16 on SystemZ
Hi,
SystemZ supports @llvm.ctlz.i64() natively with a single instruction
(FLOGR), and lesser bitwidth versions of the intrinsic are promoted to i64.
For some reason, this leads to unfolded additions of constants as shown
below:
This function:
define i16 @fun(i16 %arg) {
%1 = tail call i16 @llvm.ctlz.i16(i16 %arg, i1 false)
ret i16 %1
}
,gives this optimized DAG as input to instruction
2013 Aug 16
0
[LLVMdev] ctlz pattern
Are you looking for something other than calling __builtin_clz from c++ or
calling @llvm.ctlz.* instrinsic from IR?
I don't think we have anything that will auto converting a loop to ctlz or
anything like that. We only seem to have a detection for popcount loops.
On Thu, Aug 15, 2013 at 9:01 PM, reed kotler <rkotler at mips.com> wrote:
> Does anyone know some simple c/c++ code or
2017 Jan 23
2
Early legalization pass ? Doing early legalization in an existing pass ?
Hi all,
Some non trivial legalization of operations which aren't supported by the
backend would benefit from having the optimizer pass on them. I noticed
some example trying to optimize various pieces of code over the past weeks.
One offender is the cttz/ctlz intrinsic when defined on 0. On X86, BSR and
NSF are undefined on 0, and only recent CPU have the LZCNT and TZCNT
instructions that
2006 Jan 16
0
[LLVMdev] Intrinsics Change
Developers,
As part of PR411, I have made several of the intrinsic functions non-
overloaded. While the assembler and bytecode reader are backwards
compatible, front-end writers should start using the non-overloaded
versions of the intrinsics. The llvm-gcc has already been updated to
generate the new intrinsic names. Other front-ends will start seeing
warnings about the names of intrinsics that
2017 Jan 24
3
Early legalization pass ? Doing early legalization in an existing pass ?
I may be wrong here, but legalizing early seems like something that is more
likely to prevent optimizations than it is to encourage them.
But I guess I don't follow why things like TTI, TII and TLI queries don't
suffice for this. CodeGenPrepare will break this sequence up. I would
imagine that if the target returns false for isCheapToSpeculateCtlz() and
false for canInsertSelect(), the
2013 Aug 16
2
[LLVMdev] ctlz pattern
Does anyone know some simple c/c++ code or .ll code which will cause
this ctlz pattern to be emitted?
Tia.
Reed
2019 Jun 10
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
Hi Eli,
Thanks for pointing to the CTLZ_ZERO_UNDEF “LibCall” implementation. I have not it in the version that I am currently using, so it’s nice to know that it’s implemented now.
Incidentally, the CTLZ… implementation is IDENTICAL to what I am proposing for the Shifts. This is not just adding support for “out-of-tree-targets”, but giving consistency to the fact that we have perfectly defined
2018 Jul 03
2
Using FileCheck in unit tests
> On 2 Jul 2018, at 15:13, Matthias Braun via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> I had similar gripes with unit testing machine function stuff. I personally would have preferred to create more tests based on a tool like llc rather than pushing more on the unit test side. Anyway I tried to push https://reviews.llvm.org/D48850 <https://reviews.llvm.org/D48850> in
2010 Jan 15
2
[LLVMdev] [PATCH] Emit rbit, clz on ARM for __builtin_ctz
On 15 Jan 2010, at 18:03, Chris Lattner wrote:
> On Jan 14, 2010, at 10:13 PM, David Conrad wrote:
>
>> Other targets that I know of that could potentially benefit from
>> this optimization being global (that have a clz and bitreverse
>> instruction but not ctz) are AVR32 and C64x, neither of which llvm
>> has backends for yet.
>
> When/if another
2019 Jun 10
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
LLVM appears to support Library functions for ISD::SRA ,ISD::SHL, and ISD::SRL, as they are properly defined in RuntimeLibCalls.def.
The library functions defined in RuntimeLibCalls.def (among others) are these:
HANDLE_LIBCALL(SRA_I16, "__ashrhi3")
HANDLE_LIBCALL(SRA_I32, "__ashrsi3")
HANDLE_LIBCALL(SRA_I64, "__ashrdi3")
However, setting
2019 Jun 11
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
Hi Eli,
First of all, please I would appreciate that you try to not confuse my limited use of English with stupidity or lack or criteria in other subjects. I’m not English native, so please keep that in mind. You have been significantly helpful in the recent past so please keep on.
Interestingly, you made a mention of a related but not identical issue. It is true that most (or all) processors
2009 Feb 26
1
[LLVMdev] A simple question regarding LLVM intrinsics.
Hi. My name is Gil Dogon and I am working in MobileEye using LLVM in
order to generate code for a proprietary processor.
Our processor architecture is very similar to MIPS, so I started to work
using the "experimental" MIPS back end.
Anyway, my question is rather simple but somehow I did not find a quick
answer to it in the documentation.
What I want to know, is how can the
2010 Jan 15
0
[LLVMdev] [PATCH] Emit rbit, clz on ARM for __builtin_ctz
On Jan 15, 2010, at 11:37 AM, Richard Osborne wrote:
>
> On 15 Jan 2010, at 18:03, Chris Lattner wrote:
>
>> On Jan 14, 2010, at 10:13 PM, David Conrad wrote:
>>
>>> Other targets that I know of that could potentially benefit from
>>> this optimization being global (that have a clz and bitreverse
>>> instruction but not ctz) are AVR32 and C64x,
2010 Jan 18
1
[LLVMdev] [PATCH] Emit rbit, clz on ARM for __builtin_ctz
On Jan 15, 2010, at 2:52 PM, Jim Grosbach wrote:
>
> On Jan 15, 2010, at 11:37 AM, Richard Osborne wrote:
>
>>
>> On 15 Jan 2010, at 18:03, Chris Lattner wrote:
>>
>>> On Jan 14, 2010, at 10:13 PM, David Conrad wrote:
>>>
>>>> Other targets that I know of that could potentially benefit from
>>>> this optimization being
2018 May 16
2
Rotates, once again
On 2018-05-16 00:34, Sanjay Patel via llvm-dev wrote:
> Vectorization goes overboard because the throughput cost model used by
> the
> vectorizers doesn't match the 6 IR instructions that correspond to 1
> x86
> rotate instruction. Instead, we have:
>
> [...]
>
> The broken cost model also affects unrolling and inlining. Size costs
> are
> overestimated
2013 Nov 15
2
[LLVMdev] Modular arithmetic processors
I've been playing around with LLVM to write a backend for a rather "simple"
(co-)processor. Assume that only three arithmetic instructions exist: ADD
mod N, SUB mod N and MUL mod N. The modulus N is programmable and stored in
a register. No ordinary arithmetic instructions are available. The word
size is 256-bit.
In other words, the following function, b + c mod N, corresponds to
2016 Apr 14
2
ABI for i256 in MCJIT
Hi,
I have a small JIT project based on MCJIT. The generated LLVM IR code uses
the i256 type. Also, the jitted code has to call back the host application
from time to time. E.g. it calls a function i256 @callback(i256).
1. Can the callback function be implemented on the host application side
(C/C++) to match the ABI used for the call by MCJIT? Or maybe the i256 has
be to be casted to