summaryrefslogtreecommitdiffstats
path: root/llvm/runtime/GC/SemiSpace/semispace.c
Commit message (Collapse)AuthorAgeFilesLines
* Drop toy GC runtime.Gordon Henriksen2009-03-021-127/+0
| | | | llvm-svn: 65801
* Fixing the stack walker.Gordon Henriksen2008-01-241-4/+7
| | | | llvm-svn: 46302
* With this patch, the LowerGC transformation becomes theGordon Henriksen2008-01-071-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ShadowStackCollector, which additionally has reduced overhead with no sacrifice in portability. Considering a function @fun with 8 loop-local roots, ShadowStackCollector introduces the following overhead (x86): ; shadowstack prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl $___gc_fun, 20(%esp) movl $0, 24(%esp) movl $0, 28(%esp) movl $0, 32(%esp) movl $0, 36(%esp) movl $0, 40(%esp) movl $0, 44(%esp) movl $0, 48(%esp) movl $0, 52(%esp) movl %ecx, 16(%esp) leal 16(%esp), %ecx movl %ecx, (%eax) ; shadowstack loop overhead (none) ; shadowstack epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; shadowstack metadata .align 3 ___gc_fun: # __gc_fun .long 8 .space 4 In comparison to LowerGC: ; lowergc prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl %ecx, 48(%esp) movl $8, 52(%esp) movl $0, 60(%esp) movl $0, 56(%esp) movl $0, 68(%esp) movl $0, 64(%esp) movl $0, 76(%esp) movl $0, 72(%esp) movl $0, 84(%esp) movl $0, 80(%esp) movl $0, 92(%esp) movl $0, 88(%esp) movl $0, 100(%esp) movl $0, 96(%esp) movl $0, 108(%esp) movl $0, 104(%esp) movl $0, 116(%esp) movl $0, 112(%esp) ; lowergc loop overhead leal 44(%esp), %eax movl %eax, 56(%esp) leal 40(%esp), %eax movl %eax, 64(%esp) leal 36(%esp), %eax movl %eax, 72(%esp) leal 32(%esp), %eax movl %eax, 80(%esp) leal 28(%esp), %eax movl %eax, 88(%esp) leal 24(%esp), %eax movl %eax, 96(%esp) leal 20(%esp), %eax movl %eax, 104(%esp) leal 16(%esp), %eax movl %eax, 112(%esp) ; lowergc epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; lowergc metadata (none) llvm-svn: 45670
* remove attribution from a variety of miscellaneous files.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45425
* Undo removal of the runtime libraries. While this may have been a bitReid Spencer2006-11-171-0/+122
| | | | | | | premature, these libraries will be going away for the 2.0 release. Other arrangements for profiling, gc, etc. should be made in the next few months. llvm-svn: 31807
* In LLVM 2.0 we won't use the runtime libraries as llvm-gcc3 support willReid Spencer2006-11-161-122/+0
| | | | | | be dropped. This patch pertains to removing the runtime directory from LLVM. llvm-svn: 31793
* Update GC intrinsics to take a pointer to the object as well as a pointerChris Lattner2004-07-221-2/+2
| | | | | | to the field being updated. Patch contributed by Tobias Nurmiranta llvm-svn: 15097
* Fix warning on 64-bit machinesBrian Gaeke2004-07-161-1/+1
| | | | llvm-svn: 14902
* Continue the implementationChris Lattner2004-05-271-37/+61
| | | | llvm-svn: 13818
* Eliminate warningsAlkis Evlogimenos2004-05-231-1/+1
| | | | llvm-svn: 13704
* Check in an EARLY START on a simple copying collectorChris Lattner2004-05-231-0/+98
llvm-svn: 13698
OpenPOWER on IntegriCloud