Displaying 20 results from an estimated 10000 matches similar to: "[Newbie question] Extracting execution cycles from basic blocks"
2008 Sep 30
2
[LLVMdev] Inserting MachineBasicBlock(s) before a MachineBasicBlock
I want to be able to do two things with LLVM (both just before code
emission):
1. Insert a MachineBasicBlock just before a MachineBasicBlock.
There is a function called AddPredecessor(). However, the comment says that
it does not update the actual CFG. I want to redirect all CFG edges that are
incoming to this MachineBasicBlock to the new one I create, and add just one
outgoing edge (no branch)
2008 Oct 15
2
[LLVMdev] Forcing basic blocks to end with no more than one branch instruction?
I'm analyzing the basic blocks of MachineInstructions that LLVM
generates for my TargetMachine to try to reconstruct high-level flow
control.
I misunderstood the isTerminator property of an instruction to mean
that it had to be at the end of a basic block, but now I've seen
blocks that end with a conditional branch followed by an unconditional
branch.
I'm sure this depends
2008 Oct 15
0
[LLVMdev] Forcing basic blocks to end with no more than one branch instruction?
On Oct 15, 2008, at 11:38 AMPDT, Daniel M Gessel wrote:
> I'm analyzing the basic blocks of MachineInstructions that LLVM
> generates for my TargetMachine to try to reconstruct high-level flow
> control.
>
> I misunderstood the isTerminator property of an instruction to mean
> that it had to be at the end of a basic block, but now I've seen
> blocks that end with a
2009 Jul 12
0
[LLVMdev] [PATCH] Support asm comment output
On Jul 10, 2009, at 3:05 PM, David Greene wrote:
> Here's the first of several patches to get comments into asm
> output. This one
> adds comment information to MachineInstructions and outputs it in the
> generated AsmPrinters. This includes TableGen work to trigger the
> comment
> output in the right places.
A couple of things are important to discuss:
+
2007 Aug 16
0
[LLVMdev] Changing basic blocks
Hi all,
A week agoo I sent an email about reordering instruction in basicblocks.
And ... I was able to do it. I guess so, at least.
Now when compiling my test program, llc dumps:
--
llc: /home/mentat/llvm_work/llvm/lib/CodeGen/LiveVariables.cpp:155: void
llvm::LiveVariables::HandleVirtRegUse(llvm::LiveVariables::VarInfo&,
llvm::MachineBasicBlock*, llvm::MachineInstr*): Assertion
2011 Jun 18
0
[LLVMdev] Custom Static Scheduling
Hi,
On 06/18/2011 06:26 AM, Benjamin Müller wrote:
> i created a Function Pass to retrieve the Control/Data Flow Graph from
> a simple program,
> now i would like to statically schedule the Instructions. Is this
> possible by starting to modify the SelectionDAG Files ?
> Or can i even build a "standalone" custom scheduler?
> Thank you very much for any tipps.
You
2010 Apr 15
1
[LLVMdev] Question About Cloning Machine Basic Block
Hello,
I am trying to clone a machine basic block when I ran into some issues, where I am not able to make some headway. Any of yours help is highly appreciated here:
My question is about Machine Basic Block Duplication:
- Is there a utility to clone a MachineBasicBlock in LLVM? I found utility to clone machineInstrs, but couldn’t find similar utility for MachineBasicBlock. So, I
2010 Nov 05
0
[LLVMdev] Basic block liveouts
Because I feel bad for giving a non-answer:
An easy way to find if a virtual register is alive after the basic block is
to
While iterating over the virtual registers
- Check to see if the virtual register's "next" value exists outside of the
basic block.
for instance:
std::vector<unsigned> findLiveOut( MachineBasicBlock * mbb ) {
std::vector<unsigned> liveout;
for(
2017 Nov 11
2
Update control flow graph when splitting a machine basic block?
Thank you for your reply!
> Every MachineBasicBlock has a list of successors; you can access it with
> the successors() accessor. That's what you should be using for any CFG
> analysis.
I am aware of these methods of class MachineBasicBlock, which allows one to access a MachineBasicBlock's successors and predecessors in the CFG.
But the CFG itself may no longer be valid if a
2013 Jul 09
0
[LLVMdev] Basic instructions for LLVM and Control Flow graph extraction
This isn't by itself too difficult, as I have done something similar recently, but does require some modifications of LLVM.
The basic algorithm is simple:
For each ISA instruction, create a new MachineInstr and add it to the current MachineBasicBlock.
At each branch instruction, add it to the current MBB and add it to a list and create a new MBB.
After creating your list of MBB, iterate
2015 Aug 12
3
[LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
Hi all,
An early implementation of extending debug ranges and providing multiple
location support is done here: http://reviews.llvm.org/D11933
Design document:
https://docs.google.com/document/d/1noDVWTvTWBdYdweICPBwvwyt8QvX4KHl7j3XKNSg1nE/edit?usp=sharing
On Jun 24, 2015, at 12:12 PM, Alexey Samsonov <vonosmas at gmail.com> wrote:
Hi Adrian,
You might want to take a look at abandoned
2013 May 30
2
[LLVMdev] How to associate extra comments to a MachineInstruction ?
> From: Eric Christopher
> Subject: Re: [LLVMdev] How to associate extra comments to a
> MachineInstruction ?
>
> Should be spelled like this yes?
>
> Asm->OutStreamer.AddComment("foo")
> Asm->EmitFoo();
>
> -eric
That should work at the moment that you are emitting the instructions.
But what would you do when you are manipulating a
2013 Sep 11
0
[LLVMdev] Extracting libmachine from libcodegen (bug 1121)
On Sep 5, 2013, at 5:15 PM, Ken Dyck <kd at kendyck.com> wrote:
> Hi,
>
> One of the long-standing code clean-up bugs in Bugzilla is to extract
> the Machine* code from the CodeGen library into a separate one, on
> which CodeGen depends (
> http://llvm.org/bugs/show_bug.cgi?id=1121).
>
> I'd like to start working on this. The general approach I'm planning
2013 May 30
0
[LLVMdev] How to associate extra comments to a MachineInstruction ?
On Thu, May 30, 2013 at 2:16 PM, Jeroen Dobbelaere
<Jeroen.Dobbelaere at synopsys.com> wrote:
>> From: Eric Christopher
>> Subject: Re: [LLVMdev] How to associate extra comments to a
>> MachineInstruction ?
>>
>> Should be spelled like this yes?
>>
>> Asm->OutStreamer.AddComment("foo")
>> Asm->EmitFoo();
>>
>> -eric
2009 Jul 10
3
[LLVMdev] [PATCH] Support asm comment output
Here's the first of several patches to get comments into asm output. This one
adds comment information to MachineInstructions and outputs it in the
generated AsmPrinters. This includes TableGen work to trigger the comment
output in the right places.
Please review and comment.
-Dave
-------------- next part --------------
A non-text attachment was
2010 Apr 15
0
[LLVMdev] Question About Cloning Machine Basic Block
On Wed, 2010-04-14 at 17:30 -0700, Hisham Chowdhury wrote:
>
>
>
> - Is there a utility to clone a MachineBasicBlock in LLVM
>
>
>
>
>
>
There is CloneBasicBlock routine
in ./lib/Transforms/Utils/CloneFunction.cpp
- Sanjiv
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu
2010 Nov 05
4
[LLVMdev] Basic block liveouts
Is there an easy way to obtain all liveout variables of a basic block? Liveins
can be found for each MachineBasicBlock, but I can only find liveouts for the
whole function, at MachineRegisterInfo. Do I need to find them out manually?
2011 Nov 01
2
[LLVMdev] Adding a custom GC safe point creation phase
Thanks for the review Gordon.
On Tue, Nov 1, 2011 at 2:21 AM, Gordon Henriksen <gordonhenriksen at mac.com>wrote:
> On 2011-10-31, at 17:21, Nicolas Geoffray wrote:
>
> > Here's a patch to allow a GCStrategy to customize the places where it
> wants to insert safe points. I'm not sure who maintains the GC code today
> in LLVM (I'd be happy to take ownership, if
2010 May 01
1
[LLVMdev] How to change successor of a regular Basic block
Hi,
I am working with regular dominator tree and not MachineDominatorTree.
I wanted to modify the CFG structure and for that I need to change
successor of a basic block.
How can I do that?
Or is there a way to cast a BasicBlock to MachineBasicBlock so that i
can use functions addSucessor and removeSuccessor for the basic block.
It will be great if someone can help.
regards,
Ambika
2010 Nov 05
0
[LLVMdev] Basic block liveouts
They cannot be found like the live in values because different values may be
live out.
For instance the psudocode may look like:
BB0:
vreg1 = rand()
if( vreg1 > .5 ) goto BB1;
else goto BB2;
BB1:
vreg 2 = rand();
EAX = copy vreg2;
Return
BB2:
vreg 3 = rand() * rand()'
EAX = copy vreg3;
Return
On Fri, Nov 5, 2010 at 7:41 AM, s Last namerc <srcsrc84 at yahoo.com>