Displaying 20 results from an estimated 8000 matches similar to: "Confused on how to do a machinefunction pass"
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
2015 Nov 04
3
Confused on how to do a machinefunction pass
Thank you so much.
That helped alot.
Fami
On Wed, Nov 4, 2015 at 9:40 AM, John Criswell <jtcriswel at gmail.com> wrote:
> On 11/3/15 7:54 PM, fateme Hoseini wrote:
>
> 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
2015 Nov 17
2
Confused on how to do a machinefunction pass
Hi,
So, I run my pass in X86 target with llc command and it printed out
"hello****". Now I am trying to do the same pass for ARM target. So I did
exactly what I did for X86 as mentioned in my previous posts. When I run
the following command:
llc -march=arm test.ll -o test
nothing prints out. I did the same for MIPS target too and I got no result.
Can anyone tell me what I'm doing
2015 Nov 17
2
Confused on how to do a machinefunction pass
Yes, I have done exactly the same. The wawanalyzer is the same. I changed
ARM.h and ARMTargetMachine.cpp in the tager/arm folder. then I make
tool/llc and lib folder.
On Tue, Nov 17, 2015 at 10:55 AM, John Criswell <jtcriswel at gmail.com> wrote:
> On 11/17/15 12:16 AM, fateme Hoseini via llvm-dev wrote:
>
> Hi,
> So, I run my pass in X86 target with llc command and it printed
2017 Jan 09
4
Find instruction's offset
Hi,
Is there a way to get instruction's offset at compile time with llvm for
ARM?
I am trying to create a map between instructions at compile time and this
run-time info. Since PC is a relative value, I am trying to use the
instruction's offset as a constant property of instruction to create this
map. I think offset information should be available to create the
executable, if so where 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)
2011 Jul 08
2
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
Hi list,
I am trying to implement the technique outlined in the following paper:
http://www.cs.umd.edu/~mwh/papers/martin10ownership.html in LLVM. My
approach so far involves the use of an IR level transform (via
runOnFunction) to identify memory loads and stores. One thing I need to do
(I am pretty sure I need to do it at least) is automatically mark each stack
frame as "owned" by the
2011 Jul 08
2
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
I investigated the MachineFunctionPass (that is runOnMachineFunction, I
believe). In my experimentation it didn't seem that the MachineFrameInfo was
populated (it consistently said that the stack depth was 0, for example). I
might have been doing something wrong?
On Fri, Jul 8, 2011 at 5:21 PM, John Criswell <criswell at illinois.edu> wrote:
> On 7/8/11 4:09 PM, Andrew Ruef wrote:
2013 Mar 15
0
[LLVMdev] write a simple MachineFunctionPass
I found that : "Code generator passes are registered and initialized
specially by TargetMachine::addPassesToEmitFile and similar routines, so
they cannot generally be run from the *opt* or *bugpoint* commands."...So
how I can run a MachineFunctionPass? In the end, I just want to apply a DFS
on a CFG of a function. And I need oriented edges and wanted to use
2016 Jan 29
1
MachineModule pass
Hello everyone,
As I mentioned in my previous posts,I am using a machinefunction pass to
find all the loops in the program and do some analysis on them. I have
completed my pass now and it works correctly. but the only issue is that,I
have noticed that if I have two functions in my program, and one of them is
part of the loop for another one ,by using runonmachinefunction(), I will
get one loop
2011 Jul 08
0
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
On 7/8/11 4:09 PM, Andrew Ruef wrote:
> Hi list,
>
> I am trying to implement the technique outlined in the following
> paper: http://www.cs.umd.edu/~mwh/papers/martin10ownership.html
> <http://www.cs.umd.edu/%7Emwh/papers/martin10ownership.html> in LLVM.
> My approach so far involves the use of an IR level transform (via
> runOnFunction) to identify memory loads and
2016 Apr 05
3
Add Call instruction in IR for a non-existing function
Hello everyone,
I am trying to add checkpoints to my IR code. In order to do that I need to
add this instruction:
call void @m5_checkpoint(i64 0, i64 0)
to some of the basic blocks in my benchmark.
m5_checkpoint is a function defined for checkpointing in another simulator
and is not included in my benchmark source code. So I need to create this
instruction and I couldn't figure out how to do
2011 Jul 08
0
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
On 7/8/11 4:49 PM, Andrew Ruef wrote:
> I investigated the MachineFunctionPass (that is runOnMachineFunction,
> I believe).
A MachineFunctionPass is a class that you inherit from to write a
transform that operates on MachineInstrs (i.e., native code instructions
generated from the LLVM IR instructions). The runOnMachineFunction()
method is its entry point (i.e., the code generator
2015 Nov 02
2
beginner problem with cross compilation
Hi everyone,
I am a new commer and I 'm tying to use LLVM to cross compile a code. I
want to cross compile to MIPS and the host is the default x86. The more I
read the document the more confused I get. I see documents on
cross-compiling to ARM. But some install some gcc packages, while some use
clang. I don't know where to start and how to do it.
Is this just enough to run a command line
2016 Oct 17
2
Assertion fail/crash in X86FrameLowering::GetFrameIndexReference SEH
Hi,
I'm gettign an assertion fail/crash in
X86FrameLowering::GetFrameIndexReference when compiling the following
bitcode:
https://gist.github.com/carlokok/868cddebeb9acc8ccbac6253de0480b0
I tried removing the llvm.frameaddres calls but that's not it, where can
I start looking for what my mistake here is? Code seems to verify just fine.
; #0 0x00e1afe8
2004 Oct 19
2
[LLVMdev] Question about MachineFunction Pass
Hi,
I wrote a machinefunction pass to try to see what's going on. Does it mean that it is target machine dependent pass, like x86? However, after compile it, I found there wasnot command option I registered. I used regular way to do it like RegisterOpt <...> X("... ", "... "), but I cannot see the optimized option when I use opt -load ../../lib/Debug/libxxx.so
2015 Dec 19
2
get instruction destination register
Hello everyone,
I am trying to write a code to do the following:
1. Get an ARM machine instruction
2. Find destination register of that instruction that has been written
3. set a bit in a vector, according to that register number. (Since it's
ARM, I have a 15 bit vector)
It means if I have :
add r0, r1, r0
I want to get r0 as dest reg and set the index 0 of my vector to 1.
I get my machine
2010 Apr 12
1
[LLVMdev] Question. about Machinefunction pass, funtion Prolog/Epilog code, stack frame
I am new to the LLVM, and need some help with this points.
1. how can we add special code for the Prolog/Epilog for some
certain functions, this should be done with machinefunction pass, rt?
2. Basically, I want to get the function stack frame, that is the size and
the initial position.
I found
int64_t llvm::MachineFrameInfo::getObjectSize ( int *ObjectIdx* )
const[inline]
This method is
2016 Oct 19
2
Assertion fail/crash in X86FrameLowering::GetFrameIndexReference SEH
I think r262546 introduced the assumption that allocas are used exactly
once with catchpad. It seems easy to fix, though.
On Mon, Oct 17, 2016 at 11:51 PM, Carlo Kok via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> This turned out to be related to reusing the local used in the catchpad,
> for example given the following c++ code:
>
> extern void rthrow();
>
> int
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