Skip to content
  1. 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
  2. Dec 29, 2007
  3. Dec 22, 2007
  4. Dec 11, 2007
  5. 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