Skip to content
  1. Jul 19, 2017
    • Hans Wennborg's avatar
      Update trunk version to 6.0.0svn · 8fd3ba97
      Hans Wennborg authored
      llvm-svn: 308442
      8fd3ba97
    • NAKAMURA Takumi's avatar
      Recommit r274270, [CMake] Module builds depend on target intrinsics_gen to be built first. · 87d7c68d
      NAKAMURA Takumi authored
      The builder clang-x86_64-linux-selfhost-modules-2 complains. Investigating.
      
      llvm-svn: 308439
      87d7c68d
    • NAKAMURA Takumi's avatar
      Revert r274270, "[CMake] Module builds depend on target intrinsics_gen to be built first." · f346cf26
      NAKAMURA Takumi authored
      I think modulemap is sufficient for intrinsics_gen in trunk. I won't find any issues around that.
      
      llvm-svn: 308434
      f346cf26
    • Simon Pilgrim's avatar
      [X86][XOP] Use default AVX2 lowering for v4i64 ashr by splat constants · e5c7925c
      Simon Pilgrim authored
      XOP shifts only support 128-bit vectors, so we were ending up with less optimal codegen requiring constants
      
      llvm-svn: 308430
      e5c7925c
    • Jonas Paulsson's avatar
      [SystemZ] Minor fixing in SystemZScheduleZ14.td · 4690193d
      Jonas Paulsson authored
      Some minor corrections for recently added instructions.
      
      Review: Ulrich Weigand
      llvm-svn: 308429
      4690193d
    • Dinar Temirbulatov's avatar
      [LoopUtils] Add an extra parameter OpValue to propagateIRFlags function, · a61f4b89
      Dinar Temirbulatov authored
      If OpValue is non-null, we only consider operations similar to OpValue
      when intersecting.
      
      Differential Revision: https://reviews.llvm.org/D35292
      
      llvm-svn: 308428
      a61f4b89
    • Daniel Sanders's avatar
      [globalisel][tablegen] 80-col corrections. · be63e06d
      Daniel Sanders authored
      llvm-svn: 308424
      be63e06d
    • Balaram Makam's avatar
      [SimplifyCFG] Defer folding unconditional branches to LateSimplifyCFG if it... · b05a5578
      Balaram Makam authored
      [SimplifyCFG] Defer folding unconditional branches to LateSimplifyCFG if it can destroy canonical loop structure.
      
      Summary:
      When simplifying unconditional branches from empty blocks, we pre-test if the
      BB belongs to a set of loop headers and keep the block to prevent passes from
      destroying canonical loop structure. However, the current algorithm fails if
      the destination of the branch is a loop header. Especially when such a loop's
      latch block is folded into loop header it results in additional backedges and
      LoopSimplify turns it into a nested loop which prevent later optimizations
      from being applied (e.g., loop  unrolling and loop interleaving).
      
      This patch augments the existing algorithm by further checking if the
      destination of the branch belongs to a set of loop headers and defer
      eliminating it if yes to LateSimplifyCFG.
      
      Fixes PR33605: https://bugs.llvm.org/show_bug.cgi?id=33605
      
      Reviewers: efriedma, mcrosier, pacxx, hsung, davidxl
      
      Reviewed By: efriedma
      
      Subscribers: ashutosh.nema, gberry, javed.absar, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D35411
      
      llvm-svn: 308422
      b05a5578
    • Ayal Zaks's avatar
      [LV] Test once if vector trip count is zero, instead of twice · 8c452d76
      Ayal Zaks authored
      Generate a single test to decide if there are enough iterations to jump to the
      vectorized loop, or else go to the scalar remainder loop. This test compares the
      Scalar Trip Count: if STC < VF * UF go to the scalar loop. If
      requiresScalarEpilogue() holds, at-least one iteration must remain scalar; the
      rest can be used to form vector iterations. So in this case the test checks
      instead if (STC - 1) < VF * UF by comparing STC <= VF * UF, and going to the
      scalar loop if so. Otherwise the vector loop is entered for at-least one vector
      iteration.
      
      This test covers the case where incrementing the backedge-taken count will
      overflow leading to an incorrect trip count of zero. In this (rare) case we will
      also avoid the vector loop and jump to the scalar loop.
      
      This patch simplifies the existing tests and effectively removes the basic-block
      originally named "min.iters.checked", leaving the single test in block
      "vector.ph".
      
      Original observation and initial patch by Evgeny Stupachenko.
      
      Differential Revision: https://reviews.llvm.org/D34150
      
      llvm-svn: 308421
      8c452d76
    • Serguei Katkov's avatar
      [CGP] Allow cycles during Phi traversal in OptimizaMemoryInst · 4ea855eb
      Serguei Katkov authored
      Allowing cycles in Phi traversal increases the scope of optimize memory instruction
      in case we are in loop.
      
      The added test shows an example of enabling optimization inside a loop.
      
      Reviewers: loladiro, spatel, efriedma
      Reviewed By: efriedma
      Subscribers: llvm-commits
      Differential Revision: https://reviews.llvm.org/D35294
      
      llvm-svn: 308419
      4ea855eb
    • Chandler Carruth's avatar
      Revert r308273 to reinstate part of r308100. · bb83558f
      Chandler Carruth authored
      That part was reverted because the underlying change necessitating it
      (r308025) was reverted in r308271.
      
      Nirav re-landed r308025 again in r308350, so re-landing this fix.
      
      llvm-svn: 308418
      bb83558f
    • Chandler Carruth's avatar
      [PM/LCG] Follow-up fix to r308088 to handle deletion of library · 06a86301
      Chandler Carruth authored
      functions.
      
      In the prior commit, we provide ordering to the LCG between functions
      and library function definitions that they might begin to call through
      transformations. But we still would delete these library functions from
      the call graph if they became dead during inlining.
      
      While this immediately crashed, it also exposed a loss of information.
      We shouldn't remove definitions of library functions that can still
      usefully participate in the LCG-powered CGSCC optimization process. If
      new call edges are formed, we want to have definitions to be called.
      
      We can still remove these functions if truly dead using global-dce, etc,
      but removing them during the CGSCC walk is premature.
      
      This fixes a crash in the new PM when optimizing some unusual libraries
      that end up with "internal" lib functions such as the code in the "R"
      language's libraries.
      
      llvm-svn: 308417
      06a86301
    • James Y Knight's avatar
      [SPARC] Add missing variable initialization after r308343. · 0e4ce61d
      James Y Knight authored
      llvm-svn: 308415
      0e4ce61d
    • Craig Topper's avatar
      AMD znver1 Initial Scheduler model · 106b5b68
      Craig Topper authored
      Summary:
      This patch adds the following
      1. Adds a skeleton scheduler model for AMD Znver1.
      2. Introduces the znver1 execution units and pipes.
      3. Caters the instructions based on the generic scheduler classes.
      4. Further additions to the scheduler model with instruction itineraries will be carried out incrementally based on
              a. Instructions types
              b. Registers used
      5. Since itineraries are not added based on instructions, throughput information are bound to change when incremental changes are added.
      6. Scheduler testcases are modified accordingly to suit the new model.
      
      Patch by Ganesh Gopalasubramanian. With minor formatting tweaks from me.
      
      Reviewers: craig.topper, RKSimon
      
      Subscribers: javed.absar, shivaram, ddibyend, vprasad
      
      Differential Revision: https://reviews.llvm.org/D35293
      
      llvm-svn: 308411
      106b5b68
    • Petr Hosek's avatar
      [llvm-readobj] Install llvm-readelf alias · bf515501
      Petr Hosek authored
      Install an llvm-readelf symlink to llvm-readobj.
      When invoked as *readelf*, default to -elf-output-style=GNU.
      
      Patch by Roland McGrath
      
      Differential Revision: https://reviews.llvm.org/D33869
      
      llvm-svn: 308408
      bf515501
    • Saleem Abdulrasool's avatar
      Object: preserve more information about DEF file · 08e5f685
      Saleem Abdulrasool authored
      Preserve the actual library name as provided by the user.  This is
      required to properly replicate link's behaviour about the module import
      name handling.  This requires an associated change to lld for updating
      the tests for the proper behaviour for the import library module name
      handling in various cases.
      
      Associated tests will be part of the lld change.
      
      llvm-svn: 308406
      08e5f685
    • Weiming Zhao's avatar
      Fix DebugLoc propagation for unreachable LoadInst · 984f1dc3
      Weiming Zhao authored
      Summary: Currently, when GVN creates a load and when InstCombine creates a new store for unreachable Load, the DebugLoc info gets lost.
      
      Reviewers: dberlin, davide, aprantl
      
      Reviewed By: aprantl
      
      Subscribers: davide, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D34639
      
      llvm-svn: 308404
      984f1dc3
    • Adrian Prantl's avatar
      Debug Info: Add a file: field to DIImportedEntity. · d63bfd21
      Adrian Prantl authored
      DIImportedEntity has a line number, but not a file field. To determine
      the decl_line/decl_file we combine the line number from the
      DIImportedEntity with the file from the DIImportedEntity's scope. This
      does not work correctly when the parent scope is a DINamespace or a
      DIModule, both of which do not have a source file.
      
      This patch adds a file field to DIImportedEntity to unambiguously
      identify the source location of the using/import declaration.  Most
      testcase updates are mechanical, the interesting one is the removal of
      the FIXME in test/DebugInfo/Generic/namespace.ll.
      
      This fixes PR33822. See https://bugs.llvm.org/show_bug.cgi?id=33822
      for more context.
      
      <rdar://problem/33357889>
      https://bugs.llvm.org/show_bug.cgi?id=33822
      
      Differential Revision: https://reviews.llvm.org/D35583
      
      llvm-svn: 308398
      d63bfd21
    • Petr Hosek's avatar
      [llvm-readobj] Accept (and ignore) --wide (-W) command-line switch · ef54b49d
      Petr Hosek authored
      Accept and ignore --wide/-W. In GNU readelf this switch is
      necessary to get the output format that's consistent between
      32-bit and 64-bit targets. llvm-readobj always produces that
      output format.
      
      Patch by Roland McGrath
      
      Differential Revision: https://reviews.llvm.org/D33873
      
      llvm-svn: 308396
      ef54b49d
    • Petr Hosek's avatar
      [llvm-readobj] Accept -S as an alias for --sections · 4565de8f
      Petr Hosek authored
      In GNU readelf, the short option for --sections is upper-case -S.
      
      Note that GNU uses lower-case -s to mean --symbols, while LLVM
      uses -s to mean --sections and -t to mean --symbols (-t has yet a
      different meaning in GNU). So command-line uses with -S can now
      be compatible, but uses with -s or -t are still incompatible.
      
      Patch by Roland McGrath
      
      Differential Revision: https://reviews.llvm.org/D33872
      
      llvm-svn: 308392
      4565de8f
    • Evandro Menezes's avatar
      [AArch64] Adjust the feature set for Exynos M2 · e8411cba
      Evandro Menezes authored
      Add fusion of AES operations.
      
      llvm-svn: 308388
      e8411cba
    • Vitaly Buka's avatar
      [asan] Copy arguments passed by value into explicit allocas for ASan · 74443f07
      Vitaly Buka authored
        Summary:
        ASan determines the stack layout from alloca instructions. Since
      arguments marked as "byval" do not have an explicit alloca instruction, ASan
      does not produce red zones for them. This commit produces an explicit alloca
      instruction and copies the byval argument into the allocated memory so that red
      zones are produced.
      
        Submitted on behalf of @morehouse (Matt Morehouse)
      
        Reviewers: eugenis, vitalybuka
      
        Reviewed By: eugenis
      
        Subscribers: hiraditya, llvm-commits
      
        Differential Revision: https://reviews.llvm.org/D34789
      
      llvm-svn: 308387
      74443f07
    • Saleem Abdulrasool's avatar
      Object: rename parameter from DLLName to ImportName · 0f83a894
      Saleem Abdulrasool authored
      When I originally wrote this code, I neglected the fact that the import
      library may be created for executables.  This name is not the name of
      the DLL, but rather the name for the imported module.  It will be
      embedded into the IAT/ILT reference.  Rename it to make it more obvious.
      NFC.
      
      llvm-svn: 308384
      0f83a894
    • Saleem Abdulrasool's avatar
      Object: handle extensions properly in def files · e234901a
      Saleem Abdulrasool authored
      When given an extension as part of the `library` directive in a def
      file, the extension is preserved/honoured by link/lib.  Behave similarly
      when parsing the def file.  This requires checking if a native extension
      is provided as a keyword parameter.  If no extension is present, append
      a standard `.dll` or `.exe` extension.
      
      This is best tested via lld, and I will add tests there as a follow up.
      
      llvm-svn: 308383
      e234901a
  2. Jul 18, 2017
Loading