Skip to content
  1. Jun 14, 2019
  2. Jun 13, 2019
    • Don Hinton's avatar
      [lit] Disable test on darwin when building shared libs. · ed9c7ec7
      Don Hinton authored
      Summary:
      This test fails to link shared libraries because tries to run
      a copied version of clang-check to see if the mock version of libcxx
      in the same directory can be loaded dynamically.  Since the test is
      specifically designed not to look in the default just-built lib
      directory, it must be disabled when building with
      BUILD_SHARED_LIBS=ON.
      
      Currently only disabling it on Darwin and basing it on the
      enable_shared flag.
      
      Reviewed By: ilya-biryukov
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D61697
      
      llvm-svn: 363298
      ed9c7ec7
    • Richard Smith's avatar
      C++ DR712 and others: handle non-odr-use resulting from an lvalue-to-rvalue... · 17965d42
      Richard Smith authored
      C++ DR712 and others: handle non-odr-use resulting from an lvalue-to-rvalue conversion applied to a member access or similar not-quite-trivial lvalue expression.
      
      Summary:
      When a variable is named in a context where we can't directly emit a
      reference to it (because we don't know for sure that it's going to be
      defined, or it's from an enclosing function and not captured, or the
      reference might not "work" for some reason), we emit a copy of the
      variable as a global and use that for the known-to-be-read-only access.
      
      Reviewers: rjmccall
      
      Subscribers: jdoerfert, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D63157
      
      llvm-svn: 363295
      17965d42
    • Erich Keane's avatar
      PR42182: Allow thread-local to use __cxa_thread_atexit when · 34ec6929
      Erich Keane authored
      -fno-use-cxx-atexit is used
      
      This matches the GCC behavior, __cxa_thread_atexit should be permissible
      even though cxa_atexit is disabled.
      
      Differential Revision: https://reviews.llvm.org/D63283/
      
      llvm-svn: 363288
      34ec6929
    • Leonard Chan's avatar
      [clang][NewPM] Fix broken -O0 test from missing assumptions · 09f56b51
      Leonard Chan authored
      Add an AssumptionCache callback to the InlineFuntionInfo used for the
      AlwaysInlinerPass to match codegen of the AlwaysInlinerLegacyPass to generate
      llvm.assume. This fixes CodeGen/builtin-movdir.c when new PM is enabled by
      default.
      
      Differential Revision: https://reviews.llvm.org/D63170
      
      llvm-svn: 363287
      09f56b51
    • Leonard Chan's avatar
      [clang][NewPM] Fix split debug test · 9f8ce3fe
      Leonard Chan authored
      This contains the part of D62225 which fixes CodeGen/split-debug-single-file.c
      by not placing .dwo sections when using -enable-split-dwarf=split.
      
      Differential Revision: https://reviews.llvm.org/D63168
      
      llvm-svn: 363281
      9f8ce3fe
    • Leonard Chan's avatar
      [clang][NewPM] Fix broken profile test · ab2c0ed0
      Leonard Chan authored
      This contains the part of D62225 which fixes Profile/gcc-flag-compatibility.c
      by adding the pass that allows default profile generation to work under the new
      PM. It seems that ./default.profraw was not being generated with new PM enabled.
      
      Differential Revision: https://reviews.llvm.org/D63155
      
      llvm-svn: 363278
      ab2c0ed0
    • Leonard Chan's avatar
      [clang][NewPM] Fix broken -O0 test from the AlwaysInliner · 587497b8
      Leonard Chan authored
      This contains the part of D62225 which prevents insertion of lifetime
      intrinsics when creating the AlwaysInliner. This fixes the following tests
      when the new PM is enabled by default:
      
      Clang :: CodeGen/aarch64-neon-across.c
      Clang :: CodeGen/aarch64-neon-fcvt-intrinsics.c
      Clang :: CodeGen/aarch64-neon-fma.c
      Clang :: CodeGen/aarch64-neon-perm.c
      Clang :: CodeGen/aarch64-neon-tbl.c
      Clang :: CodeGen/aarch64-poly128.c
      Clang :: CodeGen/aarch64-v8.2a-neon-intrinsics.c
      Clang :: CodeGen/arm-neon-fma.c
      Clang :: CodeGen/arm-neon-numeric-maxmin.c
      Clang :: CodeGen/arm-neon-vcvtX.c
      Clang :: CodeGen/avx-builtins.c
      Clang :: CodeGen/builtins-ppc-p9vector.c
      Clang :: CodeGen/builtins-ppc-vsx.c
      Clang :: CodeGen/lifetime.c
      Clang :: CodeGen/sse-builtins.c
      Clang :: CodeGen/sse2-builtins.c
      
      Differential Revision: https://reviews.llvm.org/D63153
      
      llvm-svn: 363277
      587497b8
    • Sam Clegg's avatar
      [WebAssembly] Modernize include path handling · 818dd866
      Sam Clegg authored
      Move include path construction from
      InitHeaderSearch::AddDefaultIncludePaths in the Driver which appears
      to be the more modern/correct way of doing things.
      
      Differential Revision: https://reviews.llvm.org/D63030
      
      llvm-svn: 363241
      818dd866
    • David L. Jones's avatar
      Revert r361811: 'Re-commit r357452 (take 2): "SimplifyCFG SinkCommonCodeFromPredecessors ...' · c73fadaa
      David L. Jones authored
      We have observed some failures with internal builds with this revision.
      
      - Performance regressions:
        - llvm's SingleSource/Misc evalloop shows performance regressions (although these may be red herrings).
        - Benchmarks for Abseil's SwissTable.
      - Correctness:
        - Failures for particular libicu tests when building the Google AppEngine SDK (for PHP).
      
      hwennborg has already been notified, and is aware of reproducer failures.
      
      llvm-svn: 363220
      c73fadaa
  3. Jun 12, 2019
    • Alex Lorenz's avatar
      [clang-scan-deps] initial outline of the tool that runs preprocessor to find · f36d8373
      Alex Lorenz authored
      dependencies over a JSON compilation database
      
      This commit introduces an outline for the clang-scan-deps tool that will be
      used to implement fast dependency discovery phase using implicit modules for
      explicit module builds.
      
      The initial version of the tool works by computing non-modular header dependencies
      for files in the compilation database without any optimizations
      (i.e. without source minimization from r362459).
      The tool spawns a number of worker threads to run the clang compiler workers in parallel.
      
      The immediate goal for clang-scan-deps is to create a ClangScanDeps library
      which will be used to build up this tool to use the source minimization and
      caching multi-threaded filesystem to implement the optimized non-incremental
      dependency scanning phase for a non-modular build. This will allow us to do
      benchmarks and comparisons for performance that the minimization and caching give us
      
      Differential Revision: https://reviews.llvm.org/D60233
      
      llvm-svn: 363204
      f36d8373
    • Reid Kleckner's avatar
      [MS] Pretend constexpr variable template specializations are inline · 4e953899
      Reid Kleckner authored
      Fixes link errors with clang and the latest Visual C++ 14.21.27702
      headers, which was reported as PR42027.
      
      I chose to intentionally make these things linkonce_odr, i.e.
      discardable, so that we don't emit definitions of these things in every
      translation unit that includes STL headers.
      
      Note that this is *not* what MSVC does: MSVC has not yet implemented C++
      DR2387, so they emit fully specialized constexpr variable templates with
      static / internal linkage.
      
      Reviewers: rsmith
      
      Differential Revision: https://reviews.llvm.org/D63175
      
      llvm-svn: 363191
      4e953899
    • Richard Smith's avatar
      PR42220: take into account the possibility of aggregates with base · c69cc842
      Richard Smith authored
      classes when checking an InitListExpr for lifetime extension.
      
      llvm-svn: 363188
      c69cc842
    • Zi Xuan Wu's avatar
      [PowerPC] [Clang] Port SSE2 intrinsics to PowerPC · cc12f68f
      Zi Xuan Wu authored
      Port emmintrin.h which include Intel SSE2 intrinsics implementation to PowerPC platform (using Altivec).
      
      The new headers containing those implemenations are located into a directory named ppc_wrappers
      which has higher priority when the platform is PowerPC on Linux. They are mainly developed by Steven Munroe,
      with contributions from Paul Clarke, Bill Schmidt, Jinsong Ji and Zixuan Wu.
      
      It's a follow-up patch of D62121.
      
      Patched by: Qiu Chaofan <qiucf@cn.ibm.com>
      
      Differential Revision: https://reviews.llvm.org/D62569
      
      llvm-svn: 363122
      cc12f68f
    • Pengfei Wang's avatar
      [X86] [ABI] Fix i386 ABI "__m64" type bug · fbfee60c
      Pengfei Wang authored
      According to System V i386 ABI: the  __m64 type paramater and return
      value are passed by MMX registers. But current implementation treats
      __m64 as i64 which results in parameter passing by stack and returning
      by EDX and EAX.
      
      This patch fixes the bug (https://bugs.llvm.org/show_bug.cgi?id=41029)
      for Linux and NetBSD.
      
      Patch by Wei Xiao (wxiao3)
      
      Differential Revision: https://reviews.llvm.org/D59744
      
      llvm-svn: 363116
      fbfee60c
    • Richard Smith's avatar
      Mark declarations as referenced by a default argument in a · 7f61d441
      Richard Smith authored
      potentially-evaluated context.
      
      This applies even if the use of the default argument is within an
      unevaluated context.
      
      llvm-svn: 363113
      7f61d441
  4. Jun 11, 2019
  5. Jun 10, 2019
  6. Jun 08, 2019
    • Hubert Tong's avatar
      [analyzer][NFC][tests] Pre-normalize expected-plists · 15e3e952
      Hubert Tong authored
      As suggested in the review for D62949, this patch pre-normalizes the
      reference expected output plist files by removing lines containing
      fields for which we expect differences that should be ignored.
      
      llvm-svn: 362877
      15e3e952
    • Hubert Tong's avatar
      [analyzer][NFC][tests] Remove unused expected-plist files · 7081efcc
      Hubert Tong authored
      llvm-svn: 362876
      7081efcc
    • David Blaikie's avatar
      DebugInfo: Add support for 'nodebug' attribute on typedefs and alias templates · 8472fa6c
      David Blaikie authored
      Seems like a logical extension to me - and of interest because it might
      help reduce the debug info size of libc++ by applying this attribute to
      type traits that have a disproportionate debug info cost compared to the
      benefit (& possibly harm/confusion) they cause users.
      
      llvm-svn: 362856
      8472fa6c
    • Keno Fischer's avatar
      [analyzer] Add werror flag for analyzer warnings · 6f48c076
      Keno Fischer authored
      Summary:
      We're using the clang static analyzer together with a number of
      custom analyses in our CI system to ensure that certain invariants
      are statiesfied for by the code every commit. Unfortunately, there
      currently doesn't seem to be a good way to determine whether any
      analyzer warnings were emitted, other than parsing clang's output
      (or using scan-build, which then in turn parses clang's output).
      As a simpler mechanism, simply add a `-analyzer-werror` flag to CC1
      that causes the analyzer to emit its warnings as errors instead.
      I briefly tried to have this be `Werror=analyzer` and make it go
      through that machinery instead, but that seemed more trouble than
      it was worth in terms of conflicting with options to the actual build
      and special cases that would be required to circumvent the analyzers
      usual attempts to quiet non-analyzer warnings. This is simple and it
      works well.
      
      Reviewed-By: NoQ, Szelethusw
      Differential Revision: https://reviews.llvm.org/D62885
      
      llvm-svn: 362855
      6f48c076
Loading