UnstableChanges

Summary

  1. [llvm-cov] Support for v4 format in convert-for-testing (details)
  2. Revert "[LoopInterchange] Fix legality for triangular loops" (details)
  3. [AIX][TLS] Diagnose use of unimplemented TLS models (details)
  4. [JITLink] Make LinkGraph debug dumps more readable. (details)
  5. [JITLink][x86-64] Add an x86_64 PointerSize constexpr. (details)
  6. [JITLink][MachO/x86_64] Expose API for creating eh-frame fixing passes. (details)
  7. [Coverage] Support overriding compilation directory (details)
  8. [LoopInterchange] Fix legality for triangular loops (details)
Commit 489a3531a42fe97c7fa00255fc5e8d31a610492d by phosek
[llvm-cov] Support for v4 format in convert-for-testing

v4 moves function records to a dedicated section so we need to write
and read it separately.

https://reviews.llvm.org/D100535
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
The file was modifiedllvm/tools/llvm-cov/TestingSupport.cpp
Commit d3f89d4d16883b2bcf5f032152f10e384b53d92a by congzhecao
Revert "[LoopInterchange] Fix legality for triangular loops"

This reverts commit 29342291d25b83da97e74d75004b177ba41114fc.

The test case requires an assert build. Will add REQUIRES and re-commit.
The file was removedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
Commit 46475a79f85b230fde3e7de8966c96bef14f0d24 by wei.huang
[AIX][TLS] Diagnose use of unimplemented TLS models

Add front end diagnostics to report error for unimplemented TLS models set by
- compiler option `-ftls-model`
- attributes like `__thread int __attribute__((tls_model("local-exec"))) var_name;`

Reviewed by: aaron.ballman, nemanjai, PowerPC

Differential Revision: https://reviews.llvm.org/D102070
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was addedclang/test/Sema/aix-attr-tls_model.c
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was addedclang/test/CodeGen/aix-tls-model.cpp
Commit cbcfca343f02876cef2b5ca3f27a037bab8fa90f by Lang Hames
[JITLink] Make LinkGraph debug dumps more readable.

This commit reorders some fields and fixes the width of others to try to
maintain more consistent columns. It also switches to long-hand scope
and linkage names, since LinkGraph dumps aren't read often enough for
single-character codes to be memorable.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLink.cpp
Commit 74a96b4c98434e328eeca0afc85dc7053133a7d2 by Lang Hames
[JITLink][x86-64] Add an x86_64 PointerSize constexpr.

This can be used in place of magic '8' values in generic x86-64 utilities.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/x86_64.cpp
Commit a0162a81b1377331c3e0ebb58ac349b2ffd7b598 by Lang Hames
[JITLink][MachO/x86_64] Expose API for creating eh-frame fixing passes.

These can be used to create eh-frame section fixing passes outside the usual
linker pipeline, which can be useful for tests and tools that just want to
verify or dump graphs.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
Commit 8280ece0c972db24e51aae5074ca5433002f1071 by phosek
[Coverage] Support overriding compilation directory

When making compilation relocatable, for example in distributed
compilation scenarios, we want to set compilation dir to a relative
value like `.` but this presents a problem when generating reports
because if the file path is relative as well, for example `..`, you
may end up writing files outside of the output directory.

This change introduces a flag that allows overriding the compilation
directory that's stored inside the profile with a different value that
is absolute.

Differential Revision: https://reviews.llvm.org/D100232
The file was modifiedllvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
The file was modifiedllvm/tools/llvm-cov/CodeCoverage.cpp
The file was addedllvm/test/tools/llvm-cov/Inputs/compilation_dir.proftext
The file was modifiedllvm/tools/llvm-cov/CoverageViewOptions.h
The file was addedllvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping
The file was modifiedllvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
The file was addedllvm/test/tools/llvm-cov/compilation_dir.c
The file was modifiedllvm/unittests/ProfileData/CoverageMappingTest.cpp
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMapping.cpp
Commit 40e3aa39bd68b554808ddcb096a63919f53f2e43 by congzhecao
[LoopInterchange] Fix legality for triangular loops

This is a bug fix in legality check.

When we encounter triangular loops such as the following form:
    for (int i = 0; i < m; i++)
      for (int j = 0; j < i; j++), or

    for (int i = 0; i < m; i++)
      for (int j = 0; j*i < n; j++),

we should not perform interchange since the number of executions
of the loop body will be different before and after interchange,
resulting in incorrect results.

Reviewed By: bmahjour

Differential Revision: https://reviews.llvm.org/D101305
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
The file was addedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll