Skip to content
  1. Sep 04, 2008
  2. Aug 19, 2008
  3. Aug 17, 2008
  4. Jul 07, 2008
  5. Jul 01, 2008
    • Dan Gohman's avatar
      Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating · fb19f940
      Dan Gohman authored
      the need for a flavor operand, and add a new SDNode subclass,
      LabelSDNode, for use with them to eliminate the need for a label id
      operand.
      
      Change instruction selection to let these label nodes through
      unmodified instead of creating copies of them. Teach the MachineInstr
      emitter how to emit a MachineInstr directly from an ISD label node.
      
      This avoids the need for allocating SDNodes for the label id and
      flavor value, as well as SDNodes for each of the post-isel label,
      label id, and label flavor.
      
      llvm-svn: 52943
      fb19f940
  6. May 08, 2008
  7. May 07, 2008
  8. Jan 31, 2008
  9. Jan 07, 2008
    • Chris Lattner's avatar
      rename TargetInstrDescriptor -> TargetInstrDesc. · 03ad8850
      Chris Lattner authored
      Make MachineInstr::getDesc return a reference instead
      of a pointer, since it can never be null.
      
      llvm-svn: 45695
      03ad8850
    • 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
  10. 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
  11. Dec 29, 2007
  12. Dec 22, 2007
  13. Dec 11, 2007
  14. 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