Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] GSOC Project Proposal: Profile-guided optimizations"
2011 Mar 30
0
[LLVMdev] GSoC: Profile-guided inlining and block positioning
1. Summary
I will implement two optimizations in the LLVM compiler, both based on
runtime profile information: an inlining mechanism that takes the call
frequency into consideration, and a better basic block placement algorithm.
2. The project
LLVM now includes an efficient framework [1] for instrumenting an
application and collecting edge and path profile information. Profile-guided
2011 Feb 21
0
[LLVMdev] Question about Value Range Propagation
Hi, Gratian,
I did that Summer of Code. I used a different algorithm than Patterson's.
It is a constraint system by Su and Wagner, which is more modern, and has
some advantages over older works. In particular, it is non-iterative. I
found it very hard to compare it with Patterson's analysis, because there is
not much description in that paper. However, there is another paper, by
2011 Feb 20
2
[LLVMdev] Question about Value Range Propagation
Hi!
I'm a student who would like to participate on Google SOC for LLVM, and was
thinking about what project to pick. I saw on the "Open projects" page that
Value Range Propagation is not implemented and thought about doing it, based
on a paper by Patterson (it's also used by GCC). But then I saw that last
year someone did a Range Analysis pass that seems to do pretty much the
2010 Dec 28
0
[LLVMdev] Missed optimization opportunity
On Dec 28, 2010, at 9:39 AM, Lup Gratian wrote:
> I recently downloaded LLVM 2.8 and started playing with the optimizations a bit.
> I saw something curious while trying the following function:
>
> int g(unsigned int a) {
> unsigned int c[100];
> c[10] = a;
> c[11] = a;
> unsigned int b = c[10] + c[11];
>
> if(b > a*2) a = 4;
> else a = 8;
>
2010 Dec 29
1
[LLVMdev] Missed optimization opportunity
On Dec 28, 2010, at 12:48 PM, Chris Lattner wrote:
> On Dec 28, 2010, at 9:39 AM, Lup Gratian wrote:
>> I find it strange that it hasn't found that %add and %mul have the same value, %cmp would be then false, selecting and returning 15. If 'a' is replaced by a constant it works.
>
> You're right, that is a missed optimization. I added it to the missed optimization
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 returns a
ProfileInfo object pointer.
2009 Mar 06
0
[LLVMdev] Garbage collection
BTW, have you look at MMTk (http://jikesrvm.org/MMTk) ? This is the
garbage collection library that underlies JikesRVM. It is a
'research-oriented' implementation, meaning that it has lots of
configurable settings and plugin interfaces for implementing a broad
range of collection algorithms. I was amused by the fact that "building
a hybrid copying/mark-sweep collector" is
2005 Feb 07
0
[LLVMdev] Segmentation Fault(Modifying BasicBlockPlacement.cpp)
Thanks a lot for replying Chris,
I m trying to randomize the blocks in a program.I generate a random number( between the
current "InsertPos" and the last block), and then iterate through the list of basicblocks , picking up block with position equal to that of the random number and place it into the current InsertPos and increment InsertPos.
Running it like this:
2010 Dec 28
2
[LLVMdev] Missed optimization opportunity
I recently downloaded LLVM 2.8 and started playing with the optimizations a
bit.
I saw something curious while trying the following function:
int g(unsigned int a) {
unsigned int c[100];
c[10] = a;
c[11] = a;
unsigned int b = c[10] + c[11];
if(b > a*2) a = 4;
else a = 8;
return a + 7;
}
The generated code, with -O3 activated, is
define i32 @g(i32 a) nounwind readnone {
%add = shl i32
2013 Oct 08
0
[LLVMdev] LLVM Pass usable by all types of Passes
Hi
I am modifying LLVM to enable runtime feedback directed optimizations. I
have modified the instrumentation part of LLVM to 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,
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
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
2011 Mar 11
0
[LLVMdev] Call profiling and function placement in object file
Hi!
I'm interested in profile-guided optimizations and was looking at the
functionality LLVM provides. I have two questions:
- can the current (optimal) edge profiling be used to determine the number
of times a function calls another one? I need to know not only how many
times a function was called, but also by whom. Or to say in in a different
way, can a profile edge be formed from blocks
2009 Sep 10
0
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
> What does "llc -debug-pass=Structure" say? Is the ProfileLoaderPass
> really the last pass to touch the ProfileInfo before you are using it?
Below is the sequence of passes that I see. Although the
NoProfileInfo pass is being run, it should be subsequently overridden
by ProfileInfoLoaderPass (LoaderPass) correct?
Target Data Layout
Create Garbage Collector Module Metadata
2009 Sep 10
2
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
Shuguang Feng wrote:
>> What does "llc -debug-pass=Structure" say? Is the ProfileLoaderPass
>> really the last pass to touch the ProfileInfo before you are using it?
>
> Below is the sequence of passes that I see. Although the
> NoProfileInfo pass is being run, it should be subsequently overridden
> by ProfileInfoLoaderPass (LoaderPass) correct?
Yes.
>
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
2017 Sep 19
0
RFC: Trace-based layout.
> On Sep 18, 2017, at 5:17 PM, Kyle Butt <iteratee at google.com> wrote:
>
>
>
> On Mon, Sep 18, 2017 at 1:16 PM, Andrew Trick <atrick at apple.com <mailto:atrick at apple.com>> wrote:
>
>> On Sep 14, 2017, at 6:53 PM, Kyle Butt via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>> I plan on
2004 Oct 10
1
[LLVMdev] Re: Hide visible string in variable
Hi,
> On Mon, 27 Sep 2004, Zhang Qiuyu wrote:
>
> > 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
2002 Oct 08
2
Frailty and coxph
Does someone know the rules by which 'coxph' returns 'frail', the
predicted frailty terms? In my test function:
-----------------------------------------------
fr <- function(){
#testing(frailty terms in 'survival'
require(survival)
dat <- data.frame(exit = 1:6,
event = rep(1, 6),
x = rep(c(0, 1), 3),
2009 Feb 27
2
[LLVMdev] Garbage collection
On Feb 26, 2009, at 12:25, Chris Lattner wrote:
> On Feb 26, 2009, at 12:02 AM, Talin wrote:
>
>> With the increasing number of LLVM-based VMs and other projects, I
>> suspect that the desire for more comprehensive garbage collection
>> support in LLVM is only going to increase.
>
> What you see in LLVM right now is really only the second step of the
>