Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] Puzzled by results of -O3"
2010 Sep 10
1
[LLVMdev] Missing Optimization Opportunities
Hi,
I'm using LLVM 2.7 right now, and I found "opt -std-compile-opts" has
missed some opportunities for optimization:
define void @spa.main() readonly {
entry:
%tmp = load i32* @dst-ip ; <i32> [#uses=3]
%tmp1 = and i32 %tmp, -16777216 ; <i32> [#uses=1]
%tmp2 = icmp eq i32 %tmp1, 167772160 ; <i1> [#uses=2]
2011 Feb 22
2
[LLVMdev] Clone a function and change signature
Hi,
I want to clone a given function, and add an argument to it. I then want to
add a call to that new function. I have a callInstruction CI, which I want
to transform to call this new function, and to take a new argument.
The code I added was as follows
CI->getCalledFunction()->dump();
Function* DirectF = CloneFunction(CI->getCalledFunction());
2015 Jun 11
4
[LLVMdev] Question about NoWrap flag for SCEVAddRecExpr
[+Arnold]
> On Jun 10, 2015, at 1:29 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote:
>
> [+CC Andy]
>
>> Can anyone familiar with ScalarRevolution tell me whether this is an
>> expected behavior or a bug?
>
> Assuming you're talking about 2*k, this is a bug. ScalarEvolution
> should be able to prove that {0,+,4} is <nsw> and
2007 Nov 29
2
[LLVMdev] LLVM and OpenMP
Wojciech,
I've just commited a patch to llvm-gcc 4.2, which moves openmp lowering
stuff to be run little bit earlier, so llvm-convert will catch its
result. It looks now gcc atomic & sync builtins should be introduced to
llvm as a remaining ingredient.
Example program from Diego's paper now compiles to:
@.str = internal constant [10 x i8] c"sum = %d\0A\00" ;
2017 Apr 28
3
Store unswitch
Hi Danny,
Thanks for that :) However I've just updated the prototype patch to NewGVN
and it didn't need any API changes - all I rely on is GVNExpression.
Hongbin,
I wanted to explain a little about what GVNSink can currently do, what it
was designed for and hopefully how to make it handle your testcase.
*Background*
Common code sinking is more difficult to efficently do than one might
2006 Dec 06
4
[LLVMdev] Proposed: first class packed structures
Currently, Structure layout is left to targets, which implement them
according to the ABI of that platform. While this is fine for most
structures, it makes packed structures very ugly. All fields in a
packed type must be converted to byte arrays with casts to access
fields, which bloats accesses and obsfucates the types. First class
support for packed types would clean up the generated code
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
2011 Feb 22
0
[LLVMdev] Clone a function and change signature
On 2/22/11 1:31 PM, Arushi Aggarwal wrote:
> Hi,
>
> I want to clone a given function, and add an argument to it. I then
> want to add a call to that new function. I have a callInstruction CI,
> which I want to transform to call this new function, and to take a new
> argument.
If I understand correctly, you're cloning the function first and then
adding a new argument to
2010 Nov 23
1
[LLVMdev] Unrolling loops into constant-time expressions
Hello,
I've come across another example:
I'm compiling with
clang -S -emit-llvm -std=gnu99 -O3
clang version 2.9 (trunk 118238)
Target: x86_64-unknown-linux-gnu
Thread model: posix
I take the code:
int loops(int x) {
int ret = 0;
for(int i = 0; i < x; i++) {
for(int j = 0; j < x; j++) {
ret += 1;
}
}
return ret;
}
and the
2015 Jun 10
3
[LLVMdev] Question about NoWrap flag for SCEVAddRecExpr
I am testing vectorization on the following test case:
float x[1024], y[1024];
void myloop1() {
for (long int k = 0; k < 512; k++) {
x[2*k] = x[2*k]+y[k];
}
}
Vectorization failed due to "unsafe dependent memory operation". I traced
the LoopAccessAnalysis.cpp and found the reason is the NoWrapFlag for
SCEVAddRecExpr is not set and consequently the
2006 Jul 23
3
RfW 2.3.1: regular expressions to detect pairs of identical word-final character sequences
Dear all
I use R for Windows 2.3.1 on a fully updated Windows XP Home SP2 machine and I have two related regular expression problems.
platform i386-pc-mingw32
arch i386
os mingw32
system i386, mingw32
status
major 2
minor
2009 Nov 11
0
[LLVMdev] Puzzled by results of -O3
Hi Stephan,
> I'm trying to figure out why the following sequence of intructions is
> not collapsed to "ret i32 0" by the opt tool with "-03".
no target data maybe?
Ciao,
Duncan.
2015 Jun 11
2
[LLVMdev] Question about NoWrap flag for SCEVAddRecExpr
> On Jun 10, 2015, at 6:17 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote:
>
> I'm not sure if inbounds can be used to prove <nuw>. If an object
> %OBJ is allocated at address -1 then "gep inbounds %OBJ 1" is not
> poison, but the underlying computation unsigned-overflows.
I think that this should yield poison per langref because the signed
2013 Oct 27
2
[LLVMdev] Missed optimization opportunity with piecewise load shift-or'd together?
The following piece of IR is a fixed point for opt -std-compile-opts/-O3:
---
target datalayout =
"e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: nounwind readonly
define i32 @get32Bits(i8*
2011 Jul 23
14
[LLVMdev] RFC: Exception Handling Rewrite
What? Yet another EH proposal?! This one is different from the others in that
I'm planning to start implementing this shortly. But I want your feedback! I've
all ready gotten a lot of feedback from Chris, John, Jim, Eric, and many others.
Now is your turn!
Please read this proposal and send me your comments, suggestions, and concerns.
-bw
2013 Sep 02
0
[LLVMdev] .globl
Hi Reed,
Still catching up on email, so hope this isn't already covered...
reed kotler <rkotler at mips.com> writes:
> I have a strange issue that I encountered with mips16 hard float.
>
> Part of mips16 hard float is to emit calls to runtime routines with the
> same signature as usual soft float routines, except that they are
> implemented using mips32 code which uses
2011 Jul 23
0
[LLVMdev] RFC: Exception Handling Rewrite
Hi Bill,
Thanks for working on this.
Is there a reference for the function attribute uwtable, or is it to be defined as
part of this effort?
Thanks in advance
Garrison
On Jul 23, 2011, at 1:29, Bill Wendling wrote:
> What? Yet another EH proposal?! This one is different from the others in that
> I'm planning to start implementing this shortly. But I want your feedback! I've
2008 Mar 04
0
[LLVMdev] Deleting Instructions after Intrinsic Creation
Hi,
I tried creating intrinsics which
are to be placeholders for a set of instructions which
should not be executed by the backend.
I want to retain only intrinsic,phi and terminator instructions in a basic
block.
I have taken care of the external dependencies of basic block.
How do I delete the rest of the instructions?
Thank You
Aditya
P.S:
2008 Mar 04
1
[LLVMdev] Deleting Instructions after Intrinsic Creation
Hi,
I tried creating intrinsics which
are to be placeholders for a set of instructions which
should not be executed by the backend.
I want to retain only intrinsic,phi and terminator
instructions in a basic block.
I have taken care of the external dependencies of
basic block.
How do I delete the rest of the instructions?
Thank You
Aditya
P.S:
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