Skip to content
  1. Apr 05, 2019
    • Alex Lorenz's avatar
      [test] Specify an explicit darwin version in a triple in · 5d289ed3
      Alex Lorenz authored
      `test/Driver/debug-options.c` to ensure that the driver
      selects the DWARF 2 version as intended by the test.
      
      Fixes the `test/Driver/debug-options.c` test regression on GreenDragon
      on macOS that started failing after r357713.
      
      llvm-svn: 357740
      5d289ed3
  2. Apr 04, 2019
  3. Apr 03, 2019
  4. Apr 02, 2019
  5. Apr 01, 2019
    • Michael Kruse's avatar
      [CodeGen] Generate follow-up metadata for loops with more than one transformation. · 58e76426
      Michael Kruse authored
      Before this patch, CGLoop would dump all transformations for a loop into
      a single LoopID without encoding any order in which to apply them.
      rL348944 added the possibility to encode a transformation order using
      followup-attributes.
      
      When a loop has more than one transformation, use the follow-up
      attribute define the order in which they are applied. The emitted order
      is the defacto order as defined by the current LLVM pass pipeline,
      which is:
      
        LoopFullUnrollPass
        LoopDistributePass
        LoopVectorizePass
        LoopUnrollAndJamPass
        LoopUnrollPass
        MachinePipeliner
      
      This patch should therefore not change the assembly output, assuming
      that all explicit transformations can be applied, and no implicit
      transformations in-between. In the former case,
      WarnMissedTransformationsPass should emit a warning (except for
      MachinePipeliner which is not implemented yet). The latter could be
      avoided by adding 'llvm.loop.disable_nonforced' attributes.
      
      Because LoopUnrollAndJamPass processes a loop nest, generation of the
      MDNode is delayed to after the inner loop metadata have been processed.
      A temporary LoopID is therefore used to annotate instructions and
      RAUW'ed by the actual LoopID later.
      
      Differential Revision: https://reviews.llvm.org/D57978
      
      llvm-svn: 357415
      58e76426
    • Alexey Bataev's avatar
      [OPENMP]Allocate clause allocator in target region. · 84c8baee
      Alexey Bataev authored
      According to OpenMP 5.0, 2.11.4 allocate Clause, Restrictions, allocate
      clauses that appear on a target construct or on constructs in a target
      region must specify an allocator expression unless a requires directive
      with the dynamic_allocators clause is present in the same compilation
      unit. Patch adds a check for this restriction.
      
      llvm-svn: 357412
      84c8baee
    • Alexey Bataev's avatar
      [OPENMP] Check that allocated variables are used in private clauses. · e106f25f
      Alexey Bataev authored
      According to OpenMP 5.0 standard, 2.11.4 allocate Clause, Restrictions,
      For any list item that is specified in the allocate clause on a
      directive, a data-sharing attribute clause that may create a private
      copy of that list item must be specified on the same directive. Patch
      adds the checks for this restriction.
      
      llvm-svn: 357390
      e106f25f
  6. Mar 31, 2019
    • Sanjay Patel's avatar
      [InstCombine] canonicalize select shuffles by commuting · b276dd19
      Sanjay Patel authored
      In PR41304:
      https://bugs.llvm.org/show_bug.cgi?id=41304
      ...we have a case where we want to fold a binop of select-shuffle (blended) values.
      
      Rather than try to match commuted variants of the pattern, we can canonicalize the
      shuffles and check for mask equality with commuted operands.
      
      We don't produce arbitrary shuffle masks in instcombine, but select-shuffles are a
      special case that the backend is required to handle because we already canonicalize
      vector select to this shuffle form.
      
      So there should be no codegen difference from this change. It's possible that this
      improves CSE in IR though.
      
      Differential Revision: https://reviews.llvm.org/D60016
      
      llvm-svn: 357366
      b276dd19
    • David Chisnall's avatar
      [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs. · 7b36a864
      David Chisnall authored
      Summary:
      Based on a patch by Dustin Howett, modified to not change the ABI for
      ELF platforms.
      
      Use more Windows-like section names.
      
      This also makes things more readable by PE/COFF debug tools that assume
      sections fit in the first header.
      
      With these changes in, it is now possible to build a working WinObjC
      with clang and the WinObjC version of GNUstep libobjc (upstream GNUstep
      libobjc + a work around for incremental linking, which can be removed
      once LINK.EXE gains a feature to opt sections out of receiving extra
      padding during an incremental link).
      
      Patch by Dustin Howett!
      
      Reviewers: DHowett-MSFT
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D58724
      
      llvm-svn: 357364
      7b36a864
    • David Chisnall's avatar
      COMDAT-fold block descriptors. · 17d42953
      David Chisnall authored
      Without this change, linking multiple objects containing block
      descriptors together on Windows will generate duplicate symbol errors.
      
      Patch by Dustin Howett!
      
      Differential Revision: https://reviews.llvm.org/D58807
      
      llvm-svn: 357363
      17d42953
    • David Chisnall's avatar
      [objc-gnustep] Use .init_array not .ctors when requested. · 0e9e02cd
      David Chisnall authored
      This doesn't make a difference most of the time but FreeBSD/ARM doesn't
      run anything in the .ctors array.
      
      llvm-svn: 357362
      0e9e02cd
  7. Mar 30, 2019
Loading