search for: gimple

Displaying 20 results from an estimated 121 matches for "gimple".

Did you mean: simple
2006 Jul 31
1
[LLVMdev] Auto-vectorization in GCC 4.0
...AM, Vikram Adve wrote: >> Does llvmgcc4 convert the high-level AST to LLVM (like llvmgcc3x) or does >> it go from GIMPL to LLVM? If the latter, would it be possible to allow >> some TreeSSA optimizations before emitting LLVM? > llvmgcc4 intercepts high-level GCC trees to GIMPLE tree transformation > routines to get trees that are suitable for LLVM byte code. And TreeSSA > optimizer may not be able to handle LLVM suitable GIMPLE trees. One such case > is how Array references are handled (&a[i] vs a+i*size). However, I do not > know exact details of LLVM...
2006 Jul 31
0
[LLVMdev] Auto-vectorization in GCC 4.0
..., 2006, at 11:14 AM, Vikram Adve wrote: > Does llvmgcc4 convert the high-level AST to LLVM (like llvmgcc3x) > or does it go from GIMPL to LLVM? If the latter, would it be > possible to allow some TreeSSA optimizations before emitting LLVM? llvmgcc4 intercepts high-level GCC trees to GIMPLE tree transformation routines to get trees that are suitable for LLVM byte code. And TreeSSA optimizer may not be able to handle LLVM suitable GIMPLE trees. One such case is how Array references are handled (&a [i] vs a+i*size). However, I do not know exact details of LLVM byte code gen...
2010 Jun 22
1
[LLVMdev] RTL <-> SSA
...RTL or LLVM IR -> RTL backend, to allow using the GCC backend with the Clang frontend, but I'm not aware of any progress on this.  You could ask on the gcc mailing list about it. Thanks. The gcc mailing list mentioned the DragonEgg project (http://dragonegg.llvm.org/), which translates GCC Gimple to LLVM bitcode. In my understanding, bitcode means the LLVM SSA. My goal for these translators is that I wanted to reuse existing passes from LLVM and GCC, and such translations can link these two settings. This DragonEgg solved this problem at a different level, because it replaces the GCC optimi...
2013 Jan 01
0
[LLVMdev] [DragonEgg] [Polly] Should we expect DragonEgg to produce identical LLVM IR for identical GIMPLE?
...s, the loop region > (enclosed by phi node on induction variable and branch) is required to be free > of additional memory-dependent branches. In other words, there must be no > conditional "br" instructions below phi nodes. The problem we are facing is that > from *identical* GIMPLE for 3d loop used in different contexts DragonEgg may > generate LLVM IR either conforming the described limitation, or violating it. the gimple isn't the same at all (see below). The differences are directly reflected in the unoptimized LLVM IR, turning up as additional memory loads in the...
2006 Jul 31
2
[LLVMdev] Auto-vectorization in GCC 4.0
Does llvmgcc4 convert the high-level AST to LLVM (like llvmgcc3x) or does it go from GIMPL to LLVM? If the latter, would it be possible to allow some TreeSSA optimizations before emitting LLVM? --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.cs.uiuc.edu/ On Jul 31, 2006, at 1:10 PM, Devang Patel wrote: > llvmgcc4 emits LLVM byte code before executing GCC optimizations, > so one
2013 Jan 02
2
[LLVMdev] [DragonEgg] [Polly] Should we expect DragonEgg to produce identical LLVM IR for identical GIMPLE?
...sed by phi node on induction variable and branch) is required to >> be free >> of additional memory-dependent branches. In other words, there must be no >> conditional "br" instructions below phi nodes. The problem we are >> facing is that >> from *identical* GIMPLE for 3d loop used in different contexts >> DragonEgg may >> generate LLVM IR either conforming the described limitation, or >> violating it. > > the gimple isn't the same at all (see below). The differences are directly > reflected in the unoptimized LLVM IR, turning...
2011 Sep 13
1
[LLVMdev] Weird GIMPLE by gccgo
Hi! I've been playing with gccgo / dragonegg, trying to get it to compile Go reliably. One of the problems I am currently facing is that when compiling Go, GCC tends to generate GIMPLE calls that don't have the correct type (or so it seems to me :) ). For instance, when compiling ddd.go from the Go testsuite, I get this: i.91 = i; D.785 = i.91.__methods; D.786 = D.785->Sum; D.787 = __go_new_nopointers (16); MEM[(int[4] *)D.787][0] = 2; MEM[(int[4]...
2010 Sep 13
5
[LLVMdev] using GCC LTO files as a frontend to dragonegg?
On Mon, Sep 13, 2010 at 04:27, Duncan Sands <baldrick at free.fr> wrote: > Hopefully this is feasible, as I said I didn't work on > it yet. It sounds doable, but I'm not sure why would you want to convert the gimple into LLVM bitcode, if you are already saving LLVM bitcode in the file. Wouldn't you be just duplicating code? Diego.
2012 Jul 12
4
[LLVMdev] Documentation about converting GIMPLE IR to LLVM IR in LLVM-GCC/DragonEgg
Dear All, I am trying to understand the process followed for converting GIMPLE IR to LLVM IR in LLVM-GCC/DragonEgg - more importantly conversion of OpenMP extended GIMPLE IR to LLVM IR. It would be great if anybody points me to some documentation before I my-self delve into the understanding of related source code. -- Cheers -mahesha -------------- next part --------------...
2013 Jan 02
0
[LLVMdev] [DragonEgg] [Polly] Should we expect DragonEgg to produce identical LLVM IR for identical GIMPLE?
Hi Duncan & Tobi, Thanks a lot for your interest, and for pointing out differences in GIMPLE I missed. Attached is simplified test case. Is it good? Tobi, regarding runtime alias analysis: in KernelGen we already do it along with runtime values substitution. For example: <------------------ __kernelgen_main_loop_17: compile started ---------------------> Integer args substitut...
2010 Sep 13
0
[LLVMdev] using GCC LTO files as a frontend to dragonegg?
Hi Diego, >> Hopefully this is feasible, as I said I didn't work on >> it yet. > > It sounds doable, but I'm not sure why would you want to convert the > gimple into LLVM bitcode, if you are already saving LLVM bitcode in > the file. Wouldn't you be just duplicating code? here I was thinking of the possibility that some files have been compiled with -flto but without the dragonegg plugin, so contain gimple in the assembler, while others have been...
2012 Jul 13
0
[LLVMdev] Fwd: Documentation about converting GIMPLE IR to LLVM IR in LLVM-GCC/DragonEgg
Hello Duncan Sands, >From your reply, what I can understand is that there is no any new OPENMP specific instructions introduced into LLVM IR as a part of DragonEgg project since GCC has already done the job of lowering OpenMP directives into GOMP runtime library calls at LOW GIMPLE IR level. Now, it throws up following questions. 1. Am I correct that DragoEgg should logically supports all the OMP benchmarks as supported by GCC (4.5 or later)? 2. If we decide to support OpenMP directly in LLVM what is the better way to handle it? Suppose, assume that we decide t...
2012 Dec 31
3
[LLVMdev] [DragonEgg] [Polly] Should we expect DragonEgg to produce identical LLVM IR for identical GIMPLE?
...number of limitations, the loop region (enclosed by phi node on induction variable and branch) is required to be free of additional memory-dependent branches. In other words, there must be no conditional "br" instructions below phi nodes. The problem we are facing is that from *identical* GIMPLE for 3d loop used in different contexts DragonEgg may generate LLVM IR either conforming the described limitation, or violating it. Let's consider two examples. In first one some simple 3D loop is used directly in main program. In second - the same 3D loop is extracted into separate subroutine...
2010 May 01
2
[LLVMdev] Best intermediate form to...
...end as possible. Mainly I need to find out dependencies and control flows, amongst a few other things. So far I've seen http://llvm.org/docs/LangRef.html which might be what I'm looking for, but I just wanted to make sure. Also I heard that there's something that can convert GCCs GIMPLE to llvm IR, which I looked up and I believe is llvm-gcc, but again, I want to make sure that's it. Also, is there a plugin that converts llvm IR to GIMPLE, or is there a project currently working on it? Thanks in advance! =) -nonpoly -- View this message in context: http://old.nabble.com/Be...
2012 Jul 31
1
[LLVMdev] [DragonEgg] Mysterious FRAME coming from gimple to LLVM
> According to comment in tree-nested.c, these frames should be only > introduced in case of debug or OpenMP lowering: in case of *debug*. What if you pass -O1 / -O2 / -Owhatever ? -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
2013 Jan 15
0
[LLVMdev] [Polly] Aliasing problems escalation (WAS: Re: [DragonEgg] [Polly] Should we expect DragonEgg to produce identical LLVM IR for identical GIMPLE?)
Hi Duncan, You mean - what happens if DragonEgg is invoked with GCC optimization? I tried -O3 and -fplugin-arg-dragonegg-llvm-ir-optimize=1, but nothing changed. - D. 2013/1/8 Duncan Sands <baldrick at free.fr> > On 04/01/13 15:58, Duncan Sands wrote: > >> PS: Another possibility is to do link-time optimization, since at that >> point the >> optimizers are capable
2007 May 12
5
[LLVMdev] C back-end differences
On Fri, 11 May 2007, me22 wrote: > I'm not exactly sure how llvm-g++ works. I think it goes through the > standard gcc sequence (gimple, rtl, and such) but then outputs LLVM > (http://llvm.org/docs/LangRef.html), which is the intermediate > representation used by the rest of the chain. To make an LLVM backend > you would not need to deal with RTL and such at all. llvm-g++ converts from trees to high-gimple to LLVM. RTL...
2013 Jan 08
2
[LLVMdev] [Polly] Aliasing problems escalation (WAS: Re: [DragonEgg] [Polly] Should we expect DragonEgg to produce identical LLVM IR for identical GIMPLE?)
On 04/01/13 15:58, Duncan Sands wrote: > PS: Another possibility is to do link-time optimization, since at that point the > optimizers are capable of finding out if that global is used anywhere else or > not. By the way, do the GCC optimizers get this, i.e. remove the loads? Ciao, Duncan.
2012 Sep 12
2
[LLVMdev] A Question about LLVM-backend
Hello, all. I want to manipulate LLVM-backend to emit other compiler's IR, in this case, VPO's IR. So, what i want to know is.. Is there a project to be referred? (For example, "Do LLVM-backend -> GIMPLE" project exist?) Or, how can I manipulate it easily? Thanks, Cho Yeong-pil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120912/9e384b93/attachment.html>
2010 Sep 10
4
[LLVMdev] using GCC LTO files as a frontend to dragonegg?
Hello, With GCC, it is possible to compile GIMPLE from an object file back to assembly. With Dragonegg, it seems to be a NOP. (See below for a comparison.) This appears it could be a nice way to mix the strengths of GCC and LLVM. If it worked.. Should it? Thanks, Marcus [mdaniels at dn002 dragonegg]$ cat hello.c #include <stdio.h>...