summaryrefslogtreecommitdiffstats
path: root/llvm/runtime
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename profile_rt.so to libprofile_rt.so under configure+make (it already wasNick Lewycky2011-04-292-3/+13
| | | | | | | | | | | | 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
* Only read *predecessor once so as to fix a theoretical issue where it changesNick Lewycky2011-04-281-5/+31
| | | | | | | | | | | | | | | | | | | 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
* Use static inline to do the right thing when built in C99 mode. Of course,Nick Lewycky2011-04-271-2/+3
| | | | | | C89 doesn't have an inline keyword. llvm-svn: 130279
* Honor LLVM_BUILD_RUNTIME.Oscar Fuentes2011-04-261-0/+4
| | | | llvm-svn: 130199
* Add cmakefiles to build profile_rt.so!Nick Lewycky2011-04-262-0/+10
| | | | llvm-svn: 130191
* Rename everything to follow LLVM style ... I think.Nick Lewycky2011-04-262-5/+29
| | | | | | | | | | | | | | 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
* Write out uint64_t as i{0..32},i{33..64} instead of i{0..32},0.Benjamin Kramer2011-04-161-3/+2
| | | | llvm-svn: 129638
* Don't use C++ comments in C code.Nick Lewycky2011-04-161-1/+1
| | | | llvm-svn: 129637
* Rename LineProfiling to GCOVProfiling to more accurately represent what itNick Lewycky2011-04-163-43/+108
| | | | | | | does. Also mostly implement it. Still a work-in-progress, but generates legal output on crafted test cases. llvm-svn: 129630
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-152-2/+2
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Fix format string warning.Benjamin Kramer2011-04-131-1/+1
| | | | llvm-svn: 129467
* Use %ull here.Nick Lewycky2011-04-131-1/+2
| | | | llvm-svn: 129423
* Print our uint64_t with the more portable (C99 and C++0x) %PRIu64 formatNick Lewycky2011-04-121-1/+3
| | | | | | specifier. llvm-svn: 129384
* The counters are unsigned.Nick Lewycky2011-04-121-1/+1
| | | | llvm-svn: 129380
* Add support for line profiling. Very work-in-progress.Nick Lewycky2011-04-122-0/+40
| | | | | | | | | | 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
* Implementation of path profiling.Andrew Trick2011-01-294-23/+310
| | | | | | | | | | 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
* Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'.Mikhail Glushenkov2010-09-032-4/+4
| | | | | | | Makefile.rules assumes that all EXPORTED_SYMBOL_FILEs have the .exports extension. llvm-svn: 112964
* Delete a blank line.Dan Gohman2010-04-161-1/+0
| | | | llvm-svn: 101459
* Make the export files absolute paths, and change Makefile.rulesDan Gohman2010-04-151-1/+1
| | | | | | to expect them this way, to fix srcdir!=objdir builds. llvm-svn: 101414
* Don't use absolute path for EXPORTED_SYMBOL_FILE, this breaks under the newDaniel Dunbar2010-04-151-1/+1
| | | | | | system. llvm-svn: 101404
* Revert r100896 and around - this breaks the only mingw32 buildbot we have.Anton Korobeynikov2010-04-151-1/+1
| | | | llvm-svn: 101387
* suck the propagating "has dynamic libs" check into a single makefile Chris Lattner2010-04-091-1/+1
| | | | | | variable TARGET_HAS_DYNAMIC_LIBS llvm-svn: 100896
* add minix support, patch by Kees van Reeuwijk! PR6797Chris Lattner2010-04-091-1/+1
| | | | llvm-svn: 100895
* disable this for mingw as well, we really need a 'has no dynamic linking' ↵Chris Lattner2010-03-061-1/+1
| | | | | | predicate. llvm-svn: 97882
* disable libprofile on cygwin, patch by Aaron Gray.Chris Lattner2010-03-051-0/+4
| | | | llvm-svn: 97772
* Switch .bc/.ll Makefile rules to use LLVM{CC,CXX} instead of LLVMG{CC,XX}Daniel Dunbar2010-02-231-1/+1
| | | | llvm-svn: 96936
* remove the random sampling framework, which is not maintained anymore.Chris Lattner2010-01-023-89/+0
| | | | | | If there is interest, it can be resurrected from SVN. PR4912. llvm-svn: 92422
* OptimalEdgeProfiling: Creation of profiles.Andreas Neustifter2009-09-012-0/+46
| | | | | | This adds the instrumentation and runtime part of OptimalEdgeProfiling. llvm-svn: 80712
* Read Makefile.config before using LLVMGCC.Andreas Neustifter2009-08-281-0/+2
| | | | | | See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html llvm-svn: 80372
* Another NO_RUNTIME_LIBRARIES tweak...Daniel Dunbar2009-08-281-2/+2
| | | | llvm-svn: 80331
* Tweak NO_RUNTIME_LIBS.Daniel Dunbar2009-08-281-4/+4
| | | | llvm-svn: 80330
* Don't build runtime libraries in an Apple style build.Daniel Dunbar2009-08-271-0/+3
| | | | llvm-svn: 80303
* Add llvm_start_edge_profiling to exported symbols for libprofile_rt.Andreas Neustifter2009-08-241-0/+1
| | | | llvm-svn: 79944
* Don't try to build .bc version of libprofile if LLVMGCC isn't available.Daniel Dunbar2009-08-201-0/+2
| | | | llvm-svn: 79514
* Remove cruft for installing runtime/ libraries directly into the LLVMGCCDIR;Daniel Dunbar2009-08-202-12/+0
| | | | | | that is totally bogus. llvm-svn: 79512
* Drop toy GC runtime.Gordon Henriksen2009-03-027-226/+1
| | | | 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-298-16/+16
| | | | llvm-svn: 45425
* remove attributions from the rest of the llvm makefiles.Chris Lattner2007-12-294-8/+8
| | | | llvm-svn: 45416
* GarbageCollection.html is expanded to encompass the comingGordon Henriksen2007-09-271-0/+5
| | | | | | | capabilities. This is a major rewrite and is easier to read en toto rather than patchwise. llvm-svn: 42414
* Reenable libgc and libprofile is explicitly requested.Chris Lattner2007-09-111-9/+1
| | | | llvm-svn: 41851
* remove an obsolete library.Chris Lattner2007-09-113-165/+0
| | | | llvm-svn: 41850
* Dror GCCLibraries: they are obsolete since 2.0 release. This also reduces ↵Anton Korobeynikov2007-08-2117-1455/+1
| | | | | | number of licenses used in LLVM. llvm-svn: 41257
* crtend is only for llvm-gcc3, remove it.Chris Lattner2007-02-2311-485/+1
| | | | llvm-svn: 34529
* the old trace values pass has been removed, remove its runtime library.Chris Lattner2007-01-075-453/+1
| | | | llvm-svn: 32999
* Undo removal of the runtime libraries. While this may have been a bitReid Spencer2006-11-1748-0/+3188
| | | | | | | 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-1648-3188/+0
| | | | | | be dropped. This patch pertains to removing the runtime directory from LLVM. llvm-svn: 31793
* Remove unused variable.Reid Spencer2006-11-031-1/+0
| | | | llvm-svn: 31404
* For PR786:Reid Spencer2006-11-022-3/+0
| | | | | | | | | | 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
OpenPOWER on IntegriCloud