Skip to content
  1. Oct 08, 2013
  2. Oct 07, 2013
    • Rui Ueyama's avatar
      Rename lld:*_error::_ -> lld:*_error::ErrorCode. · 4c4d5727
      Rui Ueyama authored
      Summary: Rename lld:*_error::_ -> lld:*_error::ErrorCode.
      
      Reviewers: shankarke
      
      CC: llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1851
      
      llvm-svn: 192138
      4c4d5727
    • David Majnemer's avatar
      Windows: Avoiding resizing, use uninitialized data() instead · f07777c8
      David Majnemer authored
      This is ever-so faster but more importantly matches what we have elsewhere.
      
      llvm-svn: 192137
      f07777c8
    • Nick Kledzik's avatar
      · 312fcd0e
      Nick Kledzik authored
      libcxxabi contains the runtime support for C++.  But, as some folks have 
      realized, it is not complete.  It relies on some _Unwind_* functions to be
      supplied by the OS. That means it cannot be ported to platforms that don’t 
      already have an unwinder.  
      
      Years ago Apple wrote its own unwinder for MacOSX and iOS.  To make libcxxabi 
      complete, Apple has decided the source code for its unwinder can be contributed
      to the open source LLVM libcxxabi project, with a dual licensed under LLVM 
      and MIT license.
      
      So, I’ve spent some time cleaning up the sources to make them conform with 
      LLVM style and to conditionalize the sources in a way that should make it 
      easier to port to other platforms.  The sources are in a separate "Unwind" 
      directory under "src" in libcxxabi.  
      
      Background:
      Most architectures now use "zero cost" exceptions for C++.  The zero cost means
      there are no extra instructions executed if no exceptions are thrown.  But if 
      an exception is thrown, the runtime must consult side tables and figure out how
      to restore registers and "unwind" from the current stack frame to the catch 
      clause.  That ability to modify the stack frames and cause the thread to resume 
      in a catch clause with all registers restored properly is the main purpose 
      of the unwinder.
      
      This unwinder has two levels of API.  The high level APIs are the _Unwind_* 
      functions which the cxa_* exception functions in libcxxabi require.  The low 
      level APIs are the unw_* functions which are an interface defined by the the 
      old HP libunwind project (which shares no code with this unwinder).
      
      llvm-svn: 192136
      312fcd0e
Loading