- Apr 29, 2011
-
-
Francois Pichet authored
- unistd.h doesn't exist with MSVC - inline must be __inline in Microsoft C - atexit cannot take a function declared as void f(), must be void f(void). llvm-svn: 130490
-
Nick Lewycky authored
under cmake). Add libprofile_rt.a so that we can tell clang to link against it in --coverage mode. Also turn it on by default in cmake builds. Oscar, this touches a change you made for EXCLUDE_FROM_ALL support -- I think I've done the right thing, but please let me know (or fix and commit) if not! llvm-svn: 130470
-
- Apr 28, 2011
-
-
Nick Lewycky authored
between two reads (threading). Fix an off-by-one in the indirect counter table that I meant to revert after an earlier experiment. Whoops! Implement GCOV_PREFIX. Doesn't handle GCOV_PREFIX_STRIP yet. Fix an off-by-one in string emission. Extra whoops! Tolerate DISubprograms that have null Function*'s attached to them. I don't yet understand what this means, but it happens when you have a global static with a non-trivial constructor/destructor. Fix a crash on switch statements with a single successor (default-only). llvm-svn: 130443
-
- Apr 27, 2011
-
-
Nick Lewycky authored
C89 doesn't have an inline keyword. llvm-svn: 130279
-
- Apr 26, 2011
-
-
Oscar Fuentes authored
llvm-svn: 130199
-
Nick Lewycky authored
llvm-svn: 130191
-
Nick Lewycky authored
Add support for switch and indirectbr edges. This works by densely numbering all blocks which have such terminators, and then separately numbering the possible successors. The predecessors write down a number, the successor knows its own number (as a ConstantInt) and sends that and the pointer to the number the predecessor wrote down to the runtime, who looks up the counter in a per-function table. Coverage data should now be functional, but I haven't tested it on anything other than my 2-file synthetic test program for coverage. llvm-svn: 130186
-
- Apr 16, 2011
-
-
Benjamin Kramer authored
llvm-svn: 129638
-
Nick Lewycky authored
llvm-svn: 129637
-
Nick Lewycky authored
does. Also mostly implement it. Still a work-in-progress, but generates legal output on crafted test cases. llvm-svn: 129630
-
- Apr 15, 2011
-
-
Chris Lattner authored
Luis Felipe Strano Moraes! llvm-svn: 129558
-
- Apr 13, 2011
-
-
Benjamin Kramer authored
llvm-svn: 129467
-
Nick Lewycky authored
llvm-svn: 129423
-
- Apr 12, 2011
-
-
Nick Lewycky authored
specifier. llvm-svn: 129384
-
Nick Lewycky authored
llvm-svn: 129380
-
Nick Lewycky authored
Use debug info in the IR to find the directory/file:line:col. Each time that location changes, bump a counter. Unlike the existing profiling system, we don't try to look at argv[], and thusly don't require main() to be present in the IR. This matches GCC's technique where you specify the profiling flag when producing each .o file. The runtime library is minimal, currently just calling printf at program shutdown time. The API is designed to make it possible to emit GCOV data later on. llvm-svn: 129340
-
- Jan 29, 2011
-
-
Andrew Trick authored
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. llvm-svn: 124515
-
- Sep 03, 2010
-
-
Mikhail Glushenkov authored
Makefile.rules assumes that all EXPORTED_SYMBOL_FILEs have the .exports extension. llvm-svn: 112964
-
- Apr 16, 2010
-
-
Dan Gohman authored
llvm-svn: 101459
-
Dan Gohman authored
to expect them this way, to fix srcdir!=objdir builds. llvm-svn: 101414
-
- Apr 15, 2010
-
-
Daniel Dunbar authored
system. llvm-svn: 101404
-
Anton Korobeynikov authored
llvm-svn: 101387
-
- Apr 09, 2010
-
-
Chris Lattner authored
variable TARGET_HAS_DYNAMIC_LIBS llvm-svn: 100896
-
Chris Lattner authored
llvm-svn: 100895
-
- Mar 06, 2010
-
-
Chris Lattner authored
llvm-svn: 97882
-
- Mar 05, 2010
-
-
Chris Lattner authored
llvm-svn: 97772
-
- Feb 23, 2010
-
-
Daniel Dunbar authored
llvm-svn: 96936
-
- Jan 02, 2010
-
-
Chris Lattner authored
If there is interest, it can be resurrected from SVN. PR4912. llvm-svn: 92422
-
- Sep 01, 2009
-
-
Andreas Neustifter authored
This adds the instrumentation and runtime part of OptimalEdgeProfiling. llvm-svn: 80712
-
- Aug 28, 2009
-
-
Andreas Neustifter authored
See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html llvm-svn: 80372
-
Daniel Dunbar authored
llvm-svn: 80331
-
Daniel Dunbar authored
llvm-svn: 80330
-
Daniel Dunbar authored
llvm-svn: 80303
-
- Aug 24, 2009
-
-
Andreas Neustifter authored
llvm-svn: 79944
-
- Aug 20, 2009
-
-
Daniel Dunbar authored
llvm-svn: 79514
-
Daniel Dunbar authored
that is totally bogus. llvm-svn: 79512
-
- Mar 02, 2009
-
-
Gordon Henriksen authored
llvm-svn: 65801
-
- Jan 24, 2008
-
-
Gordon Henriksen authored
llvm-svn: 46302
-
- Jan 07, 2008
-
-
Gordon Henriksen authored
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
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45425
-