UnstableChanges

Summary

  1. [NFC] UpdateTestChecks: asm.py: fix whitespace issue
  2. [SLPVectorizer] Set flag to previous default. Summary: The refactoring in r360276 moved the `RunSLPVectorization` flag and added the default explicitly. The default should have been `false`, as before. The new pass manager used to have SLPVectorization on by default, now it's off in opt, and needs D61617 checked in to enable it in clang. Reviewers: chandlerc Subscribers: mehdi_amini, jlebar, eraman, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61955
  3. [CMake] Fixing errors in r361513 Summary: I somehow messed this up. libcxx appends the subdirectories itself, so we don't need to add them here. Also, r361513 broke the "projects" build of libcxx because it always included the extra targets. Reviewers: lebedev.ri, mclow.lists Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62336
  4. [InstCombine] be more careful when transforming a shuffle mask This is reduced from a fuzzer test: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14890 Usually, demanded elements should be able to simplify shuffle mask elements that are pointing to undef elements of its source operands, but that doesn't happen in the test case.
  5. [git] Be more specific when looking for llvm-svn Summary: A commit may, for some reason, have `llvm-svn:` in it multiple times. It may even take up the whole line and look identical to what gets added automatically when svn commits land in github. To workaround this, make changes to both lookups: 1) When doing the git -> svn lookup, make sure to go through the whole message, and: a) Only look for llvm-svn starting at the beginning of the line (excluding the whitespace that `git log` adds). b) Take the last one (at the end of the commit message), if there are multiple matches. 2) When doing the svn -> git lookup, look through a sizeable but still reasonably small number of git commits (10k, about 4-5 months right now), and: a) Only consider commits with the '^llvm-svn: NNNNNN' we expect, and b) Only consider those that also follow the same git -> svn matching above. (Error if it's not exactly one commit). Reviewers: jyknight Reviewed By: jyknight Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60017
  6. Resubmit r360436 "[X86] Avoid SFB - Fix inconsistent codegen with/without debug info" Fixes https://bugs.llvm.org/show_bug.cgi?id=40969 The functions findPotentiallyBlockedCopies and buildCopy are currently not accounting for the presence of debug instructions. In the former this results in the optimization not being trigerred, and in the latter results in inconsistent codegen. This patch enables the optimization to be performed in a debug build and ensures the codegen is consistent with non-debug builds. Patch by Chris Dawson. Differential Revision: https://reviews.llvm.org/D61680
  7. [WebAssembly] Implement ReplaceNodeResults to fix a SIMD crash Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61037
  8. [NFC][PPC] Autogenerate vec_add_sub_quadword.ll test Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
  9. [NFC][PPC] Autogenerate vec_add_sub_doubleword.ll test Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
  10. [NFC][Mips] Autogenerate msa/i5-s.ll test Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
  11. [NFC][Mips] Autogenerate msa/arithmetic.ll test Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
  12. UpdateTestChecks: -march=mips/-march=mipsel is mips triple. Again, a mixture of march and triple, with majority being march: llvm/test/CodeGen/Mips$ grep -ri triple | wc -l 818 llvm/test/CodeGen/Mips$ grep -ri march | wc -l 1457
  13. gn build: Merge r361418 more
  14. AMDGPU/GlobalISel: Legality for integer min/max
  15. [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch. Summary: This PR extends the loop object with more utilities to get loop bounds, step, induction variable, and guard branch. There already exists passes which try to obtain the loop induction variable in their own pass, e.g. loop interchange. It would be useful to have a common area to get these information. Moreover, loop fusion (https://reviews.llvm.org/D55851) is planning to use getGuard() to extend the kind of loops it is able to fuse, e.g. rotated loop with non-constant upper bound, which would have a loop guard. /// Example: /// for (int i = lb; i < ub; i+=step) /// <loop body> /// --- pseudo LLVMIR --- /// beforeloop: /// guardcmp = (lb < ub) /// if (guardcmp) goto preheader; else goto afterloop /// preheader: /// loop: /// i1 = phi[{lb, preheader}, {i2, latch}] /// <loop body> /// i2 = i1 + step /// latch: /// cmp = (i2 < ub) /// if (cmp) goto loop /// exit: /// afterloop: /// /// getBounds /// getInitialIVValue --> lb /// getStepInst --> i2 = i1 + step /// getStepValue --> step /// getFinalIVValue --> ub /// getCanonicalPredicate --> '<' /// getDirection --> Increasing /// getGuard --> if (guardcmp) goto loop; else goto afterloop /// getInductionVariable --> i1 /// getAuxiliaryInductionVariable --> {i1} /// isCanonical --> false Committed on behalf of @Whitney (Whitney Tsang). Reviewers: kbarton, hfinkel, dmgreen, Meinersbur, jdoerfert, syzaara, fhahn Reviewed By: kbarton Subscribers: tvvikram, bmahjour, etiotto, fhahn, jsji, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60565
Revision 361538 by lebedevri:
[NFC] UpdateTestChecks: asm.py: fix whitespace issue
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/UpdateTestChecks/asm.pytrunk/utils/UpdateTestChecks/asm.py
Revision 361537 by asbirlea:
[SLPVectorizer] Set flag to previous default.

Summary:
The refactoring in r360276 moved the `RunSLPVectorization` flag and added the default explicitly. The default should have been `false`, as before.

The new pass manager used to have SLPVectorization on by default, now it's off in opt, and needs D61617 checked in to enable it in clang.

Reviewers: chandlerc

Subscribers: mehdi_amini, jlebar, eraman, steven_wu, dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D61955
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpptrunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modified/llvm/trunk/test/Other/new-pm-defaults.lltrunk/test/Other/new-pm-defaults.ll
The file was modified/llvm/trunk/test/Other/new-pm-thinlto-defaults.lltrunk/test/Other/new-pm-thinlto-defaults.ll
Revision 361535 by cbieneman:
[CMake] Fixing errors in r361513

Summary:
I somehow messed this up. libcxx appends the subdirectories itself, so we don't need to add them here.

Also, r361513 broke the "projects" build of libcxx because it always included the extra targets.

Reviewers: lebedev.ri, mclow.lists

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62336
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/runtimes/CMakeLists.txttrunk/runtimes/CMakeLists.txt
Revision 361533 by spatel:
[InstCombine] be more careful when transforming a shuffle mask

This is reduced from a fuzzer test:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14890

Usually, demanded elements should be able to simplify shuffle
mask elements that are pointing to undef elements of its source
operands, but that doesn't happen in the test case.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineVectorOps.cpptrunk/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/vec_shuffle.lltrunk/test/Transforms/InstCombine/vec_shuffle.ll
Revision 361532 by rupprecht:
[git] Be more specific when looking for llvm-svn

Summary:
A commit may, for some reason, have `llvm-svn:` in it multiple times. It may even take up the whole line and look identical to what gets added automatically when svn commits land in github.

To workaround this, make changes to both lookups:

1) When doing the git -> svn lookup, make sure to go through the whole message, and:
a) Only look for llvm-svn starting at the beginning of the line (excluding the whitespace that `git log` adds).
b) Take the last one (at the end of the commit message), if there are multiple matches.

2) When doing the svn -> git lookup, look through a sizeable but still reasonably small number of git commits (10k, about 4-5 months right now), and:
a) Only consider commits with the '^llvm-svn: NNNNNN' we expect, and
b) Only consider those that also follow the same git -> svn matching above. (Error if it's not exactly one commit).

Reviewers: jyknight

Reviewed By: jyknight

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60017
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/git-svn/git-llvmtrunk/utils/git-svn/git-llvm
Revision 361527 by rlougher:
Resubmit r360436 "[X86] Avoid SFB - Fix inconsistent codegen with/without debug info"

Fixes https://bugs.llvm.org/show_bug.cgi?id=40969

The functions findPotentiallyBlockedCopies and buildCopy are currently not
accounting for the presence of debug instructions. In the former this results
in the optimization not being trigerred, and in the latter results in
inconsistent codegen.

This patch enables the optimization to be performed in a debug build and
ensures the codegen is consistent with non-debug builds.

Patch by Chris Dawson.

Differential Revision: https://reviews.llvm.org/D61680
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpptrunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
The file was added/llvm/trunk/test/CodeGen/X86/avoid-sfb-g-no-change.mirtrunk/test/CodeGen/X86/avoid-sfb-g-no-change.mir
Revision 361526 by tlively:
[WebAssembly] Implement ReplaceNodeResults to fix a SIMD crash

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D61037
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpptrunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.htrunk/lib/Target/WebAssembly/WebAssemblyISelLowering.h
The file was added/llvm/trunk/test/CodeGen/WebAssembly/simd-illegal-signext.lltrunk/test/CodeGen/WebAssembly/simd-illegal-signext.ll
Revision 361525 by lebedevri:
[NFC][PPC] Autogenerate vec_add_sub_quadword.ll test

Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/vec_add_sub_quadword.lltrunk/test/CodeGen/PowerPC/vec_add_sub_quadword.ll
Revision 361524 by lebedevri:
[NFC][PPC] Autogenerate vec_add_sub_doubleword.ll test

Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/vec_add_sub_doubleword.lltrunk/test/CodeGen/PowerPC/vec_add_sub_doubleword.ll
Revision 361523 by lebedevri:
[NFC][Mips] Autogenerate msa/i5-s.ll test

Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/Mips/msa/i5-s.lltrunk/test/CodeGen/Mips/msa/i5-s.ll
Revision 361522 by lebedevri:
[NFC][Mips] Autogenerate msa/arithmetic.ll test

Being affected by (sub %x, C) -> add %X, (sub 0, C) 'for vectors' patch.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/Mips/msa/arithmetic.lltrunk/test/CodeGen/Mips/msa/arithmetic.ll
Revision 361521 by lebedevri:
UpdateTestChecks: -march=mips/-march=mipsel is mips triple.

Again, a mixture of march and triple, with majority being march:

llvm/test/CodeGen/Mips$ grep -ri triple | wc -l
818
llvm/test/CodeGen/Mips$ grep -ri march | wc -l
1457
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/UpdateTestChecks/asm.pytrunk/utils/UpdateTestChecks/asm.py
Revision 361520 by nico:
gn build: Merge r361418 more
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clang-tidy/utils/BUILD.gntrunk/utils/gn/secondary/clang-tools-extra/clang-tidy/utils/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy/BUILD.gntrunk/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy/BUILD.gn
Revision 361519 by arsenm:
AMDGPU/GlobalISel: Legality for integer min/max
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpptrunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpptrunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpptrunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smax.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smax.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smin.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smin.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-umax.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-umax.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-umin.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-umin.mir
Revision 361517 by kbarton:
[LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch.

    Summary:
    This PR extends the loop object with more utilities to get loop bounds, step, induction variable, and guard branch. There already exists passes which try to obtain the loop induction variable in their own pass, e.g. loop interchange. It would be useful to have a common area to get these information. Moreover, loop fusion (https://reviews.llvm.org/D55851) is planning to use getGuard() to extend the kind of loops it is able to fuse, e.g. rotated loop with non-constant upper bound, which would have a loop guard.

      /// Example:
      /// for (int i = lb; i < ub; i+=step)
      ///   <loop body>
      /// --- pseudo LLVMIR ---
      /// beforeloop:
      ///   guardcmp = (lb < ub)
      ///   if (guardcmp) goto preheader; else goto afterloop
      /// preheader:
      /// loop:
      ///   i1 = phi[{lb, preheader}, {i2, latch}]
      ///   <loop body>
      ///   i2 = i1 + step
      /// latch:
      ///   cmp = (i2 < ub)
      ///   if (cmp) goto loop
      /// exit:
      /// afterloop:
      ///
      /// getBounds
      ///   getInitialIVValue      --> lb
      ///   getStepInst            --> i2 = i1 + step
      ///   getStepValue           --> step
      ///   getFinalIVValue        --> ub
      ///   getCanonicalPredicate  --> '<'
      ///   getDirection           --> Increasing
      /// getGuard             --> if (guardcmp) goto loop; else goto afterloop
      /// getInductionVariable          --> i1
      /// getAuxiliaryInductionVariable --> {i1}
      /// isCanonical                   --> false

    Committed on behalf of @Whitney (Whitney Tsang).

    Reviewers: kbarton, hfinkel, dmgreen, Meinersbur, jdoerfert, syzaara, fhahn

    Reviewed By: kbarton

    Subscribers: tvvikram, bmahjour, etiotto, fhahn, jsji, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60565
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/LoopInfo.htrunk/include/llvm/Analysis/LoopInfo.h
The file was modified/llvm/trunk/lib/Analysis/LoopInfo.cpptrunk/lib/Analysis/LoopInfo.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopInterchange.cpptrunk/lib/Transforms/Scalar/LoopInterchange.cpp
The file was modified/llvm/trunk/unittests/Analysis/LoopInfoTest.cpptrunk/unittests/Analysis/LoopInfoTest.cpp

Summary

  1. Fix unresolved symbols when linking tools/clang/unittests/Tooling/ToolingTests Summary: Add correct cmake dependencies so that `ToolingTests` link successfully. Patch by Guanzhong Chen Reviewers: tlively, aheejin Reviewed By: tlively Subscribers: mgorny, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62333
  2. [NewPassManager] Add tuning option: SLPVectorization [clang-change] Summary: NewPassManager is not using CodeGenOpts values before this patch. [to be coupled with D61616] Reviewers: chandlerc Subscribers: jlebar, cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61617
  3. [Driver] Move the "-o OUT -x TYPE SRC.c" flags to the end of -cc1 New -cc1 arguments, such as -faddrsig, have started appearing after the input name. I personally find it convenient for the input to be the last argument to the compile command line, since I often need to edit it when running crash reproduction scripts. Differential Revision: https://reviews.llvm.org/D62270
  4. [OPENMP]Simplify codegen for the outlined regions. Simplified codegen for the outlined regions, excluding duplication code for handling variables with the reference types.
  5. lld-link, clang: Treat non-existent input files as possible spellos for option flags OptTable treats arguments starting with / that aren't a known option as filenames. This means lld-link's and clang-cl's typo correction for unknown flags didn't do spell checking for misspelled options that start with /. I first tried changing OptTable, but that got pretty messy, see PR41787 comments 2 and 3. Instead, let lld-link's and clang's (including clang-cl's) "file not found" diagnostic check if a non-existent file looks like it could be a mis-spelled option, and if so add a "did you mean" suggestion to the "file not found" diagnostic. While here, make formatting of a few diagnostics a bit more self-consistent. Fixes PR41787. Differential Revision: https://reviews.llvm.org/D62276
Revision 361536 by tlively:
Fix unresolved symbols when linking tools/clang/unittests/Tooling/ToolingTests

Summary: Add correct cmake dependencies so that `ToolingTests` link
successfully.

Patch by Guanzhong Chen

Reviewers: tlively, aheejin

Reviewed By: tlively

Subscribers: mgorny, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D62333
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/Tooling/CMakeLists.txttrunk/unittests/Tooling/CMakeLists.txt
Revision 361534 by asbirlea:
[NewPassManager] Add tuning option: SLPVectorization [clang-change]

Summary:
NewPassManager is not using CodeGenOpts values before this patch.
[to be coupled with D61616]

Reviewers: chandlerc

Subscribers: jlebar, cfe-commits, llvm-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D61617
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/BackendUtil.cpptrunk/lib/CodeGen/BackendUtil.cpp
The file was added/cfe/trunk/test/CodeGen/loop-vectorize.ctrunk/test/CodeGen/loop-vectorize.c
Revision 361530 by rnk:
[Driver] Move the "-o OUT -x TYPE SRC.c" flags to the end of -cc1

New -cc1 arguments, such as -faddrsig, have started appearing after the
input name. I personally find it convenient for the input to be the last
argument to the compile command line, since I often need to edit it when
running crash reproduction scripts.

Differential Revision: https://reviews.llvm.org/D62270
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpptrunk/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/test/Driver/cuda-options.cutrunk/test/Driver/cuda-options.cu
The file was modified/cfe/trunk/test/Driver/hip-toolchain-no-rdc.hiptrunk/test/Driver/hip-toolchain-no-rdc.hip
The file was modified/cfe/trunk/test/Driver/openmp-offload.ctrunk/test/Driver/openmp-offload.c
Revision 361529 by abataev:
[OPENMP]Simplify codegen for the outlined regions.

Simplified codegen for the outlined regions, excluding duplication code
for handling variables with the reference types.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpptrunk/lib/CodeGen/CGStmtOpenMP.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_firstprivate_codegen.cpptrunk/test/OpenMP/distribute_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_lastprivate_codegen.cpptrunk/test/OpenMP/distribute_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpptrunk/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpptrunk/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpptrunk/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpptrunk/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_simd_firstprivate_codegen.cpptrunk/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_simd_lastprivate_codegen.cpptrunk/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/for_reduction_codegen.cpptrunk/test/OpenMP/for_reduction_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/for_reduction_codegen_UDR.cpptrunk/test/OpenMP/for_reduction_codegen_UDR.cpp
The file was modified/cfe/trunk/test/OpenMP/parallel_firstprivate_codegen.cpptrunk/test/OpenMP/parallel_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_map_codegen.cpptrunk/test/OpenMP/target_map_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpptrunk/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_firstprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_lastprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpptrunk/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
Revision 361518 by nico:
lld-link, clang: Treat non-existent input files as possible spellos for option flags

OptTable treats arguments starting with / that aren't a known option
as filenames. This means lld-link's and clang-cl's typo correction for
unknown flags didn't do spell checking for misspelled options that start
with /.

I first tried changing OptTable, but that got pretty messy, see PR41787
comments 2 and 3.

Instead, let lld-link's and clang's (including clang-cl's) "file not
found" diagnostic check if a non-existent file looks like it could be a
mis-spelled option, and if so add a "did you mean" suggestion to the
"file not found" diagnostic.

While here, make formatting of a few diagnostics a bit more
self-consistent.

Fixes PR41787.

Differential Revision: https://reviews.llvm.org/D62276
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.tdtrunk/include/clang/Basic/DiagnosticDriverKinds.td
The file was modified/cfe/trunk/include/clang/Driver/Driver.htrunk/include/clang/Driver/Driver.h
The file was modified/cfe/trunk/lib/Driver/Driver.cpptrunk/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/test/Driver/unknown-arg.ctrunk/test/Driver/unknown-arg.c
The file was modified/cfe/trunk/test/Driver/unsupported-option.ctrunk/test/Driver/unsupported-option.c
The file was modified/cfe/trunk/test/Frontend/unknown-arg.ctrunk/test/Frontend/unknown-arg.c
The file was modified/lld/trunk/COFF/Driver.cppN/A
The file was modified/lld/trunk/COFF/DriverUtils.cppN/A
The file was modified/lld/trunk/test/COFF/color-diagnostics.testN/A
The file was modified/lld/trunk/test/COFF/could-not-open.testN/A
The file was modified/lld/trunk/test/COFF/driver.testN/A
The file was modified/lld/trunk/test/COFF/error-limit.testN/A
The file was modified/lld/trunk/test/COFF/nodefaultlib.testN/A
The file was modified/lld/trunk/test/COFF/responsefile.testN/A