summaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* Fixing the stack walker.Gordon Henriksen2008-01-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46302 91177308-0d34-0410-b5e6-96231b3b80d8
* With this patch, the LowerGC transformation becomes theGordon Henriksen2008-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
* remove attribution from a variety of miscellaneous files.Chris Lattner2007-12-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45425 91177308-0d34-0410-b5e6-96231b3b80d8
* remove attributions from the rest of the llvm makefiles.Chris Lattner2007-12-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45416 91177308-0d34-0410-b5e6-96231b3b80d8
* GarbageCollection.html is expanded to encompass the comingGordon Henriksen2007-09-27
| | | | | | | capabilities. This is a major rewrite and is easier to read en toto rather than patchwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42414 91177308-0d34-0410-b5e6-96231b3b80d8
* Reenable libgc and libprofile is explicitly requested.Chris Lattner2007-09-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41851 91177308-0d34-0410-b5e6-96231b3b80d8
* remove an obsolete library.Chris Lattner2007-09-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41850 91177308-0d34-0410-b5e6-96231b3b80d8
* Dror GCCLibraries: they are obsolete since 2.0 release. This also reduces ↵Anton Korobeynikov2007-08-21
| | | | | | number of licenses used in LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41257 91177308-0d34-0410-b5e6-96231b3b80d8
* crtend is only for llvm-gcc3, remove it.Chris Lattner2007-02-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34529 91177308-0d34-0410-b5e6-96231b3b80d8
* the old trace values pass has been removed, remove its runtime library.Chris Lattner2007-01-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32999 91177308-0d34-0410-b5e6-96231b3b80d8
* Undo removal of the runtime libraries. While this may have been a bitReid Spencer2006-11-17
| | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31807 91177308-0d34-0410-b5e6-96231b3b80d8
* In LLVM 2.0 we won't use the runtime libraries as llvm-gcc3 support willReid Spencer2006-11-16
| | | | | | | be dropped. This patch pertains to removing the runtime directory from LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31793 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused variable.Reid Spencer2006-11-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31404 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR786:Reid Spencer2006-11-02
| | | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
* Describe and date modifications we made per LGPL requirements.John Criswell2006-08-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29569 91177308-0d34-0410-b5e6-96231b3b80d8
* Make information more complete.John Criswell2006-08-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29568 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted previous commit. Thanks, Chris.John Criswell2006-07-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29388 91177308-0d34-0410-b5e6-96231b3b80d8
* Added in the LGPL text and copyright information. This needs to beJohn Criswell2006-07-28
| | | | | | | | included in the distribution. Also added the glibc LICENSES file, which should be included as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29386 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR786:Reid Spencer2006-06-01
| | | | | | | | | | Turn -pedantic and -Wno-long-long compile flags on by default. In a few places, avoid the warnings by removing these options in the local makefile. One notable exception: lib/Target/CBackend/Writer.cpp. These warnings are left on as a reminder to developers to clean them up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28614 91177308-0d34-0410-b5e6-96231b3b80d8
* Put an innocuous statement in this file to quelch warnings about compilingReid Spencer2006-06-01
| | | | | | | an empty file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28612 91177308-0d34-0410-b5e6-96231b3b80d8
* Use archive libraries instead of object files for VMCore, BCReader,Reid Spencer2006-06-01
| | | | | | | | BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate these changes. This was done to speed up link times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28610 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR786:Reid Spencer2006-05-24
| | | | | | | | | Minor tweaks in public headers and a few .cpp files so that LLVM can build successfully with -pedantic and projects using LLVM with -pedantic don't get warnings from LLVM. There's still more -pedantic warnings to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28453 91177308-0d34-0410-b5e6-96231b3b80d8
* Invert the tests on LLVMGCC_MAJVERS to check for value 4 instead of valueReid Spencer2006-04-07
| | | | | | | | | 3. This ensures that if llvm-gcc isn't available and consequently the value of LLVMGCC_MAJVERS is blank, that the old (include runtime) behavior will persist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27499 91177308-0d34-0410-b5e6-96231b3b80d8
* add a newline at the end of the fileChris Lattner2006-04-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27492 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid building the runtime libraries if llvm-gcc version 4 is detected.Reid Spencer2006-04-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27464 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR722:Reid Spencer2006-04-02
| | | | | | | | | | | Change the check for llvm-gcc from using LLVMGCCDIR to LLVMGCC. This checks for the actual tool rather than the directory in which the tool resides. In the case of this bug, it is possible that the directory exists but that the tools in that directory do not. This fix should avoid the makefile from erroneously proceeding without the actual tools being available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27361 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimizing to calloc() to malloc() + memset() can be bad on some platforms.Evan Cheng2006-03-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26732 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the new and old front-ends more similar: now neither uses __main.Chris Lattner2006-03-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26629 91177308-0d34-0410-b5e6-96231b3b80d8
* fix make install/uninstall of libcrtend.Chris Lattner2006-01-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25796 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove out of date commentChris Lattner2006-01-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25705 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the only use of FAKE_SOURCESChris Lattner2006-01-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25704 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the remove() function from the C library.John Criswell2005-11-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24498 91177308-0d34-0410-b5e6-96231b3b80d8
* This was never updated for the project makefile changesChris Lattner2005-10-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23790 91177308-0d34-0410-b5e6-96231b3b80d8
* This never got updated to reflect the project makefile changesChris Lattner2005-10-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23789 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespaceMisha Brukman2005-04-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix grammarMisha Brukman2005-03-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20789 91177308-0d34-0410-b5e6-96231b3b80d8
* Hrm, who knows what 'uint' is, but it seems to work sometimes? Wierd.Chris Lattner2005-01-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19876 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn on LOADABLE_MODULE so that profile.so can be loaded dynamically byReid Spencer2005-01-13
| | | | | | | the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19524 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-enable libprofile now that llvm-ar is working better.Reid Spencer2005-01-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19523 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead directoriesChris Lattner2005-01-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19262 91177308-0d34-0410-b5e6-96231b3b80d8
* This lib is deadChris Lattner2005-01-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19261 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a bunch of useless empty librariesChris Lattner2005-01-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19260 91177308-0d34-0410-b5e6-96231b3b80d8
* This is no longer needed.Chris Lattner2005-01-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19259 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR432:Reid Spencer2004-12-22
| | | | | | | * Variable name change: cferuntime_libdir -> CFERuntimeLibDir git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19096 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable libprofile as llvm-ar bus errors on it, and I don't want to breakChris Lattner2004-12-15
| | | | | | | the nightly testers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18960 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the new BYTECODE_DESTINATION to override the default bytecode installReid Spencer2004-12-13
| | | | | | | | | | destination for this library so that it goes to $(cferuntime_libdir) rather than just $(libdir). Normal bytecode libraries should be installed in the $(libdir), but these ones are "special" because they're part of the the C/C++ front end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18882 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove useless -L switch now that gccld -link-as-library bug is fixed.Reid Spencer2004-12-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18613 91177308-0d34-0410-b5e6-96231b3b80d8
* Make use of the LLVMGCCStdCXXLibDir variable to link objectsReid Spencer2004-12-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18548 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the FAKE_SOURCES feature for proper distribution of contentsReid Spencer2004-12-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18506 91177308-0d34-0410-b5e6-96231b3b80d8
* Standardize the makefiles with space around = to match the rest of LLVM.Reid Spencer2004-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18429 91177308-0d34-0410-b5e6-96231b3b80d8