1. Apr 22, 2020
    • Louis Dionne's avatar
      [libc++] Do not enable assertions in the dylib in the Apple cache · d6325876
      Louis Dionne authored
      It turns out that all this time, we've actually been building without
      assertions enabled in the dylib. This commit updates the Apple CMake
      cache to make it consistent with reality.
      d6325876
    • Siva Chandra Reddy's avatar
      [libc] Revert "Propagate entrypoint deps to downstream targets." · a8086ba4
      Siva Chandra Reddy authored
      This reverts commit 20cb440e as the
      target llvmlibc seems to be failing on the bots.
      a8086ba4
    • Ana Pazos's avatar
      [MC][PGO][PGSO] Cleanup unused MBFI in AsmPrinter · 66590e1e
      Ana Pazos authored
      Summary:
      Machine Block Frequency Info (MBFI) is being computed but unused in AsmPrinter.
      
      MBFI computation was introduced with PGO change D71149 and then its use was
      removed in D71106. No need to keep computing it.
      
      Reviewers: MaskRay, jyknight, skan, yamauchi, davidxl, efriedma, huihuiz
      
      Reviewed By: MaskRay, skan, yamauchi
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D78526
      66590e1e
    • Louis Dionne's avatar
      [libc++] Re-enable warnings in the new format · fccc4af6
      Louis Dionne authored
      When the new libc++ test format was enabled, warnings were accidentally
      dropped cause they were not part of the %{compile_flags} substitution.
      This commit adds them back, however `-Werror` is only used for non-verify
      tests (cause it doesn't make sense for verify tests).
      
      This commit is a re-application of 20fd6243, which was reverted in
      5ec6fdb0 because it broke the C++03 bot. This failure should have
      been fixed in b4fb705e.
      fccc4af6
    • Benjamin Kramer's avatar
      d50bfd97
    • Siva Chandra Reddy's avatar
      [libc] Propagate entrypoint deps to downstream targets. · 20cb440e
      Siva Chandra Reddy authored
      Deps are recrusively evaluated at the place they are needed. With this
      change, one does not have to list recursive deps of entrypoints when
      listing test targets. One will still have to explicitly list all
      entrypoint objects when setting up an "add_entrypoint_library" target.
      
      Reviewers: abrachet
      
      Differential Revision: https://reviews.llvm.org/D78537
      20cb440e
    • Fangrui Song's avatar
      [XRay] Change xray_instr_map sled addresses from absolute to PC relative for x86-64 · 5771c985
      Fangrui Song authored
      xray_instr_map contains absolute addresses of sleds, which are relocated
      by `R_*_RELATIVE` when linked in -pie or -shared mode.
      
      By making these addresses relative to PC, we can avoid the dynamic
      relocations and remove the SHF_WRITE flag from xray_instr_map.  We can
      thus save VM pages containg xray_instr_map (because they are not
      modified).
      
      This patch changes x86-64 and bumps the sled version to 2. Subsequent
      changes will change powerpc64le and AArch64.
      
      Reviewed By: dberris, ianlevesque
      
      Differential Revision: https://reviews.llvm.org/D78082
      5771c985
    • Sanjay Patel's avatar
      [InstCombine] add tests for logic-of-icmps; NFC · 44a8c541
      Sanjay Patel authored
      These are mostly replicated from D78430 (instsimplify).
      If we implement more general transforms for instcombine,
      then we probably don't need to add that complexity to instsimplify.
      44a8c541
    • Siva Chandra Reddy's avatar
      [libc] [NFC] Split the CMake rules into multiple files. · 8c2e6622
      Siva Chandra Reddy authored
      Summary:
      The single file was getting too long to be convenient to navigate. This
      patch splits it up two into 4 files one each for header rules,
      object rules, library rules, and test rules.
      
      Reviewers: abrachet, alexshap
      
      Subscribers: mgorny, tschuett, libc-commits
      
      Tags: #libc-project
      
      Differential Revision: https://reviews.llvm.org/D78536
      8c2e6622
    • Johannes Doerfert's avatar
      [Attributor] Use a pointer value type for the OpcodeInstMap · 177c065e
      Johannes Doerfert authored
      This reduces memory consumption and the need to copy complex data
      structures repeatedly.
      
      No functional change is intended.
      
      ---
      
      Single run of the Attributor module and then CGSCC pass (oldPM)
      for SPASS/clause.c (~10k LLVM-IR loc):
      
      Before:
      ```
      calls to allocation functions: 490390 (320725/s)
      temporary memory allocations: 84601 (55330/s)
      peak heap memory consumption: 41.70MB
      peak RSS (including heaptrack overhead): 131.18MB
      total memory leaked: 269.04KB
      ```
      
      After:
      ```
      calls to allocation functions: 489359 (301144/s)
      temporary memory allocations: 82983 (51066/s)
      peak heap memory consumption: 36.76MB
      peak RSS (including heaptrack overhead): 126.48MB
      total memory leaked: 269.04KB
      ```
      
      Difference:
      ```
      calls to allocation functions: -1031 (-10739/s)
      temporary memory allocations: -1618 (-16854/s)
      peak heap memory consumption: -4.94MB
      peak RSS (including heaptrack overhead): 0B
      total memory leaked: 0B
      
      ---
      177c065e
    • Johannes Doerfert's avatar
      [Attributor] Use a pointer value type for the QueryMap · 99662c22
      Johannes Doerfert authored
      This reduces memory consumption and the need to copy complex data
      structures repeatedly.
      
      No functional change is intended.
      
      ---
      
      Single run of the Attributor module and then CGSCC pass (oldPM)
      for SPASS/clause.c (~10k LLVM-IR loc):
      
      Before:
      ```
      calls to allocation functions: 596180 (374484/s)
      temporary memory allocations: 84979 (53378/s)
      peak heap memory consumption: 52.14MB
      peak RSS (including heaptrack overhead): 139.79MB
      total memory leaked: 269.04KB
      ```
      
      After:
      ```
      calls to allocation functions: 489200 (303285/s)
      temporary memory allocations: 83406 (51708/s)
      peak heap memory consumption: 41.70MB
      peak RSS (including heaptrack overhead): 131.76MB
      total memory leaked: 269.04KB
      ```
      
      Difference:
      ```
      calls to allocation functions: -106980 (-5094285/s)
      temporary memory allocations: -1573 (-74904/s)
      peak heap memory consumption: -10.44MB
      peak RSS (including heaptrack overhead): 0B
      total memory leaked: 0B
      
      ---
      99662c22
    • Johannes Doerfert's avatar
      [Attributor] Use a pointer value type for the access kind -> accesses map · 1f570e01
      Johannes Doerfert authored
      This reduces memory consumption and the need to copy complex data
      structures repeatedly.
      
      No functional change is intended.
      
      ---
      
      Single run of the Attributor module and then CGSCC pass (oldPM)
      for SPASS/clause.c (~10k LLVM-IR loc):
      
      Before:
      ```
      calls to allocation functions: 616219 (381559/s)
      temporary memory allocations: 83294 (51575/s)
      peak heap memory consumption: 72.15MB
      peak RSS (including heaptrack overhead): 160.04MB
      total memory leaked: 269.04KB
      ```
      
      After:
      ```
      calls to allocation functions: 595004 (357145/s)
      temporary memory allocations: 83840 (50324/s)
      peak heap memory consumption: 52.14MB
      peak RSS (including heaptrack overhead): 138.32MB
      total memory leaked: 269.04KB
      ```
      
      Difference:
      ```
      calls to allocation functions: -21215 (-415980/s)
      temporary memory allocations: 546 (10705/s)
      peak heap memory consumption: -20.01MB
      peak RSS (including heaptrack overhead): 0B
      total memory leaked: 0B
      
      ---
      1f570e01
    • Johannes Doerfert's avatar
      [Attributor] Pass the Attributor to the AbstractAttribute constructors · 40f3baeb
      Johannes Doerfert authored
      AbstractAttribute::initialize is used to initialize the deduction and
      the object we do not always call it. To make sure we have the option to
      initialize the object even if initialize is not called we pass the
      Attributor to AbstractAttribute constructors now.
      40f3baeb
    • Johannes Doerfert's avatar
      [Attributor] Use a pointer value type for the AAMap · 91a6c883
      Johannes Doerfert authored
      This reduces memory consumption and the need to copy complex data
      structures repeatedly.
      
      No functional change is intended.
      
      ---
      
      Single run of the Attributor module and then CGSCC pass (oldPM)
      for SPASS/clause.c (~10k LLVM-IR loc):
      
      Before:
      ```
      calls to allocation functions: 613353 (376521/s)
      temporary memory allocations: 83636 (51341/s)
      peak heap memory consumption: 75.64MB
      peak RSS (including heaptrack overhead): 162.97MB
      total memory leaked: 269.04KB
      ```
      
      After:
      ```
      calls to allocation functions: 616575 (349929/s)
      temporary memory allocations: 83650 (47474/s)
      peak heap memory consumption: 72.15MB
      peak RSS (including heaptrack overhead): 159.81MB
      total memory leaked: 269.04KB
      ```
      
      Difference:
      ```
      calls to allocation functions: 3222 (24225/s)
      temporary memory allocations: 14 (105/s)
      peak heap memory consumption: -3.49MB
      peak RSS (including heaptrack overhead): 0B
      total memory leaked: 0B
      
      ---
      91a6c883
    • Pierre Oechsel's avatar
      [mlir] [linalg] Specify alignment during promotion. · 128d7275
      Pierre Oechsel authored
      The buffer allocated by a promotion can be subject to other transformations afterward. For example it could be vectorized, in which case it is needed to ensure that this buffer is memory-aligned.
      
      Differential Revision: https://reviews.llvm.org/D78556
      128d7275
    • Nicolas Vasilache's avatar
      [mlir][Linalg] Create a named batch_matmul op and pipe it through. · 538ac26f
      Nicolas Vasilache authored
      This revision is the first in a set of improvements that aim at allowing
      more generalized named Linalg op generation from a mathematical
      specification.
      
      This revision allows creating a new op and checks that the parser,
      printer and verifier are hooked up properly.
      
      This opened up a few design points that will be addressed in the future:
      1. A named linalg op has a static region builder instead of an
      explicitly parsed region. This is not currently compatible with
      assemblyFormat so a custom parser / printer are needed.
      2. The convention for structured ops and tensor return values needs to
      evolve to allow tensor-land and buffer land specifications to agree
      3. ReferenceIndexingMaps and referenceIterators will need to become
      static to allow building attributes at parse time.
      4. Error messages will be improved once we have 3. and we pretty print
      in custom form.
      
      Differential Revision: https://reviews.llvm.org/D78327
      538ac26f
    • Stefan Pintilie's avatar
      [PowerPC][Future] Add offsets to PC Relative relocations. · a92ee77d
      Stefan Pintilie authored
      This is an optimization that applies to global addresses and
      allows for the following transformation:
      Convert this:
      
      paddi r3, 0, symbol@PCREL, 1
      ld r4, 8(r3)
      
      To this:
      
      pld r4, symbol@PCREL+8(0), 1
      
      An instruction is saved and the linker can do the addition when
      the symbol is resolved.
      
      Differential Revision: https://reviews.llvm.org/D76160
      a92ee77d
    • Kang Zhang's avatar
      e477915b
  2. Apr 21, 2020