diff options
author | Chris Lattner <sabre@nondot.org> | 2004-05-23 21:23:35 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-05-23 21:23:35 +0000 |
commit | 99c59e8e217cd08bc53f7a260dce6c7a66b583f9 (patch) | |
tree | e04ef5a1b13646f2e76d05677c5b97ceb75c9777 | |
parent | df04097f87485ef2c0036d1f42208aa6c4d7575c (diff) |
Add support for accurate garbage collection to the LLVM code generators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13696 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 1 | ||||
-rw-r--r-- | lib/Target/CBackend/Writer.cpp | 1 | ||||
-rw-r--r-- | lib/Target/SparcV9/SparcV9TargetMachine.cpp | 6 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetMachine.cpp | 5 |
4 files changed, 13 insertions, 0 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 6e536f0729..222fc82d19 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -1498,6 +1498,7 @@ void CWriter::visitVAArgInst(VAArgInst &I) { //===----------------------------------------------------------------------===// bool CTargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &o) { + PM.add(createLowerGCPass()); PM.add(createLowerAllocationsPass()); PM.add(createLowerInvokePass()); PM.add(new CBackendNameAllUsedStructs()); diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index 6e536f0729..222fc82d19 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.cpp @@ -1498,6 +1498,7 @@ void CWriter::visitVAArgInst(VAArgInst &I) { //===----------------------------------------------------------------------===// bool CTargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &o) { + PM.add(createLowerGCPass()); PM.add(createLowerAllocationsPass()); PM.add(createLowerInvokePass()); PM.add(new CBackendNameAllUsedStructs()); diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp index c5d815c987..06efeb31e2 100644 --- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp +++ b/lib/Target/SparcV9/SparcV9TargetMachine.cpp @@ -125,6 +125,9 @@ SparcV9TargetMachine::SparcV9TargetMachine(IntrinsicLowering *il) bool SparcV9TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) { + // FIXME: Implement efficient support for garbage collection intrinsics. + PM.add(createLowerGCPass()); + // Replace malloc and free instructions with library calls. PM.add(createLowerAllocationsPass()); @@ -199,6 +202,9 @@ SparcV9TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out /// generation for the UltraSparcV9. /// void SparcV9JITInfo::addPassesToJITCompile(FunctionPassManager &PM) { + // FIXME: Implement efficient support for garbage collection intrinsics. + PM.add(createLowerGCPass()); + // Replace malloc and free instructions with library calls. PM.add(createLowerAllocationsPass()); diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp index 0d9a0d6e40..a1884a6725 100644 --- a/lib/Target/X86/X86TargetMachine.cpp +++ b/lib/Target/X86/X86TargetMachine.cpp @@ -59,6 +59,9 @@ X86TargetMachine::X86TargetMachine(const Module &M, IntrinsicLowering *IL) // does to emit statically compiled machine code. bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) { + // FIXME: Implement efficient support for garbage collection intrinsics. + PM.add(createLowerGCPass()); + // FIXME: Implement the invoke/unwind instructions! PM.add(createLowerInvokePass()); @@ -117,6 +120,8 @@ bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM, /// not supported for this target. /// void X86JITInfo::addPassesToJITCompile(FunctionPassManager &PM) { + // FIXME: Implement efficient support for garbage collection intrinsics. + PM.add(createLowerGCPass()); // FIXME: Implement the invoke/unwind instructions! PM.add(createLowerInvokePass()); |