llvm-6502/include/llvm/CodeGen
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
..
AsmPrinter.h Add a routine for emitting .file directives, for setting up 2007-09-24 20:58:13 +00:00
CallingConvLower.h propagate struct size and alignment of byval arguments to the DAG 2007-08-10 14:44:42 +00:00
Collector.h Collector is the base class for garbage collection code generators. 2007-09-29 02:13:43 +00:00
CollectorMetadata.h CollectorMetadata abstractly describes stack maps for a function. 2007-09-27 22:18:46 +00:00
Collectors.h My previous Registry.h header, as well as Collectors.h, which is the 2007-09-27 19:34:27 +00:00
DwarfWriter.h
ELFRelocation.h
FileWriters.h
IntrinsicLowering.h
LinkAllCodegenComponents.h Pluggable coalescers inplementation. 2007-09-06 16:18:45 +00:00
LiveInterval.h Constify to catch bugs. 2007-09-06 19:46:46 +00:00
LiveIntervalAnalysis.h Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks. 2007-09-05 21:46:51 +00:00
LiveVariables.h Remove isReg, isImm, and isMBB, and change all their users to use 2007-09-14 20:33:02 +00:00
MachineBasicBlock.h
MachineCodeEmitter.h
MachineConstantPool.h Add explicit keywords and remove spurious trailing semicolons. 2007-08-27 14:50:10 +00:00
MachineFrameInfo.h
MachineFunction.h Add explicit keywords and remove spurious trailing semicolons. 2007-08-27 14:50:10 +00:00
MachineFunctionPass.h
MachineInstr.h Remove isReg, isImm, and isMBB, and change all their users to use 2007-09-14 20:33:02 +00:00
MachineInstrBuilder.h
MachineJumpTableInfo.h
MachineLocation.h
MachineModuleInfo.h explicit keywords. 2007-09-24 15:48:49 +00:00
MachinePassRegistry.h
MachineRelocation.h
MachORelocation.h
Passes.h Pluggable coalescers inplementation. 2007-09-06 16:18:45 +00:00
RegAllocRegistry.h
RegisterCoalescer.h Pluggable coalescers inplementation. 2007-09-06 16:18:45 +00:00
RegisterScavenging.h Add explicit keywords and remove spurious trailing semicolons. 2007-08-27 14:50:10 +00:00
RuntimeLibcalls.h Add sqrt and powi intrinsics for long double. 2007-09-28 01:08:20 +00:00
SchedGraphCommon.h
ScheduleDAG.h If two instructions are both two-address code, favors (schedule closer to 2007-09-28 22:32:30 +00:00
SchedulerRegistry.h
SelectionDAG.h Yet another getTargetNode variant. 2007-09-12 23:39:49 +00:00
SelectionDAGISel.h If the source and destination pointers in an llvm.memmove are known 2007-08-27 16:26:13 +00:00
SelectionDAGNodes.h Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo 2007-09-17 18:34:04 +00:00
SimpleRegisterCoalescing.h Pluggable coalescers inplementation. 2007-09-06 16:18:45 +00:00
SSARegMap.h
ValueTypes.h Add MVT::fAny for overloading intrinsics on floating-point types. 2007-08-16 21:57:19 +00:00
ValueTypes.td Add MVT::fAny for overloading intrinsics on floating-point types. 2007-08-16 21:57:19 +00:00