Gordon Henriksen
520981b62f
Fixing the stack walker.
...
llvm-svn: 46302
2008-01-24 05:16:36 +00:00
Gordon Henriksen
6047b6e140
With this patch, the LowerGC transformation becomes the
...
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
2008-01-07 01:30:53 +00:00
Chris Lattner
6787a45a65
remove attribution from a variety of miscellaneous files.
...
llvm-svn: 45425
2007-12-29 22:59:10 +00:00
Chris Lattner
11cc8b3c14
remove attributions from the rest of the llvm makefiles.
...
llvm-svn: 45416
2007-12-29 20:11:13 +00:00
Gordon Henriksen
0076a6727e
GarbageCollection.html is expanded to encompass the coming
...
capabilities. This is a major rewrite and is easier to read en toto
rather than patchwise.
llvm-svn: 42414
2007-09-27 19:31:36 +00:00
Chris Lattner
69c1b10993
Reenable libgc and libprofile is explicitly requested.
...
llvm-svn: 41851
2007-09-11 17:12:32 +00:00
Chris Lattner
e09791c399
remove an obsolete library.
...
llvm-svn: 41850
2007-09-11 17:10:52 +00:00
Anton Korobeynikov
3fc4a9f78a
Dror GCCLibraries: they are obsolete since 2.0 release. This also reduces number of licenses used in LLVM.
...
llvm-svn: 41257
2007-08-21 22:40:44 +00:00
Chris Lattner
d3c36c9641
crtend is only for llvm-gcc3, remove it.
...
llvm-svn: 34529
2007-02-23 19:34:09 +00:00
Chris Lattner
47d012e1c0
the old trace values pass has been removed, remove its runtime library.
...
llvm-svn: 32999
2007-01-07 18:13:48 +00:00
Reid Spencer
4b8067f37b
Undo removal of the runtime libraries. While this may have been a bit
...
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
2006-11-17 03:32:33 +00:00
Reid Spencer
3f97d03f86
In LLVM 2.0 we won't use the runtime libraries as llvm-gcc3 support will
...
be dropped. This patch pertains to removing the runtime directory from LLVM.
llvm-svn: 31793
2006-11-16 23:17:27 +00:00
Reid Spencer
3056ebeb22
Remove unused variable.
...
llvm-svn: 31404
2006-11-03 01:58:30 +00:00
Reid Spencer
de46e48420
For PR786:
...
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.
llvm-svn: 31380
2006-11-02 20:25:50 +00:00
John Criswell
e6330aeb36
Describe and date modifications we made per LGPL requirements.
...
llvm-svn: 29569
2006-08-08 14:47:54 +00:00
John Criswell
05de6a9297
Make information more complete.
...
llvm-svn: 29568
2006-08-08 14:47:33 +00:00
John Criswell
6878ce38aa
Reverted previous commit. Thanks, Chris.
...
llvm-svn: 29388
2006-07-28 18:30:52 +00:00
John Criswell
4e31ae8611
Added in the LGPL text and copyright information. This needs to be
...
included in the distribution.
Also added the glibc LICENSES file, which should be included as well.
llvm-svn: 29386
2006-07-28 18:16:00 +00:00
Reid Spencer
a62f097c96
For PR786:
...
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.
llvm-svn: 28614
2006-06-01 01:55:21 +00:00
Reid Spencer
54d1f85b19
Put an innocuous statement in this file to quelch warnings about compiling
...
an empty file.
llvm-svn: 28612
2006-06-01 01:49:08 +00:00
Reid Spencer
a647c7ff42
Use archive libraries instead of object files for VMCore, BCReader,
...
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.
llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Reid Spencer
6e64180f03
For PR786:
...
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.
llvm-svn: 28453
2006-05-24 19:21:13 +00:00
Reid Spencer
4873c79e41
Invert the tests on LLVMGCC_MAJVERS to check for value 4 instead of value
...
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.
llvm-svn: 27499
2006-04-07 21:45:23 +00:00
Chris Lattner
292574fbbc
add a newline at the end of the file
...
llvm-svn: 27492
2006-04-07 18:41:16 +00:00
Reid Spencer
aed84e46fc
Avoid building the runtime libraries if llvm-gcc version 4 is detected.
...
llvm-svn: 27464
2006-04-06 22:15:51 +00:00
Reid Spencer
11dd4b9d9c
For PR722:
...
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.
llvm-svn: 27361
2006-04-02 14:34:26 +00:00
Evan Cheng
08b0747be9
Optimizing to calloc() to malloc() + memset() can be bad on some platforms.
...
llvm-svn: 26732
2006-03-13 21:22:43 +00:00
Chris Lattner
c683a7232b
Make the new and old front-ends more similar: now neither uses __main.
...
llvm-svn: 26629
2006-03-09 06:16:28 +00:00
Chris Lattner
87b2c97251
fix make install/uninstall of libcrtend.
...
llvm-svn: 25796
2006-01-30 02:03:56 +00:00
Chris Lattner
4c251f89b4
Remove out of date comment
...
llvm-svn: 25705
2006-01-27 22:06:50 +00:00
Chris Lattner
a4575c7349
Remove the only use of FAKE_SOURCES
...
llvm-svn: 25704
2006-01-27 22:06:23 +00:00
John Criswell
62ef23839c
Add the remove() function from the C library.
...
llvm-svn: 24498
2005-11-28 15:49:15 +00:00
Chris Lattner
13a57822a1
This was never updated for the project makefile changes
...
llvm-svn: 23790
2005-10-18 18:50:26 +00:00
Chris Lattner
46a97ab3e8
This never got updated to reflect the project makefile changes
...
llvm-svn: 23789
2005-10-18 18:48:30 +00:00
Misha Brukman
b1c9317bb4
Remove trailing whitespace
...
llvm-svn: 21427
2005-04-21 23:48:37 +00:00
Misha Brukman
9c64d9c2b5
Fix grammar
...
llvm-svn: 20789
2005-03-23 21:14:33 +00:00
Chris Lattner
cd96168c95
Hrm, who knows what 'uint' is, but it seems to work sometimes? Wierd.
...
llvm-svn: 19876
2005-01-28 19:37:35 +00:00
Reid Spencer
152733823e
Turn on LOADABLE_MODULE so that profile.so can be loaded dynamically by
...
the JIT.
llvm-svn: 19524
2005-01-13 16:53:05 +00:00
Reid Spencer
9df352d469
Re-enable libprofile now that llvm-ar is working better.
...
llvm-svn: 19523
2005-01-13 16:51:19 +00:00
Chris Lattner
73bb15ed9a
Remove dead directories
...
llvm-svn: 19262
2005-01-02 22:55:16 +00:00
Chris Lattner
373f7faeca
This lib is dead
...
llvm-svn: 19261
2005-01-02 22:53:52 +00:00
Chris Lattner
196715cfb4
Remove a bunch of useless empty libraries
...
llvm-svn: 19260
2005-01-02 22:52:28 +00:00
Chris Lattner
bb2840b272
This is no longer needed.
...
llvm-svn: 19259
2005-01-02 22:50:00 +00:00
Reid Spencer
e301401118
For PR432:
...
* Variable name change: cferuntime_libdir -> CFERuntimeLibDir
llvm-svn: 19096
2004-12-22 05:57:33 +00:00
Chris Lattner
5b489416c9
Disable libprofile as llvm-ar bus errors on it, and I don't want to break
...
the nightly testers.
llvm-svn: 18960
2004-12-15 08:15:48 +00:00
Reid Spencer
c6de5b56a3
Use the new BYTECODE_DESTINATION to override the default bytecode install
...
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.
llvm-svn: 18882
2004-12-13 07:40:50 +00:00
Reid Spencer
6838b3c245
Remove useless -L switch now that gccld -link-as-library bug is fixed.
...
llvm-svn: 18613
2004-12-08 04:22:47 +00:00
Reid Spencer
9f1cf33a54
Make use of the LLVMGCCStdCXXLibDir variable to link objects
...
llvm-svn: 18548
2004-12-05 19:15:06 +00:00
Reid Spencer
895ad73daa
Use the FAKE_SOURCES feature for proper distribution of contents
...
llvm-svn: 18506
2004-12-04 22:34:33 +00:00
Reid Spencer
53c59689d1
Standardize the makefiles with space around = to match the rest of LLVM.
...
llvm-svn: 18429
2004-12-02 09:58:09 +00:00