SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [OPENMP]Improve handling of possibly incorrectly mapped types. (details)
  2. [NewPM] Port MergeFunctions pass (details)
  3. [OpenMP][Tool] Runtime warning for missing TSan-option (details)
  4. [Driver] Ignore -fno-semantic-interposition (details)
  5. [SVE] Add patterns for MUL immediate instruction. (details)
  6. [libcxx] [Windows] Make a more proper implementation of strftime_l for (details)
  7. dotest.py: Add option to pass extra lldb settings to dotest (details)
  8. [analyzer] Fix SARIF column locations (details)
  9. [DebugInfo] Add option to clang to limit debug info that is emitted for (details)
  10. [InstCombine] Fix worklist management when removing guard intrinsic (details)
  11. [clang][test][NFC] Use more widely supported sanitizer for file (details)
  12. [GVN] fix comment/argument name to match actual implementation. NFC (details)
  13. [LegalizeTypes] Remove untested code from ExpandIntOp_UINT_TO_FP (details)
  14. [Driver][test] Fix Driver/hexagon-toolchain-elf.c for (details)
Commit 48bad08aa3b3bf6ad5dabe858fa655a623757395 by a.bataev
[OPENMP]Improve handling of possibly incorrectly mapped types.
Need to analayze the type of the expression for mapping, not the type of
the declaration.
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/target_map_messages.cpp
Commit 410331869defbde0f6e5b7b3f8ee30c10b7f6be3 by nikita.ppv
[NewPM] Port MergeFunctions pass
This ports the MergeFunctions pass to the NewPM. This was rather
straightforward, as no analyses are used.
Additionally MergeFunctions needs to be conditionally enabled in the
PassBuilder, but I left that part out of this patch.
Differential Revision: https://reviews.llvm.org/D72537
The file was modifiedllvm/lib/Transforms/IPO/MergeFunctions.cpp
The file was modifiedllvm/lib/Transforms/IPO/IPO.cpp
The file was addedllvm/include/llvm/Transforms/IPO/MergeFunctions.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/MergeFunc/merge-block-address.ll
Commit 2d4571bf3060f8f3d8417a0ec55e21a280158069 by protze
[OpenMP][Tool] Runtime warning for missing TSan-option
TSan spuriously reports for any OpenMP application a race on the
initialization of a runtime internal mutex:
``` Atomic read of size 1 at 0x7b6800005940 by thread T4:
#0 pthread_mutex_lock <null> (a.out+0x43f39e)
#1 __kmp_resume_64 <null> (libomp.so.5+0x84db4)
Previous write of size 1 at 0x7b6800005940 by thread T7:
#0 pthread_mutex_init <null> (a.out+0x424793)
#1 __kmp_suspend_initialize_thread <null> (libomp.so.5+0x8422e)
```
According to @AndreyChurbanov this is a false positive report, as the
control flow of the runtime guarantees the ordering of the mutex
initialization and the lock:
https://software.intel.com/en-us/forums/intel-open-source-openmp-runtime-library/topic/530363
To suppress this report, I suggest the use of
TSAN_OPTIONS='ignore_uninstrumented_modules=1'. With this patch, a
runtime warning is provided in case an OpenMP application is built with
Tsan and executed without this Tsan-option.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D70412
The file was modifiedopenmp/tools/archer/ompt-tsan.cpp
The file was modifiedopenmp/CREDITS.txt
Commit 5d1b3ba687690bbb37f911f66a2c2c5f19d60032 by maskray
[Driver] Ignore -fno-semantic-interposition
Fedora wants to build projects with -fno-semantic-interposition (e.g.
https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup),
which is supported by GCC>=5.
Clang's current behavior is similar to -fno-semantic-interposition and
the end goal is to make it more so
(https://lists.llvm.org/pipermail/llvm-dev/2016-November/107625.html).
Ignore this option.
We should let users know -fsemantic-interposition is not currently
supported, so it should remain a hard error.
Reviewed By: serge-sans-paille
Differential Revision: https://reviews.llvm.org/D72724
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Driver/clang_f_opts.c
Commit 26d96126a0d258afccfeec1fbaa727bfeb820308 by danilo.carvalho.grael
[SVE] Add patterns for MUL immediate instruction.
Summary: Add the missing MUL pattern for integer immediate instructions.
Reviewers: sdesmalen, huntergr, efriedma, c-rhodes, kmclaughlin
Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits, amehsan
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72654
The file was addedllvm/test/CodeGen/AArch64/sve-neg-int-arith-imm-2.ll
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/sve-int-arith-imm.ll
The file was addedllvm/test/CodeGen/AArch64/sve-neg-int-arith-imm.ll
Commit 337e4359645ebd0f35136dbec9b51c48b9071f9c by martin
[libcxx] [Windows] Make a more proper implementation of strftime_l for
mingw with msvcrt.dll
This also makes this function consistent with the rest of the libc++
provided fallbacks.
The locale support in msvcrt.dll is very limited anyway; it can only be
configured processwide, not per thread, and it only seems to support the
locales "C" and "" (the user set locale), so it's hard to make any
meaningful automatic test for it. But manually tested, this change does
make time formatting locale code in libc++ output times in the user
requested format, when using locale "".
Differential Revision: https://reviews.llvm.org/D69554
The file was modifiedlibcxx/include/support/win32/locale_win32.h
The file was modifiedlibcxx/src/support/win32/locale_win32.cpp
Commit b53d44b17a1685e405415cd32c4b6eb89cc4c3a1 by Adrian Prantl
dotest.py: Add option to pass extra lldb settings to dotest
The primary motivation for this is to add another dimension to the Swift
LLDB test matrix, but this seems generally useful.
Differential Revision: https://reviews.llvm.org/D72662
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest_args.py
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
Commit 5ee616a710bcb52cf9f1f7951644d098d38e7b6a by jranieri
[analyzer] Fix SARIF column locations
Differential revision: https://reviews.llvm.org/D70689
The file was modifiedclang/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif
The file was modifiedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modifiedclang/test/Analysis/diagnostics/sarif-multi-diagnostic-test.c
The file was modifiedclang/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif
Commit 651128f557229e79598e22102edb7fad3bf288c0 by akhuang
[DebugInfo] Add option to clang to limit debug info that is emitted for
classes.
Summary: This patch adds an option to limit debug info by only emitting
complete class type information when its constructor is emitted. This
applies to classes that have nontrivial user defined constructors.
I implemented the option by adding another level to `DebugInfoKind`, and
a flag `-flimit-debug-info-constructor`.
Total object file size on Windows, compiling with RelWithDebInfo:
before: 4,257,448 kb
after:  2,104,963 kb
And on Linux
before: 9,225,140 kb
after:  4,387,464 kb
According to the Windows clang.pdb files, here is a list of types that
are no longer complete with this option enabled:
https://reviews.llvm.org/P8182
Reviewers: rnk, dblaikie
Subscribers: aprantl, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72427
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was addedclang/test/CodeGenCXX/debug-info-limited-ctor.cpp
Commit 04e586151e7987089d760662126e247012431e90 by nikita.ppv
[InstCombine] Fix worklist management when removing guard intrinsic
When multiple guard intrinsics are merged into one, currently the result
of eraseInstFromFunction() is returned -- however, this should only be
done if the current instruction is being removed. In this case we're
removing a different instruction and should instead report that the
current one has been modified by returning it.
For this test case, this reduces the number of instcombine iterations
from 5 to 2 (the minimum possible).
Differential Revision: https://reviews.llvm.org/D72558
The file was modifiedllvm/test/Transforms/InstCombine/call-guard.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit 986202fad41529af8288aca54f2ff62d4c501d71 by Jan Korous
[clang][test][NFC] Use more widely supported sanitizer for file
dependency tests
The tests aren't concerned at all by the actual sanitizer - only by
blacklist being reported as a dependency. We're unfortunately limited by
platform support for any particular sanitizer but we can at least use
one that is widely supported.
Post-commit review: https://reviews.llvm.org/D72729
The file was addedclang/test/Frontend/Inputs/resource_dir_with_sanitizer_blacklist/share/ubsan_blacklist.txt
The file was modifiedclang/test/Frontend/dependency-gen.c
The file was removedclang/test/Frontend/Inputs/resource_dir_with_cfi_blacklist/share/cfi_blacklist.txt
Commit fe37d9ecaabda4f9948f35bb20c1a13687a7eaca by fedor.sergeev
[GVN] fix comment/argument name to match actual implementation. NFC
The file was modifiedllvm/include/llvm/Transforms/Scalar/GVN.h
Commit 9ee90ea55c1656b75e40f595dc351fbf667f5b79 by craig.topper
[LegalizeTypes] Remove untested code from ExpandIntOp_UINT_TO_FP
This code is untested in tree because the
"APFloat::semanticsPrecision(sem) >= SrcVT.getSizeInBits() - 1" check is
false for most combinations for int and fp types except maybe i32 and
f64. For that you would need i32 to be an illegal type, but f64 to be
legal and have custom handling for legalizing the split sint_to_fp. The
precision check itself was added in 2010 to fix a double rounding issue
in the algorithm that would occur if the sint_to_fp was not able to do
the conversion without rounding.
Differential Revision: https://reviews.llvm.org/D72728
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit 1ca51c06729d7f7326fcc2a826e07d1c92158dfd by maskray
[Driver][test] Fix Driver/hexagon-toolchain-elf.c for
-DCLANG_DEFAULT_LINKER=lld builds
Reviewed By: nathanchance, sidneym
Differential Revision: https://reviews.llvm.org/D72668
The file was modifiedclang/test/Driver/hexagon-toolchain-elf.c