Skip to content
  1. Jan 29, 2011
    • Andrew Trick's avatar
      Implementation of path profiling. · 24f5ff0f
      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
      24f5ff0f
  2. Sep 03, 2010
  3. Apr 16, 2010
  4. Apr 15, 2010
  5. Apr 09, 2010
  6. Mar 06, 2010
  7. Mar 05, 2010
  8. Feb 23, 2010
  9. Jan 02, 2010
  10. Sep 01, 2009
  11. Aug 28, 2009
  12. Aug 24, 2009
  13. Aug 20, 2009
  14. Mar 02, 2009
  15. Jan 24, 2008
  16. Jan 07, 2008
    • Gordon Henriksen's avatar
      With this patch, the LowerGC transformation becomes the · 6047b6e1
      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
      6047b6e1
  17. Dec 29, 2007
  18. Sep 27, 2007
  19. Sep 11, 2007
  20. Aug 22, 2007
  21. Feb 23, 2007
  22. Jan 07, 2007
  23. Nov 17, 2006
  24. Nov 03, 2006
  25. Nov 02, 2006
    • Reid Spencer's avatar
      For PR786: · de46e484
      Reid Spencer authored
      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
      de46e484
  26. Aug 08, 2006
  27. Jul 28, 2006
  28. Jun 01, 2006
    • Reid Spencer's avatar
      For PR786: · a62f097c
      Reid Spencer authored
      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.
      
      llvm-svn: 28614
      a62f097c
Loading