search for: prepass

Displaying 20 results from an estimated 24 matches for "prepass".

2007 Apr 30
2
[LLVMdev] alias information on machine instructions
hi, i`m working on a machine instruction scheduler for an VLIW architecture. loads are somewhat expensive on this architecture, thus i would like to reorder unrelated loads/stores to better hide load latencies. to do this, i would need alias information on machine instructions, i.e., which machine instructions may access the same memory region. as far as i know, this is not available at the
2007 May 04
0
[LLVMdev] alias information on machine instructions
...machine instructions, > i.e., which machine instructions may access the same memory region. > > as far as i know, this is not available at the moment? are there any > plans to get aliasing information on machine instructions? There are a couple of ways to do this. Is your scheduler a prepass scheduler (before regalloc) or a post-pass scheduler (after regalloc)? If you want to extract maximal parallelism, I assume you want a prepass scheduler. In that case, you should look into the SelectionDAG based schedulers, which do have alias information on them. -Chris -- http://nondot.o...
2007 May 04
2
[LLVMdev] alias information on machine instructions
Chris Lattner wrote: > There are a couple of ways to do this. Is your scheduler a prepass > scheduler (before regalloc) or a post-pass scheduler (after regalloc)? it is a post-pass scheduler, which operates on MachineInstrs. we need to run it after register allocation to hide latencies of spill code, prolog, and epilog. > If you want to extract maximal parallelism, I assume you...
2012 Aug 21
2
[LLVMdev] How to uniquely remember a loop?
...pending on your situation you might directly >point to the block or refer to its name. If you need to be more robust across CFG optimization and inlining, you'll have to use >debug info instead. >-Andy More than one loop may share the same header; I can certainly run LoopSimplify as a prepass. But will that ensure unique loop header for each loop. As I will be performing transformation after the analysis other optimizations will not interfere (hopefully). Will the debug info metadata be available always? If so, what are good pointers to explore? Thanks, -Prashantha -------------- ne...
2012 Aug 21
1
[LLVMdev] How to uniquely remember a loop?
...<Prashantha.Rao at amd.com<mailto:Prashantha.Rao at amd.com>> wrote: More than one loop may share the same header; You have a different definition of loop than the rest of the optimizer. You can identify your loops by the backedge if you prefer. I can certainly run LoopSimplify as a prepass. But will that ensure unique loop header for each loop. It tries to split loops into single back edge loops. No guarantee. As I will be performing transformation after the analysis other optimizations will not interfere (hopefully). Now it sounds like you're writing a standard in-process An...
2012 Aug 21
0
[LLVMdev] How to uniquely remember a loop?
...AM, "Rao, Prashantha" <Prashantha.Rao at amd.com> wrote: > More than one loop may share the same header; You have a different definition of loop than the rest of the optimizer. You can identify your loops by the backedge if you prefer. > I can certainly run LoopSimplify as a prepass. But will that ensure unique loop header for each loop. It tries to split loops into single back edge loops. No guarantee. > As I will be performing transformation after the analysis other optimizations will not interfere (hopefully). Now it sounds like you're writing a standard in-proces...
2007 May 23
0
[LLVMdev] alias information on machine instructions
On Fri, 4 May 2007, Florian Brandner wrote: > Chris Lattner wrote: >> There are a couple of ways to do this. Is your scheduler a prepass >> scheduler (before regalloc) or a post-pass scheduler (after regalloc)? > > it is a post-pass scheduler, which operates on MachineInstrs. we need to > run it after register allocation to hide latencies of spill code, > prolog, and epilog. ok. >> If you want to extract ma...
2007 Dec 08
0
[LLVMdev] Reproducing output of llvm-gcc using opt tool
...correct way to reproduce llvm-gcc -O3 output with the opt tool? It's a bit complicated, because llvm-gcc runs a couple of local passes as it parses and builds the llvm code, then it runs the passes above on the whole module afterwards. I don't know if there is a good way to get the prepasses, Devang, do you know? -Chris
2007 Dec 07
3
[LLVMdev] Reproducing output of llvm-gcc using opt tool
Hi, Recently, I was looking into the bug #1227. I wanted to check if reordering optimization passes could solve it. To start with, I tried to reproduce the output of llvm-g++ -O3 using the combination of llvm-g++ -O0 and opt with the appropriate passes. However, I was unable to. I use SVN versions of llvm and llvm-gcc-4.2. First, I compile example.cpp (attached; taken from the bug #1227) with: $
2010 Jan 13
1
[LLVMdev] Make LoopBase inherit from "RegionBase"?
...oBuffCompress.dot.png has a lot of exit edges. regions_without_loops.bzopen_or_bzdopen.dot.png the first region has two entry edges. One is the loop latch. (Keep in mind all regions have the same color, so if it seems there is an edge into a region, there are just two regions close by) Without a prepass that exposes the edges almost no region could be detected with the "standard" approach. It would be great to hear your opinion about this. See you Tobias
2011 Oct 08
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...ork with these instructions 1. Not the right preoptimization passes The instructions on the Polly website use a very short sequence of preoptimization passes that just matches the simple example presented. To optimize real world programs that are not 100% standard you need a larger sequence of prepasses. In your example the loop iv does not start at '0' so further canonicalication is required. The minimal sequence of optimization passes for your example is: opt -mem2reg -instcombine -simplifycfg -loop-rotate -indvars 2. -enable-iv-rewrite LLVM recently disabled by default the inducti...
2013 Aug 16
2
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
...d/store instructions into scalar operations. Is it possible to run such a pass before polly-dependence analysis? Star Tan At 2013-08-15 21:12:53,"Sebastian Pop" <sebpop at gmail.com> wrote: >Codeprepare and independent blocks are introducing these loads and stores. >These are prepasses that polly runs prior to building the dependence graph >to transform scalar dependences into data dependences. >Ether was working on eliminating the rewrite of scalar dependences. > >On Thu, Aug 15, 2013 at 5:32 AM, Star Tan <tanmx_star at yeah.net> wrote: >> Hi all, >&...
2012 Aug 16
2
[LLVMdev] How to uniquely remember a loop?
Hi- I am writing a pass to traverse loops and collect some analysis data and later on come back to transform the IR. In the analysis phase I need to remember statistics regarding every loop in the program. What is the best way to uniquely remember a loop? Thanks, -Prashantha -------------- next part -------------- An HTML attachment was scrubbed... URL:
2012 Aug 20
0
[LLVMdev] How to uniquely remember a loop?
On Aug 16, 2012, at 1:09 PM, "Rao, Prashantha" <Prashantha.Rao at amd.com> wrote: > Hi- > > I am writing a pass to traverse loops and collect some analysis data and later on come back to transform the IR. In the analysis phase I need to remember statistics regarding every loop in the program. What is the best way to uniquely remember a loop? Probably too late to help
2006 May 29
0
RE Basic Question
Hi Kaarl, > I work with APC SmartUPS which we use for the PrePass (Truck signaling and weigh station bypass system) system in > order to power our remote cabinets. We can access our SmartUPS 420s (mostly) from a UnixWare 2 computer that > has Ethernet communications to a serial comm server (Iolan) using a "cu" command: > cu i_ups. That g...
2013 Aug 15
0
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
Codeprepare and independent blocks are introducing these loads and stores. These are prepasses that polly runs prior to building the dependence graph to transform scalar dependences into data dependences. Ether was working on eliminating the rewrite of scalar dependences. On Thu, Aug 15, 2013 at 5:32 AM, Star Tan <tanmx_star at yeah.net> wrote: > Hi all, > > I have investig...
2011 Oct 07
1
[LLVMdev] How to make Polly ignore some non-affine memory accesses
I add also the output of these commands: [hades at artemis examples]$ ./compile_ex.sh super_simple_loop Printing analysis 'Polly - Detect Scops in functions' for function 'main': [hades at artemis examples]$ modifying it in : #include <stdio.h> int main() { int A[1024]; int j, k=10; for (j = 0; j < 1024; j++) A[j] = k;
2013 Aug 16
0
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
...operations. Is it possible to run such > a pass before polly-dependence analysis? > > Star Tan > > At 2013-08-15 21:12:53,"Sebastian Pop" <sebpop at gmail.com> wrote: >>Codeprepare and independent blocks are introducing these loads and stores. >>These are prepasses that polly runs prior to building the dependence graph >>to transform scalar dependences into data dependences. >>Ether was working on eliminating the rewrite of scalar dependences. >> >>On Thu, Aug 15, 2013 at 5:32 AM, Star Tan <tanmx_star at yeah.net> wrote: >&g...
2010 Jan 13
1
[LLVMdev] Make LoopBase inherit from "RegionBase"?
...> regions_without_loops.bzopen_or_bzdopen.dot.png >> the first region has two entry edges. One is the loop latch. >> (Keep in mind all regions have the same color, so if it seems there is >> an edge into a region, there are just two regions close by) >> >> Without a prepass that exposes the edges almost no region could be >> detected with the "standard" approach. > > Indeed the CFG will have to be modified for these cases. I it seems to me that the trade-off > between the two approaches is that the algorithm that you currently have is a cheap...
2011 Oct 03
4
[LLVMdev] How to make Polly ignore some non-affine memory accesses
Hi Tobias, thanks for the answer. I'll try to give a look to the code you pointed me to , and I'll try to make the modification myself. I'm new to LLVM and Polly, but the code of both seem clean and understandable, so I hope to be able to do it myself. In case I'll ask here for support :) Marcello 2011/10/1 Tobias Grosser <tobias at grosser.es>: > On 10/01/2011 03:26