summaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
AgeCommit message (Collapse)Author
2008-07-28Fold the useful features of alist and alist_node into ilist, andDan Gohman
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 Gohman
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 Gohman
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 Wang
llvm-svn: 50663
2008-04-24- Check if a register is livein before removing it. It may have already been ↵Evan Cheng
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 Cheng
16-byte boundaries. llvm-svn: 47703
2008-02-26Rename PrintableName to Name.Bill Wendling
llvm-svn: 47629
2008-02-26Change "Name" to "AsmName" in the target register info. Gee, a refactoring toolBill Wendling
would have been a Godsend here! llvm-svn: 47625
2008-02-10Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman
llvm-svn: 46930
2008-01-07remove #includageChris Lattner
llvm-svn: 45697
2008-01-07rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner
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 Lattner
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 Lattner
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 Lattner
llvm-svn: 45469
2007-12-30Add new shorter predicates for testing machine operands for various types: Chris Lattner
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 Lattner
llvm-svn: 45418
2007-10-03Use empty() member functions when that's what's being tested for insteadDan Gohman
of comparing begin() and end(). llvm-svn: 42585
2007-09-02Silence warning while compiling with gcc 4.2Anton Korobeynikov
llvm-svn: 41676
2007-06-29Fix misue of iterator pointing to erased object. Uncovered byDavid Greene
_GLIBCXX_DEBUG. llvm-svn: 37793
2007-06-18Move CorrectExtraCFGEdges() from BranchFolding.cpp to a MachineBasicBlock ↵Evan Cheng
method. llvm-svn: 37633
2007-06-04Move ReplaceUsesOfBlockWith() out of BranchFolding into a MachineBasicBlock ↵Evan Cheng
general facility. llvm-svn: 37408
2007-05-17Move isSuccessor() offline, change it to use std::find.Evan Cheng
llvm-svn: 37190
2007-04-30print isLandingPad() for MBBsChris Lattner
llvm-svn: 36600
2007-03-09Print preds / succs BB numbers.Evan Cheng
llvm-svn: 35040
2007-02-19Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.Evan Cheng
llvm-svn: 34428
2007-02-19For PR1207:Reid Spencer
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 Cheng
llvm-svn: 34381
2007-02-10Add live-ins to MachineBasicBlock.Evan Cheng
llvm-svn: 34111
2006-12-16The best unbreakage yet, addressing Bill's concerns.Jeff Cohen
llvm-svn: 32622
2006-12-15An even better unbreakage...Jeff Cohen
llvm-svn: 32617
2006-12-07Removed more <iostream> includesBill Wendling
llvm-svn: 32321
2006-11-27Change MachineInstr ctor's to take a TargetInstrDescriptor reference insteadEvan Cheng
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 Lattner
llvm-svn: 31857
2006-10-24add moveBefore/moveAfter helper methodsChris Lattner
llvm-svn: 31145
2006-10-06print labels even if a MBB doesn't have a corresponding LLVM BB, just don'tChris Lattner
print the LLVM BB label. llvm-svn: 30775
2006-10-06MachineBasicBlock::splice was incorrectly updating parent pointers onChris Lattner
instructions. llvm-svn: 30760
2006-10-03Print the MBB ID # along with the bb tag in the -print-machine-instrs output.Chris Lattner
llvm-svn: 30708
2006-09-26print the preds of each MBBChris Lattner
llvm-svn: 30606
2006-05-12Refactor a bunch of includes so that TargetMachine.h doesn't have to includeOwen Anderson
TargetData.h. This should make recompiles a bit faster with my current TargetData tinkering. llvm-svn: 28238
2006-05-04Remove and simplify some more machineinstr/machineoperand stuff.Chris Lattner
llvm-svn: 28105
2006-05-04Remove a bunch more dead V9 specific stuffChris Lattner
llvm-svn: 28094
2005-04-21Remove trailing whitespaceMisha Brukman
llvm-svn: 21420
2005-04-01print the machine CFG in the -print-machineinstrs dumpChris Lattner
llvm-svn: 20976
2005-01-30Improve conformance with the Misha spelling benchmark suiteChris Lattner
llvm-svn: 19930
2005-01-29adjust to ilist changes.Chris Lattner
llvm-svn: 19924
2004-10-26Move method bodies that depend on <algorithm> from MBB.h to MBB.cppChris Lattner
llvm-svn: 17253
2004-09-05Indent to 2 spaces.Alkis Evlogimenos
llvm-svn: 16187
2004-09-01Changes For Bug 352Reid Spencer
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
2004-07-04Add #include <iostream> since Value.h does not #include it any more.Reid Spencer
llvm-svn: 14622
2004-07-01Change MBB autonumber a bit to get the reverse mapping as well as a forwardChris Lattner
mapping llvm-svn: 14521