similar to: [LLVMdev] llvm-gcc miscompilation or it's the gcc's rule?

Displaying 20 results from an estimated 7000 matches similar to: "[LLVMdev] llvm-gcc miscompilation or it's the gcc's rule?"

2008 Jan 14
0
[LLVMdev] llvm-gcc miscompilation or it's the gcc's rule?
I don't think C has a way to express 32b x 32b -> 64b multiply, even though there is (on x86 anyway) a hardware instruction that does it. The type of your expression (x * y) is still uint32_t. The implicit type coercion up to uint64_t as part of the return statement doesn't change this. On Jan 13, 2008, at 10:29 PM, Zhou Sheng wrote: > Hi, > > Here is C function: >
2010 Sep 29
3
[LLVMdev] spilling & xmm register usage
Hello everybody, I have stumbled upon a test case (the attached module is a slightly reduced version) that shows extremely reduced performance on linux compared to windows when executed using LLVM's JIT. We narrowed the problem down to the actual code being generated, the source IR on both systems is the same. Try compiling the attached module: llc -O3 -filetype=asm -o BAD.s BAD.ll Under
2010 Sep 29
0
[LLVMdev] spilling & xmm register usage
On Sep 29, 2010, at 8:35 AMPDT, Ralf Karrenberg wrote: > Hello everybody, > > I have stumbled upon a test case (the attached module is a slightly > reduced version) that shows extremely reduced performance on linux > compared to windows when executed using LLVM's JIT. > > We narrowed the problem down to the actual code being generated, the > source IR on both systems
2007 Nov 22
2
[LLVMdev] llvm-gcc cannot emit @llvm.pow.* ?
Hi, Current llvm-gcc cannot emit llvm intrinsic function like llvm.pow.* and llvm.sin.* For example: double foo(double x, double y) { return pow(x,y); } will compiled into ll: define double @foo(double %x, double %y) { %tmp3 = tail call double @pow( double %x, double %y ) ret double %tmp3 } This is not consistent with llvm language reference. -------------- next part -------------- An
2007 Nov 22
0
[LLVMdev] llvm-gcc cannot emit @llvm.pow.* ?
Hi, > Current llvm-gcc cannot emit llvm intrinsic function like llvm.pow.* and > llvm.sin.* > For example: > > double foo(double x, double y) { > return pow(x,y); > } > > will compiled into ll: > > define double @foo(double %x, double %y) { > %tmp3 = tail call double @pow( double %x, double %y ) > ret double %tmp3 > } > > This is not
2004 Jul 03
2
Multiple E1s over TDMoE?
When I was trying to run mutiple E1s over TDMoE, the zaptel would drivers complain about too little memory, whenever I added more than 31 channels. Requesting 62 channels in a dynamic span gave me ... span creation failed: Cannot allocate memory upon loading the zaptel drivers. How would you go about running, 8 or 16 say, E1s over TDMoE? Would you create multiple dynamic spans or just one large
2010 Feb 17
2
[LLVMdev] Source Code Location of an Instruction
On 16 February 2010 20:49, Trevor Harmon <Trevor.W.Harmon at nasa.gov> wrote: > We were discussing that a few days ago: > > http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-February/029245.html Hi Trevor, On a similar question, I'd want to see what line is being compiled to which instructions. Is it possible to print the before the instructions as comment? For example:
2008 Jun 06
2
[LLVMdev] Trouble with inline asm
Hi all, I'm having some trouble with inline asm expressions, more specifically how to create the right FunctionType for a given constraint set. So far it has worked well for inputs, but not for outputs. The inline asm support in this language (which is D, LLVMDC[1]) is through asm *statements*. I never have inline asm *expressions*, and outputs are always via memory. I D my test looks like
2010 Feb 16
0
[LLVMdev] Source Code Location of an Instruction
On Feb 13, 2010, at 7:22 AM, Jingyue Wu wrote: > I would like to know how to locate an LLVM instruction in the source > code, i.e. to get the line number of its corresponding source code > statement. I remember in LLVM 2.4, DbgStopPointInst is designed to > help this locating, but it seems deprecated in the latest LLVM. We were discussing that a few days ago:
2010 Feb 13
2
[LLVMdev] Source Code Location of an Instruction
Hi, I would like to know how to locate an LLVM instruction in the source code, i.e. to get the line number of its corresponding source code statement. I remember in LLVM 2.4, DbgStopPointInst is designed to help this locating, but it seems deprecated in the latest LLVM. Thanks, Jingyue -- Jingyue Wu Department of Computer Science Columbia University New York, NY 10027
2008 Jun 10
3
[LLVMdev] DejaGNU test fixes
Hi all, while writing a testcase thate needed to do a grep containg {, I found that the DejaGNU test framework didn't handle those very well. It's a bit of a fuss to escape accolades properly, but most of all the framework seemed to silently ignore errors in the escaping (and just not run the command then). See [1]. Fixing the framework resulted in 80 of the tests failing. I spent the
2008 May 07
1
[LLVMdev] bitcast function calls
We are seeing some behavior we don't understand. Some of our functions are not showing up in the Call Graph because their calls contain bitcasts. The Call Graph then considers them to be external nodes. The calls look as follows: %tmp35 = call i32 (...)* bitcast (i32 (i32, i8*, i32*)* @convert to i32 (...)*)( i32 %tmp33, i8* %tmp34, i8* %tmp30 ) ; <i32> [#uses=1] After looking
2015 Sep 30
2
InstCombine wrongful (?) optimization on BinOp with SameOperands
Hi all, I have been looking at the way LLVM optimizes code before forwarding it to the backend I develop for my company and while building define i32 @test_extract_subreg_func(i32 %x, i32 %y) #0 { entry: %conv = zext i32 %x to i64 %conv1 = zext i32 %y to i64 %mul = mul nuw i64 %conv1, %conv %shr = lshr i64 %mul, 32 %xor = xor i64 %shr, %mul %conv2 = trunc i64 %xor to i32
2012 Feb 07
1
[LLVMdev] Not Understanding Use
Let's say I have the following IR code: 21> %tmp = load i32* @myrand.z, align 4 22> %tmp1 = and i32 %tmp, 5535 23> %tmp2 = mul nsw i32 %tmp1, 36969 24> %tmp3 = ashr i32 %tmp, 16 And I have an Instruction *inst that is the instruction on line 22. then have the code: Use *operand1 = &(inst->getOperandUse(0)); I expect that operand1->getNext() will return the the Use*
2008 Jun 11
0
[LLVMdev] Miscompilation on MingW32
Hello, I have this simple IR: ------------------------------------------------------------------------ define internal i32 @tmp(i32 %x) { entry: br label %entry2 entry2: %x1 = alloca i32 %x2 = alloca i32 %retval = alloca i32 %dummy = alloca i32 store i32 %x, i32* %x1 store i32 %x, i32* %x2 %tmp1 = load i32* %x1 %tmp2 = add i32 %tmp1, %tmp1
2008 Jun 06
0
[LLVMdev] Trouble with inline asm
On Fri, Jun 6, 2008 at 6:32 AM, Tomas Lindquist Olsen <tomas.l.olsen at gmail.com> wrote: > Hi all, > > I'm having some trouble with inline asm expressions, more specifically > how to create the right FunctionType for a given constraint set. > So far it has worked well for inputs, but not for outputs. The inline > asm support in this language (which is D, LLVMDC[1]) is
2009 Apr 13
1
[LLVMdev] Porting LLVM backend is no fun yet
Dan Gohman wrote: > There certainly are wishlist items for TableGen and TableGen-based > instruction descriptions, though I don't know of an official list. > Offhand, > a few things that come to mind are the ability to handle nodes with > multiple results, Is there an official workaround, BTW? - Volodya
2008 Jan 12
1
[LLVMdev] Labels
I'm attempting to modify a parser generator to emit LLVM code instead of C. So far the experience has been trivial, but I am now running into an error regarding labels that I can't seem to solve. Situation 1: A label is used immediately after a void function call (l6 in this case): <snip> %tmp26 = load i32* @yybegin, align 4 %tmp27 = load i32* @yyend, align 4 call void
2008 Jun 11
4
[LLVMdev] Query on optimization and tail call.
Hi, While playing around on the LLVM, I tried this code: int sum(int n) { if (n == 0) return 0; else return n + sum(n-1); } and this is what "llvm-gcc -O2" gave me: define i32 @sum(i32 %n) nounwind { entry: %tmp215 = icmp eq i32 %n, 0 ; <i1> [#uses=1] br i1 %tmp215, label %bb10, label %tailrecurse.bb10_crit_edge tailrecurse.bb10_crit_edge: ; preds =
2008 Dec 09
1
[LLVMdev] scalar-evolution + indvars fail to get the loop trip count?
Hi, Seems pass scalar-evolution+indvars fail to get the loop trip count of the following case: int foo(int x, int y, int lam[256], int alp[256]) { int i; int z = y; for (i = 255; i >= 0; i--) { z += x; lam[i] = alp[i]; } return z; } The final optimized ll code is : define i32 @foo(i32 %x, i32 %y, i32* %lam, i32* %alp) nounwind { entry: br label %bb bb: