Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Unknown LLVM intrinsic"
2004 Apr 14
1
[LLVMdev] Linking strncpy
Hi,
I'm working on a CS326 compiler project, and I'm having some problems
using string functions. Some LLVM programs produced are either
aborting or giving incorrect results; however, if I disassemble the
LLVM bytecode and recompile with GCC, everything works fine.
I encountered the following error when running lli with
'-force-interpreter' option:
"Tried to execute an
2004 Apr 14
2
[LLVMdev] FunctionPassManager Issue
Hi,
I'm a cs326 student that uses LLVM for our MP. While some of the COOL
program can be run seamlessly, I get the following assertion error for
many of them.
lli: Pass.cpp:95: bool llvm::FunctionPassManager::run(llvm::Function&):
>> Assertion `(&F == mF) && "ModuleProvider does not contain this
>> function!"' failed.
>>
>>
It seems
2004 Apr 14
5
[LLVMdev] Linking strncpy
Chris,
I'm fine with using JIT, but I'm trying to understand this problem:
1. My LLVM program does not produce correct results
2. Using llvm-dis, I disassemble the bytecode to C
3. I recompile using GCC and the program _works correctly_.
The only odd thing is when I recompile with GCC, I see these messages:
pal3.c:195: warning: conflicting types for built-in function `strcmp'
2004 Apr 14
0
[LLVMdev] Linking strncpy
The only thing I can think of is that string.h is being #included and
has different signatures for memcpy and strncpy. Possibly "char" is not
signed on your machine (very unusual) or some of the parameters are
declared as "const".
Reid.
On Wed, 2004-04-14 at 18:19, Eric Zimmerman wrote:
> Chris,
>
> I'm fine with using JIT, but I'm trying to understand this
2004 Apr 14
0
[LLVMdev] FunctionPassManager Issue
On Wed, 14 Apr 2004, Alex Li wrote:
> Hi Chris,
>
> Thanks for responding so quickly, here's the stack trace.
Okay, try applying this patch to your llvm/lib/VMCore/Pass.cpp file. It
seems to have been in CVS since February 9, I assume that your tarball
predates that.
If this doesn't fix it, I'm not sure that there is anything that I can do,
as I don't have the files you
2004 Apr 14
2
[LLVMdev] Linking strncpy
On Wed, 14 Apr 2004, Reid Spencer wrote:
> The only thing I can think of is that string.h is being #included and
> has different signatures for memcpy and strncpy. Possibly "char" is not
> signed on your machine (very unusual) or some of the parameters are
> declared as "const".
The problem is that the code generated by the C backend cannot include any
system
2004 Apr 15
0
[LLVMdev] Linking strncpy
Eric Zimmerman wrote:
> Chris,
>
> I'm fine with using JIT, but I'm trying to understand this problem:
> 1. My LLVM program does not produce correct results
> 2. Using llvm-dis, I disassemble the bytecode to C
> 3. I recompile using GCC and the program _works correctly_.
>
> The only odd thing is when I recompile with GCC, I see these messages:
>
>
2016 Nov 03
2
rotl: undocumented LLVM instruction?
Is there any way to get it to delay this optimization where it goes from
this:
Initial selection DAG: BB#0 'bclr64:entry'
SelectionDAG has 14 nodes:
t0: ch = EntryToken
t2: i64,ch = CopyFromReg t0, Register:i64 %vreg0
t4: i64,ch = CopyFromReg t0, Register:i64 %vreg1
t6: i64 = sub t4, Constant:i64<1>
t7: i64 = shl Constant:i64<1>, t6
2016 Nov 03
3
rotl: undocumented LLVM instruction?
Setting the ISD::ROTL to Expand doesn't work? (via SetOperation)
You could also do a Custom hook if that's what you're looking for.
On Thu, Nov 3, 2016 at 5:12 PM, Phil Tomson <phil.a.tomson at gmail.com> wrote:
> ... or perhaps to rephrase:
>
> In 3.9 it seems to be doing a smaller combine much sooner, whereas in 3.6
> it deferred that till later in the
2016 Nov 02
3
rotl: undocumented LLVM instruction?
We've recently moved our project from LLVM 3.6 to LLVM 3.9. I noticed one
of our code generation tests is breaking in 3.9.
The test is:
; RUN: llc < %s -march=xstg | FileCheck %s
define i64 @bclr64(i64 %a, i64 %b) nounwind readnone {
entry:
; CHECK: bclr r1, r0, r1, 64
%sub = sub i64 %b, 1
%shl = shl i64 1, %sub
%xor = xor i64 %shl, -1
%and = and i64 %a, %xor
ret i64
2016 Nov 03
2
rotl: undocumented LLVM instruction?
One option may be to prevent the formation of ROTL, if possible, and
then generating rol by hand.
Marking it as "expand" would likely stop the DAG combiner from creating
it. Then you could "preprocess" the selection DAG before the instruction
selection and do the pattern matching yourself.
-Krzysztof
On 11/3/2016 4:24 PM, Phil Tomson via llvm-dev wrote:
> I could try
2005 Feb 22
0
[LLVMdev] Area for improvement
When I increased COLS to the point where the loop could no longer be
unrolled, the selection dag code generator generated effectively the
same code as the default X86 code generator. Lots of redundant
imul/movl/addl sequences. It can't clean it up either. Only unrolling
all nested loops permits it to be optimized away, regardless of code
generator.
Jeff Cohen wrote:
> I noticed
2004 Sep 28
1
[LLVMdev] How could I hide the visible string?
Hi,
Is there a way to modify the string such as char a or char b? Could I use the way like "Replace an instruction with another Value" in Programm Manual? In fact, what I am interested in is string with visible expression, not all string, and I am trying to hide the orignal string by using simple way like XOR..
Is there a way to reorder the basic blocks?
Thanks.
Qiuyu
C Source
2003 Dec 22
2
[LLVMdev] hello.bc & binary code
hi,
I try to build hello.cpp using both llvmg++ and GNU g++,
the generate llvm bytecode's size is about 960K,
and the size of binary code generated by g++ is only 13K.
Could anyone explain the difference between the two result?
BWT:
I rebuild the cfrontend in RH linux9.0, but when I build the hello.cpp
the llvmG++ reports warnings too, it shows:
-----------------------------
[yue at RH9
2002 Nov 28
1
[LLVMdev] lli unreliable?
lli executed the bytecode corresponding to test_3.0_ml.ll without a
failure, even though Function() is accessing an invalid memory
address. The original code is in test_3.0.c, and the malloc() in
Create() has been replaced by alloca() in test_3.0_ml.ll.
I expected lli to segfault or similar when testing my code. Are my
assumptions erroneous?
-------------- next part --------------
2006 Oct 16
1
[LLVMdev] initializer does not match global variable type.
I have an objective-c file, bar.m, that I try to process in the
following way generating the error shown below. Any help would
be appreciated. I suspect the error is in the first few lines
of output.
thanks,
Todd
> cfrontend-g++ -o bar.bc bar.m
> llvm2cpp -o bar.cpp bar.bc
> g++ -c bar.o bar.cpp
> ld -o bar bar.o -l objc -l LLVMCore -l LLVMSupport -l LLVMSystem
> ./bar
Global
2005 Feb 22
5
[LLVMdev] Area for improvement
I noticed that fourinarow is one of the programs in which LLVM is much
slower than GCC, so I decided to take a look and see why that is so.
The program has many loops that look like this:
#define ROWS 6
#define COLS 7
void init_board(char b[COLS][ROWS+1])
{
int i,j;
for (i=0;i<COLS;i++)
for (j=0;j<ROWS;j++)
b[i][j]='.';
2006 Oct 17
1
[LLVMdev] initializer does not match global variable type.
>Right. This looks like it's just a simple bug in llvm2cpp.
>CppWriter.cpp:698 contains:
>
> if (CA->isString() && CA->getType()->getElementType() ==
>Type::SByteTy) {
> Out << "Constant* " << constName << " = ConstantArray::get(\"";
> printEscapedString(CA->getAsString());
> //
2005 Mar 21
0
[LLVMdev] Recursive Types using the llvm support library
On Wed, Mar 09, 2005 at 04:05:32PM +0300, Vladimir Merzliakov wrote:
> >>Is assert(!NewSTy->isAbstract()) must pass after this line?
> >
> >In this case, yup.
> >
> I create test program and assert failed in it:
>
> { \2 *, sbyte * }
How do I decode the \2 in this? I am creating types through this
interface and I get quite a mess seen below. And this is
2003 Dec 22
1
[LLVMdev] How to explain?
hi,
I want to know what is exact meaning in the following code.
target endian--
%struct..TorRec--
%struct.TorRec--
implementation--
;<sbyte>[#uses=1/0]--
how to explain them in details?
Does anyone give me a guide?
thanks
yueqiang
--------------------------------------------------------------
target endian = little
target pointersize = 32
%struct..TorRec = type { int, void ()* }