similar to: [LLVMdev] Moving instructions from functions

Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Moving instructions from functions"

2005 Apr 20
3
[LLVMdev] "Refactoring" Basic Blocks into a new function
On Apr 19, 2005, at 22:10, Evan Jones wrote: > I just found the Interval class, and it looks like it could help me > out here. I want to locate the Interval that begins with the call to > the "magic" begin(), and ends with the call to the "magic" end(), if > it exists. If there is no such valid interval, then I want to detect > that and return an error. Can I
2005 Apr 20
0
[LLVMdev] "Refactoring" Basic Blocks into a new function
On Apr 19, 2005, at 8:39 PM, Evan Jones wrote: > I have two very specific questions about LLVM, but first let me give > you the general overview of what I am trying to achieve. I have some > section of a function that I want to replace with a function call to a > brand new function. For example, I want to take the following > function: > > function foo: > code A >
2008 Dec 07
1
[LLVMdev] How to extract loop body into a new function?
False Alarm!! Still don't know how to do it! I am trying to write a transformation pass to extract a loop body into a function. For example: The Loop in question is: for (i2 = 0; i2 < LOOP_SIZE; i2++) { A[B[i2]] = 2 * B[i2]; } The IR for which is: bb13: ; preds = %bb13, %bb %i2.0.reg2mem.0 = phi i32 [ 0, %bb ], [ %indvar.next62, %bb13 ] ; <i32>
2009 Mar 24
2
[LLVMdev] Problem with MemoryDependenceAnalysis
no .. i am calling a function pass from a module pass, adding other function passes to my module pass works, but when i try to add MemoryDependenceAnalysis it gives error I want to report a bug but i don't know if this is a real bug or i am doing something wrong, knowing that i am adding other function passe to my module pass and it works fine. the error i get: adding callgraph pass ...
2009 Mar 24
1
[LLVMdev] Problem with MemoryDependenceAnalysis
actually i only created a new Module pass and tried to getAnalysis of MemoryDependenceAnalysis from it, i didn't use TargetData directly to regenerate the error i am attaching a c file containing an example code to regenerate the error. with its Makefile the command line i used is: opt -time-passes -analyze -load ${LLVM_PATH}/Release/lib/.libs/libMYMODULEPASS.so -MyModulePass < test.bc
2009 Mar 20
2
[LLVMdev] Problem with MemoryDependenceAnalysis
Dear all, I am having a problem adding a MemoryDependenceAnalysis pass to a Module Pass i created, it gives me the following error when i add (Info.addRequired<MemoryDependenceAnalysis>();) it in the getAnalysisUsage(AnalysisUsage &Info) function. adding callgraph pass ... done opt: /net/home/yehia/llvm/llvm-2.4/include/llvm/Target/TargetData.h:114:
2009 Mar 20
2
[LLVMdev] Problem with MemoryDependenceAnalysis
Devang Patel wrote: > On Mar 20, 2009, at 8:13 AM, Amr Yehia wrote: > > >> Dear all, >> >> I am having a problem adding a MemoryDependenceAnalysis pass to a >> Module >> Pass i created, it gives me the following error when i add >> (Info.addRequired<MemoryDependenceAnalysis>();) it in the >> getAnalysisUsage(AnalysisUsage &Info)
2008 Dec 07
2
[LLVMdev] How to extract loop body into a new function?
Hi All, I am having trouble extracting loop body into a new function. The ExtractLoop() or ExtractBasicBlock() extracts the entire loop along with the header into a new function. All I want is to extract the body of the loop into a new function(without the header). Is this possible? Thanks, Mrunal
2009 Mar 24
0
[LLVMdev] Problem with MemoryDependenceAnalysis
Amr Yehia wrote: > no .. i am calling a function pass from a module pass, adding other > function passes to my module pass works, but when i try to add > MemoryDependenceAnalysis it gives error > I'm going to assume that you're running your passes via a specially built tool and not as a set of passes loaded into the opt program. If this assumption is wrong, please let
2009 Mar 23
0
[LLVMdev] Problem with MemoryDependenceAnalysis
On Mar 20, 2009, at 11:19 AM, Amr Yehia wrote: >> I am loading the CallGraph pass before it from my module Aha, so you're actually invoking function pass from a CG pass. See if my suggestion from http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-February/020109.html helps. - Devang >
2010 Oct 20
5
[LLVMdev] Pass Incompatibility
I have a transformation where I'd like to use both DominatorTree (for ExtractCodeRegion), and DemoteRegisterToMemory (i.e., reg2mem). The transformation is phased, so all occurrences of getAnalysis<DominatorTree>(Function) happen before any occurrence of getAnalysisID<FunctionPass>(&DemoteRegisterToMemoryID, Function). If I register these two passes with DominatorTree first, I
2005 Apr 20
2
[LLVMdev] "Refactoring" Basic Blocks into a new function
On Apr 19, 2005, at 23:17, Vikram Adve wrote: > Have you looked at ExtractCodeRegion() and its siblings in > include/llvm/Transform/Utils/FunctionUtils.h? It seems to be what you > need. This is brilliant. In fact, it is nearly *exactly* what I need. On Apr 19, 2005, at 23:59, Chris Lattner wrote: > An Interval (and an Interval partition) is a concept with a lot of > compiler
2008 Dec 07
0
[LLVMdev] How to extract loop body into a new function?
Sorry! It worked with ExtractBasicBlock() ----- Original Message ----- From: "Mrunal J Shah" <mrunal.shah at gatech.edu> To: "llvmdev" <llvmdev at cs.uiuc.edu> Sent: Saturday, December 6, 2008 8:30:33 PM GMT -05:00 US/Canada Eastern Subject: [LLVMdev] How to extract loop body into a new function? Hi All, I am having trouble extracting loop body into a new
2009 Mar 20
0
[LLVMdev] Problem with MemoryDependenceAnalysis
On Mar 20, 2009, at 8:13 AM, Amr Yehia wrote: > Dear all, > > I am having a problem adding a MemoryDependenceAnalysis pass to a > Module > Pass i created, it gives me the following error when i add > (Info.addRequired<MemoryDependenceAnalysis>();) it in the > getAnalysisUsage(AnalysisUsage &Info) function. > If MemoryDependenceAnalysis requires any module
2019 Aug 22
3
[RFC] Adding target-specific overrides for Indirect Call Promotion
<font face="Verdana,Arial,Helvetica,sans-serif" size="2"><div><div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">Hi,</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial,
2011 Jan 25
2
[LLVMdev] Update PHINode after extracting code
Hi all, I have problem with ExtractCodeRegion (CodeExtractor.cpp). My original program is as follows. bb: ... %tmp.15 = load %struct.MYSQL_ROWS** %3, align 4 ... bb1: ... %tmp.1 = load %struct.MYSQL_ROWS** %6, align 4 ... bb4: ; preds = %bb1, %bb, %entry %tmp.0 = phi %struct.MYSQL_ROWS* [ null, %entry ], [ %tmp.15, %bb ], [ %tmp.1, %bb1 ]
2010 Oct 20
0
[LLVMdev] Pass Incompatibility
On Oct 20, 2010, at 4:05 AM, Luke Dalessandro wrote: > If I register DemoteRegisterToMemoryID first I'd expect this to work. > then I get this assert during code extraction. > > CodeExtractor.cpp:681: llvm::Function*<unnamed>::CodeExtractor::ExtractCodeRegion(const std::vector<llvm::BasicBlock*, std::allocator<llvm::BasicBlock*> >&): Assertion
2009 Jan 02
3
[LLVMdev] Private headers and testing
2009/1/2 Chris Lattner <clattner at apple.com> > On Jan 2, 2009, at 12:21 PM, Misha Brukman wrote: > Do you have a specific example of a unit test that would need these? I > really think these should stay private. > Let's take lib/Transforms/Utils/CodeExtractor.cpp . The public interface for it is in include/llvm/Transform/Utils/FunctionUtils.h, with only the high-level
2012 Apr 03
1
[LLVMdev] Extracting loop body
Hi, I've seen this question asked before but I haven't seen an answer.. I would like to extract the body of a (for) loop into a new function so I can do some transformations. The function ExtractCodeRegion seemed like a good candidate and I've got it to sort of work. My problem is that ExtractCodeRegion creates a function that still contains a loop. I was able to eliminate the loop
2011 Jan 27
0
[LLVMdev] Update PHINode after extracting code
I guess I didn't have a clear question. Suppose we have BB1 and BB2 both point to BB3. BB1 has variable x. BB2 also as variable x. BB3 will have PHINode for x with 2 value from BB1 and BB2. BB1 BB2 \ / BB3 Now if BB1 and BB2 is extracted into a function (using ExtractCodeRegion), they will be replaced by a basic block called codeRepl (which has a call to the extracted