Initial checkin of GC implementation support files

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13700 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-05-23 21:25:59 +00:00
parent 0bd34a2b64
commit e6fd7762c5
3 changed files with 69 additions and 0 deletions

42
runtime/GC/GCInterface.h Normal file
View File

@ -0,0 +1,42 @@
/*===-- GCInterface.h - Public interface exposed by garbage collectors ----===*\
|*
|* The LLVM Compiler Infrastructure
|*
|* This file was developed by the LLVM research group and is distributed under
|* the University of Illinois Open Source License. See LICENSE.TXT for details.
|*
|*===----------------------------------------------------------------------===*|
|*
|* This file defines the common public interface that must be exposed by all
|* LLVM garbage collectors.
|*
\*===----------------------------------------------------------------------===*/
#ifndef GCINTERFACE_H
#define GCINTERFACE_H
/* llvm_gc_initialize - This function is called to initalize the garbage
* collector.
*/
void llvm_gc_initialize();
/* llvm_gc_allocate - This function allocates Size bytes from the heap and
* returns a pointer to it.
*/
void *llvm_gc_allocate(unsigned Size);
/* llvm_gc_collect - This function forces a garbage collection cycle.
*/
void llvm_gc_collect();
/* llvm_gc_read - This function should be implemented to include any read
* barrier code that is needed by the garbage collector.
*/
void *llvm_gc_read(void **P);
/* llvm_gc_write - This function should be implemented to include any write
* barrier code that is needed by the garbage collector.
*/
void llvm_gc_write(void *V, void **P);
#endif

20
runtime/GC/Makefile Normal file
View File

@ -0,0 +1,20 @@
##===- runtime/GC/Makefile ---------------------------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
# This file was developed by the LLVM research group and is distributed under
# the University of Illinois Open Source License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##
LEVEL = ../..
PARALLEL_DIRS := SemiSpace
include $(LEVEL)/Makefile.common
# Install target for libraries: Copy into the gcc install directory in chris's
# tree...
#
install::
clean::

View File

@ -0,0 +1,7 @@
llvm_gc_initialize
llvm_gc_allocate
llvm_gc_collect
llvm_gc_write
llvm_gc_read
llvm_gc_root_chain