Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] Query on optimization and tail call."
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
[LLVMdev] A question about GetElementPtr common subexpression elimination/loop invariant code motion
2007 Jan 29
2
[LLVMdev] A question about GetElementPtr common subexpression elimination/loop invariant code motion
Hello.
I have a problem which is quite basic for array optimization, amd I
wonder whether I am missing something, but I could not
find the LLVM pass that does it.
Consider the following code snippet:
int test()
{
int mat[7][7][7];
int i,j,k,sum=0;
for(i=0;i<7;i++){
for(j=0;j<7;j++){
for(k=0;k<7;k++){
sum+=mat[i][j][k]^mat[i][j][k^1];
}
}
}
return
2008 Jun 11
0
[LLVMdev] Query on optimization and tail call.
On Tue, Jun 10, 2008 at 11:07 PM, Mahadevan R <mdevan.foobar at gmail.com> wrote:
> int sum(int n)
> {
> return n + sum(n-1);
> }
>
> it generates this:
>
> define i32 @sum(i32 %n) nounwind {
> entry:
> %tmp2 = add i32 %n, -1 ; <i32> [#uses=1]
> %tmp3 = tail call i32 @sum( i32 %tmp2 ) nounwind ; <i32>
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
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
2010 Nov 07
0
[LLVMdev] Hoisting elements of array argument into registers
David Peixotto <dmp <at> rice.edu> writes:
> I am seeing the wf loop get optimized just fine with llvm 2.8 (and almost
as good with head).
I rechecked this and am I actually seeing the same results as you. I think I
must have made a stupid mistake in my tests before - sorry for the noise.
However, I found that we have a phase ordering problem which is preventing us
getting as much
2007 Jun 12
0
[LLVMdev] ARM backend problem ?
Hi Mikael,
You are obtaining warning, not an error, right? The most arm cores,
including arm1136, can execute mul with rd = rm. So, you can ignore
this warning.
Lauro
2007/6/12, Peltier, Mikael <m-peltier at ti.com>:
>
>
>
>
> Hello,
>
>
>
> I want to compile a LLVM file into an executable running on ARM platform.
>
> I use LLVM 2.0 with the following
2007 Jun 12
3
[LLVMdev] ARM backend problem ?
Hello,
I want to compile a LLVM file into an executable running on ARM platform.
I use LLVM 2.0 with the following command lines:
llvm-as -f -o test.bc test.ll
llc -march=arm -mcpu=arm1136j-s -mattr=+v6 -f -o test.s test.bc
arm-linux-gnu-as -mcpu=arm1136j-s test.s
With the last command, I obtain the following error:
rd and rm should be different in mul
The bad instruction is
2014 May 23
2
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
----- Original Message -----
> From: "Chandler Carruth" <chandlerc at google.com>
> To: "Louis Gerbarg" <lgg at apple.com>
> Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Thursday, May 22, 2014 7:09:49 PM
> Subject: Re: [LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
>
>
>
>
>
2010 Sep 03
2
[LLVMdev] llvm-py (Python bindings for LLVM), new release 0.6.
Hi all,
Thought you might be interested:
llvm-py 0.6 was released a couple of days back. This release is
compatible with LLVM 2.7.
Check it out at http://www.mdevan.org/llvm-py/.
llvm-py has it's own mailing list, at http://groups.google.com/group/llvm-py.
Regards,
-Mahadevan.
(author of llvm-py)
2014 May 22
2
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
On May 22, 2014, at 3:51 PM, Chandler Carruth <chandlerc at google.com> wrote:
>
> On Thu, May 22, 2014 at 4:42 PM, Louis Gerbarg <lgg at apple.com> wrote:
> The problem that the above transform is technically illegal because “When indexing into a (optionally packed) structure, only i32 integer constants are allowed (when using a vector of indices they must all be the same
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]
2010 Oct 02
0
[LLVMdev] llvm-py (Python bindings for LLVM), new release 0.6.
Hi Mahadevan,
This looks very nice.
Is there a good reason to maintain this outside of the LLVM source
tree, or is this something you would like to see come in tree?
- Daniel
On Thu, Sep 2, 2010 at 10:58 PM, Mahadevan R <mdevan.foobar at gmail.com> wrote:
> Hi all,
>
> Thought you might be interested:
>
> llvm-py 0.6 was released a couple of days back. This release is
2010 Jan 29
0
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hi Ralf,
> llvm-gcc -c -emit-llvm -O3 produces this:
>
> %struct.float3 = type { float, float, float }
> define void @test(double %a.0, float %a.1, %struct.float3* nocapture
> %res) nounwind noinline {
> entry:
> %tmp8 = bitcast double %a.0 to i64 ; <i64> [#uses=1]
> %tmp9 = zext i64 %tmp8 to i96 ; <i96> [#uses=1]
>
2008 Nov 22
2
[LLVMdev] llvm-py 0.5 released.
Hi.
Version 0.5 of llvm-py, Python bindings for LLVM, has been released.
This version supports (only) LLVM 2.4. New instructions of LLVM 2.4
(vicmp, vfcmp, insertvalue, extractvalue) are available.
Home page: http://mdevan.nfshost.com/llvm-py/
Feedback welcome.
Thanks & Regards,
-Mahadevan.
2010 Jan 29
2
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hey Duncan, hey everybody else,
I just stumbled upon a problem in the latest llvm-gcc trunk which is
related to my previous problem with the 64bit ABI and structs:
Given the following code:
struct float3 { float x, y, z; };
extern "C" void __attribute__((noinline)) test(float3 a, float3* res) {
res->y = a.y;
}
int main(void) {
float3 a;
float3 res;
test(a,
2009 May 01
6
[LLVMdev] open source multithreaded garbage collector suitable for LLVM applications?
Hello All
Does any know about some opensource multithread-compatible (or
concurrent) garbage collector library, if possible suitable for LLVM?
(I mean that I want several mutator threads; the collector can be
stoptheworld or concurrent ....)
H.Boehm's conservative GC is multithread compatible, but seems quite
slow (allocation is about the time of a C malloc).
And it is well known that
2012 Jun 15
22
[Bug 51144] New: significant pixel corruption in text
https://bugs.freedesktop.org/show_bug.cgi?id=51144
Bug #: 51144
Summary: significant pixel corruption in text
Classification: Unclassified
Product: xorg
Version: git
Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: Driver/nouveau
2007 May 09
2
[LLVMdev] 2.0 Release Process
The release branch has been created and the llvm-gcc mirror updated
(thanks Bill!). I will be doing some preliminary testing before I request
the help of the community to test the release.
During this time, I ask that developers only commit documentation changes
to the release branch and email the list with any bug fixes that need to
be merged into the release branch. Bug fixes have to be
2014 May 22
4
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
Recently I posted a patch to migrate certain GEPs between basic blocks in cases where doing so would improve the ability of instcombine to merge into more complicated addressing mode (r209049 and r209065). After some build to failures it was rolled back. I now have a patch that no longer causes the regressions I was seeing, but it also no longer can optimize the case I was trying to optimize. As