search for: basicblockplac

Displaying 18 results from an estimated 18 matches for "basicblockplac".

2005 Feb 07
0
[LLVMdev] Segmentation Fault(Modifying BasicBlockPlacement.cpp)
Hi, I have been trying to randomize blocks in a program and modified "BasicBlockPlacement.cpp" for the purpose but getting segmentation fault.I am not able to determine the problem.Can anyone please decrypt these error messages or suggest what might be the possible cause of failure? ----------------------------------------------------------------------------------------------...
2005 Feb 07
0
[LLVMdev] Segmentation Fault(Modifying BasicBlockPlacement.cpp)
...------------------------------ opt -load /home/tsharma/ankur/llvm/Debug/lib/LLVMHello.so -hello <helloprog.bc> /dev/null --------------------------------------------------------------------- I wish to make it more sophisticated but initially was trying to see whether a simple modification to BasicBlockPlacement works or not. Also when I try to run the -block-placement pass , I get the following message: --------------------------------------------------------------------------------- [tsharma at strauss programs]$ opt -load /home/tsharma/ankur/llvm/Debug/lib/LLVMScalarOpts.so -block-placement <...
2005 Feb 07
2
[LLVMdev] Segmentation Fault(Modifying BasicBlockPlacement.cpp)
On Mon, 7 Feb 2005, Tanu Sharma wrote: > I have been trying to randomize blocks in a program and modified > "BasicBlockPlacement.cpp" for the purpose but getting segmentation > fault.I am not able to determine the problem.Can anyone please decrypt > these error messages or suggest what might be the possible cause of > failure? I'd be happy to fix this, but I need a proper testcase and instructions...
2008 Nov 02
0
[LLVMdev] Strange behaviour with profile data loading
Hello: I am following the example code in BasicBlockPlacement.cpp. That transformation relies on basic block execution frequencies that have been read from a profile file. This is how it loads the profile data: 1. In getAnalysisUsage, it calls addRequired<ProfileInfo>(), and 2. In the runOnFunction, it calls getAnalysis<ProfileInfo>() which...
2013 Oct 08
0
[LLVMdev] LLVM Pass usable by all types of Passes
...keep instrumentation data in some pre-setup structures in memory and use the JIT to recompile some of the hot functions with profiling information. I need an analysis pass which loads the profiling data in memory and can be used by different optimization passes in LLVM, e.g. loopunroller, inliner, basicblockplacement, etc . Currently, I have an analysis pass that derives from a functionpass that loads the instrumentation data in memory and the basicblockplacement pass can then use that data as guide to place the blocks. However, when i add the same pass as an analysis dependence to the loopunroller, i get...
2009 Sep 10
0
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
...n the BasicBlock and the target assembly in the MachineBasicBlock. > You are getting the PI by getAnalysis<ProfileInfo>() I presume? Is this > really the instance created by ProfileLoaderPass? Yes, I have "PI = &getAnalysis<ProfileInfo>()" in my code (modeled after BasicBlockPlacement.cpp). However, when I run gdb the value of the Pass* pointer returned by createProfileLoaderPass() does not match the value of PI (of type ProfileInfo*) that I see inside my MachineFunctionPass. The abbreviated output of gdb is found below: Breakpoint 1, main (argc=11, argv=0xbfffd394) at &...
2005 Feb 05
3
[LLVMdev] Improving Makefile.rules header install rules [PATCH]
>> Is attached patch acceptable? > > Looks great, applied, thanks! > http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050131/023931.html Thanks! >> Also I have in Makefile.rules (but not include in patch) some >> modification for simplify used common Makefile.rules in LLVM projects and >> non-LLVM project (guarding some LLVM specific parts by ifdef
2009 Sep 10
2
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
...ssembly in the > MachineBasicBlock. > >> You are getting the PI by getAnalysis<ProfileInfo>() I presume? Is this >> really the instance created by ProfileLoaderPass? > > Yes, I have "PI = &getAnalysis<ProfileInfo>()" in my code (modeled > after BasicBlockPlacement.cpp). However, when I run gdb the value of > the Pass* pointer returned by createProfileLoaderPass() does not match > the value of PI (of type ProfileInfo*) that I see inside my > MachineFunctionPass. The abbreviated output of gdb is found below: > > Breakpoint 1, main (argc=...
2009 Sep 10
1
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
Hi, Shuguang Feng wrote: > Thanks for such a rapid response! > >> Don't know about Passes in the backend, but this could be a problem of >> an FunctionPassManager trying to use a ModulePass. > > I manually applied the patch you provided for llc (I'm using the 2.5 > release of LLVM not ToT) and it fixed my compilation error. When your > patch replaced the
2011 Mar 30
0
[LLVMdev] GSoC: Profile-guided inlining and block positioning
...pplication and collecting edge and path profile information. Profile-guided optimizations present an opportunity for improving the performance of the application in a significant way, but until now no real optimization was developed/adapted to take advantage of this profile information (there is a* BasicBlockPlacement* pass, but it can be considered naïve). The first part of my project consists in implementing a function inlining pass that takes advantage of function call frequency, if available. Function inlining is one of the most important optimizations nowadays, reducing call overhead and enhancing a s...
2011 Mar 23
0
[LLVMdev] GSOC Project Proposal: Profile-guided optimizations
...analysis. The algorithm is a variation of the one found in JikesRVM, of course adapted and tuned for LLVM. According to the paper, the performance of the application can be up to 57% better than with inlining done without any profile info. The second optimization is intended to replace the current BasicBlockPlacement pass, which uses a naive algorithm, with an algorithm that performs better in practice. It will be based on Algo2 from Pettis&Hansen, while the current one is Algo1. I think this is more useful than forming superblocks, because they may actually degrade the performance if new optimization...
2004 Dec 14
0
[LLVMdev] Randomizing Basic Blocks ?
Hello, I have been trying to randomize the basic blocks of a program in memory and disk , keeping the control flow intact. Is there any easy way provided in llvm to achieve that? any other suggestions? Thanks Tanu __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com -------------- next part
2009 Sep 10
0
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
> It *is* allowed to access ModulePass analysis information from an > FunctionPass? BasicBlockPlacement (a FunctionPass) also accesses the profile information and I assumed it worked (but haven't independently verified this). > Can you try to manually override the PI value in the > MyCodeGenPass::runOnMachineFunction() to the value seen in llc and then > access the ProfileInfo? Go...
2009 Sep 09
2
[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend.
Thanks for such a rapid response! > Don't know about Passes in the backend, but this could be a problem of > an FunctionPassManager trying to use a ModulePass. I manually applied the patch you provided for llc (I'm using the 2.5 release of LLVM not ToT) and it fixed my compilation error. When your patch replaced the FunctionPassManager used by llc with a PassManager the error went
2004 Sep 28
1
[LLVMdev] How could I hide the visible string?
Hi, Is there a way to modify the string such as char a or char b? Could I use the way like "Replace an instruction with another Value" in Programm Manual? In fact, what I am interested in is string with visible expression, not all string, and I am trying to hide the orignal string by using simple way like XOR.. Is there a way to reorder the basic blocks? Thanks. Qiuyu C Source
2004 Oct 10
1
[LLVMdev] Re: Hide visible string in variable
...^RANDMON; } For llvm, %a = internal global [20 x sbyte] c"global string test\0A\00" Would you mind telling me how to do it. Qiuyu > > > Is there a way to reorder the basic blocks? > > Yes, for an example pass that does this, take a look at > lib/Transforms/Scalar/BasicBlockPlacement.cpp > > -Chris > > > C Source code: > > > > #include <stdio.h> > > #include <stdlib.h> > > > > char a[20]="global string test\n"; > > > > int main( int argc , char *argv[]){ > > > > char b[20]= &quot...
2004 Dec 12
5
[LLVMdev] LLVM_LIB_SEARCH_PATH
Hello, I need to solicit your opinion about something. I'm toying with the idea of getting rid of LLVM_LIB_SEARCH_PATH. Right now the linkers will use this environment variable if it specifies a single directory. It will look in that directory to find libraries when things like -lc or -lcrtend are specified on the command line. Right now, the only known place this is useful to set to is the
2004 Dec 03
2
[LLVMdev] [Fwd: Updated LLVM Visual Studio project files]
...gt; </Filter> > <Filter > Name="Scalar" > Filter=""> > <File > RelativePath="..\..\lib\Transforms\Scalar\ADCE.cpp"> > </File> > <File > RelativePath="..\..\lib\Transforms\Scalar\BasicBlockPlacement.cpp"> > </File> > <File > RelativePath="..\..\lib\Transforms\Scalar\ConstantProp.cpp"> > </File> > <File > RelativePath="..\..\lib\Transforms\Scalar\CorrelatedExprs.cpp"> > </File> >...