Skip to content
  1. Feb 12, 2019
  2. Feb 11, 2019
    • Eli Friedman's avatar
      [Sema] Mark GNU compound literal array init as an rvalue. · 88fccbde
      Eli Friedman authored
      Basically the same issue as string init, except it didn't really have
      any visible consequences before I removed the implicit lvalue-to-rvalue
      conversion from CodeGen.
      
      While I'm here, a couple minor drive-by cleanups: IgnoreParens never
      returns a ConstantExpr, and there was a potential crash with string init
      involving a ChooseExpr.
      
      The analyzer test change maybe indicates we could simplify the analyzer
      code a little with this fix?  Apparently a hack was added to support
      lvalues in initializers in r315750, but I'm not really familiar with the
      relevant code.
      
      Fixes regression reported in the kernel build at
      https://bugs.llvm.org/show_bug.cgi?id=40430#c6 .
      
      Differential Revision: https://reviews.llvm.org/D58069
      
      llvm-svn: 353762
      88fccbde
    • Heejin Ahn's avatar
      [WebAssembly] Make thread-related options consistent · 9d5a089b
      Heejin Ahn authored
      Summary:
      There have been three options related to threads and users had to set
      all three of them separately to get the correct compilation results.
      This makes sure the relationship between the options makes sense and
      sets necessary options for users if only part of the necessary options
      are specified. This does:
      
      - Remove `-matomics`; this option alone does not enable anything, so
        removed it to not confuse users.
      - `-mthread-model posix` sets `-target-feature +atomics`
      - `-pthread` sets both `-target-feature +atomics` and
        `-mthread-model posix`
      Also errors out when explicitly given options don't match, such as
      `-pthread` is given with `-mthread-model single`.
      
      Reviewers: dschuff, sbc100, tlively, sunfish
      
      Subscribers: jgravelle-google, jfb, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57874
      
      llvm-svn: 353761
      9d5a089b
    • Francis Visoiu Mistrih's avatar
      [NFC][clangd] Remove unused lambda capture · 1608c120
      Francis Visoiu Mistrih authored
      Avoid this warning:
      
      llvm/clang-tools-extra/clangd/ClangdServer.cpp:365:23: warning: lambda
      capture 'this' is not used [-Wunused-lambda-capture]
      
        auto Action = [Sel, this](decltype(CB) CB, std::string File,
                          ~~^~~~
      1 warning generated.
      
      llvm-svn: 353760
      1608c120
    • Matt Arsenault's avatar
      GlobalISel: Verify G_EXTRACT · b2d24577
      Matt Arsenault authored
      llvm-svn: 353759
      b2d24577
    • Evandro Menezes's avatar
      [TargetLibraryInfo] Update run time support for Windows · f4a36959
      Evandro Menezes authored
      It seems that, since VC19, the `float` C99 math functions are supported for all
      targets, unlike the C89 ones.
      
      According to the discussion at https://reviews.llvm.org/D57625.
      
      llvm-svn: 353758
      f4a36959
    • Ana Pazos's avatar
      [LegalizeTypes] Expand FNEG to bitwise op for IEEE FP types · 9a3dc3e6
      Ana Pazos authored
      Summary:
      Except for custom floating point types x86_fp80 and ppc_fp128,
      expand Y = FNEG(X) to Y = X ^ sign mask to avoid library call.
       Using bitwise operation can improve code size and performance.
      
      Reviewers: efriedma
      
      Reviewed By: efriedma
      
      Subscribers: efriedma, kpn, arsenm, eli.friedman, javed.absar, rbar, johnrusso, simoncook, sabuasal, niosHD, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, asb, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57875
      
      llvm-svn: 353757
      9a3dc3e6
    • Rui Ueyama's avatar
      lld: unquote possibly quoted `EXTERN("symbol")` entry in linker script. · 016833ba
      Rui Ueyama authored
      gold accepts quoted strings. binutils requires quoted strings for some
      kinds of symbols, e.g.:
      
        it accepts quoted symbols with @ in name:
      
        $ echo 'EXTERN("__libc_start_main@@GLIBC_2.2.5")' > a.script
        $ g++ a.script
        /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o: In function `_start':
        (.text+0x20): undefined reference to `main'
        collect2: error: ld returned 1 exit status
      
        but rejects them if unquoted:
      
        $ echo 'EXTERN(__libc_start_main@@GLIBC_2.2.5)' > a.script
        $ g++ a.script
        a.script: file not recognized: File format not recognized
        collect2: error: ld returned 1 exit status
      
      To maintain compatibility with existing linker scripts support quoted
      strings in lld as well.
      
      Patch by Lucian Adrian Grijincu.
      
      Differential Revision: https://reviews.llvm.org/D57987
      
      llvm-svn: 353756
      016833ba
    • Scott Linder's avatar
      [IRReader] Expose getLazyIRModule · 72a0f4e8
      Scott Linder authored
      Currently there is no way to lazy-load an in-memory IR module without
      first writing it to disk. This patch just exposes the existing
      implementation of getLazyIRModule.
      
      This is effectively a revert of rL212364
      
      Differential Revision: https://reviews.llvm.org/D56203
      
      llvm-svn: 353755
      72a0f4e8
    • Matt Arsenault's avatar
      GlobalISel: Implement moreElementsVector for implicit_def · 18ec3826
      Matt Arsenault authored
      llvm-svn: 353754
      18ec3826
    • Raphael Isemann's avatar
      Fixed function name in log statement · f75a9dc1
      Raphael Isemann authored
      llvm-svn: 353753
      f75a9dc1
    • Jonas Devlieghere's avatar
      Use of `@return` is not appropriate for a function with a void return type. · 31ad39c5
      Jonas Devlieghere authored
      The comment for this declaration causes a warning with -Wdocumentation:
      Invalid @return in documentation comment SetCollectingStats() in
      SBTarget.h.
      
      llvm-svn: 353752
      31ad39c5
    • Rui Ueyama's avatar
      Convert CRLF. NFC. · 031fe109
      Rui Ueyama authored
      llvm-svn: 353751
      031fe109
    • Matt Arsenault's avatar
      GlobalISel: Fix not calling the observer when legalizing G_EXTRACT · 68fc38ce
      Matt Arsenault authored
      llvm-svn: 353750
      68fc38ce
    • Jonathan Peyton's avatar
      [OpenMP] Remove accidental commit to config-ix.cmake in r353747 · 2f744592
      Jonathan Peyton authored
      llvm-svn: 353748
      2f744592
    • Jonathan Peyton's avatar
      [OpenMP] Fix thread_limits to work properly for teams construct · 65ebfeec
      Jonathan Peyton authored
      The thread-limit-var and omp_get_thread_limit API was not perfectly handled for
      teams construct. Now, when modified by thread_limit clause, omp_get_thread_limit
      reports the correct value. In addition, the value is restored when leaving the
      teams construct to what it was in the encountering context.
      
      This is done partly by creating the notion of a Contention Group root (CG root)
      that keeps track of the thread at the root of each separate CG, the
      thread-limit-var associated with the CG, and associated counter of active
      threads within the contention group.
      
      thread-limits are passed from master to worker threads via an entry in the ICV
      data structure. When a "contention group switch" occurs, a new CG root record is
      made and passed from master to worker. A thread could potentially have several
      CG root records if it encounters multiple nested teams constructs (but at the
      moment the spec doesn't allow for nested teams, so the most one could have
      currently is 2). The master of the teams masters gets the thread-limit clause
      value stored to its local ICV structure, and the other teams masters copy it
      from the master. The thread-limit is set from that ICV copy and restored to the
      ICV copy when entering and leaving the teams construct.
      
      This change also fixes a bug when the top-level teams construct team gets
      reused, and OMP_DYNAMIC was true, which can cause the expected size of this team
      to be smaller than what was actually allocated. The fix updates the size of the
      team after its threads were reserved.
      
      Patch by Terry Wilmarth
      
      Differential Revision: https://reviews.llvm.org/D56804
      
      llvm-svn: 353747
      65ebfeec
    • Daniel Sanders's avatar
      [globalisel] Correct string emitted by GISelChangeObserver::erasingInstr() · 24e0af69
      Daniel Sanders authored
      The API indicates that the MI is about to be erased rather than it has been erased.
      
      llvm-svn: 353746
      24e0af69
    • Craig Topper's avatar
      [X86] Correct the memory operand for the FLD emitted in FP_TO_INTHelper for 32-bit SSE targets. · 75eb0af8
      Craig Topper authored
      We were using DstTy, but that represents the integer type we are converting to which is i64 in this
      case. The FLD is part of an intermediate step to get from the SSE registers to the x87 registers.
      If the floating point type is f32, the memory operand should reflect a 4 byte access not an 8 byte
      access. The store we used to get from SSE to the stack is using the corect size.
      
      While there, consistenly use TheVT in place of Op.getOperand(0).getValueType() throughout the function.
      
      llvm-svn: 353745
      75eb0af8
    • Nico Weber's avatar
      Fix a few tests that were missing ':' on CHECK lines and weren't testing anything. · 346f1e97
      Nico Weber authored
      Found by `git grep '\/\/ CHECK-[^: ]* ' clang/test/ | grep -v RUN:`.
      
      Also tweak CodeGenCXX/arm-swiftcall.cpp to still pass now that it checks more.
      
      Differential Revision: https://reviews.llvm.org/D58061
      
      llvm-svn: 353744
      346f1e97
Loading