Commit Graph

254 Commits

Author SHA1 Message Date
Andrew Trick
04317cc618 Implementation of path profiling.
Modified patch by Adam Preuss.

This builds on the existing framework for block tracing, edge profiling and optimal edge profiling.
See -help-hidden for new flags.
For documentation, see the technical report "Implementation of Path Profiling..." in llvm.org/pubs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124515 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 01:09:53 +00:00
Mikhail Glushenkov
a7236d3a92 Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'.
Makefile.rules assumes that all EXPORTED_SYMBOL_FILEs have the .exports
extension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112964 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03 15:42:45 +00:00
Dan Gohman
630b58bb5a Delete a blank line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-16 13:32:55 +00:00
Dan Gohman
7c52f2ee06 Make the export files absolute paths, and change Makefile.rules
to expect them this way, to fix srcdir!=objdir builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101414 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-15 23:08:00 +00:00
Daniel Dunbar
51faa37b4e Don't use absolute path for EXPORTED_SYMBOL_FILE, this breaks under the new
system.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101404 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-15 21:57:43 +00:00
Anton Korobeynikov
764f62ba60 Revert r100896 and around - this breaks the only mingw32 buildbot we have.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101387 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-15 19:51:42 +00:00
Chris Lattner
e3a39d40db suck the propagating "has dynamic libs" check into a single makefile
variable TARGET_HAS_DYNAMIC_LIBS


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100896 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-09 20:51:47 +00:00
Chris Lattner
21aa347c28 add minix support, patch by Kees van Reeuwijk! PR6797
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100895 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-09 20:45:04 +00:00
Chris Lattner
1c383ca2ef disable this for mingw as well, we really need a 'has no dynamic linking' predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97882 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-06 18:54:37 +00:00
Chris Lattner
8550592b80 disable libprofile on cygwin, patch by Aaron Gray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97772 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05 01:00:34 +00:00
Daniel Dunbar
7cfbe2576d Switch .bc/.ll Makefile rules to use LLVM{CC,CXX} instead of LLVMG{CC,XX}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96936 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23 10:28:06 +00:00
Chris Lattner
5fadf17709 remove the random sampling framework, which is not maintained anymore.
If there is interest, it can be resurrected from SVN.  PR4912.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92422 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02 20:07:03 +00:00
Andreas Neustifter
f771dae69a OptimalEdgeProfiling: Creation of profiles.
This adds the instrumentation and runtime part of OptimalEdgeProfiling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 19:03:44 +00:00
Andreas Neustifter
1c29357c52 Read Makefile.config before using LLVMGCC.
See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80372 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 16:13:45 +00:00
Daniel Dunbar
5a8969a7e2 Another NO_RUNTIME_LIBRARIES tweak...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80331 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 03:06:28 +00:00
Daniel Dunbar
53339fd046 Tweak NO_RUNTIME_LIBS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80330 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 02:20:39 +00:00
Daniel Dunbar
b562b47dee Don't build runtime libraries in an Apple style build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80303 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 23:43:28 +00:00
Andreas Neustifter
ade1a22522 Add llvm_start_edge_profiling to exported symbols for libprofile_rt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 21:41:37 +00:00
Daniel Dunbar
a4b62c4518 Don't try to build .bc version of libprofile if LLVMGCC isn't available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 05:12:55 +00:00
Daniel Dunbar
7dadba34d7 Remove cruft for installing runtime/ libraries directly into the LLVMGCCDIR;
that is totally bogus.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 05:02:41 +00:00
Gordon Henriksen
6da385e07f Drop toy GC runtime.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 03:46:48 +00:00
Gordon Henriksen
bcb265e2af Fixing the stack walker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46302 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-24 05:16:36 +00:00
Gordon Henriksen
8fa8929177 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)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-07 01:30:53 +00:00
Chris Lattner
234d529e58 remove attribution from a variety of miscellaneous files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45425 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 22:59:10 +00:00
Chris Lattner
57360d1f1c remove attributions from the rest of the llvm makefiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45416 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:11:13 +00:00
Gordon Henriksen
326e24fff0 GarbageCollection.html is expanded to encompass the coming
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
2007-09-27 19:31:36 +00:00
Chris Lattner
95bb69acbc Reenable libgc and libprofile is explicitly requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41851 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 17:12:32 +00:00
Chris Lattner
210329a025 remove an obsolete library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41850 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 17:10:52 +00:00
Anton Korobeynikov
b08c6db115 Dror GCCLibraries: they are obsolete since 2.0 release. This also reduces number of licenses used in LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41257 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-21 22:40:44 +00:00
Chris Lattner
6e3d3bc9ee crtend is only for llvm-gcc3, remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34529 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 19:34:09 +00:00
Chris Lattner
5c4a96dfc5 the old trace values pass has been removed, remove its runtime library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32999 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-07 18:13:48 +00:00
Reid Spencer
8b2e1419cf 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31807 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 03:32:33 +00:00
Reid Spencer
ac90d5e50b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31793 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 23:17:27 +00:00
Reid Spencer
162e20934b Remove unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31404 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:58:30 +00:00
Reid Spencer
3ed469ccd7 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 20:25:50 +00:00
John Criswell
fd3a9c7972 Describe and date modifications we made per LGPL requirements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29569 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-08 14:47:54 +00:00
John Criswell
7fc20cafc3 Make information more complete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29568 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-08 14:47:33 +00:00
John Criswell
b112af24dd Reverted previous commit. Thanks, Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29388 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 18:30:52 +00:00
John Criswell
5804c0d40c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29386 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 18:16:00 +00:00
Reid Spencer
72f42bbc9b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28614 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-01 01:55:21 +00:00
Reid Spencer
2362bad21f Put an innocuous statement in this file to quelch warnings about compiling
an empty file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28612 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-01 01:49:08 +00:00
Reid Spencer
18c8b49e7d 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28610 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-01 01:30:27 +00:00
Reid Spencer
19b7e0e0ca 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28453 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-24 19:21:13 +00:00
Reid Spencer
30ea2fa933 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27499 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-07 21:45:23 +00:00
Chris Lattner
8f56902592 add a newline at the end of the file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27492 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-07 18:41:16 +00:00
Reid Spencer
93bc3cdd43 Avoid building the runtime libraries if llvm-gcc version 4 is detected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-06 22:15:51 +00:00
Reid Spencer
0c5f7931d9 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27361 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 14:34:26 +00:00
Evan Cheng
7abddda6cc Optimizing to calloc() to malloc() + memset() can be bad on some platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26732 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-13 21:22:43 +00:00
Chris Lattner
daac729f4d Make the new and old front-ends more similar: now neither uses __main.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26629 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 06:16:28 +00:00
Chris Lattner
bc3814f5e0 fix make install/uninstall of libcrtend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25796 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-30 02:03:56 +00:00