similar to: LLVM June Status Update

Displaying 20 results from an estimated 1400 matches similar to: "LLVM June Status Update"

2009 Sep 24
0
[LLVMdev] Split MachineBasicBlocks
Hi all, as soon as I try to split MachineBasicBlocks the resulting programs suffer from segmentation faults. I have reproduced the error using a simple MachineFunctionPass in the X86 backend that splits MachineBasicBlocks before CALL32m instructions (and inserts a fallthrough-jmp). The MachineFunctionPass is plugged into X86TargetMachine::addPreRegAlloc. The split-method is basically stolen from
2010 Sep 02
2
[LLVMdev] [LLVMDev] [Modeling] About the structure of my allocator
On Sep 2, 2010, at 2:44 PMPDT, Jeff Kunkel wrote: > I need to track which MachineBasicBlocks branch into other > MachineBasicBlocks. How do I do it? Look at the Predecessor/Successor lists, which are target-independent > I see a MachineOperand can hold a MachineBasicBlock*. Does this mean > the instruction may branch to the MachineBasicBlock, or can it be > something like an
2010 Sep 02
0
[LLVMdev] [LLVMDev] [Modeling] About the structure of my allocator
Is there any way to tell where in the Instruction list, the branch to the other MachineBasicBlock happens? I know in the BasicBlock had a nice api for it. Thanks, Jeff Kunkel On Thu, Sep 2, 2010 at 5:56 PM, Dale Johannesen <dalej at apple.com> wrote: > > On Sep 2, 2010, at 2:44 PMPDT, Jeff Kunkel wrote: > >> I need to track which MachineBasicBlocks branch into other
2010 Sep 02
0
[LLVMdev] [LLVMDev] [Modeling] About the structure of my allocator
Thank you! The pieces are starting to fall into place finally. I need to track which MachineBasicBlocks branch into other MachineBasicBlocks. How do I do it? I see a MachineOperand can hold a MachineBasicBlock*. Does this mean the instruction may branch to the MachineBasicBlock, or can it be something like an object reference? - Thanks, Jeff Kunkel On Thu, Sep 2, 2010 at 1:56 PM, Jeff Kunkel
2010 Sep 03
2
[LLVMdev] [LLVMDev] [Modeling] About the structure of my allocator
It is at the end allowing for oddities like debug info and multiple branches. You might want to look at AnalyzeBranch. On Sep 2, 2010, at 4:19 PMPDT, Jeff Kunkel wrote: > Is there any way to tell where in the Instruction list, the branch > to the other MachineBasicBlock happens? I know in the BasicBlock had > a nice api for it. > > Thanks, > Jeff Kunkel > > On Thu,
2010 Oct 20
1
[LLVMdev] MachineBasicBlock insertion and use/def list update
Hi all, I am still stumped on the same bug. Did anyone try to insert MachineBasicBlock into a MachineFunction? Any advice will be appreciated. Thanks a lot in advance. ~Bin ---------------------------------------------------------------------------------------------------------------------------- Thanks a lot Jeff. I changed the setNumber function call to
2010 Sep 03
0
[LLVMdev] [LLVMDev] [Modeling] About the structure of my allocator
Perhaps what I think is a problem really is not a problem. So when a jump occurs from one block A to block B, then the registers are certain state, and register allocation happens with the initial state defined by A->B. When a third block C jumps to block B, the state of the registers are different. Thus register allocation needs to account for the jump from C->B, by a few ways: 1. The
2007 Aug 08
0
[LLVMdev] Changing basic blocks
> I need a way to reorder instructions inside MachineBasicBlocks or > MachineFunctions. > I've been searching for it but I have not found an example in the code yet. For MachineBasicBlocks, check out this doc: http://llvm.org/doxygen/classllvm_1_1MachineBasicBlock.html I believe its basically the same as basic blocks in that you can manipulate the instruction list. Otherwise, you
2008 Oct 14
0
[LLVMdev] CFG modifcations and code gen
After a bunch more investigate, I've seem to have figured out what is going on here. The MachineFunction holds a vector of MachineBasicBlocks and it is this vector that is traversed by the MachineFunction iterator when printing out instructions. The problem is occurring when a modification to the CFG moves around so that the ordering of them is different. Even if the pred/succ blocks are
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)
2013 Jul 31
1
[LLVMdev] MachineBasicBlocks Cloning
Hi, For some schedulers like Trace Scheduling it is necessary to clone basic blocks. Instinctively I would think the "Machine Instruction Scheduler" would be the right place to do so. Is it possible to clone MachineBasicBlocks in the "Machine Instruction Scheduler" pass? Any snares? Or is it to much effort to implement it there and there is a better place for such things?
2014 Feb 14
2
[LLVMdev] Custom allocators for MachineBasicBlocks and STL containers
Hello, I was looking at how the memory for MachineBasicBlocks is managed and something seems strange. On one hand, a MachineFunction uses a recycling allocator to create and destroy MBBs without costly heap allocation (the same is done for MachineInstrs, MachineOperands, etc.). On the other hand, each MBB also has a number of STL vectors within it. For example, for Predecessors, Successors,
2007 Aug 09
4
[LLVMdev] Changing basic blocks
Hi Tanya and everybody, Ty for your support. I too believe it should not be complicated. But I was not being able to do it. For instance, I tried to run this code below: BB->push_back(&(BB->front())); BB->pop_front(); But it did not work (kinda obvious why). Nor this: BB->push_back(BB->begin()); BB->pop_front(); But also did not work. It seams the same
2013 Dec 11
0
[LLVMdev] Question about assertion code in 'BuildMI' function with MachineBasicBlock
Hi all, While I using BuildMI with MachineBasicBlock as parameter, I made a mistake. The mistake was that the MachineBasicBlock of instruction, which is for insertion, is different with given MachineBasicBlock as parameter. I have thought if there is assertion code to check whether MachineBasicBlocks are same between instruction's MachineBasicBlock and given MachineBasicBlock as
2007 Aug 08
2
[LLVMdev] Changing basic blocks
Hello guys, I plan to do some pre register allocation optimizations. I already know my way around LLVM but I could use some more experience. I need a way to reorder instructions inside MachineBasicBlocks or MachineFunctions. I've been searching for it but I have not found an example in the code yet. Can someone point me where I should look for? ty, -- Emilio Wuerges LAPS - Laboratorio
2010 Nov 13
1
[LLVMdev] problem with llvm reverse iterator
Hi, I am writing an llvm pass wherein I require to iterate MachineBasicBlocks in reverse. The ilist reverse_iterator is not functioning as expected. Nor is the ilist iterator working in reverse (although -- operator is overloaded to do so). for (MachineFunction::iterator MBBI = mf_->end(), E = mf_->begin();MBBI != E; --MBBI) { MachineBasicBlock *MBB = MBBI;
2015 Sep 04
2
LiveInterval and Loop Info
Thanks Matthias I can also use the method intervalIsInOneMBB() from LiveIntervals class to relate a LiveInterval to a MachineBasicBlock, right? Em 04/09/2015 2:26 PM, "Matthias Braun" <mbraun at apple.com> escreveu: > There is no direct support for this, but you can use > LiveIntervalAnalysis::getMBBStartIndex()/getMBBEndIndex()/getMBBFromIndex() > to relate the
2016 May 11
2
[LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
> On May 11, 2016, at 1:12 PM, Francois Pichet <pichet2000 at gmail.com> wrote: > > Hello, > > Regarding the problem of debug range for optimized code. > Currently a DEBUG_VALUE will be inserted after the <def>vregX > DEBUG_VALUE are only valid until the end of the current MachineBasicBlock. That's the main problem. > Why not simply iterate over all uses
2020 Mar 10
2
RFC: Making a common successor/predecessor interface
On Tue, Mar 10, 2020 at 2:30 PM David Blaikie <dblaikie at gmail.com> wrote: > > > On Tue, Mar 10, 2020 at 8:31 AM Alina Sbirlea <alina.sbirlea at gmail.com> > wrote: > >> Hi Dave, >> >> It may be possible to do this with the current API, but what I was >> looking for is a common API for existing block types. For example there is >> no
2019 Nov 28
2
How to write LLVM backend pass after every LLVM's internal pass?
Currently I’m writing a X86 backend pass for my research project. I inserted a few instructions in MachineBasicBlocks, but then llc optimized my code, and deleted some of it. So how to so backend pass after all machine level optimizations?