|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| | MachineRegisterInfo doesn't have to confusingly allocate an extra
entry.
llvm-svn: 106296 | 
| | 
| 
| 
| | llvm-svn: 79777 | 
| | 
| 
| 
| | llvm-svn: 79763 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | the only real caller (GetFunctionSizeInBytes) uses it.
The custom ARM implementation of this is basically reimplementing
an assembler poorly for negligible gain.  It should be removed 
IMNSHO, but I'll leave that to ARMish folks to decide.
llvm-svn: 77877 | 
| | 
| 
| 
| 
| 
| | in a header.
llvm-svn: 77874 | 
| | 
| 
| 
| 
| 
| | now that TargetOperandInfo does the heavy lifting.
llvm-svn: 77508 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | and convert code to using it, instead of having lots of things
   poke the isLookupPtrRegClass() method directly.
2. Make PointerLikeRegClass contain a 'kind' int, and store it in
   the existing regclass field of TargetOperandInfo when the
   isLookupPtrRegClass() predicate is set.  Make getRegClass pass
   this into TargetRegisterInfo::getPointerRegClass(), allowing
   targets to have multiple ptr_rc things.
llvm-svn: 77504 | 
| | 
| 
| 
| | llvm-svn: 70950 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | register destinations that are tied to source operands.  The
TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
assembly.  The existing MachineInstr::isRegReDefinedByTwoAddr was very
close to doing what is needed, so this revision makes a few changes to
that method and also renames it to isRegTiedToUseOperand (for consistency
with the very similar isRegTiedToDefOperand and because it handles both
two-address instructions and inline assembly with tied registers).
llvm-svn: 68714 | 
| | 
| 
| 
| 
| 
| 
| | Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695 | 
| | 
| 
| 
| | llvm-svn: 45680 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | a header file from libcodegen.  This violates a layering order: codegen
depends on target, not the other way around.  The fix to this is to 
split TII into two classes, TII and TargetInstrInfoImpl, which defines
stuff that depends on libcodegen.  It is defined in libcodegen, where 
the base is not.
llvm-svn: 45475 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Eliminate the static "print" method for operands, moving it
    into MachineOperand::print.
  - Change various set* methods for register flags to take a bool
    for the value to set it to.  Remove unset* methods.
  - Group methods more logically by operand flavor in MachineOperand.h
llvm-svn: 45461 | 
| | 
| 
| 
| 
| 
| | Likewise setImmedValue -> setImm
llvm-svn: 45453 | 
| | 
| 
| 
| | llvm-svn: 45418 | 
| | 
| 
| 
| 
| 
| 
| | isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.
llvm-svn: 41958 | 
| | 
| 
| 
| 
| 
| | terminator.
llvm-svn: 37960 | 
| | 
| 
| 
| | llvm-svn: 37891 | 
| | 
| 
| 
| | llvm-svn: 37528 | 
| | 
| 
| 
| | llvm-svn: 37341 | 
| | 
| 
| 
| | llvm-svn: 37307 | 
| | 
| 
| 
| | llvm-svn: 37139 | 
| | 
| 
| 
| | llvm-svn: 37138 | 
| | 
| 
| 
| | llvm-svn: 37124 | 
| | 
| 
| 
| | llvm-svn: 37123 | 
| | 
| 
| 
| | llvm-svn: 32366 | 
| | 
| 
| 
| | llvm-svn: 32352 | 
| | 
| 
| 
| | llvm-svn: 32098 | 
| | 
| 
| 
| | llvm-svn: 32033 | 
| | 
| 
| 
| | llvm-svn: 31763 | 
| | 
| 
| 
| | llvm-svn: 31364 | 
| | 
| 
| 
| | llvm-svn: 31360 | 
| | 
| 
| 
| | llvm-svn: 28229 | 
| | 
| 
| 
| | llvm-svn: 28102 | 
| | 
| 
| 
| | llvm-svn: 27900 | 
| | 
| 
| 
| | llvm-svn: 21452 | 
| | 
| 
| 
| | llvm-svn: 21422 | 
| | 
| 
| 
| 
| 
| 
| | Add default impl of commuteInstruction
Add notes about ugly V9 code.
llvm-svn: 19684 | 
| | 
| 
| 
| 
| 
| | only user.
llvm-svn: 15294 | 
| | 
| 
| 
| | llvm-svn: 11987 | 
| | 
| 
| 
| | llvm-svn: 10879 | 
| | 
| 
| 
| | llvm-svn: 9903 | 
| | 
| 
| 
| 
| 
| | Header files will be on the way.
llvm-svn: 9298 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | SingleSource except oopack and Oscar.  (Sorry, Oscar.)
include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
 accessors for ImplicitUses/Defs.
lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
 really wanted this, just use MI->print(O, TM); instead...
lib/Target/X86:
FloatingPoint.cpp: ...like this.
X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
 target-specific flag bit.
X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
 which implicitly use CL, because the assembler needs to see the CL in
 order to generate the right instruction.
Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
  to name constants in the constant pool for each function instead. This
  avoids keeping state between runOnMachineFunction() invocations, which
  is a no-no. Having MangledGlobals be global is a bogon I'd like to get
  rid of too, but making it a static member of Printer causes link errors
  (why???).
 Make NumberForBB into a member of Printer instead of a global, too.
 Make printOp and printMemReference into methods of Printer.
 X86InstrInfo::print is now Printer::printMachineInstruction, because
  TargetInstrInfo::print is history. (Because of this, we have to qualify
  the names of some TargetInstrInfo methods we call.)
 Print out the ImplicitUses field of any instruction we print that has
  the PrintImplUses bit set.
llvm-svn: 6924 | 
| | 
| 
| 
| | llvm-svn: 5272 | 
| | 
| 
| 
| | llvm-svn: 5221 | 
| | 
| 
| 
| | llvm-svn: 4736 | 
| | 
| 
| 
| | llvm-svn: 4727 |