SuccessChanges

Summary

  1. Add debug check for null pointers passed to <string_view> (details)
  2. compiler-rt/builtins: Make check-builtins run tests on macOS. (details)
  3. lld-link: Make Options.td formatting more self-consistent. (details)
  4. [CodeEmitter] Support instruction widths > 64 bits (details)
  5. [CodeEmitter] Improve testing for APInt encoding (details)
  6. [ARM] Simplify and update vmla test. NFC (details)
  7. [SLP] limit vectorization of Constant subclasses (PR33958) (details)
  8. [ARM] Masked loads and stores (details)
  9. [DebugInfo] Don't dereference a dyn_cast<PDBSymbolData> result. NFCI. (details)
  10. [OpenMP] Fix OMPClauseReader::readClause() uninitialized variable (details)
  11. InterleavedLoadCombine - merge isa<> and dyn_cast<> duplicates. NFCI. (details)
  12. [LoadStoreVectorizer] vectorizeLoadChain - ensure we find a valid Type (details)
  13. [GlobalISel] findGISelOptimalMemOpLowering - remove dead initalization. (details)
  14. [PowerPC][NFC] Add a testcase for fdiv expansion. (details)
  15. [InstCombine] add icmp tests with extra uses; NFC (details)
  16. [InstCombine] remove unneeded one-use checks for icmp fold (details)
  17. Commit missing part of "Split many_tls_keys.cpp into two tests" (details)
  18. [Attributor] Heap-To-Stack Conversion (details)
  19. AMDGPU/GlobalISel: Fix VALU s16 fneg (details)
  20. AMDGPU/GlobalISel: Select s32->s16 G_[US]ITOFP (details)
  21. AMDGPU/GlobalISel: Select S16->S32 fptoint (details)
  22. AMDGPU/GlobalISel: Set type on vgpr live in special arguments (details)
  23. AMDGPU/GlobalISel: Legalize s1 source G_[SU]ITOFP (details)
  24. AMDGPU/GlobalISel: RegBankSelect for kill (details)
  25. AMDGPU/GlobalISel: Select SMRD loads for more types (details)
  26. AMDGPU/GlobalISel: Remove illegal select tests (details)
  27. [ELF] Map the ELF header at imageBase (details)
  28. [ELF][X86] Allow PT_LOAD to have overlapping p_offset ranges on (details)
  29. [SystemZ]  Merge the SystemZExpandPseudo pass into SystemZPostRewrite. (details)
  30. [AArch64] Some more FP16 FMA pattern matching (details)
  31. gn build: Merge r371959 (details)
  32. [test] Add -z separate-code to fix tests that ae sensitive to exact (details)
  33. [clang-tidy] performance-inefficient-vector-operation: Support proto (details)
  34. [ELF][ARM] Implement --fix-cortex-a8 to fix erratum 657417 (details)
  35. gn build: Merge r371965 (details)
  36. [SVE][Inline-Asm] Add constraints for SVE predicate registers (details)
  37. Fix the rst doc, unbreak buildbot. (details)
  38. Change signature of __builtin_rotateright64 back to unsigned (details)
  39. [ELF][ARM] Fix -Werror buildbots NFC. (details)
  40. [clangd] Fix a crash when renaming operator. (details)
  41. Added return statement to fix compile and build warning: (details)
  42. [SLPVectorizer] Don't dereference a dyn_cast result. NFCI. (details)
  43. [SLPVectorizer] Assert that we find a LastInst to silence analyzer null (details)
  44. [VPlanSLP] Don't dereference a cast_or_null<VPInstruction> result. NFCI. (details)
  45. Implement semantic selections. (details)
  46. gn build: Merge r371976 (details)
  47. [InstCombine] fix comments to match code; NFC (details)
  48. [InstCombine] add icmp tests with extra uses; NFC (details)
  49. [clangd] Bump vscode-clangd v0.0.17 (details)
  50. [InstCombine] remove unneeded one-use checks for icmp fold (details)
  51. [ARM] Fold VCMP into VPT (details)
  52. [docs][llvm-size] Write llvm-size documentation (details)
  53. [docs][llvm-strings] Write llvm-strings documentation (details)
  54. Move some definitions from Sema to Basic to fix shared libs build (details)
  55. [clangd][vscode] update the development doc. (details)
  56. [InstCombine] add/move tests for icmp with add operand; NFC (details)
  57. [X86][NFC] Add a `use-aa` feature. (details)
  58. AMDGPU/GlobalISel: Remove another illegal select test (details)
  59. AMDGPU/GlobalISel: Fix RegBankSelect for G_FRINT and G_FCEIL (details)
  60. AMDGPU/GlobalISel: Fix some broken run lines (details)
  61. AMDGPU/GlobalISel: Fail select of G_INSERT non-32-bit source (details)
  62. [NFC] remove unused functions (details)
  63. [SystemZ]  Call erase() on the right MBB in (details)
  64. [LV] Add ARM MVE tail-folding tests (details)
  65. [libFuzzer] Remove unused version of FuzzedDataProvider.h. (details)
  66. [ExecutionEngine] Don't dereference a dyn_cast result. NFCI. (details)
  67. [ARM] Add patterns for CTLZ on MVE (details)
  68. [ARM] Lower CTTZ on MVE (details)
  69. [ARM] Add patterns for bitreverse intrinsic on MVE (details)
  70. [ARM] Add patterns for BSWAP intrinsic on MVE (details)
  71. [InstCombine] move tests for icmp+add; NFC (details)
  72. [InstCombine] remove unneeded one-use checks for icmp fold (details)
  73. [clangd] Simplify semantic highlighting visitor (details)
  74. [SimplifyCFG] FoldTwoEntryPHINode(): consider *total* speculation cost, (details)
  75. [OPENMP]Fix parsing/sema for function templates with declare simd. (details)
  76. [ARM] A predicate cast of a predicate cast is a predicate cast (details)
  77. [X86][AVX] matchShuffleWithSHUFPD - add support for zeroable operands (details)
  78. [Clang][Codegen] Relax available-externally-suppress.c test (details)
  79. [Clang][Codegen] Disable arm_acle.c test. (details)
  80. Implement std::condition_variable via pthread_cond_clockwait() where (details)
  81. [lldb][NFC] Make ApplyObjcCastHack less scary (details)
  82. [lldb] Remove SetCount/ClearCount from Flags (details)
  83. [ARM][Codegen] Autogenerate arm-cgp-casts.ll test. (details)
  84. [PGO] Use linkonce_odr linkage for __profd_ variables in comdat groups (details)
  85. [LTO][Legacy] Add new C inferface to query libcall functions (details)
  86. [lld] Update lld driver to use new LTO APIs to handle libcall symbols (details)
  87. [Coverage] Assert that filenames in a TU are unique, NFC (details)
  88. [Coverage] Speed up file-based queries for coverage info, NFC (details)
  89. do not emit -Wunused-macros warnings in -frewrite-includes mode (details)
  90. Open fstream files in O_CLOEXEC mode when possible. (details)
  91. [NFC] Move dumping into GDBRemotePacket (details)
  92. [PowerPC] Cust lower fpext v2f32 to v2f64 from extract_subvector v4f32 (details)
  93. [Docs] Adds Getting Started/Tutorials, Reference to LLVM docs homepage (details)
  94. [Docs] Bug fix for docs homepage (details)
  95. [NFC] Test commit access (details)
  96. Revert "Implement std::condition_variable via pthread_cond_clockwait() (details)
  97. [lit] Make internal diff work in pipelines (details)
  98. Add a director, along with README.txt and LICENSE.txt, for libc. (details)
  99. [clang-tidy] add checks to bugprone-posix-return (details)
  100. [compiler-rt][crt]  make test case nontrivial in (details)
  101. [Modules][Objective-C] Use complete decl from module when diagnosing (details)
  102. [OPENMP]Fix the test, NFC. (details)
  103. [test] Clean up previous raw profile before merging into it (details)
  104. [Remarks] Allow remarks::Format::YAML to take a string table (details)
  105. [PowerPC] Cust lower fpext v2f32 to v2f64 from extract_subvector v4f32 (details)
  106. Fix warning: lambda capture 'temp_file_path' is not used (details)
  107. [Reproducer] Implement dumping packets. (details)
  108. Fix swig python package path (details)
  109. Add libc to path mappings in git-llvm. (details)
  110. llvm-reduce: Make tests shell-independent by passing the interpreter on (details)
  111. [GlobalISel] Partially revert r371901. (details)
  112. Revert r372035: "[lit] Make internal diff work in pipelines" (details)
  113. [test] Fail gracefully if the regex doesn't match (details)
  114. llvm-reduce: Remove some string copies (details)
  115. llvm-reduce: Clean out previous test temp/output dir, since it was a dir (details)
  116. [OPENMP] Fix the test, NFC (details)
  117. [libFuzzer] Always print DSO map on Fuchsia libFuzzer launch (details)
  118. Revert "[lldb][NFC] Make ApplyObjcCastHack less scary" (details)
  119. Push lambda scope earlier when transforming lambda expression (details)
Commit 6bc1236d395187334051b99e2fcd715a54753f33 by eric
Add debug check for null pointers passed to <string_view>
llvm-svn: 371925
The file was addedlibcxx/test/libcxx/debug/db_string_view.pass.cpp
The file was modifiedlibcxx/include/__string
The file was modifiedlibcxx/include/string_view
Commit 34b6f49c2ca4491a3a3ee520ea5919b8e7aeb459 by nicolasweber
compiler-rt/builtins: Make check-builtins run tests on macOS.
Differential Revision: https://reviews.llvm.org/D66984
llvm-svn: 371926
The file was modifiedcompiler-rt/test/builtins/CMakeLists.txt
The file was modifiedcompiler-rt/test/builtins/Unit/lit.cfg.py
Commit c7d8cc48c139232ddaae67cb6a09061bcd79b7ab by nicolasweber
lld-link: Make Options.td formatting more self-consistent.
Also tighten up help strings for /force, --start-lib, and --end-lib.
Differential Revision: https://reviews.llvm.org/D67457
llvm-svn: 371927
The file was modifiedlld/COFF/Options.td
Commit 60aadd19cbffc3793476a14d2e3529214119e2f5 by jmolloy
[CodeEmitter] Support instruction widths > 64 bits
Some VLIW instruction sets are Very Long Indeed. Using uint64_t
constricts the Inst encoding to 64 bits (naturally).
This change switches CodeEmitter to a mode that uses APInts when Inst's
bitwidth is > 64 bits (NFC for existing targets).
When Inst.BitWidth > 64 the prototype changes to:
  void TargetMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
                                               
SmallVectorImpl<MCFixup> &Fixups,
                                                 APInt &Inst,
                                                 APInt &Scratch,
                                                 const MCSubtargetInfo
&STI);
The Inst parameter returns the encoded instruction, the Scratch
parameter is used internally for manipulating operands and is exposed so
that the underlying storage can be reused between calls to
getBinaryCodeForInstr. The goal is to elide any APInt constructions that
we can.
Similarly the operand encoding prototype changes to:
  getMachineOpValue(const MCInst &MI, const MCOperand &MO, APInt &op,
SmallVectorImpl<MCFixup> &Fixups, const MCSubtargetInfo &STI);
That is, the operand is passed by reference as APInt rather than
returned as uint64_t.
To reiterate, this APInt mode is enabled only when Inst.BitWidth > 64,
so this change is NFC for existing targets.
llvm-svn: 371928
The file was modifiedllvm/utils/TableGen/CodeEmitterGen.cpp
The file was modifiedllvm/test/TableGen/RegisterEncoder.td
The file was addedllvm/test/TableGen/BigEncoder.td
Commit a088b95f89176b87553d68f3ffbe1f7cba4cefb5 by jmolloy
[CodeEmitter] Improve testing for APInt encoding
I missed Artem's comment in D67487 before committing.
Differential Revision: https://reviews.llvm.org/D67487
llvm-svn: 371929
The file was modifiedllvm/test/TableGen/BigEncoder.td
Commit 06b309d5274951a9c3c37598afece51b3948e2a4 by david.green
[ARM] Simplify and update vmla test. NFC
llvm-svn: 371930
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmaxv.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmla.ll
Commit b6a0faaa0c793aede7911be241b1895a9ebea41c by spatel
[SLP] limit vectorization of Constant subclasses (PR33958)
This is a fix for: https://bugs.llvm.org/show_bug.cgi?id=33958
It seems universally true that we would not want to transform this kind
of sequence on any target, but if that's not correct, then we could view
this as a target-specific cost model problem. We could also white-list
ConstantInt, ConstantFP, etc. rather than blacklist Global and
ConstantExpr.
Differential Revision: https://reviews.llvm.org/D67362
llvm-svn: 371931
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
Commit b325c057322ce14b5c561d8ac49508adab7649e5 by david.green
[ARM] Masked loads and stores
Masked loads and store fit naturally with MVE, the instructions being
easily predicated. This adds lowering for the simple cases of masked
loads and stores. It does not yet deal with widening/narrowing or
pre/post inc, and so is currently behind an option.
The llvm masked load intrinsic will accept a "passthru" value, dictating
the values used for the zero masked lanes. In MVE the instructions write
0 to the zero predicated lanes, so we need to match a passthru that
isn't 0 (or undef) with a select instruction to pull in the correct data
after the load.
Differential Revision: https://reviews.llvm.org/D67186
llvm-svn: 371932
The file was addedllvm/test/Transforms/LoopVectorize/ARM/mve-maskedldst.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-load.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-ldst.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-store.ll
Commit 4f234aaf2c9801364d1855dc82466c4a307360cb by llvm-dev
[DebugInfo] Don't dereference a dyn_cast<PDBSymbolData> result. NFCI.
The static analyzer is warning about a potential null dereference - but
as we're in DataMemberLayoutItem we should be able to guarantee that the
Symbol is a PDBSymbolData type, allowing us to use cast<PDBSymbolData> -
and if not assert will fire for us.
llvm-svn: 371933
The file was modifiedllvm/lib/DebugInfo/PDB/UDTLayout.cpp
Commit 556fbfec1359694290fe9798fa84a50033370b21 by llvm-dev
[OpenMP] Fix OMPClauseReader::readClause() uninitialized variable
warning. NFCI.
Fixes static analyzer uninitialized variable warning for the OMPClause -
the function appears to cover all cases, but I've added an assertion to
make sure.
llvm-svn: 371934
The file was modifiedclang/lib/Serialization/ASTReader.cpp
Commit 2b4ace3f2990a8e035c1bfd3f6b0dabc143db0c6 by llvm-dev
InterleavedLoadCombine - merge isa<> and dyn_cast<> duplicates. NFCI.
Silence static analyzer null dereference warning of
*dyn_cast<BinaryOperator> by merging with the isa<BinaryOperator> above.
llvm-svn: 371935
The file was modifiedllvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
Commit 4e46ea3946cb12a165574a973f5b928fc692c850 by llvm-dev
[LoadStoreVectorizer] vectorizeLoadChain - ensure we find a valid Type
down the load chain. NFCI.
Silence static analyzer uninitialized variable warning by setting the
LoadTy to null and then asserting we find a real value.
llvm-svn: 371936
The file was modifiedllvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
Commit a8a4953fdf3c3b1edfcf25f14ac1e6e49ab32cb7 by llvm-dev
[GlobalISel] findGISelOptimalMemOpLowering - remove dead initalization.
NFCI.
Fixes static analyzer warning that "Value stored to 'NewTySize' during
its initialization is never read".
llvm-svn: 371937
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
Commit 07d824a7c39ee91c0971d46ae5ca6e125fe4daf0 by Jinsong Ji
[PowerPC][NFC] Add a testcase for fdiv expansion.
Pre-commit for following patch.
llvm-svn: 371938
The file was addedllvm/test/CodeGen/PowerPC/fdiv.ll
Commit c77ad16f8e5fd0ff0791e86fbbff14c376a1081d by spatel
[InstCombine] add icmp tests with extra uses; NFC
llvm-svn: 371939
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
Commit 3daf168fa986d00504483a0277988124d55a0b78 by spatel
[InstCombine] remove unneeded one-use checks for icmp fold
This fold and several others were added in: rL125734
...with no explanation for the one-use checks other than the code
comments about register pressure.
Given that this is IR canonicalization, we shouldn't be worried about
register pressure though; the backend should be able to adjust for that
as needed.
There are similar checks as noted with the TODO comments. I'm hoping to
remove those restrictions too, but if any of these does cause a
regression, it should be easier to correct by making small, individual
commits.
This is part of solving PR43310 the theoretically right way:
https://bugs.llvm.org/show_bug.cgi?id=43310
...ie, if we don't cripple basic transforms, then we won't need to add
special-case code to detect larger patterns.
llvm-svn: 371940
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit f7877dd4b6371036e2255b08fb96555827976368 by n54
Commit missing part of "Split many_tls_keys.cpp into two tests"
https://reviews.llvm.org/D67428
This change was lost due to a file rename and modification.
llvm-svn: 371941
The file was modifiedcompiler-rt/test/lsan/TestCases/many_tls_keys_thread.cpp
The file was modifiedcompiler-rt/test/lsan/TestCases/many_tls_keys_pthread.cpp
Commit 431141c5cc343c7601cbd5f30c5b34810b123e5c by sstipanovic
[Attributor] Heap-To-Stack Conversion
D53362 gives a prototype heap-to-stack conversion pass. With addition of
new attributes in the attributor, this can now be revisted and improved.
This will place it in the Attributor to make it easier to use new
attributes (eg. nofree, nosync, willreturn, etc.) and other attributor
features.
Reviewers: jdoerfert, uenoku, hfinkel, efriedma
Subscribers: lebedev.ri, xbolva00, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D65408
llvm-svn: 371942
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was addedllvm/test/Transforms/FunctionAttrs/heap_to_stack.ll
Commit f5d5cd205e7bc5177c80d39c03eac26eff916d20 by Matthew.Arsenault
AMDGPU/GlobalISel: Fix VALU s16 fneg
llvm-svn: 371948
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fneg.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
Commit 0a6123595f97709af912690403dea841eced0f0a by Matthew.Arsenault
AMDGPU/GlobalISel: Select s32->s16 G_[US]ITOFP
llvm-svn: 371949
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-uitofp.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sitofp.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uitofp.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-sitofp.mir
Commit 9f52c1ea583f3480ea10eef39dc112ee691ae54d by Matthew.Arsenault
AMDGPU/GlobalISel: Select S16->S32 fptoint
llvm-svn: 371950
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fptosi.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fptoui.mir
Commit 60169ed613050252d074ca2fb9294a96aa7c4367 by Matthew.Arsenault
AMDGPU/GlobalISel: Set type on vgpr live in special arguments
Fixes assertion with workitem ID intrinsics used in non-kernel
functions.
llvm-svn: 371951
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.workitem.id.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 01c7f40de3e422cef10bccb3b6c525b4b10ed23f by Matthew.Arsenault
AMDGPU/GlobalISel: Legalize s1 source G_[SU]ITOFP
llvm-svn: 371952
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-uitofp.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-sitofp.mir
Commit 48b158acae65cc715f78d46b23e5f8de69a5d6a5 by Matthew.Arsenault
AMDGPU/GlobalISel: RegBankSelect for kill
llvm-svn: 371953
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.kill.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit bc8de8a8da704c748cfcb1ad5a348cb234a4fcb8 by Matthew.Arsenault
AMDGPU/GlobalISel: Select SMRD loads for more types
llvm-svn: 371954
The file was modifiedllvm/lib/Target/AMDGPU/SMInstructions.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-constant.mir
Commit 255d157672262c5a4d5a4241d99610b02edaa459 by Matthew.Arsenault
AMDGPU/GlobalISel: Remove illegal select tests
These fail in a release build.
llvm-svn: 371955
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-constant.mir
Commit 06bb7dfbd445fe928b0ae0263ba9df1acd861c41 by maskray
[ELF] Map the ELF header at imageBase
If there is no readonly section, we map:
* The ELF header at imageBase+maxPageSize
* Program headers at imageBase+maxPageSize+sizeof(Ehdr)
* The first section .text at
imageBase+maxPageSize+sizeof(Ehdr)+sizeof(program headers)
Due to the interaction between Writer<ELFT>::fixSectionAlignments and
LinkerScript::allocateHeaders,
`alignDown(p_vaddr(R PT_LOAD)) = alignDown(p_vaddr(RX PT_LOAD))`. The RX
PT_LOAD will override the R PT_LOAD at runtime, which is not ideal:
```
// PHDR at 0x401034, should be 0x400034
PHDR           0x000034 0x00401034 0x00401034 0x000a0 0x000a0 R   0x4
// R PT_LOAD contains just Ehdr and program headers.
// At 0x401000, should be 0x400000
LOAD           0x000000 0x00401000 0x00401000 0x000d4 0x000d4 R 
0x1000
LOAD           0x0000d4 0x004010d4 0x004010d4 0x00001 0x00001 R E
0x1000
```
* createPhdrs allocates the headers to the R PT_LOAD.
* fixSectionAlignments assigns
`imageBase+maxPageSize+sizeof(Ehdr)+sizeof(program headers)` (formula:
`alignTo(dot, maxPageSize) + dot % config->maxPageSize`) to addrExpr of
.text
* allocateHeaders computes the minimum address among SHF_ALLOC sections,
i.e. addr(.text)
* allocateHeaders sets address of ELF header to
`addr(.text)-sizeof(Ehdr)-sizeof(program headers) =
imageBase+maxPageSize`
The main observation is that when the SECTIONS command is not used, we
don't have to call allocateHeaders. This requires an assumption that the
presence of PT_PHDR and addresses of headers can be decided regardless
of address information.
This may seem natural because dot is not manipulated by a linker script.
The other thing is that we have to drop the special rule for -T<section>
in `getInitialDot`. If -Ttext is smaller than the image base, the
headers will not be allocated with the old behavior (allocateHeaders is
called) but always allocated with the new behavior.
The behavior change is not a problem. Whether and where headers are
allocated can vary among linkers, or ld.bfd across different versions
(--enable-separate-code or not). It is thus advised to use a linker
script with the PHDRS command to have a consistent behavior across
linkers. If PT_PHDR is needed, an explicit --image-base can be a simpler
alternative.
Differential Revision: https://reviews.llvm.org/D67325
llvm-svn: 371957
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/test/ELF/basic-i386.s
The file was modifiedlld/test/ELF/ttext-tdata-tbss.s
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/test/ELF/basic-aarch64.s
The file was modifiedlld/test/ELF/basic-ppc.s
The file was modifiedlld/test/ELF/basic-sparcv9.s
Commit d4306e90cb18f663342068a4ad83ba42545dbf01 by maskray
[ELF][X86] Allow PT_LOAD to have overlapping p_offset ranges on
EM_X86_64
Port the D64906 technique to EM_X86_64.
Differential Revision: https://reviews.llvm.org/D67482
llvm-svn: 371958
The file was modifiedlld/test/ELF/eh-frame-value-format8.s
The file was modifiedlld/test/ELF/partition-notes.s
The file was modifiedlld/test/ELF/gdb-index-gc-sections.s
The file was modifiedlld/test/ELF/edata-etext.s
The file was modifiedlld/test/ELF/comdat.s
The file was modifiedlld/test/ELF/gdb-index-ranges.s
The file was modifiedlld/test/ELF/emit-relocs-icf1.s
The file was modifiedlld/test/ELF/x86-64-tls-ie.s
The file was modifiedlld/test/ELF/build-id.s
The file was modifiedlld/test/ELF/x86-64-gotpc-relax-und-dso.s
The file was modifiedlld/test/ELF/gnu-ifunc.s
The file was modifiedlld/test/ELF/Inputs/copy-rel-tls.s
The file was modifiedlld/test/ELF/gdb-index-ranges-discarded.s
The file was modifiedlld/test/ELF/relocation-copy-relro.s
The file was modifiedlld/test/ELF/x86-64-gotpc-relax-nopic.s
The file was modifiedlld/test/ELF/basic.s
The file was modifiedlld/test/ELF/startstop.s
The file was modifiedlld/test/ELF/relocatable.s
The file was modifiedlld/test/ELF/eh-frame-hdr-augmentation.s
The file was modifiedlld/test/ELF/x86-64-relax-got-abs.s
The file was modifiedlld/test/ELF/eh-frame-hdr-icf-fde.s
The file was modifiedlld/test/ELF/gdb-index-rng-lists.s
The file was modifiedlld/test/ELF/eh-frame-pcrel-overflow.s
The file was modifiedlld/test/ELF/emit-relocs.s
The file was modifiedlld/test/ELF/x86-64-reloc-error2.s
The file was modifiedlld/test/ELF/linkerscript/page-size.s
The file was modifiedlld/test/ELF/partition-synthetic-sections.s
The file was modifiedlld/test/ELF/avoid-empty-program-headers.s
The file was modifiedlld/test/ELF/copy-rel-large.s
The file was modifiedlld/test/ELF/gnu-ifunc-noplt.s
The file was modifiedlld/test/ELF/x86-64-got-plt-header.s
The file was modifiedlld/test/ELF/x86-64-plt-high-addr.s
The file was modifiedlld/test/ELF/partition-pack-dyn-relocs.s
The file was modifiedlld/test/ELF/tls.s
The file was modifiedlld/test/ELF/gnu-ifunc-canon.s
The file was modifiedlld/test/ELF/abs-hidden.s
The file was modifiedlld/test/ELF/just-symbols.s
The file was modifiedlld/test/ELF/global_offset_table_shared.s
The file was modifiedlld/test/ELF/cgprofile-txt.s
The file was modifiedlld/test/ELF/got.s
The file was modifiedlld/test/ELF/relro-bss.s
The file was modifiedlld/test/ELF/fill-trap.s
The file was modifiedlld/test/ELF/map-file.s
The file was modifiedlld/test/ELF/emit-relocs-mergeable.s
The file was modifiedlld/test/ELF/edata-no-bss.s
The file was modifiedlld/test/ELF/end-update.s
The file was modifiedlld/test/ELF/relocation-common.s
The file was modifiedlld/test/ELF/x86-64-tlsdesc-gd.s
The file was modifiedlld/test/ELF/end.s
The file was modifiedlld/test/ELF/gnu-ifunc-shared.s
The file was modifiedlld/test/ELF/pre_init_fini_array_missing.s
The file was modifiedlld/test/ELF/copy-rel-tls.s
The file was modifiedlld/test/ELF/no-inhibit-exec.s
The file was modifiedlld/test/ELF/relocation-copy-align-common.s
The file was modifiedlld/test/ELF/cgprofile-icf.s
The file was modifiedlld/test/ELF/eh-align-cie.s
The file was modifiedlld/test/ELF/x86-64-plt.s
The file was modifiedlld/test/ELF/rel-offset.s
The file was modifiedlld/test/ELF/relocation-copy-flags.s
The file was modifiedlld/test/ELF/segments.s
The file was modifiedlld/test/ELF/x86-64-tls-opt-noplt.s
The file was modifiedlld/test/ELF/end-dso-defined.s
The file was modifiedlld/test/ELF/x86-64-tlsdesc-ld.s
The file was modifiedlld/test/ELF/x86-64-gotpc-relax.s
The file was modifiedlld/test/ELF/relocation-non-alloc.s
The file was modifiedlld/test/ELF/image-base.s
The file was modifiedlld/test/ELF/symbol-ordering-file-icf.s
The file was modifiedlld/test/ELF/x86-64-tls-gdie.s
The file was modifiedlld/test/ELF/gdb-index.s
The file was modifiedlld/test/ELF/common.s
The file was modifiedlld/test/ELF/x86-64-retpoline-znow-static-iplt.s
The file was modifiedlld/test/ELF/x86-64-reloc-size.s
The file was modifiedlld/test/ELF/symbols.s
The file was modifiedlld/test/ELF/relocation-copy.s
The file was modifiedlld/test/ELF/linkerscript/symbol-reserved.s
The file was modifiedlld/test/ELF/verdef-defaultver.s
The file was modifiedlld/test/ELF/tls-offset.s
The file was modifiedlld/test/ELF/common-page.s
The file was modifiedlld/test/ELF/x86-64-reloc-gotpc64.s
The file was modifiedlld/test/ELF/relro-tls.s
The file was modifiedlld/test/ELF/Inputs/copy-rel-abs.s
The file was modifiedlld/test/ELF/apply-dynamic-relocs.s
The file was modifiedlld/test/ELF/combreloc.s
The file was modifiedlld/test/ELF/x86-64-reloc-range.s
The file was modifiedlld/test/ELF/x86-64-retpoline.s
The file was modifiedlld/test/ELF/symbol-ordering-file-cgprofile-conflicts.s
The file was modifiedlld/test/ELF/gdb-index-dwarf5-low-high.s
The file was modifiedlld/test/ELF/undef-with-plt-addr.s
The file was modifiedlld/test/ELF/x86-64-reloc-gotoff64.s
The file was modifiedlld/test/ELF/eh-frame-merge.s
The file was modifiedlld/test/ELF/linkerscript/absolute.s
The file was modifiedlld/test/ELF/local-got.s
The file was modifiedlld/test/ELF/x86-64-tls-gd-local.s
The file was modifiedlld/test/ELF/gnu-ifunc-dyntags.s
The file was modifiedlld/test/ELF/cgprofile-reproduce.s
The file was modifiedlld/test/ELF/relocation-undefined-weak.s
The file was modifiedlld/test/ELF/eh-frame-hdr-abs-fde.s
The file was modifiedlld/test/ELF/gnu-ifunc-plt.s
The file was modifiedlld/test/ELF/ttext-tdata-tbss.s
The file was modifiedlld/test/ELF/x86-64-tls-dynamic.s
The file was modifiedlld/test/ELF/linkerscript/synthetic-symbols3.test
The file was modifiedlld/test/ELF/defsym-reserved-syms.s
The file was modifiedlld/test/ELF/eh-frame-hdr.s
The file was modifiedlld/test/ELF/cgprofile-obj.s
The file was modifiedlld/test/ELF/x86-64-tls-ie-local.s
The file was modifiedlld/test/ELF/x86-64-retpoline-znow.s
The file was modifiedlld/test/ELF/gdb-index-base-addr.s
The file was modifiedlld/test/ELF/relative-dynamic-reloc-pie.s
The file was modifiedlld/test/ELF/cgprofile-bad-clusters.s
The file was modifiedlld/test/ELF/entry.s
The file was modifiedlld/test/ELF/ehframe-relocation.s
The file was modifiedlld/test/ELF/eh-frame-value-format7.s
The file was modifiedlld/test/ELF/relocation.s
The file was modifiedlld/test/ELF/ztext.s
The file was modifiedlld/test/ELF/startstop-shared2.s
The file was modifiedlld/test/ELF/local-got-pie.s
The file was modifiedlld/test/ELF/local-got-shared.s
The file was modifiedlld/test/ELF/cgprofile-txt2.s
The file was modifiedlld/ELF/Writer.cpp
Commit ca5acf5b5e7d658c14169d3061c6495b05e9bea0 by paulsson
[SystemZ]  Merge the SystemZExpandPseudo pass into SystemZPostRewrite.
SystemZExpandPseudo:s only job was to expand LOCRMux instructions into
jump sequences. This needs to be done if expandLOCRPseudo() or
expandSELRPseudo() fails to find a legal opcode (all registers "high" or
"low"). This task has now been moved to SystemZPostRewrite while
removing the SystemZExpandPseudo pass.
It is in fact preferred to expand these pseudos directly after register
allocation in SystemZPostRewrite since the hinted register combinations
are then not subject to later optimizations.
Review: Ulrich Weigand https://reviews.llvm.org/D67432
llvm-svn: 371959
The file was removedllvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZ.h
The file was modifiedllvm/lib/Target/SystemZ/CMakeLists.txt
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZRegisterInfo.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
Commit b1e1a26e8e7e61c924d39ae53e2922dc4364e6bb by sjoerd.meijer
[AArch64] Some more FP16 FMA pattern matching
After our previous machinecombiner exercises (rL371321, rL371818,
rL371833), we were still missing a few FP16 FMA patterns.
Differential Revision: https://reviews.llvm.org/D67576
llvm-svn: 371960
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/fp16_intrinsic_scalar_3op.ll
The file was modifiedllvm/test/CodeGen/AArch64/fp16_intrinsic_lane.ll
Commit ac32934f2848fab6fa47013271ab16f411d180b9 by nicolasweber
gn build: Merge r371959
llvm-svn: 371961
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/SystemZ/BUILD.gn
Commit b026b3e53d67c258f8b750e3fc44fa1609185dee by maskray
[test] Add -z separate-code to fix tests that ae sensitive to exact
addresses after r371958
llvm-svn: 371962
The file was modifiedlldb/lit/SymbolFile/DWARF/dir-separator-no-comp-dir-relative-name.s
The file was modifiedlldb/lit/SymbolFile/DWARF/find-inline-method.s
The file was modifiedlldb/lit/SymbolFile/DWARF/dir-separator-windows.s
The file was modifiedlldb/lit/SymbolFile/DWARF/debug-types-address-ranges.s
The file was modifiedlldb/lit/SymbolFile/DWARF/dir-separator-no-comp-dir.s
The file was modifiedlldb/lit/SymbolFile/DWARF/dir-separator-posix.s
Commit ad7a7cea89717daf6b56f35e4bc0b95afe0498a2 by hokein
[clang-tidy] performance-inefficient-vector-operation: Support proto
repeated field
Summary: Finds calls that add element to protobuf repeated field in a
loop without calling Reserve() before the loop. Calling Reserve() first
can avoid unnecessary memory reallocations.
A new option EnableProto is added to guard this feature.
Patch by Cong Liu!
Reviewers: gribozavr, alexfh, hokein, aaron.ballman
Reviewed By: hokein
Subscribers: lebedev.ri, xazax.hun, Eugene.Zelenko, cfe-commits
Tags: #clang, #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D67135
llvm-svn: 371963
The file was modifiedclang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.h
The file was modifiedclang-tools-extra/test/clang-tidy/performance-inefficient-vector-operation.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.rst
Commit ea99ce5e9b49cf7164355009435a29897934182b by peter.smith
[ELF][ARM] Implement --fix-cortex-a8 to fix erratum 657417
The --fix-cortex-a8 option implements a linker workaround for the
coretex-a8 erratum 657417. A summary of the erratum conditions is:
- A 32-bit Thumb-2 branch instruction B.w, Bcc.w, BL, BLX spans two 4KiB
regions.
- The destination of the branch is to the first 4KiB region.
- The instruction before the branch is a 32-bit Thumb-2 non-branch
instruction.
The linker fix is to redirect the branch to a patch not in the first
4KiB region. The patch forwards the branch on to its target.
The cortex-a8, is an old CPU, with the first implementation of this
workaround in ld.bfd appearing in 2009. The cortex-a8 has been used in
early Android Phones and there are some critical applications that still
need to run on a cortex-a8 that have the erratum. The patch is applied
roughly 10 times on LLD and 20 on Clang when they are built with
--fix-cortex-a8 on an Arm system.
The formal erratum description is avaliable in the ARM Core Cortex-A8
(AT400/AT401) Errata Notice document. This is available from Arm on
request but it seems to be findable via a web search.
Differential Revision: https://reviews.llvm.org/D67284
llvm-svn: 371965
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/Config.h
The file was addedlld/test/ELF/arm-fix-cortex-a8-toolarge.s
The file was addedlld/test/ELF/arm-fix-cortex-a8-recognize.s
The file was addedlld/test/ELF/arm-fix-cortex-a8-nopatch.s
The file was modifiedlld/ELF/AArch64ErrataFix.cpp
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/ELF/Options.td
The file was addedlld/test/ELF/arm-fix-cortex-a8-blx.s
The file was addedlld/ELF/ARMErrataFix.h
The file was addedlld/test/ELF/arm-fix-cortex-a8-plt.s
The file was modifiedlld/ELF/CMakeLists.txt
The file was addedlld/test/ELF/arm-fix-cortex-a8-thunk.s
The file was addedlld/ELF/ARMErrataFix.cpp
Commit b49bcea42048e145805f181620ddf0ed0af23610 by nicolasweber
gn build: Merge r371965
llvm-svn: 371966
The file was modifiedllvm/utils/gn/secondary/lld/ELF/BUILD.gn
Commit e55b3bf40ef3e89fc31912102d975863b6501cf1 by kerry.mclaughlin
[SVE][Inline-Asm] Add constraints for SVE predicate registers
Summary: Adds the following inline asm constraints for SVE:
- Upl: One of the low eight SVE predicate registers, P0 to P7 inclusive
- Upa: SVE predicate register with full range, P0 to P15
Reviewers: t.p.northover, sdesmalen, rovka, momchil.velikov,
cameron.mcinally, greened, rengolin
Reviewed By: rovka
Subscribers: javed.absar, tschuett, rkruppe, psnobl, cfe-commits,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66524
llvm-svn: 371967
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-sve-asm.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/IR/InlineAsm.cpp
The file was modifiedllvm/docs/LangRef.rst
Commit 3716547c5fe31115cf648950df201491c1858035 by hokein
Fix the rst doc, unbreak buildbot.
llvm-svn: 371968
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.rst
Commit a1bc428b897900eb562df45622f01e6f94329dda by karl-johan.karlsson
Change signature of __builtin_rotateright64 back to unsigned
The signature of __builtin_rotateright64 was by misstake changed from
unsigned to signed in r360863, this patch will change it back to
unsigned as intended.
This fixes pr43309
Reviewers: efriedma, hans
Reviewed By: hans
Differential Revision: https://reviews.llvm.org/D67606
llvm-svn: 371969
The file was modifiedclang/include/clang/Basic/Builtins.def
The file was modifiedclang/test/CodeGen/avr-builtins.c
Commit 1d74940b319c7b6aea49f94730e408586fd76a82 by peter.smith
[ELF][ARM] Fix -Werror buildbots NFC.
Provide a missing initializer to get rid of warning provoking buildbot
failures.
error: missing field 'rel' initializer
[-Werror,-Wmissing-field-initializers]
llvm-svn: 371970
The file was modifiedlld/ELF/ARMErrataFix.cpp
Commit af28bb65023ef989e9079717626a9e3080bb50d3 by hokein
[clangd] Fix a crash when renaming operator.
Summary: The renamelib uses a tricky way to calculate the end location
by relying on decl name, this is incorrect for the overloaded operator
(the name is
"operator++" instead of "++"), which will cause out-of-file offset.
We also disable renaming operator symbol, this case is tricky, and
renamelib doesnt handle it properly.
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D67607
llvm-svn: 371971
The file was modifiedclang-tools-extra/clangd/unittests/RenameTests.cpp
The file was modifiedclang-tools-extra/clangd/refactor/Rename.cpp
The file was modifiedclang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
Commit 5f349d56a84336e0c5f7b864129c27a6107a0e87 by sjoerd.meijer
Added return statement to fix compile and build warning:
llvm-rtdyld.cpp:966:7: warning: variable ‘Result’ set but not used
llvm-svn: 371972
The file was modifiedllvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
Commit ae625d70cdb36485de9429b1ea26ae74e535a053 by llvm-dev
[SLPVectorizer] Don't dereference a dyn_cast result. NFCI.
The static analyzer is warning about potential null dereferences of
dyn_cast<> results - in these cases we can safely use cast<> directly as
we know that these cases should all be the correct type, which is why
its working atm and anyway cast<> will assert if they aren't.
llvm-svn: 371973
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit bfe6b35c7079495a418cf247ef3bec828b8abce9 by llvm-dev
[SLPVectorizer] Assert that we find a LastInst to silence analyzer null
dereference warning. NFCI.
llvm-svn: 371974
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 1aaefbca24aba4fd9fa382b85606ef292c740529 by llvm-dev
[VPlanSLP] Don't dereference a cast_or_null<VPInstruction> result. NFCI.
The static analyzer is warning about a potential null dereference of the
cast_or_null result, I've split the cast_or_null check from the
->getUnderlyingInstr() call to avoid this, but it appears that we
weren't seeing any null pointers in the dumped bundles in the first
place.
llvm-svn: 371975
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanSLP.cpp
Commit 73c09eb7344e103f126811a7e6c670ddfa5fb771 by usx
Implement semantic selections.
Summary: For a given cursor position, it returns ranges that are
interesting to the user. Currently the semantic ranges correspond to the
nodes of the syntax trees.
Subscribers: mgorny, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D67358
llvm-svn: 371976
The file was addedclang-tools-extra/clangd/unittests/SemanticSelectionTests.cpp
The file was addedclang-tools-extra/clangd/SemanticSelection.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CMakeLists.txt
The file was addedclang-tools-extra/clangd/SemanticSelection.h
The file was modifiedclang-tools-extra/clangd/CMakeLists.txt
Commit eded79b0d4bdec1bd5d356ec597e66dadd08fda1 by nicolasweber
gn build: Merge r371976
llvm-svn: 371977
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
Commit 91c2cd0691d1c84202e08e3d240a0fead0dfd8d5 by spatel
[InstCombine] fix comments to match code; NFC
This blob was written before match() existed, so it could probably be
reduced significantly.
But I suspect it isn't well tested, so tests would have to be added to
reduce risk from logic changes.
llvm-svn: 371978
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 14ce3fde046ad0e9f4266a611a2f3a040b976749 by spatel
[InstCombine] add icmp tests with extra uses; NFC
llvm-svn: 371979
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
Commit 72b9c4f3bcea2a87580551afa96ad9f68c7cae38 by hokein
[clangd] Bump vscode-clangd v0.0.17
CHANGELOG:
- added semantic highlighting support (under the
clangd.semanticHighlighting
flag);
- better error message when clangd fails to execute refactoring-like
actions;
- improved the readme doc;
llvm-svn: 371980
The file was modifiedclang-tools-extra/clangd/clients/clangd-vscode/package.json
Commit c5cd80815666f535ffc37cd582e7576a29ba6816 by spatel
[InstCombine] remove unneeded one-use checks for icmp fold
This fold and several others were added in: rL125734
<https://reviews.llvm.org/rL125734>
...with no explanation for the one-use checks other than the code
comments about register pressure.
Given that this is IR canonicalization, we shouldn't be worried about
register pressure though; the backend should be able to adjust for that
as needed.
This is part of solving PR43310 the theoretically right way:
https://bugs.llvm.org/show_bug.cgi?id=43310
...ie, if we don't cripple basic transforms, then we won't need to add
special-case code to detect larger patterns.
rL371940 is a related patch in this series.
llvm-svn: 371981
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit ce7328cb61d0aedae2261d0e50c259336f125e88 by david.green
[ARM] Fold VCMP into VPT
MVE has VPT instructions, which perform the duties of both a VCMP and a
VPST in a single instruction, performing the compare and starting the
VPT block in one. This teaches the MVEVPTBlockPass to fold them,
searching back through the basicblock for a valid VCMP and creating the
VPT from its operands.
There are some changes to the VPT instructions to accommodate this,
altering the order of the operands to match the VCMP better, and
changing P0 register defs to be VPR defs, as is used in other places.
Differential Revision: https://reviews.llvm.org/D66577
llvm-svn: 371982
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vcmpfz.ll
The file was modifiedllvm/lib/Target/ARM/MVEVPTBlockPass.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-load.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-store.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block3.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vcmpf.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vcmpfr.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block6.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-or.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-ldst.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block2.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-not.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block4.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block7.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-nots.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block5.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-and.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vpt-block8.mir
Commit e8ed932683ee6a26154ffc98c58e1888a2112494 by jh7370
[docs][llvm-size] Write llvm-size documentation
Previously we only had a stub document.
Reviewed by: serge-sans-paille, MaskRay
Differential Revision: https://reviews.llvm.org/D67555
llvm-svn: 371983
The file was modifiedllvm/docs/CommandGuide/llvm-size.rst
Commit 75b6279c5e7b2a77fd65c6f3c3b5f126b728ceb5 by jh7370
[docs][llvm-strings] Write llvm-strings documentation
Previously we only had a stub document.
Reviewed by: MaskRay
Differential Revision: https://reviews.llvm.org/D67554
llvm-svn: 371984
The file was modifiedllvm/docs/CommandGuide/llvm-strings.rst
Commit b79f3319584c31c6ea7a93bc7d6f99c46eda5923 by erich.keane
Move some definitions from Sema to Basic to fix shared libs build
r371875 moved some functionality around to a Basic header file, but
didn't move its definitions as well.  This patch moves some things
around so that shared library building can work.
llvm-svn: 371985
The file was modifiedclang/lib/Sema/ParsedAttr.cpp
The file was modifiedclang/lib/Basic/Attributes.cpp
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
Commit 91154d65165e5bc757d307051d6d6daf2e91e697 by hokein
[clangd][vscode] update the development doc.
llvm-svn: 371986
The file was modifiedclang-tools-extra/clangd/clients/clangd-vscode/DEVELOPING.md
Commit f201b1c91875024224a945862cf394c24c6a29e3 by spatel
[InstCombine] add/move tests for icmp with add operand; NFC
llvm-svn: 371988
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-add.ll
Commit 44bfbcc28e715212f9f8ac104424d72e76d38acf by courbet
[X86][NFC] Add a `use-aa` feature.
Summary: This allows enabling useaa on the command-line and will allow
enabling the feature on a per-CPU basis where benchmarking shows
improvements.
This is modelled after the ARM/AArch64 target.
Reviewers: RKSimon, andreadb, craig.topper
Subscribers: javed.absar, kristof.beyls, hiraditya, ychen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67266
llvm-svn: 371989
The file was modifiedllvm/lib/Target/X86/X86.td
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
Commit bf7524db35befce9c90d4372571efdfde75740ba by Matthew.Arsenault
AMDGPU/GlobalISel: Remove another illegal select test
llvm-svn: 371990
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-constant.mir
Commit 1fc07d66488b914cc8b26e817618a2a490ef2b32 by Matthew.Arsenault
AMDGPU/GlobalISel: Fix RegBankSelect for G_FRINT and G_FCEIL
llvm-svn: 371991
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fceil.mir
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-frint.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit 07b85976566d6d0da100fcbde1a5cd9c78ac9259 by Matthew.Arsenault
AMDGPU/GlobalISel: Fix some broken run lines
llvm-svn: 371992
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.ldexp.s16.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-atomicrmw-fadd-local.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fabs.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fneg.mir
Commit fb51e64eaccb49199f06982f4170b160c5737420 by Matthew.Arsenault
AMDGPU/GlobalISel: Fail select of G_INSERT non-32-bit source
This was producing an illegal copy which would hit an assert later.
Error on selection for now until this is implemented.
llvm-svn: 371993
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
Commit 98cb8db836b155d0497f9d609a43510fd8eaf83d by gchatelet
[NFC] remove unused functions
Reviewers: courbet
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67616
llvm-svn: 371994
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
Commit b7dadc3562d0488127727c924b8735e4780a2b69 by paulsson
[SystemZ]  Call erase() on the right MBB in
SystemZTargetLowering::emitSelect()
Since MBB was split *before* MI, the MI(s) will reside in JoinMBB (MBB)
at the point of erasing them, so calling StartMBB->erase() is actually
wrong, although it is "working" by all appearances.
Review: Ulrich Weigand llvm-svn: 371995
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
Commit c2bafadd7a3338ab0d7f9c5543754ec1a803b17b by sjoerd.meijer
[LV] Add ARM MVE tail-folding tests
Now that the vectorizer can do tail-folding (rL367592), and the ARM
backend understands MVE masked loads/stores (rL371932), it's time to add
the MVE tail-folding equivalent of the X86 tests that I added.
llvm-svn: 371996
The file was addedllvm/test/Transforms/LoopVectorize/ARM/tail-loop-folding.ll
Commit d0f63f83e7c5c6fc11e964f848d1496234695182 by mmoroz
[libFuzzer] Remove unused version of FuzzedDataProvider.h.
Summary: The actual version lives in compiler-rt/include/fuzzer/.
Reviewers: Dor1s
Reviewed By: Dor1s
Subscribers: delcypher, #sanitizers, llvm-commits
Tags: #llvm, #sanitizers
Differential Revision: https://reviews.llvm.org/D67623
llvm-svn: 371997
The file was removedcompiler-rt/lib/fuzzer/utils/FuzzedDataProvider.h
Commit a48b6e98abc15b2f41570396040454e3c093b568 by llvm-dev
[ExecutionEngine] Don't dereference a dyn_cast result. NFCI.
The static analyzer is warning about potential null dereferences of
dyn_cast<> results - in these cases we can safely use cast<> directly as
we know that these cases should all be the correct type, which is why
its working atm and anyway cast<> will assert if they aren't.
llvm-svn: 371998
The file was modifiedllvm/lib/ExecutionEngine/ExecutionEngine.cpp
Commit cd1a0b92710e567c00f6d2b932b197e9a1773f7d by oliver.cruickshank
[ARM] Add patterns for CTLZ on MVE
CTLZ intrinsic can use the VCLS instruction on MVE, which produces
better results than expanding.
llvm-svn: 371999
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was addedllvm/test/CodeGen/Thumb2/mve-ctlz.ll
Commit 5f799ef1627f6f4f548f411a40fb94c620af25b6 by oliver.cruickshank
[ARM] Lower CTTZ on MVE
Lower CTTZ on MVE using VBRSR and VCLS which will reverse the bits and
count the leading zeros, equivalent to a count trailing zeros (CTTZ).
llvm-svn: 372000
The file was addedllvm/test/CodeGen/Thumb2/mve-cttz.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
Commit e9510a6cadb1aeb407184514803065413f8dd7bf by oliver.cruickshank
[ARM] Add patterns for bitreverse intrinsic on MVE
BITREVERSE can use the VBRSR which will reverse and right shift.
Shifting right by 0 will just reverse the bits.
llvm-svn: 372001
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was addedllvm/test/CodeGen/Thumb2/mve-bitreverse.ll
Commit ee6fbebbaff5af0a0fbe58a0e33ef191340223ea by oliver.cruickshank
[ARM] Add patterns for BSWAP intrinsic on MVE
BSWAP can use the VREV instruction on MVE to produce better results than
expanding.
llvm-svn: 372002
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was addedllvm/test/CodeGen/Thumb2/mve-bswap.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
Commit 4d9d0f9cf532ec40f07178693f1c37049c18bc79 by spatel
[InstCombine] move tests for icmp+add; NFC
llvm-svn: 372004
The file was removedllvm/test/Transforms/InstCombine/2009-01-31-Pressure.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-add.ll
Commit 3961a143e13a9cd7fdfec74a9f26e86117618708 by spatel
[InstCombine] remove unneeded one-use checks for icmp fold
Related folds were added in: rL125734
...the code comment about register pressure is discussed in more detail
in: https://bugs.llvm.org/show_bug.cgi?id=2698
But 10 years later, perf testing bzip2 with this change now shows a
slight (0.2% average) improvement on Haswell although that's probably
within test noise.
Given that this is IR canonicalization, we shouldn't be worried about
register pressure though; the backend should be able to adjust for that
as needed.
This is part of solving PR43310 the theoretically right way:
https://bugs.llvm.org/show_bug.cgi?id=43310
...ie, if we don't cripple basic transforms, then we won't need to add
special-case code to detect larger patterns.
rL371940 and rL371981 are related patches in this series.
llvm-svn: 372007
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-add.ll
Commit 685d8a95c5a392b016b259b41c17065d30b66afe by ibiryukov
[clangd] Simplify semantic highlighting visitor
Summary:
- Functions to compute highlighting kinds for things are separated from
the ones that add highlighting tokens.
This keeps each of them more focused on what they're doing: getting
locations and figuring out the kind of the entity, correspondingly.
- Less special cases in visitor for various nodes.
This change is an NFC.
Reviewers: hokein
Reviewed By: hokein
Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D67341
llvm-svn: 372008
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
Commit 10151f661854e3ee4922662f1d0f62b327cbfa8c by lebedev.ri
[SimplifyCFG] FoldTwoEntryPHINode(): consider *total* speculation cost,
not per-BB cost
Summary: Previously, if the threshold was 2, we were willing to
speculatively execute 2 cheap instructions in both basic blocks (thus we
were willing to speculatively execute cost = 4), but weren't willing to
speculate when one BB had 3 instructions and other one had no
instructions, even thought that would have total cost of 3.
This looks inconsistent to me. I don't think `cmov`-like instructions
will start executing until both of it's inputs are available:
https://godbolt.org/z/zgHePf So i don't see why the existing behavior is
the correct one.
Also, let's add it's own `cl::opt` for this threshold, with default=4,
so it is not stricter than the previous threshold: will allow to fold
when there are 2 BB's each with cost=2. And since the logic has changed,
it will also allow to fold when one BB has cost=3 and other cost=1, or
there is only one BB with cost=4.
This is an alternative solution to D65148: This fix is mainly motivated
by `signbit-like-value-extension.ll` test. That pattern comes up in JPEG
decoding, see e.g.
`Figure F.12 – Extending the sign bit of a decoded value in V` of `ITU
T.81` (JPEG specification). That branch is not predictable, and it is
within the innermost loop, so the fact that that pattern ends up being
stuck with a branch instead of `select` (i.e. `CMOV` for x86) is
unlikely to be beneficial.
This has great results on the final assembly (vanilla test-suite +
RawSpeed): (metric pass - D67240)
| metric                                 |     old |     new | delta | 
   % |
| x86-mi-counting.NumMachineFunctions    |   37720 |   37721 |     1 |
0.00% |
| x86-mi-counting.NumMachineBasicBlocks  |  773545 |  771181 | -2364 |
-0.31% |
| x86-mi-counting.NumMachineInstructions | 7488843 | 7486442 | -2401 |
-0.03% |
| x86-mi-counting.NumUncondBR            |  135770 |  135543 |  -227 |
-0.17% |
| x86-mi-counting.NumCondBR              |  423753 |  422187 | -1566 |
-0.37% |
| x86-mi-counting.NumCMOV                |   24815 |   25731 |   916 |
3.69% |
| x86-mi-counting.NumVecBlend            |      17 |      17 |     0 |
0.00% |
We significantly decrease basic block count, notably decrease
instruction count, significantly decrease branch count and very
significantly increase `cmov` count.
Performance-wise, unsurprisingly, this has great effect on target
RawSpeed benchmark. I'm seeing 5 **major** improvements:
``` Benchmark                                                          
                                 Time             CPU      Time Old    
Time New       CPU Old       CPU New
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Samsung/NX3000/_3184416.SRW/threads:8/process_time/real_time_pvalue    
                           0.0000          0.0000      U Test,
Repetitions: 49 vs 49
Samsung/NX3000/_3184416.SRW/threads:8/process_time/real_time_mean      
                          -0.3064         -0.3064      226.9913    
157.4452      226.9800      157.4384
Samsung/NX3000/_3184416.SRW/threads:8/process_time/real_time_median    
                          -0.3057         -0.3057      226.8407    
157.4926      226.8282      157.4828
Samsung/NX3000/_3184416.SRW/threads:8/process_time/real_time_stddev    
                          -0.4985         -0.4954        0.3051      
0.1530        0.3040        0.1534
Kodak/DCS760C/86L57188.DCR/threads:8/process_time/real_time_pvalue     
                           0.0000          0.0000      U Test,
Repetitions: 49 vs 49
Kodak/DCS760C/86L57188.DCR/threads:8/process_time/real_time_mean       
                          -0.1747         -0.1747       80.4787     
66.4227       80.4771       66.4146
Kodak/DCS760C/86L57188.DCR/threads:8/process_time/real_time_median     
                          -0.1742         -0.1743       80.4686     
66.4542       80.4690       66.4436
Kodak/DCS760C/86L57188.DCR/threads:8/process_time/real_time_stddev     
                          +0.6089         +0.5797        0.0670      
0.1078        0.0673        0.1062
Sony/DSLR-A230/DSC08026.ARW/threads:8/process_time/real_time_pvalue    
                           0.0000          0.0000      U Test,
Repetitions: 49 vs 49
Sony/DSLR-A230/DSC08026.ARW/threads:8/process_time/real_time_mean      
                          -0.1598         -0.1598      171.6996    
144.2575      171.6915      144.2538
Sony/DSLR-A230/DSC08026.ARW/threads:8/process_time/real_time_median    
                          -0.1598         -0.1597      171.7109    
144.2755      171.7018      144.2766
Sony/DSLR-A230/DSC08026.ARW/threads:8/process_time/real_time_stddev    
                          +0.4024         +0.3850        0.0847      
0.1187        0.0848        0.1175 Canon/EOS
77D/IMG_4049.CR2/threads:8/process_time/real_time_pvalue               
                 0.0000          0.0000      U Test, Repetitions: 49 vs
49 Canon/EOS 77D/IMG_4049.CR2/threads:8/process_time/real_time_mean    
                             -0.0550         -0.0551      280.3046    
264.8800      280.3017      264.8559 Canon/EOS
77D/IMG_4049.CR2/threads:8/process_time/real_time_median               
                -0.0554         -0.0554      280.2628      264.7360    
280.2574      264.7297 Canon/EOS
77D/IMG_4049.CR2/threads:8/process_time/real_time_stddev               
                +0.7005         +0.7041        0.2779        0.4725    
  0.2775        0.4729 Canon/EOS
5DS/2K4A9929.CR2/threads:8/process_time/real_time_pvalue               
                 0.0000          0.0000      U Test, Repetitions: 49 vs
49 Canon/EOS 5DS/2K4A9929.CR2/threads:8/process_time/real_time_mean    
                             -0.0354         -0.0355      316.7396    
305.5208      316.7342      305.4890 Canon/EOS
5DS/2K4A9929.CR2/threads:8/process_time/real_time_median               
                -0.0354         -0.0356      316.6969      305.4798    
316.6917      305.4324 Canon/EOS
5DS/2K4A9929.CR2/threads:8/process_time/real_time_stddev               
                +0.0493         +0.0330        0.3562        0.3737    
  0.3563        0.3681
```
That being said, it's always best-effort, so there will likely be cases
where this worsens things.
Reviewers: efriedma, craig.topper, dmgreen, jmolloy, fhahn, Carrot,
hfinkel, chandlerc
Reviewed By: jmolloy
Subscribers: xbolva00, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67318
llvm-svn: 372009
The file was modifiedllvm/test/Transforms/SimplifyCFG/safe-low-bit-extract.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/PhiEliminate3.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/speculate-math.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/Transforms/PGOProfile/chr.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/safe-abs.ll
Commit a00630785fc7bbc723950543b0d82b6a70bfc797 by a.bataev
[OPENMP]Fix parsing/sema for function templates with declare simd.
Need to return original declaration group with FunctionTemplateDecl, not
the inner FunctionDecl, to correctly handle parsing of directives with
the templates parameters.
llvm-svn: 372011
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/declare_simd_ast_print.cpp
Commit 8d21460dc50e4b2adabdffc19537b970b5fa7094 by david.green
[ARM] A predicate cast of a predicate cast is a predicate cast
The adds some very basic folding of PREDICATE_CASTS, removing cases when
they are chained together. These would already be removed eventually, as
these are lowered to copies. This just allows it to happen earlier,
which can help other simplifications.
Differential Revision: https://reviews.llvm.org/D67591
llvm-svn: 372012
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-bitcast.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-loadstore.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-masked-ldst.ll
Commit 3df0daddfd466cfc33124379a9c43a781bb6da13 by llvm-dev
[X86][AVX] matchShuffleWithSHUFPD - add support for zeroable operands
Determine if all of the uses of LHS/RHS operands can be replaced with a
zero vector.
llvm-svn: 372013
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit b9909ffed82f7ed8a211b21146225badc0f22428 by lebedev.ri
[Clang][Codegen] Relax available-externally-suppress.c test
That test is broken by design. It depends on llvm middle-end behavior.
No clang codegen test should be doing that. This one is salvageable by
relaxing check lines.
llvm-svn: 372014
The file was modifiedclang/test/CodeGen/available-externally-suppress.c
Commit 6fcd4e080f09c9765d6e0ea03b1da91669c8509a by lebedev.ri
[Clang][Codegen] Disable arm_acle.c test.
This test is broken by design. Clang codegen tests should not depend on
llvm middle-end behaviour, they should *only* test clang codegen. Yet
this test runs whole optimization pipeline. I've really tried to fix it,
but there isn't just a few things that depend on passes, but everything
there does.
llvm-svn: 372015
The file was modifiedclang/test/CodeGen/arm_acle.c
Commit 5e37d7f9ff257ec62d733d3d94b11f03e0fe51ca by danalbert
Implement std::condition_variable via pthread_cond_clockwait() where
available
std::condition_variable is currently implemented via
pthread_cond_timedwait() on systems that use pthread. This is
problematic, since that function waits by default on CLOCK_REALTIME and
libc++ does not provide any mechanism to change from this default.
Due to this, regardless of if condition_variable::wait_until() is called
with a chrono::system_clock or chrono::steady_clock parameter,
condition_variable::wait_until() will wait using CLOCK_REALTIME. This is
not accurate to the C++ standard as calling
condition_variable::wait_until() with a chrono::steady_clock parameter
should use CLOCK_MONOTONIC.
This is particularly problematic because CLOCK_REALTIME is a bad choice
as it is subject to discontinuous time adjustments, that may cause
condition_variable::wait_until() to immediately timeout or wait
indefinitely.
This change fixes this issue with a new POSIX function,
pthread_cond_clockwait() proposed on
http://austingroupbugs.net/view.php?id=1216. The new function is similar
to pthread_cond_timedwait() with the addition of a clock parameter that
allows it to wait using either CLOCK_REALTIME or CLOCK_MONOTONIC, thus
allowing condition_variable::wait_until() to wait using CLOCK_REALTIME
for chrono::system_clock and CLOCK_MONOTONIC for chrono::steady_clock.
pthread_cond_clockwait() is implemented in glibc (2.30 and later) and
Android's bionic (Android API version 30 and later).
This change additionally makes wait_for() and wait_until() with clocks
other than chrono::system_clock use CLOCK_MONOTONIC.<Paste>
llvm-svn: 372016
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/include/__mutex_base
The file was modifiedlibcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_until.pass.cpp
Commit 21641a2f6dbac22653befd03496e0850537882ff by Raphael Isemann
[lldb][NFC] Make ApplyObjcCastHack less scary
llvm-svn: 372017
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
Commit 0d8a008611fa03e9eeacfd8cfe6be3e4f56ff2b9 by Raphael Isemann
[lldb] Remove SetCount/ClearCount from Flags
Summary: These functions are only used in tests where we should test the
actual flag values instead of counting all bits for an approximate
check. Also these popcount implementation aren't very efficient and
doesn't seem to be optimised to anything fast.
Reviewers: davide, JDevlieghere
Reviewed By: davide, JDevlieghere
Subscribers: abidh, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D67540
llvm-svn: 372018
The file was modifiedlldb/include/lldb/Utility/Flags.h
The file was modifiedlldb/unittests/Utility/FlagsTest.cpp
Commit 69911b8d01c6cf31a3af787d3f7352292cb0f9e4 by lebedev.ri
[ARM][Codegen] Autogenerate arm-cgp-casts.ll test.
Apparently it got broken by r372009 while i thought it was r372012.
llvm-svn: 372019
The file was modifiedllvm/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
Commit 32837a0c93ecdb33faaba253c5c7e868db9c529f by rnk
[PGO] Use linkonce_odr linkage for __profd_ variables in comdat groups
This fixes relocations against __profd_ symbols in discarded sections,
which is PR41380.
In general, instrumentation happens very early, and optimization and
inlining happens afterwards. The counters for a function are calculated
early, and after inlining, counters for an inlined function may be
widely referenced by other functions.
For C++ inline functions of all kinds (linkonce_odr &
available_externally mainly), instr profiling wants to deduplicate these
__profc_ and __profd_ globals. Otherwise the binary would be quite
large.
I made __profd_ and __profc_ comdat in r355044, but I chose to make
__profd_ internal. At the time, I was only dealing with coverage, and in
that case, none of the instrumentation needs to reference __profd_.
However, if you use PGO, then instrumentation passes add calls to
__llvm_profile_instrument_range which reference __profd_ globals. The
solution is to make these globals externally visible by using
linkonce_odr linkage for data as was done for counters.
This is safe because PGO adds a CFG hash to the names of the data and
counter globals, so if different TUs have different globals, they will
get different data and counter arrays.
Reviewers: xur, hans
Differential Revision: https://reviews.llvm.org/D67579
llvm-svn: 372020
The file was modifiedllvm/test/Instrumentation/InstrProfiling/comdat.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modifiedllvm/test/Instrumentation/InstrProfiling/PR23499.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/linkage.ll
Commit 34d80461ff77269d6342768a5801ec655da7cea7 by Steven Wu
[LTO][Legacy] Add new C inferface to query libcall functions
Summary: This is needed to implemented the same approach as lld
(implemented in r338434) for how to handling symbols that can be
generated by LTO code generator but not present in the symbol table for
linker that uses legacy C APIs.
libLTO is in charge of providing the list of symbols. Linker is in
charge of implementing the eager loading from static libraries using the
list of symbols.
rdar://problem/52853974
Reviewers: tejohnson, bd1976llvm, deadalnix, espindola
Reviewed By: tejohnson
Subscribers: emaste, arichardson, hiraditya, MaskRay, dang, kledzik,
mehdi_amini, inglorion, jkorous, dexonsmith, ributzka, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67568
llvm-svn: 372021
The file was modifiedllvm/include/llvm-c/lto.h
The file was modifiedllvm/tools/lto/lto.cpp
The file was modifiedllvm/include/llvm/LTO/LTO.h
The file was modifiedllvm/lib/LTO/LTO.cpp
The file was modifiedllvm/tools/lto/lto.exports
Commit dd63b9f570da6b557d41b05eb22213d070c2d110 by Steven Wu
[lld] Update lld driver to use new LTO APIs to handle libcall symbols
NFC. Remove duplicated code in ELF/COFF driver and libLTO legacy
interfaces.
llvm-svn: 372022
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/COFF/Driver.cpp
Commit 95de24978e80c1fac6d452057b21a448a0c6d7d6 by Vedant Kumar
[Coverage] Assert that filenames in a TU are unique, NFC
llvm-svn: 372024
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
The file was modifiedllvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
Commit 413647d730972eac9675f695c2ea63fb393a5531 by Vedant Kumar
[Coverage] Speed up file-based queries for coverage info, NFC
Speed up queries for coverage info in a file by reducing the amount of
time spent determining whether a function record corresponds to a file.
This gives a 36% speedup when generating a coverage report for `llc`.
The reduction is entirely in user time.
rdar://54758110
Differential Revision: https://reviews.llvm.org/D67575
llvm-svn: 372025
The file was modifiedllvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMapping.cpp
Commit a507a5ec8f1d7ded4a808a8813be1ade08580a7b by l.lunak
do not emit -Wunused-macros warnings in -frewrite-includes mode
(PR15614)
-frewrite-includes calls PP.SetMacroExpansionOnlyInDirectives() to avoid
macro expansions that are useless in that mode, but this can lead to
-Wunused-macros false positives. As -frewrite-includes does not emit
normal warnings, block -Wunused-macros too.
Differential Revision: https://reviews.llvm.org/D65371
llvm-svn: 372026
The file was modifiedclang/test/Frontend/rewrite-includes-warnings.c
The file was modifiedclang/lib/Lex/PPDirectives.cpp
Commit a7e9059967c4bff83ae6c3b595828bbbc8aaf82e by danalbert
Open fstream files in O_CLOEXEC mode when possible.
Reviewers: EricWF, mclow.lists, ldionne
Reviewed By: ldionne
Subscribers: smeenai, dexonsmith, christof, ldionne, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D59839
llvm-svn: 372027
The file was modifiedlibcxx/include/fstream
The file was modifiedlibcxx/include/__config
Commit 4e053ff1d188bae61f6f7d20c591a462b32a9992 by Jonas Devlieghere
[NFC] Move dumping into GDBRemotePacket
This moves the dumping logic from the GDBRemoteCommunicationHistory
class into the GDBRemotePacket so that it can be reused from the
reproducer command object.
llvm-svn: 372028
The file was modifiedlldb/include/lldb/Utility/GDBRemote.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp
The file was modifiedlldb/source/Utility/GDBRemote.cpp
Commit bfb197d7a3b322d55a11cbc076cd9f787934d34f by lei
[PowerPC] Cust lower fpext v2f32 to v2f64 from extract_subvector v4f32
This is a follow up patch from https://reviews.llvm.org/D57857 to handle
extract_subvector v4f32.  For cases where we fpext of v2f32 to v2f64
from extract_subvector we currently generate on P9 the following:
  lxv 0, 0(3)
xxsldwi 1, 0, 0, 1
xscvspdpn 2, 0
xxsldwi 3, 0, 0, 3
xxswapd 0, 0
xscvspdpn 1, 1
xscvspdpn 3, 3
xscvspdpn 0, 0
xxmrghd 0, 0, 3
xxmrghd 1, 2, 1
stxv 0, 0(4)
stxv 1, 0(5)
This patch custom lower it to the following sequence:
  lxv 0, 0(3)       # load the v4f32 <w0, w1, w2, w3>
xxmrghw 2, 0, 0   # Produce the following vector <w0, w0, w1, w1>
xxmrglw 3, 0, 0   # Produce the following vector <w2, w2, w3, w3>
xvcvspdp 2, 2     # FP-extend to <d0, d1>
xvcvspdp 3, 3     # FP-extend to <d2, d3>
stxv 2, 0(5)      # Store <d0, d1> (%vecinit11)
stxv 3, 0(4)      # Store <d2, d3> (%vecinit4)
Differential Revision: https://reviews.llvm.org/D61961
llvm-svn: 372029
The file was addedllvm/test/CodeGen/PowerPC/reduce_scalarization02.ll
Commit e151cb7c632496f2ae263652d9d2977519128a27 by d4m1887
[Docs] Adds Getting Started/Tutorials, Reference to LLVM docs homepage
Adds a section for Getting Started/Tutorials and Reference topics to the
LLVM docs homepage.
llvm-svn: 372031
The file was modifiedllvm/docs/UserGuides.rst
The file was modifiedllvm/docs/index.rst
The file was removedllvm/docs/ReferenceDocumentation.rst
Commit 3b27f4c0888a14979bd660784b35ed8be9329794 by d4m1887
[Docs] Bug fix for docs homepage
Removes reference to non-existent Reference Documentation page.
llvm-svn: 372032
The file was modifiedllvm/docs/index.rst
Commit 474c713fc75b548c80d19e500dc9264c42e1bd6b by bmahjour
[NFC] Test commit access
llvm-svn: 372033
The file was modifiedllvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
Commit c1c519d2f1a66dd2eeaa4c321d8d7b50f623eb71 by danalbert
Revert "Implement std::condition_variable via pthread_cond_clockwait()
where available"
This reverts commit 5e37d7f9ff257ec62d733d3d94b11f03e0fe51ca.
llvm-svn: 372034
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_until.pass.cpp
The file was modifiedlibcxx/include/__mutex_base
Commit 2152ae985c28ff10e6f4d4b674ae9b144ecb04c0 by jdenny.ornl
[lit] Make internal diff work in pipelines
When using lit's internal shell, RUN lines like the following
accidentally execute an external `diff` instead of lit's internal
`diff`:
```
# RUN: program | diff file -
# RUN: not diff file1 file2 | FileCheck %s
```
Such cases exist now, in `clang/test/Analysis` for example.  We are
preparing patches to ensure lit's internal `diff` is called in such
cases, which will then fail because lit's internal `diff` cannot
currently be used in pipelines and doesn't recognize `-` as a
command-line option.
To enable pipelines, this patch moves lit's `diff` implementation into
an out-of-process script, similar to lit's `cat` implementation.  A
follow-up patch will implement `-` to mean stdin.
Reviewed By: probinson, stella.stamenova
Differential Revision: https://reviews.llvm.org/D66574
llvm-svn: 372035
The file was modifiedllvm/utils/lit/lit/TestRunner.py
The file was removedllvm/utils/lit/tests/Inputs/shtest-shell/diff-error-0.txt
The file was modifiedllvm/utils/lit/tests/shtest-shell.py
The file was addedllvm/utils/lit/lit/builtin_commands/diff.py
The file was addedllvm/utils/lit/tests/Inputs/shtest-shell/diff-pipes.txt
Commit ec80f531ca45b5c4129f67d845b8f7809efe820b by dlj
Add a director, along with README.txt and LICENSE.txt, for libc.
llvm-svn: 372036
The file was addedlibc/README.txt
The file was addedlibc/LICENSE.txt
Commit 9d2066af8d47627bb56c92eb66a94ea86928d50c by caij2003
[clang-tidy] add checks to bugprone-posix-return
This check now also checks if any calls to pthread_* functions expect
negative return values. These functions return either 0 on success or an
errno on failure, which is positive only.
llvm-svn: 372037
The file was modifiedclang-tools-extra/clang-tidy/bugprone/PosixReturnCheck.h
The file was modifiedclang-tools-extra/test/clang-tidy/bugprone-posix-return.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/bugprone-posix-return.rst
The file was modifiedclang-tools-extra/clang-tidy/bugprone/PosixReturnCheck.cpp
Commit 155a43edb0c161bb5122ad4eeee991b43a0278bc by caij2003
[compiler-rt][crt]  make test case nontrivial in
check_cxx_section_exists
Summary:
.init_array gets optimized away when building with -O2 and as a result,
check_cxx_section_exists failed to pass -DCOMPILER_RT_HAS_INITFINI_ARRAY
when building crtbegin.o and crtend.o, which causes binaries linked with
them encounter segmentation fault. See https://crbug.com/855759 for
details. This change prevents .init_array section to be optimized away
even with -O2 or higher optimization level.
Subscribers: dberris, mgorny, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D67628
llvm-svn: 372038
The file was modifiedcompiler-rt/lib/crt/CMakeLists.txt
Commit 919fc50034b44c48aae8b80283f253ec2ee17f45 by bruno.cardoso
[Modules][Objective-C] Use complete decl from module when diagnosing
missing import
Summary: Otherwise the definition (first found) for ObjCInterfaceDecl's
might precede the module one, which will eventually lead to crash, since
diagnoseMissingImport needs one coming from a module.
This behavior changed after Richard's r342018, which started to look
into the definition of ObjCInterfaceDecls.
rdar://problem/49237144
Reviewers: rsmith, arphaman
Subscribers: jkorous, dexonsmith, ributzka, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66982
llvm-svn: 372039
The file was modifiedclang/lib/Sema/SemaLookup.cpp
The file was addedclang/test/Modules/Inputs/interface-diagnose-missing-import/Foo.framework/Headers/Bar.h
The file was addedclang/test/Modules/Inputs/interface-diagnose-missing-import/Foo.framework/Headers/Foo.h
The file was addedclang/test/Modules/Inputs/interface-diagnose-missing-import/Foo.framework/Modules/module.modulemap
The file was addedclang/test/Modules/interface-diagnose-missing-import.m
The file was addedclang/test/Modules/Inputs/interface-diagnose-missing-import/Foo.framework/PrivateHeaders/RandoPriv.h
Commit 87afb22707f7efa9545164d2889e1f2bbf05acc8 by a.bataev
[OPENMP]Fix the test, NFC.
llvm-svn: 372040
The file was modifiedclang/test/OpenMP/parallel_for_codegen.cpp
Commit c693aa3def0191634d1dac78ff1b62ef629a89bc by Vedant Kumar
[test] Clean up previous raw profile before merging into it
This fixes a test failure in instrprof-set-file-object-merging.c which
seems to have been caused by reuse of stale data in old raw profiles.
llvm-svn: 372041
The file was modifiedcompiler-rt/test/profile/instrprof-set-file-object-merging.c
Commit 77383d83eb3fd5db26f985d7a9404d7a00f86bc0 by francisvm
[Remarks] Allow remarks::Format::YAML to take a string table
It should be allowed to take a string table in case all the strings in
the remarks point there, but it shouldn't use it during serialization.
llvm-svn: 372042
The file was modifiedllvm/include/llvm/Remarks/RemarkSerializer.h
The file was modifiedllvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
The file was modifiedllvm/include/llvm/Remarks/YAMLRemarkSerializer.h
The file was modifiedllvm/lib/Remarks/BitstreamRemarkSerializer.cpp
The file was modifiedllvm/lib/Remarks/RemarkSerializer.cpp
The file was modifiedllvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp
The file was modifiedllvm/lib/Remarks/YAMLRemarkSerializer.cpp
The file was modifiedllvm/lib/Remarks/RemarkStringTable.cpp
Commit e63c6768256c92a1b527653bf276d7fbde7a425c by nemanja.i.ibm
[PowerPC] Cust lower fpext v2f32 to v2f64 from extract_subvector v4f32
Add the missing piece of r372029. Somehow when the patch for review
D61961 was committed, only the test case went in and the code didn't.
This of course caused all kinds of build bot breaks. This patch just
adds the code for that patch.
Author: Lei Huang Differential revision: https://reviews.llvm.org/D61961
llvm-svn: 372043
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 3cabfb344b820586bb7c43212340f64246cde8eb by Jonas Devlieghere
Fix warning: lambda capture 'temp_file_path' is not used
llvm-svn: 372044
The file was modifiedlldb/tools/lldb-server/lldb-platform.cpp
Commit 8fc8d3fe0108479ce22234ec829fc7ee2b8f0bd2 by Jonas Devlieghere
[Reproducer] Implement dumping packets.
This patch completes the dump functionality by adding support for
dumping a reproducer's GDB remote packets.
Differential revision: https://reviews.llvm.org/D67636
llvm-svn: 372046
The file was modifiedlldb/source/Commands/CommandObjectReproducer.cpp
The file was modifiedlldb/lit/Reproducer/TestDump.test
Commit 5a115e81cdd40c758b10c382aeffc0c8de6930e2 by hhb
Fix swig python package path
Summary: The path defined in CMakeLists.txt doesn't match the path
generated in our python script. This change fixes that.
LLVM_LIBRARY_OUTPUT_INTDIR is defined as:
${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
On the other hand, the path of site-package is generaged in
get_framework_python_dir_windows() in finishSwigPythonLLDB.py as:
(Dispite its name, the function is used for everything other than xcode)
prefix/cmakeBuildConfiguration/distutils.sysconfig.get_python_lib()
From lldb/CMakeLists.txt, we can see that: prefix=${CMAKE_BINARY_DIR},
cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}
And from python source code, we can see get_python_lib() always returns
lib/pythonx.y/site-packages for posix, or Lib/site-packages for windows:
https://github.com/python/cpython/blob/3.8/Lib/distutils/sysconfig.py#L128
We should make them match each other.
Subscribers: mgorny, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D67583
llvm-svn: 372047
The file was modifiedlldb/scripts/CMakeLists.txt
Commit 4a249553fe9c1dbb0ffaf66f3bef8056ad6dde1f by dlj
Add libc to path mappings in git-llvm.
llvm-svn: 372048
The file was modifiedllvm/utils/git-svn/git-llvm
Commit cb4aee7318afbe36078c434fff3a3e8a0bcdf5cf by dblaikie
llvm-reduce: Make tests shell-independent by passing the interpreter on
the command line rather than using #! in the test file
llvm-svn: 372049
The file was modifiedllvm/test/Reduce/remove-args.ll
The file was modifiedllvm/test/Reduce/remove-funcs.ll
The file was modifiedllvm/tools/llvm-reduce/TestRunner.cpp
The file was modifiedllvm/test/Reduce/remove-metadata.ll
The file was modifiedllvm/test/Reduce/remove-global-vars.ll
Commit 9d64721ca5bddd83413a802ee734fc819f782b51 by aemerson
[GlobalISel] Partially revert r371901.
r371901 was overeager and widenScalarDst() and the like in the legalizer
attempt to increment the insert point given in order to add new
instructions after the currently legalizing inst. In cases where the
insertion point is not exactly the current instruction, then callers
need to de-compensate for the behaviour by decrementing the insertion
iterator before calling them. It's not a nice state of affairs, for now
just undo the problematic parts of the change.
llvm-svn: 372050
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-phi-insertpt-decrement.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 0a0ea7ec99d4768a15ddbc0e5bfa66e3974e9bfd by jdenny.ornl
Revert r372035: "[lit] Make internal diff work in pipelines"
This breaks a Windows bot.
llvm-svn: 372051
The file was modifiedllvm/utils/lit/tests/shtest-shell.py
The file was addedllvm/utils/lit/tests/Inputs/shtest-shell/diff-error-0.txt
The file was removedllvm/utils/lit/tests/Inputs/shtest-shell/diff-pipes.txt
The file was removedllvm/utils/lit/lit/builtin_commands/diff.py
The file was modifiedllvm/utils/lit/lit/TestRunner.py
Commit 71b32e4175d111e1d2a62bf681b5c49e92ff163a by Jonas Devlieghere
[test] Fail gracefully if the regex doesn't match
This test is failing on the Fedora bot (staging). Rather than failing
with an IndexError, we should trigger an assert and dump the log when
the regex doesn't match.
llvm-svn: 372052
The file was modifiedlldb/packages/Python/lldbsuite/test/api/log/TestAPILog.py
Commit a458acb5ba85d43c3b1aa1ee2719c2e7e072d0e9 by dblaikie
llvm-reduce: Remove some string copies
llvm-svn: 372053
The file was modifiedllvm/tools/llvm-reduce/TestRunner.h
The file was modifiedllvm/tools/llvm-reduce/TestRunner.cpp
Commit f27367cd32021ff2077d265878503149aa34c3dc by dblaikie
llvm-reduce: Clean out previous test temp/output dir, since it was a dir
and now it's used as just a single file
llvm-svn: 372054
The file was modifiedllvm/test/Reduce/remove-metadata.ll
The file was modifiedllvm/test/Reduce/remove-global-vars.ll
The file was modifiedllvm/test/Reduce/remove-args.ll
The file was modifiedllvm/test/Reduce/remove-funcs.ll
Commit 895eae309943428634cca1fde9e8bf3a6c171acf by a.bataev
[OPENMP] Fix the test, NFC
llvm-svn: 372055
The file was modifiedclang/test/OpenMP/parallel_for_codegen.cpp
Commit 4b23c24bc8ec84ab443df42c9fdfc74de964febb by jakehehrlich
[libFuzzer] Always print DSO map on Fuchsia libFuzzer launch
Fuchsia doesn't have /proc/id/maps, so it relies on the kernel logging
system to provide the DSO map to be able to symbolize in the context of
ASLR. The DSO map is logged automatically on Fuchsia when encountering a
crash or writing to the sanitizer log for the first time in a process.
There are several cases where libFuzzer doesn't encounter a crash, e.g.
on timeouts, OOMs, and when configured to print new PCs as they become
covered, to name a few. Therefore, this change always writes to the
sanitizer log on startup to ensure the DSO map is available in the log.
Author: aarongreen Differential Revision:
https://reviews.llvm.org/D66233
llvm-svn: 372056
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerExtFunctions.def
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp
Commit 66e9f239b5b3b4367eef580696b4e695164f164a by jingham
Revert "[lldb][NFC] Make ApplyObjcCastHack less scary"
This reverts commit 21641a2f6dbac22653befd03496e0850537882ff.
It was causing the following test failures:
lldb-Suite.lang/objc/objc-class-method.TestObjCClassMethod.py
lldb-Suite.lang/objc/foundation.TestObjCMethodsString.py
lldb-Suite.lang/objc/foundation.TestConstStrings.py
lldb-Suite.lang/objc/radar-9691614.TestObjCMethodReturningBOOL.py
lldb-Suite.lang/objc/foundation.TestObjCMethodsNSArray.py
llvm-svn: 372057
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
Commit cbd13bc1edfe3c08b7e9012428acb0bc789b0f5f by comexk
Push lambda scope earlier when transforming lambda expression
Differential Revision: https://reviews.llvm.org/D66067
llvm-svn: 372058
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/test/SemaTemplate/default-arguments-cxx0x.cpp