Skip to content
  1. Jan 07, 2008
    • Chris Lattner's avatar
      Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects · a98c679d
      Chris Lattner authored
      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
      a98c679d
  2. Dec 31, 2007
    • Chris Lattner's avatar
      Rename SSARegMap -> MachineRegisterInfo in keeping with the idea · a10fff51
      Chris Lattner authored
      that "machine" classes are used to represent the current state of
      the code being compiled.  Given this expanded name, we can start 
      moving other stuff into it.  For now, move the UsedPhysRegs and
      LiveIn/LoveOuts vectors from MachineFunction into it.
      
      Update all the clients to match.
      
      This also reduces some needless #includes, such as MachineModuleInfo
      from MachineFunction.
      
      llvm-svn: 45467
      a10fff51
  3. Dec 29, 2007
  4. Dec 22, 2007
  5. Dec 11, 2007
  6. Sep 29, 2007
    • Gordon Henriksen's avatar
      Collector is the base class for garbage collection code generators. · 37ca83d4
      Gordon Henriksen authored
      This version enhances the previous patch to add root initialization
      as discussed here:
      
      http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053455.html
      
      Collector gives its subclasses control over generic algorithms:
      
        unsigned NeededSafePoints; //< Bitmask of required safe points.
        bool CustomReadBarriers;   //< Default is to insert loads.
        bool CustomWriteBarriers;  //< Default is to insert stores.
        bool CustomRoots;          //< Default is to pass through to backend.
        bool InitRoots;            //< If set, roots are nulled during lowering.
      
      It also has callbacks which collectors can hook:
      
        /// If any of the actions are set to Custom, this is expected to
        /// be overriden to create a transform to lower those actions to
        /// LLVM IR.
        virtual Pass *createCustomLoweringPass() const;
      
        /// beginAssembly/finishAssembly - Emit module metadata as
        /// assembly code.
        virtual void beginAssembly(Module &M, std::ostream &OS,
                                   AsmPrinter &AP,
                                   const TargetAsmInfo &TAI) const;
        virtual void finishAssembly(Module &M,
                                    CollectorModuleMetadata &CMM,
                                    std::ostream &OS, AsmPrinter &AP,
                                    const TargetAsmInfo &TAI) const;  
      
      Various other independent algorithms could be implemented, but were
      not necessary for the initial two collectors. Some examples are
      listed here:
      
      http://llvm.org/docs/GarbageCollection.html#collector-algos
      
      llvm-svn: 42466
      37ca83d4
Loading