llvm-6502/lib
Gordon Henriksen 364caf0e19 Collector is the base class for garbage collection code generators.
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42466 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-29 02:13:43 +00:00
..
Analysis Switch to densemap rather than std::set 2007-09-29 00:50:40 +00:00
Archive
AsmParser Generated files for previous patch. 2007-09-12 03:31:28 +00:00
Bitcode Demoting CHelpers.h to include/llvm/Support. 2007-09-29 01:38:42 +00:00
CodeGen Collector is the base class for garbage collection code generators. 2007-09-29 02:13:43 +00:00
Debugger
ExecutionEngine Change APFloat::convertFromInteger to take the incoming 2007-09-21 22:09:37 +00:00
Linker Fix PR1611 - Visibility should be ignored for a declaration 2007-08-19 22:22:54 +00:00
Support Whitespace and compiler warning cleanup. 2007-09-26 21:33:42 +00:00
System really fix PR1581, thanks to Daniel Dunbar for pointing 2007-09-28 20:50:50 +00:00
Target Enabling new condition code modeling scheme. 2007-09-29 00:00:36 +00:00
Transforms minor long double related changes 2007-09-28 18:06:58 +00:00
VMCore Demoting CHelpers.h to include/llvm/Support. 2007-09-29 01:38:42 +00:00
Makefile