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: