Skip to content
Snippets Groups Projects
  1. Jul 24, 2015
  2. Jul 23, 2015
  3. Jul 22, 2015
  4. Jul 17, 2015
  5. Jul 15, 2015
  6. Jul 13, 2015
  7. Jul 12, 2015
  8. Jul 09, 2015
    • Diego Novillo's avatar
      Add GCC-compatible flags -fprofile-generate and -fprofile-use. · 9b5c02e4
      Diego Novillo authored
      This patch adds support for specifying where the profile is emitted in a
      way similar to GCC. These flags are used to specify directories instead
      of filenames. When -fprofile-generate=DIR is used, the compiler will
      generate code to write to <DIR>/default.profraw.
      
      The patch also adds a couple of extensions: LLVM_PROFILE_FILE can still be
      used to override the directory and file name to use and -fprofile-use
      accepts both directories and filenames.
      
      To simplify the set of flags used in the backend, all the flags get
      canonicalized to -fprofile-instr-{generate,use} when passed to the
      backend. The decision to use a default name for the profile is done
      in the driver.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241825 91177308-0d34-0410-b5e6-96231b3b80d8
      9b5c02e4
  9. Jul 08, 2015
  10. Jul 06, 2015
  11. Jul 03, 2015
  12. Jul 02, 2015
  13. Jun 30, 2015
    • Andrew Wilkins's avatar
      Sphinx-based clang man pages · 8eb384a9
      Andrew Wilkins authored
      Summary:
      This diff introduces .rst files, Sphinx config, and a CMake target
      for building clang man pages. This will deprecate the existing .pod-
      based man page, and will integrate nicely with CMake. This diff does
      not remove the existing man page; that will be done in a follow-up
      once packagers have had a chance to react to the change.
      
      For now, only clang(1) has been done; others can be added over time
      by dropping additional files into the docs/CommandGuide directory.
      The index page for CommandGuide has been copied from LLVM's
      docs/CommandGuide.
      
      The man page itself is mostly the same, with a few minor cosmetic
      changes. The only major change is the SYNOPSIS section. I was unable
      to get .rst/Sphinx produce the same style as in the existing man page.
      Instead, I changed it to match the LLVM tools' relatively simple style.
      
      To build the man pages, use the "docs-clang-man" target if building
      with CMake. Otherwise, use "make -f Makefile.sphinx man".
      
      Reviewers: cmatthews, silvas
      
      Subscribers: dim, gaeke, beanz, cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D10562
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241037 91177308-0d34-0410-b5e6-96231b3b80d8
      8eb384a9
  14. Jun 29, 2015
  15. Jun 27, 2015
  16. Jun 26, 2015
  17. Jun 25, 2015
  18. Jun 24, 2015
  19. Jun 23, 2015
  20. Jun 22, 2015
  21. Jun 19, 2015
    • Alexey Samsonov's avatar
      [CFI] Require -flto instead of implying it. · 340eaaf2
      Alexey Samsonov authored
      Summary:
      This is unfortunate, but would let us land http://reviews.llvm.org/D10467,
      that makes ToolChains responsible for computing the set of sanitizers
      they support.
      
      Unfortunately, Darwin ToolChains doesn't know about actual OS they
      target until ToolChain::TranslateArgs() is called. In particular, it
      means we won't be able to construct SanitizerArgs for these ToolChains
      before that.
      
      This change removes SanitizerArgs::needsLTO() method, so that now
      ToolChain::IsUsingLTO(), which is called very early, doesn't need
      SanitizerArgs to implement this method.
      
      Docs and test cases are updated accordingly. See
      https://llvm.org/bugs/show_bug.cgi?id=23539, which describes why we
      start all these.
      
      Test Plan: regression test suite
      
      Reviewers: pcc
      
      Subscribers: cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D10560
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240170 91177308-0d34-0410-b5e6-96231b3b80d8
      340eaaf2
    • Eric Christopher's avatar
      Fix "the the" in comments/documentation/etc. · dfc33ed9
      Eric Christopher authored
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240110 91177308-0d34-0410-b5e6-96231b3b80d8
      dfc33ed9
    • Peter Collingbourne's avatar
      Implement diagnostic mode for -fsanitize=cfi*, -fsanitize=cfi-diag. · cbd703b1
      Peter Collingbourne authored
      This causes programs compiled with this flag to print a diagnostic when
      a control flow integrity check fails instead of aborting. Diagnostics are
      printed using UBSan's runtime library.
      
      The main motivation of this feature over -fsanitize=vptr is fidelity with
      the -fsanitize=cfi implementation: the diagnostics are printed under exactly
      the same conditions as those which would cause -fsanitize=cfi to abort the
      program. This means that the same restrictions apply regarding compiling
      all translation units with -fsanitize=cfi, cross-DSO virtual calls are
      forbidden, etc.
      
      Differential Revision: http://reviews.llvm.org/D10268
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240109 91177308-0d34-0410-b5e6-96231b3b80d8
      cbd703b1
    • Peter Collingbourne's avatar
      Introduce -fsanitize-trap= flag. · e530af8e
      Peter Collingbourne authored
      This flag controls whether a given sanitizer traps upon detecting
      an error. It currently only supports UBSan. The existing flag
      -fsanitize-undefined-trap-on-error has been made an alias of
      -fsanitize-trap=undefined.
      
      This change also cleans up some awkward behavior around the combination
      of -fsanitize-trap=undefined and -fsanitize=undefined. Previously we
      would reject command lines containing the combination of these two flags,
      as -fsanitize=vptr is not compatible with trapping. This required the
      creation of -fsanitize=undefined-trap, which excluded -fsanitize=vptr
      (and -fsanitize=function, but this seems like an oversight).
      
      Now, -fsanitize=undefined is an alias for -fsanitize=undefined-trap,
      and if -fsanitize-trap=undefined is specified, we treat -fsanitize=vptr
      as an "unsupported" flag, which means that we error out if the flag is
      specified explicitly, but implicitly disable it if the flag was implied
      by -fsanitize=undefined.
      
      Differential Revision: http://reviews.llvm.org/D10464
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240105 91177308-0d34-0410-b5e6-96231b3b80d8
      e530af8e
  22. Jun 18, 2015
  23. Jun 16, 2015
  24. Jun 15, 2015
    • Peter Collingbourne's avatar
      Protection against stack-based memory corruption errors using SafeStack: Clang... · 4d2986d8
      Peter Collingbourne authored
      Protection against stack-based memory corruption errors using SafeStack: Clang command line option and function attribute
      
      This patch adds the -fsanitize=safe-stack command line argument for clang,
      which enables the Safe Stack protection (see http://reviews.llvm.org/D6094
      for the detailed description of the Safe Stack).
      
      This patch is our implementation of the safe stack on top of Clang. The
      patches make the following changes:
      
      - Add -fsanitize=safe-stack and -fno-sanitize=safe-stack options to clang
        to control safe stack usage (the safe stack is disabled by default).
      
      - Add __attribute__((no_sanitize("safe-stack"))) attribute to clang that can be
        used to disable the safe stack for individual functions even when enabled
        globally.
      
      Original patch by Volodymyr Kuznetsov and others at the Dependable Systems
      Lab at EPFL; updates and upstreaming by myself.
      
      Differential Revision: http://reviews.llvm.org/D6095
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@239762 91177308-0d34-0410-b5e6-96231b3b80d8
      4d2986d8
  25. Jun 13, 2015
  26. Jun 11, 2015
  27. Jun 03, 2015
Loading