SuccessChanges

Summary

  1. [Driver][Fuchsia] Pass --hash-style=gnu to the linker The .gnu_hash format is superior, and all versions of the Fuchsia dynamic linker support it. Differential Revision: https://reviews.llvm.org/D36254
  2. [Support] Update comments about stdout, raw_fd_ostream, and outs() The full story is in the comments: // Do not attempt to close stdout or stderr. We used to try to maintain the // property that tools that support writing file to stdout should not also // write informational output to stdout, but in practice we were never able to // maintain this invariant. Many features have been added to LLVM and clang // (-fdump-record-layouts, optimization remarks, etc) that print to stdout, so // users must simply be aware that mixed output and remarks is a possibility. NFC, I am just updating comments to reflect reality.
  3. coverage: Update tests to reflect changes from r310012
  4. Teach GlobalSRA to update the debug info for split-up globals. This is similar to what we are doing in "regular" SROA and creates DW_OP_LLVM_fragment operations to describe the resulting variables. rdar://problem/33654891
  5. [AMDGPU] Add missing hazard for DPP-after-EXEC-write Summary: Following the docs, we need at least 5 wait states between an EXEC write and an instruction that uses DPP. Reviewers: tstellar, arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D34849
  6. [llvm-cov] Ignore unclosed line segments when setting line counts This patch makes a slight change to the way llvm-cov determines line execution counts. If there are multiple line segments on a line, the line count is the max count among the regions which start *and* end on the line. This avoids an issue posed by deferred regions which start on the same line as a terminated region, e.g: if (false) return; //< The line count should be 0, even though a new region //< starts at the semi-colon. foo(); Another change is that counts from line segments which don't correspond to region entries are considered. This enables the first change, and corrects an outstanding issue (see the showLineExecutionCounts.cpp test change). This is related to D35925. Testing: check-profile, llvm-cov lit tests Differential Revision: https://reviews.llvm.org/D36014
  7. [llvm-cov] NFC: make_unique-ify two allocations
  8. [Coverage] Precise region termination with deferred regions The current coverage implementation doesn't handle region termination very precisely. Take for example an `if' statement with a `return': void f() { if (true) { return; // The `if' body's region is terminated here. } // This line gets the same coverage as the `if' condition. } If the function `f' is called, the line containing the comment will be marked as having executed once, which is not correct. The solution here is to create a deferred region after terminating a region. The deferred region is completed once the start location of the next statement is known, and is then pushed onto the region stack. In the cases where it's not possible to complete a deferred region, it can safely be dropped. Testing: lit test updates, a stage2 coverage-enabled build of clang
  9. Disable libFuzzer tests on Windows Differential Revision: https://reviews.llvm.org/D36297
  10. Revert "[TableGen] AsmMatcher: fix OpIdx computation when HasOptionalOperands is true" Breaks check-llvm under ubsan. This reverts commit r309949.
Revision 310017 by phosek:
[Driver][Fuchsia] Pass --hash-style=gnu to the linker

The .gnu_hash format is superior, and all versions of the Fuchsia
dynamic linker support it.

Differential Revision: https://reviews.llvm.org/D36254
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Fuchsia.cppclang.src/lib/Driver/ToolChains/Fuchsia.cpp
The file was modified/cfe/trunk/test/Driver/fuchsia.cclang.src/test/Driver/fuchsia.c
Revision 310016 by rnk:
[Support] Update comments about stdout, raw_fd_ostream, and outs()

The full story is in the comments:

  // Do not attempt to close stdout or stderr. We used to try to maintain the
  // property that tools that support writing file to stdout should not also
  // write informational output to stdout, but in practice we were never able to
  // maintain this invariant. Many features have been added to LLVM and clang
  // (-fdump-record-layouts, optimization remarks, etc) that print to stdout, so
  // users must simply be aware that mixed output and remarks is a possibility.

NFC, I am just updating comments to reflect reality.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/raw_ostream.hllvm.src/include/llvm/Support/raw_ostream.h
The file was modified/llvm/trunk/lib/Support/raw_ostream.cppllvm.src/lib/Support/raw_ostream.cpp
Revision 310015 by Vedant Kumar:
coverage: Update tests to reflect changes from r310012
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/profile/Inputs/extern_template.hcompiler-rt.src/test/profile/Inputs/extern_template.h
The file was modified/compiler-rt/trunk/test/profile/Linux/coverage_test.cppcompiler-rt.src/test/profile/Linux/coverage_test.cpp
Revision 310014 by Adrian Prantl:
Teach GlobalSRA to update the debug info for split-up globals.

This is similar to what we are doing in "regular" SROA and creates
DW_OP_LLVM_fragment operations to describe the resulting variables.

rdar://problem/33654891
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/DIBuilder.hllvm.src/include/llvm/IR/DIBuilder.h
The file was modified/llvm/trunk/lib/IR/DIBuilder.cppllvm.src/lib/IR/DIBuilder.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cppllvm.src/lib/Transforms/IPO/GlobalOpt.cpp
The file was added/llvm/trunk/test/DebugInfo/Generic/global-sra-array.llllvm.src/test/DebugInfo/Generic/global-sra-array.ll
The file was added/llvm/trunk/test/DebugInfo/Generic/global-sra-struct.llllvm.src/test/DebugInfo/Generic/global-sra-struct.ll
Revision 310013 by cwabbott:
[AMDGPU] Add missing hazard for DPP-after-EXEC-write

Summary:
Following the docs, we need at least 5 wait states between an EXEC write
and an instruction that uses DPP.

Reviewers: tstellar, arsenm

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D34849
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNHazardRecognizer.cppllvm.src/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/inserted-wait-states.mirllvm.src/test/CodeGen/AMDGPU/inserted-wait-states.mir
Revision 310012 by Vedant Kumar:
[llvm-cov] Ignore unclosed line segments when setting line counts

This patch makes a slight change to the way llvm-cov determines line
execution counts. If there are multiple line segments on a line, the
line count is the max count among the regions which start *and* end on
the line. This avoids an issue posed by deferred regions which start on
the same line as a terminated region, e.g:

  if (false)
    return; //< The line count should be 0, even though a new region
            //< starts at the semi-colon.
  foo();

Another change is that counts from line segments which don't correspond
to region entries are considered. This enables the first change, and
corrects an outstanding issue (see the showLineExecutionCounts.cpp test
change).

This is related to D35925.

Testing: check-profile, llvm-cov lit tests

Differential Revision: https://reviews.llvm.org/D36014
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-cov/Inputs/deferred-regions.covmappingllvm.src/test/tools/llvm-cov/Inputs/deferred-regions.covmapping
The file was added/llvm/trunk/test/tools/llvm-cov/Inputs/deferred-regions.profdatallvm.src/test/tools/llvm-cov/Inputs/deferred-regions.profdata
The file was added/llvm/trunk/test/tools/llvm-cov/deferred-region.cppllvm.src/test/tools/llvm-cov/deferred-region.cpp
The file was modified/llvm/trunk/test/tools/llvm-cov/showLineExecutionCounts.cppllvm.src/test/tools/llvm-cov/showLineExecutionCounts.cpp
The file was modified/llvm/trunk/tools/llvm-cov/SourceCoverageView.cppllvm.src/tools/llvm-cov/SourceCoverageView.cpp
The file was modified/llvm/trunk/tools/llvm-cov/SourceCoverageView.hllvm.src/tools/llvm-cov/SourceCoverageView.h
Revision 310011 by Vedant Kumar:
[llvm-cov] NFC: make_unique-ify two allocations
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-cov/CodeCoverage.cppllvm.src/tools/llvm-cov/CodeCoverage.cpp
Revision 310010 by Vedant Kumar:
[Coverage] Precise region termination with deferred regions

The current coverage implementation doesn't handle region termination
very precisely. Take for example an `if' statement with a `return':

  void f() {
    if (true) {
      return; // The `if' body's region is terminated here.
    }
    // This line gets the same coverage as the `if' condition.
  }

If the function `f' is called, the line containing the comment will be
marked as having executed once, which is not correct.

The solution here is to create a deferred region after terminating a
region. The deferred region is completed once the start location of the
next statement is known, and is then pushed onto the region stack.
In the cases where it's not possible to complete a deferred region, it
can safely be dropped.

Testing: lit test updates, a stage2 coverage-enabled build of clang
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CoverageMappingGen.cppclang.src/lib/CodeGen/CoverageMappingGen.cpp
The file was added/cfe/trunk/test/CoverageMapping/deferred-region.cppclang.src/test/CoverageMapping/deferred-region.cpp
The file was modified/cfe/trunk/test/CoverageMapping/label.cppclang.src/test/CoverageMapping/label.cpp
The file was modified/cfe/trunk/test/CoverageMapping/moremacros.cclang.src/test/CoverageMapping/moremacros.c
The file was modified/cfe/trunk/test/CoverageMapping/return.cclang.src/test/CoverageMapping/return.c
The file was modified/cfe/trunk/test/CoverageMapping/switch.cppclang.src/test/CoverageMapping/switch.cpp
The file was modified/cfe/trunk/test/CoverageMapping/switchmacro.cclang.src/test/CoverageMapping/switchmacro.c
The file was modified/cfe/trunk/test/CoverageMapping/trycatch.cppclang.src/test/CoverageMapping/trycatch.cpp
Revision 310009 by George Karpenkov:
Disable libFuzzer tests on Windows

Differential Revision: https://reviews.llvm.org/D36297
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Fuzzer/CMakeLists.txtllvm.src/lib/Fuzzer/CMakeLists.txt
Revision 310008 by Vitaly Buka:
Revert "[TableGen] AsmMatcher: fix OpIdx computation when HasOptionalOperands is true"

Breaks check-llvm under ubsan.

This reverts commit r309949.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/TableGen/AsmMatcherEmitter.cppllvm.src/utils/TableGen/AsmMatcherEmitter.cpp