Displaying 18 results from an estimated 18 matches for "basicblockplacement".
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 <hello...
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 to
r...
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 retur...
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 some...
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 <pa...
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=11, a...
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 series...
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 oppor...
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?
Good su...
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]= "Inte...
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>
>...