SuccessChanges

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

Summary

  1. Remove LLVM from depset for the libc++ builders. (details)
Commit f296f7da2dd516d86d12a53c98642e7714015ee7 by eric
Remove LLVM from depset for the libc++ builders.
This prevents every LLVM commit from triggering the libc++ buildbots,
which is a waste of resources because the only parts of LLVM that libc++
depends on are the CMake files and LIT harness.
These file change infrequently enough that it seems OK to occasionally
fail to trigger a build when they change.
The file was modifiedzorg/buildbot/builders/LibcxxAndAbiBuilder.py

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

Summary

  1. Keep symbols passed by -init and -fini (details)
  2. [RAGreedy] Enable -consider-local-interval-cost for AArch64 (details)
  3. Revert d91ed80 "[codeview] Reference types in type parent scopes" (details)
  4. [cmake] Enable thin lto cache when building with lld-link (details)
  5. [lldb][NFC] Refactor some IsClangType checks in ClangASTContext (details)
  6. [lldb] Make Target* a Target& in CommandObjectExpression::DoExecute REPL (details)
  7. Reland: [TII] Use optional destination and source pair as a return (details)
  8. Revert "[compiler-rt] Fix tests after 03b84e4f6d0" (details)
  9. Revert "[clang] Report sanitizer blacklist as a dependency in cc1" (details)
  10. test commit (details)
  11. test commit (details)
  12. Revert "Revert "[clang] Report sanitizer blacklist as a dependency in (details)
  13. Revert "Revert "Revert "[clang] Report sanitizer blacklist as a (details)
  14. Revert "test commit" (details)
  15. Revert "test commit" (details)
  16. [clang-format] update comments in clang-format.py for python3 (details)
  17. BinaryStream - fix static analyzer warnings. NFCI.  - uninitialized (details)
  18. [LV] Apply sink-after & interleave-groups as VPlan transformations (details)
  19. [AMDGPU][MC] Corrected src0 for v_movrelsd_b32 and v_movrelsd_2_b32 (details)
  20. [XCOFF][AIX] Differentiate usage of label symbol and csect symbol (details)
  21. gn build: Merge 0dc0572b48e (details)
  22. [llvm-xray] Add AArch64 to llvm-xray extract (details)
  23. [clang-format] Ensure dump_format_style.py can generate (details)
  24. Hashing - fix uninitialized variable warnings. NFCI. (details)
  25. ReplacementItem - fix uninitialized variable warning. NFCI. (details)
  26. Timer - fix uninitialized variable warnings. NFCI. (details)
  27. directory_entry - fix uninitialized variable warning. NFCI. (details)
  28. OutputStream - fix static analyzer warnings. NFCI.  - uninitialized (details)
  29. find_interesting_reviews.py: avoid crash on non-ascii data. (details)
  30. [APInt] Add saturating truncation methods (details)
  31. [ConstantRange] Add umul_sat()/smul_sat() methods (details)
  32. [NFC] ConstantRange::subWithNoWrap(): fixup comment (details)
  33. [lldb] Skip parts of TestCallOverriddenMethod.py on Linux (details)
  34. libclc: Drop travis (details)
  35. libclc: Drop the old python based build system (details)
  36. YAMLTraits.h - fix uninitialized variable warning. NFCI. (details)
  37. raw_ostream - fix static analyzer warnings. NFCI.  - uninitialized (details)
  38. [PowerPC] Remove redundant CRSET/CRUNSET in custom lowering of known CR (details)
  39. [CostModel] Fixed isExtractSubvectorMask for undef index off end (details)
  40. [LICM] Hoisting of widenable conditions out of loops (details)
  41. [LICM] Support hosting of dynamic allocas out of loops (details)
  42. Redeclare Objective-C property accessors inside the ObjCImplDecl in (details)
  43. CrashRecoveryContextCleanup - fix uninitialized variable warnings. NFCI. (details)
  44. Obj2YamlError - fix uninitialized variable warning. NFCI. (details)
  45. TimeTraceProfiler - fix uninitialized variable warning. NFCI. (details)
  46. PODSmallVector - fix uninitialized variable warnings. NFCI. (details)
  47. [LVI] Normalize pointer behavior (details)
  48. Adapt LLDB to clang API change in ObjCMethodDecl::create(). (details)
  49. Fix two typos in one test name, three days before its 10th birthday! (details)
  50. [lldb] Prevent Asan/SIP workaround from affecting Python in (details)
  51. [lldb] Make Asan/SIP workaround work for Python 3 (details)
  52. Revert "[LVI] Normalize pointer behavior" (details)
  53. remove redundant LLVM version from version string when setting (details)
  54. [JumpThreading] Fix a comment typo (NFC) (details)
  55. [ELF] Suggest extern "C" when an undefined reference is mangled while (details)
  56. [ELF] Suggest extern "C" when the definition is mangled while an (details)
  57. Properly propagate is_variadic. (details)
  58. [PowerPC][compiler-rt][builtins]Fix __fixunstfti builtin on PowerPC (details)
  59. [cmake] Remove SVN support from VersionFromVCS.cmake (details)
  60. [ThinLTO] Fix bug when importing writeonly variables (details)
  61. Reapply "Fix crash on switch conditions of non-integer types in (details)
  62. [cmake] Remove LLVM_{BUILD,LINK}_LLVM_DYLIB options on Windows (details)
  63. [clang] Add VFS support for sanitizers' blacklists (details)
  64. Reapply [LVI] Normalize pointer behavior (details)
  65. [ELF] Fix stack-use-after-scope after D69592 and 69650 (details)
  66. Revert "[LV] Apply sink-after & interleave-groups as VPlan (details)
  67. [AArch64][X86] Don't assume __powidf2 is available on Windows. (details)
  68.     [DDG] Data Dependence Graph - Pi Block (details)
  69. gn build: Merge f0af11d86f8 (details)
  70. [clang-format] NFC allow Format.h to be clang-formatted but still (details)
Commit f95273f75aaa5db5493aea7902416ce3d5a09043 by ruiu
Keep symbols passed by -init and -fini
Previously, symbols passed by -init and -fini look as if they are not
referenced by anyone, and the LTO might eliminate them. This patch fixes
the issue.
Fixes a bug reported in https://bugs.llvm.org/show_bug.cgi?id=43927
Differential Revision: https://reviews.llvm.org/D69985
The file was addedlld/test/ELF/lto/init-fini.ll
The file was modifiedlld/ELF/Driver.cpp
Commit f649f24d388c745d20fab5573d27b822b92818ed by Sanne.Wouda
[RAGreedy] Enable -consider-local-interval-cost for AArch64
Summary: The greedy register allocator occasionally decides to insert a
large number of unnecessary copies, see below for an example.  The
-consider-local-interval-cost option (which X86 already enables by
default) fixes this.  We enable this option for AArch64 only after
receiving feedback that this change is not beneficial for PowerPC.
We evaluated the impact of this change on compile time, code size and
performance benchmarks.
This option has a small impact on compile time, measured on CTMark. A
0.1% geomean regression on -O1 and -O2, and 0.2% geomean for -O3, with
at most 0.5% on individual benchmarks.
The effect on both code size and performance on AArch64 for the LLVM
test suite is nil on the geomean with individual outliers (ignoring
short exec_times) between:
                 best     worst
size..text     -3.3%    +0.0%
exec_time      -5.8%    +2.3%
On SPEC CPU® 2017 (compiled for AArch64) there is a minor reduction
(-0.2% at most) in code size on some benchmarks, with a tiny movement
(-0.01%) on the geomean.  Neither intrate nor fprate show any change in
performance.
This patch makes the following changes.
- For the AArch64 target, enableAdvancedRASplitCost() now returns true.
- Ensures that -consider-local-interval-cost=false can disable the new
behaviour if necessary.
This matrix multiply example:
   $ cat test.c
  long A[8][8];
  long B[8][8];
  long C[8][8];
   void run_test() {
    for (int k = 0; k < 8; k++) {
      for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
   C[i][j] += A[i][k] * B[k][j];
}
      }
    }
  }
results in the following generated code on AArch64:
  $ clang --target=aarch64-arm-none-eabi -O3 -S test.c -o -
[...]
                                       // %for.cond1.preheader
                                       // =>This Inner Loop Header:
Depth=1
       add     x14, x11, x9
       str     q0, [sp, #16]           // 16-byte Folded Spill
       ldr     q0, [x14]
       mov     v2.16b, v15.16b
       mov     v15.16b, v14.16b
       mov     v14.16b, v13.16b
       mov     v13.16b, v12.16b
       mov     v12.16b, v11.16b
       mov     v11.16b, v10.16b
       mov     v10.16b, v9.16b
       mov     v9.16b, v8.16b
       mov     v8.16b, v31.16b
       mov     v31.16b, v30.16b
       mov     v30.16b, v29.16b
       mov     v29.16b, v28.16b
       mov     v28.16b, v27.16b
       mov     v27.16b, v26.16b
       mov     v26.16b, v25.16b
       mov     v25.16b, v24.16b
       mov     v24.16b, v23.16b
       mov     v23.16b, v22.16b
       mov     v22.16b, v21.16b
       mov     v21.16b, v20.16b
       mov     v20.16b, v19.16b
       mov     v19.16b, v18.16b
       mov     v18.16b, v17.16b
       mov     v17.16b, v16.16b
       mov     v16.16b, v7.16b
       mov     v7.16b, v6.16b
       mov     v6.16b, v5.16b
       mov     v5.16b, v4.16b
       mov     v4.16b, v3.16b
       mov     v3.16b, v1.16b
       mov     x12, v0.d[1]
       fmov    x15, d0
       ldp     q1, q0, [x14, #16]
       ldur    x1, [x10, #-256]
       ldur    x2, [x10, #-192]
       add     x9, x9, #64             // =64
       mov     x13, v1.d[1]
       fmov    x16, d1
       ldr     q1, [x14, #48]
       mul     x3, x15, x1
       mov     x14, v0.d[1]
       fmov    x17, d0
       mov     x18, v1.d[1]
       fmov    x0, d1
       mov     v1.16b, v3.16b
       mov     v3.16b, v4.16b
       mov     v4.16b, v5.16b
       mov     v5.16b, v6.16b
       mov     v6.16b, v7.16b
       mov     v7.16b, v16.16b
       mov     v16.16b, v17.16b
       mov     v17.16b, v18.16b
       mov     v18.16b, v19.16b
       mov     v19.16b, v20.16b
       mov     v20.16b, v21.16b
       mov     v21.16b, v22.16b
       mov     v22.16b, v23.16b
       mov     v23.16b, v24.16b
       mov     v24.16b, v25.16b
       mov     v25.16b, v26.16b
       mov     v26.16b, v27.16b
       mov     v27.16b, v28.16b
       mov     v28.16b, v29.16b
       mov     v29.16b, v30.16b
       mov     v30.16b, v31.16b
       mov     v31.16b, v8.16b
       mov     v8.16b, v9.16b
       mov     v9.16b, v10.16b
       mov     v10.16b, v11.16b
       mov     v11.16b, v12.16b
       mov     v12.16b, v13.16b
       mov     v13.16b, v14.16b
       mov     v14.16b, v15.16b
       mov     v15.16b, v2.16b
       ldr     q2, [sp]                // 16-byte Folded Reload
       fmov    d0, x3
       mul     x3, x12, x1
[...]
With -consider-local-interval-cost the same section of code results in
the following:
  $ clang --target=aarch64-arm-none-eabi -mllvm
-consider-local-interval-cost -O3 -S test.c -o -
[...]
.LBB0_1:                              // %for.cond1.preheader
                                       // =>This Inner Loop Header:
Depth=1
       add     x14, x11, x9
       ldp     q0, q1, [x14]
       ldur    x1, [x10, #-256]
       ldur    x2, [x10, #-192]
       add     x9, x9, #64             // =64
       mov     x12, v0.d[1]
       fmov    x15, d0
       mov     x13, v1.d[1]
       fmov    x16, d1
       ldp     q0, q1, [x14, #32]
       mul     x3, x15, x1
       cmp     x9, #512                // =512
       mov     x14, v0.d[1]
       fmov    x17, d0
       fmov    d0, x3
       mul     x3, x12, x1
[...]
Reviewers: SjoerdMeijer, samparker, dmgreen, qcolombet
Reviewed By: dmgreen
Subscribers: ZhangKang, jsji, wuzish, ppc-slack, lkail, steven.zhang,
MatzeB, qcolombet, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69437
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.h
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp
The file was modifiedllvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
Commit ff3b513495c04d87799b3c5a98ddcdb6996af4f3 by hans
Revert d91ed80 "[codeview] Reference types in type parent scopes"
This triggered asserts in the Chromium build, see
https://crbug.com/1022729 for details and reproducer.
> Without this change, when a nested tag type of any kind (enum, class,
> struct, union) is used as a variable type, it is emitted without
> emitting the parent type. In CodeView, parent types point to their
inner
> types, and inner types do not point back to their parents. We already
> walk over all of the parent scopes to build the fully qualified name.
> This change simply requests their type indices as we go along to
enusre
> they are all emitted.
>
> Fixes PR43905
>
> Reviewers: akhuang, amccarth
>
> Differential Revision: https://reviews.llvm.org/D69924
The file was removedllvm/test/DebugInfo/COFF/parent-type-scopes.ll
The file was modifiedllvm/test/DebugInfo/COFF/global-constants.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
Commit 0a8bd77e7741b36248c4af73d05f659fb8e4d8a6 by russell.gallop
[cmake] Enable thin lto cache when building with lld-link
This was enabled for other platforms. Added option for Windows/lld-link.
Differential Revision: https://reviews.llvm.org/D69941
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 79b3cce7f143ebcbc57a3c4599cbd7a1541a742b by Raphael Isemann
[lldb][NFC] Refactor some IsClangType checks in ClangASTContext
Summary: All type in these functions need be valid and Clang types, so
we might as well replace these checks with IsClangType.
Also lets IsClangType explicitly check for validity instead of assuming
that the TypeSystem is a nullptr.
Subscribers: abidh, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D70001
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
The file was modifiedlldb/source/Symbol/ClangUtil.cpp
Commit 5a1bac4d1daee2bcbf13365a8254a26d242d8c46 by Raphael Isemann
[lldb] Make Target* a Target& in CommandObjectExpression::DoExecute REPL
logic
Subscribers: JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D70002
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp
Commit 8d2ccd1ac32ca5c96fc17e265fec5e1fc94a0520 by djordje.todorovic
Reland: [TII] Use optional destination and source pair as a return
value; NFC
Refactor usage of isCopyInstrImpl, isCopyInstr and isAddImmediate
methods to return optional machine operand pair of destination and
source registers.
Patch by Nikola Prica
Differential Revision: https://reviews.llvm.org/D69622
The file was modifiedllvm/lib/Target/Mips/MipsSEInstrInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/lib/Target/Mips/Mips16InstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.h
The file was modifiedllvm/lib/Target/Mips/Mips16InstrInfo.h
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/LiveDebugValues.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsSEInstrInfo.h
Commit d6be9273c6035c07b25dd1494f76cd61d523b878 by jeremy.morse
Revert "[compiler-rt] Fix tests after 03b84e4f6d0"
This reverts commit bdeb2724f0aa9c518f94d998d24d8620a1e88727.
(Reverting 03b84e4f6d0, so this must come out as well)
The file was modifiedcompiler-rt/test/asan/TestCases/default_blacklist.cpp
The file was modifiedcompiler-rt/test/msan/default_blacklist.cpp
Commit 6b45e1bc11e91ea7b57a6ab1c19461a86dba33f8 by jeremy.morse
Revert "[clang] Report sanitizer blacklist as a dependency in cc1"
This reverts commit 03b84e4f6d0e1c04f22d69cc445f36e1f713beb4.
This breaks dfsan tests with a linking failure, in for example this
build:
  http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/24312
Reverting this patch locally makes those tests succeed.
The file was modifiedclang/include/clang/Driver/SanitizerArgs.h
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedclang/test/Frontend/dependency-gen.c
The file was modifiedclang/test/Driver/fsanitize-blacklist.c
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Driver/Options.td
Commit b0a03f29d9a2d316d6be99e6a4825114f240c0b2 by abelkocsis
test commit
The file was modifiedclang/README.txt
Commit 3ffce13f8c7ecb21c5729aa358f1f9fc008bbea2 by abelkocsis
test commit
The file was modifiedclang/README.txt
Commit 3182027282c59c51d5080d83365917fccd695854 by abelkocsis
Revert "Revert "[clang] Report sanitizer blacklist as a dependency in
cc1""
This reverts commit 6b45e1bc11e91ea7b57a6ab1c19461a86dba33f8.
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/test/Frontend/dependency-gen.c
The file was modifiedclang/include/clang/Driver/SanitizerArgs.h
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedclang/test/Driver/fsanitize-blacklist.c
The file was modifiedclang/include/clang/Driver/Options.td
Commit 9b8413ac6e56e7a6e0ba884773d13bcf9414bd43 by abelkocsis
Revert "Revert "Revert "[clang] Report sanitizer blacklist as a
dependency in cc1"""
This reverts commit 3182027282c59c51d5080d83365917fccd695854.
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/test/Frontend/dependency-gen.c
The file was modifiedclang/include/clang/Driver/SanitizerArgs.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedclang/test/Driver/fsanitize-blacklist.c
Commit 9fcf2a38c202efcf7d221173a2b3a484d66c67e8 by abelkocsis
Revert "test commit"
This reverts commit 3ffce13f8c7ecb21c5729aa358f1f9fc008bbea2.
The file was modifiedclang/README.txt
Commit c0a77329d46f3577357645e0aa316174798e54cc by abelkocsis
Revert "test commit"
This reverts commit b0a03f29d9a2d316d6be99e6a4825114f240c0b2.
The file was modifiedclang/README.txt
Commit 6bf9e88ae4a45ee43eef3c7978040d33cead59ce by paulhoad
[clang-format] update comments in clang-format.py for python3
compatibility
Summary: D23319 introduced python3 compatibility to clang-format.py,
this is however not reflected by the documentation in the comments at
the beginning of the file, which show how to use the script with python2
in .vimrc. While the actual mapping a user might want to use may well
differ from my suggestion, I think it's nice to show the python2 and
python3 version, such that a user can pick from the suggestions instead
of googeling the python3 replacement for `:pyf` which they might not be
familiar with.
EDIT: picking reviewers according to
https://llvm.org/docs/Phabricator.html#finding-potential-reviewers
Reviewers: klimek, MyDeveloperDay
Reviewed By: MyDeveloperDay
Subscribers: ilya-biryukov, cfe-commits, llvm-commits, ychen
Patch By: pseyfert
Tags: #clang-tools-extra, #llvm, #clang
Differential Revision: https://reviews.llvm.org/D38446
The file was modifiedclang/tools/clang-format/clang-format.py
Commit ef459dedcafbdfda630c884f788a6b53ee9ee30c by llvm-dev
BinaryStream - fix static analyzer warnings. NFCI.  - uninitialized
variables  - documention warnings  - shadow variable names
The file was modifiedllvm/lib/Support/BinaryStreamReader.cpp
The file was modifiedllvm/include/llvm/Support/BinaryStreamReader.h
The file was modifiedllvm/include/llvm/Support/BinaryStreamRef.h
The file was modifiedllvm/include/llvm/Support/BinaryStreamArray.h
Commit 11ed1c0239fd51fd2f064311dc7725277ed0a994 by gil.rapaport
[LV] Apply sink-after & interleave-groups as VPlan transformations
(NFCI)
This recommits 100e797adb433724a17c9b42b6533cd634cb796b (reverted in
009e032634b3bd7fc32071ac2344b12142286477 for failing an assert). While
the root cause was independently reverted in
eaff3004019f97c64c88ab76da6b25106b659b30, this commit includes a LIT to
make sure IVDescriptor's SinkAfter logic does not try to sink branch
instructions.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
Commit e25bc5e0247141cb31093a370e22fe3249bdbb05 by dmitry.preobrazhensky
[AMDGPU][MC] Corrected src0 for v_movrelsd_b32 and v_movrelsd_2_b32
See https://bugs.llvm.org/show_bug.cgi?id=40903
Reviewers: arsenm, rampitec
Differential Revision: https://reviews.llvm.org/D69888
The file was modifiedllvm/test/MC/AMDGPU/vop1.s
The file was modifiedllvm/lib/Target/AMDGPU/VOP1Instructions.td
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_all.s
Commit 0dc0572b48ed889e6f750fd65b876a0420805377 by daltenty
[XCOFF][AIX] Differentiate usage of label symbol and csect symbol
Summary:
We are using symbols to represent label and csect interchangeably
before, and that could be a problem. There are cases we would need to
add storage mapping class to the symbol if that symbol is actually the
name of a csect, but it's hard for us to figure out whether that symbol
is a label or csect.
This patch intend to do the following:
   1. Construct a QualName (A name include the storage mapping class)
      MCSymbolXCOFF for every MCSectionXCOFF.
   2. Keep a pointer to that QualName inside of MCSectionXCOFF.
   3. Use that QualName whenever we need a symbol refers to that
      MCSectionXCOFF.
   4. Adapt the snowball effect from the above changes in
      XCOFFObjectWriter.cpp.
Reviewers: xingxue, DiggerLin, sfertile, daltenty,
hubert.reinterpretcast
Reviewed By: DiggerLin, daltenty
Subscribers: wuzish, nemanjai, mgorny, hiraditya, kbarton, jsji,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69633
The file was modifiedllvm/lib/MC/MCSectionXCOFF.cpp
The file was modifiedllvm/include/llvm/MC/MCSectionXCOFF.h
The file was modifiedllvm/include/llvm/BinaryFormat/XCOFF.h
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-lcomm.ll
The file was addedllvm/lib/BinaryFormat/XCOFF.cpp
The file was modifiedllvm/lib/MC/XCOFFObjectWriter.cpp
The file was modifiedllvm/lib/MC/MCAsmInfoXCOFF.cpp
The file was modifiedllvm/lib/MC/MCContext.cpp
The file was modifiedllvm/lib/MC/MCAsmStreamer.cpp
The file was modifiedllvm/lib/MC/MCXCOFFStreamer.cpp
The file was modifiedllvm/include/llvm/MC/MCAsmInfoXCOFF.h
The file was modifiedllvm/include/llvm/MC/MCAsmInfo.h
The file was modifiedllvm/include/llvm/MC/MCStreamer.h
The file was modifiedllvm/lib/MC/MCStreamer.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
The file was modifiedllvm/lib/BinaryFormat/CMakeLists.txt
The file was modifiedllvm/include/llvm/MC/MCXCOFFStreamer.h
The file was modifiedllvm/lib/MC/MCAsmInfo.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
Commit f96de257395a806f49ab4e7b23d3ff274a4ae787 by llvmgnsyncbot
gn build: Merge 0dc0572b48e
The file was modifiedllvm/utils/gn/secondary/llvm/lib/BinaryFormat/BUILD.gn
Commit 1d321434a202b12b3afe6f305262b930bbf05665 by hiraditya
[llvm-xray] Add AArch64 to llvm-xray extract
This required adding support for resolving R_AARCH64_ABS64 relocations
to get accurate addresses for function names to resolve.
Authored by: ianlevesque (Ian Levesque) Reviewers: dberris, phosek,
smeenai, tetsuo-cpp Differential Revision:
https://reviews.llvm.org/D69967
The file was modifiedllvm/lib/XRay/InstrumentationMap.cpp
Commit eb00839c6eb4f5dc6adadc83be93f32bd6143362 by paul_hoad
[clang-format] Ensure dump_format_style.py can generate
ClangFormatStyleOptions.rst without manual intervention
Summary: This revision is the last in a series of revisions to return
`clang/doc/tools/dump_format_style.py` to be being able to parse
Format.h without needing to manually merge the
ClangFormatStyleOptions.rst file.
The final modification to dump_format_style.py is needed following the
addition of a  nested enumeration inside a nested structure following
the introduction of {D68296}
Prior  related revisions will allow for a fully clang-formatted
`clang/include/clang/Format/Format.h` to once again be used at the
source.
{D69951}
{D69433}
{D69404}
Reviewers: mitchell-stellar, klimek, sammccall, owenpan
Reviewed By: mitchell-stellar
Subscribers: cfe-commits
Tags: #clang-format, #clang
Differential Revision: https://reviews.llvm.org/D70003
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/docs/tools/dump_format_style.py
Commit 483ed6460dedbbfb3582a3fd95d70ea0aade9a74 by llvm-dev
Hashing - fix uninitialized variable warnings. NFCI.
The file was modifiedllvm/include/llvm/ADT/Hashing.h
Commit f6fa57cf5751fdd506dcd82fd8a170b2543798f7 by llvm-dev
ReplacementItem - fix uninitialized variable warning. NFCI.
The file was modifiedllvm/include/llvm/Support/FormatVariadic.h
Commit b2a1593f03b6c0d681b75fbbd1513d691722dbee by llvm-dev
Timer - fix uninitialized variable warnings. NFCI.
The file was modifiedllvm/include/llvm/Support/Timer.h
Commit c9021d749e2570ef43b8dc72e607d21ef756b455 by llvm-dev
directory_entry - fix uninitialized variable warning. NFCI.
The file was modifiedllvm/include/llvm/Support/VirtualFileSystem.h
Commit 43eeaa147f154b1e9bf241d34b14722a3b305f30 by llvm-dev
OutputStream - fix static analyzer warnings. NFCI.  - uninitialized
variables  - make getBufferCapacity() const
The file was modifiedllvm/include/llvm/Demangle/Utility.h
Commit 1f592ecf82381f8689c4a4c6c863591679b2f665 by kristof.beyls
find_interesting_reviews.py: avoid crash on non-ascii data.
The file was modifiedllvm/utils/Reviewing/find_interesting_reviews.py
Commit 9ca363d89c103b06b986f87c0eaf3e8a00b06947 by lebedev.ri
[APInt] Add saturating truncation methods
Summary: The signed one is needed for implementation of
`ConstantRange::smul_sat()`, unsigned is for completeness only.
Reviewers: nikic, RKSimon, spatel
Reviewed By: nikic
Subscribers: hiraditya, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69993
The file was modifiedllvm/lib/Support/APInt.cpp
The file was modifiedllvm/unittests/ADT/APIntTest.cpp
The file was modifiedllvm/include/llvm/ADT/APInt.h
Commit 5a9fd76d2f7cd831cb02a33ea6a267256e37f69c by lebedev.ri
[ConstantRange] Add umul_sat()/smul_sat() methods
Summary: To be used in `ConstantRange::mulWithNoOverflow()`, may in
future be useful for when saturating shift/mul ops are added.
These are precise as far as i can tell.
I initially though i will need `APInt::[us]mul_sat()` for these, but it
turned out much simpler to do what `ConstantRange::multiply()` does -
perform multiplication in twice the bitwidth, and then truncate. Though
here we want saturating signed truncation.
Reviewers: nikic, reames, spatel
Reviewed By: nikic
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69994
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp
The file was modifiedllvm/lib/IR/ConstantRange.cpp
The file was modifiedllvm/include/llvm/IR/ConstantRange.h
Commit 7dddfa2a9c14d9627d76474c05542a5675c7716e by lebedev.ri
[NFC] ConstantRange::subWithNoWrap(): fixup comment
The file was modifiedllvm/lib/IR/ConstantRange.cpp
Commit cdc38c93fa22f0bee1bd7b84a27c32abb4a3aba8 by Raphael Isemann
[lldb] Skip parts of TestCallOverriddenMethod.py on Linux
The function call and the constructor call fail now several Linux bots
(Swift CI, my own bot and Stella's Debian system), so let's disable the
relevant test parts until we can figure out why it is failing.
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
Commit 00eca0bf0bd9a70735a4d6d39ab3776c858d915c by jano.vesely
libclc: Drop travis
It only works for standalone repos.
Reviewer: tstellar Differential Revision:
https://reviews.llvm.org/D69965
The file was removedlibclc/.travis.yml
Commit d6e0e6d255a7d54a3873b7a5d048eee00ef6bb6d by jano.vesely
libclc: Drop the old python based build system
Reviewer: tstellar Differential Revision:
https://reviews.llvm.org/D69966
The file was removedlibclc/build/metabuild.py
The file was removedlibclc/configure.py
The file was removedlibclc/build/ninja_syntax.py
Commit c8f0bb40214c5671e90b91e39c3857357a6ca918 by llvm-dev
YAMLTraits.h - fix uninitialized variable warning. NFCI.
The file was modifiedllvm/include/llvm/Support/YAMLTraits.h
Commit 9ee76ab37f1efa91432ec4efcba05819ccaeb2b1 by llvm-dev
raw_ostream - fix static analyzer warnings. NFCI.  - uninitialized
variables  - make BufferKind a scoped enum class
The file was modifiedllvm/lib/Support/raw_ostream.cpp
The file was modifiedllvm/include/llvm/Support/raw_ostream.h
Commit a3db9c08ebdf1f39ed89f4a7afa09fc153cf98c5 by yi-hong.lyu
[PowerPC] Remove redundant CRSET/CRUNSET in custom lowering of known CR
bit spills
We lower known CR bit spills (CRSET/CRUNSET) to load and spill the known
value but forgot to remove the redundant spills.
e.g., This sequence was used to spill a CRUNSET:
   crclr   4*cr5+lt
   mfocrf  r3,4
   rlwinm  r3,r3,20,0,0
   stw     r3,132(r1)
Custom lowering of known CR bit spills lower it to:
   crxor 4*cr5+lt, 4*cr5+lt, 4*cr5+lt
   li  r3,0
   stw r3,132(r1)
crxor is redundant if there is no use of 4*cr5+lt so we should remove it
Differential revision: https://reviews.llvm.org/D67722
The file was modifiedllvm/test/CodeGen/PowerPC/knowCRBitSpill.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
Commit 0703db39892949ced56590a1ec8586bf20bffdb4 by tpr
[CostModel] Fixed isExtractSubvectorMask for undef index off end
ShuffleVectorInst::isExtractSubvectorMask, introduced in
[CostModel] Add SK_ExtractSubvector handling to
getInstructionThroughput (PR39368)
erroneously thought that
%340 = shufflevector <4 x float> %339, <4 x float> undef, <3 x i32> <i32
2, i32 3, i32 undef>
is a subvector extract, even though it goes off the end of the parent
vector with the undef index. That then caused an assert in
BasicTTIImplBase::getExtractSubvectorOverhead.
This commit fixes that, by not considering the above a subvector
extract.
Differential Revision: https://reviews.llvm.org/D70005
Change-Id: I87b8b00b24bef19ffc9a1b82ef4eca3b8a246eaf
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-extract_subvector.ll
Commit 787dba7aae1d01f3fcf1e471f733f00a6ba66e33 by listmail
[LICM] Hoisting of widenable conditions out of loops
The change itself is straight forward and obvious, but ... there's an
existing test checking for exactly the opposite. Both I and Artur think
this is simply conservatism in the initial implementation.  If anyone
bisects a problem to this, a counter example will be very interesting.
Differential Revision: https://reviews.llvm.org/D69907
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/test/Transforms/LICM/explicit_guards.ll
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
Commit 8d22100f66c4170510c6ff028c60672acfe1cff9 by listmail
[LICM] Support hosting of dynamic allocas out of loops
This patch implements a correct, but not terribly useful, transform. In
particular, if we have a dynamic alloca in a loop which is guaranteed to
execute, and provably not captured, we hoist the alloca out of the loop.
The capture tracking is needed so that we can prove that each previous
stack region dies before the next one is allocated. The transform
decreases the amount of stack allocation needed by a linear factor (e.g.
the iteration count of the loop).
Now, I really hope no one is actually using dynamic allocas. As such,
why this patch?
Well, the actual problem I'm hoping to make progress on is allocation
hoisting. There's a large draft patch out for review
(https://reviews.llvm.org/D60056), and this patch was the smallest chunk
of testable functionality I could come up with which takes a step
vaguely in that direction.
Once this is in, it makes motivating the changes to capture tracking
mentioned in TODOs testable. After that, I hope to extend this to
trivial malloc free regions (i.e. free dominating all loop exits) and
allocation functions for GCed languages.
Differential Revision: https://reviews.llvm.org/D69227
The file was addedllvm/test/Transforms/LICM/hoist-alloca.ll
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
Commit 2073dd2da702baca447efaf1879cb6151e8c6100 by Adrian Prantl
Redeclare Objective-C property accessors inside the ObjCImplDecl in
which they are synthesized.
This patch is motivated by (and factored out from)
https://reviews.llvm.org/D66121 which is a debug info bugfix. Starting
with DWARF 5 all Objective-C methods are nested inside their containing
type, and that patch implements this for synthesized Objective-C
properties.
1. SemaObjCProperty populates a list of synthesized accessors that may
  need to inserted into an ObjCImplDecl.
2. SemaDeclObjC::ActOnEnd inserts forward-declarations for all
  accessors for which no override was provided into their
  ObjCImplDecl. This patch does *not* synthesize AST function
  *bodies*. Moving that code from the static analyzer into Sema may
  be a good idea though.
3. Places that expect all methods to have bodies have been updated.
I did not update the static analyzer's inliner for synthesized
properties to point back to the property declaration (see
test/Analysis/Inputs/expected-plists/nullability-notes.m.plist), which I
believed to be more bug than a feature.
Differential Revision: https://reviews.llvm.org/D68108
rdar://problem/53782400
The file was modifiedclang/lib/Sema/SemaPseudoObject.cpp
The file was modifiedclang/test/CodeGenObjC/debug-info-synthesis.m
The file was modifiedclang/test/CodeGenObjC/debug-property-synth.m
The file was modifiedclang/include/clang/AST/DeclObjC.h
The file was modifiedclang/lib/CodeGen/CGObjCMac.cpp
The file was modifiedclang/test/AST/ast-dump-decl-json.m
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/test/CodeGenObjC/debuginfo-properties.m
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/test/SemaObjC/iboutlet.m
The file was modifiedclang/test/Analysis/Inputs/expected-plists/nullability-notes.m.plist
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
The file was modifiedclang/lib/CodeGen/CGObjCGNU.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp
The file was modifiedclang/lib/Sema/SemaDeclObjC.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/include/clang/AST/DeclBase.h
The file was modifiedclang/lib/AST/DeclObjC.cpp
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/test/CodeGenObjC/instance-method-metadata.m
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/lib/Index/IndexDecl.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
Commit 24d507f4468a361ced298f1880485cebef8424a8 by llvm-dev
CrashRecoveryContextCleanup - fix uninitialized variable warnings. NFCI.
Remove default values from constructor.
The file was modifiedllvm/include/llvm/Support/CrashRecoveryContext.h
Commit 66f63d18e1d08dd7364f2c267264b7103673cde6 by llvm-dev
Obj2YamlError - fix uninitialized variable warning. NFCI.
The file was modifiedllvm/tools/obj2yaml/Error.h
Commit abe9dd4e58d28c0d456fb61559ada1403c49c86b by llvm-dev
TimeTraceProfiler - fix uninitialized variable warning. NFCI.
The file was modifiedllvm/lib/Support/TimeProfiler.cpp
Commit 1471a7ddeed030eff707942c8687ebd32456d1ae by llvm-dev
PODSmallVector - fix uninitialized variable warnings. NFCI.
The file was modifiedllvm/include/llvm/Demangle/ItaniumDemangle.h
Commit 15bc4dc9a8949f9cffd46ec647baf0818d28fb28 by nikita.ppv
[LVI] Normalize pointer behavior
Related to D69686. As noted there, LVI currently behaves differently for
integer and pointer values: For integers, the block value is always
valid inside the basic block, while for pointers it is only valid at the
end of the basic block. I believe the integer behavior is the correct
one, and CVP relies on it via its getConstantRange() uses.
The reason for the special pointer behavior is that LVI checks whether a
pointer is dereferenced in a given basic block and marks it as non-null
in that case. Of course, this information is valid only after the
dereferencing instruction, or in conservative approximation, at the end
of the block.
This patch changes the treatment of dereferencability: Instead of
including it inside the block value, we instead treat it as something
similar to an assume (it essentially is a non-nullness assume) and
incorporate this information in
intersectAssumeOrGuardBlockValueConstantRange() if the context
instruction is the terminator of the basic block. This happens either
when determining an edge-value internally in LVI, or when a terminator
was explicitly passed to getValueAt(). The latter case makes this change
not fully NFC, because we can now fold terminator icmps based on the
dereferencability information in the same block. This is the reason why
I changed one JumpThreading test
(it would optimize the condition away without the change).
Of course, we do not want to recompute dereferencability on each
intersectAssume call, so we need a new cache for this. The
dereferencability analysis requires walking the entire basic block and
computing underlying objects of all memory operands. This was previously
done separately for each queried pointer value. In the new
implementation (both because this makes the caching simpler, and because
it is faster), I instead only walk the full BB once and cache all the
dereferenced pointers. So the traversal is now performed only once per
BB, instead of once per queried pointer value.
I think the overall model now makes more sense than before, and there
will be no more pitfalls due to differing integer/pointer behavior.
Differential Revision: https://reviews.llvm.org/D69914
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/JumpThreading/combine-metadata.ll
Commit 454acae97ca4ad25cac582afe66c616ad46e4dd1 by Adrian Prantl
Adapt LLDB to clang API change in ObjCMethodDecl::create().
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
Commit 9e48a946b7b5cb90690bbeb196b185eda2fd8982 by Adrian Prantl
Fix two typos in one test name, three days before its 10th birthday!
(NFC)
The file was addedclang/test/SemaObjC/atomic-property-synthesis-rules.m
The file was removedclang/test/SemaObjC/atomoic-property-synnthesis-rules.m
Commit 6b44a41fefc7a62a5024c64fb7453f5ee93f3bb6 by Jonas Devlieghere
[lldb] Prevent Asan/SIP workaround from affecting Python in
/usr/local/bin
The code that works around SIP was unintentionally being triggered for
/usr/local/bin/python as well. That caused trouble on GreenDragon where
we were swapping out a Python 3 executable with the system's Python 2
executable.
The file was modifiedlldb/test/API/lldbtest.py
Commit 4d0e07f7862b832fb49a466feb8046770ea5b792 by Jonas Devlieghere
[lldb] Make Asan/SIP workaround work for Python 3
Make the check generic instead of hard-coding the path to Python 2. This
also fixes the print-syntax to be compatible with both versions.
The file was modifiedlldb/test/API/lldbtest.py
Commit 43ae5f4386b81077cd7bd451d215f116566ff478 by nikita.ppv
Revert "[LVI] Normalize pointer behavior"
This reverts commit 15bc4dc9a8949f9cffd46ec647baf0818d28fb28.
clang-cmake-x86_64-sde-avx512-linux buildbot reported quite a few
compile-time regressions in test-suite, will investigate.
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/JumpThreading/combine-metadata.ll
Commit 51adeae1c90c966f5ae7eb1aa8a380fcc7cd4806 by ndesaulniers
remove redundant LLVM version from version string when setting
CLANG_VENDOR
Summary: When downstream LLVM distributions (like AOSP) set the
CLANG_VENDOR cmake variable, the version string printed by the clang
driver looks like:
$ clang --version
[CLANG_VENDOR] clang version X.X.X ([CLANG_REPOSITORY_STRING] sha)
(based on LLVM X.X.X)
Rather than the more standard:
$ clang --version clang version X.X.X ([CLANG_REPOSITORY_STRING] sha)
Based on feedback the the version string is a little long, the trailing
"(based on LLVM X.X.X)" is redundant and makes less sense after moving
LLVM to the monorepo. And it is only added should vendors set the cmake
variable CLANG_VENDOR. Let's remove it.
Reviewers: jyknight, eli.friedman, rsmith, rjmccall, efriedma
Reviewed By: efriedma
Subscribers: arphaman, efriedma, cfe-commits, srhines
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69925
The file was modifiedclang/lib/Basic/Version.cpp
Commit 9aff5e1c188445190249f5cb78a574a4bedc55b0 by kazu
[JumpThreading] Fix a comment typo (NFC)
Reviewers: kazu
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70013
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
Commit 70e62a4fa6c2146fb49ee4460dad8e04152ce0a6 by maskray
[ELF] Suggest extern "C" when an undefined reference is mangled while
the definition is not
When missing an extern "C" declaration, an undefined reference may be
mangled while the definition is not. Suggest the missing extern "C" and
the base name.
Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D69592
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/CMakeLists.txt
The file was addedlld/test/ELF/undef-suggest-extern-c.s
Commit 59d3fbc227cca41e3e7b213ea744ca3a48d5244f by maskray
[ELF] Suggest extern "C" when the definition is mangled while an
undefined reference is not
The definition may be mangled while an undefined reference is not. This
may come up when (1) the reference is from a C file or (2) the
definition misses an extern "C".
(2) is more common. Suggest an arbitrary mangled name that matches the
undefined reference, if such a definition exists.
  ld.lld: error: undefined symbol: foo
>>> referenced by a.o:(.text+0x1)
>>> did you mean to declare foo(int) as extern "C"?
>>> defined in: a1.o
Reviewed By: dblaikie, ruiu
Differential Revision: https://reviews.llvm.org/D69650
The file was modifiedlld/ELF/Relocations.cpp
The file was addedlld/test/ELF/undef-suggest-extern-c2.s
Commit 8204d9ff7ef59bbec9137a5b6679718d03b9cb1b by Adrian Prantl
Properly propagate is_variadic.
This fixes a copy&paste error made when adapting to new clang API which
was promptly caught by the bots.
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
Commit 71f4761431a79794b5be24c1d863bcc0c4577e60 by lei
[PowerPC][compiler-rt][builtins]Fix __fixunstfti builtin on PowerPC
__fixunstfti converts a long double (IBM double-double) to an unsigned
128 bit integer.  This patch enables it to handle a previously unhandled
case in which a negative low double may impact the result of the
conversion.
Collaborated with @masoud.ataei and @renenkel. Patch By: Baptiste Saleil
Differential Revision: https://reviews.llvm.org/D69193
The file was modifiedcompiler-rt/lib/builtins/ppc/fixunstfti.c
The file was modifiedcompiler-rt/test/builtins/Unit/ppc/fixunstfti_test.h
Commit caad2170aed76d1df8b4305b1b7d81c4943626db by tstellar
[cmake] Remove SVN support from VersionFromVCS.cmake
Reviewers: phosek
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69682
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/cmake/modules/VersionFromVCS.cmake
Commit 7f92d66f378574ab2a02935b6614560ae9000539 by evgeny
[ThinLTO] Fix bug when importing writeonly variables
Patch enables import of write-only variables with non-trivial
initializers to fix linker errors. Initializers of imported variables
are converted to
'zeroinitializer' to avoid promotion of referenced objects.
Differential revision: https://reviews.llvm.org/D70006
The file was addedllvm/test/ThinLTO/X86/Inputs/writeonly-with-refs.ll
The file was modifiedllvm/lib/IR/ModuleSummaryIndex.cpp
The file was addedllvm/test/ThinLTO/X86/writeonly-with-refs.ll
The file was modifiedllvm/lib/Transforms/IPO/FunctionImport.cpp
The file was modifiedllvm/lib/Transforms/Utils/FunctionImportUtils.cpp
Commit 759948467ea3181615d44d80f74ffeb260180fd0 by melanie.blower
Reapply "Fix crash on switch conditions of non-integer types in
templates"
This patch reapplies commit 76945821b9cad3. The first version broke
buildbots due to clang-tidy test fails. The fails are because some
errors in templates are now diagnosed earlier (does not wait till
instantiation). I have modified the tests to add checks for these
diagnostics/prevent these diagnostics. There are no additional code
changes.
Summary of code changes:
Clang currently crashes for switch statements inside a template when the
condition is a non-integer field member because contextual implicit
conversion is skipped when parsing the condition. This conversion is
however later checked in an assert when the case statement is handled.
The conversion is skipped when parsing the condition because the field
member is set as type-dependent based on its containing class. This
patch sets the type dependency based on the field's type instead.
This patch fixes Bug 40982.
Reviewers: rnk, gribozavr2
Patch by: Elizabeth Andrews (eandrews)
Differential revision: https://reviews.llvm.org/D69950
The file was modifiedclang/test/SemaTemplate/member-access-expr.cpp
The file was addedclang/test/SemaTemplate/non-integral-switch-cond.cpp
The file was modifiedclang/test/SemaTemplate/enum-argument.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/misc-unused-parameters.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/test/SemaTemplate/dependent-names.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-string-integer-assignment.cpp
Commit 3ffbf9720fb01d156f09b0eabdeafc548711fb19 by tstellar
[cmake] Remove LLVM_{BUILD,LINK}_LLVM_DYLIB options on Windows
Summary: The options aren't supported so they can be removed.
Reviewers: beanz, smeenai, compnerd
Reviewed By: compnerd
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69877
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/docs/BuildingADistribution.rst
The file was modifiedllvm/docs/CMake.rst
The file was modifiedllvm/docs/GettingStarted.rst
The file was modifiedllvm/CMakeLists.txt
Commit 590f279c456bbde632eca8ef89a85c478f15a249 by Jan Korous
[clang] Add VFS support for sanitizers' blacklists
Differential Revision: https://reviews.llvm.org/D69648
The file was modifiedllvm/include/llvm/Support/SpecialCaseList.h
The file was modifiedclang/include/clang/Basic/SanitizerSpecialCaseList.h
The file was modifiedllvm/lib/Support/SpecialCaseList.cpp
The file was addedclang/test/CodeGen/Inputs/sanitizer-blacklist-vfsoverlay.yaml
The file was modifiedclang/lib/Basic/SanitizerBlacklist.cpp
The file was addedclang/test/CodeGen/ubsan-blacklist-vfs.c
The file was modifiedclang/lib/Basic/SanitizerSpecialCaseList.cpp
Commit 885a05f48a5d320946c89590b73a764e5884fe4f by nikita.ppv
Reapply [LVI] Normalize pointer behavior
Fix cache invalidation by not guarding the dereferenced pointer cache
erasure by SeenBlocks. SeenBlocks is only populated when actually
caching a value in the block, which doesn't necessarily have to happen
just because dereferenced pointers were calculated.
-----
Related to D69686. As noted there, LVI currently behaves differently for
integer and pointer values: For integers, the block value is always
valid inside the basic block, while for pointers it is only valid at the
end of the basic block. I believe the integer behavior is the correct
one, and CVP relies on it via its getConstantRange() uses.
The reason for the special pointer behavior is that LVI checks whether a
pointer is dereferenced in a given basic block and marks it as non-null
in that case. Of course, this information is valid only after the
dereferencing instruction, or in conservative approximation, at the end
of the block.
This patch changes the treatment of dereferencability: Instead of
including it inside the block value, we instead treat it as something
similar to an assume (it essentially is a non-nullness assume) and
incorporate this information in
intersectAssumeOrGuardBlockValueConstantRange() if the context
instruction is the terminator of the basic block. This happens either
when determining an edge-value internally in LVI, or when a terminator
was explicitly passed to getValueAt(). The latter case makes this change
not fully NFC, because we can now fold terminator icmps based on the
dereferencability information in the same block. This is the reason why
I changed one JumpThreading test
(it would optimize the condition away without the change).
Of course, we do not want to recompute dereferencability on each
intersectAssume call, so we need a new cache for this. The
dereferencability analysis requires walking the entire basic block and
computing underlying objects of all memory operands. This was previously
done separately for each queried pointer value. In the new
implementation (both because this makes the caching simpler, and because
it is faster), I instead only walk the full BB once and cache all the
dereferenced pointers. So the traversal is now performed only once per
BB, instead of once per queried pointer value.
I think the overall model now makes more sense than before, and there
will be no more pitfalls due to differing integer/pointer behavior.
Differential Revision: https://reviews.llvm.org/D69914
The file was modifiedllvm/test/Transforms/JumpThreading/combine-metadata.ll
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
Commit 5b47efa20e0c482a60af5fea8dd7e3fae94c1a7e by maskray
[ELF] Fix stack-use-after-scope after D69592 and 69650
The file was modifiedlld/ELF/Relocations.cpp
Commit 9f08ce0d2197d4f163dfa4633eae2347ce8fc881 by gil.rapaport
Revert "[LV] Apply sink-after & interleave-groups as VPlan
transformations (NFCI)"
This reverts commit 11ed1c0239fd51fd2f064311dc7725277ed0a994 - causes an
assert failure.
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
Commit 5df3a87224ef5843a3374a5b87e57495b3f714c4 by efriedma
[AArch64][X86] Don't assume __powidf2 is available on Windows.
We had some code for this for 32-bit ARM, but this doesn't really need
to be in target-specific code; generalize it.
(I think this started showing up recently because we added an
optimization that converts pow to powi.)
Differential Revision: https://reviews.llvm.org/D69013
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/powi-windows.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/powi-windows.ll
Commit f0af11d86f81620096a87ffeb50267598d88e5b6 by bmahjour
    [DDG] Data Dependence Graph - Pi Block
    Summary:
   This patch adds Pi Blocks to the DDG. A pi-block represents a group
of DDG
   nodes that are part of a strongly-connected component of the graph.
   Replacing all the SCCs with pi-blocks results in an acyclic
representation
   of the DDG. For example if we have:
      {a -> b}, {b -> c, d}, {c -> a}
   the cycle a -> b -> c -> a is abstracted into a pi-block "p" as
follows:
      {p -> d} with "p" containing: {a -> b}, {b -> c}, {c -> a}
   In this implementation the edges between nodes that are part of the
pi-block
   are preserved. The crossing edges (edges where one end of the edge is
in the
   set of nodes belonging to an SCC and the other end is outside that
set) are
   replaced with corresponding edges to/from the pi-block node instead.
    Authored By: bmahjour
    Reviewer: Meinersbur, fhahn, myhsu, xtian, dmgreen, kbarton,
jdoerfert
    Reviewed By: Meinersbur
    Subscribers: ychen, arphaman, simoll, a.elovikov, mgorny, hiraditya,
jfb, wuzish, llvm-commits, jsji, Whitney, etiotto, ppc-slack
    Tag: #llvm
    Differential Revision: https://reviews.llvm.org/D68827
The file was addedllvm/unittests/ADT/EnumeratedArrayTest.cpp
The file was modifiedllvm/lib/Analysis/DependenceGraphBuilder.cpp
The file was modifiedllvm/test/Analysis/DDG/basic-b.ll
The file was addedllvm/include/llvm/ADT/EnumeratedArray.h
The file was modifiedllvm/include/llvm/Analysis/DependenceGraphBuilder.h
The file was modifiedllvm/unittests/ADT/CMakeLists.txt
The file was modifiedllvm/include/llvm/Analysis/DDG.h
The file was modifiedllvm/test/Analysis/DDG/basic-loopnest.ll
The file was modifiedllvm/test/Analysis/DDG/root-node.ll
The file was modifiedllvm/lib/Analysis/DDG.cpp
The file was modifiedllvm/test/Analysis/DDG/basic-a.ll
Commit fa03665e8666e72ca1c5c2f78aa86e8de64bdd1e by llvmgnsyncbot
gn build: Merge f0af11d86f8
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
Commit 860ee4f3ebf56f4d2e387ceec9b8028636e72d2c by paul_hoad
[clang-format] NFC allow Format.h to be clang-formatted but still
maintain the same doc layout in ClangFormatStyleOptions.rst
Summary: Format.h is used to generate ClangFormatStyleOptions.rst, the
layout of the comments is critical to the rst file. Accidentally
clang-formatting Format.h can lead to the .rst changing.
This revision simply add // clang-format off/on statement around the
areas who formatting needs to be maintained, mainly around the options
that are related to what happens when the line breaks due to
`ColumnLimit` (which is what is happening to the comment)
This allows Format.h to be clang-formatted without causing a change in
the documentation when dump_format_style.py is rerun, which is also part
of the revision.
Reviewers: mitchell-stellar, klimek, sammccall, owenpan
Reviewed By: mitchell-stellar
Subscribers: cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D69951
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/include/clang/Format/Format.h