search for: isinsidebundl

Displaying 13 results from an estimated 13 matches for "isinsidebundl".

Did you mean: isinsidebundle
2012 Oct 26
2
[LLVMdev] instr_iterator
Is it safe or legal to call isInsideBundle even when I == E? MachineBasicBlock::iterator MachineBasicBlock::getFirstNonPHI() { instr_iterator I = instr_begin(), E = instr_end(); while (I != E && I->isPHI()) ++I; assert(!I->isInsideBundle() && "First non-phi MI cannot be inside a bundle!"); retur...
2012 Oct 26
1
[LLVMdev] instr_iterator
Please see the attached patch. There was one more line which was calling isInsideBundle without any check. On Thu, Oct 25, 2012 at 7:08 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote: > > On Oct 25, 2012, at 7:01 PM, Akira Hatanaka <ahatanak at gmail.com> wrote: > > Is it safe or legal to call isInsideBundle even when I == E? > > > No, neither....
2012 Oct 30
2
[LLVMdev] [PATCH][Review request] MachineBasicBlock::iterator bug fix
...ated to MachineBasicBlock::iterator. I don't have any test cases that reproduce on an X86 machine the problems that this patch fixes (these bugs were found when make check was run on a mips board). Please review. The first part just ensures that iterator I is not instr_end() before it invokes isInsideBundle(). The second part changes the signature of spillAll to avoid the conversion from MachineBasicBlock::iterator to MachineInstr* and back to MachineBasicBlock::iterator. Here is the backtrace: (gdb) bt #0 0x2ad46fb8 in raise () from /lib/libc.so.6 #1 0x2ad4c178 in abort () from /lib/libc.so.6 #2 0...
2012 Oct 26
0
[LLVMdev] instr_iterator
On Oct 25, 2012, at 7:01 PM, Akira Hatanaka <ahatanak at gmail.com> wrote: > Is it safe or legal to call isInsideBundle even when I == E? No, neither. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121025/cb0bdec9/attachment.html>
2012 Mar 30
1
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
...during postRA passes only. > > VLIWPacketizer calls finalizeBundle explicitly because it's running after regalloc. > > We do not want to see any Bundle instructions prior to regalloc. So a preRA scheduler should not call finalizeBundles. It can create bundles simply by setting the isInsideBundle flag on MachineInstrs. If you allow internal register dependencies you would also need to set isInternalRead on those MachineOperands. > Thanks, this information is really helpful. One question, though: If preRA bundles can't have Bundle instructions, then how does the register allocator...
2012 Mar 29
0
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
...we rely on for now during postRA passes only. VLIWPacketizer calls finalizeBundle explicitly because it's running after regalloc. We do not want to see any Bundle instructions prior to regalloc. So a preRA scheduler should not call finalizeBundles. It can create bundles simply by setting the isInsideBundle flag on MachineInstrs. If you allow internal register dependencies you would also need to set isInternalRead on those MachineOperands. -Andy
2012 Mar 29
2
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
On Thu, Mar 29, 2012 at 02:57:27PM -0500, Sergei Larin wrote: > Tom, > > I do not have your call stack, but packetizer calls > ScheduleDAGInstrs::buildSchedGraph to create dependency model. If this is > the first time you use the new MI sched infrastructure (like your target has > not implemented misched yet) there might be some work needed to implement > couple target
2012 Jun 03
0
[LLVMdev] [PATCH] Remove instruction within a bundle
...an instruction within a bundle by calling eraseFromParent(). It seems that in order to erase the MI, a bundle iterator is created but it's forbidden if the MI is not the bundle's header. The attached patch fix it. As a test case, call eraseFromParent() on a machine instruction with its isInsideBundle flag activated. Ivan -------------- next part -------------- A non-text attachment was scrubbed... Name: MIeraseFromParent.patch Type: text/x-patch Size: 334 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120603/5fff692c/attachment.bin>
2014 Jun 17
2
[LLVMdev] Question about 'DuplicateInstruction' function of TailDuplicatePass in CodeGen
...n.cpp (revision 211103) +++ lib/CodeGen/TailDuplication.cpp (working copy) @@ -453,6 +453,11 @@ } } PredBB->insert(PredBB->instr_end(), NewMI); + + /// If there is bundled instruction in TailBB, + /// make bundled instruction in PredBB. + if (MI->isBundled() && MI->isInsideBundle()) + NewMI->bundleWithPred(); } /// UpdateSuccessorsPHIs - After FromBB is tail duplicated into its predecessor
2013 Oct 10
0
[LLVMdev] [PATCH] R600/SI: Embed disassembly in ELF object
...ort/ErrorHandling.h" > +#include "llvm/Support/Format.h" > +#include <algorithm> > > using namespace llvm; > > @@ -69,10 +74,7 @@ > MachineBasicBlock::const_instr_iterator I = MI; > ++I; > while (I != MBB->end() && I->isInsideBundle()) { > - MCInst MCBundleInst; > - const MachineInstr *BundledInst = I; > - MCInstLowering.lower(BundledInst, MCBundleInst); > - OutStreamer.EmitInstruction(MCBundleInst); > + EmitInstruction(I); > ++I; > } > } else { > @@ -79,5 +81...
2013 Oct 10
2
[LLVMdev] [PATCH] R600/SI: Embed disassembly in ELF object
Hi, This patch adds R600/SI disassembly text to compiled object files, when a code dump is requested, to assist debugging in Mesa clients. Here's an example of the output in a Mesa client with a corresponding patch and RADEON_DUMP_SHADERS set: Shader Disassembly: S_WQM_B64 EXEC, EXEC ; BEFE0A7E S_MOV_B32 M0, SGPR6 ; BEFC0306
2012 May 11
3
[LLVMdev] Scheduler Roadmap
My 2c... Even though I understand it might be way off in the future, but we are talking about long term plans here anyway. Also as a VLIW backend maintainer, I just have to say it :) - We do need to have a way to assign bundles much earlier than we do now. And it needs to be intertwined with scheduling (Bundler currently reuses a good chunk of scheduler infrastructure). It is also obvious
2012 Apr 19
0
[LLVMdev] Target Dependent Hexagon Packetizer patch
...nst MachineInstr*> BundleMIs; >> + >> + const MachineBasicBlock *MBB = MI->getParent(); >> + MachineBasicBlock::const_instr_iterator MII = MI; >> + ++MII; >> + unsigned int IgnoreCount = 0; >> + while (MII != MBB->end()&& MII->isInsideBundle()) { >> + const MachineInstr *MInst = MII; >> + if (MInst->getOpcode() == TargetOpcode::DBG_VALUE || >> + MInst->getOpcode() == TargetOpcode::IMPLICIT_DEF) { >> + IgnoreCount++; >> + ++MII; >> + continue; >&...