1. Jun 06, 2020
    • Louis Dionne's avatar
      [libc++abi] Properly fix XFAILs for exception alignment · d520dfec
      Louis Dionne authored
      Since <unwind.h> is in the SDK, not in /usr/include, the XFAILs must
      be predicated on the compiler version (ideally even on the SDK version)
      instead of the target system version.
      d520dfec
    • Nicolas Vasilache's avatar
    • Jacques Pienaar's avatar
      [mlir] Add verify method to adaptor · b0921f68
      Jacques Pienaar authored
      This allows verifying op-indepent attributes (e.g., attributes that do not require the op to have been created) before constructing an operation. These include checking whether required attributes are defined or constraints on attributes (such as I32 attribute). This is not perfect (e.g., if one had a disjunctive constraint where one part relied on the op and the other doesn't, then this would not try and extract the op independent from the op dependent).
      
      The next step is to move these out to a trait that could be verified earlier than in the generated method. The first use case is for inferring the return type while constructing the op. At that point you don't have an Operation yet and that ends up in one having to duplicate the same checks, e.g., verify that attribute A is defined before querying A in shape function which requires that duplication. Instead this allows one to invoke a method to verify all the traits and, if this is checked first during verification, then all other traits could use attributes knowing they have been verified.
      
      It is a little bit funny to have these on the adaptor, but I see the adaptor as a place to collect information about the op before the op is constructed (e.g., avoiding stringly typed accessors, verifying what is possible to verify before the op is constructed) while being cheap to use even with constructed op (so layer of indirection between the op constructed/being constructed). And from that point of view it made sense to me.
      
      Differential Revision: https://reviews.llvm.org/D80842
      b0921f68
    • Louis Dionne's avatar
      [CMake] Do not append -lm to CMAKE_REQUIRED_LIBRARIES on Apple · f57dd415
      Louis Dionne authored
      On Apple platforms, linking against libSystem.dylib is sufficient, and
      some Apple platforms don't provide libm.dylib. On those platforms, adding
      -lm to CMAKE_REQUIRED_LIBRARIES causes all subsequent compile-flag checks
      to fail due to the missing library.
      
      Differential Revision: https://reviews.llvm.org/D81265
      f57dd415
    • Yaxun (Sam) Liu's avatar
      [HIP] Add default header and include path · 11d06b95
      Yaxun (Sam) Liu authored
      To support std::complex and some other standard C/C++ functions in HIP device code,
      they need to be forced to be __host__ __device__ functions by pragmas. This is done
      by some clang standard C++ wrapper headers which are shared between cuda-clang and hip-Clang.
      
      For these standard C++ wapper headers to work properly, specific include path order
      has to be enforced:
      
        clang C++ wrapper include path
        standard C++ include path
        clang include path
      
      Also, these C++ wrapper headers require device version of some standard C/C++ functions
      must be declared before including them. This needs to be done by including a default
      header which declares or defines these device functions. The default header is always
      included before any other headers are included by users.
      
      This patch adds the the default header and include path for HIP.
      
      Differential Revision: https://reviews.llvm.org/D81176
      11d06b95
    • Simon Pilgrim's avatar
      ScalarEvolutionNormalization.h - reduce ScalarEvolutionExpressions.h include... · a3597eca
      Simon Pilgrim authored
      ScalarEvolutionNormalization.h - reduce ScalarEvolutionExpressions.h include to forward declaration. NFC.
      a3597eca
    • Simon Pilgrim's avatar
      TypeMetadataUtils.h - reduce Instructions.h include to forward declaration. NFC. · ea0880dd
      Simon Pilgrim authored
      Move implicit include dependencies down to source file.
      ea0880dd
    • Sanjay Patel's avatar
      [x86] form reduction intrinsics from vectorizers instead of raw IR · e50059f6
      Sanjay Patel authored
      Motivating examples are seen in the PhaseOrdering tests based on:
      https://bugs.llvm.org/show_bug.cgi?id=43953#c2 - if we have
      intrinsics there, some pass can fold them.
      
      The intrinsics are still named "experimental" at this point, but
      if there is no fallout from this patch, that will be a good
      indicator that it is safe to finalize them.
      
      Differential Revision: https://reviews.llvm.org/D80867
      e50059f6
    • Sanjay Patel's avatar
      22c4c6dd
    • Nico Weber's avatar
      [gn build] (manually) port a6fcf5ca · 7928f2c1
      Nico Weber authored
      7928f2c1
    • Arthur Eubanks's avatar
      Add ASan metadata globals to @llvm.compiler.used under COFF · 8133e289
      Arthur Eubanks authored
      Summary:
      This matches ELF.
      
      This makes the number of ASan failures under the new pass manager on
      Windows go from 18 to 1.
      
      Under the old pass manager, the ASan module pass was one of the very
      last things run, so these globals didn't get removed due to GlobalOpt.
      But with the NPM the ASan module pass that adds these globals are run
      much earlier in the pipeline and GlobalOpt ends up removing them.
      
      Reviewers: vitalybuka, hans
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D81175
      8133e289
    • Arthur Eubanks's avatar
      Mark lambda in use-after-scope-capture.cpp as noinline · f59311e3
      Arthur Eubanks authored
      Summary:
      As explained in https://bugs.llvm.org/show_bug.cgi?id=46208,
      symbolization on Windows after inlining and around
      lambdas/std::functions doesn't work very well. Under the new pass
      manager, there is inlining at -O1.
      use-after-scope-capture.cpp checks that the symbolization points to the
      line containing "return x;", but the combination of
      Windows/inlining/lambdas makes the symbolization point to the line
      "f = [&x]() {".
      
      Mark the lambda as noinline since this test is not a test for
      symbolization.
      
      Reviewers: hans, dblaikie, vitalybuka
      
      Subscribers: #sanitizers
      
      Tags: #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D81193
      f59311e3
  2. Jun 05, 2020