Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] Enumerating machine functions"
2011 Apr 02
0
[LLVMdev] Enumerating machine functions
Hi Lorenzo,
> I have a doubt about running passes on machine code. We are
> implementing a transformation on machine code that consists in
> analyzing a series of functions, extracting some aggregate properties,
> and then using the extracted information to optimize each functions.
>
> I am not familiar with LLVM internals, so I am not sure how to
> implement each step. From
2011 Apr 05
2
[LLVMdev] Enumerating machine functions
Hi Duncan,
thanks for your reply. So if I understand correctly MachineFunction
objects are converted to machine code one at a time, and each object
is "thrown away" after having been converted. Seems that the only way
to achieve what I have in mind is to write the machine code for all
the functions to a file, and then load it and process it in a separate
tool (possibly based on
2011 Apr 06
0
[LLVMdev] Enumerating machine functions
Hi Lorenzo,
> thanks for your reply. So if I understand correctly MachineFunction
> objects are converted to machine code one at a time, and each object
> is "thrown away" after having been converted.
actually that's not quite what I meant. I was saying that the code
generators must not assume that the whole module is available. For
example, it would be wrong when
2016 Mar 16
3
[GSoC 2016] Need more info on Add a MachineModulePass
Hello,
Probably this may be too late to start thinking about this project but I
think this is particularly useful feature for LLVM. A quick use I can think
of this is Implementing Inter-procedural Register Allocation ( for Research
purpose ).
I have start looking at the code for MachineFunctionPass, I think currently
MachineModule class is not available ( the project work will include that )
but
2009 Aug 02
2
[LLVMdev] code-altering Passes for llc
Greetinigs,
I am extending llc to include runtime checks for calls (in X86). So a call
'call target' is altered to look like this:
[some check]
jne error_function
call target
I've done this by implementing a MachineFunctionPass that is instantiated
and added to the PassManager in X86TargetMachine::addPreRegAlloc.
In order to create the jne-instruction I need some BasicBlock
2016 Mar 18
2
[GSoC 2016] Need more info on Add a MachineModulePass
*Vivek Pandya*
On Fri, Mar 18, 2016 at 10:03 PM, Quentin Colombet <qcolombet at apple.com>
wrote:
> Hi Vivek,
>
> On Mar 16, 2016, at 1:00 PM, vivek pandya via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
> Hello,
>
> Probably this may be too late to start thinking about this project but I
> think this is particularly useful feature for LLVM.
>
2009 Nov 07
2
[LLVMdev] MachineFunction::get
Hi
I have a ModulePass in LLC that runs after most of codegen completes,
right before OBJ emission. I want the ModulePass to iterate over all
MachineFunctions, emulating them. I used to do this by iterating over
all Module Function's, and using MachineFunction::get() to get the
MachineFunction associated with said Function.
In LLVM 2.6, MachineFunction::get() is gone. What is the new way
2009 Aug 02
0
[LLVMdev] code-altering Passes for llc
On Aug 2, 2009, at 7:09 AM, Artjom Kochtchi wrote:
>
> Greetinigs,
>
> I am extending llc to include runtime checks for calls (in X86). So
> a call
> 'call target' is altered to look like this:
>
> [some check]
> jne error_function
> call target
>
> I've done this by implementing a MachineFunctionPass that is
> instantiated
> and added
2009 Aug 03
2
[LLVMdev] code-altering Passes for llc
Dan Gohman-2 wrote:
>
> You don't need a ModulePass to modify a CFG. A MachineFunctionPass
> is fine for this.
>
Well, okay. But I need to insert some BasicBlock that contains the error
handling (that the runtime check jumpts to on failure). Just putting another
MachineBasicBlock at the beginning of some arbitrary MachineFunction doesn't
seem to be the right way to go, does
2013 Jun 10
3
[LLVMdev] Whole program alias analysis in backend
Hello everyone,
we are planning to implement a stronger alias analysis
for backend, because e.g. for VLIW architectures, this is our main
performance limitation.
I would have 2 questions regarding this.
I know that backend processes one function at a time,
is it somehow possible to do there a whole program analysis,
or could you give me some guidelines?
Which alias analysis algorithm
2012 Feb 09
1
[LLVMdev] Questions on MachineFunctionPass and relaxation of pcrel calls (ARM/thumb2)
While implementing a MachineFunctionPass that runs as part of the
ARMTargetMachine::addPreEmitPass(), I've run into a problem.
This particular MFP can drastically increase the size (in MachineInstr
count) of the MachineFunction that it processes, so much so that
there is a real danger of pcrel calls and branches that use immediate
offsets to not be sufficient.
A naive test confirmed that
2018 May 29
2
Getting stack size of compiled functions from LLVM
Hi all,
I'm trying to get the amount of stack memory used by the functions I am
JIT compiling with LLVM.
I have a host C++ program, and I want to be able to access the stack
size from the host C++ program.
I see in PrologEpilogInserter.cpp that the computed stack size is read
from the MachineFunction corresponding to a Function, in order to issue
a warning if the stack size is too large.
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
2007 Aug 20
2
[LLVMdev] ocaml+llvm
On Aug 14, 2007, at 4:35 AM, Gordon Henriksen wrote:
> On Aug 14, 2007, at 06:24, Gordon Henriksen wrote:
>
>> The two major problems I had really boil down to identifying GC
>> points in machine code and statically identifying live roots at
>> those GC points, both problems common to many collection
>> techniques. Looking at the problem from that perspective
2013 Jun 10
0
[LLVMdev] Whole program alias analysis in backend
Hi,
I know that backend processes one function at a time,
> is it somehow possible to do there a whole program analysis,
> or could you give me some guidelines?
>
There are different kinds of LLVM passes: Those that process a function at
a time (FunctionPass), but also those that work on the call graph
(CallGraphSCCPass) or on an entire module (ModulePass). These are described
in the
2006 Apr 13
1
[LLVMdev] standalone llvm
On Wed, 12 Apr 2006 22:48:16 -0500
Patrick Meredith <pmeredit at uiuc.edu> wrote:
>
> On Apr 12, 2006, at 10:23 PM, Simon Burton wrote:
>
> >
> > Is it possible to get llvm to generate native machine code
> > without using gcc and friends ? Do I use lli ?
>
> llc. llc --help lists all the options. it compiles llvm bytecode
> files.
It seems this
2015 Nov 03
2
Confused on how to do a machinefunction pass
Hi everyone,
I am a LLVM newbie. I need to write a machinefunction pass for my project.
This should be an analyzer of the machine code to do some profiling. I have
written a couple of function passes for front end, but it seems they are
completely different. I searched through forum and llvm documents, but
couldn't find anything useful or questions were unanswered. Can anyone
reference me to
2013 Mar 15
2
[LLVMdev] write a simple MachineFunctionPass
Hello everyone,
I have written several complex passes till now, but I cannot write a
MachineFunctionPass pass. It just gives me segfault. Hence I reduced the
pass to the following form :
using namespace llvm;
namespace {
class CFGexplorator : public MachineFunctionPass {
public:
static char ID; // Pass identification, replacement for typeid
CFGexplorator() : MachineFunctionPass(ID)
2007 Jul 11
3
[LLVMdev] Pluggable Register Coalescers
On Jul 11, 2007, at 11:39 AM, David Greene wrote:
> On Wednesday 11 July 2007 12:41, Tanya M. Lattner wrote:
>
>> I think the coalescer should be flexible enough to be run
>> independent of
>> the register allocator. For example, you may want to expose the
>> copies
>> induced by transforming out of SSA to the scheduler. If the
>> scheduler is
2015 Nov 04
2
Confused on how to do a machinefunction pass
Dear John,
Thank you so much for your help. I looked at those documents. Could you
kindly answer the following questions:
Does it mean that I have to make my own backend target in order to write a
machine pass even if I want to run a simple machinefunction pass? for
example,if I want my pass to get MIPS instructions as an input, I have to
copy all the files from mips target and add a file to it