1. Jan 31, 2020
    • Roman Lebedev's avatar
    • Alexey Bataev's avatar
      [OPENMP50]Handle lastprivate conditionals passed as shared in inner · 4697874c
      Alexey Bataev authored
      regions.
      
      If the lastprivate conditional is passed as shared in inner region, we
      shall check if it was ever changed and use this updated value after exit
      from the inner region as an update value.
      4697874c
    • Yonghong Song's avatar
      [BPF] fix a bug in BPFMISimplifyPatchable pass with -O0 · 795bbb36
      Yonghong Song authored
      The recommended optimization level for BPF programs
      is O2 since (1). BPF is running inside the kernel and
      linux kernel won't work at -O0 level, and (2). Verifier
      is not able to handle O0 code properly, e.g., potential
      large stack size and a lot of spills.
      
      But we should keep -O0 at least compiling.
      This patch fixed a bug in BPFMISimplifyPatchable phase
      where with -O0, a segmentation fault will happen for a
      simple program like:
        int test(int a, int b) { return a + b; }
      
      A test case is added to capture such a case.
      
      Differential Revision: https://reviews.llvm.org/D73681
      795bbb36
    • Sergey Dmitriev's avatar
      [Clang][Bundler] Reduce fat object size · c53cb2bd
      Sergey Dmitriev authored
      Summary:
      Fat object size has significantly increased after D65819 which changed bundler tool to add host object as a normal bundle to the fat output which almost doubled its size. That patch was fixing the following issues
      
      1. Problems associated with the partial linking - global constructors were not called for partially linking objects which clearly resulted in incorrect behavior.
      2. Eliminating "junk" target object sections from the linked binary on the host side.
      
      The first problem is no longer relevant because we do not use partial linking for creating fat objects anymore. Target objects sections are now inserted into the resulting fat object with a help of llvm-objcopy tool.
      
      The second issue, "junk" sections in the linked host binary, has been fixed in D73408 by adding "exclude" flag to the fat object's sections which contain target objects. This flag tells linker to drop section from the inputs when linking executable or shared library, therefore these sections will not be propagated in the linked binary.
      
      Since both problems have been solved, we can revert D65819 changes to reduce fat object size and this patch essentially is doing that.
      
      Reviewers: ABataev, alexshap, jdoerfert
      
      Reviewed By: ABataev
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D73642
      c53cb2bd
    • Lubomir Litchev's avatar
      [MLIR] Add the sqrt operation to mlir. · fcabccd3
      Lubomir Litchev authored
      Summary: Add and pipe through the sqrt operation for Standard and LLVM dialects.
      
      Reviewers: nicolasvasilache, ftynse
      
      Reviewed By: ftynse
      
      Subscribers: frej, ftynse, merge_guards_bot, flaub, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D73571
      fcabccd3
    • Charusso's avatar
      [analyzer] CheckerContext: Make the Preprocessor available · 38ab3b87
      Charusso authored
      Summary:
      This patch hooks the `Preprocessor` trough `BugReporter` to the
      `CheckerContext` so the checkers could look for macro definitions.
      
      Reviewed By: NoQ
      
      Differential Revision: https://reviews.llvm.org/D69731
      38ab3b87
    • Alex Zinenko's avatar
      [mlir] EnumsGen: dissociate string form of integer enum from C++ symbol name · fdc496a3
      Alex Zinenko authored
      Summary:
      In some cases, one may want to use different names for C++ symbol of an
      enumerand from its string representation. In particular, in the LLVM dialect
      for, e.g., Linkage, we would like to preserve the same enumerand names as LLVM
      API and the same textual IR form as LLVM IR, yet the two are different
      (CamelCase vs snake_case with additional limitations on not being a C++
      keyword).
      
      Modify EnumAttrCaseInfo in OpBase.td to include both the integer value and its
      string representation. By default, this representation is the same as C++
      symbol name. Introduce new IntStrAttrCaseBase that allows one to use different
      names. Exercise it for LLVM Dialect Linkage attribute. Other attributes will
      follow as separate changes.
      
      Differential Revision: https://reviews.llvm.org/D73362
      fdc496a3
  2. Jan 30, 2020