#
bfff254a |
| 07-Dec-2016 |
Chris Bieneman <beanz@apple.com> |
Fix the apple build issue caused by r288956
Should be checking if HAVE_CRASHREPORTERCLIENT_H is defined not relying on it having a value.
llvm-svn: 288963
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
0e3cc3c6 |
| 30-Sep-2016 |
Joerg Sonnenberger <joerg@bec.de> |
Convert ENABLE_BACKTRACES into a 0/1 definition.
llvm-svn: 282918
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1, llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
ebeee960 |
| 27-May-2016 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
Use C++ casts to avoid a warning
warning: cast from type ‘const void*’ to type ‘llvm::PrettyStackTraceEntry*’ casts away qualifiers [-Wcast-qual] PrettyStackTraceHead = (PrettyStackTraceEntry*)To
Use C++ casts to avoid a warning
warning: cast from type ‘const void*’ to type ‘llvm::PrettyStackTraceEntry*’ casts away qualifiers [-Wcast-qual] PrettyStackTraceHead = (PrettyStackTraceEntry*)Top;
llvm-svn: 271069
show more ...
|
#
3de58a5e |
| 26-May-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't use recursion to print out the PrettyStackTrace after a crash. If the crash was due to a stack overflow, chances are good that this would also cause a stack overflow.
llvm-svn: 270903
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3, llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1 |
|
#
a6b96004 |
| 18-Dec-2015 |
Eric Christopher <echristo@gmail.com> |
Reorganize the C API headers to improve build times.
Type specific declarations have been moved to Type.h and error handling routines have been moved to ErrorHandling.h. Both are included in Core.h
Reorganize the C API headers to improve build times.
Type specific declarations have been moved to Type.h and error handling routines have been moved to ErrorHandling.h. Both are included in Core.h so nothing should change for projects directly including the headers, but transitive dependencies may be affected.
llvm-svn: 255965
show more ...
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4 |
|
#
af3f2420 |
| 07-Aug-2015 |
Nico Weber <nicolasweber@gmx.de> |
Add functions to save and restore the PrettyStackTrace state.
PrettyStackTraceHead is a LLVM_THREAD_LOCAL, which means it's just a global in LLVM_ENABLE_THREADS=NO builds. If a CrashRecoveryContext
Add functions to save and restore the PrettyStackTrace state.
PrettyStackTraceHead is a LLVM_THREAD_LOCAL, which means it's just a global in LLVM_ENABLE_THREADS=NO builds. If a CrashRecoveryContext is used with code that uses PrettyStackEntries, and a crash happens, PrettyStackTraceHead is currently not reset to its pre-crash value. These functions make it possible to add a cleanup to such code that does this.
(Not reseting the value then causes the assert in ~PrettyStackTraceEntry() to fire if the code outside of the CrashRecoveryContext also uses PrettyStackEntries -- for example, clang when building a module.)
Part of PR11974.
llvm-svn: 244338
show more ...
|
Revision tags: llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1, llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2 |
|
#
c4d245c3 |
| 29-Jan-2015 |
Owen Anderson <resistor@mac.com> |
Fix the preprocessor checks used to determine if backtraces have been enabled.
llvm-svn: 227424
|
#
9253bb93 |
| 29-Jan-2015 |
Owen Anderson <resistor@mac.com> |
Use the existing build configuration parameter ENABLE_BACKTRACE to compile out all pretty stack trace support when backtraces are disabled.
This has the nice secondary effect of allowing LLVM to con
Use the existing build configuration parameter ENABLE_BACKTRACE to compile out all pretty stack trace support when backtraces are disabled.
This has the nice secondary effect of allowing LLVM to continue to build for targets without __thread or thread_local support to continue to work so long as they build without support for backtraces.
llvm-svn: 227423
show more ...
|
#
fb3139ad |
| 29-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[LPM] Clean up the use of TLS in pretty stack trace and disable it entirely when threads are not enabled. This should allow anyone who needs to bootstrap or cope with a host loader without TLS suppor
[LPM] Clean up the use of TLS in pretty stack trace and disable it entirely when threads are not enabled. This should allow anyone who needs to bootstrap or cope with a host loader without TLS support to limp along without threading support.
There is still some bug in the PPC TLS stuff that is not worked around. I'm getting access to a machine to reproduce and debug this further. There is some chance that I'll have to add a terrible workaround for PPC.
There is also some problem with iOS, but I have no ability to really evaluate what the issue is there. I'm leaving it to folks maintaining that platform to suggest a path forward -- personally I don't see any useful path forward that supports threading in LLVM but does so without support for *very basic* TLS. Note that we don't need more than some pointers, and we don't need constructors, destructors, or any of the other fanciness which remains widely unimplemented.
llvm-svn: 227411
show more ...
|
#
b2fe3e5c |
| 28-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[LPM] Fix the PPC attribute to be spelled 'global-dynamic'. This should let the build bot make finish compiling stage2.
llvm-svn: 227391
|
#
be09eb75 |
| 28-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[LPM] Try to work around a bug with local-dynamic TLS on PowerPC 64.
Sadly, this precludes optimizing it down to initial-exec or local-exec when statically linking, and in general makes the code slo
[LPM] Try to work around a bug with local-dynamic TLS on PowerPC 64.
Sadly, this precludes optimizing it down to initial-exec or local-exec when statically linking, and in general makes the code slower on PPC 64, but there's nothing else for it until we can arrange to produce the correct bits for the linker.
Lots of thanks to Ulirch for tracking this down and Bill for working on the long-term fix to LLVM so that we can relegate this to old host clang versions.
I'll be watching the PPC build bots to make sure this effectively revives them.
llvm-svn: 227352
show more ...
|
#
16b670ec |
| 28-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[LPM] Rip all of ManagedStatic and ThreadLocal out of the pretty stack tracing code.
Managed static was just insane overhead for this. We took memory fences and external function calls in every path
[LPM] Rip all of ManagedStatic and ThreadLocal out of the pretty stack tracing code.
Managed static was just insane overhead for this. We took memory fences and external function calls in every path that pushed a pretty stack frame. This includes a multitude of layers setting up and tearing down passes, the parser in Clang, everywhere. For the regression test suite or low-overhead JITs, this was contributing to really significant overhead.
Even the LLVM ThreadLocal is really overkill here because it uses pthread_{set,get}_specific logic, and has careful code to both allocate and delete the thread local data. We don't actually want any of that, and this code in particular has problems coping with deallocation. What we want is a single TLS pointer that is valid to use during global construction and during global destruction, any time we want. That is exactly what every host compiler and OS we use has implemented for a long time, and what was standardized in C++11. Even though not all of our host compilers support the thread_local keyword, we can directly use the platform-specific keywords to get the minimal functionality needed. Provided this limited trial survives the build bots, I will move this to Compiler.h so it is more widely available as a light weight if limited alternative to the ThreadLocal class. Many thanks to David Majnemer for helping me think through the implications across platforms and craft the MSVC-compatible syntax.
The end result is *substantially* faster. When running llc in a tight loop over a small IR file targeting the aarch64 backend, this improves its performance by over 10% for me. It also seems likely to fix the remaining regressions seen by JIT users with threading enabled.
This may actually have more impact on real-world compile times due to the use of the pretty stack tracing utility throughout the rest of Clang or LLVM, but I've not collected any detailed measurements.
llvm-svn: 227300
show more ...
|
Revision tags: llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1, llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1, llvmorg-3.4.1, llvmorg-3.4.1-rc2, llvmorg-3.4.1-rc1 |
|
#
8d399f87 |
| 09-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Replace some comparisons with 'nullptr' with simple boolean checks to reduce verbosity.
llvm-svn: 205829
|
#
c10719f5 |
| 07-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Make use of 'nullptr' in the Support library.
llvm-svn: 205697
|
#
8a8cd2ba |
| 07-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
Re-sort all of the includes with ./utils/sort_includes.py so that subsequent changes are easier to review. About to fix some layering issues, and wanted to separate out the necessary churn.
Also com
Re-sort all of the includes with ./utils/sort_includes.py so that subsequent changes are easier to review. About to fix some layering issues, and wanted to separate out the necessary churn.
Also comment and sink the include of "Windows.h" in three .inc files to match the usage in Memory.inc.
llvm-svn: 198685
show more ...
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
c10ca903 |
| 04-Nov-2013 |
Filip Pizlo <fpizlo@apple.com> |
Make the pretty stack trace be an opt-in, rather than opt-out, facility. Enable pretty stack traces by default if you use PrettyStackTraceProgram, so that existing LLVM-based tools will continue to
Make the pretty stack trace be an opt-in, rather than opt-out, facility. Enable pretty stack traces by default if you use PrettyStackTraceProgram, so that existing LLVM-based tools will continue to get it without any changes.
llvm-svn: 193971
show more ...
|
#
9f50ccd1 |
| 03-Nov-2013 |
Filip Pizlo <fpizlo@apple.com> |
When LLVM is embedded in a larger application, it's not OK for LLVM to intercept crashes. LLVM already has the ability to disable this functionality. This patch exposes it via the C API.
llvm-svn
When LLVM is embedded in a larger application, it's not OK for LLVM to intercept crashes. LLVM already has the ability to disable this functionality. This patch exposes it via the C API.
llvm-svn: 193937
show more ...
|
#
67d97093 |
| 13-Sep-2013 |
Filip Pizlo <fpizlo@apple.com> |
Make PrettyStackTraceEntry use ManagedStatic for its ThreadLocal.
This was somewhat tricky because ~PrettyStackTraceEntry() may run after llvm_shutdown() has been called. This is rare and only happ
Make PrettyStackTraceEntry use ManagedStatic for its ThreadLocal.
This was somewhat tricky because ~PrettyStackTraceEntry() may run after llvm_shutdown() has been called. This is rare and only happens for a common idiom used in the main() functions of command-line tools. This works around the idiom by skipping the stack clean-up if the PrettyStackTraceHead ManagedStatic is not constructed (i.e. llvm_shutdown() has been called).
llvm-svn: 190730
show more ...
|
Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
#
4e06def8 |
| 26-Mar-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Add a new watchdog timer interface. The interface does not permit handling timeouts, so it's only really useful if you're going to crash anyways. Use it in the pretty stack trace printer to kill the
Add a new watchdog timer interface. The interface does not permit handling timeouts, so it's only really useful if you're going to crash anyways. Use it in the pretty stack trace printer to kill the compiler if we hang while printing the stack trace.
llvm-svn: 177962
show more ...
|
Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3 |
|
#
ed0881b2 |
| 03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module
Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented.
Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =]
llvm-svn: 169131
show more ...
|
Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1, llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1, llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1 |
|
#
c4b9b526 |
| 05-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Add more initializers to quiet a clang warning.
llvm-svn: 141163
|
#
0ab5e2cd |
| 15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of comment typos found by codespell. Patch by Luis Felipe Strano Moraes!
llvm-svn: 129558
|
Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
#
9b43f336 |
| 23-Dec-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Change all self assignments X=X to (void)X, so that we can turn on a new gcc warning that complains on self-assignments and self-initializations.
llvm-svn: 122458
|
#
ca466731 |
| 03-Dec-2010 |
Eric Christopher <echristo@apple.com> |
Apparently OS X 10.4 doesn't have __crashreporter_info__.
Try to fix building on the wayback machine.
llvm-svn: 120801
|
#
447762da |
| 29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support.
llvm-svn: 120298
|