Displaying 20 results from an estimated 2000 matches similar to: "LLVM Error: Unsupported library call operation"
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
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
2017 Oct 10
2
[RFC] Add SeaHorn and Crab-llvm to Users.html
Hi folks,
We would like to add SeaHorn <http://seahorn.github.io/> and Crab-llvm
<https://github.com/seahorn/crab-llvm> to the list of LLVM's users on
http://llvm.org/Users.html under Open Source Projects. The descriptions
would be:
1. SeaHorn | An Algorithmic Logic-Based Reasoning Framework.
2. Crab-llvm | A static analyzer based on abstract interpretation for LLVM.
I attach a
2019 Mar 26
2
Implement LLVM Intrinsics in C/LLVM IR
Hello,
I am basically working on a static analysis project on LLVM IR, and the
problem is that I will need to simulate the execution of a few LLVM
Intrinsic, such as llvm.bswap.i160, and llvm.ctlz.i256.
I am wondering if there has been some already implemented sample code,
regarding these intrinsics? Either C or LLVM IR. Thanks a lot!
Best,
-------------- next part --------------
An HTML
2015 Oct 05
3
RFC: Pass for lowering "non-linear" arithmetics of illegal types
Hi LLVM,
This is my idea I had some time ago, when I realized that LLVM did not
support legalization of some arithmetic instructions like mul i256. I have
implemented very simple and limited version of that in my project. Is it
something LLVM users would appreciate?
1. The pass transforms IR and is meant to be run before CodeGen (after
IR optimizations).
2. The pass replaces
2018 Jan 31
4
llvm.memcpy for struct copy
Hi Ma,
how can I transform the llvm.memcpy into data move loop IR and eliminate
> the bitcast instruction ?
>
I'm not sure why you are concerned about memcpy and bitcasts, but if you
call MCpyInst->getSource() and MCpyInst->getDest() it will look through
casts and give you the 'true' source/destination.
If you want to get rid of memcpy altogether, you can take a look
2018 Feb 01
0
llvm.memcpy for struct copy
On 31 Jan 2018, at 17:36, Jakub (Kuba) Kuderski via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> If you want to get rid of memcpy altogether, you can take a look at this pass: https://github.com/seahorn/seahorn/blob/master/lib/Transforms/Scalar/PromoteMemcpy.cc .
There are at least four different places in LLVM where memcpy intrinsics are expanded to either sequences of
2017 May 24
3
GraphTraits dereferencing
Hello,
I’m trying to port a project up to 4.0 and I’m seeing the following error:
In file included from /Users/jaredcarlson/Projects/llvm-4.0.0.src/include/llvm/ADT/StringRef.h:13:
/Users/jaredcarlson/Projects/llvm-4.0.0.src/include/llvm/ADT/STLExtras.h:139:13: error: no type named 'type' in 'std::__1::result_of<std::__1::pointer_to_unary_function<llvm::DSNode *, llvm::DSNode
2018 Dec 18
2
Interprocedural AA
Hi,
I'm looking for interprocedural AAs and have, of course, found
https://llvm.org/docs/AliasAnalysis.html. However, the AAs that come
bundled with LLVM do not work interprocedurally in a way that I need it
(on/with stack variables). The two interesting looking AAs come with the
optional `poolalloc' module that hasn't been updated in years (I guess
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
2019 Jul 29
2
Efficient way to identify an instruction
Hi Alberto,
I have not used this myself, but I think you should be able to visit your Instruction ‘users()’. I think the name this function was given is a bit confusing, but this returns an iterator range you can iterate through to find instructions that depend on a given one.
Similarly, you have the function ‘uses()’ that can be used to traverse down the DAG when instructions are still on SSA
2013 Nov 15
0
[LLVMdev] Modular arithmetic processors
Hi,
My personal opinion: Just to be sure I understand what you're considering:
you want to write a backend that will produce optimized machine code for a
device with modular arithmetic instructions (not simulate such a device on
a standard CPU)? In which case, won't the same assumptions that are
embodied in the transformations for the case of unsigned 2's complement
arithmetic (in
2013 Nov 18
1
[LLVMdev] Modular arithmetic processors
Thanks for your insightful suggestions.
Yes, I am programming for a real device that does modular arithmetic (and
only modular arithmetic). The modulus N is fixed during a single launch of
a program. One way I could also come up with is to simply use add i256 %a,
%b to represent a + b mod n, and let LLVM passes to reason about possible
optimizations. However these are not semantically identical
2010 May 26
2
[LLVMdev] i256 for x86_64
Hello all
I have a very simple handwritten .ll file that can be translated to native
assembly on x86_64 when I use i128. But if I use i256 I get an error. see
the file and the first line of the error below. Any help is appreciated! I
played a little bit with target datalayout but it didn't help.
Best
Ehsan
Input File:
target datalayout =
2012 Nov 14
2
[LLVMdev] Question about llvm.ctpop.*
Hi,
Following is excerpted from
http://llvm.org/releases/3.1/docs/LangRef.html#int_ctpop.
How come the return type needs to be consistent with parameter type?
i64/i128 seems to be overkill,
and i8, i16 are inconvenient.
-----------------------------------
declare i8 @llvm.ctpop.i8(i8 <src>)
declare i16 @llvm.ctpop.i16(i16 <src>)
declare i32 @llvm.ctpop.i32(i32
2018 Nov 25
3
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
bswapdi2 for i386 is correct
Bits 31:0 of the source are loaded into edx. Bits 63:32 are loaded into
eax. Those are each bswapped. The ABI for the return is edx contains bits
[63:32] and eax contains [31:0]. This is opposite of how the register were
loaded.
~Craig
On Sun, Nov 25, 2018 at 10:36 AM Craig Topper <craig.topper at gmail.com>
wrote:
> bswapsi2 on the x86-64 isn't using
2007 Oct 09
5
continue for loop in case of erros
Dear all,
I have a for loop which includes nls model estimation.
The loop breaks after the first non-convergence error.
How can I make the loop continue and try to estimate all models?
I suppose it should be sth like: if(...) { next }
but I have no idea how to setup the arguements...
Thank you!
Irene
2019 Jul 06
2
Seeking suggestions about interfacing of LLVM DataFlowSanitizer library with KLEE in C code.
Dear Developers,
I am a Master's student at the ECE department of the University of Florida, USA. For my research project, supervised by Prof. Mark Tehranipoor<http://tehranipoor.ece.ufl.edu/> and Prof. Farimah Farahmandi<http://farimah.ece.ufl.edu/>, I need to use Clang LLVM DataflowSanitizer library in KLEE. However, I have faced some difficulties (explained below) while
2018 Nov 25
3
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
Hi @ll,
targetting i386, LLVM/clang generates wrong code for the following
functions:
unsigned long __bswapsi2 (unsigned long ul)
{
return (((ul) & 0xff000000ul) >> 3 * 8)
| (((ul) & 0x00ff0000ul) >> 8)
| (((ul) & 0x0000ff00ul) << 8)
| (((ul) & 0x000000fful) << 3 * 8);
}
unsigned long long __bswapdi2(unsigned long