aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
AgeCommit message (Collapse)AuthorFilesLines
2009-08-23remove std::ostream versions of printing stuff for MBB and MF,Chris Lattner1-10/+1
upgrading a few things to use raw_ostream llvm-svn: 79811
2009-08-23remove dead PrefixPrinter class.Chris Lattner1-6/+4
llvm-svn: 79796
2009-08-23random cleanups.Chris Lattner1-25/+24
llvm-svn: 79794
2009-08-18fix another bozo bugChris Lattner1-2/+2
llvm-svn: 79313
2009-08-18fix accidentally inverted conditional and add comment.Chris Lattner1-1/+4
llvm-svn: 79312
2009-08-18turn this conditional into something humans might actuallyChris Lattner1-8/+25
be able to understand ;-) llvm-svn: 79311
2009-08-03Re-apply LiveInterval index dumping patch, with fixes suggested by BillDavid Greene1-4/+6
and others. llvm-svn: 78003
2009-07-24Move more to raw_ostream, provide support for writing MachineBasicBlock,Daniel Dunbar1-1/+11
LiveInterval, etc to raw_ostream. llvm-svn: 76965
2009-07-21revert r76602, 76603, and r76615, pending design discussions.Chris Lattner1-3/+1
llvm-svn: 76646
2009-07-21Add PrefixPrinter arguments to the dump routines for MachineFunction andDavid Greene1-1/+3
MachineBasicBlock. We'll use these shortly. llvm-svn: 76603
2009-05-05If a MachineBasicBlock has multiple ways of reaching another block,Dan Gohman1-4/+2
allow it to have multiple CFG edges to that block. This is needed to allow MachineBasicBlock::isOnlyReachableByFallthrough to work correctly. This fixes PR4126. llvm-svn: 71018
2009-03-31Reapply 68073, with fixes. EH Landing-pad basic blocks are notDan Gohman1-0/+10
entered via fall-through. Don't miss fallthroughs from blocks terminated by conditional branches. Also, move isOnlyReachableByFallthrough out of line. llvm-svn: 68129
2009-03-30Constify arguments in isSuccessor and isLayoutSuccessor.Dan Gohman1-2/+2
llvm-svn: 68054
2009-01-08Delete unnecessary parens around return values.Dan Gohman1-1/+1
llvm-svn: 61950
2008-10-03Switch the MachineOperand accessors back to the short names likeDan Gohman1-1/+1
isReg, etc., from isRegister, etc. llvm-svn: 57006
2008-10-02Add a new MachineBasicBlock utility function, isLayoutSuccessor, thatDan Gohman1-0/+5
can be used when deciding if a block can transfer control to another via a fall-through instead of a branch. llvm-svn: 56968
2008-09-13Remove isImm(), isReg(), and friends, in favor of Dan Gohman1-1/+2
isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. llvm-svn: 56189
2008-07-28Fold the useful features of alist and alist_node into ilist, andDan Gohman1-24/+12
a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. llvm-svn: 54146
2008-07-17Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks.Dan Gohman1-0/+12
Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp. llvm-svn: 53746
2008-07-07Pool-allocation for MachineInstrs, MachineBasicBlocks, andDan Gohman1-53/+53
MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. llvm-svn: 53212
2008-05-05Added addition atomic instrinsics and, or, xor, min, and max.Mon P Wang1-0/+13
llvm-svn: 50663
2008-04-24- Check if a register is livein before removing it. It may have already been ↵Evan Cheng1-0/+5
removed. - Do not iterate over SmallPtrSet, the order of iteration is not deterministic. llvm-svn: 50209
2008-02-28Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to ↵Evan Cheng1-0/+1
16-byte boundaries. llvm-svn: 47703
2008-02-26Rename PrintableName to Name.Bill Wendling1-1/+1
llvm-svn: 47629
2008-02-26Change "Name" to "AsmName" in the target register info. Gee, a refactoring toolBill Wendling1-1/+1
would have been a Godsend here! llvm-svn: 47625
2008-02-10Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman1-7/+7
llvm-svn: 46930
2008-01-07remove #includageChris Lattner1-1/+1
llvm-svn: 45697
2008-01-07rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner1-3/+3
Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
2008-01-07Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflectsChris Lattner1-4/+3
that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
2008-01-01Implement automatically updated def/use lists for all MachineInstr register Chris Lattner1-4/+55
operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them. llvm-svn: 45477
2007-12-31properly encapsulate the parent field of MBB and MI with get/set accessors.Chris Lattner1-19/+21
llvm-svn: 45469
2007-12-30Add new shorter predicates for testing machine operands for various types: Chris Lattner1-3/+2
e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464
2007-12-29Remove attribution from file headers, per discussion on llvmdev.Chris Lattner1-2/+2
llvm-svn: 45418
2007-10-03Use empty() member functions when that's what's being tested for insteadDan Gohman1-1/+1
of comparing begin() and end(). llvm-svn: 42585
2007-09-02Silence warning while compiling with gcc 4.2Anton Korobeynikov1-1/+2
llvm-svn: 41676
2007-06-29Fix misue of iterator pointing to erased object. Uncovered byDavid Greene1-3/+3
_GLIBCXX_DEBUG. llvm-svn: 37793
2007-06-18Move CorrectExtraCFGEdges() from BranchFolding.cpp to a MachineBasicBlock ↵Evan Cheng1-0/+60
method. llvm-svn: 37633
2007-06-04Move ReplaceUsesOfBlockWith() out of BranchFolding into a MachineBasicBlock ↵Evan Cheng1-0/+27
general facility. llvm-svn: 37408
2007-05-17Move isSuccessor() offline, change it to use std::find.Evan Cheng1-0/+6
llvm-svn: 37190
2007-04-30print isLandingPad() for MBBsChris Lattner1-3/+5
llvm-svn: 36600
2007-03-09Print preds / succs BB numbers.Evan Cheng1-2/+2
llvm-svn: 35040
2007-02-19Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.Evan Cheng1-1/+7
llvm-svn: 34428
2007-02-19For PR1207:Reid Spencer1-7/+1
Revert patches that caused the problem. Evan, please investigate and reapply when you've discovered the problem. llvm-svn: 34399
2007-02-17Added removeLiveIn.Evan Cheng1-1/+7
llvm-svn: 34381
2007-02-10Add live-ins to MachineBasicBlock.Evan Cheng1-1/+22
llvm-svn: 34111
2006-12-16The best unbreakage yet, addressing Bill's concerns.Jeff Cohen1-5/+0
llvm-svn: 32622
2006-12-15An even better unbreakage...Jeff Cohen1-0/+5
llvm-svn: 32617
2006-12-07Removed more <iostream> includesBill Wendling1-2/+1
llvm-svn: 32321
2006-11-27Change MachineInstr ctor's to take a TargetInstrDescriptor reference insteadEvan Cheng1-1/+1
of opcode and number of operands. llvm-svn: 31947
2006-11-18Implement operator<< for machine basic blocks to make it easier to dump them.Chris Lattner1-0/+4
llvm-svn: 31857