search for: breakcriticaledg

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

Did you mean: breakcriticaledge
2009 May 13
3
[LLVMdev] ModulePass using BreakCriticalEdges
Hi, I'm writing a ModulePass that needs critical edges split up. I have the statement AU.addRequiredID(BreakCriticalEdgesID); in my getAnalysisUsage() but the pass never gets executed. I guess I have to request pass execution for each function, but I can't get behind how to do that, since there is no analysis group for that kind of transformation. Thanks, Andi
2009 May 13
0
[LLVMdev] ModulePass using BreakCriticalEdges [Followup]
Hi, Andreas Neustifter wrote: > I'm writing a ModulePass that needs critical edges split up. I have the > statement > > AU.addRequiredID(BreakCriticalEdgesID); > > in my getAnalysisUsage() but the pass never gets executed. > > I guess I have to request pass execution for each function, but I can't > get behind how to do that, since there is no analysis group for that > kind of transformation. I now also added a (selfwritten)...
2005 Oct 25
2
[LLVMdev] newbie llc build problem: BreakCriticalEdges.cpp:44: undefined reference to `llvm::LoopSimplifyID'
...VM for a database query engine project... After downloading the latest source from CVS, it's my first time trying to build LLVM. Following the "Getting Started" instructions, all went well until gmake reported this error while trying to link llc: In function `(anonymous namespace)::BreakCriticalEdges::getAnalysisUsage(llvm::AnalysisUsage&) const': /home/kh/llvm.cvs/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp:44: undefined reference to `llvm::LoopSimplifyID' collect2: ld returned 1 exit status gmake[2]: *** [/home/kh/llvm/obj/Debug/bin/llc] Error 1 AFAICT, 'LoopSimplifyI...
2005 Oct 25
0
[LLVMdev] newbie llc build problem: BreakCriticalEdges.cpp:44: undefined reference to `llvm::LoopSimplifyID'
...LVMSystem -lpthread /usr/lib/libltdl.so > -ldl --rpath /home/kh/llvm/obj/Debug/bin -lstdc++ -lm -lgcc_s -lgcc -lc > -lgcc_s -lgcc /usr/lib/gcc/i386-redhat-linux/3.4.3/crtend.o > /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../crtn.o > /home/kh/llvm/obj/Debug/lib/libLLVMTransformUtils.a(BreakCriticalEdges.o)(.gnu.linkonce.t._ZNK95_GLOBAL__N__home_kh_llvm.cvs_llvm_lib_Transforms_Utils_BreakCriticalEdges.cpp_DD76033A_46A04D1D18BreakCriticalEdges16getAnalysisUsageERN4llvm13AnalysisUsageE+0x51): > In function `(anonymous > namespace)::BreakCriticalEdges::getAnalysisUsage(llvm::AnalysisUsage&am...
2006 Jul 04
3
[LLVMdev] Critical edges
Dear guys, I've adapted the pass in BreakCriticalEdges.cpp so I can use it before register allocation. But the pass is not changing the control flow graph of the machine function. I think it is because I am inserting the pass after the control flow graph of the machine function is built. I am inserting the pass as required by the register allocator,...
2006 Jun 03
1
[LLVMdev] Help with pass ordering
Dear llvm guys, I am trying to add the BreakCriticalEdges pass to my application. I tried to add it to the PNE pass (e.g. PHIElimination.cpp - AU.addRequiredID(BreakCriticalEdgesID); ), but I get this error: llc -f -regalloc=simple Base1Sum.bc -o simple.s ----------------------------------------------- llc: PassManagerT.h:387: void llvm::PassManagerT&l...
2009 Mar 29
0
[LLVMdev] GSoC 2009 application
...     | >    +-------+------+ >    |              | >    v              v >  x1 = \phi(x0)  x2 = \phi(x0) > > This comes from the fact that the sigma function, like the phi, function has > the semantic that the copies are done on the edges. This is assuming you run a pass like BreakCriticalEdges first? Looks like it would work. My concern here would be performance... -Eli
2011 Feb 01
1
[LLVMdev] Breaking critical edges
Is the pass "Break Critical edges" acheives the same as edge-splitting SSA, i.e., a node has either multiple predecessors or multiple successors but not both. A node with multiple predecessors and multiple successors is replaced by two consecutive nodes joined together. The first node has multiple predecessors and second node as its only successor. The second node has first node as
2006 Jul 03
1
[LLVMdev] Critical edges
Dear guys, when the phi-elimination pass is called (after local register allocation, for example), it seems to me that the control flow graph may have critical edges. Is it true? If it is true, I would like to know more about the algorithm that you guys use to destroy phi-functions. Is there any reference? Why did not implement a machine function pass to remove critical edges? I mean, I
2006 Jul 03
0
[LLVMdev] Critical edges
On Mon, 3 Jul 2006, Fernando Magno Quintao Pereira wrote: > when the phi-elimination pass is called (after local > register allocation, for example), it seems to me that the control flow > graph may have critical edges. Is it true? Yes. > If it is true, I would like to know more about the > algorithm that you guys use to destroy phi-functions. Is there any > reference? Why
2004 Dec 07
1
[LLVMdev] Question adding dummy basic blocks
...t say there are two blocks, A and B. A----->B I am trying to generate new BB called C which is located between A and B, but not break the edge of AB. The graph is like the following A---->B \ / \ / C There is new BB 'C' with edges AC and CB. It is kind of like what breakcriticaledge pass does. But we just pick up basic block(TIBB) whose the num of successor is 1 (like unconditional branch). And we try to replace the Terminator Inst of this basic block by contrusting a conditional branch(A to B and A to C). Meanwhile we generate a new basic block and unconditional branch which...
2006 Mar 22
0
[LLVMdev] Circular dependencies
Okay, its not that simple. Several files in Transforms/Utils depend on things in lib/Analysis. A quick grep shows: BreakCriticalEdges.cpp:#include "llvm/Analysis/Dominators.h" BreakCriticalEdges.cpp:#include "llvm/Analysis/LoopInfo.h" CloneTrace.cpp:#include "llvm/Analysis/Trace.h" CodeExtractor.cpp:#include "llvm/Analysis/Dominators.h" CodeExtractor.cpp:#include "llvm/Analysis/LoopI...
2009 Mar 29
3
[LLVMdev] GSoC 2009 application
2009/3/29 Misha Brukman <brukman at gmail.com>: > 2009/3/27 Andre Tavares <andrelct at dcc.ufmg.br> >> >> I'm a Computer Science master student at UFMG, Brasil. I'm interested in >> taking part on Google Summer of Codes 2009. My idea is not on the LLVM list, >> but I have written a project description to make my intentions clear. My >> project
2006 Mar 22
2
[LLVMdev] Circular dependencies
Okay, the problem with this cycle is LoopSimplify. It is using AliasAnalysis which is where that _ZN4llvm11BasicAAStubEv symbol is coming from. It seems to me that LoopSimplify.cpp is in the wrong place. This file defines the LoopSimplify FunctionPass which doesn't seem to me to be a "transform util". I thought the purpose of "Transforms/Util" was to provide utilities
2017 Jul 17
2
An update on the DominatorTree and incremental dominators
Hi folks, For the past month I’ve been working on improving the DominatorTree and PostDominatorTree in LLVM. The RFC that explains the motivations and plans can be found here: http://lists.llvm.org/pipermail/llvm-dev/2017-June/114045.html . Here’s a short summary of what changed upstream since posting it: - We switched from the Simple Lengauer-Tarjan algorithm for computing dominators
2007 Aug 19
1
[LLVMdev] MBB Critical edges
Hi, This pass is similar to the one in BreakCriticalEdges.cpp, but it works for MachineFunction's, instead of Functions. The existence of critical edges complicates many optimizations. When doing register allocation, you don't necessarily have to remove critical edges (you can use conventional SSA-form, for instance. See "Translating Ou...
2009 Mar 29
1
[LLVMdev] GSoC 2009 application
...>>    |              | >>    v              v >>  x1 = \phi(x0)  x2 = \phi(x0) >> >> This comes from the fact that the sigma function, like the phi, function has >> the semantic that the copies are done on the edges. > > This is assuming you run a pass like BreakCriticalEdges first?  Looks > like it would work.  My concern here would be performance... You don't need to break any edges, the copies are "semantically" done on the edge. When you have a critical edge, you can simply fold the sigma into the following phi's. Where is the performance a...
2017 Oct 03
1
About LLVM Pass dependency
Hi Hongbin I am not quite familiar with AnalysisUsage, let me correct question a bit. I have read Writing Pass <http://llvm.org/docs/WritingAnLLVMPass.html#specifying-interactions-between-passes>, All examples that i see here are based on collecting information .i.e Analysis Passes. I wonder if this applies to Transformation passes also. e.g. void MyInliner::getAnalysisUsage(AnalysisUsage
2016 Jul 26
2
[PM] I think that the new PM needs to learn about inter-analysis dependencies...
...> CanonicalizationA before CanonicalizationB), but given that we have >> relatively few "canonicalizations" (to give them a name) that use this >> feature of the old PM, it may be livable (at least in the middle-end, it >> seems like there is just LCSSA, LoopSimplify, BreakCriticalEdges, and >> LowerSwitch in calls to addPreservedID/addRequiredID). >> > >> > I don't find the "Causes rampant re-running of invalidated analyses" >> argument in that slide convincing. If a pass needs the IR in LCSSA then it >> needs it. There isn'...
2008 Mar 26
1
[LLVMdev] PATCH: Use size reduction -- wave1
...Parser/llvmAsmParser.h.cvs U lib/AsmParser/llvmAsmParser.y.cvs U lib/Transforms/Utils/LowerInvoke.cpp U lib/Transforms/Utils/LCSSA.cpp U lib/Transforms/Utils/CodeExtractor.cpp U lib/Transforms/Utils/CloneModule.cpp U lib/Transforms/Utils/CloneFunction.cpp U lib/Transforms/Utils/BreakCriticalEdges.cpp U lib/Transforms/Utils/LowerSwitch.cpp U lib/Transforms/Utils/SimplifyCFG.cpp U lib/Transforms/Utils/BasicBlockUtils.cpp U lib/Transforms/Utils/LowerAllocations.cpp U lib/Transforms/Utils/UnifyFunctionExitNodes.cpp U lib/Transforms/Utils/InlineFunction.cpp U lib/Transform...