collapse
100%
WDescription%
Build stability: No recent builds failed.100
Build History
x
 

Issues

Found 1 issues:
Aborted
+ ....
 Identified problems

Issues

Found 2 issues:
Aborted
cd...
 x

Issues

Found 1 issues:
Aborted
+ ....
 x
 x

Issues

No known issues detected

Build Log

 x
 x

Issues

Found 1 issues:
Aborted
Waiting to resume part of...
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....
 

Issues

Found 1 issues:
Error: <html>
+ ....

Changes

clang-d324914-gda648ab8de3-t1238-b1238.tar.gz (Aug 21, 2019 3:02:54 PM)

  1. [monorepo_build] lldb: Do not fail a test run if any tests fail — Vedant Kumar / detail
  2. Remove LLDB_TEST_USE_CUSTOM_C(XX)_COMPILER

    Just setting the custom compiler is now sufficient. — Jonas Devlieghere / detail
  3. Fixed typo. — gkistanova / detail
  4. Reorganise Linaro Armv7 and Armv8 builders.

    Due to limited amount of native Armv7 hardware, and the limited advantage
    over running on Armv8 hardware, we are moving some of our v7 bots to run
    on more powerful Armv8 hardware. We will also remove some of the v8 bots
    that were identical configurations to the Armv7 besides targeting Armv8.

    The remaining bots running on native v7 hardware make up 3 groups:
    - 4x Tk1s running clang-cmake-thumbv7-full-sh
    - 4x TK1s running clang-cmake-armv7-full
    - 1x Tk1s running clang-native-arm-lnt-perf and libcxx bots

    The clang-cmake-*-full* will do a 2-stage build and run the test-suite to
    maximize the chance of catching a wrong instruction being generated.

    Differential Revision: https://reviews.llvm.org/D66427 — psmith / detail
  5. [lldb-cmake] Add emailext — Jonas Devlieghere / detail
  6. [lldb] Fix type in matrix pipeline — Jonas Devlieghere / detail

clang-d324914-gda648ab8de3-t1238-b1238.tar.gz (Aug 21, 2019 3:02:54 PM)

  1. MemTag: stack initializer merging. — eugeni.stepanov / detail
  2. Recommit "[llvm-objcopy][MachO] Support load commands used in — nuta / detail
  3. Fixed placement of llvm.global_dtors on Windows. — vyacheslav.p.zakharin / detail
  4. Refactor isPointerOffset (NFC). — eugeni.stepanov / detail
  5. Recommit "[llvm-objcopy][MachO] Implement a layout algorithm for — nuta / detail
  6. Recommit "[Attributor] Fix: Do not partially resolve returned calls." — jdoerfert / detail
  7. Fix use-after-free — M.Gehre / detail
  8. [CaptureTracker] Let subclasses provide dereferenceability information — jdoerfert / detail
  9. [ORC] fix use-after-free detected by -Wreturn-stack-address — M.Gehre / detail
  10. Windows: Include "windows" Instead of "Windows" — Saleem Abdulrasool / detail
  11. [Support][Time profiler] Make FE codegen blocks to be inside frontend — anton.a.afanasyev / detail
  12. [lit] Check for accidental external command calls — jdenny.ornl / detail
  13. [cmake] Link in LLVMPasses due to dependency by LLVMOrcJIT; NFC — hubert.reinterpretcast / detail
  14. [sanitizer_common] Extend test after switch to posix_spawn — jlettner / detail
  15. Provide a meaningful diagnostic when LLVM_PATH doesn't point to a — Louis Dionne / detail
  16. [lldb] Fix typo on the BreakpointLocation header and the lldbtest.py — medismail.bennani / detail
  17. [TSan] Rename file with libdispatch interceptors — jlettner / detail
  18. [SLP][NFC] Avoid repetitive calls to getSameOpcode() — dtemirbulatov / detail
  19. Fix typo.  "piont" => "point" — rtrieu / detail
  20. [WebAssembly][MC] Simplify WasmObjectWriter::recordRelocation. NFC. — sbc / detail
  21. [WebAssembly][MC] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off — maskray / detail
  22. [analyzer] NFC: Drop support for extra text attached to bug reports. — Artem Dergachev / detail
  23. [analyzer] NFC: Rename GRBugReporter to PathSensitiveBugReporter. — Artem Dergachev / detail
  24. [CallGraph] Take into accound calls that aren't within any function — Artem Dergachev / detail
  25. MCAsmMacro: add `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` to — maskray / detail
  26. [AsmPrinter] Remove const qualifier from EmitBasicBlockStart. — karl-johan.karlsson / detail
  27. [NFC] Test commit, fix some comment spelling. — thomas.raoux / detail
  28. [Attributor] Fix the "clamp" operator — jdoerfert / detail
  29. [Attributor] Use structured deduction for AANonNull — jdoerfert / detail
  30. [Attributor] Use structured deduction for AADereferenceable — jdoerfert / detail
  31. [Attributor][NFC] Cleanup statistics code — jdoerfert / detail
  32. [Attributor] Create abstract attributes on-demand — jdoerfert / detail
  33. [X86] Add back the -x86-experimental-vector-widening-legalization comand — craig.topper / detail
  34. [Attributor] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off — maskray / detail
  35. [compiler-rt][crt] Pass -fno-lto in check_cxx_section_exists — hans / detail
  36. [MC] Delete an overload of MCExpr::evaluateKnownAbsolute and its — maskray / detail
  37. [test/Object] - Move/rewrite 2 more test cases. — grimar / detail
  38. [ELF][PPC] Allow PT_LOAD to have overlapping p_offset ranges — maskray / detail
  39. [ELF][AArch64] Allow PT_LOAD to have overlapping p_offset ranges — maskray / detail
  40. Rudimentary support for Doxygen \retval command — sbergman / detail
  41. [llvm-objcopy][MachO] Fix method names. NFC. — nuta / detail
  42. [ELF][X86] Allow PT_LOAD to have overlapping p_offset ranges on EM_386 — maskray / detail
  43. [yaml2obj/obj2yaml][MachO] Allow setting custom section data — nuta / detail
  44. [clangd] Skip function bodies inside processed files while indexing — ibiryukov / detail
  45. [ELF][PPC] Allow PT_LOAD to have overlapping p_offset ranges on EM_PPC — maskray / detail
  46. [lldb] D66174 `RegularExpression` cleanup — jan.kratochvil / detail
  47. [lldb][NFC] Test quotes when completing — Raphael Isemann / detail
  48. [DWARF] Fix DWARFUnit::getDebugInfoSize() for 64-bit DWARF. — ikudrin / detail
  49. [COFF] Allow using custom .edata from input object files — martin / detail
  50. [yaml2obj/obj2yaml][MachO] Fix a test failure in big endian hosts — nuta / detail
  51. [COFF] Require an explicit -implib option for creating implibs in mingw — martin / detail
  52. [libcxx] Fix build breakage on mips — mikhail.maltsev / detail
  53. [X86][Btver2] Fix latency and throughput of CMPXCHG instructions. — Andrea_DiBiagio / detail
  54. Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" — llvm-dev / detail
  55. [MCA][X86] Add tests for LOCK variants of standard X86 arithmetic ops — llvm-dev / detail
  56. [CMake] Update C4324 MSVC warning comment to explain its still broken at — llvm-dev / detail
  57. Recommit "MemoryBuffer: Add a missing error-check to getOpenFileImpl" — pavel / detail
  58. [cmake] Remove the test for libstdc++<4.9 — pavel / detail
  59. [OpenCL] Add const, volatile and pointer builtin handling — sven.vanhaastregt / detail
  60. unittests: Use yaml2obj as a library instead of an external process — pavel / detail
  61. [RISCV] Implement getExprForFDESymbol to ensure RISCV_32_PCREL is used — asb / detail
  62. [InstCombine] add tests for min/max with min/max of same operands; NFC — spatel / detail
  63. [llvm-readobj] Prepend argv[0] to error/warning messages — maskray / detail
  64. [DWARF] Fix reading 64-bit DWARF type units. — ikudrin / detail
  65. Convert minidump unittests to use llvm::yaml::convertYAML — pavel / detail
  66. Removed the 'id' AST matcher, which is superseded by '.bind()' — gribozavr / detail
  67. Fix build for r369374 — pavel / detail
  68. [llvm-objdump] - Remove one of `report_error` functions and improve the — grimar / detail
  69. Regex: +regex string lifetime comment — jan.kratochvil / detail
  70. [X86][FMA] Add FMA 'negated expression' combine tests for D63141 — llvm-dev / detail
  71. [Syntax] Added function to get macro expansion tokens to TokenBuffer. — jvikstrom / detail
  72. [InstCombine] simplify min/max of min/max with same operands (PR35607) — spatel / detail
  73. [clangd] Fix one testcase in XRefsTests. — hokein / detail
  74. [X86][BtVer2] Fix latency and throughput of atomic INC/DEC/NEG/NOT. — Andrea_DiBiagio / detail
  75. [BlockExtractor] Avoid assert with wrong line format — Jinsong Ji / detail
  76. [InstCombine] improve readability for icmp with cast folds; NFC — spatel / detail
  77. [llvm-objcopy] Append '\n' to warning messages — maskray / detail
  78. [llvm-objcopy][test] Add a test to show that argv[0] is included in — maskray / detail
  79. [libc++] Explicitly cast in generate_canonical — Louis Dionne / detail
  80. [libc++] std::abs should not return double — z.zoelec2 / detail
  81.     [CodeGen] Add a pass to do block predication on SSA machine IR. — thomas.raoux / detail
  82. Regex: Add isValid() with no parameter — jan.kratochvil / detail
  83. [clang] Use the new Regex::isValid() with no parameter — jan.kratochvil / detail
  84. [lldb] Use the new Regex::isValid() with no parameter — jan.kratochvil / detail
  85. Fix availability of __thread_id on builds with external threading. — mclow.lists / detail
  86. [scudo][standalone] Fix malloc_iterate — kostyak / detail
  87. gn build: Merge r369298 — nicolasweber / detail
  88. win: Enable /Zc:twoPhase by default if targeting MSVC 2017 update 3 or — nicolasweber / detail
  89. [GlobalISel] Handle multiple registers in dbg.value intrinsic — aditya_nandakumar / detail
  90. [ARM] Select vaddva — sam.tebbs / detail
  91. [CodeGen] Add EarlyIfConvert test missed in previous commit — thomas.raoux / detail
  92. [libc++] Populate a lit feature including the compiler patch level — Louis Dionne / detail
  93. Make the FindTypes(std::vector<CompilerContext>, ...) API testable in — Adrian Prantl / detail
  94. [LifetimeAnalysis] Add support for free functions — xazax.hun / detail
  95. [libc++] Disable <chrono> ""d and ""y literal tests on AppleClang 10.0.0 — Louis Dionne / detail
  96. [X86] Use isNullConstant instead of getConstantOperandVal == 0. NFC — craig.topper / detail
  97. [InstCombine] make fold for icmp with sext more efficient; NFC — spatel / detail
  98. [X86][BtVer2] Use ReadAfterLd entries for the register operands of — Andrea_DiBiagio / detail
  99. [libc++] fix test for unsigned char — z.zoelec2 / detail
  100. [Attr] Support _attribute__ ((fallthrough)) — nhuck / detail
  101. bump lld version used by buildbots — eric / detail
  102. Revert "AMDGPU: Fix iterator error when lowering SI_END_CF" — Matthew.Arsenault / detail
  103. Fix name of the error message, NFC. — a.bataev / detail
  104. Fix typo in comment. NFCI. — llvm-dev / detail
  105. [libc++] Precise XFAIL for AppleClang 11 — Louis Dionne / detail
  106. [InstCombine] add helper function for icmp+zext/sext; NFC — spatel / detail
  107. [libc++] Implement LWG 3199 — Louis Dionne / detail
  108. [WebAssembly][lld] Fix crash when applying relocations to debug sections — sbc / detail
  109. [ClangExpressionParser] Add ClangDeclVendor — apl / detail
  110. [COFF] Print the file name on errors writing the pdb file — martin / detail
  111. [TargetMachine] Don't try to create COFFSTUB references on windows on — martin / detail
  112. [Sema][Typo] Fix assertion failure for expressions with multiple typos — dallasftball / detail
  113. fix buildbot start script to no longer hang — eric / detail
  114. [libc++] Avoid implicit conversion warning in a <random> test — Louis Dionne / detail
  115. Force honoring nthreads-var and thread-limit-var inside teams construct — jonathan.l.peyton / detail
  116. [X86] Add isel patterns for (i64 (zext (i8 (bitcast (v16i1 X))))) to use — craig.topper / detail
  117. [OPENMP]Fix delayed diagnostics for standalone declare target directive. — a.bataev / detail
  118. [GWP-ASan] Fix typos. — mitchphillips / detail
  119. [X86] Add a DAG combine to transform (i8 (bitcast (v8i1 — craig.topper / detail
  120. [CMake] Remove LLDB_TEST_USE_CUSTOM_C(XX)_COMPILER — Jonas Devlieghere / detail
  121. [Symbol][NFC] Remove references to clang in TypeMap — apl / detail
  122. [libc++] Fix std::abs tests — z.zoelec2 / detail
  123. [llvm-extract] Update the help message for group extraction feature — Jinsong Ji / detail
  124. [InstCombine] add tests for mismatched cast ops for icmp; NFC — spatel / detail
  125. [AutoFDO] Make call targets order deterministic for sample profile — aktoon / detail
  126. [AArch64] Speed-up leak and address sanitizers on AArch64 for 48-bit VMA — sebpop / detail
  127. [NewPM] Run ubsan-coroutines test under the legacy pass manager only — leonardchan / detail
  128. [test] Fix tests when run on windows after SVN r369426. NFC. — martin / detail
  129. [Attributor] Remove unused variable. NFC. — michael.hliao / detail
  130. [COFF] Check errorCount before committing the output file — martin / detail
  131. [InstCombine] add more extra use tests for icmp with extends; NFC — spatel / detail
  132. Fix a couple of unguarded operator, calls in algorithm. Fixes PR#43063. — mclow.lists / detail
  133. [analyzer] Improve VirtualCallChecker and enable parts of it by default. — Artem Dergachev / detail
  134. [analyzer] Fix a crash when destroying a non-region. — Artem Dergachev / detail
  135. [analyzer] NFC: Remove the BugTypes set from BugReporter. — Artem Dergachev / detail
  136. [NFC] Update RegularExpression documentation — Jonas Devlieghere / detail
  137. [LLDB][Test] Remove `skipIfWindows` for conditional breakpoint test — medismail.bennani / detail
  138. Adds support for writing the .bss section for XCOFF object files. — sfertile / detail
  139. Teach GlobalISelEmitter to treat used iPTRAny operands as pointer — Jessica Paquette / detail
  140. [Symbol] Move VerifyDecl to ClangASTContext — apl / detail
  141. Revert [WinEH] Allocate space in funclets stack to save XMM CSRs — rnk / detail
  142. [DebugInfo] Add debug location to dynamic atexit destructor — alexandre.ganea / detail
  143. [DAGCombiner][X86] Teach visitCONCAT_VECTORS to combine (concat_vectors — craig.topper / detail
  144. [AArch64][GlobalISel] Select patterns which use shifted register — Jessica Paquette / detail
  145. [NFC] Fix -Wdocumentation warnings in Utility. — Jonas Devlieghere / detail
  146. Remove assert with tautological compare from XCOFFObjectWriter. — sfertile / detail
  147. Add a missing _VSTD:: before a call to merge. Fixes PR43034. Checked the — mclow.lists / detail
  148. [MemorySSA] Fix existing phis when inserting defs. — asbirlea / detail
  149. [AArch64][GlobalISel] Select logical_imm32 and logical_imm64 patterns — Jessica Paquette / detail
  150. [MemorySSA] Make Phi cleanups consistent. — asbirlea / detail
  151. [RISCV GlobalISel] Adding initial GlobalISel infrastructure — daniel_l_sanders / detail
  152. [Sanitizer] Remove unused functions — alexandre.ganea / detail
  153. [X86] Autogenerate vec_* tests. NFC — deadalnix / detail
  154. [Attributor] Liveness for internal functions. — sstipanovic / detail
  155. Fix assert in XCOFFObjectWriter related to program code csects. — sfertile / detail
  156. [AArch64][asan] fix typo in AsanStats::Print — sebpop / detail
  157. Add TinyPtrVector support for general pointer-like things. — atrick / detail
  158. Add triple to new test to try to pacify bots — rnk / detail
  159. [X86] Automatically generate shift tests. NFC — deadalnix / detail
  160. gn build: Merge r369467 — nicolasweber / detail
  161. [dotest] Don't set the DWARF version override in CFLAGS_EXTRA. — Jonas Devlieghere / detail
  162. Remove llvm/utils/git/find-rev — nicolasweber / detail
  163. [Doxygen] Document private class members. — Jonas Devlieghere / detail
  164. [AArch64][GlobalISel] Add support for narrowScalar of G_ZEXT — aemerson / detail
  165. libcxx: Rename .hpp files in libcxx/test/support to .h — nicolasweber / detail
  166. Attempt to fix MSAN failures in benchmarks — eric / detail
  167. Fix missing __muloti4 function with UBSAN — eric / detail
  168. Update a few tests that may change the platform to save & restore the — Jason Molenda / detail
  169. [NFC] Remove lldb_utility namespace. — Jonas Devlieghere / detail
  170. Autogenerate the shebang lines for tools/opt-viewer — chris.bieneman / detail
  171. libcxx: Rename .hpp files in libcxx/benchmarks to .h — nicolasweber / detail
  172. [ELF] More dynamic relocation packing — maskray / detail
  173. [ELF][test] Add CHECK lines omitted in r369488 — maskray / detail
  174. Fix 'fall through' annotation — Vitaly Buka / detail
  175. [NFC] Simplify code — Jonas Devlieghere / detail
  176. [NFC] Remove unused function GetHexWithFixedSize — Jonas Devlieghere / detail
  177. [NFC] Return llvm::StringRef from StringExtractor::GetStringRef. — Jonas Devlieghere / detail
  178. [Symbol] Remove unused clang headers from Type — apl / detail
  179. Revert r369472 and r369441 — Vitaly Buka / detail
  180. [PPC Docs] Remove duplicate info about __builtin_setrnd() — dave / detail
  181. Revert D65242 "[ELF] More dynamic relocation packing" — maskray / detail
  182. [NFC] Mark CallTargetComparator() as const to fix libc++ warnings — Raphael Isemann / detail
  183. Be explicit about Windows coff name trailing character policy — sguelton / detail
  184. Properly EXCLUDE_FROM_ALL the testing support library — pavel / detail
  185. Fix an unused variable warning in ClangASTContext.cpp — pavel / detail
  186. Removed some dead code in BugReporter and related files — gribozavr / detail
  187. [AArch64] Update MTE system register encodings — luke.cheeseman / detail
  188. [lldb][NFC] Add tests for invalid command invocations — Raphael Isemann / detail
  189. Reland D65242 "[ELF] More dynamic relocation packing"" — maskray / detail
  190. [DebugInfo] Avoid dropping location info across block boundaries — jeremy.morse.llvm / detail
  191. [MIPS GlobalISel] NarrowScalar G_TRUNC — petar.avramovic / detail
  192. [MIPS GlobalISel] Consider type1 when legalizing shifts after r351882 — petar.avramovic / detail
  193. [MIPS GlobalISel] NarrowScalar G_ZEXT and G_SEXT — petar.avramovic / detail
  194. [MIPS GlobalISel] NarrowScalar G_ZEXTLOAD and G_SEXTLOAD — petar.avramovic / detail
  195. [lldb][NFC] Add tests for register command — Raphael Isemann / detail
  196. [clangd] Ignore implicit conversion-operator nodes in find refs. — hokein / detail
  197. [llvm-objdump] - Cleanup the error reporting. — grimar / detail
  198. [LLD][ELF] - Simplify the bad-archive.s test case. — grimar / detail
  199. MinidumpYAML: move serialization code to MinidumpEmitter.cpp — pavel / detail
  200. [gtest] Fix printing of StringRef and SmallString in assert messages. — sam.mccall / detail
  201. [InstCombine] narrow icmp with extended operands of different widths — spatel / detail
  202. [DAGCombiner] Various nits. NFC — deadalnix / detail
  203. [lldb] Add tests for setting completions and enable 'settings remove' — Raphael Isemann / detail
  204. Fix two compiler warnings — pavel / detail
  205. Recommit "Minidump/Windows: Fix module lookup"" — pavel / detail
  206. [lldb] Add tests for 'settings remove' and fix error message typos — Raphael Isemann / detail
  207. Revert "[gtest] Fix printing of StringRef and SmallString in assert — sam.mccall / detail
  208. Add 9.0 release bug to merge request script — simon / detail
  209. reland [gtest] Fix printing of StringRef and SmallString in assert — sam.mccall / detail
  210. [RISCV] Add support for RVC HINT instructions — luismarques / detail
  211. [DWARF] Adjust return type of DWARFUnit::getLength(). — ikudrin / detail
  212. [lldb][NFC] Merge multiple TestApropos.py — Raphael Isemann / detail
  213. [LLVM][Alignment] Introduce Alignment In MachineFrameInfo — gchatelet / detail
  214. [AMDGPU] Prevent VGPR copies from moving across the EXEC mask — Alexander.Timofeev / detail
  215. Improving CodeView debug info type record's inline comments — nilanjana.basu87 / detail
  216. compiler-rt: Fix warning if COMPILER_RT_HAS_FCNTL_LCK is 0 — nicolasweber / detail
  217. [ELF][ARM] Simplify some llvm-objdump tests with both ARM/Thumb states — maskray / detail
  218. clang: Fix typo in comment — nicolasweber / detail
  219. [libcxx] Only declare contents of threading API when — david.spickett / detail
  220. git-llvm: Give "push" a --force flag to disable confirm prompt on — nicolasweber / detail
  221. clang: Fix typo in comment — nicolasweber / detail
  222. clang: Fix typo in comment — nicolasweber / detail
  223. [instcombine] icmp eq/ne (sub C, Y), C -> icmp eq/ne Y, 0 — listmail / detail
  224. clang: Fix typo in comment — nicolasweber / detail
  225. [Sanitizer] Disable -Wframe-larger-than on SystemZ — ulrich.weigand / detail
  226. git-llvm: Make push --force suppress error on nothing to commit as well — nicolasweber / detail
  227. [ARM] Formatting for ARMInstrMVE.td. NFC — david.green / detail
  228. Add a couple of extra test noticed in post-commit discussion of rL369541 — listmail / detail
  229. GlobalISel: Implement moreElementsVector for G_UNMERGE_VALUES sources — Matthew.Arsenault / detail
  230. [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs — asbirlea / detail
  231. Fix -Wimplicit-fallthrough warnings in regcomp.c — nhuck / detail
  232. [LTO] Always mark regular LTO units with EnableSplitLTOUnit=1 under the — leonardchan / detail
  233. [GWP-ASan] Build stack_trace_compressor_fuzzer. — mitchphillips / detail
  234. [GWP-ASan] Add public-facing documentation [6]. — mitchphillips / detail
  235. [docs] Convert remaining command guide entries from md to rst. — rupprecht / detail
  236. Add newline to GWP-ASan sphinx document. Should fix the document — mitchphillips / detail
  237. Generalize FindTypes with CompilerContext to support fuzzy lookup — Adrian Prantl / detail
  238. [docs] Fix GwpAsan.rst — rupprecht / detail
  239. [BitcodeReader] Check if we can create a null constant for type. — flo / detail
  240. [lld-link] implement -lto-obj-path — llvm / detail
  241. [docs] Add GwpAsan to toctree. — mitchphillips / detail
  242. [DAGCombiner] Remove mostly redundant calls to AddToWorklist — deadalnix / detail
  243. [mips] Remove duplicated case from the `StringSwitch`. NFC — simon / detail
  244. [mips] Replace call `expandLoadAddress` by `loadAndAddSymbolAddress`. — simon / detail
  245. [TableGen] Include ValueTypes.td directly into the intrinsic-varargs.td — craig.topper / detail
  246. [MVT] Add v16f16 and v32f16 vectors. — craig.topper / detail
  247. [WebAssembly] Handle aliases in WebAssemblyFixFunctionBitcasts — sbc / detail
  248. Revert r367389 (and follow-up r368404); it caused PR43073. — nicolasweber / detail
  249. [clang-tidy] Check for dynamically initialized statics in headers. — Yuanfang Chen / detail
  250. Revert r369549 as it broke the bots. — aaron / detail
  251. [GVN] Do PHI translations across all edges between the load and the — flo / detail
  252. gn build: Make sync script not exit 1 if it writes changes — nicolasweber / detail
  253. gn build: Merge r369568 — nicolasweber / detail
  254. Fix -Werror=unused-variable error after r369528. — richard-llvm / detail
  255. [analyzer] Mention whether an event is about a condition in a bug report — dkszelethus / detail

clang-d324659-g3b4ce731fbc-t1186-b1186.tar.gz (Aug 19, 2019 2:43:11 PM)

  1. [lldb] Set timeout to 90 and 60 min for build and testing respectively. — Jonas Devlieghere / detail
  2. [lldb] Add DWARF variants to the matrix bot — Jonas Devlieghere / detail
  3. [lldb] Remove old pipeline scripts — Jonas Devlieghere / detail
  4. [lldb] Checking LLDB pipelines — Jonas Devlieghere / detail
  5. Add sanitizer-aarch64-linux-mte builder.

    Reviewers: vitalybuka

    Subscribers: javed.absar, kristof.beyls

    Differential Revision: https://reviews.llvm.org/D66375 — eugenis / detail
  6. Add "sanitizer-aarch64-linux-mte" build script.

    Due to the lack of mte tests, run llvm/clang/asan tests for now. — eugenis / detail

clang-d324659-g3b4ce731fbc-t1186-b1186.tar.gz (Aug 19, 2019 2:43:11 PM)

  1. [InstCombine] canonicalize a scalar-select-of-vectors to vector select — spatel / detail
  2. [ORC] Remove some stray debugging output accidentally left in r368707 — Lang Hames / detail
  3. [Attributor] Introduce initialize calls and move code to keep attributes — jdoerfert / detail
  4. [Attributor][NFC] Introduce aliases for call site attributes — jdoerfert / detail
  5. [Attributor] Towards a more structured deduction pattern — jdoerfert / detail
  6. Stop abusing SuppressAllDiagnostics when speculatively determining — richard-llvm / detail
  7. [OPENMP5.0]Diagnose global variables in lambda not marked as declare — a.bataev / detail
  8. [ARM] push LR before __gnu_mcount_nc — caij2003 / detail
  9. [Test Commit] Fix typo in diagtool.rst — troyj / detail
  10. Revert "[ARM] push LR before __gnu_mcount_nc" — caij2003 / detail
  11. [TSan] Don't guard #include <xpc/xpc.h> — jlettner / detail
  12. [X86] Use Register/MCRegister in more places in X86 — craig.topper / detail
  13. [X86] Support -mlong-double-80 — troyj / detail
  14. [Utility] Reimplement RegularExpression on top of llvm::Regex — Jonas Devlieghere / detail
  15. [RWMutex] Simplify availability check — Jonas Devlieghere / detail
  16. [Attributor] Add all missing attribute definitions/symbols — jdoerfert / detail
  17. [CodeGenPrepare] fix RUN line settings — spatel / detail
  18. [clang-format] Fix the bug that joins template closer and > or >> — owenpiano / detail
  19. [CaptureTracking] Allow null to be in either icmp operand — jdoerfert / detail
  20. [Attributor] Fix: Make sure we set the changed flag — jdoerfert / detail
  21. [Attributor] Fix: Do not partially resolve returned calls. — jdoerfert / detail
  22. [doc] Fix some minor formatting issues. — richard-llvm / detail
  23. [ARM] Preserve liveness in ARMConstantIslands. — efriedma / detail
  24. [InstCombine][NFC] Revisit tests in — lebedev.ri / detail
  25. [TSan] Add interceptors for os_unfair_lock — jlettner / detail
  26. Revert "[TSan] Don't guard #include <xpc/xpc.h>" — jlettner / detail
  27. [InstCombine][NFC] reuse-constant-from-select-in-icmp.ll - check — lebedev.ri / detail
  28. Revert [X86] SimplifyDemandedVectorElts - attempt to recombine target — rupprecht / detail
  29. [CodeGenPrepare] Fix use-after-free — spatel / detail
  30. [llvm-readobj] Fallback to PT_NOTE if file doesn't have sections — phosek / detail
  31. Revert "[X86] Support -mlong-double-80" — troyj / detail
  32. [ORC] Re-introduce self-dependence accidentally dropped from a unit — Lang Hames / detail
  33. [AArch64][GlobalISel] Fix an assertion during G_UNMERGE selection for — aemerson / detail
  34. Reland "[ARM] push LR before __gnu_mcount_nc" — caij2003 / detail
  35. Revert r367891 - "[InstCombine] combine mul+shl separated by zext" — spatel / detail
  36. Add LLDB dataformatters for llvm::StringRef and — Adrian Prantl / detail
  37. [llvm-readobj] Unwrap the value first to avoid the error — phosek / detail
  38. Simplify code (NFC). — Adrian Prantl / detail
  39. [Fuchsia] Create the VMO during initialization, not during exit — phosek / detail
  40. [MemorySSA] Loop passes should mark MSSA preserved when available. — asbirlea / detail
  41. [clang-doc] Fix casting not working in gcc 5.4.0 — diegoaat97 / detail
  42. [X86] Support -mlong-double-80 — troyj / detail
  43. [ELF][PPC] Fix getRelExpr for R_PPC64_REL16_HI — maskray / detail
  44. Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for — paul.walker / detail
  45. Revert Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning — paul.walker / detail
  46. [ELF] Replace local variable hasExportDynamic with — maskray / detail
  47. [circular_raw_ostream] Delegate is_displayed to contained stream — troyj / detail
  48. [test] - Remove precomiled openbsd-phdrs.elf-x86-64 objects. — grimar / detail
  49. [llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API. — grimar / detail
  50. [CodeGen] Do the Simple Early Return in block-placement pass to optimize — shkzhang / detail
  51. [llvm-readobj] - An attemp to fix BB after r369191. — grimar / detail
  52. Revert r369190, r369192 ([llvm-readobj/llvm-readelf] - Improve/cleanup — grimar / detail
  53. Recommit r369190 "[llvm-readobj/llvm-readelf] - Improve/cleanup the — grimar / detail
  54. [analyzer] Turn an assert into an if condition — dkszelethus / detail
  55. [SemaDeclCXX] Allow inheriting constructor declaration to specify a — cpplearner / detail
  56. [NFC][InstCombine] Some tests for 'shift amount reassoc in bit test - — lebedev.ri / detail
  57. [lldb][NFC] Remove unused MaterializeInitializer and — Raphael Isemann / detail
  58. [BPF] Fix bpf llvm-objdump issues. — yhs / detail
  59. [X86] Add a one use check to the combineStore code that handles — craig.topper / detail
  60. TableGen: Revert changes from r369038 — Matthew.Arsenault / detail
  61. AMDGPU: Disambiguate v3f16 format in load/store tables — Matthew.Arsenault / detail
  62. AMDGPU: Fix iterator error when lowering SI_END_CF — Matthew.Arsenault / detail
  63. [SelectionDAG] Add a node creation debug message to getMachineNode. — craig.topper / detail
  64. [TargetLowering] Teach computeRegisterProperties to only widen — craig.topper / detail
  65. [Diagnostics] Improve -Wsizeof-pointer-div — david.bolvansky / detail
  66. [InstCombine] Cherry-pick NFC cleanups of — lebedev.ri / detail
  67. [MC] MCFixup - Fix cppcheck + MSVC analyzer uninitialized member — llvm-dev / detail
  68. [X86][SSE] Improve PACKSS shuffle tests to better match codegen from — llvm-dev / detail
  69. [X86] isTargetShuffleEquivalent - early out on illegal shuffle masks. — llvm-dev / detail
  70. [X86] isTargetShuffleEquivalent - add BUILD_VECTOR matching — llvm-dev / detail
  71. Fix signed/unsigned comparison warning. NFCI. — llvm-dev / detail
  72. [clang-format] Fix a bug that joins template closer and = — owenpiano / detail
  73. [X86] Improve lower1BitShuffle handling for KSHIFTL on narrow vectors. — craig.topper / detail
  74. [Docs] Test commit — d4m1887 / detail
  75. [Diagnostics] Diagnose misused xor as pow — david.bolvansky / detail
  76. [ORC] Remove some dead code. — Lang Hames / detail
  77. [ORC] Make sure we linker-mangle symbol names in the SpeculationLayer. — Lang Hames / detail
  78. [CMake] Update CMAKE_OSX_DEPLOYMENT_TARGET to 10.12. — Jonas Devlieghere / detail
  79. [cmake] Move blocks out of redundant else( MSVC ); NFC — hubert.reinterpretcast / detail
  80. [X86] Replace uses of getZeroVector for vXi1 vectors with — craig.topper / detail
  81. [X86] Add test cases for suboptimal insertion of a vXi1 vector into a — craig.topper / detail
  82. [X86] Add a special case to LowerCONCAT_VECTORSvXi1 to handle — craig.topper / detail
  83. [X86] Add test case for missed opportunity to recognize a vXi1 shuffle — craig.topper / detail
  84. [X86] Teach lower1BitShuffle to recognize padding a subvector with zeros — craig.topper / detail
  85. [X86] Teach lower1BitShuffle to match KSHIFTR that doesn't use Zeroable — craig.topper / detail
  86. [X86] Fix the lower1BitShuffle code added in r369215 to correctly pass — craig.topper / detail
  87. [clangd] Update features table in the docs with links to LSP extension — zeratul976 / detail
  88. [llvm-objcopy][MachO] Support load commands used in executables/shared — nuta / detail
  89. [llvm-objcopy][MachO] Implement a layout algorithm for executables — nuta / detail
  90. [X86] Teach lower1BitShuffle to match right shifts with upper zero — craig.topper / detail
  91. [MC] Don't emit .symver redirected symbols to the symbol table — maskray / detail
  92. Revert r369230 and r369231 — nuta / detail
  93. [lldb] Remove unused inheritance in RegularExpression — jan.kratochvil / detail
  94. Revert [Attributor] Fix: Do not partially resolve returned calls. — dlj / detail
  95. [lldb][NFC] Address review comments to StringList for-loop support — Raphael Isemann / detail
  96. [clangd] Added special HighlightingKind for function parameters. — jvikstrom / detail
  97. [MC] Delete unnecessary diagnostic: "No relocation available to — maskray / detail
  98. [lldb][NFC] Use GetMaxStringLength in CommandObjectApropos::DoExecute — Raphael Isemann / detail
  99. Revert [Attributor] Fix: Make sure we set the changed flag — dlj / detail
  100. [lldb][NFC] Remove StringList::AutoComplete — Raphael Isemann / detail
  101. [DebugInfo] Test for variable range un-coalescing — jeremy.morse.llvm / detail
  102. [ARM] MVE sext costs — david.green / detail
  103. [ARM] Add support for MVE vaddv — sam.tebbs / detail
  104. [ELF][ARM] Add a test that maxes out the thunk convergence limit — peter.smith / detail
  105. [DebugInfo] Make postra sinking of DBG_VALUEs subregister-safe — jeremy.morse.llvm / detail
  106. [MC] Simplify ELFObjectWriter::recordRelocation. NFC — maskray / detail
  107. [lldb][NFC] Add a few more completion tests to increase test coverage — Raphael Isemann / detail
  108. [SLP] reduce duplicated code; NFC — spatel / detail
  109. [OpenCL] Fix addr space deduction for pointers/references to arrays. — anastasia.stulova / detail
  110. [lldb][NFC] Use CompletionRequest in Variable::AutoComplete — Raphael Isemann / detail
  111. [OpenCL] Add generic type handling for builtin functions — sven.vanhaastregt / detail
  112. [llvm-readobj] unwrapOrError: remove unnecessary llvm_unreachable after — maskray / detail
  113. [SLP] add test that requires shuffle of scalars; NFC — spatel / detail
  114. [DebugInfo] Allow bundled calls in the MIR's call site info — david.stenberg / detail
  115. [RISCV] Don't force absolute FK_Data_X fixups to relocs — asb / detail
  116. [lld][Hexagon] Add GOTREL relocations. — sidneym / detail
  117. Don't keep stale pointers to LoopInfos. — aaron / detail
  118. [ELF][Hexagon] Improve error message for unknown relocations — maskray / detail
  119. [PeepholeOptimizer] Don't assume bitcast def always has input — Jinsong Ji / detail
  120. [ELF] Move (copy relocation/canonical PLT) before error checking — maskray / detail
  121. [Object/COFF.h] - Stop returning std::error_code in a few methods. NFCI. — grimar / detail
  122. Automatically generate AVX512 test cases. NFC — deadalnix / detail
  123. [llvm-objdump] - Restore lost comment. — grimar / detail
  124. [nfc] Silent gcc warning — sguelton / detail
  125. [lldb][NFC] Stop using GetNumberOfMatches in CompletionRequest test — Raphael Isemann / detail
  126. [TargetLowering] x s% C == 0 fold: vector divisor with INT_MIN handling — lebedev.ri / detail
  127. Filesystem/Windows: fix inconsistency in readNativeFileSlice API — pavel / detail
  128. [libc++] reverts commit a5f5aad568bb7a91ceee47641f3076ac339ef8c7. — z.zoelec2 / detail
  129. [ELF] Simplify processRelocAux and allow a corner-case error — maskray / detail
  130. [dotest] Add --dwarf-version to override the tested DWARF version. — Jonas Devlieghere / detail
  131. [clangd] Added highlighting for tokens that are macro arguments. — jvikstrom / detail
  132. [lld][WebAssembly] Honor --no-export-dynamic even with -shared — sbc / detail
  133. [Attributor] -attributor-verify has false positives. Temporarily remove — sstipanovic / detail
  134. [X86] Added extensive scheduling model tests for all the CMPXCHG — Andrea_DiBiagio / detail
  135. [libc++] Add XFAIL for is_base_of test on AppleClang 11 — Louis Dionne / detail
  136. Implement P1668R1 — erich.keane / detail
  137. Update cxx_status.html with P1668 status. — erich.keane / detail
  138. [CGP] Remove ModifiedDT from the makeBitReverse loop — craig.topper / detail
  139. Fix test where diagnostics changed in P1668 implementation — erich.keane / detail
  140. [Sanitizer] arc4random interception on Mac — David CARLIER / detail
  141. Fix poorly formatted HTML in the cxx_status.html file caused by adding — erich.keane / detail
  142. [X86] Teach lowerV4I32Shuffle to only use broadcasts if the mask has — craig.topper / detail
  143. [X86] Move scheduling tests for CMPXCHG to the corresponding — Andrea_DiBiagio / detail
  144. [TSan] Rename file to make it clear that it defines interceptors — jlettner / detail
  145. Build symbolizer runtime with C++14. — peter / detail
  146. [MemorySSA] Rename uses when inserting memory uses. — asbirlea / detail
  147. [WebAssembly][MC] Allow empty assembly functions — sbc / detail
  148. [lldb] Make TestIOHandlerCompletion more stable and document it — Raphael Isemann / detail
  149. Re-apply fixed "[Attributor] Fix: Make sure we set the changed flag" — jdoerfert / detail
  150. [Support] Replace sys::Mutex with their standard equivalents. — benny.kra / detail
  151. [lldb-vscode] add `launchCommands` to handle launch specific commands — apl / detail

clang-d324508-g3550da79ecd-t1105-b1105.tar.gz (Aug 16, 2019 1:19:37 PM)

  1. [AMDGPU] removed unused functions from printf lowering — Stanislav.Mekhanoshin / detail
  2. Do not call replaceAllUsesWith to upgrade calls to ARC runtime functions — Akira / detail
  3. [X86] Remove 'Server' from Tigerlake description comments. — craig.topper / detail
  4. Move findBBwithCalls to the file it's used in to avoid unused function — echristo / detail
  5. Revert "Do not call replaceAllUsesWith to upgrade calls to ARC runtime — Akira / detail
  6. [Symbol] Remove redundant include — apl / detail
  7. clang-scan-deps: do not spawn threads when LLVM_ENABLE_THREADS is — Alex Lorenz / detail
  8. [TSan] Fix test failing on Linux — jlettner / detail
  9. Eliminate implicit Register->unsigned conversions in VirtRegMap. NFC — daniel_l_sanders / detail
  10. [lld] Remove unnecessary "class Lazy" — llvm / detail
  11. [AMDGPU] Fix msan failure in printf lowering — Stanislav.Mekhanoshin / detail
  12. Do not call replaceAllUsesWith to upgrade calls to ARC runtime functions — Akira / detail
  13. Verifier: check prof branch_weights — yevgeny.rouban / detail
  14. [GlobalISel]: Add KnownBits for G_XOR — aditya_nandakumar / detail
  15. [ELF][test] Add dynamic-list-preempt2.s — maskray / detail
  16. Added unit tests to check supported rounding modes — sepavloff / detail
  17. [ELF] Rename odd variable names "New" after r365730. NFC — maskray / detail
  18. [GlobalISel] Make the InstructionSelector instance non-const, allowing — aemerson / detail
  19. [AArch64][GlobalISel] Replace explicit vreg creation with implicit using — aemerson / detail
  20. [PowerPC] Fix ICE when truncating some vectors — qiucofan / detail
  21. [ASTImporter] Import additional flags for functions. — 1.int32 / detail
  22. [NFC][InstCombine] Non-canonical clamp pattern: non-canonical predicate — lebedev.ri / detail
  23. [SimplifyLibCalls] Add dereferenceable bytes from known callsites — david.bolvansky / detail
  24. [NFC] Updated tests after r368657 — david.bolvansky / detail
  25. [ELF] Simplify handling of exportDynamic and isPreemptible — maskray / detail
  26. Revert r368276 "[TargetLowering] SimplifyDemandedBits - call — hans / detail
  27. [ELF] Don't special case symbolic relocations with 0 addend to ifunc in — maskray / detail
  28. [X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle — llvm-dev / detail
  29. [X86] XFormVExtractWithShuffleIntoLoad - handle shuffle mask scaling — llvm-dev / detail
  30. [libc++] Use [[nodiscard]] for lock_guard, as an extension — Louis Dionne / detail
  31. gn build: Make sync script group output by revision — nicolasweber / detail
  32. [libc++] Fix incorrect UNSUPPORTED annotation — Louis Dionne / detail
  33. gn build: Give cmake sync script an opt-in --write flag — nicolasweber / detail
  34. gn build: Merge r368630 — nicolasweber / detail
  35. gn build: Extract git() and git_out() functions in sync script — nicolasweber / detail
  36. [pstl] Rename PARALLELSTL_BACKEND to PSTL_PARALLEL_BACKEND — Louis Dionne / detail
  37. [CodeGen] Disable UBSan for coroutine functions — modocache / detail
  38. [llvm-readobj] - Remove 'error(Error EC)' helper. — grimar / detail
  39. [lldb][NFC] Add basic IOHandler completion test — Raphael Isemann / detail
  40. [libTooling] In Transformer, generalize `applyFirst` to admit rules with — yitzhakm / detail
  41. [pstl] Allow customizing whether per-TU insulation is provided — Louis Dionne / detail
  42. [InstCombine] foldXorOfICmps(): don't give up on non-single-use ICmp's — lebedev.ri / detail
  43. [InstCombine][NFC] Rename IsFreeToInvert() -> isFreeToInvert() for — lebedev.ri / detail
  44. [InstCombine] Non-canonical clamp-like pattern handling — lebedev.ri / detail
  45. [lldb] Reland "Refactor guard variable checks in IRForTarget" — Raphael Isemann / detail
  46. [analyzer][NFC] Refactoring BugReporter.cpp P1.: Store interesting — dkszelethus / detail
  47. [AIX][test/Index] Set/propagate AIXTHREAD_STK for AIX — hubert.reinterpretcast / detail
  48. [AIX] Implement LR prolog/epilog save/restore — hubert.reinterpretcast / detail
  49. Fix -Wdocumentation typo. NFCI. — llvm-dev / detail
  50. Fix -Wdocumentation warning (@returns used in void function). NFCI. — llvm-dev / detail
  51. [analyzer][NFC] Refactoring BugReporter.cpp P2.: Clean up the — dkszelethus / detail
  52. [lldb] Fix Microsoft guard variable detection — Raphael Isemann / detail
  53. [AArch64] Make the memtag sanitizer require the memtag extension — momchil.velikov / detail
  54. Enable memtag sanitizer in all AArch64 toolchains — momchil.velikov / detail
  55. [llvm-readelf] Implement note parsing for NT_FILE and unknown — rupprecht / detail
  56. Revert r368691; test checked in without changes by accident — hubert.reinterpretcast / detail
  57. [clang-tidy] Update `TransformerClangTidyCheck` to use new — yitzhakm / detail
  58. [TargetLowering][NFC] prepareUREMEqFold(): fixup comment — lebedev.ri / detail
  59. [CodeGen][SelectionDAG] More efficient code for X % C == 0 (SREM case) — lebedev.ri / detail
  60. [libc++] Always build with -fvisibility=hidden — Louis Dionne / detail
  61. GlobalISel: Change representation of shuffle masks — Matthew.Arsenault / detail
  62. GlobalISel: Add more verifier checks for G_SHUFFLE_VECTOR — Matthew.Arsenault / detail
  63. Fix crash on switch conditions of non-integer types in templates — elizabeth.andrews / detail
  64. [ORC] Refactor definition-generation, add a generator for static — Lang Hames / detail
  65. GlobalISel: Implement lower for G_SHUFFLE_VECTOR — Matthew.Arsenault / detail
  66. [lld][test] Update test to print ELF note description data — rupprecht / detail
  67. [ARM] Fix encoding of APSR in CLRM instruction — momchil.velikov / detail
  68. [ARM] Fix detection of duplicates when parsing reg list operands — momchil.velikov / detail
  69. GlobalISel: Partially implement fewerElementsVector G_UNMERGE_VALUES — Matthew.Arsenault / detail
  70. [SLC] Improve dereferenceable bytes annotation — david.bolvansky / detail
  71. [X86] Add some vXi8 extract subvector cost model tests — llvm-dev / detail
  72. [analyzer][NFC] Refactoring BugReporter.cpp P3.: — dkszelethus / detail
  73. [Dwarf] Complete the list of type tags. — Jonas Devlieghere / detail
  74. [lld][WebAssembly] Allow linking of pic code into static binaries — sbc / detail
  75. [NFC][AIX] Use assert instead of llvm_unreachable — daltenty / detail
  76. Reland r368691: "[AIX] Implement LR prolog/epilog save/restore" — hubert.reinterpretcast / detail
  77. [NFC] Revisited/updated tests — david.bolvansky / detail
  78. [ValueTracking] Improve reverse assumption inference — nikita.ppv / detail
  79. [SimplifyLibCalls] Add noalias from known callsites — david.bolvansky / detail
  80. [NFC] Updated tests after r368724 — david.bolvansky / detail
  81. [util] Allow callsigns when running git llvm revert — rupprecht / detail
  82. Use Register over unsigned in LateEHPrepare (NFC) — aheejin / detail
  83. clang: Don't warn on unused momit-leaf-frame-pointer when frame pointers — nicolasweber / detail
  84. [NFC] Fixed test — david.bolvansky / detail
  85. [AutoUpgrader] Make ArcRuntime Autoupgrader more conservative — Steven Wu / detail
  86. [llvm-profdata] Profile dump for compact binary format — aktoon / detail
  87. [clang] Refactor doc comments to Decls attribution — Jan Korous / detail
  88. [ARM] Add MVE beats vector cost model — david.green / detail
  89. [NFC][clang] Adding argument based Phase list filtering to — puyan / detail
  90. [analyzer][NFC] Refactoring BugReporter.cpp P4.: If it can be const, — dkszelethus / detail
  91. [AMDGPU] Fix to 'Fold readlane from copy of SGPR or imm' — tpr.llvm / detail
  92. [analyzer][NFC] Refactoring BugReporter.cpp P5.: Compact mile long — dkszelethus / detail
  93. Revert "Fix crash on switch conditions of non-integer types in — gribozavr / detail
  94. Don't use std::errc — a.bataev / detail
  95. [ORC] Fix BuildingAJIT tutorial code broken by r368707. — Lang Hames / detail
  96. [Symbol] Decouple clang from CompilerType — apl / detail
  97. [DWARF} Use LLVM's debug line parser in LLDB. — Jonas Devlieghere / detail
  98. [Refactor] Moving SourceExtraction header from lib to include — shauryab98 / detail
  99.     [AIX]Lowering global address for 32/64bit small/large code models — xiangxdh / detail
  100. [analyzer][NFC] Address inlines of D65484 — dkszelethus / detail
  101. [DWARF] Guess the path style — Jonas Devlieghere / detail
  102. [GISel] Pass MachineRegisterInfo by const reference to matcher. — mark.lacey / detail
  103. Remove the extra `;`. — michael.hliao / detail
  104. [libc++] Mark two <chrono> tests as unsupported on AppleClang 11 — Louis Dionne / detail
  105. [WebAssembly] Make clang emit correct va_arg code for structs — gzchen / detail
  106. Factor architecture dependent code out of loop.cu — jonathanchesterfield / detail
  107. [analyzer][NFC] Refactoring BugReporter.cpp P6.: Completely get rid of — dkszelethus / detail
  108. [GlobalISel]: Fix lowering of G_SHUFFLE_VECTOR with scalar sources — aditya_nandakumar / detail
  109. Add a missing header comment, NFC — erik.pilkington / detail
  110. [analyzer][NFC] Make sure that the BugReport is not modified during the — dkszelethus / detail
  111. Relax opcode checks in test to check for only a number instead of a — douglas.yung / detail
  112. [GlobalISel][NFC] Factor out common target code from — Jessica Paquette / detail
  113. [NFCI] Explicitly provide user-defined constructor for SectionRef — apl / detail
  114. Initial support for native debugging of x86/x64 Windows processes — aaron.smith / detail
  115. Attempt to fix issue with unresolved lit test in TableGen — Jessica Paquette / detail
  116. [clang] DirectoryWatcher for Windows stubs (to fix build break). — Jan Korous / detail
  117. [clang][DirectoryWatcher] Fix Windows stub after LLVM change — Jan Korous / detail
  118. [Polly-ACC] Fix test after IR-printer change. — llvm / detail
  119. [ORC] Fix SpeculativeJIT example code broken by r368707. — Lang Hames / detail
  120. [analyzer] Disable the checker-plugins test on Darwin. — Artem Dergachev / detail
  121. [analyzer] exploded-graph-rewriter: Open the converted graph — Artem Dergachev / detail
  122. [analyzer] exploded-graph-rewriter: NFC: Refactor explorers into — Artem Dergachev / detail
  123. [analyzer] exploded-graph-rewriter: Implement manual graph trimming. — Artem Dergachev / detail
  124. [analyzer] exploded-graph-rewriter: Implement displaying Store pointers. — Artem Dergachev / detail
  125. [AArch64] Remove incorrect usage of MONonTemporal. — efriedma / detail
  126. [analyzer] Prune calls to functions with linear CFGs that return a — dkszelethus / detail
  127. [DebugLine] Be more robust in geussing the path style — Jonas Devlieghere / detail
  128. [analyzer] Track the right hand side of the last store regardless of its — dkszelethus / detail
  129. Enable lldb-server on Windows — aaron.smith / detail
  130. [AArch64][GlobalISel] RBS: Treat s128s like vectors when unmerging. — aemerson / detail
  131. Update Python tests for lldb-server on Windows — aaron.smith / detail
  132. [analyzer][NFC] Prepare visitors for different tracking kinds — dkszelethus / detail
  133. [ORC] Fix clang-interpreter example code broken by r368707. — douglas.yung / detail
  134. [analyzer] Don't delete TaintConfig copy constructor — apl / detail
  135. [GlobalISel]: Fix lowering of G_Shuffle_vector where we pick up the — aditya_nandakumar / detail
  136. Fix warning: suggest braces around initialization of subobject — Jonas Devlieghere / detail
  137. [libcxxabi] Define _LIBCXXABI_GUARD_ABI_ARM on WebAssembly — sbc / detail
  138. [ELF] Initialize 2 fields of Symbol in SymbolTable::insert — maskray / detail
  139. Add __has_builtin support for builtin function-like type traits. — richard-llvm / detail
  140. [FileCheck] Move -dump-input diagnostic to first line — jdenny.ornl / detail
  141. [FileCheck] Document FILECHECK_OPTS in -help — jdenny.ornl / detail
  142. Extend coroutines to support a "returned continuation" lowering. — rjmccall / detail
  143. Generalize llvm.coro.suspend.retcon to allow an arbitrary number of — rjmccall / detail
  144. Guard dumps in the coro intrinsic validation logic behind NDEBUG checks. — rjmccall / detail
  145. Add intrinsics for doing frame-bound dynamic allocations within a — rjmccall / detail
  146. Fix a use-after-free in the coro.alloca treatment. — rjmccall / detail
  147. In coro.retcon lowering, don't explode if the optimizer messes around — rjmccall / detail
  148. Update for optimizer changes. — rjmccall / detail
  149. Support swifterror in coroutine lowering. — rjmccall / detail
  150. Remove unreachable blocks before splitting a coroutine. — rjmccall / detail
  151. Don't run a full verifier pass in coro-splitting's private pipeline. — rjmccall / detail
  152. Coroutines: adjust for SVN r358739 — rjmccall / detail
  153. Remove minimum toolchain soft-error — JF Bastien / detail
  154. Revert '[LICM] Make Loop ICM profile aware' and 'Fix pass dependency for — dlj / detail
  155. [LV] Fold-tail flag — dorit.nuzman / detail
  156. [lldb] Reinstate original guard variable check — Raphael Isemann / detail
  157. [NewPM][PassInstrumentation] IR printing support from clang driver — twoh / detail
  158. Removed dead code from clang/tools/libclang/CXIndexDataConsumer.{cpp,h} — gribozavr / detail
  159. [API] Have SBCommandReturnObject::GetOutput/Error return "" instead of — pavel / detail
  160. [InstCombine][NFC] Autogenerate checks in adjust-for-minmax.ll — lebedev.ri / detail
  161. Fix the -Wunused-variable warning. — hokein / detail
  162. [Codegen] Updated test for D66158 — david.bolvansky / detail
  163. [Intrinsics] Add a 'NoAlias' intrinsic property; annotate llvm.memcpy — david.bolvansky / detail
  164. [llvm-objdump] - Add a relocation-xindex-symbol.test test case. — grimar / detail
  165. [llvm/Object] - Convert SectionRef::getName() to return Expected<> — grimar / detail
  166. Revert r368812 "[llvm/Object] - Convert SectionRef::getName() to return — grimar / detail
  167. [MinGW] Remove stray/inconsistent comment chars in test file. NFC. — martin / detail
  168. [MinGW] Restructure Options.td to use multiclass where sensible. NFC. — martin / detail
  169. [MinGW] Correct handling different forms of a few options — martin / detail
  170. [analyzer] Note last writes to a condition only in a nested stackframe — dkszelethus / detail
  171. [ASTImporter] Import default expression of param before creating the — 1.int32 / detail
  172. [InstCombine] Refactor getFlippedStrictnessPredicateAndConstant() out of — lebedev.ri / detail
  173. [llvm-size][test] Improve llvm-size testing — jh7370 / detail
  174. Fix _WIN32 / _WIN64 Wundef warnings — sven.vanhaastregt / detail
  175. [AsmPrinter] Delete redundant .type foo, @function when emitting an — maskray / detail
  176. [clangd] Fix typos and grammar in a comment. NFC — ibiryukov / detail
  177. [clang] - An update after LLVM change. — grimar / detail
  178. Recommit r368812 "[llvm/Object] - Convert SectionRef::getName() to — grimar / detail
  179. Improved the doc comment for getCommentsInFile — gribozavr / detail
  180. [NFC] Make test more robust — david.bolvansky / detail
  181. Fix "not all control paths return a value" MSVC warnings. NFCI. — llvm-dev / detail
  182. Fix "not all control paths return a value" MSVC warning. NFCI. — llvm-dev / detail
  183. Fix "not all control paths return a value" MSVC warnings. NFCI. — llvm-dev / detail
  184. Removed ToolExecutor::isSingleProcess, it is not used by anything — gribozavr / detail
  185. [IR] Simplify removeDeadConstantUsers. NFC — maskray / detail
  186. [clangd] Loading TokenColorRules as a class mapping the rules to their — jvikstrom / detail
  187. [DebugInfo] MCP: collect and update DBG_VALUEs encountered in local — jeremy.morse.llvm / detail
  188. [analyzer][CFG] Don't track the condition of asserts — dkszelethus / detail
  189. [ELF][test] Update silent-ignore.test — maskray / detail
  190. Revert "Minidump/Windows: Fix module lookup" — pavel / detail
  191. [X86] Add missing regular 512-bit vXi8 extract subvector cost model — llvm-dev / detail
  192. gn build: Pre-merge https://reviews.llvm.org/D66195 — nicolasweber / detail
  193. [Clangd] NFC: Fixed comment typo — shauryab98 / detail
  194. [clangd] Print qualifiers of out-of-line definitions in document outline — ibiryukov / detail
  195. [ELF] --gdb-index: fix odd variable name cUs after r365730 and replace — maskray / detail
  196. [SimplifyCFG] Add "safe abs" test from CMSIS DSP 'abs_with_clamp()' — lebedev.ri / detail
  197. raw_ostream: add operator<< overload for std::error_code — pavel / detail
  198. [Tooling] Added DeclStmtClass to ExtractionSemicolonPolicy — shauryab98 / detail
  199. [clangd][vscode] Surface the error when applying tweaks fails — hokein / detail
  200. Add missing SetID method to fix Windows build — aaron.smith / detail
  201. [analyzer][NFC] Prove that we only track the evaluated part of the — dkszelethus / detail
  202. Revert "raw_ostream: add operator<< overload for std::error_code" — pavel / detail
  203. [AIX] Add call lowering for parameters that could pass onto FPRs — jasonliu.development / detail
  204. [PowerPC][NFC] Consolidate duplicate XX3Form_SetZero and XX3Form_Zero. — Jinsong Ji / detail
  205. [X86] Add llvm_unreachable to a switch that covers all expected values. — craig.topper / detail
  206. [X86][CostModel] Adjust the costs of ZERO_EXTEND/SIGN_EXTEND with less — craig.topper / detail
  207. [PowerPC][NFC] Add test for build all one vector with different types. — Jinsong Ji / detail
  208. [NFC][AIX] Change assertion — xiangxdh / detail
  209. [LangRef] Remove opening [ that was missing a closing ] from — craig.topper / detail
  210. [libTooling] Fix code to avoid unused-function warning after r368681. — yitzhakm / detail
  211. [NFC] Fix testcase for ARMs — david.bolvansky / detail
  212. [X86] Use PSADBW for v8i8 addition reductions. — craig.topper / detail
  213. Fix cppcheck + MSVC analyzer uninitialized member variable warning. — llvm-dev / detail
  214. [scudo][standalone] Add more stats to mallinfo — kostyak / detail
  215. Rework recursive_timed_mutex so that it uses __thread_id instead of — mclow.lists / detail
  216. [WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8 — tlively / detail
  217. [mips] Split long lines in the test case file. NFC — simon / detail
  218. [mips] Remove redundant case in the test. NFC — simon / detail
  219. [LifetimeAnalysis] Fix false negatives of statement local lifetime — xazax.hun / detail
  220. Add missing NativeProcessFactory for lldb-server on Windows — aaron.smith / detail
  221. Ignore indirect branches from callbr. — isanbard / detail
  222. Document clang-cpp in the release notes for clang — chris.bieneman / detail
  223. [BuildLibCalls] Noalias annotation — david.bolvansky / detail
  224. [NFC] Updated tests after r368875 — david.bolvansky / detail
  225. Fix cppcheck + MSVC analyzer uninitialized member variable warning. — llvm-dev / detail
  226. [Sema][ObjC] Fix a -Wformat false positive with localizedStringForKey — erik.pilkington / detail
  227. [DebugLine] Improve path handling. — Jonas Devlieghere / detail
  228. [libc++] Do not define _LIBCPP_CLANG_VER for non-LLVM Clang — Louis Dionne / detail
  229. [NFC][clang] Moving argument handling: Driver::BuildActions -> — puyan / detail
  230. [libc++] Enable <chrono> ""d and ""y literals for AppleClang 10 and up — Louis Dionne / detail
  231. [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a — dkszelethus / detail
  232. [SLC] Dereferenceable annonation - handle valid null pointers — david.bolvansky / detail
  233. This commit removes std::shared_ptr::make_shared and — z.zoelec2 / detail
  234. [InstCombine][NFC] Tests for 'try to reuse constant from select in — lebedev.ri / detail
  235. Move to C++14 — JF Bastien / detail
  236. Fix cppcheck + MSVC analyzer uninitialized member variable warning. — llvm-dev / detail
  237. Don't explicitly check for C++14 — JF Bastien / detail
  238. Remove now useless C++1y flag — JF Bastien / detail
  239. [DebugInfo] Consider debug label scope has an extra lexical block file — twoh / detail
  240. Match if / elseif properly — JF Bastien / detail
  241. InferAddressSpaces: Remove unnecessary check for ConstantInt — Matthew.Arsenault / detail
  242. InferAddressSpaces: Move target intrinsic handling to TTI — Matthew.Arsenault / detail
  243. Un-break the bots — JF Bastien / detail
  244. [CMake] Fix cache invalidation of LLVM_CXX_STD — chris.bieneman / detail
  245. [RLEV] Rewrite loop exit values for multiple exit loops w/o overall loop — listmail / detail
  246. [Support][NFC] Fix error message for posix_spawn_file_actions_addopen — Jan Korous / detail
  247. [PowerPC][NFC] Remove duplicate tests in build-vector-test.ll — Jinsong Ji / detail
  248. AMDGPU: Reduce number of registers in test — Matthew.Arsenault / detail
  249. Revert "Un-break the bots" — JF Bastien / detail
  250. [OPENMP]Support for non-rectangular loops. — a.bataev / detail
  251. [lldb][NFC] Remove unused function — rupprecht / detail
  252. [SDAG] move variable closer to use; NFC — spatel / detail
  253. [SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, — dtemirbulatov / detail
  254. Add support in CMake to statically link the C++ standard library. — erich.keane / detail
  255. MathExtras.h: don't check for unsupported GCC versions — JF Bastien / detail
  256. SwapByteOrder.h: don't check for unsupported GCC versions — JF Bastien / detail
  257. Use std::is_final directly — JF Bastien / detail
  258. [libc++] Mark std::tuple CTAD test as failing on AppleClang 9 — Louis Dionne / detail
  259. [clang-doc] Add missing check in tests — diegoaat97 / detail
  260. [x86] add tests for fadd reduction; NFC — spatel / detail
  261. [libc++] Mark <chrono> test as unsupported on AppleClang 9 — Louis Dionne / detail
  262. [Bugpoint redesign] Reduced scope of variables in Delta implementation — diegof30 / detail
  263. Fix thread comparison by making sure we never pass our special 'not a — mclow.lists / detail
  264. [AMDGPU] Do not assume a default GCN target — Stanislav.Mekhanoshin / detail
  265. [Bugpoint redesign] Added Pass to Remove Global Variables — diegof30 / detail
  266. [Attributor] Use IRPosition consistently — jdoerfert / detail
  267. Revert "[lldb] Reinstate original guard variable check" — Raphael Isemann / detail
  268. [Attributor] Do not update or manifest dead attributes — jdoerfert / detail
  269. [Attributor] Use liveness during the creation of AAReturnedValues — jdoerfert / detail
  270. [AArch64][GlobalISel] Custom selection for s8 load acquire. — aemerson / detail
  271. [Attributor] Use the AANoNull attribute directly in AADereferenceable — jdoerfert / detail
  272. [Attributor][NFC] Add merge/join/clamp operators to the IntegerState — jdoerfert / detail
  273. [SelectionDAGBuilder] Teach gather/scatter getUniformBase to look — craig.topper / detail
  274. [Attributor][NFC] Introduce statistics macros for new positions — jdoerfert / detail
  275. [Attributor][NFC] Try to eliminate warnings (debug build + fall through) — jdoerfert / detail
  276. [LifetimeAnalysis] Support std::stack::top() and std::optional::value() — M.Gehre / detail
  277. [SCEV] Rename getMaxBackedgeTakenCount to — listmail / detail
  278. [Attributor][NFC] Make debug output consistent — jdoerfert / detail
  279. [docs] Fix sphinx doc generation errors — rupprecht / detail
  280. [LLDB] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  281. [Bugpoint redesign] Modified Functions pass to consider declarations — diegof30 / detail
  282. [Polly] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  283. [LLD] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  284. Improve anonymous class heuristic in ClangASTContext::CreateRecordType — syaghmour / detail
  285. [Attributor] Try to fix "missing field 'RetInsts' initializer" warning — jdoerfert / detail
  286. Remove LVALUE / RVALUE workarounds — JF Bastien / detail
  287. Fix handling of class member access into a vector type. — richard-llvm / detail
  288. [www] Update DR status page to match latest version of CWG issues list. — richard-llvm / detail
  289. [Clang] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  290. [clang-tools-extra] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  291. Expose TailCallKind via the LLVM C API — devteam.codafi / detail
  292. [compiler-rt] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  293. [sanitizer_common] Replace forkpty with posix_spawn on Darwin — jlettner / detail
  294. [coroutine] Fixes "cannot move instruction since its users are not — gornishanov / detail
  295. [NFCI] Always initialize BugReport const fields — apl / detail
  296. gn build: Merge r368918 — Vitaly Buka / detail
  297. Revert "[compiler-rt] Migrate llvm::make_unique to std::make_unique" — Jonas Devlieghere / detail
  298. Revert "Expose TailCallKind via the LLVM C API" — Jonas Devlieghere / detail
  299. [NFC] Update doc comment to fix warning. — Jonas Devlieghere / detail
  300. [X86] Remove some dead code and combine some repeated code that's left. — craig.topper / detail
  301. [NFC] Remove documentation comment to fix warning. — Jonas Devlieghere / detail
  302. [Tooling] Add a hack to work around issues with matcher binding in — dlj / detail
  303. [NFC] Fix documentation for some utility classes. — Jonas Devlieghere / detail
  304. [CMake] Check for C++14 instead of C++11 — Jonas Devlieghere / detail
  305. [llvm-objcopy] Move duplicate tablegen from objcopy and strip into one — pozulp.llvm / detail
  306. Fix variable mismatch between signature and body — Jonas Devlieghere / detail
  307. [llvm-objdump] Add warning messages if disassembly + source for — pozulp.llvm / detail
  308. [ELF][PPC] Improve error message for unknown relocations — maskray / detail
  309. [X86] Remove some unreachable code from LowerBITCAST. — craig.topper / detail
  310. [X86] Disable custom type legalization for v2i32/v4i16/v8i8->f64 — craig.topper / detail
  311. [X86] Disable custom type legalization for v2i32/v4i16/v8i8->i64. — craig.topper / detail
  312. [X86] Remove unneeded isel pattern for v4f32->v4i32 fp_to_sint and — craig.topper / detail
  313. [X86] Add test cases for _mm_movepi64_pi64 and _mm_movpi64_epi64. — craig.topper / detail
  314. [Clang] Pragma vectorize_predicate implies vectorize — sjoerd.meijer / detail
  315. [X86] Make sure load is non-volatile in the MMX_X86movdq2q (loadv2i64) — craig.topper / detail
  316. [X86] Add isel pattern to match VZEXT_MOVL and a v2i64 scalar_to_vector — craig.topper / detail
  317. [LV] fold-tail predication should be respected even with assume_safety — dorit.nuzman / detail
  318. [llvm-readobj][MachO] Fix section type printing — nuta / detail
  319. [lldb] Let LLDB depend on intrinsics_gen to fix non-deterministic module — Raphael Isemann / detail
  320. [clang] Loop pragma parsing. NFC. — sjoerd.meijer / detail
  321. MemoryBuffer: Add a missing error-check to getOpenFileImpl — pavel / detail
  322. [InstCombine] Precommit test case for D66216 — flo / detail
  323. [analyzer] Add docs for cplusplus.InnerPointer — dkszelethus / detail
  324. [analyzer] Warn about -analyzer-configs being meant for development — dkszelethus / detail
  325. [ARM] MVE trunc to i1 vectors — david.green / detail
  326. [llvm-objcopy] Allow 'protected' visibility to be set when using — snortotter / detail
  327. [ELF][AArch64] Improve error message for unknown relocations — maskray / detail
  328. [Support] Fix Wundef warning — sven.vanhaastregt / detail
  329. Revert rL368939 "Remove LVALUE / RVALUE workarounds" — russell.gallop / detail
  330. Add ptrmask intrinsic — flo / detail
  331. [AArch64] Change location of frame-record within callee-save area. — sander.desmalen / detail
  332. [ARM] MVE predicate store patterns — david.green / detail
  333. Bump llvm-go to C++14 — benny.kra / detail
  334. Replace llvm::integer_sequence and friends with the C++14 standard — benny.kra / detail
  335. [clangd] llvm::integer_sequence -> std::integer_sequence. — benny.kra / detail
  336. [ADT] PointerUnion: Use C++14 constexpr std::min — benny.kra / detail
  337. [ValueTracking] Add MustPreserveNullness arg to functions analyzing — flo / detail
  338. [MCA] Slightly refactor the logic in ResourceManager. NFCI — Andrea_DiBiagio / detail
  339. [SDAG][x86] check for relaxed math when matching an FP reduction — spatel / detail
  340. [ARM] Fix alignment checks for BE VLDRH — david.green / detail
  341. [CodeGen] Do the Simple Early Return in block-placement pass to optimize — shkzhang / detail
  342. [DAGCombine] MergeConsecutiveStores - fix cppcheck/MSVC extension — llvm-dev / detail
  343. [OpenMP] Turn on -Wall compiler warnings by default — hahnjo / detail
  344. [lldb][NFC] Refactor remaining completion logic to use — Raphael Isemann / detail
  345. [OMPT] Resolve warnings because of ints in if conditions — hahnjo / detail
  346. [OpenMP] Remove 'unnecessary parentheses' — hahnjo / detail
  347. [OpenMP] Enable warning about "implicit fallthrough" — hahnjo / detail
  348. [lib/Object] - Remove objdump-file-header.test — grimar / detail
  349. [clangd] Don't use Bind() where C++14 move capture works — benny.kra / detail
  350. [PowerPC] Use xxleqv to set all one vector IMM(-1). — Jinsong Ji / detail
  351. Remove BitVector.h include. NFCI. — llvm-dev / detail
  352. Remove SmallBitVector.h include. NFCI. — llvm-dev / detail
  353. Re-land "[compiler-rt] Migrate llvm::make_unique to std::make_unique" — Jonas Devlieghere / detail
  354. [MCA] Slightly refactor class RetireControlUnit, and add the ability to — Andrea_DiBiagio / detail
  355. [cmake] install_symlink should obey DESTDIR unconditionally — Justin Bogner / detail
  356. Add a proposal for a libc project under the LLVM umbrella. — sivachandra / detail
  357. [llvm] Migrate llvm::make_unique to std::make_unique — Jonas Devlieghere / detail
  358. [Hexagon] Generate vector min/max for HVX — kparzysz / detail
  359. [BUNDLER]Improve the test, NFC. — a.bataev / detail
  360. [LLVM][Alignment] Fix MSVC potential division by 0 warning (PR42911) — llvm-dev / detail
  361. [Support] Base RWMutex on std::shared_timed_mutex (C++14) — benny.kra / detail
  362. [Driver][Bundler] Improve bundling of object files. — a.bataev / detail
  363. Test commit #2. — George Karpenkov / detail
  364. [sanitizer_common] Always use posix_spawn on Darwin — jlettner / detail
  365. [X86] Improve cost model for subvector extraction of less than 128-bit — craig.topper / detail
  366. Fix lld on GCC 5.1 after the C++14 move — JF Bastien / detail
  367. [NewPM][PassInstrumentation] IR printing support for (Thin)LTO — twoh / detail
  368. [CallGraph] Refine call graph for indirect calls with !callees metadata — mark.lacey / detail
  369. [DebugInfo] Avoid crash from dropped fragments in LiveDebugValues — jeremy.morse.llvm / detail
  370. Revert "MemoryBuffer: Add a missing error-check to getOpenFileImpl" — pavel / detail
  371. Fix the test, NFC. — a.bataev / detail
  372. Link libpthread into LLVMCore.so — benny.kra / detail
  373. Add LLVMLibC proposal to docs/index.rst. — sivachandra / detail
  374. [X86] Add custom type legalization for bitcasting mmx to — craig.topper / detail
  375. [NFC] Added tests for 'select with ctlz to cttz' fold — david.bolvansky / detail
  376. Allow standards-based attributes to have leading and trailing — aaron / detail
  377. Change test to use uint64_t to support compiling for 32-bit — Adrian Prantl / detail
  378. Rename this file from cx2.c to c2x.c; NFC. — aaron / detail
  379. [ValueTracking] Look through ptrmask intrinsics during — flo / detail
  380. [NFC] Add a couple of dump routines for RegisterPressure helper classes — listmail / detail
  381. MVT: Add v3i16/v3f16 vectors — Matthew.Arsenault / detail
  382. Revert [Bugpoint redesign] Added Pass to Remove Global Variables — diegof30 / detail
  383. [Hexagon] Fix instruction selection for vselect v4i8 — kparzysz / detail
  384. Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM — daniel_l_sanders / detail
  385. [WebAssembly] Correctly handle va_arg of zero-sized structures — gzchen / detail
  386. [Sema] Implement DR2386 for C++17 structured binding — rnk / detail
  387. Mark the test as unsupported on darwin, NFC. — a.bataev / detail
  388. Fix nm on GCC 5.1 after the C++14 move — JF Bastien / detail
  389. gn build: Merge r369018 — nicolasweber / detail
  390. gn build: Merge r369039 — nicolasweber / detail
  391. [GWP-ASan] Implement stack frame compression. — mitchphillips / detail
  392. [Rewrite][NFC] Add FIXMEs and tests for RemoveLineIfEmpty bug — jdenny.ornl / detail
  393. [MemorySSA] Remove restrictive asserts. — asbirlea / detail
  394. Remove CMake >= v3.13 target_link_options. Instead, use — mitchphillips / detail
  395. Stop-hooks weren't getting called on step-out. Fix that. — jingham / detail
  396. Add missing MIR serialization text for AArch64II::MO_TAGGED. — eugeni.stepanov / detail
  397. [Utils][NFC] Copy bisect usage documents from commit msg into script. — Jinsong Ji / detail
  398. Guard fuzzer build behind Clang-only flags. — mitchphillips / detail
  399. [Support] Re-introduce the RWMutexImpl for macOS < 10.12 — Jonas Devlieghere / detail
  400. [SDAG] Minor code cleanup/standardization of atomic accessors [NFC] — listmail / detail
  401. [AIX] For XL, pick GCC-compatible std & default warning options — hubert.reinterpretcast / detail
  402. Revert "[Support] Re-introduce the RWMutexImpl for macOS < 10.12" — Jonas Devlieghere / detail
  403. [Bugpoint redesign] Output option can now print to STDOUT — diegof30 / detail
  404. [Bugpoint redesign] Added Pass to Remove Global Variables — diegof30 / detail
  405. Move isPointerOffset function to ValueTracking (NFC). — eugeni.stepanov / detail
  406. [clang-doc] Fix bitcode writer for access specifiers — diegoaat97 / detail
  407. [Support] Re-introduce the RWMutexImpl for macOS < 10.12 — Jonas Devlieghere / detail
  408. [clang-doc] Fix use of source-root flag — diegoaat97 / detail
  409. [NewPM][PassInstrumentation] Fix test added in r369024. — dlj / detail
  410. Re-instate 369051. — mitchphillips / detail
  411. [clang-doc] Sort index elements case insensitive — diegoaat97 / detail
  412. [ARM][LowOverheadLoops] Fix generated code for "revert". — efriedma / detail
  413. [GlobalISel] CSEMIRBuilder: Add support for G_GEP — vkeles / detail
  414. Moved binary off add_llvm_executable. Used add_executable instead, as — mitchphillips / detail
  415. [DebugLine] Don't try to guess the path style — Jonas Devlieghere / detail
  416. gn build: Merge r369061 — nicolasweber / detail
  417. gn build: Merge r369064 — nicolasweber / detail
  418. [clang-doc] Serialize inherited attributes and methods — diegoaat97 / detail
  419. [clang-tidy] Migrate objc-forbidden-subclassing to use isDerivedFrom 🚛 — mog / detail
  420. [PowerPC] add testcases for folding frame offset - NFC — czhengsz / detail
  421. [analyzer] Analysis: Silence checkers — dabis.csaba98 / detail
  422. Disable stack_trace_compressor_fuzzer. — mitchphillips / detail
  423. Revert r368987, it caused PR43016. — nicolasweber / detail
  424. [clang-tidy] Migrate objc-super-self to use isDerivedFrom 🚛 — mog / detail
  425. Remove the temporary code. NFC. — ikudrin / detail
  426. [lldb-server] Disable a test on Windows until it can be fixed — aaron.smith / detail
  427. [X86] Manually reimplement getTargetInsertSubreg in — craig.topper / detail
  428. [ValueTracking] Fix recurrence detection to check both PHI operands. — flo / detail
  429. [clangd] Remove Bind, use C++14 lambda captures instead. NFC — ibiryukov / detail
  430. [clangd] Added highlighting for non type templates. — jvikstrom / detail
  431. AssumptionCache: remove old affected values after RAUW. — Tim Northover / detail
  432. [DebugInfo] Handle complex expressions with spills in LiveDebugValues — jeremy.morse.llvm / detail
  433. [RISCV] Add inline asm constraint A for RISC-V — lewis.revill / detail
  434. [SLPVectorizer] Silence null dereference warning. NFCI. — llvm-dev / detail
  435. [RISCV] Lower inline asm constraint A for RISC-V — lewis.revill / detail
  436. Revert "[CallGraph] Refine call graph for indirect calls with !callees — benny.kra / detail
  437. [RISCV] Allow parsing of bare symbols with offsets — lewis.revill / detail
  438. [ASTImporter] Import ctor initializers after setting flags. — 1.int32 / detail
  439. Fix typos in LibASTImporter.rst — gabor.marton / detail
  440. [clangd] Simplify code of ClangdLSPServer::onCommand — ibiryukov / detail
  441. [ARM] Don't pretend we know how to generate MVE VLDn — david.green / detail
  442. [X86] Add test case for future MULFIX DAG combine folds. NFC — bjorn.a.pettersson / detail
  443. [DAGCombiner] Add simple folds for SMULFIX/UMULFIX/SMULFIXSAT — bjorn.a.pettersson / detail
  444. Revert [CodeGen] Do the Simple Early Return in block-placement pass to — flo / detail
  445. [clangd] suppress -Wparentheses warning: suggest parentheses around ‘&&’ — hokein / detail
  446. [x86] add tests for fdiv with variable operands; NFC — spatel / detail
  447. [x86] fix fdiv test; NFC — spatel / detail
  448. [ARM] Correct register for narrowing and widening MVE loads and stores. — david.green / detail
  449. [libcxxabi] __cxa_guard_require: test guard byte with != 0 instead of == — maskray / detail
  450. [X86] Remove unused include. NFCI. — llvm-dev / detail
  451. [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta — paul.walker / detail
  452. [X86][SSE] Add shuffled load tests from PR16739 — llvm-dev / detail
  453. [lldb][NFC] Allow for-ranges on StringList — Raphael Isemann / detail
  454. [RISCV] Convert registers from unsigned to Register — luismarques / detail
  455. Revert rL369112 : [X86][SSE] Add shuffled load tests from PR16739 — llvm-dev / detail
  456. [X86][SSE] Add shuffled load tests from PR16739 — llvm-dev / detail
  457. [InstCombine] Shift amount reassociation in bittest: trunc-of-shl — lebedev.ri / detail
  458. [ARM] MVE sext of a load is free — david.green / detail
  459. [TextAPI] Update reader to be supported by lib/Object — cyndy_ishida / detail
  460. [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y) — e.menezes / detail
  461. [lld][Hexagon]Support HEX_32 when building shared objects — sidneym / detail
  462. Relanding r368987 [AArch64] Change location of frame-record within — sander.desmalen / detail
  463. [clang-doc] Fix records in global namespace — diegoaat97 / detail
  464. [Hexagon] Generate min/max instructions for 64-bit vectors — kparzysz / detail
  465. [CodeGen/Analysis] Intrinsic llvm.assume should not block tail call — carrot / detail
  466. [X86] Alphabetize pass initialization definitions. NFCI. — llvm-dev / detail
  467. [SLP] add tests for PR16739; NFC — spatel / detail
  468. [ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT — maskray / detail
  469. Fix llvm-config support for CMake build-mode-style builds — jordan_rose / detail
  470. [ADT] Remove llvm::make_unique utility. — Jonas Devlieghere / detail
  471. [SLPVectorizer] Make the scheduler aware of the TreeEntry operands. — vasileios.porpodas / detail
  472. Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for — paul.walker / detail
  473. [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta — paul.walker / detail
  474. [X86] combineExtractWithShuffle - handle extract(truncate(x), 0) — llvm-dev / detail
  475. [AArch64][GlobalISel] Lower G_SHUFFLE_VECTOR with 1 elt src and 1 elt — aemerson / detail
  476. [X86] resolveTargetShuffleInputs - add DemandedElts variant. NFCI. — llvm-dev / detail
  477. [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp — gzchen / detail
  478. Escape % in printf format string. — eugeni.stepanov / detail
  479. [clang-doc] Redesign of generated HTML files — diegoaat97 / detail

clang-d324029-ga0a47d8ac11-t976-b976.tar.gz (Aug 12, 2019 5:25:51 PM)

  1. Fix ClangASTContext::CreateParameterDeclaration to not call addDecl — syaghmour / detail
  2. Remove support for unsupported MSVC versions — JF Bastien / detail
  3. Revert "Remove support for unsupported MSVC versions" — JF Bastien / detail
  4. [clang-doc] Add flag to continue after mapping errors — diegoaat97 / detail
  5. [lit] Fix 42812: lit test suite can no longer be run stand-alone — stilis / detail
  6. Revert Fix and test inter-procedural register allocation for ARM — douglas.yung / detail
  7. [PowerPC][NFC][MachinePipeliner] Add some regression testcases — Jinsong Ji / detail
  8. The MinGW linker supports response files — rnk / detail
  9. Remove support for unsupported MSVC versions — JF Bastien / detail
  10. [BPF] Handling type conversions correctly for CO-RE — yhs / detail
  11. [X86] Use the pointer VT for the Scale node when lowering x86 — craig.topper / detail
  12. [GlobalISel] Check LLT size matches memory size for non-truncating — aemerson / detail
  13. [ScalarizeMaskedMemIntrin] Bitcast the mask to the scalar domain and use — craig.topper / detail
  14. Re-commit "[GlobalISel] Add legalization support for non-power-2 loads — aemerson / detail
  15. Add brackets to remove warnings about ambiguous 'else's. — isanbard / detail
  16. Temporarily Revert "[PowerPC][NFC][MachinePipeliner] Add some regression — echristo / detail
  17. [ORC] Remove some old debugging output from a unit test. — Lang Hames / detail
  18. [clang-doc] Update documentation — diegoaat97 / detail
  19. MCRegister/Register: DenseMapInfo should take `const T &` — daniel_l_sanders / detail
  20. [ELF] Move R_*_IRELATIVE from .rel[a].plt to .rel[a].dyn unless — maskray / detail
  21. Add OMPT support for teams construct — hansang.bae / detail
  22. [InstSimplify] Add test case to show bad sign bit handling for integer — craig.topper / detail
  23. [Attributor] Fix dereferenceable callsite argument initialization — uenoku.tokotoko / detail
  24. Simplify <type_traits> implementations. — eric / detail
  25. Emit diagnostic if an inline asm constraint requires an immediate — isanbard / detail
  26. [lit] Actually run tests for internal env command — jdenny.ornl / detail
  27. [lit] Print internal env commands — jdenny.ornl / detail
  28. [Thumb] Fix invalid symbol redefinition due to duplicated jumptable — nikita.ppv / detail
  29. Finish moving TargetRegisterInfo::isVirtualRegister() and friends to — sylvestre / detail
  30. IR: print value numbers for unnamed function arguments — Tim Northover / detail
  31. Speculative Compilation — praveenvelliengiri / detail
  32. [Attributor][NFC] run clang-format on Attributor.cpp — sstipanovic / detail
  33. IR: Cleanup after test to silence ASAN builds — Tim Northover / detail
  34. Use switch instead of series of comparisons — sepavloff / detail
  35. [yaml2obj][tests] Replace 8-byte `od` conversion with 1-byte conversion — hubert.reinterpretcast / detail
  36. Fixup r367321 "Ask confirmation when `git llvm push` will push multiple — Mehdi Amini / detail
  37. Revert accidental change to __member_pointer_traits_imp. — eric / detail
  38. [JITLink] Fix error message formatting. — Lang Hames / detail
  39. [JITLink] Add support for MachO/x86-64 UNSIGNED relocs with length=2. — Lang Hames / detail
  40. [WebAssembly] Fix allocsize attribute in sjlj lowering — keno / detail
  41. [x86] change free truncate hook to handle only simple types (PR42880) — spatel / detail
  42. [JITLink] Fix an overly-wide read in the MachO/x86-64 test case. — Lang Hames / detail
  43. [DAGCombiner] Prevent the combine added in r367710 from creating illegal — craig.topper / detail
  44. [Transforms] Do not drop !preserve.access.index metadata — yhs / detail
  45. Suppress -Wctad-maybe-unsupported on types w/o deduction guides. — eric / detail
  46. [SelectionDAG] Add node creation debug message to getMemIntrinsicNode. — craig.topper / detail
  47. [OpenMP 5.0] libomptarget interface for declare mapper functions. — llvm / detail
  48. [OpenMP 5.0] Codegen support for user-defined mappers. — llvm / detail
  49. Revert "[OpenMP 5.0] Codegen support for user-defined mappers." — llvm / detail
  50. [X86] Consistently use MVT::i8 for the constant operand of BLENDI and — craig.topper / detail
  51. [llvm-objdump] Re-commit r367284. — pozulp.llvm / detail
  52. Revert "Suppress -Wctad-maybe-unsupported on types w/o deduction — eric / detail
  53. [ELF][test] Delete redundant version-script-*.s tests — maskray / detail
  54. [Parser] Emit descriptive diagnostic for misplaced pragma — sepavloff / detail
  55. [ARM] MVE big endian bitcasts — david.green / detail
  56. [ORC] Remove a layer of indirection when locking the mutex. NFCI. — benny.kra / detail
  57. [X86] SimplifyMultipleUseDemandedBits - Add target shuffle support — llvm-dev / detail
  58. Fix signed/unsigned comparison warning. NFC. — llvm-dev / detail
  59. [X86] lowerShuffleAsSpecificZeroOrAnyExtend - use undef PSHUFB mask — llvm-dev / detail
  60. [clang-tidy] Add FixItHint for performance-noexcept-move-constructor — Zinovy Nis / detail
  61. [UpdateTestChecks] Add end_function directive to regex matcher for — llvm-dev / detail
  62. Regenerate test for an upcoming patch. — llvm-dev / detail
  63. [TargetLowering][X86] Teach SimplifyDemandedVectorElts to replace the — craig.topper / detail
  64. [Attributor][NFC] Invalid DerefState is at fixpoint — jdoerfert / detail
  65. [Attributor][NFC] Simplify common pattern wrt. fixpoints — jdoerfert / detail
  66. [Attributor][Fix] Resolve various liveness issues — jdoerfert / detail
  67. [Attributor][NFC] Improve debug output — jdoerfert / detail
  68. [Attributor][NFC] Create some attributes earlier — jdoerfert / detail
  69. [Driver] Support for disabling sanitizer runtime linking — phosek / detail
  70. gn build: Merge r367756 — nicolasweber / detail
  71. [Driver] Always use -z separate-code with lld on Fuchsia — phosek / detail
  72. [Driver] Derive Fuchsia Linker directly from Tool — phosek / detail
  73. [X86] Fix a bad early out in combineExtInVec that prevented recursive — craig.topper / detail
  74. [Driver] Don't disable -fsanitizer-coverage for safe-stack or — phosek / detail
  75. Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC — maskray / detail
  76. [DWARF] Change DWARFDebugLoc::Entry::Loc from SmallVector<char, 4> to — maskray / detail
  77. [Analyzer] Iterator Checkers - Fix for Crash on Iterator Differences — adam.balogh / detail
  78. compiler-rt: Rename .cc file in test/lsan to .cpp — maskray / detail
  79. Adds a warning when an inline Doxygen comment has no argument — gribozavr / detail
  80. [clangd] Fix error message with incorrect — sam.mccall / detail
  81. [clangd] Expose -offset-encoding=utf-32, which has been implemented for — sam.mccall / detail
  82. Remove usage of usleep in generic code — pavel / detail
  83. build_llvm_package.bat: Set PYTHON_EXECUTABLE (PR42724) — hans / detail
  84. Revert "[llvm-objdump] Re-commit r367284." — pozulp.llvm / detail
  85. [LLVM][Alignment] Introduce Alignment Type in DataLayout — gchatelet / detail
  86. Reland: Fix and test inter-procedural register allocation for ARM — oliver.stannard / detail
  87. Remove SymbolVendor::GetSymtab — pavel / detail
  88. AMDGPU: add missing llvm.amdgcn.{raw,struct}.buffer.atomic.{inc,dec} — nhaehnle / detail
  89. [LLVM][Alignment] Introduce Alignment In CallingConv — gchatelet / detail
  90. [OpenCL] Fix vector literal test broken in rL367675. — anastasia.stulova / detail
  91. ObjectFile[ELF]: Refactor gnu_debuglink interface — pavel / detail
  92. [InstCombine] Added mempcpy tests [NFC] — david.bolvansky / detail
  93. Sidestep false positive due to a matching git repository name — rofirrim / detail
  94. [TLI][NFC] Fixed typo — david.bolvansky / detail
  95. [LLVM][Alignment] Introduce Alignment Type — gchatelet / detail
  96. [CrossTU][NFCI] Refactor loadExternalAST function — endre.fulop / detail
  97. [lldb][NFC] Remove unimplemented — Raphael Isemann / detail
  98. [AArch64] Skip isZIPMask check for masks with an odd number of elements. — flo / detail
  99. [MVT][SVE] Map between scalable vector IR Type and VTs — graham.hunter / detail
  100. [llvm/Object] - Remove ELFFile<ELFT>::getSection(const StringRef — grimar / detail
  101. [DAGCombiner][x86] prevent infinite loop from truncate/extend transforms — spatel / detail
  102. Fix PDB tests after r367820 — pavel / detail
  103. [COFF] Omit automatically imported symbols from the symbol table — martin / detail
  104. [MinGW] Add an lld specific option for requesting to delay load — martin / detail
  105. [AST] Fix RecursiveASTVisitor visiting implicit constructor — jvikstrom / detail
  106. [clang][NFC] Remove unused private variable 'CI' in — Raphael Isemann / detail
  107. [lldb] Move redundant persistent variable counter to — Raphael Isemann / detail
  108. [lldb][NFC] Clang format GetNextPersistentVariableName signature — Raphael Isemann / detail
  109. gn build: Merge r367839 — nicolasweber / detail
  110. [clangd] Add a callback mechanism for handling responses from client. — hokein / detail
  111. Write the RequiredLibraries for 'all' in LibraryDependencies.inc in a — hans / detail
  112. test-release.sh: Perform the sed substitution on both files (PR42739) — hans / detail
  113. compiler-rt: Rename .cc file in test/hwasan to .cpp — nicolasweber / detail
  114. Changing representation of .cv_def_range directives in Codeview debug — nilanjana.basu87 / detail
  115. compiler-rt: Rename cc files in test/hwasan/TestCases subdirectories as — nicolasweber / detail
  116. [obj2yaml] - Teach tool to dump SHT_NULL sections. — grimar / detail
  117. [MCA][doc] Add a section for the 'Bottleneck Analysis'. — Andrea_DiBiagio / detail
  118. compiler-rt: Rename .cc file in test/dfsan to cpp — nicolasweber / detail
  119. compiler-rt: Rename last few cc files below test/ubsan to cpp — nicolasweber / detail
  120. More follow-up to r367851 — nicolasweber / detail
  121. [lldb][NFC] Fix documentation for — Raphael Isemann / detail
  122. compiler-rt: Rename remaining cc files in test/profile to cpp — nicolasweber / detail
  123. [AArch64] Implement initial SVE calling convention support — cullen.rhodes / detail
  124. [yaml2obj] - Allow overriding sh_entsize for SHT_GNU_versym sections. — grimar / detail
  125. Revert "Changing representation of .cv_def_range directives in Codeview — nilanjana.basu87 / detail
  126. [yaml2obj][tests] Fix overly restrictive od output check — hubert.reinterpretcast / detail
  127. compiler-rt: Rename cc files below test/sanitizer_common to cpp — nicolasweber / detail
  128. Move LangStandard*, InputKind::Language to Basic — ro / detail
  129. [lldb][clang] Reflect LangStandard.h move to clang/Basic — ro / detail
  130. [Driver] Properly use values-X[ca].o, values-xpg[46].o on Solaris — ro / detail
  131. Changing representation of .cv_def_range directives in Codeview debug — nilanjana.basu87 / detail
  132. gn build: Merge r367864 — nicolasweber / detail
  133. [ELF] Consistently prioritize non-* wildcards overs "*" in version — maskray / detail
  134. AMDGPU/GlobalISel: Don't reject shader types — Matthew.Arsenault / detail
  135. AMDGPU/GlobalISel: Alternative mappings for constants — Matthew.Arsenault / detail
  136. AMDGPU: Correct behavior of f16/i16 non-format store intrinsics — Matthew.Arsenault / detail
  137. Try to fix OOB tests on at least Windows after r367642 — nicolasweber / detail
  138. Try to fix OOB tests more on Windows after r367642 — nicolasweber / detail
  139. Undo what looks like an unintentional change in r367829 — nicolasweber / detail
  140. [InstCombine] add test for shl-zext with extra use; NFC — spatel / detail
  141. [ELF][test] Reorganize some tls-*.s tests — maskray / detail
  142. [llvm-readelf] Fix core note descriptions — rupprecht / detail
  143. AMDGPU: Correct behavior of f16 buffer loads — Matthew.Arsenault / detail
  144. [InstCombine] add extra use constraint for shl-zext fold — spatel / detail
  145. AMDGPU/LoadStoreOptimizer: Set the correct offset whem merging MMOs — tstellar / detail
  146. [AMDGPU] Use S_DENORM_MODE for gfx10 — Austin.Kerbow / detail
  147. [InstCombine] add tests for shl+mul; NFC — spatel / detail
  148. [llvm-readobj][test] Add llvm-readobj style test cases for r367878 — rupprecht / detail
  149. [AST] Fix RecursiveASTVisitorTest multiline string literal. NFC — david.green / detail
  150. compiler-rt: Rename cc files below test/asan to cpp — nicolasweber / detail
  151. Follow-up for r367863 and r367656 — nicolasweber / detail
  152. [docs] document -Weveything more betterer — JF Bastien / detail
  153. gn build: run "gn format" — nicolasweber / detail
  154. [InstCombine] combine mul+shl separated by zext — spatel / detail
  155. [AST] Fix buildbot failure because of raw string inside macro from — jvikstrom / detail
  156. Revert "Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC" — jan.vesely / detail
  157. [AArch64] Set preferred function alignment to 16 bytes on Neoverse N1 — pablo.barrio / detail
  158. NATIVE tablegen needs to depend on target tablegen — chris.bieneman / detail
  159. NFC. Documenting Native tablegen dependency — chris.bieneman / detail
  160. [InstCombine][NFC] Tests for non-canonical clamp-like pattern — lebedev.ri / detail
  161. [AArch64] Expand bcmp() for small block lengths — e.menezes / detail
  162. Fix build when both gtest death tests and LLVM_NODISCARD are available. — dblaikie / detail
  163. Robustify update_test_checks.py to non-autogened tests, and add a mode — listmail / detail
  164. [X86] Enable -x86-experimental-vector-widening-legalization by default. — craig.topper / detail
  165. [libc++] Take 2: Integrate the PSTL into libc++ — Louis Dionne / detail
  166. Revert "[AMDGPU] Use S_DENORM_MODE for gfx10" — gribozavr / detail
  167. [OpenMP 5.0] Codegen support for user-defined mappers. — llvm / detail
  168. [DirectoryWatcher][linux] Fix build for older kernels — Jan Korous / detail
  169. Try to fix failing AMDGPU disasm test, both Lin/Win agree this is 0 not — rnk / detail
  170. [llvm-lipo] Implement -segalign — anusha.basana / detail
  171. Revert "Try to fix failing AMDGPU disasm test, both Lin/Win agree this — gribozavr / detail
  172. [libomptarget] Harmonize emitting CUDA errors and general debug — llvm / detail
  173. compiler-rt: Remove .cc from all lit config files — nicolasweber / detail
  174. Fix another uninit read found by msan after r367829 — nicolasweber / detail
  175. [docs] don't use :option: for C++ compat — JF Bastien / detail
  176. Register/MCRegister: Add conversion operators to avoid use of implicit — daniel_l_sanders / detail
  177. [compiler-rt] Move FDP to include/fuzzer/FuzzedDataProvider.h for easier — mmoroz / detail
  178. [docs] don't use :option: for Wall Wextra — JF Bastien / detail
  179. [AArch64][GlobalISel] Inline tiny memcpy et al at -O0. — aemerson / detail
  180. Fix MSVC error after r367916 — daniel_l_sanders / detail
  181. [ORC] Work around broken GCC/libstdc++ by adding an explicit conversion. — Lang Hames / detail
  182. [lldb][NFC] Refactor ClangUserExpression::UpdateLanguageForExpr — Raphael Isemann / detail
  183. [Sanitizer] Linux refactor shadow huge page mode handling — David CARLIER / detail
  184. llvm-symbolizer: Untag addresses in object files by default. — peter / detail
  185. [NFC][pstl] Remove stray semi-colon — Louis Dionne / detail
  186. BMI2 support is indicated in bit eight of EBX, not nine. See Intel SDM, — echristo / detail
  187. [libc++] Accept any non-zero return for .fail.cpp tests — Louis Dionne / detail
  188. [Attributor][Fix] Keep invokes if handlers catch asynchronous exceptions — jdoerfert / detail
  189. Revert Register/MCRegister: Add conversion operators to avoid use of — daniel_l_sanders / detail
  190. [Attributor][Fix] Do not remove instructions during manifestation — jdoerfert / detail
  191. [WebAssembly] Fix conflict between ret legalization and sjlj — keno / detail
  192. [lldb][NFC] Document and refactor — Raphael Isemann / detail
  193. Add "REQUIRES: x86-registered-target" to test. — peter / detail
  194. hwasan: Untag global variable addresses in tests. — peter / detail
  195. [OpenMP] Fix broken build due to new OMPT tests — hansang.bae / detail
  196. [Sema] Add -Wpointer-compare — George Burgess IV / detail
  197. Add a note to the release not about a potentially breaking optimization — listmail / detail
  198. [llvm-readelf] Support dumping of stack sizes sections with readelf — Wolfgang.Pieb / detail
  199. Build libfuzzer libcxx-static with PIC — yikong / detail
  200. [ORC] Add CPU name and sub-target features to detectHost — diego.caballero / detail
  201. [GlobalISel][CallLowering] Rename isArgumentHandler() -> — aemerson / detail
  202. [CompilerType] Remove an unused function. — davide / detail
  203. [Sema] attempt to appease buildbots after r367940 — George Burgess IV / detail
  204. [Attributor] Deduce the "no-return" attribute for functions — jdoerfert / detail
  205. [OpenMP] Add support for GOMP_*_nonmonotonic_* functions — jonathan.l.peyton / detail
  206. [Attributor][NFCI] Avoid duplication of the InformationCache reference — jdoerfert / detail
  207. [Attributor] Use proper ID for attribute lookup — jdoerfert / detail
  208. [Attributor] Make abstract attributes stateless — jdoerfert / detail
  209. [Attributor] Introduce the IRAttribute helper struct — jdoerfert / detail
  210. Reverting D65760/r367944 due to buildbot failure. — puyan / detail
  211. [NFC] Remove useless static — JF Bastien / detail
  212. [CMake] Remove check for the readline target. — Jonas Devlieghere / detail
  213. [CompilerType] Simplify the interface a bit more.. — davide / detail
  214. [clang-doc] Fix link generation — diegoaat97 / detail
  215. Silence ubsan after r367926. — peter / detail
  216. [RISCV] Custom legalize i32 operations for RV64 to reduce signed — shiva0217 / detail
  217. [Attributor] Provide a generic interface to check live instructions — jdoerfert / detail
  218. [compiler-rt] Appending COMPILER_RT_LIBCXX_PATH -isystem include for — puyan / detail
  219. Revert "[CompilerType] Simplify the interface a bit more.." — davide / detail
  220. [Attributor][Fix] Add const qualifier — jdoerfert / detail
  221. Re-commit Register/MCRegister: Add conversion operators to avoid use of — daniel_l_sanders / detail
  222. [Attributor][NFC] Outline common pattern into helper method — jdoerfert / detail
  223. Fix another MSVC issue after 367965 — daniel_l_sanders / detail
  224. [NFC][DirectoryWatchedTests] Unlocks mutexes before signaling condition — puyan / detail
  225. Re-commit: [AMDGPU] Use S_DENORM_MODE for gfx10 — Austin.Kerbow / detail
  226. gn build: Merge r367917 — nicolasweber / detail
  227. gn build: Leave a comment why "-gen-searchable-table" tablegen()s are — nicolasweber / detail
  228. gn build: Add AMDGPU target — nicolasweber / detail
  229. Builtins: Start adding half versions of math builtins — Matthew.Arsenault / detail
  230. CodeGen: Migration to using Register — Matthew.Arsenault / detail
  231. Remove unused function 'SetMangledCounterparts' (NFC) — Jonas Devlieghere / detail
  232. [Gardening] Remove dead code from IOHandler (NFC) — Jonas Devlieghere / detail
  233. [Gardening] Remove dead code from ScriptInterpreterPython (NFC) — Jonas Devlieghere / detail
  234. [Gardening] Remove dead code from ASTDumper (NFC) — Jonas Devlieghere / detail
  235. [clang][DirectoryWatcher] Adding llvm::Expected error handling to — puyan / detail
  236. [LV][NFC] Share the LV illegality reporting with LoopVectorize. — hideki.saito / detail
  237. [Driver] Prioritize SYSROOT/usr/include over RESOURCE_DIR/include on — maskray / detail
  238. [Driver] Introduce -stdlib++-isystem — smeenai / detail
  239. Fix line table resolution near the end of a section — pavel / detail
  240. [DirectoryWatcher] Fix asserts Mac builds — smeenai / detail
  241. Use "isa" since the variable isn't used. — isanbard / detail
  242. [llvm/test/Object] - Cleanup and move out the yaml2obj tests. — grimar / detail
  243. [lldb][NFC] Remove unnecessary cast in ClangUserExpression — Raphael Isemann / detail
  244. [compiler-rt] Reverting r367962 due to Fuchsia bot build-breakage. — puyan / detail
  245. SymbolVendorELF: Perform build-id lookup even without a debug link — pavel / detail
  246. Revert r367941 "Add a note to the release not about a potentially — hans / detail
  247. [compiler-rt] Implement getrandom interception — Vitaly Buka / detail
  248. [LLVM][Alignment] Introduce Alignment In GlobalObject — gchatelet / detail
  249. SymbolVendor: Remove passthrough methods — pavel / detail
  250. [LLVM][Alignment] Introduce Alignment In Attributes — gchatelet / detail
  251. AArch64: use xzr/wzr for constant 0 in GlobalISel. — Tim Northover / detail
  252. test-release.sh: Reorder sed commands for the binary comparison — hans / detail
  253. [UpdateTestChecks] Apply some string concatenation cleanup — maskray / detail
  254. [UpdateTestChecks] Fix an incorrect %s added in r368006 — maskray / detail
  255. [SelectionDAG] Extend base addressing modes supported by — cullen.rhodes / detail
  256. Add User docs for ASTImporter — gabor.marton / detail
  257. ObjectFileELF: permit thread-local sections with overlapping file — pavel / detail
  258. Change two unnecessary uses of llvm::size(C) to C.size() — maskray / detail
  259. [Strict FP] Allow custom operation actions — ulrich.weigand / detail
  260. Support 64-bit offsets in utility classes (1/5) — ikudrin / detail
  261. Switch LLVM to use 64-bit offsets (2/5) — ikudrin / detail
  262. [X86][SSE] Add tests for min/max partial reduction — llvm-dev / detail
  263. [X86][SSE] Enable min/max partial reduction — llvm-dev / detail
  264. Try to unbreak buildbots after r368014 — ikudrin / detail
  265. [clangd] Compute scopes eagerly in IncludeFixer — ibiryukov / detail
  266. [CrossTU] Handle case when no USR could be generated during Decl search. — 1.int32 / detail
  267. [yaml2obj] Move core yaml2obj code into lib and include for use in unit — alexbrachetmialot / detail
  268. [X86] SimplifyMultipleUseDemandedBits - target shuffles might not be — llvm-dev / detail
  269. [llvm/test/Object] Remove redundant test case. NFC — simon / detail
  270. [AArch64] NFC: Add generic StackOffset to describe scalable offsets. — sander.desmalen / detail
  271. gn build: Merge r368021 — nicolasweber / detail
  272. [X86][SSE] Call SimplifyMultipleUseDemandedBits on PACKSS/PACKUS — llvm-dev / detail
  273. gn build: Merge r368024 — nicolasweber / detail
  274. [InstCombine] add tests for binop with FMF with select operands; NFC — spatel / detail
  275. Improve MSVC visualizations so the parser shows where we are in the code — mike / detail
  276. Fixed failing test cases — alexbrachetmialot / detail
  277. AArch64: bail instead of asserting on unexpected type in G_CONSTANT 0. — Tim Northover / detail
  278. [MachO] Update LLD to use 64-bit offsets with DataExtractor (3/5) — ikudrin / detail
  279. Update LLDB to follow changes in llvm::DWARFDebugNames::NameIndex (4/5) — ikudrin / detail
  280. Revert "gn build: Merge r368021" — gribozavr / detail
  281. Revert "[yaml2obj] Move core yaml2obj code into lib and include for use — gribozavr / detail
  282. Revert "Fixed failing test cases" — gribozavr / detail
  283. [ELF] Make binding (weak or non-weak) logic consistent for Undefined and — maskray / detail
  284. [ELF][ARM] Fix /DISCARD/ of section with .ARM.exidx section — peter.smith / detail
  285. [StructurizeCFG] Enable -structurizecfg-relaxed-uniform-regions by — tpr.llvm / detail
  286. [TargetLowering] SimplifyMultipleUseDemandedBits - return UNDEF for — llvm-dev / detail
  287. [test/Object] - Cleanup the Object\obj2yaml.test a bit. — grimar / detail
  288. [XCOFF][MC] report_fatal_error before dereferencing NULL — hubert.reinterpretcast / detail
  289. [AArch64] NFC: Generalize emitFrameOffset to support more than byte — sander.desmalen / detail
  290. [CMake] Add mapping for IBM XL -qnoeh and -qnortti — hubert.reinterpretcast / detail
  291. [libc++] Use the monorepo in the macos-trunk CI script — Louis Dionne / detail
  292. [AST] Traverse attributes inside DEF_TRAVERSE_DECL macro — ibiryukov / detail
  293. [Path] Fix bug in make_absolute logic — Jonas Devlieghere / detail
  294. [compiler-rt] Rename FuzzedDataProvider.h to .hpp and other minor — mmoroz / detail
  295. Re-land D65760/r367944 — diego.caballero / detail
  296. [NFC][EarlyCSE] Pre-commit unary FNeg tests. — cameron.mcinally / detail
  297. [ELF][PPC] Don't relax ifunc toc-indirect accesses to toc-relative — maskray / detail
  298. Fixed toHalfOpenFileRange assertion fail — shauryab98 / detail
  299. [InstCombine] Shift amount reassociation: shl-trunc-shl pattern — lebedev.ri / detail
  300. [TableGen] FieldInit: improve assertion message — lebedev.ri / detail
  301. [X86] Move CPU features for Barcelona/K10 out of line — lebedev.ri / detail
  302. [Syntax] Do not add a node for 'eof' into the tree — ibiryukov / detail
  303. [globalisel] Allow SrcOp to convert an APInt and render it as an — daniel_l_sanders / detail
  304. [modulemap] exclude a non-module friendly header — Kristina Brooks / detail
  305. [GISel]: Add GISelKnownBits analysis — aditya_nandakumar / detail
  306. [lldb][CMake] Generating Xcode projects — stefan.graenitz / detail
  307. [GISel]: Fix trivial build breakage — aditya_nandakumar / detail
  308. [OPENMP][OFFLOADING]Fix the test, NFC. — a.bataev / detail
  309. Various build fixes for lldb on MinGW — hhb / detail
  310. [clang-doc] Add index in each info html file — diegoaat97 / detail
  311. Added Delta IR Reduction Tool — diegof30 / detail
  312. Teach some warnings to respect gsl::Pointer and gsl::Owner attributes — xazax.hun / detail
  313. Revert "Added Delta IR Reduction Tool" — gribozavr / detail
  314. Add order-dependencies to object libraries — chris.bieneman / detail
  315. [SymbolFile] Remove commented out method — apl / detail
  316. [Attributor][modulemap] Revert r368064 but fix the build — Kristina Brooks / detail
  317. [libc++] Use the monorepo for the back-deployment testing scripts — Louis Dionne / detail
  318. [WebAssembly] Fix null pointer in createInitTLSFunction — gzchen / detail
  319. [X86] Remove uses of the -x86-experimental-vector-widening-legalization — craig.topper / detail
  320. [X86] Remove tests for -x86-experimental-vector-widening-legalization — craig.topper / detail
  321. [X86] Add more extract subvector cost model tests for smaller element — craig.topper / detail
  322. [lldb][NFC] Minor refactorings to (Clang)ExpressionSourceCode — Raphael Isemann / detail
  323. [clangd] Unfold SourceLocation flattening from findNameLoc in — sam.mccall / detail
  324. Revert [InstCombine] Shift amount reassociation: shl-trunc-shl pattern — rnk / detail
  325. [clang-scan-deps] Implementation of dependency scanner over minimized — Alex Lorenz / detail
  326. [clang-doc] Fix paths of js in import tags — diegoaat97 / detail
  327. [pstl][libc++] Provide uglified header names for interface headers — Louis Dionne / detail
  328. [NFC][ScopBuilder] Move addUserAssumptions to ScopBuilder — adamski.dominik / detail
  329. [Sanitizer] Linux explicitally migrate shadow mapping to Transparent — David CARLIER / detail
  330. [X86] Don't allow combineSIntToFP to create v2i32 vectors after type — craig.topper / detail
  331. fix clang-scan-deps test to match filepaths on Windows — Alex Lorenz / detail
  332. [Sanitizer] little typo — David CARLIER / detail
  333. IR: Disable verifier check for GlobalValues with private linkage named — peter / detail
  334. gn build: Merge r368070. — peter / detail
  335. gn build: Merge r368086. — peter / detail
  336. gn build: Merge r368054. — peter / detail
  337. gn build: Merge r368052. — peter / detail
  338. gn build: Merge r368065. — peter / detail
  339. [NFC][ScopBuilder] Move buildDomains and its callees to ScopBuilder. — adamski.dominik / detail
  340. [WebAssembly] Lower ASan constructor priority on Emscripten — gzchen / detail
  341. hwasan: Instrument globals. — peter / detail
  342. [TSAN] Fix tsan on FreeBSD after D54889 — arichardson.kde / detail
  343. Delay diagnosing asm constraints that require immediates until after — isanbard / detail
  344. Use parenthses to silence warning. — isanbard / detail
  345. Revert "[X86] Remove uses of the — mitchphillips / detail
  346. Revert "[X86] Enable -x86-experimental-vector-widening-legalization by — mitchphillips / detail
  347. [clang][DirectoryWatcher][NFC] Swapping asserts for llvm fatal_error in — puyan / detail
  348. Revert "[X86] Add more extract subvector cost model tests for smaller — mitchphillips / detail
  349. Regenerate mmx-arith.ll. — mitchphillips / detail
  350. Require lld for hwasan tests. — peter / detail
  351. Added Delta IR Reduction Tool — diegof30 / detail
  352. TLI: darwin does not support _bcmp — Alex Lorenz / detail
  353. [Bugpoint redesign] Added Pass to Remove Global Variables — diegof30 / detail
  354. [Gardening] Remove more dead code from IOHandler — Jonas Devlieghere / detail
  355. Added Tool as Dependency to tests & fixed warnings — diegof30 / detail
  356. Upstream a few small Apple changes to debugserver - arm64_32, Catalyst — Jason Molenda / detail
  357. [yaml2obj] Move core yaml2obj code into lib and include for use in unit — alexbrachetmialot / detail
  358. Fixes failing test cases on Windows for rL368119 — alexbrachetmialot / detail
  359. Append an executable suffix to the toolchain tool paths on Windows — gkistanova / detail
  360. Reverts commit r368117, r368115 and r368112 — phosek / detail
  361. [X86] Limit vpermil2pd/vpermil2ps immediates to 4 bits in the assembly — craig.topper / detail
  362. [MachineCSE][NFC] Use 'profitable' rather than 'beneficial' to name — lkail / detail
  363. Detect HAVE_SYS_TYPES_H in lldb — hhb / detail
  364. [X86] Use isInt<8> to simplify some code. NFC — craig.topper / detail
  365. [X86] Allow any 8-bit immediate to be used with bt/btc/btr/bts memory — craig.topper / detail
  366. [RISCV] Remove duplicated logic when determining the target ABI — rofirrim / detail
  367. Force check prof branch_weights consistency in — yevgeny.rouban / detail
  368. [ARM][LowOverheadLoops] Revert after read/write — sam.parker / detail
  369. Re-submit r367649: Improve raw_ostream so that you can "write" colors — ruiu / detail
  370. Remove inclusion of a private gmock header from a test — gribozavr / detail
  371. [unittests] Mark private gmock headers with IWYU pragmas. NFC — ibiryukov / detail
  372. [clangd] Added a TextMate theme parser to the vscode extension. — jvikstrom / detail
  373. [llvm-readelf] --notes: move 'Data size' column left by 1 — maskray / detail
  374. [ELF.h] - Check the case when e_shstrndx=SHN_XINDEX, but the — grimar / detail
  375. [obj2yaml] - MIPS: move and improve testing of the e_flags — grimar / detail
  376. [InstCombine] Recommit: Shift amount reassociation: shl-trunc-shl — lebedev.ri / detail
  377. [ELF][X86] Add --no-show-raw-insn and -soname to some i386 tests — maskray / detail
  378. [lldb][NFC] Fix typo in 368066 — stefan.graenitz / detail
  379. Simplify error message output. NFC. — ruiu / detail
  380. Handle /align option. — ruiu / detail
  381. [ARM] Generate MVE VHADDs/VHSUBs — oliver.cruickshank / detail
  382. gsl::Owner/gsl::Pointer: Add implicit annotations for some std types — M.Gehre / detail
  383. [lldb][CMake] Fix one more detail in r368066 — stefan.graenitz / detail
  384. Replace llvm::MutexGuard/UniqueLock with their standard equivalents — benny.kra / detail
  385. [lldb][NFC] Remove commented out code in — Raphael Isemann / detail
  386. [lldb][CMake] Workaround debugserver code-signing issue in generated — stefan.graenitz / detail
  387. [clang] Fix mismatched args constructing AddressSpaceAttr. — bikineev / detail
  388. [ELF] Fix splitting messages for duplicate symbols. — ikudrin / detail
  389. A more robust way of testing debug_line parser near the end of module — pavel / detail
  390. [TargetLowering] SimplifyDemandedBits - call — llvm-dev / detail
  391. Remove support for 32-bit offsets in utility classes (5/5) — ikudrin / detail
  392. Replace non-recursive sys::Mutex users with std::mutex — benny.kra / detail
  393. [Support] Base SmartMutex on std::recursive_mutex — benny.kra / detail
  394. ObjectFileELF: Remove NT_*** constants — pavel / detail
  395. [Mips] Instruction `sc` now accepts symbol as an argument — simon / detail
  396. [mips] Use isMicroMips() function to check enabled feature flag. NFC — simon / detail
  397. [mips] Make a couple of class methods plain static functions. NFC — simon / detail
  398. [ASTImporter] Do not import FunctionTemplateDecl in record twice. — 1.int32 / detail
  399. [AArch64][WinCFI] Do not pair callee-save instructions in — sander.desmalen / detail
  400. [X86] EltsFromConsecutiveLoads - early out for non-byte sized memory — llvm-dev / detail
  401. GlobalISel: factor common code from translateCall and translateInvoke. — Tim Northover / detail
  402. [RISCV][NFC] Document RISC-V-specific assembly constraints — selliott / detail
  403. ProcessElfCore: Remove linux and freebsd NT_*** constants — pavel / detail
  404. Try to fix windows build bots after r368153. — ikudrin / detail
  405. [OPENMP]Add standard macro value _OPENMP for OpenMP 5.0. — a.bataev / detail
  406. [EarlyCSE] Add support for unary FNeg to EarlyCSE — cameron.mcinally / detail
  407. [OPENMP]Set default version to OpenMP 4.5. — a.bataev / detail
  408. Remove LLVM mutexes from clang in favor of std::mutex — benny.kra / detail
  409. [UpdateTestChecks] Update tests option — david.bolvansky / detail
  410. [InstCombine] Propagate fast math flags through selects — jay.foad / detail
  411. [InstCombine] Add a TODO comment — jay.foad / detail
  412. Use forceinline. Necessary for nvcc to inline small functions within the — jonathanchesterfield / detail
  413. gn build: Merge r368119 — nicolasweber / detail
  414. gn build: Merge r368158 — nicolasweber / detail
  415. [ARM] Expand CTPOP intrinsic for MVE — oliver.cruickshank / detail
  416. [ExecutionContext] Return the target/process byte order. — Jonas Devlieghere / detail
  417. [Driver] Expand the executable path in the target create output — Jonas Devlieghere / detail
  418. Recommit r367901 "[X86] Enable — craig.topper / detail
  419. Recommit r368079 "[X86] Remove uses of the — craig.topper / detail
  420. Recommit r368081 "[X86] Add more extract subvector cost model tests for — craig.topper / detail
  421. Code completion should not ignore default parameters in functions. — sam.mccall / detail
  422. Support: Remove needless allocation when getMainExecutable() calls — nicolasweber / detail
  423. [clang][NFC] Fix typo in matcher comment — yitzhakm / detail
  424. DebugInfo/DWARF: Normalize DWARFObject members on the DWARF spec section — dblaikie / detail
  425. API update for change to LLVM's lib/DebugInfo/DWARF — dblaikie / detail
  426. [DataLayout] Check StackNatural and FunctionPtr alignments. — flo / detail
  427. [OpenMP][libomptarget] Add support for unified memory for regular maps — gheorghe-teod.bercea / detail
  428. [SCEV] Return zero from computeConstantDifference(X, X) — nikolai.bozhenov / detail
  429. [Attributor] Introduce checkForAllReadWriteInstructions(...). — sstipanovic / detail
  430. [ValueTracking] When calculating known bits for integer abs, make sure — craig.topper / detail
  431. [Tooling] Expose ExecutorConcurrency option. — diegoaat97 / detail
  432. [LoopVectorize][X86] Add test case for missed vectorization from — craig.topper / detail
  433. Fix indentation — dblaikie / detail
  434. Add support for deterministically linked binaries on macOS to lldb. — nicolasweber / detail
  435. [NFC] Added tests for x/fabs(X) fold — david.bolvansky / detail
  436. [NFC] Fixed newly added tests — david.bolvansky / detail
  437. Add target requirements for those bots which don't handle x86. — isanbard / detail
  438. [pstl] Make sure we install all of PSTL's include/ directory — Louis Dionne / detail
  439. Revert r367501 "Create unique, but identically-named ELF sections..." — llvm / detail
  440. [Symbol] Remove commented out code from CompileUnit — apl / detail
  441. [clang-doc] Parallelize reducing phase — diegoaat97 / detail
  442. [X86] Add test cases for missed opportunities to use pack instructions — craig.topper / detail
  443. [CommandObject] Remove unused function — Jonas Devlieghere / detail
  444. [clang-doc] Add second index for sections within info's content — diegoaat97 / detail
  445. [X86] Allow pack instructions to be used for 512->256 truncates when — craig.topper / detail
  446. [NFC][LICM] Pre-commit test for unary FNeg support in LICM. — cameron.mcinally / detail
  447. DebugInfo/DWARF: Remove unused return type from — dblaikie / detail
  448. [libc++] Take 3: Do not cleverly link against libc++abi just because it — Louis Dionne / detail
  449. Added Delta IR Reduction Tool — diegof30 / detail
  450. [LoopVectorize][X86] Clamp interleave factor if we have a known constant — craig.topper / detail
  451. [libc++] Remove temporary hack for D63883 — Louis Dionne / detail
  452. Revert Added Delta IR Reduction Tool — diegof30 / detail
  453. [HWASan] Use LLD for check-hwasan. — mitchphillips / detail
  454. Restrict the NetBSD ASan TSD fallback to !ASAN_DYNAMIC — n54 / detail
  455. Add a test demonstrating DWARF parse failures are not causing lld to — dblaikie / detail
  456. [llvm-readobj][test] Add baseline tests for FreeBSD/AMD/AMDGPU note — rupprecht / detail
  457. [Attributor] Provide easier checkForallReturnedValues functionality — jdoerfert / detail
  458. [Attributor][NFC] Avoid unnecessary liveness queries — jdoerfert / detail
  459. [Attributor] Introduce a state wrapper class — jdoerfert / detail
  460. [Attributor][NFC] Code simplification and style normalization — jdoerfert / detail
  461. Adjust a ValueObjectChild's offset when the child is a bitfield — Adrian Prantl / detail
  462. [Attributor][Stats] Locate statistics tracking with the attributes — jdoerfert / detail
  463. [Attributor][NFC] remove leftover and format code — jdoerfert / detail
  464. gdb-index: Wire up str_offsets section to avoid incorrect error message — dblaikie / detail
  465. Recommit "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG" with a — akhuang / detail
  466. [Docs] Fix (incorrect) code highlighting — Jonas Devlieghere / detail
  467. [ScalarizeMaskedMemIntrin] Add test case for expanding scatter. — craig.topper / detail
  468. [llvm-lipo] Update llvm-lipo docs for -info -thin -create -replace — anusha.basana / detail
  469. Update fix-it hints for std::move warnings. — rtrieu / detail
  470. Revert "[libc++] Take 3: Do not cleverly link against libc++abi just — Louis Dionne / detail
  471. [llvm-strip] Support --strip-sections — Wolfgang.Pieb / detail
  472. Add LLD as a requirement for hwasan tests because of change in r368111. — douglas.yung / detail
  473. [Utility] Remove unused function 'GetMatchSpanningIndices' — Jonas Devlieghere / detail
  474. Inline diagnostic text into .td file.  NFC. — rtrieu / detail
  475. [Driver] Move LIBRARY_PATH before user inputs — maskray / detail
  476. Update generate_netbsd_ioctls.awk for NetBSD 9.99.3 — n54 / detail
  477. Sync ioctl(2) list with NetBSD 9.99.3 — n54 / detail
  478. [GISel][NFC]: Make members of CombinerHelper accessible in derived — aditya_nandakumar / detail
  479. [Materializer] Remove wrong SetSizeAndAlignmentFromType(). — davide / detail
  480. [X86] Add CMOV_FR32X and CMOV_FR64X to the isCMOVPseudo function. — craig.topper / detail
  481. [Driver] Delete XFAIL: windows-msvc after D65880/r368245 — maskray / detail
  482. Temporarily bump minimum compiler version — JF Bastien / detail
  483. Revert "Temporarily bump minimum compiler version" — JF Bastien / detail
  484. [ARM] Rejig MVE load store tests. NFC — david.green / detail
  485. [ARM] Tighten up VLDRH.32 with low alignments — david.green / detail
  486. [X86] Remove -x86-experimental-vector-widening-legalization command line — craig.topper / detail
  487. [diagtool] Use `operator<<(Colors)` to print out colored output. — ruiu / detail
  488. [llvm-readobj/libObject] - Introduce a custom warning handler for — grimar / detail
  489. [clangd] Fix implicit template instatiations appearing as topLevelDecls. — jvikstrom / detail
  490. [ELF] - An attemp to fix builld bit after r368260 — grimar / detail
  491. Remove Module::GetSymbolVendor — pavel / detail
  492. [ARM] Select VFMA — sam.tebbs / detail
  493. Fix PDB unit tests for the GetSymbolVendor deletion — pavel / detail
  494. Remove xcode-specific Config.h — pavel / detail
  495. [Extract] Fixed SemicolonExtractionPolicy for SwitchStmt and SwitchCase — shauryab98 / detail
  496. Add a missing include to SymbolFilePDBTests.cpp — pavel / detail
  497. [yaml2obj/obj2yaml] - Add a basic support for extended section indexes. — grimar / detail
  498. [llcm-readobj] - Fix BB after t368272. — grimar / detail
  499. [MIPS GlobalISel] Select jump_table and brjt — petar.avramovic / detail
  500. [MCA] Remove dependency from InstrBuilder in mca::Context. NFC — Andrea_DiBiagio / detail
  501. [TargetLowering] SimplifyDemandedBits - call — llvm-dev / detail
  502. [clangd] Correct the documentation, NFC. — hokein / detail
  503. [X86][SSE] Add x64 load use test case — llvm-dev / detail
  504. Fix LLDB_CONFIGURATION_DEBUG builds for the GetSymbolVendor removal — pavel / detail
  505. [clang-format] fix crash involving invalid preprocessor line — krasimir / detail
  506. Fix check in tools/gold/X86/strip_names.ll regarding unnamed args — bjorn.a.pettersson / detail
  507. [clangd] Remove a function accidently being added in rL368261. — hokein / detail
  508. [clangd] Don't include internal gtest header. — hokein / detail
  509. [pstl] Add a __pstl_config_site header to record the CMake configuration — Louis Dionne / detail
  510. [pstl] Error out when the backend is left unspecified — Louis Dionne / detail
  511. [libc++abi] Fix tests when pstl is enabled — Louis Dionne / detail
  512. [clangd] Added an early return from VisitMemberExpr in — jvikstrom / detail
  513. [ARM] Set default alignment to 64bits — diogo.sampaio / detail
  514. ObjectFileELF: Convert a unit test to a lit test — pavel / detail
  515. [Reassociate] add more tests with negative FP constants; NFC — spatel / detail
  516. [clangd] Added semantic highlighting support for primitives. — jvikstrom / detail
  517. [X86][SSE] matchBinaryPermuteShuffle - split INSERTPS combines — llvm-dev / detail
  518. [ELF][AArch64] Support for movz, movk tprel relocations — peter.smith / detail
  519. [lldb][CMake] Disable modules in Xcode projects — stefan.graenitz / detail
  520. [OPENMP]Add support for analysis of linear variables and step. — a.bataev / detail
  521. Add llvm.licm.disable metadata — tcorring / detail
  522. [FileCheck] Add missing includes in header — thomasp / detail
  523. [ELF][AArch64] Delete two unused RUN lines from aarch64-movw-tprel.s — maskray / detail
  524. Implement hh_mm_ss from P1466R3. Reviewed as — mclow.lists / detail
  525. [RISCV] Minimal stack realignment support — selliott / detail
  526. [FIX][NFC] Update clang sema test — diogo.sampaio / detail
  527. [pstl] Remove stray semicolon — Louis Dionne / detail
  528. [RISCV] Allow ABI Names in Inline Assembly Constraints — selliott / detail
  529. [ARM] MVE big endian loads/stores — david.green / detail
  530. [ARM] Add support for MVE pre and post inc loads and stores — david.green / detail
  531. Enable assembly output of local commons for AIX — daltenty / detail
  532. [X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle — llvm-dev / detail
  533. [X86] XFormVExtractWithShuffleIntoLoad - handle shuffle mask scaling — llvm-dev / detail
  534. [lldb][NFC] Simplify return in MaybeHandleVariable — Raphael Isemann / detail
  535. [lld][WebAssembly] Add optional symbols after input file handling — sbc / detail
  536. [ObjC][ARC] Upgrade calls to ARC runtime functions to intrinsic calls if — Akira / detail
  537. [NFC][pstl] Run clang-format — Louis Dionne / detail
  538. [clang-doc] Protect Index with mutex during reducing and generation — diegoaat97 / detail
  539. lit: Use a License classifier that pypi will accept — tstellar / detail
  540. [libc++] Fix environment variable passing in libc++'s `SSHExecutor` — Louis Dionne / detail
  541. Re-commit "[PowerPC][NFC][MachinePipeliner] Add some regression — Jinsong Ji / detail
  542. [clang] Update `ignoringElidableConstructorCall` matcher to ignore — yitzhakm / detail
  543. [AArch64] Do not emit '#' before immediates in inline asm — pirama / detail
  544. [globalisel][legalizer] Attempt to write down the minimal legalization — daniel_l_sanders / detail
  545. clang: Diag running out of file handles while looking for files — nicolasweber / detail
  546. Recommit Devirtualize destructor of final class. — yamauchi / detail
  547. [X86] Make CMPXCHG16B feature imply CMPXCHG8B feature. — craig.topper / detail
  548. [lld][WebAssembly] Use createGlobalVariable helper function. NFC. — sbc / detail
  549. [clang][NFC] Move matcher ignoringElidableConstructorCall's tests to — yitzhakm / detail
  550. [llvm-mc] Add reportWarning() to MCContext — bcain / detail
  551. [clang] Add no-warn support for Wa — bcain / detail
  552. lit: Bump version to 0.10.0 — tstellar / detail
  553. Remove unused and undocumented data_offset parameter (NFC) — Adrian Prantl / detail
  554. [compiler-rt] Add ConsumeProbability and ConsumeFloatingPoint methods to — mmoroz / detail
  555. [clang] add REQUIRES to driver test case — bcain / detail
  556. gn build: Merge r368331. — peter / detail
  557. [clang] add REQUIRES: linux to driver test case — bcain / detail
  558. [analyzer] Fix scan-build's plist output in plist-html mode. — Artem Dergachev / detail
  559. [MBP] Disable aggressive loop rotate in plain mode — carrot / detail
  560. Fix a comment which was incorrect. — jingham / detail
  561. [Attributor][NFC] Include only what is needed — jdoerfert / detail
  562. [LegalizeTypes] Remove SplitVSETCC helper and just call — craig.topper / detail
  563. [SelectionDAG][X86] Move setcc mask splitting for — craig.topper / detail
  564. SymbolFileDWARF: Unconditionally scan through clang modules. NFCish — Adrian Prantl / detail
  565. [lldb][NFC] Directly use StringRef instead of temporary std::string — Raphael Isemann / detail
  566. Fix up fd limit diagnosis code — rnk / detail
  567. [X86] Improve codegen of v8i64->v8i16 and v16i32->v16i8 truncate with — craig.topper / detail
  568. [LICM] Support unary FNeg in LICM — cameron.mcinally / detail
  569. hwasan: Add a code model check for tagged globals. — peter / detail
  570. [lldb] Fix HAVE_LIBCOMPRESSION — hhb / detail
  571. [lldb][NFC] Move to StringRef in some places in IRForTarget — Raphael Isemann / detail
  572. Mark clang-scan-deps test as requiring thread support — rnk / detail
  573. Linker: Add support for GlobalIFunc. — peter / detail
  574. Added Delta IR Reduction Tool — diegof30 / detail
  575. [lldb][NFC] Modernize IRForTarget::CreateResultVariable — Raphael Isemann / detail
  576. [InstCombine][NFC] Added comments about constants in tests for pow->exp2 — david.bolvansky / detail
  577. [WebAssembly][lld] control __data_end export with config->shared — gzchen / detail
  578. Fix llvm.aarch64.irg properties. — eugeni.stepanov / detail
  579. Fix -DBUILD_SHARED_LIBS=ON build after rL368358 — sbc / detail
  580. Remove else-after-return — dblaikie / detail
  581. Change the return type of UpgradeARCRuntimeCalls to void — Akira / detail
  582. [lld][WebAssembly] Don't create optional symbols when outputing an — sbc / detail
  583. [asan_symbolize] Fix bug where the frame counter was not incremented. — dan / detail
  584. ELF: Move sections referred to by __start_/__stop_ symbols into the main — peter / detail
  585. DebugInfo/DWARF: Provide some (pretty half-hearted) error handling — dblaikie / detail
  586. DebugInfo: Explicitly handle errors when parsing unit DIEs — dblaikie / detail
  587. [ELF] Expand regions for gaps due to explicit address — maskray / detail
  588. [clang-scan-deps] Add minimizer support for C++20 modules. — bigcheesegs / detail
  589. [analyzer] ConditionBRVisitor: Fix HTML PathDiagnosticPopUpPieces — dabis.csaba98 / detail
  590. [analyzer] CastValueChecker: Model castAs(), getAs() — dabis.csaba98 / detail
  591. [X86] Remove vector promotion handling from the ReplaceNodeResults — craig.topper / detail
  592. [X86] Simplify ReplaceNodeResults handling for UDIV/UREM/SDIV/SREM for — craig.topper / detail
  593. [X86] Simplify ReplaceNodeResults handling for — craig.topper / detail
  594. [X86] Simplify ReplaceNodeResults handling for FP_TO_SINT/UINT for — craig.topper / detail
  595. [X86] Now unreachable handling for f64->v2i32/v4i16/v8i8 bitcasts from — craig.topper / detail
  596. [X86] Merge v2f32 and v2i32 gather/scatter handling in — craig.topper / detail
  597. [X86] Simplify ISD::LOAD handling in ReplaceNodeResults and ISD::STORE — craig.topper / detail
  598. [PowerPC] [Clang] Port SSE3, SSSE3 and SSE4 intrinsics to PowerPC — qiucf / detail
  599. [clang][NFC] Consolidating usage of "FinalPhase" in — puyan / detail
  600. [X86] Remove ISD::SETCC handling from ReplaceNodeResults. — craig.topper / detail
  601. [X86] Remove handler for (U/S)(ADD/SUB)SAT from ReplaceNodeResults. — craig.topper / detail
  602. [X86] Remove DAG combine expansion of extending masked load and — craig.topper / detail
  603. [X86] Remove stale FIXME from combineMaskedStore. NFC — craig.topper / detail
  604. Fix rpath for MacOS/iOS — hhb / detail
  605. Use ASSERT_THAT_ERROR instead of logAllUnhandledErrors/exit — gribozavr / detail
  606. [X86] Remove code that expands truncating stores from combineStore. — craig.topper / detail
  607. [InstSimplify] Report "Changed" also when only deleting dead — bjorn.a.pettersson / detail
  608. [AST] No longer visiting CXXMethodDecl bodies created by compiler when — jvikstrom / detail
  609. [clangd] Fixed printTemplateSpecializationArgs not printing partial — jvikstrom / detail
  610. [ARM][ParallelDSP] Replace SExt uses — sam.parker / detail
  611. [lldb][NFC] Use range-based for-loops in IRForTarget — Raphael Isemann / detail
  612. [lldb][NFC] Remove last C string uses from IRForTarget — Raphael Isemann / detail
  613. GlobalISel: pack various parameters for lowerCall into a struct. — Tim Northover / detail
  614. [ELF] For VS-style diagnostics, prefer printing full paths in the — ikudrin / detail
  615. [llvm-readobj] - Remove unwrapOrError(ErrorOr<T> EO) helper. — grimar / detail
  616. Add SVE opaque built-in types — richard.sandiford / detail
  617. [lldb][NFC] Clean up logging in IRForTarget — Raphael Isemann / detail
  618. Minidump/Windows: Fix module lookup — pavel / detail
  619. [lldb] Refactor guard variable checks in IRForTarget — Raphael Isemann / detail
  620. AArch64: support TLS on Darwin platforms in GlobalISel. — Tim Northover / detail
  621. [lldb][NFC] Fix warning about missing switch cases — Raphael Isemann / detail
  622. [lldb][NFC] Unify InstrList typedef in IRForTarget — Raphael Isemann / detail
  623. [llvm-readobj] - Remove deprecated unwrapOrError(Expected<T> EO). — grimar / detail
  624. [clangd] Use raw rename functions to implement the rename. — hokein / detail
  625. [llvm-readobj] - Remove `error(llvm::Expected<T> &&E)` — grimar / detail
  626. [AArch64] Set pref. func. align to 8 bytes on Neoverse E1 & Cortex-A65 — pablo.barrio / detail
  627. [MCA] Add flag -show-encoding to llvm-mca. — Andrea_DiBiagio / detail
  628. [Mips][Codegen] Fix fast-isel mixing of FGR64 and AFGR64 registers — simon / detail
  629. [clangd] Added highlighting for constructor initializers. — jvikstrom / detail
  630. [llvm-readelf]Print filename for multiple inputs and fix formatting — jh7370 / detail
  631. [MCA] Fix MSVC 19.16 build with libc++ — Andrea_DiBiagio / detail
  632. [GlobalOpt] prevent crashing on large integer types (PR42932) — spatel / detail
  633. [X86][SSE] Swap X86ISD::BLENDV inputs with an inverted selection mask — llvm-dev / detail
  634. Title: Loop Cache Analysis Summary: Implement a new analysis to estimate — whitney.uwaterloo / detail
  635. [sanitizer] Update symbolizer/scripts/global_symbols.txt — benny.kra / detail
  636. [MachinePipeliner] Avoid indeterminate order in FuncUnitSorter — Jinsong Ji / detail
  637. [lldb][NFC] Remove unused IRForTarget::BuildRelocation — Raphael Isemann / detail
  638. [DAGCombiner] remove redundant fold for X*1.0; NFC — spatel / detail
  639. [lldb][NFC] Assert on invalid cursors positions when creating — Raphael Isemann / detail
  640. [AArch64][x86] add tests for pessimization of expression with X*2.0 — spatel / detail
  641. More warnings regarding gsl::Pointer and gsl::Owner attributes — xazax.hun / detail
  642. [NFC] Added tests for D65898 — david.bolvansky / detail
  643. [compiler-rt] FuzzedDataProvider: use C++ headers only instead of a — mmoroz / detail
  644. [Transforms] Rename hasUnaryFloatFn() and getUnaryFloatFn() (NFC) — e.menezes / detail
  645. Title: Improve Loop Cache Analysis LIT tests. Summary: Make LIT tests — whitney.uwaterloo / detail
  646. Print reasonable representations of type names in llvm-nm, readelf and — sunil_srivastava / detail
  647. [Transforms] Fix comments for hasFloatFn() and getFloatFnName() (NFC) — e.menezes / detail
  648. [Transforms] Add a emitBinaryFloatFnCall() version that fetches the — e.menezes / detail
  649. Even more warnings utilizing gsl::Owner/gsl::Pointer annotations — xazax.hun / detail
  650. Rename PCH/leakfiles test so it runs on bots. — sam.mccall / detail
  651. [InstCombine] Refactor optimizeExp2() (NFC) — e.menezes / detail
  652. [TableGen] Add "InitValue": Handle operands with set bit values in — daniel_l_sanders / detail
  653. Fix a build bot failure and multiple warnings instances for range base — xazax.hun / detail
  654. [clang-format] Add link to source code in file definitions — diegoaat97 / detail
  655. [libFuzzer] Merge: print stats after reading the output corpus dir. — mmoroz / detail
  656. Revert Fix a build bot failure and multiple warnings instances for range — xazax.hun / detail
  657. Revert Even more warnings utilizing gsl::Owner/gsl::Pointer annotations — xazax.hun / detail
  658. [Docs][llvm-strip] Add help text to llvm-strip rst doc — pozulp.llvm / detail
  659. [libomptarget] Remove duplicate RTLRequiresFlags per device — hahnjo / detail
  660. gn build: Merge r368358. — peter / detail
  661. gn build: Merge r368392. — peter / detail
  662. gn build: Merge r368402. — peter / detail
  663. gn build: Merge r368439. — peter / detail
  664. gn build: Merge r368432. — peter / detail
  665. CodeGen: ensure 8-byte aligned String Swift CF ABI — Saleem Abdulrasool / detail
  666. Revert "[asan_symbolize] Fix bug where the frame counter was not — mitchphillips / detail
  667. [Docs][llvm-strip] Fix an indentation issue. — pozulp.llvm / detail
  668. Update test to explicity test with -fintegrated-as and — douglas.yung / detail
  669. Don't diagnose errors when a file matches an include component — rnk / detail
  670. [sanitizers] MSVC warning disable for clean build     - — matthew.mcgovern / detail
  671. [MC] Don't recreate a label if it's already used — isanbard / detail
  672. [CodeGen] Require a name for a block addr target — isanbard / detail
  673. [X86] Remove custom handling for extloads from LowerLoad. — craig.topper / detail
  674. Fix compilation after SVN r368476 — martin / detail
  675. Revert "[sanitizers] MSVC warning disable for clean build" and follow-up — echristo / detail
  676. [clangd] Give absolute path to clang-tidy and include-fixer. HintPath — sam.mccall / detail
  677. Test commit. — twoh / detail
  678. [clang-doc] Generate an HTML index file — diegoaat97 / detail
  679. Revert the test commit — twoh / detail
  680. Remove variable only used in an assert. — echristo / detail
  681. [globalisel] Add G_SEXT_INREG — daniel_l_sanders / detail
  682. [OpenMP][libomptarget] Add support for close map modifier — gheorghe-teod.bercea / detail
  683. Remove leftover MF->dump()'s from r368487 that break release builds — daniel_l_sanders / detail
  684. [DAGCombiner] exclude x*2.0 from normal negation profitability rules — spatel / detail
  685. [OpenMP] Add support for close map modifier in Clang — gheorghe-teod.bercea / detail
  686. [Sanitizer][Darwin] Add interceptor for malloc_zone_from_ptr — jlettner / detail
  687. [Bugpoint redesign] Fix nonlocal URI link in doc — diegof30 / detail
  688. Add missing REQUIRES to r368487 — daniel_l_sanders / detail
  689. cfi-icall: Allow the jump table to be optionally made non-canonical. — peter / detail
  690. Detects whether RESOURCE_TYPE_IO is defined. — hhb / detail
  691. Small format fix — hhb / detail
  692. clangd: use -j for background index pool — sam.mccall / detail
  693. Attempt to reapply "Even more warnings utilizing gsl::Owner/gsl::Pointer — xazax.hun / detail
  694. [clangd] Disallow extraction of expression-statements. — sam.mccall / detail
  695. Fix a false positive warning when initializing members with gsl::Owners. — xazax.hun / detail
  696. [MemDep] allow to select block-scan-limit when constructing — fedor.sergeev / detail
  697. [X86] Fix stack probe issue on windows32. — yuanke.luo / detail
  698. [Sanitizer] Reenable getusershell interception — David CARLIER / detail
  699. [X86] Improve the diagnostic for larger than 4-bit immediate for — craig.topper / detail
  700. [X86] Match the IR pattern form movmsk on SSE1 only targets where v4i32 — craig.topper / detail
  701. [clang-format] Add SpaceInEmptyBlock option for WebKit — owenpiano / detail
  702. [modulemap] Add AArch64SVEACLETypes.def — Kristina Brooks / detail
  703. [CodeGen] Do the Simple Early Return in block-placement pass to optimize — shkzhang / detail
  704. [clang] Fixed x86 cpuid NSC signature — Raphael Isemann / detail
  705. [lldb] Fix dynamic_cast by no longer failing on variable without — Raphael Isemann / detail
  706. [Reassociate] try harder to convert negative FP constants to positive — spatel / detail
  707. [TableGen] Correct the shift to the proper bit width. — michael.hliao / detail
  708. [NFC][CodeGen] Modify the PI++ to ++PI in — shkzhang / detail
  709. [X86][SSE] Lower shuffle as ANY_EXTEND_VECTOR_INREG — llvm-dev / detail
  710. Add support for FreeBSD's LD_32_LIBRARY_PATH — dimitry / detail
  711. [NFC][InstCombine] Tests for shift amount reassociation in bittest with — lebedev.ri / detail
  712. [InstCombine] Shift amount reassociation in bittest: drop pointless — lebedev.ri / detail
  713. [InstCombine] Shift amount reassociation in bittest: relax one-use check — lebedev.ri / detail
  714. [NFC][InstCombine] Tests for shift amount reassociation in bittest with — lebedev.ri / detail
  715. [InstCombine][NFC] Use SimplifyAddInst() instead of — lebedev.ri / detail
  716. [X86] Remove some code from combineShuffle that seems largely — craig.topper / detail
  717. [X86] Remove some more code from combineShuffle that is no longer needed — craig.topper / detail
  718. test commit — aktoon / detail
  719. Revert "test commit" — aktoon / detail
  720. [LICM] Make Loop ICM profile aware — aktoon / detail
  721. Fix __clang_call_termiante's argument for foreign exceptions — aheejin / detail
  722. Properly handle reference initialization when detecting gsl::Pointer — xazax.hun / detail
  723. [ARM] Permit auto-vectorization using MVE — david.green / detail
  724. [MVE] Don't try to unroll vectorised MVE loops — david.green / detail
  725. [ARM] MVE spill vector test. NFC — david.green / detail
  726. [NFC][CodeGen] Use while loop instead for loop in — shkzhang / detail
  727. [ELF] Remove unnecessary assignment to `used` in replaceWithDefined — maskray / detail
  728. Properly detect temporary gsl::Owners through reference initialization — xazax.hun / detail
  729. [ELF] Remove redundant !isPreemptible in Symbol::computeBinding() — maskray / detail
  730. [ELF] Remove redundant isDefined() in Symbol::computeBinding() and — maskray / detail
  731. [X86] Don't use SplitOpsAndApply for ISD::USUBSAT. — craig.topper / detail
  732. [X86] Simplify some of the type checks in combineSubToSubus. — craig.topper / detail
  733. [clang-format] Expand AllowShortBlocksOnASingleLine for WebKit — owenpiano / detail
  734. [SelectionDAG] Widen vector results of SMULFIX/UMULFIX/SMULFIXSAT — bjorn.a.pettersson / detail
  735. [X86] Remove redundant ';' chars ending IR lines in lit tests. NFC — bjorn.a.pettersson / detail
  736. Fix pass dependency for LICM — aktoon / detail
  737. [X86] Support -march=tigerlake — pengfei.wang / detail
  738. [X86] Add some reduction add test cases that show sub-optimal code on — craig.topper / detail
  739. [CrossTU] Fix problem with CrossTU AST load limit and progress messages. — 1.int32 / detail
  740. [clangd] Highlighting auto variables as the deduced type. — jvikstrom / detail
  741. Improve codegen for deque. — eric / detail
  742. [CostModel][X86][AArch64] Add some tests for extractvalue — lebedev.ri / detail
  743. [clangd] Drop diags from non-written #include. — hokein / detail
  744. [ELF] Remove unnecessary assignment to `isPreemptible` in — maskray / detail
  745. [ASTImporter] Fix for import of friend class template with definition. — 1.int32 / detail
  746. [OpenCL] Fix lang mode predefined macros for C++ mode. — anastasia.stulova / detail
  747. [TargetLowering] SimplifyDemandedBits - call — llvm-dev / detail
  748. [InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): avoid — lebedev.ri / detail
  749. [llvm-strings] Improve testing of llvm-strings — jh7370 / detail
  750. NFC. Remove trailing whitespace in test — jh7370 / detail
  751. [X86][SSE] Add test showing missing compute known bits PSADBW handling — llvm-dev / detail
  752. [X86][SSE] ComputeKnownBits - add basic PSADBW handling — llvm-dev / detail
  753. Cleanup unused variable. — Andrey.Churbanov / detail
  754. Revert r368509 "[CodeGen] Do the Simple Early Return in block-placement — hans / detail
  755. [OpenCL] Ignore parentheses for sampler initialization — sven.vanhaastregt / detail
  756. [CrossTU] User docs: remove temporary limiation with macro expansion — gabor.marton / detail
  757. [clangd] Remove highlightings coming from non topLevelDecls from — jvikstrom / detail
  758. [llvm-ar][test] Correct tests marked as expected fails — gbreynoo / detail
  759. [CodeGen] Do the Simple Early Return in block-placement pass to optimize — shkzhang / detail
  760. [DebugInfo] Remove call sites when eliminating unreachable blocks — david.stenberg / detail
  761. [lldb][NFC] Add unit test for lldb_private::DiagnosticManager — Raphael Isemann / detail
  762. [clangd] Added the vscode SemanticHighlighting feature code but did not — jvikstrom / detail
  763. [InstCombine] x /c fabs(x) -> copysign(1.0, x) — david.bolvansky / detail
  764. [RISCV] Fix ICE in isDesirableToCommuteWithShift — selliott / detail
  765. [llvm-ar] Accept file paths with windows format slashes — gbreynoo / detail
  766. Revert r368565: [CodeGen] Do the Simple Early Return in block-placement — shkzhang / detail
  767. [X86][SSE] Add test showing missing demanded elts PSADBW handling — llvm-dev / detail
  768. [llvm-readobj] Downgrade 'PT_DYNAMIC segment offset + size exceeds the — rupprecht / detail
  769. [lldb] Remove undocumented return value from — Raphael Isemann / detail
  770. [llvm-ar][NFC] Fix buildbot — rupprecht / detail
  771. Revert r368339 "[MBP] Disable aggressive loop rotate in plain mode" — hans / detail
  772. Remove outdated comment about clang not populating src2dst_offset — benny.kra / detail
  773. [clangd] Separate chunks with a space when rendering markdown — ibiryukov / detail
  774. [lldb][NFC] Minor fixes for lldb_private::DiagnosticManager — Raphael Isemann / detail
  775. [InstCombine] add tests for scalar-select-of-vectors; NFC — spatel / detail
  776. [XCOFF] Use a single symbolic constant for the size of an embeded name. — sfertile / detail
  777. [scudo][standalone] Minor corrections — kostyak / detail
  778. [ARM] Add or update a number of costmodel tests. NFC — david.green / detail
  779. [ARM] Put some of the TTI costmodel behind hasNeon calls. — david.green / detail
  780. Fix multiple lifetime warning messages for range based for loop — xazax.hun / detail
  781. [ARM] MVE shuffle broadcast costs — david.green / detail
  782. [clangd] Refactor computation of extracted expr in ExtractVariable — sam.mccall / detail
  783. [ASTDump] Add is_anonymous to VisitCXXRecordDecl — syaghmour / detail
  784. [AMDGPU] Printf runtime binding pass — Stanislav.Mekhanoshin / detail
  785. [ARM] sext of a load is free — david.green / detail
  786. [X86] Disable use of zmm registers for varargs musttail calls under — craig.topper / detail
  787. [CostModel][X86][AArch64] Check all 3 cost kinds in aggregates.ll — lebedev.ri / detail
  788. [ThinLTO][AutoFDO] Fix memory corruption due to race condition from thin — aktoon / detail
  789. [NFC][PowerPC] Add the test case shrink-wrap.mir and shrink-wrap.ll for — shkzhang / detail
  790. [builtins] MSVC warning disable for clean build     - — matthew.mcgovern / detail
  791. [libc++] Implement CTAD for std::tuple — Louis Dionne / detail
  792. [Sema] Require a complete type for __builtin_bit_cast operands — erik.pilkington / detail
  793. gn build: Merge r368592 — nicolasweber / detail
  794. [clang-doc] Generate HTML links for children namespaces/records — diegoaat97 / detail
  795. [asan_symbolize] Fix bug where the frame counter was not incremented. — dan / detail
  796. libcxxabi: Rename .hpp files to .h — nicolasweber / detail
  797. small follow-up to r368604 — nicolasweber / detail
  798. [X86] Replace call to isTruncStoreLegalOrCustom with isTruncStoreLegal. — craig.topper / detail
  799. [X86] Simplify creation of saturating truncating stores. — craig.topper / detail
  800. [X86] Add a paranoia type check to the code that detects AVG patterns — craig.topper / detail
  801. [X86] Remove unreachable code from LowerTRUNCATE. NFC — craig.topper / detail
  802. [Sema] Check __builtin_bit_cast operand for completeness before — erik.pilkington / detail
  803. Revert "Disable MachO TBD write tests for Windows." — Juergen Ributzka / detail
  804. Fix Wnewline-eof after r368598 — nicolasweber / detail
  805. [Symbol] GetTypeBitAlign() should return None in case of failure. — davide / detail
  806. Revert "[lldb] Fix dynamic_cast by no longer failing on variable without — stilis / detail
  807. Revert "[lldb] Refactor guard variable checks in IRForTarget" — stilis / detail
  808. [libFuzzer] Merge: print feature coverage number as well. — mmoroz / detail
  809. [GISel]: Fix a bug in KnownBits where we should have been using — aditya_nandakumar / detail
  810. [GWP-ASan] Update backtrace function signature. — mitchphillips / detail
  811. [CompilerType] Pass an ExecutionContextScope to GetTypeBitAlign. — davide / detail
  812. [Attributor] Make the InformationCache an Attributor member — jdoerfert / detail
  813. [Attributor][NFC] Add IntegerState raw_ostream << operator — jdoerfert / detail
  814. [X86] Allow combineTruncateWithSat to use pack instructions for i16->i8 — craig.topper / detail
  815. Title: Fix build warning for operator<< when using GCC 7. Authored By: — whitney.uwaterloo / detail
  816. [Attributor] Use the cached data layout directly — jdoerfert / detail
  817. [AMDGPU] Use PredicateControl in MIMGBaseOpcode. NFC. — Stanislav.Mekhanoshin / detail
  818. [webassembly] Apply llvm-prefer-register-over-unsigned from clang-tidy — daniel_l_sanders / detail
  819. [aarch64] Apply llvm-prefer-register-over-unsigned from clang-tidy to — daniel_l_sanders / detail
  820. [risc-v] Apply llvm-prefer-register-over-unsigned from clang-tidy to — daniel_l_sanders / detail
  821. [TextAPI] Fix & Add tests for tbd files version 3. — Juergen Ributzka / detail
  822. [WinEH] Fix catch block parent frame pointer offset — rnk / detail
  823. [clang] Update isDerivedFrom to support Objective-C classes 🔍 — mog / detail

clang-d323204-gd021617bf7e-t677-b677.tar.gz (Aug 2, 2019 3:21:09 PM)

  1. Use labmaster llvm-project in common.groovy for CTMark/test suite jobs

    It should be faster than checking out the monorepo sources from GitHub. — paquette / detail
  2. Update test suite jobs to use monorepo.

    Changes to relevant test generator files:

    common.groovy:
      - Kill all the SVN stuff and use the monorepo instead.
      - Use GIT_SHA/GIT_DISTANCE

    relay.groovy:
      - Set/use GIT_SHA and GIT_DISTANCE instead of LLVM_REV — paquette / detail
  3. Update URL for last-good-build.properties

    The last_good_build.properties file is no longer hosted at

    http://labmaster2.local/artifacts/clang-stage1-configure-RA

    Update it to point to its new home at

    http://labmaster2.local/artifacts/clang-stage1-RA

    (This might cause some things to break, which were relying on LLVM_REV being
    set. Those things were needlessly spinning on the same compiler though, so
    they really ought to be broken anyway.) — paquette / detail
  4. Removed unused llgo builder. — gkistanova / detail
  5. [monorepo_build] Also write GIT_DISTANCE to the last_good_build.properties file — Azharuddin Mohammed / detail
  6. Use https as vcs_protocol for the systemz builder

    This works around firewall issues we were seeing with http. — uweigand / detail
  7. Slave 'lldb-x86_64-fedora': Switch to normal non-debuginfo builds again

    The racy vscode testcases have been dropped from both main and lldb-mi
    repositories anyway so there is nothing left to debug:
    [lldb-dev] [RFC] Removing lldb-mi
    https://lists.llvm.org/pipermail/lldb-dev/2019-July/015209.html — jankratochvil / detail
  8. Slave 'lldb-x86_64-fedora': Reduce build resource requirements — jankratochvil / detail
  9. monorepo_build.py: Update artifact name

    Incorporate the git sha and a sequentially increasing number (which can be
    generated using "git describe" and an annotated tag). — Azharuddin Mohammed / detail
  10. Reland "[zorg] Add a new build script for use with monorepo"

    Summary:
    monorepo-build.py is similar in functionality to the current build.py, but
    with changes to make it work with the monorepo.

    Differential Revision: https://reviews.llvm.org/D64028 — Azharuddin Mohammed / detail
  11. Revert "[zorg] Add a new build script for use with monorepo"

    This reverts commit c842a5a3fa0d0d7d00e206c47d58fba7288111d1 (r365440). — azharudd / detail
  12. Fix typo

    Buiilds -> Builds — Azharuddin Mohammed / detail
  13. [lldb-cmake-standalone] Pre-populate Xcode build-tree cache with Apple-lldb-Xcode

    This cache does not set install-related options. LLVM cannot install from multi-config generators. — stefan.graenitz / detail
  14. Use https for the source code checkout of buildbot running on ppc64be-clang-lnt-test.

    Patch by Kamau Bridgeman.

    Differential Revision: https://reviews.llvm.org/D64221 — gkistanova / detail
  15. Added MailNotifier for builders "llvm-clang-x86_64-win-fast" and "lld-x86_64-ubuntu-fast". — gkistanova / detail
  16. Removed MailNotifiers for removed builders. — gkistanova / detail
  17. [lldb-cmake-standalone] Pre-populate provided LLVM build-tree cache with Apple-lldb-base — stefan.graenitz / detail
  18. [LLDB] getLLDBCMakeBuildFactory: New parameter testTimeout

    It also uses the new long timeout for slave 'lldb-x86_64-fedora'.

    Differential Revision: https://reviews.llvm.org/D64719 — jankratochvil / detail
  19. Added vcs_protocol property to specify what protocol to use for the source code checkout. — gkistanova / detail
  20. [zorg] Add a new build script for use with monorepo

    Summary:
    monorepo-build.py is similar in functionality to the currently build.py, but
    with changes to make it work with the monorepo.

    Reviewers: cmatthews

    Reviewed By: cmatthews

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64028 — azharudd / detail
  21. Remove extraRecipients for sanitizer-x86_64-linux-gn

    Reviewers: eugenis

    Differential Revision: https://reviews.llvm.org/D64363 — Vitaly Buka / detail
  22. Force the LibcxxAndABIBuilder to use libc++abi when building libc++

    (unless otherwise specified) — ericwf / detail
  23. Move GN bot into clang.exp

    Summary:
    Master avoids IRC and emails to bots in category with .exp prefix
    It uses clang.exp to avoid creating new section in console.

    Reviewers: gkistanova, eugenis

    Differential Revision: https://reviews.llvm.org/D63909 — Vitaly Buka / detail
  24. Add sync_source_lists_from_cmake.py step to GN bot — Vitaly Buka / detail
  25. [zorg] Fixes for solaris11-amd64, solaris11-sparcv9  builders

    The first few days of running the Solaris 11 buildbots revealed a couple of
    problems:

    - The builders didn't honor the slaves' configured jobs property, but were
      running with the full parallelism discovered by ninja.  That massivly
      impacts other builders running on these systems, so im explicitly
      configuring jobs in the builder configs, too.

    - Along the same line, the number of paralllel links is the worst problem
      here.  I had experimented with the LLVM_PARALLEL_LINK_JOBS option in
      the past, but only now (in cmake/modules/HandleLLVMOptions.cmake)
      discovered that it's Ninja-only. I'm reducing it to 4 here as an
      experiment.

    - Unlike Solaris/x86, the Solaris/SPARC configure triplet defaults to
      sparc-sun-solaris2.11, which results in clang creating 32-bit
      binaries by default.  It turns out to be an inconsistency in
      config.guess which I'm trying to get resolved.  In the meantime, I'm
      forcing the proper triplet on both sparc and x86.

    Differential Revision: https://reviews.llvm.org/D63757 — ro / detail
  26. Split check-debuginfo and check-lldb into two separate invocations. — Adrian Prantl / detail
  27. Update tests to no longer expect debuginfo-tests in an LLVM build.

    <rdar://problem/51268955> — Adrian Prantl / detail
  28. Add debuginfo-tests to the list of repositories needed by lldb-cmake-matrix. — Adrian Prantl / detail
  29. Tabs to spaces. NFC. — gkistanova / detail
  30. Allow merge build requests for lld-x86_64-win7. — gkistanova / detail
  31. [GN] Report check-clang-tools error as warning — Vitaly Buka / detail
  32. [lldb-cmake-standalone] Streamline labels of build stages — stefan.graenitz / detail
  33. [lldb-cmake-standalone] Build and test CMake-generated Xcode project in Debug mode — stefan.graenitz / detail
  34. [lldb-cmake-standalone] Build provided LLVM tree as RelWithDebInfo — stefan.graenitz / detail
  35. [zorg] Add solaris11-amd64, solaris11-sparcv9 builders

    I'm working to provide two Solaris 11.4 build slaves with a clang builder
    each, one on amd64, the other on sparcv9.  I'm still working out the
    details like parallelism and max_builds, but the attached patch captures
    the basics, intended to be minimal.

    Differential Revision: https://reviews.llvm.org/D63495 — ro / detail
  36. Separate options into separate array elements. — Adrian Prantl / detail
  37. Run the debuginfo-tests as part of the lldb-cmake bot.

    rdar://problem/51799130 — Adrian Prantl / detail
  38. Remove the debuginfo-tests from the default llvm configuration.

    I'm going to make them a separate bot where we have more control over what the host LLDB is.

    rdar://problem/51799130 — Adrian Prantl / detail
  39. Add lit timeout for lldb arm/aarch64 ubuntu builders

    This patch adds a timeout interval of 200 seconds for any hanging tests. — omjavaid / detail
  40. [zorg] Add lldb-arm-ubuntu builder

    This patch adds lldb arm linux builder. It ll run on staging master until tests become stable.

    Differential revision:https://reviews.llvm.org/D63441 — omjavaid / detail
  41. Moved builder lld-x86_64-win7 to another machine.
    Removed slave/worker as-bldslv4. — gkistanova / detail
  42. [lldb-cmake-standalone] CMake-generated Xcode project should build the LLDB.framework — stefan.graenitz / detail
  43. [lldb-cmake-standalone] Invoke llvm-lit manually for CMake-generated Xcode project in order to pass --verbose flag — stefan.graenitz / detail
  44. [lldb-cmake-standalone] Ninja verbose flag is -v — stefan.graenitz / detail
  45. [lldb-cmake-standalone] Remove note about Xcode generator

    This was fixed with https://reviews.llvm.org/rGa0781b6e3a3a — stefan.graenitz / detail
  46. [lldb-cmake-standalone] Enable tests for CMake-generated Xcode project — stefan.graenitz / detail
  47. [lldb-cmake-standalone] Run check-lldb in TERM=vt100 — stefan.graenitz / detail
  48. [lldb-cmake-standalone] Checkout libc++ the same way as other subprojects — stefan.graenitz / detail
  49. [lldb-cmake-standalone] When invoking llmv-lit manually, make sure to build lldb-test-deps first — stefan.graenitz / detail
  50. Add LLVM lab buildslaves for Windows (armv7 target).

    The ARMV7 buildslave configurations for a new hardware in LLVM lab.

    Requested for the production buildbot http://lab.llvm.org:8011

    Patch by Vlad Vereschaka.

    Differential Revision: https://reviews.llvm.org/D63103 — gkistanova / detail
  51. Removed long time off-line builders and slaves.

    Builders:
    llvm-mips-linux
    perf-x86_64-penryn-O3
    clang-openbsd-amd64
    perf-x86_64-penryn-O3-polly-fast
    perf-x86_64-penryn-O3-polly-parallel-fast
    perf-x86_64-penryn-O3-polly-unprofitable
    perf-x86_64-penryn-O3-polly
    perf-x86_64-penryn-O3-polly-detect-only
    lldb-amd64-ninja-freebsd11
    clang-native-aarch64-full
    clang-bpf-build

    Slaves:
    pollyperf1, pollyperf2, pollyperf3, pollyperf4, pollyperf5, pollyperf6, pollyperf7, pollyperf11, pollyperf14, pollyperf15,
    mipsswbrd002, juno-aarch64-01, bpf-build-slave01, lldb-amd64-ninja-freebsd11, openbsd-amd64 — gkistanova / detail
  52. Removed commented out builders and slaves. — gkistanova / detail
  53. [lldb-cmake-standalone] Point lit to build directory not to sources — stefan.graenitz / detail
  54. [lldb-cmake-standalone] Show full test output for failures — stefan.graenitz / detail
  55. [lldb-cmake-standalone] Run tests for lldb-against-buildtree — stefan.graenitz / detail
  56. [lldb-cmake-standalone] Avoid apostrophe in FIXME comment — stefan.graenitz / detail
  57. [lldb-cmake-standalone] Fix unable to find LLDB.framework dir in Xcode build — stefan.graenitz / detail
  58. [lldb-cmake-standalone] Fix LLVMConfig.cmake not found in LLVM install-tree — stefan.graenitz / detail
  59. [lldb-cmake-standalone] Fix loading initial cache script — stefan.graenitz / detail
  60. [lldb-cmnake-standalone] Add stage to build generated Xcode project against buildtree — stefan.graenitz / detail
  61. [lldb-cmnake-standalone] Use CMake cache file, use DESTDIR for ninja install, rename folder to llvm-installtree — stefan.graenitz / detail
  62. Add location for checking out debuginfo-tests — rnk / detail
  63. Try to fix clang windows bot by passing projects variable into run_steps — rnk / detail
  64. Run check-debuginfo on the Windows bot

    cdb tests were recently added, and this will run them continuously. — rnk / detail
  65. [zorg] Add lldb-aarch64-ubuntu builder

    This patch adds lldb aarch64 linux builder. It ll run on staging master
    untill tests become stable and its consistently running green.

    Differential revision: https://reviews.llvm.org/D62473 — omjavaid / detail
  66. Fix build step name — Vitaly Buka / detail
  67. [zorg] Build and test LLVM with GN

    Reviewers: eugenis, morehouse, hctim, thakis, pcc

    Differential Revision: https://reviews.llvm.org/D62020 — Vitaly Buka / detail
  68. builder lldb-x86_64-fedora: more verbosity

    Patch by: Konrad Kleine

    Differential revision: https://reviews.llvm.org/D62182 — jankratochvil / detail
  69. Removed explicit build of lib/LLVMgold.so targer. — gkistanova / detail
  70. Fix cfi-and-supported — Vitaly Buka / detail
  71. [zorg][sanitizers] Update stage1_clang_at_revison to r360832 and build lld — Vitaly Buka / detail
  72. [zorg] Add empty GN buildbot

    Reviewers: eugenis, morehouse, hctim

    Differential Revision: https://reviews.llvm.org/D61965 — Vitaly Buka / detail
  73. [zorg] Switch between from BUILDBOT_MONO_REPO_PATH to BUILDBOT_REVISION — Vitaly Buka / detail
  74. Enabled 3 builds on sanitizer-buildbot1,2
    They looks underutilized. — Vitaly Buka / detail
  75. Revert "Temporary disable modules for LLDB."

    We think we figured out the issue. — Jonas Devlieghere / detail
  76. Temporary disable modules for LLDB.

    We're temporarily disabling modules on the LLDB bots while we
    investigate an issue with the stage-1 host compiler. — Jonas Devlieghere / detail
  77. Updated test build step name to correspond to the actual test targets. — gkistanova / detail

clang-d323204-gd021617bf7e-t677-b677.tar.gz (Aug 2, 2019 3:21:09 PM)

  1. Fix runtest test-suite pgo + multisampling.

    There were are at least 3 issues when combining --pgo with
    --exec-multisample:

    * Make clean was not called between a measurement run and the next
       profiling run.
    * Make all was only called on the first measurement run.
    * Cmake variable TEST_SUITE_PROFILE_USE=OFF was not set on the
       second and later profiling runs.

    These 3 issues are fixed by this patch.

    It is also questionable whether we need to run profile collection
    multiple times. With the instrumentation-based profile collection, the
    profiles should be deterministic between different runs, and hence there
    is no value in collecting profiles multiple times.
    However, if in the future there would also be support for collecting
    profiles e.g. based on performance counter sampling, the profiles might
    be non-deterministic in such a scenario and having multiple profiling
    runs could make a lot more sense. I'm leaving that discussion for
    another time. — kbeyls / detail
  2. in test_suite run_test function, opt and self.opt is same object

    Patch by Lily He

    Differential Revision: https://reviews.llvm.org/D61662 — danilaml / detail

clang-d323204-gd021617bf7e-t677-b677.tar.gz (Aug 2, 2019 3:21:09 PM)

  1. Add geomean column earlier to dataout as Series in compare.py.

    This fixes the following error when using --all.

    Traceback (most recent call last):

        File "test-suite/utils/compare.py", line 374, in <module>
          print_result(data, limit_output, shorten_names, config.show_diff, sortkey)
        File "test-suite/utils/compare.py", line 227, in print_result
          dataout = add_geomean_row(d, dataout)
        File "test-suite/utils/compare.py", line 139, in add_geomean_row
          relative = values1 / values0
        File "pyvenv/lib/python2.7/site-packages/pandas/core/ops.py", line 1583, in wrapper
          result = safe_na_op(lvalues, rvalues)
        File "pyvenv/lib/python2.7/site-packages/pandas/core/ops.py", line 1533, in safe_na_op
          lambda x: op(x, rvalues))
        File "pandas/_libs/algos.pyx", line 690, in pandas._libs.algos.arrmap
        File "pyvenv/lib/python2.7/site-packages/pandas/core/ops.py", line 1533, in <lambda>
          lambda x: op(x, rvalues))
        TypeError: ufunc 'true_divide' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

    Reviewed By: paquette

    Differential Revision: https://reviews.llvm.org/D64066 — fhahn / detail
  2. Skip test earlier if metric is not found in compare.py

    This speeds up processing for inputs with lots of missing metrics, by
    avoiding adding them to names.

    Reviewed By: paquette

    Differential Revision: https://reviews.llvm.org/D64065 — fhahn / detail
  3. Fix more -Werror issues with obsequi. — aemerson / detail
  4. Obsequi: fix implicit declaration of a function, breaks -Werror builds. — aemerson / detail
  5. Enable the obsequi application for Darwin. It seems to run with no issues. — aemerson / detail
  6. Fix support for user mode emulation when using cmake/lit.

    When using user mode emulation, i.e. cross-compiling programs for a
    different target and running them on a host under qemu user mode
    emulation, timeit and fpcmp should have host versions, not target
    versions.

    Running under user mode emulation had been broken for a while,
    presumably since https://reviews.llvm.org/rT341257

    I first tried an alternative approach where fpcmp would be run under qemu user
    mode emulation too.  That in itself worked, but if going for that approach, for
    orthogonality reasons, we probably should also run the other helper programs as
    if they were running on the target, i.e. also under qemu user mode emulation.
    I ran into issues with running timeit under qemu user mode emulation and also
    running RunSafely.sh under user mode emulation doesn't seem trivial.

    In the end, it seemed better to me to explicitly add a cmake option to mark
    that we're running under qemu user mode emulation, and in that mode, only aim
    to run the test/benchmark under qemu user mode emulation, rather than also all
    the helper programs (such as fpcmp, timeit, RunSafely.sh) under it (which is
    what would be needed if we just kept on using only the RUN_UNDER option for
    qemu user mode emulation.

    Differential Revision: https://reviews.llvm.org/D61597 — kbeyls / detail
  7. [test-suite] Fix RISC-V Support in benchmark 1.3.0

    Summary:
    Fixed by backporting the upstream fix from here:
      https://github.com/google/benchmark/pull/833

    Reviewers: lebedev.ri

    Reviewed By: lebedev.ri

    Subscribers: asb, kito-cheng, shiva0217, rogfer01, rkruppe, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64237 — lenary / detail
  8. Revert "[test-suite] Signal error if llvm-lit was not found"

    As disscussed in post-commit review, the LIT is not specified
    in the zorg/buildbot/builders/ClangBuilder.py, so this broke
    all test-suite bots. That is a bot problem,
    i'm pulling the commit until is is resolved.

    This reverts commit r364388. — lebedevri / detail
  9. [test-suite] Signal error if llvm-lit was not found

    Summary:
    I'm not sure if that was intentional or not?
    I found it quite surprising when trying to integrate a new external project.

    Reviewers: MatzeB, homerdin, hfinkel

    Reviewed By: hfinkel

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60091 — lebedevri / detail
  10. Made lambda test more robust.

    The test used a lambda that could be optimized out as a constexpr lambda in
    the C++17 mode, leading to a test faiure due to a missing symbol. This patch
    avoids that. — ssrivastava / detail

clang-r360037-t56206-b56206.tar.gz (May 6, 2019 6:28:09 AM)

  1. X86DAGToDAGISel::tryVPTESTM - fix uninitialized variable warning. NFCI.

    findBroadcastedOp should always initialize the value if it returns true but static-analyzer isn't great at recognising this. — rksimon / detail
  2. [test] Remove redundant bracket in rL360035 — maskray / detail
  3. Try fix Windows bot after rL360015 — maskray / detail
  4. Try fix Windows bot after rL360015

    http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/25599/steps/test/logs/stdio — maskray / detail

clang-r360033-t56204-b56204.tar.gz (May 6, 2019 5:27:54 AM)

  1. [llvm-c-test] Make include-all.c do what its name says it does

    The purpose of this file is to make sure that all includes in llvm-c
    works when included from a C source file (i.e no C++isms sneaked in).
    To do this it must actually include all the include files.

    Reviewed By: whitequark
    Differential Revision: https://reviews.llvm.org/D61567 — andersg / detail

clang-r360033-t56204-b56204.tar.gz (May 6, 2019 5:27:54 AM)

  1. [clang-tidy] Extend bugprone-sizeof-expression check to detect sizeof misuse in pointer arithmetic

    Some programmers tend to forget that subtracting two pointers results in the
    difference between them in number of elements of the pointee type instead of
    bytes. This leads to codes such as `size_t size = (p - q) / sizeof(int)` where
    `p` and `q` are of type `int*`. Or similarily, `if (p - q < buffer_size *
    sizeof(int)) { ... }`. This patch extends `bugprone-sizeof-expression` to
    detect such cases.

    Differential Revision: https://reviews.llvm.org/D61422 — baloghadamsoftware / detail

clang-r360031-t56203-b56203.tar.gz (May 6, 2019 4:31:44 AM)

  1. [LoadStoreVectorizer] vectorizeStoreChain - ensure we find a store type.

    Properly initialize store type to null then ensure we find a real store type in the chain.

    Fixes scan-build null dereference warning and makes the code clearer. — rksimon / detail
  2. [CodeGen] Move X86 tests under the X86 directory — maskray / detail
  3. [X86] X86InstrInfo::findThreeSrcCommutedOpIndices - fix unread variable warning.

    scan-build was reporting that CommutableOpIdx1 never used its original initialized value - move it down to where its first used to make the real initialization more obvious (and matches the comment that's there). — rksimon / detail
  4. [X86] lowerVectorShuffle - use any_of to detect out of bounds shuffle indices. NFCI.

    Fixes cppcheck local shadow warning as well. — rksimon / detail
  5. [Analysis] Remove duplicated std::move from LocRange constructor

    scan-build was reporting that we were referencing a moved variable - in fact we were moving it twice..... — rksimon / detail

clang-r360031-t56203-b56203.tar.gz (May 6, 2019 4:31:44 AM)

  1. Revert r359949 "[clang] adding explicit(bool) from c++2a"

    This caused Clang to start erroring on the following:

      struct S {
        template <typename = int> explicit S();
      };

      struct T : S {};

      struct U : T {
        U();
      };
      U::U() {}

      $ clang -c /tmp/x.cc
      /tmp/x.cc:10:4: error: call to implicitly-deleted default constructor of 'T'
      U::U() {}
         ^
      /tmp/x.cc:5:12: note: default constructor of 'T' is implicitly deleted
        because base class 'S' has no default constructor
      struct T : S {};
                 ^
      1 error generated.

    See discussion on the cfe-commits email thread.

    This also reverts the follow-ups r359966 and r359968.

    > this patch adds support for the explicit bool specifier.
    >
    > Changes:
    > - The parsing for the explicit(bool) specifier was added in ParseDecl.cpp.
    > - The storage of the explicit specifier was changed. the explicit specifier was stored as a boolean value in the FunctionDeclBitfields and in the DeclSpec class. now it is stored as a PointerIntPair<Expr*, 2> with a flag and a potential expression in CXXConstructorDecl, CXXDeductionGuideDecl, CXXConversionDecl and in the DeclSpec class.
    > - Following the AST change, Serialization, ASTMatchers, ASTComparator and ASTPrinter were adapted.
    > - Template instantiation was adapted to instantiate the potential expressions of the explicit(bool) specifier When instantiating their associated declaration.
    > - The Add*Candidate functions were adapted, they now take a Boolean indicating if the context allowing explicit constructor or conversion function and this boolean is used to remove invalid overloads that required template instantiation to be detected.
    > - Test for Semantic and Serialization were added.
    >
    > This patch is not yet complete. I still need to check that interaction with CTAD and deduction guides is correct. and add more tests for AST operations. But I wanted first feedback.
    > Perhaps this patch should be spited in smaller patches, but making each patch testable as a standalone may be tricky.
    >
    > Patch by Tyker
    >
    > Differential Revision: https://reviews.llvm.org/D60934 — hans / detail

clang-r360031-t56203-b56203.tar.gz (May 6, 2019 4:31:44 AM)

  1. [clangd] Boost code completion results that were named in the last few lines.

    Summary:
    The hope is this will catch a few patterns with repetition:

      SomeClass* S = ^SomeClass::Create()

      int getFrobnicator() { return ^frobnicator_; }

      // discard the factory, it's no longer valid.
      ^MyFactory.reset();

    Without triggering antipatterns too often:

      return Point(x.first, x.^second);

    I'm going to gather some data on whether this turns out to be a win overall.

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61537 — sammccall / detail
  2. [clangd] Qualify uses of ::testing everywhere. NFC

    Add an initial '::' qualifier to all usages of 'testing' namespace that
    did not have one.

    The goal is to make our code style in tests more consistent. — ibiryukov / detail

clang-r360023-t56202-b56202.tar.gz (May 6, 2019 3:44:19 AM)

  1. [NFC] Update memcpy tests

    Summary: Runs utils/update_llc_test_checks.py on a few memcpy files

    Reviewers: courbet

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61507

    Remove cfi noise by adding nounwind — gchatelet / detail
  2. [X86] Move files to correct directories after D60552 — maskray / detail
  3. [SimplifyLibCalls] Simplify bcmp too.

    Summary: Fixes PR40699.

    Reviewers: gchatelet

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61585 — courbet / detail
  4. [NFC] This is a test for the commit access.

    Summary: Signed-off-by: Pengfei Wang <pengfei.wang@intel.com>

    Reviewers: LuoYuanke

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61580 — pengfei / detail
  5. Enable AVX512_BF16 instructions, which are supported for BFLOAT16 in Cooper Lake

    Summary:
    1. Enable infrastructure of AVX512_BF16, which is supported for BFLOAT16 in Cooper Lake;
    2. Enable VCVTNE2PS2BF16, VCVTNEPS2BF16 and DPBF16PS  instructions, which are Vector Neural Network Instructions supporting BFLOAT16 inputs and conversion instructions from IEEE single precision.
    VCVTNE2PS2BF16: Convert Two Packed Single Data to One Packed BF16 Data.
    VCVTNEPS2BF16: Convert Packed Single Data to Packed BF16 Data.
    VDPBF16PS: Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
    For more details about BF16 isa, please refer to the latest ISE document: https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference

    Author: LiuTianle

    Reviewers: craig.topper, smaslov, LuoYuanke, wxiao3, annita.zhang, RKSimon, spatel

    Reviewed By: craig.topper

    Subscribers: kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60550 — luoyuanke / detail

clang-r360023-t56202-b56202.tar.gz (May 6, 2019 3:44:19 AM)

  1. [X86] Move files to correct directories after D60552 — maskray / detail
  2. Enable intrinsics of AVX512_BF16, which are supported for BFLOAT16 in Cooper Lake

    Summary:
    1. Enable infrastructure of AVX512_BF16, which is supported for BFLOAT16 in Cooper Lake;
    2. Enable intrinsics for VCVTNE2PS2BF16, VCVTNEPS2BF16 and DPBF16PS instructions, which are Vector Neural Network Instructions supporting BFLOAT16 inputs and conversion instructions from IEEE single precision.
    For more details about BF16 intrinsic, please refer to the latest ISE document: https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference

    Patch by LiuTianle

    Reviewers: craig.topper, smaslov, LuoYuanke, wxiao3, annita.zhang, spatel, RKSimon

    Reviewed By: craig.topper

    Subscribers: mgorny, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D60552 — luoyuanke / detail

clang-r360023-t56202-b56202.tar.gz (May 6, 2019 3:44:19 AM)

  1. [clangd] Always call getFormatStyleForFile().

    This means "format" will no longer return an error if the -fallback-style flag
    is invalid, it will log and use LLVM style. This doesn't really matter.

    Also document the dependence on global variables. (This patch is a
    compromise - it's probably not worth actually avoiding the globals). — sammccall / detail
  2. [clangd] Support -fallback-style, similar to clang-format.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61519 — sammccall / detail

clang-r360015-t56196-b56196.tar.gz (May 6, 2019 1:49:20 AM)

  1. DWARF v5: fix directory index in the line table

    Summary:
    Prior to DWARF v5, a directory index of 0 represents DW_AT_comp_dir.

    In DWARF v5, the index starts with 0 and Entry.DirIdx is the index into
    Prologue.IncludeDirectories.

    Reviewed By: labath

    Differential Revision: https://reviews.llvm.org/D61253 — maskray / detail
  2. [DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref.

    Optimization pass lib/Transforms/IPO/GlobalOpt.cpp needs to insert
    DW_OP_deref_size instead of DW_OP_deref to be compatible with big-endian
    targets for same reasons as in D59687.

    Differential Revision: https://reviews.llvm.org/D60611 — markus / detail

clang-r360012-t56194-b56194.tar.gz (May 6, 2019 12:59:32 AM)

  1. [llvm-c] Make LLVMGetStringErrorTypeId a proper prototype

    In C a function declaration with an empty argument list isn't a real
    prototype, it will allow calling the function with any number of
    arguments. It will also cause warnings when used in C code compiled with
    '-Wstrict-prototypes'

    Reviewed By: whitequark
    Differential Revision: https://reviews.llvm.org/D61568 — andersg / detail

clang-r360012-t56194-b56194.tar.gz (May 6, 2019 12:59:32 AM)

  1. P1286R2: Remove restriction that the exception specification of a
    defaulted special member matches the implicit exception specification. — rsmith / detail
  2. Use DiagRuntimeBehavior for -Wunsequenced to weed out false positives
    where either the modification or the other access is unreachable.

    This reverts r359984 (which reverted r359962). The bug in clang-tidy's
    test suite exposed by the original commit was fixed in r360009. — rsmith / detail

clang-r360012-t56194-b56194.tar.gz (May 6, 2019 12:59:32 AM)

  1. Fix test to avoid assuming clang will diagnose problems in unreachable code. — rsmith / detail

clang-r360008-t56193-b56193.tar.gz (May 5, 2019 10:45:54 PM)

  1. [SelectionDAG] Replace llvm_unreachable at the end of getCopyFromParts with a report_fatal_error.

    Based on PR41748, not all cases are handled in this function.

    llvm_unreachable is treated as an optimization hint than can prune code paths
    in a release build. This causes weird behavior when PR41748 is encountered on a
    release build. It appears to generate an fp_round instruction from the floating
    point code.

    Making this a report_fatal_error prevents incorrect optimization of the code
    and will instead generate a message to file a bug report. — ctopper / detail

clang-r360008-t56193-b56193.tar.gz (May 5, 2019 10:45:54 PM)

  1. [c++20] Implement P1009R2: allow omitting the array bound in an array
    new expression.

    This was voted into C++20 as a defect report resolution, so we
    retroactively apply it to all prior language modes (though it can never
    actually be used before C++11 mode). — rsmith / detail
  2. The 'CodeGenObjC/illegal-UTF8.m' get failed with Clang built with 32-bit targets only (as example ARM-only) with the following error:

    error: unable to create target: 'No available targets are compatible with triple "< ... any 64-bit target triple ... >"'

    I didn't find any 64-bit dependencies for the test and I think removing '-m64' option should fix the problem and allow this test for any target specified by LLVM_DEFAULT_TARGET_TRIPLE.

    Patch by Vlad Vereschaka.

    Differential Revision: https://reviews.llvm.org/D61345 — gkistanova / detail

clang-r360008-t56193-b56193.tar.gz (May 5, 2019 10:45:54 PM)

  1. Fix up after r360006. — rsmith / detail

clang-r360004-t56189-b56189.tar.gz (May 5, 2019 7:39:17 PM)

  1. [libcxxabi] Don't use -fvisibility-global-new-delete-hidden when not defining them

    When builing the hermetic static library, the compiler switch
    -fvisibility-global-new-delete-hidden is necessary to get the new and
    delete operator definitions made correctly. However, when those
    definitions are not included in the library, then this switch does harm.
    With lld (though not all linkers) setting STV_HIDDEN on SHN_UNDEF
    symbols makes it an error to leave them undefined or defined via dynamic
    linking that should generate PLTs for -shared linking (lld makes this a
    hard error even without -z defs). Though leaving the symbols undefined
    would usually work in practice if the linker were to allow it (and the
    user didn't pass -z defs), this actually indicates a real problem that
    could bite some target configurations more subtly at runtime. For
    example, x86-32 ELF -fpic code generation uses hidden visibility on
    declarations in the caller's scope as a signal that the call will never
    be resolved to a PLT entry and so doesn't have to meet the special ABI
    requirements for PLT calls (setting %ebx). Since these functions might
    actually be resolved to PLT entries at link time (we don't know what the
    user is linking in when the hermetic library doesn't provide all the
    symbols itself), it's not safe for the compiler to treat their
    declarations at call sites as having hidden visibility.

    Differential Revision: https://reviews.llvm.org/D61572 — phosek / detail
  2. [libcxx] Don't use -fvisibility-global-new-delete-hidden when not defining them

    When builing the hermetic static library, the compiler switch
    -fvisibility-global-new-delete-hidden is necessary to get the new and
    delete operator definitions made correctly. However, when those
    definitions are not included in the library, then this switch does harm.
    With lld (though not all linkers) setting STV_HIDDEN on SHN_UNDEF
    symbols makes it an error to leave them undefined or defined via dynamic
    linking that should generate PLTs for -shared linking (lld makes this a
    hard error even without -z defs). Though leaving the symbols undefined
    would usually work in practice if the linker were to allow it (and the
    user didn't pass -z defs), this actually indicates a real problem that
    could bite some target configurations more subtly at runtime. For
    example, x86-32 ELF -fpic code generation uses hidden visibility on
    declarations in the caller's scope as a signal that the call will never
    be resolved to a PLT entry and so doesn't have to meet the special ABI
    requirements for PLT calls (setting %ebx). Since these functions might
    actually be resolved to PLT entries at link time (we don't know what the
    user is linking in when the hermetic library doesn't provide all the
    symbols itself), it's not safe for the compiler to treat their
    declarations at call sites as having hidden visibility.

    Differential Revision: https://reviews.llvm.org/D61571 — phosek / detail

clang-r360004-t56189-b56189.tar.gz (May 5, 2019 7:39:17 PM)

  1. [clang-tidy] openmp-exception-escape check: point to the structured-block

    I'm not sure what i was thinking when i wrote it to point at the directive.
    It's at the very least confusing, and in the `for` is very misleading.

    We should point at the actual Stmt out of which the exception escapes,
    to highlight where it should be fixed e.g. via adding try-catch block.

    Yes, this breaks existing NOLINT, which is why this change needs to
    happen now, not any later. — lebedevri / detail

clang-r360004-t56189-b56189.tar.gz (May 5, 2019 7:39:17 PM)

  1. [libcxx] Don't use -fvisibility-global-new-delete-hidden when not defining them

    When builing the hermetic static library, the compiler switch
    -fvisibility-global-new-delete-hidden is necessary to get the new and
    delete operator definitions made correctly. However, when those
    definitions are not included in the library, then this switch does harm.
    With lld (though not all linkers) setting STV_HIDDEN on SHN_UNDEF
    symbols makes it an error to leave them undefined or defined via dynamic
    linking that should generate PLTs for -shared linking (lld makes this a
    hard error even without -z defs). Though leaving the symbols undefined
    would usually work in practice if the linker were to allow it (and the
    user didn't pass -z defs), this actually indicates a real problem that
    could bite some target configurations more subtly at runtime. For
    example, x86-32 ELF -fpic code generation uses hidden visibility on
    declarations in the caller's scope as a signal that the call will never
    be resolved to a PLT entry and so doesn't have to meet the special ABI
    requirements for PLT calls (setting %ebx). Since these functions might
    actually be resolved to PLT entries at link time (we don't know what the
    user is linking in when the hermetic library doesn't provide all the
    symbols itself), it's not safe for the compiler to treat their
    declarations at call sites as having hidden visibility.

    Differential Revision: https://reviews.llvm.org/D61571 — phosek / detail

clang-r360001-t56187-b56187.tar.gz (May 5, 2019 3:14:58 PM)

  1. [X86] Pull out repeated Subtarget feature tests. NFCI.

    Avoids a scan-build "uninitialized value" warning in X86FastISel::X86SelectFPExtOrFPTrunc — rksimon / detail
  2. [TargetLowering] getValueType - use dyn_cast directly to find VectorType. NFCI.

    Matches what we do in other getValueType functions and fixes a null dereference warning in scan-build.

    Also cleans up the rest of the function - use auto and standardize the variable names. — rksimon / detail

clang-r359999-t56184-b56184.tar.gz (May 5, 2019 2:18:33 PM)

  1. [TTI][X86] Make getAddressComputationCost cost value const. NFCI. — rksimon / detail

clang-r359999-t56184-b56184.tar.gz (May 5, 2019 2:18:33 PM)

  1. [analyzer][UninitializedObjectChecker] PR41741: Regard all scalar types as primitive.

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

    Pretty much the same as D61246 and D61106, this time for __complex__ types. Upon
    further investigation, I realized that we should regard all types
    Type::isScalarType returns true for as primitive, so I merged
    isMemberPointerType(), isBlockPointerType() and isAnyComplexType()` into that
    instead.

    I also stumbled across yet another bug,
    https://bugs.llvm.org/show_bug.cgi?id=41753, but it seems to be unrelated to
    this checker.

    Differential Revision: https://reviews.llvm.org/D61569 — szelethus / detail

clang-r359997-t56182-b56182.tar.gz (May 5, 2019 1:22:08 PM)

  1. [NFC] BasicBlock: generalize replaceSuccessorsPhiUsesWith(), take Old bb

    Thus it does not assume that the old basic block is the basic block
    for which we are looking at successors.

    Not reviewed, but seems rather trivial, in line with the rest of
    previous few patches. — lebedevri / detail
  2. [NFC] BasicBlock: refactor changePhiUses() out of replacePhiUsesWith(), use it

    Summary:
    It is a common thing to loop over every `PHINode` in some `BasicBlock`
    and change old `BasicBlock` incoming block to a new `BasicBlock` incoming block.
    `replaceSuccessorsPhiUsesWith()` already had code to do that,
    it just wasn't a function.
    So outline it into a new function, and use it.

    Reviewers: chandlerc, craig.topper, spatel, danielcdh

    Reviewed By: craig.topper

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61013 — lebedevri / detail
  3. [NFC] PHINode: introduce replaceIncomingBlockWith() function, use it

    Summary:
    There is `PHINode::getBasicBlockIndex()`, `PHINode::setIncomingBlock()`
    and `PHINode::getNumOperands()`, but no function to replace every
    specified `BasicBlock*` predecessor with some other specified `BasicBlock*`.
    Clearly, there are a lot of places that could use that functionality.

    Reviewers: chandlerc, craig.topper, spatel, danielcdh

    Reviewed By: craig.topper

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61011 — lebedevri / detail
  4. [NFC] Instruction: introduce replaceSuccessorWith() function, use it

    Summary:
    There is `Instruction::getNumSuccessors()`, `Instruction::getSuccessor()`
    and `Instruction::setSuccessor()`, but no function to replace every
    specified `BasicBlock*` successor with some other specified `BasicBlock*`.
    I've found one place where it should clearly be used.

    Reviewers: chandlerc, craig.topper, spatel, danielcdh

    Reviewed By: craig.topper

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61010 — lebedevri / detail
  5. [NFC][Utils] deleteDeadLoop(): add an assert that exit block has some non-PHI instruction

    Summary:
    If `deleteDeadLoop()` is called on such a loop, that has "bad" exit block,
    one that e.g. has no terminator instruction, the `DIBuilder::insertDbgValueIntrinsic()`
    will be told to insert the Dbg Value Intrinsic after `nullptr`
    (since there is no first non-PHI instruction), which will cause it to not insert
    those instructions into any basic block. The instructions will be parent-less,
    and IR verifier will complain. It is rather obvious to track down the root cause
    when that happens, so let's just assert it never happens.

    Reviewers: sanjoy, davide, vsk

    Reviewed By: vsk

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61008 — lebedevri / detail

clang-r359991-t56181-b56181.tar.gz (May 5, 2019 12:25:46 PM)

  1. Move getOpcode() call into if statement. NFCI.

    Avoids a cppcheck "Local variable name shadows outer variable" warning. — rksimon / detail
  2. Precommit an FNeg InstructionSimplify test. — mcinally / detail
  3. [SLPVectorizer] Prefer pre-increments. NFCI. — rksimon / detail

clang-r359988-t56179-b56179.tar.gz (May 5, 2019 11:29:13 AM)

  1. [LLParser] Remove unused variable after r359987. NFC — ctopper / detail
  2. [LLParser] Remove unnecessary error check making sure NUW/NSW flags aren't set on a non-integer operation.

    Summary: This check appears to be a leftover from when add/sub/mul could be either integer or fp. The NSW/NUW flags are only set for add/sub/mul/shl earlier. And we check that those operations only have integer types just below this. So it seems unnecessary to explicitly error for NUW/NSW being used on a add/sub/mul that have the wrong type that would later error for that.

    Reviewers: spatel, dblaikie, jyknight, arsenm

    Reviewed By: spatel

    Subscribers: wdng, llvm-commits, hiraditya

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61562 — ctopper / detail
  3. [LLParser] Simplify type checking in ParseArithmetic and ParseUnaryOp.

    Summary:
    These methods previously took a 0, 1, or 2 to indicate what types were allowed, but the 0 encoding which meant both fp and integer types has been unused for years. Its leftover from when add/sub/mul used to be shared between int and fp

    Simplify it by changing it to just a bool to distinquish int and fp.

    Reviewers: spatel, dblaikie, jyknight, arsenm

    Reviewed By: spatel

    Subscribers: wdng, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61561 — ctopper / detail
  4. [Constants] Simplify type checking switch in ConstantExpr::get.

    Summary:
    Remove duplicate checks that both operands have the same type. This is checked
    before the switch.

    Use 'integer' or 'floating-point' instead of 'arithmetic' type. I think this
    might be a leftover to the days when floating point and integer operations
    shared the same opcodes.

    Reviewers: spatel, RKSimon, dblaikie

    Reviewed By: RKSimon

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61558 — ctopper / detail
  5. [MCA] Notify event listeners when instructions transition to the Pending state. NFCI — adibiagio / detail
  6. Add FNeg IR constant folding support — mcinally / detail
  7. [X86] Make X86RegisterInfo(const Triple &TT) constructor explicit.

    Fixes cppcheck warning. — rksimon / detail
  8. [X86] Fix some cppcheck "Local variable name shadows outer variable" warnings. NFCI. — rksimon / detail
  9. [SLPVectorizer] Make getSpillCost() const. NFCI.

    Ideally getTreeCost() should be const as well but non-const Type creation would need to be addressed first. — rksimon / detail
  10. [SelectionDAG] Use any_of/all_of where possible. NFCI. — rksimon / detail
  11. Move Value *RHSCIOp def into the scope where its actually used. NFCI. — rksimon / detail
  12. Add InstCombine tests for FNeg instruction. — mcinally / detail
  13. [CodeGenPrepare] limit overflow intrinsic matching to a single basic block (2nd try)

    This is a subset of the original commit from rL359879
    which was reverted because it could crash when using the 'RemovedInstructions'
    structure that enables delayed deletion of dead instructions. The motivating
    compile-time win does not require that change though. We should get most of
    that win from this change alone.

    Using/updating a dominator tree to match math overflow patterns may be very
    expensive in compile-time (because of the way CGP uses a DT), so just handle
    the single-block case.

    See post-commit thread for rL354298 for more details:
    http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190422/646276.html

    Differential Revision: https://reviews.llvm.org/D61075 — spatel / detail
  14. [llvm-nm] Convert weak.test to use yaml2obj and fix unntested 'v'

    This restores part of the good change reverted by r359830. — maskray / detail
  15. [AMDGPU] Fixed asan error after D61536 — rampitec / detail

clang-r359988-t56179-b56179.tar.gz (May 5, 2019 11:29:13 AM)

  1. Revert rL359962 : Use DiagRuntimeBehavior for -Wunsequenced to weed out false positives
    where either the modification or the other access is unreachable.
    ........
    Try to fix buildbots — rksimon / detail
  2. [clang] fixing -ast-print for variadic parameter pack in lambda capture

    Summary:
    currently for:
    ```
    template<typename ... T>
    void f(T... t) {
      auto l = [t...]{};
    }
    ```
    `clang -ast-print file.cpp`
    outputs:

    ```
    template <typename ...T> void f(T ...t) {
        auto l = [t]         {
            }
    ;
    }
    ```
    notice that there is not `...` in the capture list of the lambda. this patch fixes this issue. and add test for it.

    Patch by Tyker

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61556 — rakete1111 / detail
  3. [C++] Interpret unknown identifier in parameter clause as unknown type

    instead of as parameter name without a type. — rakete1111 / detail
  4. [NFC] Add parentheses to avoid -Wparentheses. — rakete1111 / detail
  5. [c++20] Implement P0428R2 - Familiar template syntax for generic lambdas

    Differential Revision: https://reviews.llvm.org/D36527 — hamzasood / detail
  6. [c++20] Implement tweaked __VA_OPT__ rules from P1042R1:

    * __VA_OPT__ is expanded if the *expanded* __VA_ARGS__ is non-empty,
       not if the original argument contained no tokens.
    * Placemarkers at the start and end of __VA_OPT__ are retained just
       long enough to paste them with adjacent ## operators. We never paste
       "across" a discarded placemarker. — rsmith / detail
  7. Use DiagRuntimeBehavior for -Wunsequenced to weed out false positives
    where either the modification or the other access is unreachable. — rsmith / detail

clang-r359961-t56162-b56162.tar.gz (May 3, 2019 11:18:25 PM)

  1. AMDGPU] gfx1010 hazard recognizer

    Differential Revision: https://reviews.llvm.org/D61536 — rampitec / detail
  2. [AMDGPU] gfx1010: use fmac instructions

    Differential Revision: https://reviews.llvm.org/D61527 — rampitec / detail

clang-r359961-t56162-b56162.tar.gz (May 3, 2019 11:18:25 PM)

  1. Reduce amount of work ODR hashing does.

    When a FunctionProtoType is in the original type in a DecayedType, the decayed
    type is a PointerType which points back the original FunctionProtoType.  The
    visitor for ODRHashing will attempt to process both Type's, doing double work.
    By chaining together multiple DecayedType's and FunctionProtoType's, this would
    result in 2^N Type's visited only N DecayedType's and N FunctionProtoType's
    exsit.  Another bug where VisitDecayedType and VisitAdjustedType did
    redundant work doubled the work at each level, giving 4^N Type's visited.  This
    patch removed the double work and detects when a FunctionProtoType decays to
    itself to only check the Type once.  This lowers the exponential runtime to
    linear runtime.  Fixes https://bugs.llvm.org/show_bug.cgi?id=41625 — rtrieu / detail
  2. Disallow the operand of __builtin_constant_p from modifying enclosing
    state when it's encountered while evaluating a constexpr function.

    We attempt to follow GCC trunk's behavior here, but it is somewhat
    inscrutible, so our behavior is only approximately the same for now.
    Specifically, we only permit modification of objects whose lifetime
    began within the operand of the __builtin_constant_p. GCC appears to
    have effectively the same restriction, but also some unknown restriction
    based on where and how the local state of the constexpr function is
    mentioned within the operand (see added testcases). — rsmith / detail
  3. [Driver] Create non-existent directory for -fcrash-diagnostics-dir

    When user specifies non-existent directory to -fcrash-diagnostics-dir,
    create it rather than failing with an error as would be the case before.

    Differential Revision: https://reviews.llvm.org/D61542 — phosek / detail
  4. [cxx_status] Don't list -fmodules / -fmodules-ts against C++ modules
    support; those turn on different modules modes. The real C++ modules
    support is behind -std=c++2a like the rest of C++20. — rsmith / detail
  5. [cxx_status] Replace "SVN" entries with Clang 8 as appropriate.

    Also: use the "svn" color for "explicit(bool)" rather than the "full" color. — rsmith / detail

clang-r359950-t56159-b56159.tar.gz (May 3, 2019 7:26:42 PM)

  1. [JITLink] Add two useful Section operations: find by name, get address range.

    These operations were already used in eh-frame registration, and are likely to
    be used in other runtime registrations, so this commit moves them into a header
    where they can be re-used. — Lang Hames / detail

clang-r359950-t56159-b56159.tar.gz (May 3, 2019 7:26:42 PM)

  1. [clang] adding explicit(bool) from c++2a

    this patch adds support for the explicit bool specifier.

    Changes:
    - The parsing for the explicit(bool) specifier was added in ParseDecl.cpp.
    - The storage of the explicit specifier was changed. the explicit specifier was stored as a boolean value in the FunctionDeclBitfields and in the DeclSpec class. now it is stored as a PointerIntPair<Expr*, 2> with a flag and a potential expression in CXXConstructorDecl, CXXDeductionGuideDecl, CXXConversionDecl and in the DeclSpec class.
    - Following the AST change, Serialization, ASTMatchers, ASTComparator and ASTPrinter were adapted.
    - Template instantiation was adapted to instantiate the potential expressions of the explicit(bool) specifier When instantiating their associated declaration.
    - The Add*Candidate functions were adapted, they now take a Boolean indicating if the context allowing explicit constructor or conversion function and this boolean is used to remove invalid overloads that required template instantiation to be detected.
    - Test for Semantic and Serialization were added.

    This patch is not yet complete. I still need to check that interaction with CTAD and deduction guides is correct. and add more tests for AST operations. But I wanted first feedback.
    Perhaps this patch should be spited in smaller patches, but making each patch testable as a standalone may be tricky.

    Patch by Tyker

    Differential Revision: https://reviews.llvm.org/D60934 — rakete1111 / detail
  2. CWG issue 727: Fix numerous bugs in support for class-scope explicit
    specializations for variable templates. — rsmith / detail
  3. [clang-format] Fix bug in block comment reflow that joins * and /

    Fixes PR41213

    Differential Revision: https://reviews.llvm.org/D61276 — owenpan / detail

clang-r359941-t56156-b56156.tar.gz (May 3, 2019 5:34:16 PM)

  1. [x86] add tests for fneg IR with undef; NFC — spatel / detail
  2. [AArch64][GlobalISel] Use fcsel instead of csel for G_SELECT on FPRs

    This saves us some unnecessary copies.

    If the inputs to a G_SELECT are floating point, we should use fcsel rather than
    csel.

    Changes here are...

    - Teach selectCopy about s1-to-s1 copies across register banks.
    - AArch64RegisterBankInfo about G_SELECT in general.
    - Teach the instruction selector about the FCSEL instructions.

    Also add two tests:

    - select-select.mir to show that we get the expected FCSEL
    - regbank-select.mir (unfortunately named) to show the register banks on
    G_SELECT are properly preserved

    And update fast-isel-select.ll to show that we do the same thing as other
    instruction selectors in these cases. — paquette / detail

clang-r359939-t56155-b56155.tar.gz (May 3, 2019 4:37:56 PM)

  1. Make the git-llvm script work on older git versions that don't support git rev-parse --git-common-dir.

    Not all versions of git support git rev-parse --git-common-dir. Rather than erorr or print any kind of
    useful error, they just print back '--git-common-dir' instead of a directory. The git-llvm script
    ends up taking this '--git-common-dir' as a diretory name to use.

    Not sure exactly what happens after that, but the end result is that the 'git llvm push' ends up
    looking like it pushed your commits, but really did nothing.

    This patch makes the script detect the bogus directory name for --git-common-dir and falls back to using --git-dir instead. — ctopper / detail

clang-r359938-t56154-b56154.tar.gz (May 3, 2019 3:47:57 PM)

  1. [AMDGPU] gfx1010 wait count insertion

    Differential Revision: https://reviews.llvm.org/D61534 — rampitec / detail
  2. [AMDGPU] gfx1010 s_code_end generation

    Also add some missing metadata in the streamer.

    Differential Revision: https://reviews.llvm.org/D61531 — rampitec / detail
  3. Update PatternMatcher for FNeg

    Match both FNeg(X) and FSub(+-0.0, X) in FNeg_match

    Differential Revision: https://reviews.llvm.org/D61520 — mcinally / detail
  4. [AMDGPU] gfx1010 loop alignment

    Differential Revision: https://reviews.llvm.org/D61529 — rampitec / detail
  5. [COFF, ARM64] Fix ABI implementation of struct returns

    Summary:
    Refer the ABI doc at: https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2019#return-values

    Related clang patch: D60349

    Reviewers: rnk, efriedma, TomTan, ssijaric

    Reviewed By: rnk, efriedma

    Subscribers: mstorsjo, javed.absar, kristof.beyls, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60348 — mgrang / detail

clang-r359938-t56154-b56154.tar.gz (May 3, 2019 3:47:57 PM)

  1. [COFF, ARM64] Fix ABI implementation of struct returns

    Summary:
    Related llvm patch: D60348.
    Patch co-authored by Sanjin Sijaric.

    Reviewers: rnk, efriedma, TomTan, ssijaric, ostannard

    Reviewed By: efriedma

    Subscribers: dmajor, richard.townsend.arm, ostannard, javed.absar, kristof.beyls, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D60349 — mgrang / detail

clang-r359938-t56154-b56154.tar.gz (May 3, 2019 3:47:57 PM)

  1. [Lsan] Disabling explicitally FreeBSD

    As it is not implemented upon usage, it just provokes numerous linkage issues so better switch off clearly.

    Reviewers: vitalybuka, morehouse

    Reviewed By: morehouse

    Differential Revision: https://reviews.llvm.org/D61484 — David CARLIER / detail

clang-r359919-t56151-b56151.tar.gz (May 3, 2019 1:45:06 PM)

  1. [CUDA buildbot] tell libunwind where to find libcxx.

    Otherwise lit tests fail. — tra / detail

clang-r359919-t56150-b56150.tar.gz (May 3, 2019 1:01:33 PM)

  1. Reapply r359906, "RegAllocFast: Add heuristic to detect values not live-out of a block"

    This reverts commit r359912.

    This should pass now, since the clang test was made less fragile in
    r359918. — arsenm / detail
  2. [CommandLine] Enable Grouping for short options by default.  Part 4 of 5

    Summary:
    This change enables `cl::Grouping` for short options --
    options with names of a single character.  This is consistent with GNU
    getopt behavior.

    Reviewers: rnk, MaskRay

    Reviewed By: MaskRay

    Subscribers: thopre, cfe-commits, MaskRay, rupprecht, hiraditya, llvm-commits

    Tags: #llvm, #clang

    Differential Revision: https://reviews.llvm.org/D61270 — dhinton / detail
  3. [DAGCombine] Remove repeated variables. NFCI. — rksimon / detail
  4. Revert r359906, "RegAllocFast: Add heuristic to detect values not live-out of a block"

    Makes clang/test/Misc/backend-stack-frame-diagnostics-fallback.cpp fail. — nico / detail
  5. [TargetLowering] SimplifySetCC - remove repeated variable. NFCI.

    Also reduce scope of Temp variable. — rksimon / detail
  6. [CommandLine] Change help output to prefix long options with `--` instead of `-`. NFC . Part 3 of 5

    Summary:
    By default, `parseCommandLineOptions()` will accept either a
    `-` or `--` prefix for long options -- options with names longer than
    a single character.

    While this change does not affect behavior, it will be helpful with a
    subsequent change that requires long options use the `--` prefix.

    Reviewers: rnk, thopre

    Reviewed By: thopre

    Subscribers: thopre, cfe-commits, hiraditya, llvm-commits

    Tags: #llvm, #clang

    Differential Revision: https://reviews.llvm.org/D61269 — dhinton / detail

clang-r359919-t56150-b56150.tar.gz (May 3, 2019 1:01:33 PM)

  1. Ensure there is stack usage in stack size warning test

    r359906 broke this because the only stack usage was from a spill which
    can be avoided since the only block is a return. — arsenm / detail
  2. Attempt to fix the clang-sphinx-docs bot after r358797 — nico / detail
  3. Remove else-after-return — dblaikie / detail
  4. [CUDA][Clang][Bugfix] Add missing CUDA 9.2 case

    Summary:
    The bug was reported on the OpenMP-dev list:

    .../obj-release/lib/clang/9.0.0/include/__clang_cuda_intrinsics.h:173:35: error: '__nvvm_shfl_sync_idx_i32' needs target feature ptx60|ptx61|ptx63|ptx64
    __MAKE_SYNC_SHUFFLES(__shfl_sync, __nvvm_shfl_sync_idx_i32,

    This problem occurs when trying to compile a .cu file that requires a newer ptx version (>ptx60 in this case) than ptx42.



    Reviewers: tra, ABataev, caomhin

    Reviewed By: tra

    Subscribers: jdoerfert, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61474 — gbercea / detail
  5. [CommandLine] Change help output to prefix long options with `--` instead of `-`. NFC . Part 3 of 5

    Summary:
    By default, `parseCommandLineOptions()` will accept either a
    `-` or `--` prefix for long options -- options with names longer than
    a single character.

    While this change does not affect behavior, it will be helpful with a
    subsequent change that requires long options use the `--` prefix.

    Reviewers: rnk, thopre

    Reviewed By: thopre

    Subscribers: thopre, cfe-commits, hiraditya, llvm-commits

    Tags: #llvm, #clang

    Differential Revision: https://reviews.llvm.org/D61269 — dhinton / detail

clang-r359919-t56150-b56150.tar.gz (May 3, 2019 1:01:33 PM)

  1. [hwasan] Fix HWASAN_WITH_INTERCEPTORS=OFF build on not-android.

    Summary:
    I'm not aware of any platforms where this will work, but the code should at least compile.
    HWASAN_WITH_INTERCEPTORS=OFF means there is magic in libc that would call __hwasan_thread_enter /
    __hwasan_thread_exit as appropriate.

    Reviewers: pcc, winksaville

    Subscribers: srhines, kubamracek, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61337 — eugenis / detail

clang-r359908-t56147-b56147.tar.gz (May 3, 2019 11:39:27 AM)

  1. Revert "[CodeGenPrepare] limit overflow intrinsic matching to a single basic block"

    This reverts commit r359879, which introduced a compiler crash. — eugenis / detail
  2. RegAllocFast: Add heuristic to detect values not live-out of a block

    Add an improved/new heuristic to catch more cases when values are not
    live out of a basic block.

    Patch by Matthias Braun — arsenm / detail

clang-r359908-t56147-b56147.tar.gz (May 3, 2019 11:39:27 AM)

  1. Mark is_trivially_destructible as unsupported with apple-clang-9

    See discussion on https://reviews.llvm.org/D48292 — nico / detail

clang-r359905-t56146-b56146.tar.gz (May 3, 2019 10:43:09 AM)

  1. [hexagon] change AsmParser assertion to error

    For immediates that can't be evaluated in assembler-mapped instructions, we
    should return 'invalid operand' instead of assert. — bcain / detail
  2. [Docs][CodeGenerator][eBPF] Correct the values for BPF_X and BPF_K

    Fix the values of BPF_X and BPF_K according to BPFInstrFormats.td:
    "
    def BPF_K : BPFSrcType<0x0>;
    def BPF_X : BPFSrcType<0x1>;
    "

    The right value for BPF_X is 0x1, and the right value for BPF_K is 0x0.

    Signed-off-by: Wang YanQing <udknight@gmail.com>

    Differential Revision: https://reviews.llvm.org/D61512 — yhs / detail
  3. [X86] Allow assembly parser to accept x/y/z suffixes on non-memory vfpclassps/pd and on memory forms in intel syntax

    The x/y/z suffix is needed to disambiguate the memory form in at&t syntax since no xmm/ymm/zmm register is mentioned.

    But we should also allow it for the register and broadcast forms where its not needed for consistency. This matches gas.

    The printing code will still only use the suffix for the memory form where it is needed. — ctopper / detail
  4. [llvm] Revert r231274: "Devirtualize ~parser<T> by making it protected in base classes and making derived classes final"

    Summary: This patch was previously applied in r231221, and reverted in
    r231254 because it broke self-hosting.  It was subsequently fixed and
    reapplied in r231274.  Unfortunately, making the `parser<T>` classes
    final prevents inheritance which makes it impossible to implement
    custom parsers.

    Reverting r231221 restores the ability to customize parsers.

    Reviewers: dblaikie

    Reviewed By: dblaikie

    Subscribers: craig.topper, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60955 — dhinton / detail
  5. [X86] LowerToHorizontalOp - Tidyup calls to getHopForBuildVector. NFCI.

    Merge the if() tests for the various HADD/SUB + Subtarget tests — rksimon / detail
  6. [SelectionDAG] CreateTopologicalOrder - don't use iterator

    We shouldn't use an iterator to loop across a std::vector when the same loop is adding elements to that std::vector

    Found by cppcheck — rksimon / detail
  7. AMDGPU: Select VOP3 form of sub

    The VOP3 form should always be the preferred selection form to be
    shrunk later.

    The r600 sub test needs to be split out because it asserts on the
    arguments in the new test during the calling convention lowering. — arsenm / detail
  8. AMDGPU: Support shrinking add with FI in SIFoldOperands

    Avoids test regression in a future patch — arsenm / detail
  9. Revert r359549 - incorrect update of test checks. NFC — rlougher / detail
  10. [x86] add tests for fneg with undefs; NFC

    This was originally part of D61419. — spatel / detail
  11. AMDGPU: Remove redundant patterns for shifts — arsenm / detail
  12. AMDGPU: Remove redundant patterns for sub

    There were 2 patterns for sub, one selecting to sub and one to
    subrev. Only one of these will succeed, so remove the reversed one. — arsenm / detail

clang-r359893-t56144-b56144.tar.gz (May 3, 2019 9:46:54 AM)

  1. AMDGPU: Add baseline test for future patch — arsenm / detail
  2. AMDGPU: Replace shrunk instruction with dummy implicit_def

    This was broken if the original operand was killed. The kill flag
    would appear on both instructions, and fail the verifier. Keep the
    kill flag, but remove the operands from the old instruction. This has
    an added benefit of really reducing the use count for future folds.

    Ideally the pass would be structured more like what PeepholeOptimizer
    does to avoid this hack to avoid breaking instruction iterators. — arsenm / detail
  3. [TargetLowering] ShrinkDemandedConstant - reduce scope of TLO.DAG variable. NFCI.

    Only ever used in one block — rksimon / detail
  4. [X86] Remove repeated variables. NFCI. — rksimon / detail
  5. gn build: Merge r359878 — nico / detail
  6. Let --discard-all imply --strip-debug.

    This will match gnu strip's behavior.

    Differential Revision: https://reviews.llvm.org/D61092 — sidneym / detail
  7. [X86] Add X64 common prefixes and regenerate mul i64 tests

    Noticed while reviewing D61472 — rksimon / detail
  8. AMDGPU: Forgot to commit test file for r358890 — arsenm / detail
  9. Avoid cppcheck operator precedence warnings. NFCI.

    Prefer ((X & Y) ? A : B) to (X & Y ? A : B) — rksimon / detail
  10. AMDGPU: Fix incorrect commute with sub when folding immediates

    When a fold of an immediate into a sub/subrev required shrinking the
    instruction, the wrong VOP2 opcode was used. This was using the VOP2
    equivalent of the original instruction, not the commuted instruction
    with the inverted opcode. — arsenm / detail
  11. AMDGPU: Fix test verification

    This should run the verifier, and needs to enable trackRegLiveness. — arsenm / detail

clang-r359881-t56143-b56143.tar.gz (May 3, 2019 8:50:06 AM)

  1. [LICM] auto-generate complete test checks; NFC — spatel / detail
  2. [CodeGenPrepare] limit overflow intrinsic matching to a single basic block

    Using/updating a dominator tree to match math overflow patterns may be very
    expensive in compile-time (because of the way CGP uses a DT), so just handle
    the single-block case.

    Also, we were restarting the iterator loops when doing the overflow intrinsic
    transforms by marking the dominator tree for update. That was done to prevent
    iterating over a removed instruction. But we can postpone the deletion using
    the existing "RemovedInsts" structure, and that means we don't need to update
    the DT.

    See post-commit thread for rL354298 for more details:
    http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190422/646276.html

    Differential Revision: https://reviews.llvm.org/D61075 — spatel / detail
  3. [Object][XCOFF] Add an XCOFF dumper for llvm-readobj.

    Patch adds support for dumping of file headers with llvm-readobj. XCOFF
    object files are added to test dumping a well formed file, and dumping
    both negative timestamps and negative symbol counts, both of which are
    allowed in the XCOFF definition.

    Differential Revision: https://reviews.llvm.org/D60878 — sfertile / detail
  4. [TargetLowering] expandUnalignedStore - cleanup EVT variables. NFCI.

    Avoid duplicated EVTs and rename Store/Load VTs to avoid -Wshadow warnings. — rksimon / detail

clang-r359881-t56143-b56143.tar.gz (May 3, 2019 8:50:06 AM)

  1. Added an AST matcher for declarations that are in the `std` namespace

    Reviewers: alexfh

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61480 — gribozavr / detail

clang-r359881-t56143-b56143.tar.gz (May 3, 2019 8:50:06 AM)

  1. [clangd] Fix header-guard check for include insertion, and don't index header guards.

    Summary:
    Both of these attempt to check whether a header guard exists while parsing the
    file. However the file is only marked as guarded once clang finishes processing
    it. We defer the checks and work until SymbolCollector::finish().

    This is ugly and ad-hoc, deferring *all* work might be cleaner.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61442 — sammccall / detail
  2. Added an AST matcher for declarations that are in the `std` namespace

    Reviewers: alexfh

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61480 — gribozavr / detail

clang-r359875-t56141-b56141.tar.gz (May 3, 2019 7:16:11 AM)

  1. Revert "[MIR] Add simple PRE pass to MachineCSE"

    This reverts commit 9c20156de39b377190d7a91783d61877b303fe35.
    It breaks stage 2 of clang-ppc64be-linux-multistage. — anton-afanasyev / detail

clang-r359875-t56141-b56141.tar.gz (May 3, 2019 7:16:11 AM)

  1. [clangd] Also perform merging for symbol definitions

    Summary:
    clangd currently prefers declarations from codegen files. This patch
    implements that behavior for definition locations. If we have definiton
    locations both coming from AST and index, clangd will perform a merging to show
    the codegen file if that's the case.

    Reviewers: sammccall

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61126 — kadircet / detail

clang-r359873-t56139-b56139.tar.gz (May 3, 2019 5:17:40 AM)

  1. [SelectionDAG] Use INT_MIN as (1 << 31) is UB for signed integers. NFCI. — rksimon / detail
  2. [SelectionDAG] computeKnownBits - remove some duplicate/shadow variables. NFCI. — rksimon / detail

clang-r359871-t56138-b56138.tar.gz (May 3, 2019 4:32:49 AM)

  1. [X86] LowerMULH - remove unused Lo/Hi vector indices. NFCI.

    Leftover from before we had the extract128BitVector helpers. — rksimon / detail
  2. [MIR] Add simple PRE pass to MachineCSE

    This is the second part of the commit fixing PR38917 (hoisting
    partitially redundant machine instruction). Most of PRE (partitial
    redundancy elimination) and CSE work is done on LLVM IR, but some of
    redundancy arises during DAG legalization. Machine CSE is not enough
    to deal with it. This simple PRE implementation works a little bit
    intricately: it passes before CSE, looking for partitial redundancy
    and transforming it to fully redundancy, anticipating that the next
    CSE step will eliminate this created redundancy. If CSE doesn't
    eliminate this, than created instruction will remain dead and eliminated
    later by Remove Dead Machine Instructions pass.

    The third part of the commit is supposed to refactor MachineCSE,
    to make it more clear and to merge MachinePRE with MachineCSE,
    so one need no rely on further Remove Dead pass to clear instrs
    not eliminated by CSE.

    First step: https://reviews.llvm.org/D54839

    Fixes llvm.org/PR38917

    Reviewers: RKSimon

    Subscribers: hfinkel, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D56772 — anton-afanasyev / detail
  3. Reduce variable scope to just the if() block its actually used in. NFCI. — rksimon / detail

clang-r359871-t56138-b56138.tar.gz (May 3, 2019 4:32:49 AM)

  1. [Sema][ObjC] Disable -Wunused-parameter for ObjC methods

    The warning isn't very useful when the function is an ObjC method.

    rdar://problem/41561853

    Differential Revision: https://reviews.llvm.org/D61147 — ahatanak / detail

clang-r359871-t56138-b56138.tar.gz (May 3, 2019 4:32:49 AM)

  1. [clangd] Minor code style cleanups in Protocol.h. NFC

    - Remove a parameter name that was misspelled (OS used for non-stream
      parameter)
    - Declare operator == (TextEdit, TextEdit) outside the struct, for
      consistency with other user-declared ops in our code.
    - Fix naming style of a parameter. — ibiryukov / detail

clang-r359871-t56138-b56138.tar.gz (May 3, 2019 4:32:49 AM)

  1. Avoid duplicate function aliases on MinGW after SVN r359835

    On MinGW, the same alias mechanism as for ELF, using
    __attribute__((__alias__())), is used. — mstorsjo / detail

clang-r359863-t56134-b56134.tar.gz (May 3, 2019 1:32:53 AM)

  1. [X86] Add more one checks to masked compare patterns that were missed in r358358.

    This covers the patterns we use for widening 128/256 comparisons to 512-bit when
    AVX512VL isn't supported. — ctopper / detail

clang-r359860-t56132-b56132.tar.gz (May 2, 2019 11:27:35 PM)

  1. [docs] Add support for Markdown documentation when creating man pages

    rL358749 added a documentation page in the Markdown format. Currently,
    such pages are ignored in the configuration script for manual pages.
    This patch fixes that.

    Differential Revision: https://reviews.llvm.org/D60964 — ikudrin / detail

clang-r359860-t56132-b56132.tar.gz (May 2, 2019 11:27:35 PM)

  1. Revert "[Attribute/Diagnostics] Print macro if definition is an attribute declaration"

    This reverts commit fc40cbd9d8c63e65eed3590ba925321afe782e1d. — leonardchan / detail
  2. Revert r359814 "[Sema] Emit warning for visibility attribute on internal-linkage declaration"

    See cfe-commits thread for r359814. — nico / detail

clang-r359856-t56131-b56131.tar.gz (May 2, 2019 9:53:09 PM)

  1. Add check-builtins to sanitizer-windows

    This bot runs check-profile and check-fuzzer, so this is really more of
    a 'compiler-rt-windows' bot these days, I guess.

    This would've found https://crbug.com/958973 immediately. — rnk / detail

clang-r359856-t56131-b56131.tar.gz (May 2, 2019 9:53:09 PM)

  1. [IRTranslator] Use the alloc size instead of the store size when translating allocas

    We use to incorrectly use the store size instead of the alloc size when
    creating the stack slot for allocas.
    On aarch64 this can be demonstrated by allocating weirdly sized types.

    For instance, in the added test case, we use an alloca for i19. We used
    to allocate a slot of size 24-bit (19 rounded up to the next byte),
    whereas we really want to use a full 32-bit slot for this type. — qcolombet / detail
  2. [AArch64][MC] Reject "add x0, x1, w2, lsl #1" etc.

    Looks like just a minor oversight in the parsing code.

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

    Differential Revision: https://reviews.llvm.org/D60840 — efriedma / detail
  3. Tidy up a comment, fix a typo, remove a comment that's obsolete. — echristo / detail
  4. [AArch64][Windows] Compute function length correctly in unwind tables.

    The primary fix here is to WinException.cpp: we need to exclude jump
    tables when computing the length of a function, or else we fail to
    correctly compute the length. (We can only compute the number of bytes
    consumed by certain assembler directives after the entire file is
    parsed. ".p2align" is one of those directives, and is used by jump table
    generation.)

    The secondary fix, to MCWin64EH, is to make sure we don't silently
    miscompile if we hit a similar situation in the future.

    It's possible we could extend ARM64EmitUnwindInfo so it allows function
    bodies that contain assembler directives, but that's a lot more
    complicated; see the FIXME in MCWin64EH.cpp.

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

    Differential Revision: https://reviews.llvm.org/D61095 — efriedma / detail
  5. [MemorySSA] Check that block is reachable when adding phis.

    Summary:
    Originally the insertDef method was only used when building MemorySSA, and was limiting the number of Phi nodes that it created.
    Now it's used for updates as well, and it can create additional Phis needed for correctness.
    Make sure no Phis are created in unreachable blocks (condition met during MSSA build), otherwise the renamePass will find a null DTNode.

    Resolves PR41640.

    Reviewers: george.burgess.iv

    Subscribers: jlebar, Prazek, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61410 — asbirlea / detail
  6. [MemorySSA] Refactor removing multiple trivial phis [NFC].

    Summary: Create a method to clean up multiple potentially trivial phis, since we will need this often.

    Reviewers: george.burgess.iv

    Subscribers: jlebar, Prazek, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61471 — asbirlea / detail
  7. [X86] Remove LEA16r references from X86FixupLEAs. NFCI

    As far as I know, we never emit LEA16r — ctopper / detail
  8. [X86] Correct the register class for specific mask register constraints in getRegForInlineAsmConstraint when the VT is a scalar type

    The default impementation in the base class for TargetLowering::getRegForInlineAsmConstraint doesn't work for mask registers when the VT is a scalar type integer types since the only legal mask types are vXi1. So we end up just getting whatever the first register class that contains the register. Currently this appears to be VK1, but its really dependent on the order tablegen outputs the register classes.

    Some code in the caller ends up looking up the type for this register class and find v1i1 then generates a copyfromreg from the physical k-register with the v1i1 type. Then it generates an any_extend from v1i1 to the scalar VT which isn't legal. This bad any_extend sticks around until isel where it selects a MOVZX32rr8 with a v1i1 input or maybe a i8 input. Not sure but eventually we pick up a copy from VK1 to GR8 in MachineIR which isn't supported. This leads to a failure in physical register copying.

    This patch uses the scalar type to find a VK class of the right size. In the attached test case this will be VK16. This causes a bitcast from vk16 to i16 to be generated instead of an any_extend. This will be properly iseled to a VK16 to GR32 copy and a GR32->GR16 extract_subreg.

    Fixes PR41678

    Differential Revision: https://reviews.llvm.org/D61453 — ctopper / detail
  9. [SelectionDAG] Add asserts to verify the vectorness of input and output types of TRUNCATE/ZERO_EXTEND/ANY_EXTEND/SIGN_EXTEND agree

    As a result of the underlying cause of PR41678 we created an ANY_EXTEND node with a scalar result type and v1i1 input type. Ideally we would have asserted for this instead of letting it go through to instruction selection and generate bad machine IR

    Differential Revision: https://reviews.llvm.org/D61463 — ctopper / detail
  10. [AArch64] Update for Exynos

    Fix the forwarding of multiplication results for Exynos M4. — evandro / detail
  11. [X86] Remove string literal from an if. NFC

    This if used to be an assert that got refactored into an if, but left the string literal behind.

    Fixes PR41718 — ctopper / detail
  12. Revert [ThinLTO] Fix X86/strong_non_prevailing.ll after llvm-nm 'r' change

    This reverts r359314 (git commit 5015aa854dc043b2ae5d95e04e00d98518207ce5) — rupprecht / detail
  13. Revert [llvm-nm] Fix handling of symbol types + [llvm-nm] Generalize symbol types

    This reverts r359311 and r359312 (git commit 0bf06a8f59b0074a60871865e828d92db8930c59 and 5f184f17800ea2ac27be5e4ab540cb94a46e80c7) — rupprecht / detail
  14. lld-link: Add /force:multipleres extension to make dupe resource diag non-fatal

    As a side benefit, lld-link now reports more than one duplicate resource
    entry before exiting with an error even if the new flag is not passed. — nico / detail
  15. [gn] Include the missing BUILD.gn file for libcxxabi includes

    This was omitted in r359805.

    Differential Revision: https://reviews.llvm.org/D61462 — phosek / detail

clang-r359856-t56131-b56131.tar.gz (May 2, 2019 9:53:09 PM)

  1. SemaOverload: Complete candidates before emitting the error, to ensure diagnostics emitted (or suppressed) during completion don't interfere with the overload notes

    Because diagnostics and their notes are not connected at the API level,
    if the error message for an overload is emitted, then the overload
    candidates are completed - if a diagnostic is emitted during that work,
    the notes related to overload candidates would be attached to the latter
    diagnostic, not the original error. Sort of worse, if the latter
    diagnostic was disabled, the notes are disabled.

    Reviewers: rsmith

    Differential Revision: https://reviews.llvm.org/D61357 — dblaikie / detail
  2. Fix -Wunsequenced false-positives in code controlled by a branch on
    __builtin_constant_p.

    If the operand of __builtin_constant_p is not constant and has
    side-effects, then code controlled by a branch on it is unreachable and
    we should not emit runtime behavior warnings in such code. — rsmith / detail
  3. [CUDA] Do not pass deprecated option fo fatbinary

    CUDA 10.1 tools deprecated some command line options.
    fatbinary no longer needs --cuda.

    Differential Revision: https://reviews.llvm.org/D61470 — tra / detail
  4. [Attribute/Diagnostics] Print macro if definition is an attribute declaration

    If an address_space attribute is defined in a macro, print the macro instead
    when diagnosing a warning or error for incompatible pointers with different
    address_spaces.

    We allow this for all attributes (not just address_space), and for multiple
    attributes declared in the same macro.

    Differential Revision: https://reviews.llvm.org/D51329 — leonardchan / detail

clang-r359856-t56131-b56131.tar.gz (May 2, 2019 9:53:09 PM)

  1. [crtbegin] Fix an off-by-1 bug in __do_fini

    Differential Revision: https://reviews.llvm.org/D61367 — maskray / detail
  2. Fix check-builtins on Windows after alias changes — rnk / detail

clang-r359856-t56131-b56131.tar.gz (May 2, 2019 9:53:09 PM)

  1. [libc++][test] Remove non-portable assumption that thread's constructor allocates with ::new

    Drive-by:
    * Fix potential race between check and update of `throw_one` in `operator new`
    * Fix latent bug in `operator delete`, which shouldn't decrement `outstanding_new` when passed a null pointer
    * Specifically catch the expected `bad_alloc` in `main` instead of `...`

    Differential Revision: https://reviews.llvm.org/D50860 — caseycarter / detail

clang-r359825-t56122-b56122.tar.gz (May 2, 2019 3:02:41 PM)

  1. [gn] Update the clangd test lit site configuration

    This reflects changes made in r359763. — phosek / detail

clang-r359825-t56122-b56122.tar.gz (May 2, 2019 3:02:41 PM)

  1. Change the metadata for heapallocsite calls when the type is cast. — akhuang / detail

clang-r359825-t56122-b56122.tar.gz (May 2, 2019 3:02:41 PM)

  1. [clangd][xpc] Cannonicalize value of CLANGD_BUILD_XPC before caching — Jan Korous / detail

clang-r359821-t56121-b56121.tar.gz (May 2, 2019 2:13:15 PM)

  1. Typo Functino->Function. — echristo / detail
  2. build: add option to disable unwind tables

    The unwind tables (`.eh_frame`, `.arm.extab`) add a significant chunk of data to
    the final binaries.  These should not be needed normally, particularly when
    exceptions are disabled.  This enables shrinking `lldb-server` by ~18% (3 MiB)
    when built with gold. — Saleem Abdulrasool / detail

clang-r359821-t56121-b56121.tar.gz (May 2, 2019 2:13:15 PM)

  1. Another attempt to fix "could not find clang-check" lit warning in analyzer-less builds

    r359717 added clang-check as a dep of check-clang unconditionally
    because I had missed lit.local.cfg in test/Tooling.

    Instead, only add clang-check to the tools if the analyzer is enabled,
    since the build target only exists then, and since all tests using
    clang-check are skipped when the analyzer is disabled.

    Differential Revision: https://reviews.llvm.org/D61418 — nico / detail

clang-r359818-t56120-b56120.tar.gz (May 2, 2019 1:22:49 PM)

  1. [yaml2obj] - Make interface of `NameToIdxMap` class be human friendly and fix users.

    This patch inverses the values returned by `addName` and
    `lookup` methods of the class mentioned so that they
    now return true on success and false on failure.
    Also, it does minor code cleanup.

    Differential revision: https://reviews.llvm.org/D61190 — grimar / detail
  2. [gn] Include libcxx configuration file

    This was omitted in r359806 but is already referenced in the GN build. — phosek / detail

clang-r359818-t56120-b56120.tar.gz (May 2, 2019 1:22:49 PM)

  1. [Sema] Emit warning for visibility attribute on internal-linkage declaration

    GCC warns on these cases, but we currently just silently ignore the attribute.

    Differential Revision: https://reviews.llvm.org/D61097 — scott.linder / detail
  2. Use primary template parameter names for variable template debug info

    Summary:
    Fixes PR41677

    Consider:
      template <typename LHS, typename RHS> constexpr bool is_same_v = false;
      template <typename T> constexpr bool is_same_v<T, T> = true;
      template constexpr bool is_same_v<int, int>;

    Before this change, when emitting debug info for the
    `is_same_v<int, int>` global variable, clang would crash because it
    would try to use the template parameter list from the partial
    specialization to give parameter names to template arguments. This
    doesn't work in general, since a partial specialization can have fewer
    arguments than the primary template. Therefore, always use the primary
    template. Hypothetically we could try to use the parameter names from
    the partial specialization when possible, but it's not clear this really
    helps debugging in practice.

    Reviewers: JDevlieghere, aprantl, ormris, dblaikie

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61408 — rnk / detail

clang-r359818-t56120-b56120.tar.gz (May 2, 2019 1:22:49 PM)

  1. [libc++][CMake] Link against libSystem on Apple platforms

    Instead of manually linking against libm/librt/libpthread, we should be
    linking against libSystem on Apple platforms, and only that. libm and
    libpthread are symlinks to libSystem anyway. — Louis Dionne / detail

clang-r359806-t56118-b56118.tar.gz (May 2, 2019 12:01:21 PM)

  1. [gn] Support for building libc++

    This change introduces support for building libc++. The library
    build should be complete, but not all CMake options have been
    replicated in GN. We also don't support tests yet.

    We only support two stage build at the moment.

    Differential Revision: https://reviews.llvm.org/D61143 — phosek / detail
  2. [gn] Support for building libcxxabi

    This change introduces support for building libcxxabi. The library
    build should be complete, but not all CMake options have been
    replicated in GN. We also don't support tests yet.

    We only support two stage build at the moment.

    Differential Revision: https://reviews.llvm.org/D60372 — phosek / detail
  3. [gn] Support for building libunwind

    This change introduces support for building libuwind. The library
    build should be complete, but not all CMake options have been
    replicated in GN. We also don't support tests yet.

    We only support two stage build at the moment.

    Differential Revision: https://reviews.llvm.org/D60370 — phosek / detail

clang-r359806-t56118-b56118.tar.gz (May 2, 2019 12:01:21 PM)

  1. Do not warn on switches over enums that do not use [[maybe_unused]] enumerators

    PR36231, [dcl.attr.unused]p3

    Reviewers: aaron.ballman

    Differential Revision: https://reviews.llvm.org/D61444 — dblaikie / detail
  2. [OpenCL] Fix initialisation of this via pointer.

    When the expression used to initialise 'this' has a pointer type,
    check the address space of the pointee type instead of the pointer
    type to decide whether an address space cast is required.
    It is the pointee type that carries the address space qualifier.

    Fixing PR41674.

    Patch by kpet (Kevin Petit)!

    Differential Revision: https://reviews.llvm.org/D61319 — stulova / detail

clang-r359806-t56118-b56118.tar.gz (May 2, 2019 12:01:21 PM)

  1. Fixed: Duck-typing in readability-redundant-smartptr-get didn't catch MSVC STL smart pointers.

    Differential Revision: https://reviews.llvm.org/D61209 — fgross / detail
  2. Reapply r359778: [clangd] Fix code completion of macros defined in the preamble region of the main file.

    The bad assert has been removed, and updateOutOfDateIdentifier has been guarded.
    This reverts commit r359796. — sammccall / detail
  3. Revert rL359778 : [clangd] Fix code completion of macros defined in the preamble region of the main file.

    Summary:
    This is a tricky case (we baked the assumption that symbols come from
    the preamble xor mainfile pretty deeply) and the fix is a bit of a hack:
    We look at the code to guess the macro names, and deserialize them from
    the preamble "by hand".

    Reviewers: ilya-biryukov

    Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D60937
    ........
    Fix buildbots http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/47684/ — rksimon / detail

clang-r359806-t56118-b56118.tar.gz (May 2, 2019 12:01:21 PM)

  1. [compiler-rt] Set the ZX_VMO_RESIZABLE option for zx_vmo_create

    Currently VMO in Zircon create using the zx_vmo_create is resizable
    by default, but we'll be changing this in the future, requiring an
    explicit flag to make the VMO resizable.

    Prepare for this change by passing ZX_VMO_RESIZABLE option to all
    zx_vmo_create calls that need resizable VMO.

    Differential Revision: https://reviews.llvm.org/D61450 — phosek / detail
  2. [libFuzzer] Re-enable libFuzzer on i386 Linux and fix test

    Summary:
    Re-enable libFuzzer on i386 Linux after it was accidentally
    disabled.

    Also disable gc-sections.test on i386 since lld isn't
    garbage collecting properly with ASAN on i386.

    Reviewers: morehouse

    Reviewed By: morehouse

    Subscribers: srhines, mgorny, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61415 — metzman / detail

clang-r359806-t56118-b56118.tar.gz (May 2, 2019 12:01:21 PM)

  1. [gn] Support for building libc++

    This change introduces support for building libc++. The library
    build should be complete, but not all CMake options have been
    replicated in GN. We also don't support tests yet.

    We only support two stage build at the moment.

    Differential Revision: https://reviews.llvm.org/D61143 — phosek / detail

clang-r359793-t56116-b56116.tar.gz (May 2, 2019 10:16:02 AM)

  1. [DAGCombiner] try repeated fdiv divisor transform before building estimate (2nd try)

    The original patch was committed at rL359398 and reverted at rL359695 because of
    infinite looping.

    This includes a fix to check for a vector splat of "1.0" to avoid the infinite loop.

    Original commit message:

    This was originally part of D61028, but it's an independent diff.

    If we try the repeated divisor reciprocal transform before producing an estimate sequence,
    then we have an opportunity to use scalar fdiv. On x86, the trade-off is 1 divss vs. 5
    vector FP ops in the default estimate sequence. On recent chips (Skylake, Ryzen), the
    full-precision division is only 3 cycle throughput, so that's probably the better perf
    default option and avoids problems from x86's inaccurate estimates.

    The last 2 tests show that users still have the option to override the defaults by using
    the function attributes for reciprocal estimates, but those patterns are potentially made
    faster by converting the vector ops (including ymm ops) to scalar math.

    Differential Revision: https://reviews.llvm.org/D61149 — spatel / detail
  2. [SelectionDAG] remove constant folding limitations based on FP exceptions

    We don't have FP exception limits in the IR constant folder for the binops (apart from strict ops),
    so it does not make sense to have them here in the DAG either. Nothing else in the backend tries
    to preserve exceptions (again outside of strict ops), so I don't see how this could have ever
    worked for real code that cares about FP exceptions.

    There are still cases (examples: unary opcodes in SDAG, FMA in IR) where we are trying (at least
    partially) to preserve exceptions without even asking if the target supports FP exceptions. Those
    should be corrected in subsequent patches.

    Real support for FP exceptions requires several changes to handle the constrained/strict FP ops.

    Differential Revision: https://reviews.llvm.org/D61331 — spatel / detail
  3. [X86][SSE] lowerAddSubToHorizontalOp - enable ymm extraction+fold

    Limiting scalar hadd/hsub generation to the lowest xmm looks to be unnecessary - we will be extracting one upper xmm whatever, and we can remove a shuffle by using the hop which is inline with what shouldUseHorizontalOp expects to happen anyway.

    Testing on btver2 (the main target for fast-hops) shows this is beneficial even for float ops where we have a 'shuffle' to extract the float result:
    https://godbolt.org/z/0R-U-K

    Differential Revision: https://reviews.llvm.org/D61426 — rksimon / detail
  4. [X86][SSE] Move shouldUseHorizontalOp inside isHorizontalBinOp. NFCI.

    Matches what we do for lowerAddSubToHorizontalOp and will make it easier to peek through subvectors to help fix PR39921 — rksimon / detail
  5. [llvm-strip]Add --no-strip-all to disable --strip-all behaviour (including default stripping)

    If certain switches are not specified, llvm-strip behaves as if
    --strip-all were specified. This means that for testing, when we don't
    want the stripping behaviour, we have to specify one of these switches,
    which can be confusing. This change adds --no-strip-all to allow an
    alternative way of suppressing the default stripping, in a less
    confusing manner.

    Reviewed by: jakehehrlich, MaskRay

    Differential Revision: https://reviews.llvm.org/D61377 — jhenderson / detail

clang-r359793-t56116-b56116.tar.gz (May 2, 2019 10:16:02 AM)

  1. [OpenCL] Deduce static data members to __global addr space.

    Similarly to static variables in OpenCL, static class data
    members should be deduced to __global addr space.

    Differential Revision: https://reviews.llvm.org/D61304 — stulova / detail

clang-r359793-t56116-b56116.tar.gz (May 2, 2019 10:16:02 AM)

  1. [clangd] Fix code completion of macros defined in the preamble region of the main file.

    Summary:
    This is a tricky case (we baked the assumption that symbols come from
    the preamble xor mainfile pretty deeply) and the fix is a bit of a hack:
    We look at the code to guess the macro names, and deserialize them from
    the preamble "by hand".

    Reviewers: ilya-biryukov

    Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D60937 — sammccall / detail

clang-r359776-t56109-b56109.tar.gz (May 2, 2019 5:10:55 AM)

  1. [LTO] Migrate typedef to using

    using has been used in several places in the file. Migrate the rest for consistency. — maskray / detail
  2. [llvm-readobj] Delete and inline relocAddressLess

    It is used only once in COFFDumper.cpp. Deleting it from the public
    interface seems better. — maskray / detail
  3. [Object] Change getSectionName() to return Expected<StringRef>

    Summary:
    It currently receives an output parameter and returns
    std::error_code. Expected<StringRef> fits for this purpose perfectly.

    Differential Revision: https://reviews.llvm.org/D61421 — maskray / detail
  4. [ARM GlobalISel] Fixup r359768

    Get rid of local variable used only in assertion. — rovka / detail

clang-r359776-t56109-b56109.tar.gz (May 2, 2019 5:10:55 AM)

  1. [clangd] Improvements to header mapping: more precise parsing of cppreference symbol pages.

    Summary:
    Previously we were just jumping from the symbol index to the symbol page, and
    grabbing all the headers mentioned there. But the page often lists multiple
    symbols, and so we got false positives and thus ambiguities (which were dropped).

    Now we look at which declarations are for the symbol we want, and prefer headers
    listed above that symbol. If there are none, we fall back to the old behavior.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61316 — sammccall / detail
  2. [clangd] Standard library mapping: prefer "primary" versions of functions over variants.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61349 — sammccall / detail

clang-r359768-t56106-b56106.tar.gz (May 2, 2019 3:13:08 AM)

  1. [ARM GlobalISel] Select extensions to < 32 bits

    Select G_SEXT and G_ZEXT with destination types smaller than 32 bits in
    the exact same way as 32 bits. This overwrites the higher bits, but that
    should be ok since all legal users of types smaller than 32 bits ignore
    those bits anyway. — rovka / detail
  2. [ARM GlobalISel] Rename some inst selector tests. NFC

    Prepare to add support for extensions to types smaller than 32 bits. — rovka / detail
  3. [ARM GlobalISel] Legalize extensions to < 32 bits

    Make it legal to extend from e.g. s1 to s8 or s16. — rovka / detail

clang-r359764-t56105-b56105.tar.gz (May 2, 2019 2:23:33 AM)

  1. [NFC][PowerPC] Return early if the element type is not byte-sized in combineBVOfConsecutiveLoads

    Summary:
    Based on the Eli Friedman's comments in https://reviews.llvm.org/D60811 , we'd better return early if the element type is not byte-sized in `combineBVOfConsecutiveLoads`.

    Reviewed By: efriedma
    Differential Revision: https://reviews.llvm.org/D61076 — zhangkang / detail

clang-r359764-t56105-b56105.tar.gz (May 2, 2019 2:23:33 AM)

  1. [clangd] Restore conventional names for lit configs, and .in/.py split. Fix build_mode indirection. — sammccall / detail

clang-r359762-t56103-b56103.tar.gz (May 2, 2019 1:33:05 AM)

  1. Object/Minidump: Add support for the ThreadList stream

    Summary:
    The stream contains the list of threads belonging to the process
    described by the minidump. Its structure is the same as the ModuleList
    stream, and in fact, I have generalized the ModuleList reading code to
    handle this stream too.

    Reviewers: amccarth, jhenderson, clayborg

    Subscribers: llvm-commits, lldb-commits, markmentovai, zturner

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61064 — labath / detail

clang-r359762-t56103-b56103.tar.gz (May 2, 2019 1:33:05 AM)

  1. Fix typo in test case. — ahatanak / detail
  2. Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO

    This follows up after b7692bc3e9ad2691fc07261904b88fb15f30696b "[UBSan] Fix
    isDerivedFromAtOffset on iOS ARM64" fixed the RTTI comparison in
    isDerivedFromAtOffset on just one platform and then
    a25a2c7c9a7e1e328a5bd8274d2d86b1fadc4692 "Always compare C++ typeinfo (based on
    libstdc++ implementation)" extended that fix to more platforms.

    But there is another RTTI comparison for -fsanitize=function generated in
    clang's CodeGenFunction::EmitCall as just a pointer comparison.  For
    SANITIZER_NON_UNIQUE_TYPEINFO platforms this needs to be extended to also do
    string comparison.  For that, __ubsan_handle_function_type_mismatch[_abort]
    takes the two std::type_info pointers as additional parameters now, checks them
    internally for potential equivalence, and returns without reporting failure if
    they turn out to be equivalent after all.  (NORETURN needed to be dropped from
    the _abort variant for that.)  Also these functions depend on ABI-specific RTTI
    now, so needed to be moved from plain UBSAN_SOURCES (ubsan_handlers.h/cc) to
    UBSAN_CXXABI_SOURCES (ubsan_handlers_cxx.h/cc), but as -fsanitize=function is
    only supported in C++ mode that's not a problem.

    Differential Revision: https://reviews.llvm.org/D60760 — sberg / detail

clang-r359762-t56103-b56103.tar.gz (May 2, 2019 1:33:05 AM)

  1. Fix for Windows

    ...after 5745eccef54ddd3caca278d1d292a88b2281528b "Adapt -fsanitize=function to
    SANITIZER_NON_UNIQUE_TYPEINFO" — sberg / detail
  2. Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO

    This follows up after b7692bc3e9ad2691fc07261904b88fb15f30696b "[UBSan] Fix
    isDerivedFromAtOffset on iOS ARM64" fixed the RTTI comparison in
    isDerivedFromAtOffset on just one platform and then
    a25a2c7c9a7e1e328a5bd8274d2d86b1fadc4692 "Always compare C++ typeinfo (based on
    libstdc++ implementation)" extended that fix to more platforms.

    But there is another RTTI comparison for -fsanitize=function generated in
    clang's CodeGenFunction::EmitCall as just a pointer comparison.  For
    SANITIZER_NON_UNIQUE_TYPEINFO platforms this needs to be extended to also do
    string comparison.  For that, __ubsan_handle_function_type_mismatch[_abort]
    takes the two std::type_info pointers as additional parameters now, checks them
    internally for potential equivalence, and returns without reporting failure if
    they turn out to be equivalent after all.  (NORETURN needed to be dropped from
    the _abort variant for that.)  Also these functions depend on ABI-specific RTTI
    now, so needed to be moved from plain UBSAN_SOURCES (ubsan_handlers.h/cc) to
    UBSAN_CXXABI_SOURCES (ubsan_handlers_cxx.h/cc), but as -fsanitize=function is
    only supported in C++ mode that's not a problem.

    Differential Revision: https://reviews.llvm.org/D60760 — sberg / detail

clang-r359758-t56099-b56099.tar.gz (May 2, 2019 12:21:46 AM)

  1. [Support] Don't check MAP_ANONYMOUS, just use MAP_ANON

    Though being marked "deprecated" by the Linux man-pages project
    (MAP_ANON is a synonym of MAP_ANONYMOUS), it is the mostly widely
    available macro - many systems that don't provide MAP_ANONYMOUS have
    MAP_ANON. MAP_ANON is also used here and there in compiler-rt. — maskray / detail
  2. [AMDGPU] gfx1010 lost VOP2 forms of some add/sub

    Add legalization of V_ADD_I32, V_SUB_I32, V_SUBREV_I32.

    Differential Revision: — rampitec / detail
  3. [AMDGPU] gfx1010 allows VOP3 to have a literal

    Differential Revision: https://reviews.llvm.org/D61413 — rampitec / detail

clang-r359758-t56099-b56099.tar.gz (May 2, 2019 12:21:46 AM)

  1. [libcxx] cmake - guard list remove

    REMOVE_ITEM fails if CMAKE_REQUIRED_LIBRARIES is empty on some
    versions of cmake. — bcain / detail

clang-r359754-t56095-b56095.tar.gz (May 1, 2019 9:44:31 PM)

  1. [AMDGPU] gfx1010 constant bus limit

    Constant bus limit has increased to 2 with GFX10.

    Differential Revision: https://reviews.llvm.org/D61404 — rampitec / detail
  2. [X86] Remove the redundant suffix in vfpclassp[d,s]'s broadcasting variant

    The broadcasting variant for instruction vfpclassp[d,s] shouldn't use suffix q/l. So remove them from the template.

    Patch by Pengfei Wang

    Differential Revision: https://reviews.llvm.org/D61295 — ctopper / detail
  3. lld-link: Make "duplicate resource" error message a bit more concise

    Reduces the error message from:
        lld-link: error: failed to parse .res file: duplicate resource: type STRINGTABLE (ID 6)/name ID 3/language 1033, in test1.res and in test2.res

    To:
        lld-link: error: duplicate resource: type STRINGTABLE (ID 6)/name ID 3/language 1033, in test1.res and in test2.res

    Make sure every error message emitted by cvtres contains the name of at
    least one ".res" file, so that removing the "failed to parse .res file"
    string doesn't lose information.

    Differential Revision: https://reviews.llvm.org/D61388 — nico / detail

clang-r359754-t56095-b56095.tar.gz (May 1, 2019 9:44:31 PM)

  1. Replace ad-hoc tracking of pattern for an instantiated class-scope
    explicit function specialization with the MemberSpecializationInfo used
    everywhere else.

    Not NFC: the ad-hoc pattern tracking was not being serialized /
    deserialized properly. That's fixed here. — rsmith / detail
  2. Diagnose non-dependent qualified friend function template declarations
    that don't match any existing declaration. Don't get confused and treat
    such declarations as template *specializations*. — rsmith / detail
  3. [COFF, ARM64] Align global symbol by size for ARM64 MSVC ABI

    According to alignment section in below ARM64 ABI document, MSVC could increase
    alignment of global data based on its total size. Clang doesn't do this. Compile
    the same symbol into different alignments by Clang and MSVC could cause link
    error because some instruction encodings, like 64-bit LDR/STR with immediate,
    require the target to be 8 bytes aligned, and linker could choose code stream
    with such LDR/STR instruction from MSVC and 4 bytes aligned data from Clang into
    final image, which actually cannot be linked together
    (see https://bugs.llvm.org/show_bug.cgi?id=41506 for more details).

    https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2019#alignment

    Differential Revision: https://reviews.llvm.org/D61225 — tomtan / detail

clang-r359743-t56092-b56092.tar.gz (May 1, 2019 7:06:14 PM)

  1. remove inalloca parameters in globalopt and simplify argpromotion

    Summary:
    Inalloca parameters require special handling in some optimizations.
    This change causes globalopt to strip the inalloca attribute from
    function parameters when it is safe to do so, removes the special
    handling for inallocas from argpromotion, and replaces it with a
    simple check that causes argpromotion to skip functions that receive
    inallocas (for when the pass is invoked on code that didn't run
    through globalopt first). This also avoids a case where argpromotion
    would incorrectly try to pass an inalloca in a register.

    Fixes PR41658.

    Reviewers: rnk, efriedma

    Reviewed By: rnk

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61286 — inglorion / detail
  2. [FileCheck] Fix line-count.txt test

    Summary: Enable currently skipped diagnostic test and fix column number

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61320 — thopre / detail
  3. FileCheck [4/12]: Introduce @LINE numeric expressions

    Summary:
    This patch is part of a patch series to add support for FileCheck
    numeric expressions. This specific patch introduces the @LINE numeric
    expressions.

    This commit introduces a new syntax to express a relation a numeric
    value in the input text must have with the line number of a given CHECK
    pattern: [[#<@LINE numeric expression>]]. Further commits build on that
    to express relations between several numeric values in the input text.
    To help with naming, regular variables are renamed into pattern
    variables and old @LINE expression syntax is referred to as legacy
    numeric expression.

    Compared to existing @LINE expressions, this new syntax allow arbitrary
    spacing between the component of the expression. It offers otherwise the
    same functionality but the commit serves to introduce some of the data
    structure needed to support more general numeric expressions.

    Copyright:
        - Linaro (changes up to diff 183612 of revision D55940)
        - GraphCore (changes in later versions of revision D55940 and
                     in new revision created off D55940)

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60384 — thopre / detail
  4. Revert r359717, "Make check-clang depend on the clang-check binary always"

    The Tooling tests do have a lit.local.cfg with

        if not config.root.clang_staticanalyzer:
            config.unsupported = True

    so what's wrong isn't the missing dep, but that lit prints a warning for
    the binary missing. This will need a different kind of fix. — nico / detail
  5. Fix erroneous flag in GISel line for arm64-fast-isel-materialize.ll

    Accidentally put a fast-isel-abort=2 instead of the GISel abort line.

    This test doesn't actually fall back at all for GISel though, so remove the
    fallback checks entirely. — paquette / detail
  6. [PGO][CHR] A bug fix.

    Summary: Fix a transformation bug where two scopes share a common instrution to hoist.

    Reviewers: davidxl

    Reviewed By: davidxl

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61405 — yamauchi / detail
  7. [ORC] Pass object buffer ownership back in NotifyEmitted.

    Clients who want to regain ownership of object buffers after they have been
    linked may now use the NotifyEmitted callback for this purpose.

    Note: Currently NotifyEmitted is only called if linking succeeds. If linking
    fails the buffer is always discarded. — Lang Hames / detail
  8. [GlobalISel][AArch64] Use fmov for G_FCONSTANT when possible

    This adds support for using fmov rather than a standard mov to materialize
    G_FCONSTANT when it's safe to do so.

    Update arm64-fast-isel-materialize.ll and select-constant.mir to show that the
    selection is correct. — paquette / detail

clang-r359743-t56092-b56092.tar.gz (May 1, 2019 7:06:14 PM)

  1. Consume unexpected "template" keywords after "using"

    The parser was dealing with unexpected "template" keywords after "using"
    keywords too late and putting the parser into the wrong state, which could
    lead to a crash down the line.  This change allows the parser to consume the
    bad "template" keywords earlier, and continue parsing as if "template" was
    never there to begin with for better error recovery. — rtrieu / detail
  2. Revert r359717, "Make check-clang depend on the clang-check binary always"

    The Tooling tests do have a lit.local.cfg with

        if not config.root.clang_staticanalyzer:
            config.unsupported = True

    so what's wrong isn't the missing dep, but that lit prints a warning for
    the binary missing. This will need a different kind of fix. — nico / detail
  3. [analyzer] Fix buildbot failures caused by a forgotten initialization — szelethus / detail

clang-r359743-t56092-b56092.tar.gz (May 1, 2019 7:06:14 PM)

  1. [compiler-rt][tests] Propagate COMPILER_RT_UNITTEST_LINK_FLAGS

    `COMPILER_RT_UNITTEST_LINK_FLAGS` is dropped in many places, unlike
    `COMPILER_RT_UNITTEST_CFLAGS`. This patch attempts to remove that
    inconsistency.

    Previously reviewed as part of D58951.

    Reviewers: sfertile, peter.smith, pzheng, phosek, Hahnfeld, nemanjai, jasonliu

    Reviewed By: sfertile

    Subscribers: jsji, kubamracek, dberris, mgorny, delcypher, jdoerfert, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D60143 — hubert.reinterpretcast / detail
  2. [tsan] Fix and re-enable user_malloc.cc test

    Summary: no_sanitize_thread is not enough as it still puts some tsan instrumentation

    Reviewers: eugenis

    Subscribers: kubamracek, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61393 — Vitaly Buka / detail
  3. [sanitizer][NFC] Remove unneeded SizeClassAllocatorLocalCache — Vitaly Buka / detail
  4. [sanitizer][NFC] Add const/static into a couple of methods — Vitaly Buka / detail
  5. [Sanitizer] Reland "Cleanup INTERCEPT_FUNCTION macro"

    On Linux both version of the INTERCEPT_FUNCTION macro now return true
    when interception was successful. Adapt and cleanup some usages.

    Also note that `&(func) == &WRAP(func)` is a link-time property, but we
    do a runtime check.

    Tested on Linux and macOS.

    Previous attempt reverted by: 5642c3feb03d020dc06a62e3dc54f3206a97a391

    This attempt to bring order to the interceptor macro goes the other
    direction and aligns the Linux implementation with the way things are
    done on Windows.

    Reviewed By: vitalybuka, rnk

    Differential Revision: https://reviews.llvm.org/D61358 — yln / detail

clang-r359743-t56092-b56092.tar.gz (May 1, 2019 7:06:14 PM)

  1. Add missing locale requirement to test.

    Linux is failing even though the test runner does report this locale
    is available, but the test still isn't expected to work on platforms
    without the locale (like Android). — danalbert / detail

clang-r359723-t56084-b56084.tar.gz (May 1, 2019 2:55:30 PM)

  1. [AArch64] Add tests for bool vector reductions; NFC

    Baseline tests for PR41635. — nikic / detail
  2. Try to unbreak sphinx bot after r359714

    The now-correctly-referenced label dbi_type_server_map_substream didn't
    exist. Rewrite things a bit after looking at NewDBIHdr in dbi.h and its
    use in dbi.cpp in the reference implementation. — nico / detail

clang-r359723-t56084-b56084.tar.gz (May 1, 2019 2:55:30 PM)

  1. Make clang/utils/creduce-clang-crash.py executable — rnk / detail
  2. [analyzer] Don't display implementation checkers under -analyzer-checker-help, but do under the new flag -analyzer-checker-help-hidden

    During my work on analyzer dependencies, I created a great amount of new
    checkers that emitted no diagnostics at all, and were purely modeling some
    function or another.

    However, the user shouldn't really disable/enable these by hand, hence this
    patch, which hides these by default. I intentionally chose not to hide alpha
    checkers, because they have a scary enough name, in my opinion, to cause no
    surprise when they emit false positives or cause crashes.

    The patch introduces the Hidden bit into the TableGen files (you may remember
    it before I removed it in D53995), and checkers that are either marked as
    hidden, or are in a package that is marked hidden won't be displayed under
    -analyzer-checker-help. -analyzer-checker-help-hidden, a new flag meant for
    developers only, displays the full list.

    Differential Revision: https://reviews.llvm.org/D60925 — szelethus / detail

clang-r359723-t56084-b56084.tar.gz (May 1, 2019 2:55:30 PM)

  1. [sanitizer][NFC] Set LargeMmapAllocator type from PrimaryAllocator

    They need to have same AddressSpaceView and MapUnmapCallback.

    Reviewers: eugenis

    Subscribers: kubamracek, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61168 — Vitaly Buka / detail
  2. [scudo][NFC] Remove unneeded template from scudo::CombinedAllocator

    Reviewers: cryptoad, eugenis

    Reviewed By: cryptoad

    Subscribers: #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61162 — Vitaly Buka / detail

clang-r359717-t56081-b56081.tar.gz (May 1, 2019 1:59:09 PM)

  1. Make check-clang depend on the clang-check binary always

    check-clang (the target that runs all clang tests) used to
    only depend on clang-check (a binary like clang-tidy,
    clang-refactor, etc) if the static analyzer is enabled.
    However, several lit tests call clang-check unconditionally,
    so always depend on it.

    Fixes a "could not find clang-check" lit warning in clean builds with
    the static analyzer disabled.

    Also sort the deps in the CMake file and put just one dep on each line.

    Differential Revision: https://reviews.llvm.org/D61324 — nico / detail
  2. Minor tweaks to PDB docs

    - Fix a broken link
    - Some spelling fixes
    - Remove an unnecessary "amortized"
    - Don't say "log(n) random access"; "random access" means O(1)
    - Make MSF overview a bit more concise

    Differential Revision: https://reviews.llvm.org/D61196 — nico / detail

clang-r359717-t56081-b56081.tar.gz (May 1, 2019 1:59:09 PM)

  1. Make check-clang depend on the clang-check binary always

    check-clang (the target that runs all clang tests) used to
    only depend on clang-check (a binary like clang-tidy,
    clang-refactor, etc) if the static analyzer is enabled.
    However, several lit tests call clang-check unconditionally,
    so always depend on it.

    Fixes a "could not find clang-check" lit warning in clean builds with
    the static analyzer disabled.

    Also sort the deps in the CMake file and put just one dep on each line.

    Differential Revision: https://reviews.llvm.org/D61324 — nico / detail
  2. [Parser] Avoid correcting delayed typos in array subscript multiple times.

    We correct some typos in `ActOnArraySubscriptExpr` and
    `ActOnOMPArraySectionExpr`, so when their result is `ExprError`, we can
    end up correcting delayed typos in the same expressions again. In
    general it is OK but when `NumTypos` is incorrect, we can hit the
    assertion

    > Assertion failed: (Entry != DelayedTypos.end() && "Failed to get the state for a TypoExpr!"), function getTypoExprState, file clang/lib/Sema/SemaLookup.cpp, line 5219.

    Fix by replacing some subscript `ExprResult` with typo-corrected expressions
    instead of keeping the original expressions. Thus if original expressions
    contained `TypoExpr`, we'll use corrected expressions instead of trying to
    correct them again.

    rdar://problem/47403222

    Reviewers: rsmith, erik.pilkington, majnemer

    Reviewed By: erik.pilkington

    Subscribers: jkorous, dexonsmith, cfe-commits

    Differential Revision: https://reviews.llvm.org/D60848 — vsapsai / detail

clang-r359717-t56081-b56081.tar.gz (May 1, 2019 1:59:09 PM)

  1. [sanitizer][NFC] Get type of AllocatorCache from CombinedAllocator

    Reviewers: eugenis, cryptoad, kcc

    Reviewed By: kcc

    Subscribers: kcc, kubamracek, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61155 — Vitaly Buka / detail

clang-r359712-t56080-b56080.tar.gz (May 1, 2019 1:15:28 PM)

  1. Convert PDB docs to unix line endings. No other changes. — nico / detail

clang-r359712-t56080-b56080.tar.gz (May 1, 2019 1:15:28 PM)

  1. [clang-format] Fix a bug in AlignConsecutiveDeclarations.

    Fixes PR37175

    Differential Revision: https://reviews.llvm.org/D61222 — owenpan / detail

clang-r359709-t56078-b56078.tar.gz (May 1, 2019 11:55:14 AM)

  1. [PowerPC] add test that could infinite loop with reordered transforms; NFC

    This is a slightly reduced version of the test from D61384.
    Adding this as a preliminary step, so I can update D61149 with
    the proposed fix. — spatel / detail
  2. [X86][SSE] Fold scalar horizontal add/sub for non-0/1 element extractions

    We already perform horizontal add/sub if we extract from elements 0 and 1, this patch extends it to non-0/1 element extraction indices (as long as they are from the lowest 128-bit vector).

    Differential Revision: https://reviews.llvm.org/D61263 — rksimon / detail
  3. [globalisel] Update the legalizer documentation

    Summary:
    * The getActionDefinitionsBuilder() is now documented.
      * Includes descriptions of the various actions (legal*, widenScalar*, lower*,
        etc).
      * Includes descriptions of the various predicates (*If, *For,
        *ForCartesianProduct, etc.)
      * Includes the rule-order details
    * Removed the out-of-date prohibition on non-power-of-2 types.
    * Removed the Vector types section since it was incorrect and vectors follow the
      same ruleset as scalars. They're only special in the sense that more of the
      actions and predicates are meaningful for them (e.g. moreElements).
    * Clarified the position on context sensitive legality (which is not permitted)
      and contrasted this with context sensitive legalization (which is permitted).

    Reviewers: bogner, aditya_nandakumar, volkan, aemerson, paquette, arsenm

    Reviewed By: paquette

    Subscribers: wdng, rovka, kristof.beyls, jfb, Petar.Avramovic, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61273 — dsanders / detail
  4. [AMDGPU] gfx1010 GCNRegBankReassign pass

    Reassign registers to reduce register bank conflicts.

    Differential Revision: https://reviews.llvm.org/D61344 — rampitec / detail
  5. Option spell checking: Penalize delimiter flags if input has no argument

    If the user passes a flag like `-version` to a program, it's more likely
    they mean `--version` than `-version:`, since there's no parameter
    passed. Hence, give delimited arguments a penalty of 1 if the user input
    doesn't contain the delimiter or no data after it.

    The motivation is that with this, lld-link can suggest "--version"
    instead of "-version:" for "-version" and "-nodefaultlib" instead of
    "-nodefaultlib:" for "-nodefaultlibs".

    Differential Revision: https://reviews.llvm.org/D61382 — nico / detail
  6. [AMDGPU] gfx1010 GCNNSAReassign pass

    Convert NSA into non-NSA images.

    Differential Revision: https://reviews.llvm.org/D61341 — rampitec / detail
  7. [AMDGPU] gfx1010 MIMG implementation

    Differential Revision: https://reviews.llvm.org/D61339 — rampitec / detail

clang-r359709-t56078-b56078.tar.gz (May 1, 2019 11:55:14 AM)

  1. [Driver] Explicitly request platform rtlib in the Driver pic test

    This test checks whether crtbegin.o and crtend.o appear on the link
    line, but names of these files may be affected by the choice of the
    rtlib, specifically when compiler-rt is used as the default rtlib
    the names will be clang_rt.crtbegin.o and clang_rt.crtend.o instead
    of crtbeginS.o and crtendS.o. To avoid the test failure, explicitly
    request to use the platform rtlib.

    Differential Revision: https://reviews.llvm.org/D61383 — phosek / detail
  2. Bump DIAG_SIZE_SEMA, as we've hit it.

    $ grep 'DIAG_SIZE_SEMA          =' include/clang/Basic/DiagnosticIDs.h
          DIAG_SIZE_SEMA          = 4000,
    $ grep DIAG $(build)/tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc | wc -l
    3499 — scott.linder / detail

clang-r359709-t56078-b56078.tar.gz (May 1, 2019 11:55:14 AM)

  1. [sanitizer] Implement reallocarray.

    Summary:
    It's a cross of calloc and realloc. Sanitizers implement calloc-like check for size
    overflow.

    Reviewers: vitalybuka, kcc

    Subscribers: kubamracek, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61108 — eugenis / detail

clang-r359709-t56078-b56078.tar.gz (May 1, 2019 11:55:14 AM)

  1. [WebAssembly] WASI support for libcxx

    This adds explicit support for the WASI platform to libcxx.

    WASI libc uses some components from musl, however it's not fully compatible
    with musl, so we're planning to stop using _LIBCPP_HAS_MUSL_LIBC and
    customize for WASI libc specifically.

    Differential Revision: https://reviews.llvm.org/D61336

    Reviewers: sbc100, ldionne — djg / detail

clang-r359697-t56077-b56077.tar.gz (May 1, 2019 10:54:42 AM)

  1. [ThinLTO] Fix unreachable code when parsing summary entries.

    Summary:
    Early returns were causing some code to be skipped. This was missed
    since the summary entries are typically at the end of the llvm assembly
    file.

    Fixes PR41663.

    Reviewers: RKSimon, wristow

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61355 — tejohnson / detail
  2. [AMDGPU] gfx1010 DS implementation

    Differential Revision: https://reviews.llvm.org/D61332 — rampitec / detail
  3. Revert "[DAGCombiner] try repeated fdiv divisor transform before building estimate"

    This reverts commit fb9a5307a94e6f1f850e4d89f79103b123f16279 (rL359398)
    because it can cause an infinite loop due to opposing combines. — spatel / detail
  4. Fix 80 column violation. NFCI. — rksimon / detail
  5. [SCEV] Use isKnownViaNonRecursiveReasoning for smax simplification

    Summary:
    Commit
    rL331949: SCEV] Do not use induction in isKnownPredicate for simplification umax

    changed the codepath for umax from isKnownPredicate to
    isKnownViaNonRecursiveReasoning to avoid compile time blow up (and as
    I found out also stack overflows). However, there is an exact copy of
    the code for umax that was lacking this change. In D50167 I want to unify
    these codepaths, but to avoid that being a behavior change for the smax
    case, pull this independent bit out of it.

    Reviewed By: sanjoy
    Differential Revision: https://reviews.llvm.org/D61166 — kfischer / detail

clang-r359697-t56077-b56077.tar.gz (May 1, 2019 10:54:42 AM)

  1. [analyzer][tests][NFC] Add EOF newlines, normalize reference expected files

    Reference expected files not ending with a newline are normalized to
    have said newlines. Additionally `plist-macros-with-expansion.cpp.plist`
    is modified to add a line that is ignored by `%diff_plist`, but not by
    the more sensitive pattern proposed by
    http://lists.llvm.org/pipermail/cfe-dev/2019-April/061904.html for
    `%normalize_plist`. — hubert.reinterpretcast / detail
  2. [analyzer][tests] Use diff_plist, correct order of arguments for missed cases; NFC

    For various files under `clang/test/Analysis`, D52036 applied
    `%diff_plist` to replace `diff` invocations with certain options and
    D56340 swapped the order of the arguments so that the reference file
    comes first. The tests that used `tail` to filter the test output were
    not modified accordingly. This patch applies the corresponding update
    to those tests. — hubert.reinterpretcast / detail

clang-r359690-t56076-b56076.tar.gz (May 1, 2019 9:58:14 AM)

  1. [lit][tests][AIX] Update expected form of diagnostic messages; use `not` to normalize non-zero exit values

    Summary:
    Various tests in the `lit` testing suite expect specific return codes
    and forms of diagnostic message from utility programs. As per
    POSIX.1-2017 XCU Section 1.4, Utility Description Defaults, "[the]
    format of diagnostic messages for most utilities is unspecified".
    The STDERR subsections of the `cat` and `wc` utilities merely indicate
    that "[the] standard error shall be used only for diagnostic messages".
    The corresponding EXIT STATUS subsections merely indicate, with regard
    to errors, an exit value of >0.

    The affected tests are updated to accept the applicable diagnostic
    message as produced by the utilities on AIX. The exit value is
    normalized using `not` as necessary.

    Reviewers: xingxue, sfertile, jasonliu

    Reviewed By: xingxue

    Subscribers: delcypher, jsji, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60553 — hubert.reinterpretcast / detail
  2. [tests] Add host-byteorder-*-endian; update XFAILs of big-endian triples

    Summary:
    Triple components in `XFAIL` lines are tested against the target triple.
    Various tests that are expected to fail on big-endian hosts are marked
    as being `XFAIL` for big-endian targets. This patch corrects these tests
    by having them test against a new `host-byteorder-big-endian` feature.

    Reviewers: xingxue, sfertile, jasonliu

    Reviewed By: xingxue

    Subscribers: jvesely, nhaehnle, fedor.sergeev, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60551 — hubert.reinterpretcast / detail
  3. [llvm-ar][llvm-nm][llvm-size] Change -long-option to --long-option in tests. NFC — maskray / detail
  4. [X86][SSE] Add demanded elts support X86ISD::PMULDQ\PMULUDQ

    Add to SimplifyDemandedVectorEltsForTargetNode and SimplifyDemandedBitsForTargetNode — rksimon / detail
  5. Fix OptTable::findNearest() adding delimiter for free

    Prior to this, OptTable::findNearest() thought that the input `--foo`
    had an editing distance of 0 from an existing flag `--foo=`, which made
    it suggest flags with delimiters more often than flags without one.
    After this, it correctly assigns this case an editing distance of 1.

    Differential Revision: https://reviews.llvm.org/D61373 — nico / detail
  6. [LoopInfo] Faster implementation of setLoopID. NFC.

    Summary:
    This change was part of D46460. However, in the meantime rL341926 fixed the
    correctness issue here. What remained was the performance issue in setLoopID
    where it would iterate through all blocks in the loop and their successors,
    rather than just the predecessor of the header (the later presumably being
    much faster). We already have the `getLoopLatches` to compute precisely these
    basic blocks in an efficient manner, so just use it (as the original commit
    did for `getLoopID`).

    Reviewed By: jdoerfert
    Differential Revision: https://reviews.llvm.org/D61215 — kfischer / detail

clang-r359690-t56076-b56076.tar.gz (May 1, 2019 9:58:14 AM)

  1. [clang-format] Fix bug that misses some function-like macro usages

    Fixes PR41483

    Differential Revision: https://reviews.llvm.org/D61297 — owenpan / detail

clang-r359680-t56074-b56074.tar.gz (May 1, 2019 9:01:08 AM)

  1. [X86][SSE] Add SSE vector shift support to SimplifyDemandedVectorEltsForTargetNode vector splitting — rksimon / detail
  2. Wrap to 80 columns, no behavior change — nico / detail
  3. [X86][SSE] Split 512-bit -> 128-bit vector directly in SimplifyDemandedVectorEltsForTargetNode — rksimon / detail

clang-r359677-t56072-b56072.tar.gz (May 1, 2019 7:08:22 AM)

  1. [X86][SSE] Add 512-bit vector support to SimplifyDemandedVectorEltsForTargetNode vector splitting — rksimon / detail
  2. DAG: allow DAG pointer size different from memory representation.

    In preparation for supporting ILP32 on AArch64, this modifies the SelectionDAG
    builder code so that pointers are allowed to have a larger type when "live" in
    the DAG compared to memory.

    Pointers get zero-extended whenever they are loaded, and truncated prior to
    stores.  In addition, a few not quite so obvious locations need updating:

      * A GEP that has not been marked inbounds needs to enforce the IR-documented
        2s-complement wrapping at the memory pointer size. Inbounds GEPs are
        undefined if they overflow the address space, so no additional operations
        are needed.
      * Signed comparisons would give incorrect results if performed on the
        zero-extended values.

    This shouldn't affect CodeGen for now, but will become active when the AArch64
    ILP32 support is committed. — Tim Northover / detail

clang-r359677-t56072-b56072.tar.gz (May 1, 2019 7:08:22 AM)

  1. [clangd] Delete an unused declaration — maskray / detail

clang-r359677-t56072-b56072.tar.gz (May 1, 2019 7:08:22 AM)

  1. [libFuzzer] Add --dump-input-on-failure to help diagnose AArch64 failures

    The fork-siguser.test and fork.test intermittently fail on the AArch64
    buildbot. Unfortunately these failures are not reproducible on a similar
    machine and seem to fail when the machines are under load. Before
    suggesting the tests be marked unsupported for AArch64 we'd like to see
    if we can get some more information about the failures to see if it helps
    us reproduce. This patch adds --dump-input-on-failure to the FileCheck
    commands to see if we can get some more information about the failures.

    Differential Revision: https://reviews.llvm.org/D61315 — psmith / detail

clang-r359673-t56070-b56070.tar.gz (May 1, 2019 6:02:59 AM)

  1. [X86][SSE] Add X86ISD::PACKSS\PACKUS to SimplifyDemandedVectorEltsForTargetNode vector splitting — rksimon / detail
  2. [X86][SSE] Add scalar horizontal add/sub tests for element extractions from upper lanes

    As suggested on D61263 — rksimon / detail

clang-r359673-t56070-b56070.tar.gz (May 1, 2019 6:02:59 AM)

  1. Get rid of a bunch of 'unused variable' warnings in test when run with debug_level set. NFC — marshall / detail

clang-r359670-t56069-b56069.tar.gz (May 1, 2019 5:06:58 AM)

  1. [X86][SSE] Add X86ISD::UNPCKL\UNPCK to SimplifyDemandedVectorEltsForTargetNode vector splitting — rksimon / detail
  2. [X86][SSE] Move extract_subvector(pshufb) fold to SimplifyDemandedVectorEltsForTargetNode

    This lets us hit more cases than combineExtractSubvector and allows us reuse more code. — rksimon / detail
  3. [llvm-objdump] Print newlines before and after "Disassembly of section ...:"

    This improves readability and the behavior is consistent with GNU objdump.

    The new test test/tools/llvm-objdump/X86/disassemble-section-name.s
    checks we print newlines before and after "Disassembly of section ...:"

    Differential Revision: https://reviews.llvm.org/D61127 — maskray / detail
  4. [X86] SimplifyDemandedVectorEltsForTargetNode - pull out vector halving code. NFCI.

    Pull out the HADD/HSUB code to halve vector widths if the upper half isn't used - prep work to adding support for other opcodes. — rksimon / detail

clang-r359666-t56067-b56067.tar.gz (May 1, 2019 4:10:47 AM)

  1. [X86][SSE] Extract i1 elements from vXi1 bool vectors

    This is an alternative to D59669 which more aggressively extracts i1 elements from vXi1 bool vectors using a MOVMSK.

    Differential Revision: https://reviews.llvm.org/D61189 — rksimon / detail
  2. [yaml2obj] - Report when unknown section is referenced from program header declaration block.

    Previously we did not report this.
    Also this removes multiple lookups in the map
    what cleanups the code.

    Differential revision: https://reviews.llvm.org/D61322 — grimar / detail

clang-r359666-t56067-b56067.tar.gz (May 1, 2019 4:10:47 AM)

  1. Change llvm-{objdump,readobj} -long-option to --long-option or well-known short options in tests. NFC — maskray / detail

clang-r359661-t56066-b56066.tar.gz (May 1, 2019 3:20:31 AM)

  1. [llvm-readobj] Change -t to --symbols in tests. NFC

    -t is --symbols in llvm-readobj but --section-details (unimplemented) in readelf.
    The confusing option should not be used since we aim for improving
    compatibility.

    Keep just one llvm-readobj -t use case in test/tools/llvm-readobj/symbols.test — maskray / detail
  2. [gold] Fix two readelf tests after rL359649 — maskray / detail

clang-r359661-t56066-b56066.tar.gz (May 1, 2019 3:20:31 AM)

  1. [compiler-rt] Use correct spelling of the -Wno-pedantic variable

    This addresses the issue introduced in r359646 which is causing
    sanitizer bots to fail. — phosek / detail

clang-r359658-t56064-b56064.tar.gz (May 1, 2019 1:22:57 AM)

  1. [X86FixupLEAs] Hoist the calls to isLEA out of the 3 separate functions and put it in the basic block instruction loop. NFC

    Now need to check it 3 different times. Just do it once at the top of the loop. — ctopper / detail
  2. Fix test/tools/llvm-readobj/mips-plt.test — maskray / detail

clang-r359658-t56064-b56064.tar.gz (May 1, 2019 1:22:57 AM)

  1. lib/Header: Fix Visual Studio builds try #2

    Summary:
    This is a follow up to r355253 and a better fix than the first attempt
    which was r359257.

    We can't install anything from ${CMAKE_CFG_INTDIR}, because this value
    is only defined at build time, but we still must make sure to copy the
    headers into ${CMAKE_CFG_INTDIR}/lib/clang/$VERSION/include, because the lit
    tests look for headers there.  So for this fix we revert to the
    old behavior of copying the headers to ${CMAKE_CFG_INTDIR}/lib/clang/$VERSION/include
    during the build and then installing them from the source tree.

    Reviewers: smeenai, vzakhari, phosek

    Reviewed By: smeenai, vzakhari

    Subscribers: mgorny, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61220 — tstellar / detail

clang-r359658-t56064-b56064.tar.gz (May 1, 2019 1:22:57 AM)

  1. Use __extension__ to suppress __EH_FRAME_LIST__ warnings

    gcc -pedantic => warning: ISO C forbids empty initializer braces
    clang -pedantic => -Wzero-length-array + -Wgnu-empty-initializer — maskray / detail

clang-r359658-t56064-b56064.tar.gz (May 1, 2019 1:22:57 AM)

  1. [libcxx] Move CMake file to src, avoid using globs

    This addresses the longstanding FIXME and makes libc++ build more
    similar to other runtimes.

    Differential Revision: https://reviews.llvm.org/D61275 — phosek / detail

clang-r359652-t56062-b56062.tar.gz (May 1, 2019 12:26:49 AM)

  1. [llvm-readobj] llvm-readobj --elf-output-style=GNU => llvm-readelf. NFC

    The latter is much more common.

    A dedicated --elf-output-style=GNU test demonstrating it is the same as
    llvm-readelf is sufficient. — maskray / detail

clang-r359652-t56062-b56062.tar.gz (May 1, 2019 12:26:49 AM)

  1. [compiler-rt] Cleanup the --target and --sysroot handling

    This addresses issue introduced in r359646. — phosek / detail

clang-r359649-t56061-b56061.tar.gz (Apr 30, 2019 11:30:54 PM)

  1. [llvm-readobj] Change -long-option to --long-option in tests. NFC

    We use both -long-option and --long-option in tests. Switch to --long-option for consistency.

    In the "llvm-readelf" mode, -long-option is discouraged as it conflicts with grouped short options and it is not accepted by GNU readelf.

    While updating the tests, change llvm-readobj -s to llvm-readobj -S to reduce confusion ("s" is --section-headers in llvm-readobj but --symbols in llvm-readelf). — maskray / detail
  2. Revert "[llvm] r359313 - [PowerPC] Update P9 vector costs for insert/extract element"

    This causes segfaults during optimized builds. More details, including a reproducer, are on the llvm-commits thread for r359313. — dlj / detail

clang-r359647-t56059-b56059.tar.gz (Apr 30, 2019 9:38:57 PM)

  1. Delete outdated comment about DISubprogram. NFC

    rL301501 deleted DisplayName and rearranged the operands. — maskray / detail

clang-r359647-t56059-b56059.tar.gz (Apr 30, 2019 9:38:57 PM)

  1. [compiler-rt] Pass sysroot and disable pedantic for crtbegin.o/crtend.o

    These are needed to make bots happy.

    Differential Revision: https://reviews.llvm.org/D61363 — phosek / detail
  2. [compiler-rt] Rework the object build support

    The initial implementation didn't properly support cross-compilation
    via the runtime build, the updated implementation should address that
    by expanding the CMAKE_C_COMPILE_OBJECT variable with correct values.

    Differential Revision: https://reviews.llvm.org/D61356 — phosek / detail

clang-r359643-t56057-b56057.tar.gz (Apr 30, 2019 8:49:22 PM)

  1. [JITLink] Make sure we explicitly deallocate memory on failure.

    JITLinkGeneric phases 2 and 3 (focused on applying fixups and finalizing memory,
    respectively) may fail for various reasons. If this happens, we need to
    explicitly de-allocate the memory allocated in phase 1 (explicitly, because
    deallocation may also fail and so is implemented as a method returning error).

    No testcase yet: I am still trying to decide on the right way to test totally
    platform agnostic code like this. — Lang Hames / detail

clang-r359643-t56057-b56057.tar.gz (Apr 30, 2019 8:49:22 PM)

  1. [libFuzzer] Disable i386 on non-Linux platforms

    Summary: Disable i386 on non-Linux platforms since it is unwanted and broken on Windows.

    Reviewers: morehouse, rnk

    Reviewed By: morehouse

    Subscribers: mgorny, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61354 — metzman / detail

clang-r359643-t56057-b56057.tar.gz (Apr 30, 2019 8:49:22 PM)

  1. Fix a bunch of unordered container tests that were failing when _LIBCPP_DEBUG was set. — marshall / detail

clang-r359640-t56055-b56055.tar.gz (Apr 30, 2019 7:59:21 PM)

  1. [sanitizer][zorg] Print URL with local reproducer info — Vitaly Buka / detail

clang-r359640-t56055-b56055.tar.gz (Apr 30, 2019 7:59:21 PM)

  1. Make some comments that were meant to be for public documentation
    actually public documentation (i.e. // -> ///). — echristo / detail
  2. [llvm-objcopy] Simplify SHT_NOBITS -> SHT_PROGBITS promotion

    GNU objcopy uses bfd_elf_get_default_section_type to decide the candidate section type,
    which roughly translates to our [a] (I assume SEC_COMMON implies SHF_ALLOC):

      (!(Sec.Flags & ELF::SHF_ALLOC) || Flags & (SectionFlag::SecContents | SectionFlag::SecLoad)))

    Then, it updates the section type in bfd/elf.c:elf_fake_sections if:

      if (this_hdr->sh_type == SHT_NULL)
        this_hdr->sh_type = sh_type; // common case
      else if (this_hdr->sh_type == SHT_NOBITS
               && sh_type == SHT_PROGBITS
               && (asect->flags & SEC_ALLOC) != 0)  // uncommon case
        ...
        this_hdr->sh_type = sh_type;

    If the following condition is met the uncommon branch is executed:

      if (elf_section_type (osec) == SHT_NULL
          && (osec->flags == isec->flags
      || (final_link
          && ((osec->flags ^ isec->flags)
      & ~(SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_RELOC)) == 0)))

    I suggest we just ignore this clause and follow the common case
    behavior, which is done in this patch. Rationales to do so:

    If --set-section-flags is a no-op (osec->flags == isec->flags)
    (corresponds to the "readonly" test in set-section-flags.test), GNU
    objcopy will require (Sec.Flags & ELF::SHF_ALLOC). [a] is essentially:

      Flags & (SectionFlag::SecContents | SectionFlag::SecLoad)

    This special case is not really useful. Non-SHF_ALLOC SHT_NOBITS
    sections do not make much sense and it doesn't matter if they are
    SHT_NOBITS or SHT_PROGBITS.

    For all other RUN lines in set-section-flags.test, the new behavior
    matches GNU objcopy, i.e. this patch improves compatibility.

    Differential Revision: https://reviews.llvm.org/D60189 — maskray / detail
  3. gn build: Fix build on macOS after r359570 / r359527 — nico / detail
  4. gn build: Merge r359626 — nico / detail
  5. [WebAssembly] Update expectations for gcc torture tests

    This is needed to make the wasm waterfall green again
    after we land the update to WASI:
    https://github.com/WebAssembly/waterfall/pull/492

    Differential Revision: https://reviews.llvm.org/D61351 — sbc / detail
  6. [InstCombine] Limit a vector demanded elts rule which was producing invalid IR.

    The demanded elts rules introduced for GEPs in https://reviews.llvm.org/rL356293 replaced vector constants with undefs (by design).  It turns out that the LangRef disallows such cases when indexing structs.  The right fix is probably to relax the langref requirement, and update other passes to expect the result, but for the moment, limit the transform to avoid compiler crashes.

    This should fix https://bugs.llvm.org/show_bug.cgi?id=41624. — reames / detail
  7. [WebAssembly] Test the "wasm32-wasi" triple

    Add triple tests for "wasm32-wasi" and "wasm64-wasi", and also remove the
    "-musl" component from the existing wasm triple tests as we're not using that
    in practice (WASI libc is derived in part from musl, but it is not fully
    musl-compatible).

    Differential Revision: https://reviews.llvm.org/D61334

    Reviewer: sbc100 — djg / detail
  8. [MemorySSA] Invalidate MemorySSA if AA or DT are invalidated.

    Summary:
    MemorySSA keeps internal pointers of AA and DT.
    If these get invalidated, so should MemorySSA.

    Reviewers: george.burgess.iv, chandlerc

    Subscribers: jlebar, Prazek, llvm-commits

    Tags: LLVM

    Differential Revision: https://reviews.llvm.org/D61043 — asbirlea / detail
  9. [ORC] Move SimpleCompiler/ConcurrentIRCompiler definitions into a .cpp file.

    SimpleCompiler is no longer templated, so there's no reason for this code to be
    in a header any more. — Lang Hames / detail
  10. [llvm-profdata] Fix indentation error in docs. NFC. — xur / detail
  11. [AliasAnalysis/NewPassManager] Invalidate AAManager less often.

    Summary:
    This is a redo of D60914.

    The objective is to not invalidate AAManager, which is stateless, unless
    there is an explicit invalidate in one of the AAResults.

    To achieve this, this patch adds an API to PAC, to check precisely this:
    is this analysis not invalidated explicitly == is this analysis not abandoned == is this analysis stateless, so preserved without explicitly being marked as preserved by everyone

    Reviewers: chandlerc

    Subscribers: mehdi_amini, jlebar, george.burgess.iv, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61284 — asbirlea / detail
  12. [AMDGPU] gfx1010 VMEM and SMEM implementation

    Differential Revision: https://reviews.llvm.org/D61330 — rampitec / detail
  13. [llvm-profdata] Fix indentation error. NFC — xur / detail
  14. Add an include of Module since we actually access it now and remove
    the forward declaration. — echristo / detail
  15. Fix a few -Werror warnings:
    - Remove a variable only used in an assert
    - Fix pessimizing move warning around copy elision — echristo / detail
  16. [PassManagerBuilder] Add option for interleaved loops, for loop vectorize.

    Summary:
    Match NewPassManager behavior: add option for interleaved loops in the
    old pass manager, and use that instead of the flag used to disable loop unroll.
    No changes in the defaults.

    Reviewers: chandlerc

    Subscribers: mehdi_amini, jlebar, dmgreen, hsaito, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61030 — asbirlea / detail
  17. [JITLink] Add debugging output to print resolved external atoms. — Lang Hames / detail
  18. [ORC][JITLink] Name in-memory compiled objects after their source modules.

    In-memory compiled object buffer identifiers will now be derived from the
    identifiers of their source IR modules. This makes it easier to connect
    in-memory objects with their source modules in debugging output. — Lang Hames / detail
  19. [llvm-profdata] Add overlap command to compute similarity b/w two profile files

    Add overlap functionality to llvm-profdata tool to compute the similarity
    between two profile files.

    Differential Revision: https://reviews.llvm.org/D60977 — xur / detail
  20. [NFC][InlineCost] cleanup - comments, overflow handling.

    Reviewed By: apilipenko
    Tags: #llvm
    Differential Revision: https://reviews.llvm.org/D60751 — fedor.sergeev / detail
  21. [X86][SSE] Fold extract_subvector(extend(x)) -> extend_vector_inreg(x)

    This adds any extend support - folding to zero_extend_vector_inreg (PMOVZX) for legality

    Minor improvement for PR39709 — rksimon / detail
  22. [WebAssembly] Fix test after r359602

    Update the expected output for this test now that the EXPLICIT_NAME
    flag is being printed. — djg / detail
  23. Fix stack-use-after free after r359580

    `Candidate` was a StringRef refering to a temporary string.
    Instead, create a local variable for the string and use
    a StringRef referring to that. — nico / detail
  24. [WebAssembly] Support EXPLICIT_NAME symbols in llvm-readobj

    Teach llvm-readobj about WASM_SYMBOL_EXPLICIT_NAME.

    Differential Revision: https://reviews.llvm.org/D61323

    Reviewer: sbc100 — djg / detail
  25. [WebAssembly] Support f16 libcalls

    Add support for f16 libcalls in WebAssembly. This entails adding signatures
    for the remaining F16 libcalls, and renaming gnu_f2h_ieee/gnu_h2f_ieee to
    truncsfhf2/extendhfsf2 for consistency between f32 and f64/f128 (compiler-rt
    already supports this).

    Differential Revision: https://reviews.llvm.org/D61287

    Reviewer: dschuff — djg / detail
  26. [X86] Remove if that's always true

    It's been like this since it was added in a refactor of this code.

    Fixes PR41659 — ctopper / detail
  27. [SimplifyLibCalls] Clean up code (NFC)

    Fix pointer check after dereferencing (PR41665). — evandro / detail
  28. [AArch64] add more tests for constant folding failures; NFC — spatel / detail
  29. [X86] If PreprocessISelDAG reorders a load before a call, make sure we remove dead nodes from the graph

    The reordering can leave at least a dead TokenFactor in the graph. This cause the linearize scheduler to fail with something like the assert seen in PR22614. This is only one of many ways we can break the linearize scheduler today so I can't say for sure that any of the other failures in that bug were caused by this issue.

    This takes the heavy hammer approach of just running RemoveDeadNodes unconditionally at the end of the PreprocessISelDAG. If this turns out to be a compile time hit, we can try to refine it.

    Differential Revision: https://reviews.llvm.org/D61164 — ctopper / detail
  30. [X86] Initial cleanups on the FixupLEAs pass. Separate Atom LEA creation from other LEA optimizations.

    This removes some of the class variables. Merge basic block processing into
    runOnMachineFunction to keep the flags local.

    Pass MachineBasicBlock around instead of an iterator. We can get the iterator in
    the few places that need it. Allows a range-based outer for loop.

    Separate the Atom optimization from the rest of the optimizations. This allows
    fixupIncDec to create INC/DEC and still allow Atom to turn it back into LEA
    when profitable by its heuristics.

    I'd like to improve fixupIncDec to turn LEAs into ADD any time the base or index
    register is equal to the destination register. This is profitable regardless of
    the various slow flags. But again we would want Atom to be able to undo that.

    Differential Revision: https://reviews.llvm.org/D60993 — ctopper / detail
  31. Re-reland "[Option] Fix PR37006 prefix choice in findNearest"

    This was first reviewed in https://reviews.llvm.org/D46776 and
    landed in r332299, but got reverted because it broke the PS4
    bots.

    https://reviews.llvm.org/D50410 fixed this, and then this
    change was re-reviewed at https://reviews.llvm.org/D50515 and
    relanded in r341329. It got reverted due to causing MSan issues.
    However, nobody wrote down the error message and the bot link
    is dead, so I'm relanding this to capture the MSan error.
    I'll then either fix it, or copy it somewhere and revert if
    fixing looks difficult. — nico / detail

clang-r359640-t56055-b56055.tar.gz (Apr 30, 2019 7:59:21 PM)

  1. Fix auto-init test

    r359628 changed the initialization of padding to follow C, but I didn't update the C++ tests. — jfb / detail
  2. [WebAssembly] Use the "wasm32-wasi" triple in tests

    Similar to https://reviews.llvm.org/D61334, update clang tests to use the
    "wasm32-wasi" triple, removing the "-musl" environment and omitting the
    "-unknown" vendor.

    Differential Revision: https://reviews.llvm.org/D61338

    Reviewer: sbc100 — djg / detail
  3. Variable auto-init: don't initialize aggregate padding of all aggregates

    Summary:
    C guarantees that brace-init with fewer initializers than members in the
    aggregate will initialize the rest of the aggregate as-if it were static
    initialization. In turn static initialization guarantees that padding is
    initialized to zero bits.

    Quoth the Standard:

    C17 6.7.9 Initialization ❡21

    If there are fewer initializers in a brace-enclosed list than there are elements
    or members of an aggregate, or fewer characters in a string literal used to
    initialize an array of known size than there are elements in the array, the
    remainder of the aggregate shall be initialized implicitly the same as objects
    that have static storage duration.

    C17 6.7.9 Initialization ❡10

    If an object that has automatic storage duration is not initialized explicitly,
    its value is indeterminate. If an object that has static or thread storage
    duration is not initialized explicitly, then:

    * if it has pointer type, it is initialized to a null pointer;
    * if it has arithmetic type, it is initialized to (positive or unsigned) zero;
    * if it is an aggregate, every member is initialized (recursively) according to
       these rules, and any padding is initialized to zero bits;
    * if it is a union, the first named member is initialized (recursively)
       according to these rules, and any padding is initialized to zero bits;

    <rdar://problem/50188861>

    Reviewers: glider, pcc, kcc, rjmccall, erik.pilkington

    Subscribers: jkorous, dexonsmith, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61280 — jfb / detail
  4. Remove two unnecessary wrappers of canPassInRegisters

    These extra layers aren't necessary. — rnk / detail
  5. Set LoopInterleaved in the PassManagerBuilder.

    Summary: Corresponds to D61030.

    Subscribers: jlebar, cfe-commits, llvm-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61142 — asbirlea / detail
  6. [Driver] Support compiler-rt crtbegin.o/crtend.o for Linux

    When compiler-rt is selected as the runtime library for Linux targets
    use its crtbegin.o/crtend.o implemenetation rather than platform one
    if available.

    Differential Revision: https://reviews.llvm.org/D59264 — phosek / detail
  7. Add requires amdgpu-registered-target for amdgpu-float16.cpp — yaxunl / detail
  8. AMDGPU: Enable _Float16 — yaxunl / detail
  9. [LibTooling] Fix broken test after r359574.

    r359574 changed the way that failures are reported, which broke the test TransformerTest.NodePartNameDeclRefFailure which detects a faiure. — ymandel / detail
  10. [LibTooling] Change Transformer's TextGenerator to a partial function.

    Summary:
    Changes the signature of the TextGenerator std::function to return an Expected<std::string>
    instead of std::string to allow for (non-fatal) failures.  Previously, we
    expected that any failures would be expressed with assertions. However, that's
    unfriendly to running the code in servers or other places that don't want their
    library calls to crash the program.

    Correspondingly, updates Transformer's handling of failures in TextGenerators
    and the signature of `ChangeConsumer`.

    Reviewers: ilya-biryukov

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61015 — ymandel / detail

clang-r359640-t56055-b56055.tar.gz (Apr 30, 2019 7:59:21 PM)

  1. [libFuzzer] Fix failing test: sigint.test

    Summary:
    Fix sigint.test by making it require msan rather
    than enumerating unsupported platforms.

    Reviewers: kcc

    Reviewed By: kcc

    Subscribers: #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61353 — metzman / detail
  2. Added test. — hctim / detail
  3. [sanitizer_common] Added 64-bit signed flag parser.

    Summary: Adds a 64-bit signed flag parser for GWP-ASan's use.

    Reviewers: vlad.tsyrklevich, eugenis

    Subscribers: kubamracek, #sanitizers, llvm-commits, vitalybuka, morehouse, pcc, kcc

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61342 — hctim / detail
  4. [libFuzzer] temporarily disable a test on windows, where there is no memmem in the usual place — kcc / detail
  5. [libFuzzer] add MagicSeparatorTest — kcc / detail
  6. Revert r359325 "[NFC][Sanitizer] Change "return type" of INTERCEPT_FUNCTION to void"

    Changing INTERCEPT_FUNCTION to return void is not functionally correct.
    IMO the best way to communicate failure or success of interception is
    with a return value, not some external address comparison.

    This change was also creating link errors for _except_handler4_common,
    which is exported from ucrtbase.dll in 32-bit Windows.

    Also revert dependent changes r359362 and r359466. — rnk / detail
  7. [libFuzzer] Replace -seed_corpus to better support fork mode on Win

    Summary:
    Pass seed corpus list in a file to get around argument length limits on Windows.
    This limit was preventing many uses of fork mode on Windows.

    Reviewers: kcc, morehouse

    Reviewed By: kcc

    Subscribers: #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D60980 — metzman / detail
  8. [compiler-rt][builtins][sanitizers] Update compiler-rt test cases for
    compatibility with system's toolchain

    This patch aims to:
    - Guard ompiler-rt/test/builtins/Unit/compiler_rt_logb_test.c with macros, so
    the test runs on GLIBC versions >= 2.23. This is because the test relies on
    comparing its computed values to libm. Oolder versions might not compute to the
    same value as the compiler-rt value.
    - Update compiler-rt/test/sanitizer_common/TestCases/Posix/getpw_getgr.cc
    so that std::string is not used, since false positives may be detected.

    Differential Revision: https://reviews.llvm.org/D60644 — amyk / detail
  9. Reland "[compiler-rt] Simple crtbegin.o and crtend.o implementation"

    Clang relies on existence of certain symbols that are normally
    provided by crtbegin.o/crtend.o. However, LLVM does not currently
    provide implementation of these files, instead relying on either
    libgcc or implementations provided as part of the system.

    This change provides an initial implementation of crtbegin.o/crtend.o
    that can be used on system that don't provide crtbegin.o/crtend.o as
    part of their C library.

    Differential Revision: https://reviews.llvm.org/D28791 — phosek / detail
  10. fix broken test — metzman / detail
  11. remove extra zeros — metzman / detail
  12. remove stale comment — metzman / detail
  13. change order — metzman / detail
  14. fix comment — metzman / detail
  15. [libFuzzer] Enable for i386

    Summary: Get libFuzzer to build on i386 and fix tests.

    Subscribers: mgorny, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D61070 — metzman / detail
  16. Fix issues with testing for i386 — metzman / detail
  17. Enable x86 builds — metzman / detail
  18. Revert "[compiler-rt] Simple crtbegin.o and crtend.o implementation"

    This reverts commit r359576 since it's failing on Windows bots. — phosek / detail
  19. [compiler-rt] Simple crtbegin.o and crtend.o implementation

    Clang relies on existence of certain symbols that are normally
    provided by crtbegin.o/crtend.o. However, LLVM does not currently
    provide implementation of these files, instead relying on either
    libgcc or implementations provided as part of the system.

    This change provides an initial implementation of crtbegin.o/crtend.o
    that can be used on system that don't provide crtbegin.o/crtend.o as
    part of their C library.

    Differential Revision: https://reviews.llvm.org/D28791 — phosek / detail

clang-r359640-t56055-b56055.tar.gz (Apr 30, 2019 7:59:21 PM)

  1. Support overaligned types in `aligned_storage`.

    Summary:
    The current implementation of aligned storage was written before we had `alignas`, so it used a list of builtin types to force the alignment. But this doesn't work overaligned requests.

    This patch adds a fallback case supporting over-alignment. It only affects case that were previously ill-formed.

    Reviewers: rsmith, ldionne, dlj, mclow.lists

    Reviewed By: mclow.lists

    Subscribers: mclow.lists, dexonsmith, libcxx-commits

    Differential Revision: https://reviews.llvm.org/D61301 — ericwf / detail
  2. [libc++][CMake] Refactor how we link against system libraries

    Summary:
    Instead of populating the global LIBCXX_LIBRARIES, we use the link-time
    dependency management built into CMake to propagate link flags. This
    leads to a cleaner and easier-to-follow build.

    Reviewers: phosek, smeenai, EricWF

    Subscribers: mgorny, christof, jkorous, dexonsmith, jfb, mstorsjo, libcxx-commits

    Tags: #libc

    Differential Revision: https://reviews.llvm.org/D60969 — Louis Dionne / detail

clang-r359570-t56023-b56023.tar.gz (Apr 30, 2019 10:42:04 AM)

  1. gn build: Add check-clangd target after r3359424

    r359527 already merged some of that to the GN build,
    but it was missing some bits as well.

    The check-clangd target works (at least for now) differently than all
    the other check-foo targets, see https://reviews.llvm.org/D61187

    For that reason, there's no gni file and the generated lit configs are
    not (yet?) added to llvm-lit/BUILD.gn. — nico / detail
  2. Add llvm-profdata to LLVM_TOOLCHAIN_TOOLS

    This is required for using PGO on Windows but isn't in the Windows
    release packages. Windows packages are built with
    LLVM_INSTALL_TOOLCHAIN_ONLY so only includes llvm "tools" listed here.

    Differential Revision: https://reviews.llvm.org/D61317 — russell_gallop / detail

clang-r359568-t56021-b56021.tar.gz (Apr 30, 2019 9:45:47 AM)

  1. [llvm-objcopy] Add RISC-V support for -B/-O

    Reviewers: jorgbrown, espindola, alexshap, jhenderson

    Subscribers: emaste, arichardson, fedor.sergeev, jakehehrlich, kito-cheng, shiva0217, MaskRay, rogfer01, rkruppe, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61272 — rupprecht / detail

clang-r359568-t56021-b56021.tar.gz (Apr 30, 2019 9:45:47 AM)

  1. [scudo][standalone] Add the memory reclaiming mechanism

    Summary:
    This CL implements the memory reclaiming function `releaseFreeMemoryToOS`
    and its associated classes. Most of this code was originally written by
    Aleksey for the Primary64 in sanitizer_common, and I made some changes to
    be able to implement 32-bit reclaiming as well. The code has be restructured
    a bit to accomodate for freelist of batches instead of the freearray used
    in the current sanitizer_common code.

    Reviewers: eugenis, vitalybuka, morehouse, hctim

    Reviewed By: vitalybuka

    Subscribers: srhines, mgorny, delcypher, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D61214 — cryptoad / detail

clang-r359566-t56020-b56020.tar.gz (Apr 30, 2019 8:49:41 AM)

  1. [SelectionDAG] remove div-by-zero constant folding restriction

    We don't have this restriction in IR, so it should not be here
    either simply out of consistency. Code that wants to handle FP
    exceptions is expected to use the 'strict' variants of these
    nodes.

    We don't get the frem case because frem by 0.0 produces NaN (invalid),
    and that's the remaining check here (so the removed check for frem
    was dead code AFAIK).

    This is the only place in SDAG that uses "HasFPExceptions", so I
    think we should remove that entirely as a follow-up patch. — spatel / detail
  2. [llvm-nm] Add --special-syms no-op flag

    Differential revision: https://reviews.llvm.org/D60502 — evgeny777 / detail

clang-r359566-t56020-b56020.tar.gz (Apr 30, 2019 8:49:41 AM)

  1. [clangd] gen_std uses multiprocessing pool to be fast. While here, log ambiguous symbols. NFC — sammccall / detail

clang-r359562-t56016-b56016.tar.gz (Apr 30, 2019 7:53:44 AM)

  1. gn build: Merge r359455 — nico / detail
  2. [AArch64] add tests for fdiv/frem constant folding (PR41668); NFC — spatel / detail
  3. [TableGen] Fix null pointer dereferencing in token parser.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail

clang-r359562-t56016-b56016.tar.gz (Apr 30, 2019 7:53:44 AM)

  1. Fix inconsistency in calculating DIAG_START_ values.

    This was introduced at r313975. As DIAG_SIZE_CROSSTU and
    DIAG_SIZE_COMMENT are both 100 this should be NFC.

    Differential Revision: https://reviews.llvm.org/D61264 — russell_gallop / detail

clang-r359557-t56014-b56014.tar.gz (Apr 30, 2019 6:56:59 AM)

  1. vs integration: vs2019 support — hans / detail
  2. [cmake] Fix error message on simulated VS version check

    For clang-cl self hosts in VS2015 environment this was reporting: "Host
    Clang must have at least -fms-compatibility-version=19.00.24213.1, your
    version is 9.0.0".

    This check fires as CMake detects the simulated environment as _MSC_VER
    1900, which is truncated. This makes it less than the required
    19.00.24213.1.

    Differential revision: https://reviews.llvm.org/D61188 — russell_gallop / detail
  3. Revert rL359519 : [MemorySSA] Invalidate MemorySSA if AA or DT are invalidated.

    Summary:
    MemorySSA keeps internal pointers of AA and DT.
    If these get invalidated, so should MemorySSA.

    Reviewers: george.burgess.iv, chandlerc

    Subscribers: jlebar, Prazek, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61043
    ........
    This was causing windows build bot failures — rksimon / detail
  4. [SLP] Lit test that cannot get vectorized due to lack of look-ahead operand reordering heuristic.

    The code in this test is not vectorized by SLP because its operand reordering cannot look beyond the immediate predecessors.
    This will get fixed in a follow-up patch that introduces the look-ahead operand reordering heuristic.

    Committed on behalf of @vporpo (Vasileios Porpodas)

    Differential Revision: https://reviews.llvm.org/D61283 — rksimon / detail
  5. [llvm-objcopy] - Check dynamic relocation sections for broken references.

    This is a fix for https://bugs.llvm.org/show_bug.cgi?id=41371.

    Currently, it is possible to break the sh_link field of the dynamic relocation section
    by removing the section it refers to. The patch fixes an issue and adds 2 test cases.

    One of them shows that it does not seem possible to break the sh_info field.
    I added an assert to verify this.

    Differential revision: https://reviews.llvm.org/D60825 — grimar / detail
  6. Update checks in an instcombine test, NFC

    This reduces the delta in some incoming work that changes this test. — jmorse / detail
  7. [ARM] Implement TTI::getMemcpyCost

    This implements TargetTransformInfo method getMemcpyCost, which estimates the
    number of instructions to which a memcpy instruction expands to.

    Differential Revision: https://reviews.llvm.org/D59787 — sjoerdmeijer / detail
  8. Fix for bug 41512: lower INSERT_VECTOR_ELT(ZeroVec, 0, Elt) to SCALAR_TO_VECTOR(Elt) for all SSE flavors

    Current LLVM uses pxor+pinsrb on SSE4+ for INSERT_VECTOR_ELT(ZeroVec, 0, Elt) insead of much simpler movd.
    INSERT_VECTOR_ELT(ZeroVec, 0, Elt) is idiomatic construct which is used e.g. for _mm_cvtsi32_si128(Elt) and for lowest element initialization in _mm_set_epi32.
    So such inefficient lowering leads to significant performance digradations in ceratin cases switching from SSSE3 to SSE4.
    https://bugs.llvm.org/show_bug.cgi?id=41512

    Here INSERT_VECTOR_ELT(ZeroVec, 0, Elt) is simply converted to SCALAR_TO_VECTOR(Elt) when applicable since latter is closer match to desired behavior and always efficiently lowered to movd and alike.

    Committed on behalf of @Serge_Preis (Serge Preis)

    Differential Revision: https://reviews.llvm.org/D60852 — rksimon / detail

clang-r359557-t56014-b56014.tar.gz (Apr 30, 2019 6:56:59 AM)

  1. Fix gcc "-Wdangling-else" warning. NFCI. — rksimon / detail
  2. Fix gcc "-Wdangling-else" warnings. NFCI. — rksimon / detail

clang-r359557-t56014-b56014.tar.gz (Apr 30, 2019 6:56:59 AM)

  1. Fix Wpedantic "default argument specified for lambda parameter" warning. NFCI. — rksimon / detail

clang-r359544-t56008-b56008.tar.gz (Apr 30, 2019 4:28:25 AM)

  1. Revert r359520 — xbolva00 / detail
  2. [TargetLowering] findOptimalMemOpLowering. NFCI.

    This was a local static funtion in SelectionDAG, which I've promoted to
    TargetLowering so that I can reuse it to estimate the cost of a memory
    operation in D59787.

    Differential Revision: https://reviews.llvm.org/D59766 — sjoerdmeijer / detail
  3. [ARM GlobalISel] Widen small shift operands

    The legalizer was already widening the shift amount. Add tests for that
    behaviour, and also support widening the shifted value. — rovka / detail
  4. [AsmPrinter] Make AsmPrinter::HandlerInfo::Handler a unique_ptr

    Handlers.clear() in AsmPrinter::doFinalization() will destroy these handlers.
    A unique_ptr makes the ownership clearer. — maskray / detail
  5. [ARM GlobalISel] Be more careful about bailing out

    Bail out on function arguments/returns with types aggregating an
    unsupported type. This fixes cases where we would happily and
    incorrectly lower functions taking e.g. [1 x i64] parameters, when we
    don't even support plain i64 yet. — rovka / detail

clang-r359544-t56008-b56008.tar.gz (Apr 30, 2019 4:28:25 AM)

  1. [analyzer][UninitializedObjectChecker] PR41611: Regard vector types as primitive

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

    Similarly to D61106, the checker ran over an llvm_unreachable for vector types:

    struct VectorSizeLong {
      VectorSizeLong() {}
      __attribute__((__vector_size__(16))) long x;
    };

    void __vector_size__LongTest() {
      VectorSizeLong v;
    }
    Since, according to my short research,

    "The vector_size attribute is only applicable to integral and float scalars,
    although arrays, pointers, and function return values are allowed in conjunction
    with this construct."
    [src: https://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Vector-Extensions.html#Vector-Extensions]

    vector types are safe to regard as primitive.

    Differential Revision: https://reviews.llvm.org/D61246 — szelethus / detail

clang-r359537-t56005-b56005.tar.gz (Apr 30, 2019 3:02:10 AM)

  1. [TargetLowering] Change getOptimalMemOpType to take a function attribute list

    The MachineFunction wasn't used in getOptimalMemOpType, but more importantly,
    this allows reuse of findOptimalMemOpLowering that is calling getOptimalMemOpType.

    This is the groundwork for the changes in D59766 and D59787, that allows
    implementation of TTI::getMemcpyCost.

    Differential Revision: https://reviews.llvm.org/D59785 — sjoerdmeijer / detail
  2. MSan: handle llvm.lifetime.start intrinsic

    Summary:
    When a variable goes into scope several times within a single function
    or when two variables from different scopes share a stack slot it may
    be incorrect to poison such scoped locals at the beginning of the
    function.
    In the former case it may lead to false negatives (see
    https://github.com/google/sanitizers/issues/590), in the latter - to
    incorrect reports (because only one origin remains on the stack).

    If Clang emits lifetime intrinsics for such scoped variables we insert
    code poisoning them after each call to llvm.lifetime.start().
    If for a certain intrinsic we fail to find a corresponding alloca, we
    fall back to poisoning allocas for the whole function, as it's now
    impossible to tell which alloca was missed.

    The new instrumentation may slow down hot loops containing local
    variables with lifetime intrinsics, so we allow disabling it with
    -mllvm -msan-handle-lifetime-intrinsics=false.

    Reviewers: eugenis, pcc

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60617 — glider / detail
  3. [DebugInfo] DW_OP_deref_size in PrologEpilogInserter.

    The PrologEpilogInserter need to insert a DW_OP_deref_size before
    prepending a memory location expression to an already implicit
    expression to avoid having the existing expression act on the memory
    address instead of the value behind it.

    The reason for using DW_OP_deref_size and not plain DW_OP_deref is that
    big-endian targets need to read the right size as simply truncating a
    larger read would yield the wrong result (LSB bytes are not at the lower
    address).

    This re-commit fixes issues reported in the first one. Namely deref was
    inserted under wrong conditions and additionally the deref_size argument
    was incorrectly encoded.

    Differential Revision: https://reviews.llvm.org/D59687 — markus / detail

clang-r359533-t56002-b56002.tar.gz (Apr 29, 2019 9:46:03 PM)

  1. [NFC][PowerPC] Use -check-prefixes to simplify the check in code-align.ll

    Summary:
    When checking the same output, we can use the `-check-prefixes` to simplify the check.
    For example, if we want to check below output.
    ```
    ; GENERIC-LABEL: .globl  foo
    ; BASIC-LABEL: .globl  foo
    ; PWR-LABEL: .globl  foo
    ; GENERIC: .p2align  2
    ; BASIC: .p2align  4
    ; PWR: .p2align  4
    ; GENERIC: @foo
    ; BASIC: @foo
    ; PWR: @foo

    ```
    If we use `-check-prefixes`
    ```
    ... -check-prefixes=CHECK,GENERAL
    ... -check-prefixes=CHECK,BASIC
    ... -check-prefixes=CHECK,PWR
    ```
    Above check can be simplify to:
    ```
    ; CHECK-LABEL: .globl  foo
    ; GENERIC: .p2align  2
    ; BASIC: .p2align  4
    ; PWR: .p2align  4
    ; CHECK: @foo
    ```

    Reviewed By: hfinkel
    Differential Revision: https://reviews.llvm.org/D61227 — zhangkang / detail
  2. [DAGCombiner] Do not generate ISD::ADDE node if adde is not legal for the target when combine ISD::TRUNC node

    Do not combine (trunc adde(X, Y, Carry)) into (adde trunc(X), trunc(Y), Carry),
    if adde is not legal for the target. Even it's at type-legalize phase.
    Because adde is special and will not be legalized at operation-legalize phase later.

    This fixes: PR40922
    https://bugs.llvm.org/show_bug.cgi?id=40922

    Differential Revision: https://reviews.llvm.org//D60854 — wuzish / detail
  3. [ORC] Fix an ambiguous call in a unit test. — Lang Hames / detail

clang-r359533-t56002-b56002.tar.gz (Apr 29, 2019 9:46:03 PM)

  1. [analyzer] Treat functions without run-time branches as "small".

    Currently we always inline functions that have no branches, i.e. have exactly
    three CFG blocks: ENTRY, some code, EXIT. This makes sense because when there
    are no branches, it means that there's no exponential complexity introduced
    by inlining such function. Such functions also don't trigger various fundamental
    problems with our inlining mechanism, such as the problem of inlined
    defensive checks.

    Sometimes the CFG may contain more blocks, but in practice it still has
    linear structure because all directions (except, at most, one) of all branches
    turned out to be unreachable. When this happens, still treat the function
    as "small". This is useful, in particular, for dealing with C++17 if constexpr.

    Differential Revision: https://reviews.llvm.org/D61051 — dergachev / detail
  2. [analyzer] SmartPtrModeling: Fix a null dereference.

    Don't crash when trying to model a call in which the callee is unknown
    in compile time, eg. a pointer-to-member call.

    Differential Revision: https://reviews.llvm.org/D61285 — dergachev / detail

clang-r359527-t56000-b56000.tar.gz (Apr 29, 2019 7:54:07 PM)

  1. [clangd] Fix GN build — Vitaly Buka / detail

clang-r359527-t56000-b56000.tar.gz (Apr 29, 2019 7:54:07 PM)

  1. [NFC] typo — jfb / detail
  2. [NFC] typo — jfb / detail

clang-r359527-t56000-b56000.tar.gz (Apr 29, 2019 7:54:07 PM)

  1. Implement LWG 2960: nonesuch is insufficiently useless — marshall / detail
  2. Mark LWG#2977 as 'Nothing to do'. NFC — marshall / detail

clang-r359522-t55999-b55999.tar.gz (Apr 29, 2019 6:58:00 PM)

  1. [CommandLine} Wire-up cl::list::setDefault() so it will work correctly with cl::ResetAllOptionOccurrences() in unittests.  Part 2 of 5

    Summary:
    With this change, cl::ResetAllOptionOccurrences() clears
    cl::list just like cl::opt, allowing users to call
    cl::ParseCommandLineOptions() multiple times without interference from
    previous calls.

    Reviewers: rnk

    Reviewed By: rnk

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61234 — dhinton / detail
  2. [ORC] Allow JITDylib definition generators to return Errors.

    Background: A definition generator can be attached to a JITDylib to generate
    new definitions in response to queries. For example: a generator that forwards
    calls to dlsym can map symbols from a dynamic library into the JIT process on
    demand.

    If definition generation fails then the generator should be able to return an
    error. This allows the JIT API to distinguish between the case where a
    generator does not provide a definition, and the case where it was not able to
    determine whether it provided a definition due to an error.

    The immediate motivation for this is cross-process symbol lookups: If the
    remote-lookup generator is attached to a JITDylib early in the search list, and
    if a generator failure is misinterpreted as "no definition in this JITDylib" then
    lookup may continue and bind to a different definition in a later JITDylib, which
    is a bug. — Lang Hames / detail

clang-r359520-t55997-b55997.tar.gz (Apr 29, 2019 6:01:42 PM)

  1. [PDB] Fixed null pointer dereference

    Reviewers: zturner, rnk

    Reviewed By: rnk

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61279 — xbolva00 / detail
  2. [MemorySSA] Invalidate MemorySSA if AA or DT are invalidated.

    Summary:
    MemorySSA keeps internal pointers of AA and DT.
    If these get invalidated, so should MemorySSA.

    Reviewers: george.burgess.iv, chandlerc

    Subscribers: jlebar, Prazek, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61043 — asbirlea / detail

clang-r359517-t55996-b55996.tar.gz (Apr 29, 2019 5:05:33 PM)

  1. Add __builtin_dcbf support for PPC

    Summary:
    This patch adds support for __builtin_dcbf for PPC.

    __builtin_dcbf copies the contents of a modified block from the data cache
    to main memory and flushes the copy from the data cache.

    Differential revision: https://reviews.llvm.org/D59843 — saghir / detail
  2. [PDB] Fix hash function used to write /src/headerblock

    lld-link used to write PDB files that DIA couldn't recover natvis
    files from if:

    - The global strings table was > 64kiB
    - There were at least 3 natvis files

    The cause was that the hash function for the /src/headerblock stream
    was incorrect: It needs to be truncated to 16 bit.

    If the global strings table was <= 64kiB, truncating to 16 bit is a
    no-op, so this wasn't needed for small programs.

    If there are only 1 or 2 natvis files, then the growth strategy in
    HashTable::grow() would mean the hash table would have 2 buckets (for 1
    natvis file) or 4 buckets (for 4 natvis files), and since the hash
    function is used modulo number of buckets, and since 2 and 4 divide
    0x10000, the missing `% 0x10000` is a no-op there too. For 3 natvis
    files, the hash table grows to 6 buckets, which has a factor that's not
    common with 0x10000 and the difference starts to matter.

    Fixes PR41626.

    Differential Revision: https://reviews.llvm.org/D61277 — nico / detail
  3. gn build: Merge r359252 — nico / detail
  4. [ORC] Replace the LLJIT/LLLazyJIT Create methods with Builder utilities.

    LLJITBuilder and LLLazyJITBuilder construct LLJIT and LLLazyJIT instances
    respectively. Over time these will allow more configurable options to be
    added while remaining easy to use in the default case, which for default
    in-process JITing is now:

    auto J = ExitOnErr(LLJITBuilder.create()); — Lang Hames / detail
  5. [JITLink] Move a typedef.

    The FinalizeContinuation typedef belongs on the Allocation class, not the
    allocator. — Lang Hames / detail
  6. [WebAssembly] Make an assertion message prettier. NFC.

    This is a follow-up to https://reviews.llvm.org/D59521. — djg / detail

clang-r359517-t55996-b55996.tar.gz (Apr 29, 2019 5:05:33 PM)

  1. Add __builtin_dcbf support for PPC

    Summary:
    This patch adds support for __builtin_dcbf for PPC.

    __builtin_dcbf copies the contents of a modified block from the data cache
    to main memory and flushes the copy from the data cache.

    Differential revision: https://reviews.llvm.org/D59843 — saghir / detail
  2. [Diagnostics] Support -Wtype-limits for GCC compatibility

    Summary:
    GCC's  -Wtype-limits (part of -Wextra):
    Warn if a comparison is always true or always false due to the limited range of the data type

    Reviewers: rsmith, aaron.ballman, lebedev.ri, thakis

    Reviewed By: rsmith

    Subscribers: lebedev.ri, jdoerfert, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D58841 — xbolva00 / detail
  3. Re-land r359250, [COFF] Statically link certain runtime library functions

    Reverts the revert of r359251, this time with fixed tests.

    Differential Revision: https://reviews.llvm.org/D55229 — rnk / detail
  4. Make test more robust by writing stdout/stderr to different files.

    Our internal build bots were failing this test randomly as the stderr
    output was emitted to the file in the middle of the stdout output
    line that the test was checking. — dyung / detail

clang-r359508-t55994-b55994.tar.gz (Apr 29, 2019 4:09:25 PM)

  1. [ThinLTO] Adding architecture name into saved object filename

    Summary:
    For ThinLTOCodegenerator, it has an option to save the object file
    outputs into a directory which is essential for debug info. Tools like lldb
    and dsymutil will look for these object files for debug info.

    On Darwin platform, you can link fat binaries with one single clang
    driver invocation like:
    $ clang -arch x86_64 -arch i386 -Wl,-object_path_lto,$TMPDIR ...
    Unfornately, the output object files for one architecture is going to
    overwrite the previous ones and one architecture slice will end up with
    no debug info. One example for this is to turn on ThinLTO for sanitizer
    dylibs in compiler-rt project.

    To fix the issue, add the name for the architecture into the name of the
    output object file.

    rdar://problem/35482935

    Reviewers: tejohnson, bd1976llvm, dexonsmith, JDevlieghere

    Reviewed By: dexonsmith

    Subscribers: mehdi_amini, aprantl, inglorion, eraman, hiraditya, jkorous, dang, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60924 — steven_wu / detail

clang-r359508-t55994-b55994.tar.gz (Apr 29, 2019 4:09:25 PM)

  1. Simplify exclusion of nested classes from extern template instantiation, NFC

    Summary:
    This simplifies three checks for MS ABI, Win Itanium, or Win GNU to just
    "is Windows".

    The question remains, however, if this is really the correct thing to
    do. We could, for example, only not consider inner classes to be
    externally available if the outer class has a dllexport annotation.
    However, I will leave that as future work.

    Reviewers: hans, mstorsjo

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61278 — rnk / detail
  2. When skipping code at the start of a file during PCH use, Preprocessor::Lex
    is not used since it consumes all preprocessor directives until it returns
    a real token. Using the specific Lexer (i.e. CurLexer->Lex) makes it
    possible to stop skipping after an #include or #pragma hdrstop. Previously
    the skipping code was only handling CurLexer, now all will be handled
    correctly.

    Fixes: llvm.org/PR41585

    Differential Revision: https://reviews.llvm.org/D61217 — mikerice / detail

clang-r359505-t55993-b55993.tar.gz (Apr 29, 2019 3:13:09 PM)

  1. [WebAssembly] Define the signature for __stack_chk_fail

    The WebAssembly backend needs to know the signatures of all runtime
    libcall functions. This adds the signature for __stack_chk_fail which was
    previously missing.

    Also, make the error message for a missing libcall include the name of
    the function.

    Differential Revision: https://reviews.llvm.org/D59521

    Reviewed By: sbc100 — djg / detail
  2. [PowerPC] Try harder to avoid load/move-to VSR for partial vector loads

    Change the PPCISelLowering.cpp function that decides to avoid update form in
    favor of partial vector loads to know about newer load types and to not be
    confused by the chain operand.

    Differential Revision: https://reviews.llvm.org/D60102 — froese / detail
  3. [GlobalISel][AArch64] Select llvm.aarch64.crypto.sha1h

    This was falling back and gives us a reason to create a selectIntrinsic function
    which we would need eventually anyway. Update arm64-crypto.ll to show that we
    correctly select it.

    Also factor out the code for finding an intrinsic ID. — paquette / detail
  4. [UpdateTestChecks] Allow Lbegin_func without a leading period

    On mingw/i686, local labels don't start with a leading period.

    Also escape the leading period, as it previously could match
    any char.

    Differential Revision: https://reviews.llvm.org/D61254 — mstorsjo / detail
  5. [X86] Run CFIInstrInserter on Windows if Dwarf is used

    This is necessary since SVN r330706, as tail merging can include
    CFI instructions since then.

    This fixes PR40322 and PR40012.

    Differential Revision: https://reviews.llvm.org/D61252 — mstorsjo / detail
  6. Fix one more case of passing options with too many dashes. — dhinton / detail

clang-r359505-t55993-b55993.tar.gz (Apr 29, 2019 3:13:09 PM)

  1. [ASTImporter] Add an ImportImpl method to allow customizing Import behavior.

    Summary:
    We are currently implementing support in LLDB that reconstructs the STL templates from
    the target program in the expression evaluator. This reconstruction happens during the
    import process from our debug info AST into the expression evaluation AST, which means
    we need a way to intercept the ASTImporter import process.

    This patch adds an protected ImportImpl method that we can overwrite in LLDB to implement
    our special importing logic (which is essentially just looking into a C++ module that is attached to
    the target context). Because ImportImpl has to call MapImported/AddToLookup for the decls it
    creates, this patch also exposes those via a new unified method and checks that we call it when
    importing decls.

    Reviewers: martong, balazske, a.sidorin, shafik, a_sidorin

    Reviewed By: martong, a_sidorin

    Subscribers: rnkovacs, cfe-commits, lldb-commits, aprantl

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D59485 — Raphael Isemann / detail

clang-r359505-t55993-b55993.tar.gz (Apr 29, 2019 3:13:09 PM)

  1. Fix FIXME added in r359339

    We have windows.h in asan_win.cc, so we can just use the correct
    prototypes for these EH-related interceptors without worrying.

    Also fix an unused variable warning while I'm here. — rnk / detail
  2. Pacify sanitizer lint script after r359498 — rnk / detail
  3. [AddressSanitizer] [Windows] Fix HeapReAlloc and _recalloc bugs in asan_malloc_win.cc

    HeapReAlloc should allow for 0 sized reallocations without freeing the memory block provided by the user.

    _recalloc previously did not zero new memory after reallocation.
    https://reviews.llvm.org/D61268 — mcgov / detail

clang-r359494-t55990-b55990.tar.gz (Apr 29, 2019 2:13:41 PM)

  1. [sanitizer] Add BUILDBOT_MONO_REPO_PATH to use for local debugging — Vitaly Buka / detail
  2. Add LLVM lab buildslaves for Windows/Ubuntu builders.

    The initial buildslave configurations for a new hardware in LLVM lab.
    Requested for the staged buildebot http://lab.llvm.org:8014

    Patch by Vlad Vereschaka.

    Differential Revision: https://reviews.llvm.org/D60635 — gkistanova / detail

clang-r359494-t55990-b55990.tar.gz (Apr 29, 2019 2:13:41 PM)

  1. [gn] Use label_name rather than target_output_name for objects

    Multiple targets in the same output directory can use the same
    target_output_name. The typical example of that is having a shared
    and a static library of the same, e.g. libc++.so and libc++.a.
    When that's the case, the object files produced for each target
    are going to conflict. Using the label_name avoids this conflict
    since labels are guaranteed to be unique within a single BUILD.gn
    file which corresponds to a single output directory.

    Differential Revision: https://reviews.llvm.org/D60329 — phosek / detail
  2. Fix string UAF in new FileCheck test — rnk / detail
  3. [X86][SSE] isHorizontalBinOp - add support for target shuffles

    Add target shuffle decoding to isHorizontalBinOp as well as ISD::VECTOR_SHUFFLE support.

    This does mean we can go through bitcasts so we need to bitcast the extracted args to ensure they are the correct type

    Fixes PR39936 and should help with PR39920/PR39921

    Differential Revision: https://reviews.llvm.org/D61245 — rksimon / detail
  4. [llvm-pdbutil] FunctionDumper::dump(PDBSymbolTypeFunctionArg) - fix null dereference warning

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  5. computePolynomialFromPointer - add missing early-out return for non-pointer types.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  6. [InstCombine] reduce code duplication; NFC

    Follow-up to:
    rL359482

    Avoid this potential problem throughout by giving the type a name
    and verifying the assumption that both operands are the same type. — spatel / detail
  7. Fix additional cases of more that two dashes for options in tests. — dhinton / detail
  8. Remove duplicate line. NFCI.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  9. [InstCombine] visitFCmpInst - appease copy+paste pattern warning. NFCI.

    PVS Studio's copy+paste recognizer was seeing this as a typo, technically Op0/Op1 in a fcmp should always be the same type, but we might as well avoid the issue.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  10. [globalisel] Improve Legalizer debug output

    * LegalizeAction should be printed by name rather than number
    * Newly created instructions are incomplete at the point the observer first sees
      them. They are therefore recorded in a small vector and printed just before
      the legalizer moves on to another instruction. By this point, the instruction
      must be complete. — dsanders / detail
  11. [CommandLine] Don't allow unlimitted dashes for options. Part 1 or 5

    Summary:
    Prior to this patch, the CommandLine parser would strip an
    unlimitted number of dashes from options.  This patch limits it to
    two.

    Reviewers: rnk

    Reviewed By: rnk

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61229 — dhinton / detail
  12. [X86] scaleShuffleMask - avoid potential signed overflow warning.

    Use size_t assignment to prevent a bad explicit type conversion warning.

    Given the typical size of shuffle masks this was never going to happen, but this at least stops the warning.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  13. [TextAPI] Fix Symbol::dump which was failing to append the SymbolKind string.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  14. [llvm-mca][x86] Fix MMX PMOVMSKB test

    This is defined as part of SSE1, XMM PMOVMSKB doesn't appear until SSE2 — rksimon / detail
  15. [DAG] Refactor DAGCombiner::ReassociateOps

    Summary:
    Extract the logic for doing reassociations
    from DAGCombiner::reassociateOps into a helper
    function DAGCombiner::reassociateOpsCommutative,
    and use that helper to trigger reassociation
    on the original operand order, or the commuted
    operand order.

    Codegen is not identical since the operand order will
    be different when doing the reassociations for the
    commuted case. That causes some unfortunate churn in
    some test cases. Apart from that this should be NFC.

    Reviewers: spatel, craig.topper, tstellar

    Reviewed By: spatel

    Subscribers: dmgreen, dschuff, jvesely, nhaehnle, javed.absar, sbc100, jgravelle-google, hiraditya, aheejin, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61199 — bjope / detail
  16. FileCheck [3/12]: Stricter parsing of @LINE expressions

    Summary:
    This patch is part of a patch series to add support for FileCheck
    numeric expressions. This specific patch gives earlier and better
    diagnostics for the @LINE expressions.

    Rather than detect parsing errors at matching time, this commit adds
    enhance parsing to detect issues with @LINE expressions at parse time
    and diagnose them more accurately.

    Copyright:
        - Linaro (changes up to diff 183612 of revision D55940)
        - GraphCore (changes in later versions of revision D55940 and
                     in new revision created off D55940)

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60383 — thopre / detail
  17. [TableGen] Fix null pointer dereferencing.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  18. Avoid "checking a pointer after dereferencing" warning. NFCI.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  19. Move if() to newline to stop ambiguity over whether it should be else if. NFCI.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  20. Fix operator precedence warning. NFCI.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  21. Remove superfluous break from switch statement. NFCI.

    Reported in https://www.viva64.com/en/b/0629/ — rksimon / detail
  22. [llvm-extract] Expose the group extraction feature of the BlockExtractor

    This patch extends the `-bb` option to be able to use the group
    extraction feature from the BlockExtractor.
    In particular, `-bb=func:bb` is modified to support a list of basic
    blocks per function: `-bb=func:bb1[;bb2...]` that will be extracted
    together if at all possible (region must be single entry.)

    Differential Revision: https://reviews.llvm.org/D60973 — qcolombet / detail
  23. [BlockExtractor] Expose a constructor for the group extraction

    NFC

    Differential Revision: https://reviews.llvm.org/D60971 — qcolombet / detail
  24. [BlockExtractor] Change the basic block separator from ',' to ';'

    This change aims at making the file format be compatible with the
    way LLVM handles command line options.

    Differential Revision: https://reviews.llvm.org/D60970 — qcolombet / detail
  25. Add AVX support to this test.

    Requested by Craig Topper and Andrew Kaylor as part of D55897. — kpn / detail
  26. [X86] Remove duplicate string comparison

    Fix typo introduced in rL332824 where we simplified the extact string matches for "avx512.mask.permvar.sf.256" and "avx512.mask.permvar.si.256" to a string startswith test for "avx512.mask.permvar." — rksimon / detail
  27. [AArch64][SVE] Asm: add aliases for unpredicated bitwise logical instructions

    This patch adds aliases for element sizes .B/.H/.S to the
    AND/ORR/EOR/BIC bitwise logical instructions. The assembler now accepts
    these instructions with all element sizes up to 64-bit (.D). The
    preferred disassembly is .D. — c-rhodes / detail
  28. [X86][SSE] Add scalar horizontal add/sub tests for non-0/1 element extractions — rksimon / detail
  29. FileCheck [2/12]: Stricter parsing of -D option

    Summary:
    This patch is part of a patch series to add support for FileCheck
    numeric expressions. This specific patch gives earlier and better
    diagnostics for the -D option.

    Prior to this change, parsing of -D option was very loose: it assumed
    that there is an equal sign (which to be fair is now checked by the
    FileCheck executable) and that the part on the left of the equal sign
    was a valid variable name. This commit adds logic to ensure that this
    is the case and gives diagnostic when it is not, making it clear that
    the issue came from a command-line option error. This is achieved by
    sharing the variable parsing code into a new function ParseVariable.

    Copyright:
        - Linaro (changes up to diff 183612 of revision D55940)
        - GraphCore (changes in later versions of revision D55940 and
                     in new revision created off D55940)

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60382 — thopre / detail
  30. [LoopSimplifyCFG] Suppress expensive DomTree verification

    This patch makes verification level lower for builds with
    inexpensive checks.

    Differential Revision: https://reviews.llvm.org/D61055 — yrouban / detail
  31. [yaml2obj] - Simplify and reduce the code. NFC.

    This inlines 2 single line static methods
    and simplifies the code.

    It is also possible to remove the `Is64Bit`
    variable since it is used only once,
    but I am not sure it will be better for readability. — grimar / detail
  32. [yaml2obj] - Replace a loop with write_zeros(). NFCI.

    This looks better. — grimar / detail
  33. [yaml2obj] - Cleanup and simplify the code. NFCI.

    The current code has the following problems:
    `initSymtabSectionHeader` and `initStrtabSectionHeader` method
    names saying us they are going to initialize the section headers.
    Though for a few cases sh_flags field is initialized outside of them.
    It does not look clean. This patch moves initialization of the
    sh_flags inside these methods.

    Also, it removes an excessive variable, what together with the above
    change hopefully makes the code a bit more readable. — grimar / detail
  34. [X86][SSE] Moved haddps test from phaddsub.ll to haddsub.ll (D61245)

    Also merged duplicate PR39921 + PR39936 tests — rksimon / detail
  35. [InstCombine][X86] Add PACKSS tests for truncation of sign-extended comparisons — rksimon / detail
  36. [ARM] Add bitcast/extract_subvec. of fp16 vectors

    Summary:
    This patch adds some basic operations for fp16
    vectors, such as bitcast from fp16 to i16,
    required to perform extract_subvector (also added
    here) and extract_element.

    Reviewers: SjoerdMeijer, DavidSpickett, t.p.northover, ostannard

    Reviewed By: ostannard

    Subscribers: javed.absar, kristof.beyls, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60618 — dnsampaio / detail
  37. [ARM] Add v4f16 and v8f16 types to the CallingConv

    Summary:
    The Procedure Call Standard for the Arm Architecture
    states that float16x4_t and float16x8_t behave just
    as uint16x4_t and uint16x8_t for argument passing.
    This patch adds the fp16 vectors to the
    ARMCallingConv.td file.

    Reviewers: miyuki, ostannard

    Reviewed By: ostannard

    Subscribers: ostannard, javed.absar, kristof.beyls, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60720 — dnsampaio / detail
  38. vs integration: Use llvm-lib for librarian

    This uses llvm-lib.exe for the librarian instead of Visual Studio
    provided lib.exe. Without this it is not possible to create static
    libraries with -flto using the plugin.

    Original patch by Steven Noonan

    This fixes: PR41147

    Differential Revision: https://reviews.llvm.org/D61193 — russell_gallop / detail
  39. gn: Fix check-clang build after r359179 — hans / detail
  40. Try to use /proc on FreeBSD for getExecutablePath

    Currently, clang's libTooling passes this function a fake argv0, which
    means that no libTooling tools can find the standard headers on FreeBSD.
    With this change, these will now work on any FreeBSD systems that have
    procfs mounted.  This isn't the right fix for the libTooling issue, but
    it does bring the FreeBSD implementation of getExecutablePath closer to
    the Linux and macOS implementations. — theraven / detail
  41. [DebugInfo] Terminate more location-list ranges at the end of blocks

    This patch fixes PR40795, where constant-valued variable locations can
    "leak" into blocks placed at higher addresses. The root of this is that
    DbgEntityHistoryCalculator terminates all register variable locations at
    the end of each block, but not constant-value variable locations.

    Fixing this requires constant-valued DBG_VALUE instructions to be
    broadcast into all blocks where the variable location remains valid, as
    documented in the LiveDebugValues section of SourceLevelDebugging.rst,
    and correct termination in DbgEntityHistoryCalculator.

    Differential Revision: https://reviews.llvm.org/D59431 — jmorse / detail
  42. [DWARF] Fix dump of local/foreign TU lists in .debug_names

    Differential Revision: https://reviews.llvm.org/D61241 — maskray / detail
  43. [DWARF] Delete a redundant check in getFileNameByIndex() — maskray / detail
  44. [X86] Remove some intel syntax aliases on (v)cvtpd2(u)dq, (v)cvtpd2ps, (v)cvt(u)qq2ps. Add 'x' and'y' suffix aliases to masked version of the same in att syntax.

    The 128/256 bit version of these instructions require an 'x' or 'y' suffix to
    disambiguate the memory form in att syntax.

    We were allowing the same suffix in intel syntax, but it appears gas does not
    do that.

    gas does allow the 'x' and 'y' suffix on register and broadcast forms even
    though its not needed. We were allowing it on unmasked register form, but not on
    masked versions or on masked or unmasked broadcast form.

    While there fix some test coverage holes so they can be extended with the 'x'
    and 'y' suffix tests. — ctopper / detail
  45. [llvm-nm] -print-size => --print-size — maskray / detail
  46. [llvm-nm] Simplify and fix a buffer overflow

    * char SymbolAddrStr[18] can't hold "%" PRIo64 which may need 22 characters.
    * Use range-based for
    * Delete unnecessary typedef
    * format(...).print(Str, sizeof(Str)) + outs() << Str => outs() << format(...)
    * Use cascading outs() << .. << ..
    * Use iterator_range(Container &&c)
    * (A & B) == B => A & B   if B is a power of 2
    * replace null sentinel in constants with makeArrayRef — maskray / detail
  47. llvm-cvtres: Attempt to make llvm-cvtres/duplicate.test work on big-endian systems — nico / detail
  48. [X86] Add PR39921 HADD pairwise reduction test and AVX2 test coverage — rksimon / detail
  49. [X86][AVX] Add fast-hops target for add/fadd reduction tests — rksimon / detail
  50. [X86] Add PR39936 HADD Tests — rksimon / detail
  51. [X86][SSE] combineExtractVectorElt - add early-out to return zero/undef for out-of-range extraction indices. — rksimon / detail
  52. [ConstantRange] Add makeExactNoWrapRegion()

    I got confused on the terminology, and the change in D60598 was not
    correct. I was thinking of "exact" in terms of the result being
    non-approximate. However, the relevant distinction here is whether
    the result is

    * Largest range such that:
       Forall Y in Other: Forall X in Result: X BinOp Y does not wrap.
       (makeGuaranteedNoWrapRegion)
    * Smallest range such that:
       Forall Y in Other: Forall X not in Result: X BinOp Y wraps.
       (A hypothetical makeAllowedNoWrapRegion)
    * Both. (makeExactNoWrapRegion)

    I'm adding a separate makeExactNoWrapRegion method accepting a
    single APInt (same as makeExactICmpRegion) and using it in the
    places where the guarantee is relevant.

    Differential Revision: https://reviews.llvm.org/D60960 — nikic / detail
  53. [X86][AVX] Enabled AVX512F tests and add PR40815 test case — rksimon / detail
  54. [X86][AVX] Combine non-lane crossing binary shuffles using X86ISD::VPERMV3

    Some of the combines might be further improved if we lower more shuffles with X86ISD::VPERMV3 directly, instead of waiting to combine the results. — rksimon / detail
  55. [SelectionDAG] include FP min/max variants as binary operators

    The x86 test diffs don't look great because of extra move ops,
    but FP min/max should clearly be included in the list. — spatel / detail
  56. [DAGCombiner] try repeated fdiv divisor transform before building estimate

    This was originally part of D61028, but it's an independent diff.

    If we try the repeated divisor reciprocal transform before producing an estimate sequence,
    then we have an opportunity to use scalar fdiv. On x86, the trade-off is 1 divss vs. 5
    vector FP ops in the default estimate sequence. On recent chips (Skylake, Ryzen), the
    full-precision division is only 3 cycle throughput, so that's probably the better perf
    default option and avoids problems from x86's inaccurate estimates.

    The last 2 tests show that users still have the option to override the defaults by using
    the function attributes for reciprocal estimates, but those patterns are potentially made
    faster by converting the vector ops (including ymm ops) to scalar math.

    Differential Revision: https://reviews.llvm.org/D61149 — spatel / detail
  57. [MCA] Fix typo in AVX2 gather tests. NFC — adibiagio / detail
  58. [X86][SSE] Optimize llvm.experimental.vector.reduce.xor.vXi1 parity reduction (PR38840)

    An xor reduction of a bool vector can be optimized to a parity check of the MOVMSK/BITCAST'd integer - if the population count is odd return 1, else return 0.

    Differential Revision: https://reviews.llvm.org/D61230 — rksimon / detail
  59. [X86][AVX] Add AVX512DQ coverage for masked memory ops tests (PR34584) — rksimon / detail
  60. [X86] Remove (V)MOV64toSDrr/m and (V)MOVDI2SSrr/m. Use 128-bit result MOVD/MOVQ and COPY_TO_REGCLASS instead

    Summary:
    The register form of these instructions are CodeGenOnly instructions that cover
    GR32->FR32 and GR64->FR64 bitcasts. There is a similar set of instructions for
    the opposite bitcast. Due to the patterns using bitcasts these instructions get
    marked as "bitcast" machine instructions as well. The peephole pass is able to
    look through these as well as other copies to try to avoid register bank copies.

    Because FR32/FR64/VR128 are all coalescable to each other we can end up in a
    situation where a GR32->FR32->VR128->FR64->GR64 sequence can be reduced to
    GR32->GR64 which the copyPhysReg code can't handle.

    To prevent this, this patch removes one set of the 'bitcast' instructions. So
    now we can only go GR32->VR128->FR32 or GR64->VR128->FR64. The instruction that
    converts from GR32/GR64->VR128 has no special significance to the peephole pass
    and won't be looked through.

    I guess the other option would be to add support to copyPhysReg to just promote
    the GR32->GR64 to a GR64->GR64 copy. The upper bits were basically undefined
    anyway. But removing the CodeGenOnly instruction in favor of one that won't be
    optimized seemed safer.

    I deleted the peephole test because it couldn't be made to work with the bitcast
    instructions removed.

    The load version of the instructions were unnecessary as the pattern that selects
    them contains a bitcasted load which should never happen.

    Fixes PR41619.

    Reviewers: RKSimon, spatel

    Reviewed By: RKSimon

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61223 — ctopper / detail
  61. Revert rL359389: [X86][SSE] Add support for <64 x i1> bool reduction

    Minor generalization of the existing <32 x i1> pre-AVX2 split code.
    ........
    Causing irregular buildbot failures. — rksimon / detail
  62. [X86][AVX] Add additional SSE/AVX expandload and compressstore targets — rksimon / detail
  63. [X86][SSE] Add support for <64 x i1> bool reduction

    Minor generalization of the existing <32 x i1> pre-AVX2 split code. — rksimon / detail
  64. [X86][AVX] Cleanup and add additional expandload and compressstore tests

    sort order by types and add vXi32/vXi16/vXi8 test coverage — rksimon / detail
  65. [X86][AVX512] Improve vector bool reductions

    As predicate masks are legal on AVX512 targets, we avoid MOVMSK in these cases, but we can just bitcast the bool vector to the integer equivalent directly - avoiding expansion of the reduction to a shuffle pattern. — rksimon / detail
  66. [X86] Add vector boolean reduction tests (PR38840)

    AND/OR/XOR tests for the @llvm.experimental.vector.reduce intrinsics

    AND/OR are pretty good (pre-AVX512), XOR (not so common but used for parity reduction) is still pretty bad. — rksimon / detail
  67. [lli] Fix a typo in a cl::opt description.

    Patch by Wasiher. Thanks Wasiher!

    Differential Revision: https://reviews.llvm.org/D61135 — Lang Hames / detail
  68. [llvm-nm][llvm-readelf] Avoid single-dash -long-option in tests — maskray / detail
  69. Fix check-prefixes typo — rksimon / detail
  70. [DJB] Fix variable case after D61178 — maskray / detail
  71. [llvm-nm] Support section type 'u': STB_GNU_UNIQUE — maskray / detail
  72. [X86][SSE] Add initial test case for subvector insert/extract of illegal types

    Suggested by @nikic on D59188 — rksimon / detail
  73. [X86][AVX] Merge mask select with shuffles across extract_subvector (PR40332)

    Fixes PR40332 in the limited case where we're selecting between a target shuffle and a zero vector.

    We can extend this in the future to handle more opcodes and non-zero selections. — rksimon / detail
  74. [MCA] Add field `IsEliminated` to class Instruction. NFCI — adibiagio / detail
  75. [cmake] Disable a GCC optimization when building LLVM for MIPS

    GCC when compiling LLVM for MIPS can introduce a jump to an uninitialized
    value when shrink wrapping is enabled. As shrink wrapping is enabled in
    GCC at all optimization levels, it must be disabled. This bug exists for
    all versions of GCC since 4.9.2.

    This partially resolves PR37701 / GCC PR target/86069.

    Patch by Simon Dardis.

    Differential Revision: https://reviews.llvm.org/D48069 — atanasyan / detail
  76. [X86] Use MOVQ for i64 atomic_stores when SSE2 is enabled

    Summary: If we have SSE2 we can use a MOVQ to store 64-bits and avoid falling back to a cmpxchg8b loop. If its a seq_cst store we need to insert an mfence after the store.

    Reviewers: spatel, RKSimon, reames, jfb, efriedma

    Reviewed By: RKSimon

    Subscribers: hiraditya, dexonsmith, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60546 — ctopper / detail
  77. Revert "AMDGPU: Split block for si_end_cf"

    This reverts commit 7a6ef3004655dd86d722199c471ae78c28e31bb4.

    We discovered some internal test failures, so reverting for now.

    Differential Revision: https://reviews.llvm.org/D61213 — msearles / detail
  78. [AMDGPU] gfx1010 VOPC implementation

    Differential Revision: https://reviews.llvm.org/D61208 — rampitec / detail
  79. [ORC] Add a 'plugin' interface to ObjectLinkingLayer for events/configuration.

    ObjectLinkingLayer::Plugin provides event notifications when objects are loaded,
    emitted, and removed. It also provides a modifyPassConfig callback that allows
    plugins to modify the JITLink pass configuration.

    This patch moves eh-frame registration into its own plugin, and teaches
    llvm-jitlink to only add that plugin when performing execution runs on
    non-Windows platforms. This should allow us to re-enable the test case that was
    removed in r359198. — Lang Hames / detail
  80. [GlobalISel][AArch64] Use getConstantVRegValWithLookThrough for extracts

    getConstantVRegValWithLookThrough does the same thing as the
    getConstantValueForReg function, and has more visibility across GISel. Plus, it
    supports looking through G_TRUNC, G_SEXT, and G_ZEXT. So, we get better code
    reuse and more functionality for free by using it.

    Add some test cases to select-extract-vector-elt.mir to show that we can now
    look through those instructions. — paquette / detail
  81. [AsmPrinter] refactor to support %c w/ GlobalAddress'

    Summary:
    Targets like ARM, MSP430, PPC, and SystemZ have complex behavior when
    printing the address of a MachineOperand::MO_GlobalAddress. Move that
    handling into a new overriden method in each base class. A virtual
    method was added to the base class for handling the generic case.

    Refactors a few subclasses to support the target independent %a, %c, and
    %n.

    The patch also contains small cleanups for AVRAsmPrinter and
    SystemZAsmPrinter.

    It seems that NVPTXTargetLowering is possibly missing some logic to
    transform GlobalAddressSDNodes for
    TargetLowering::LowerAsmOperandForConstraint to handle with "i" extended
    inline assembly asm constraints.

    Fixes:
    - https://bugs.llvm.org/show_bug.cgi?id=41402
    - https://github.com/ClangBuiltLinux/linux/issues/449

    Reviewers: echristo, void

    Reviewed By: void

    Subscribers: void, craig.topper, jholewinski, dschuff, jyknight, dylanmckay, sdardis, nemanjai, javed.absar, sbc100, jgravelle-google, eraman, kristof.beyls, hiraditya, aheejin, kbarton, fedor.sergeev, jrtc27, atanasyan, jsji, llvm-commits, kees, tpimh, nathanchance, peter.smith, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60887 — nickdesaulniers / detail
  82. [X86][AVX] Fold extract_subvector(broadcast(x)) -> broadcast(x) iff x has one use — rksimon / detail
  83. [AArch64][GlobalISel] Select G_BSWAP for vectors of s32 and s64

    There are instructions for these, so mark them as legal. Select the correct
    instruction in AArch64InstructionSelector.cpp.

    Update select-bswap.mir and arm64-rev.ll to reflect the changes. — paquette / detail
  84. [AMDGPU] gfx1010 VOP3 and VOP3P implementation

    Differential Revision: https://reviews.llvm.org/D61202 — rampitec / detail
  85. [DAGCombine] Cleanup visitEXTRACT_SUBVECTOR. NFCI.

    Use ArrayRef::slice, reduce some rather awkward long lines for legibility and run clang-format. — rksimon / detail
  86. [ConstantRange] Add abs() support

    Add support for abs() to ConstantRange. This will allow to handle
    SPF_ABS select flavor in LVI and will also come in handy as a
    primitive for the srem implementation.

    The implementation is slightly tricky, because a) abs of signed min
    is signed min and b) sign-wrapped ranges may have an abs() that is
    smaller than a full range, so we need to explicitly handle them.

    Differential Revision: https://reviews.llvm.org/D61084 — nikic / detail
  87. [X86] Sink NoRegister creation for unused Base/Index registers into getAddressOperands. NFCI — ctopper / detail
  88. [X86] Segment registers should have i16 type not i32.

    Probably doesn't really matter, but was inconsistent with the rest of the code. — ctopper / detail
  89. [AMDGPU] gfx1010 VOP2 changes

    Differential Revision: https://reviews.llvm.org/D61156 — rampitec / detail
  90. [llvm-nm] Revert inadvertently committed 'i' change in r359314 — maskray / detail
  91. [ThinLTO] Fix X86/strong_non_prevailing.ll after llvm-nm 'r' change — maskray / detail
  92. [PowerPC] Update P9 vector costs for insert/extract element

    The PPC vector cost model values for insert/extract element reflect older
    processors that lacked vector insert/extract and move-to/move-from VSR
    instructions.  Update getVectorInstrCost to give appropriate values for when
    the newer instructions are present.

    Differential Revision: https://reviews.llvm.org/D60160 — froese / detail
  93. [llvm-nm] Generalize symbol types 'N', 'n' and '?' — maskray / detail
  94. [llvm-nm] Fix handling of symbol types 't' 'd' 'r'

    In addition, fix and convert the two tests to yaml2obj based. This
    allows us to delete two executables.

    X86/weak.test: 'v' was not tested
    X86/init-fini.test: symbol types of __bss_start _edata _end were wrong
      GNU nm reports __init_array_start as 't', and __preinit_array_start as 'd'.
      __init_array_start is 't' just because its section ".init_array" starts with ".init"

      'd' makes more sense and allows us to drop the weird SHT_INIT_ARRAY rule.
      So, change __init_array_start to 'd' instead. — maskray / detail
  95. [docs] Put DefaultOption bullet in alphabetical order. — dhinton / detail
  96. [llvm-nm][llvm-size] Use --double-dash options in tests — maskray / detail
  97. s/Dwarf 5/DWARF v5/ NFC — maskray / detail
  98. [x86] add tests for fmin/fmax; NFC

    'maximum' and 'minimum' still crash, so they are commented out. — spatel / detail
  99. Fix llvm-objcopy/ELF/preserve-segment-contents test on UTF-8 locale

    Differential Revision: https://reviews.llvm.org/D61137 — aganea / detail
  100. [yaml2obj] - Make implicitSectionNames() return std::vector<StringRef>. NFCI.

    No need to use SmallVector of char* here.
    This simplifies the code. — grimar / detail
  101. [yaml2obj] - Remove excessive variable. NFC.

    `auto &Strtab` was used only once. — grimar / detail
  102. Fix Wparentheses warning. NFCI. — rksimon / detail
  103. [yaml2obj] - Make the code to match the LLVM style. NFCI.

    This renames the variables to uppercase and
    removes use of `auto` for unobvious type. — grimar / detail
  104. [yaml2elf] - Cleanup the initSectionHeaders(). NFCI.

    This encapsulates the section specific code inside the
    corresponding writeSectionContent methods.
    Making the code a bit more consistent. — grimar / detail
  105. [X86][SSE] Pull out OR(EXTRACTELT(X,0),OR(EXTRACTELT(X,1),...)) matching code from LowerVectorAllZeroTest

    Create a matchBitOpReduction helper that checks for the pattern with any opcode.

    First step towards reusing this code to recognize other scalar reduction patterns. — rksimon / detail
  106. Minor formatting tweak, no behavior change — nico / detail
  107. caseFoldingDjbHash: simplify and make the US-ASCII fast path faster

    The slow path (with at least one non US-ASCII) will be slower but that
    doesn't matter.

    Differential Revision: https://reviews.llvm.org/D61178 — maskray / detail
  108. [X86][SSE] Disable shouldFoldConstantShiftPairToMask for btver1/btver2 targets (PR40758)

    As detailed on PR40758, Bobcat/Jaguar can perform vector immediate shifts on the same pipes as vector ANDs with the same latency - so it doesn't make sense to replace a shl+lshr with a shift+and pair as it requires an additional mask (with the extra constant pool, loading and register pressure costs).

    Differential Revision: https://reviews.llvm.org/D61068 — rksimon / detail
  109. [X86][AVX] Combine shuffles extracted from a common vector

    A small step towards combining shuffles across vector sizes - this recognizes when a shuffle's operands are all extracted from the same larger source and tries to combine to an unary shuffle of that source instead. Fixes one of the test cases from PR34380.

    Differential Revision: https://reviews.llvm.org/D60512 — rksimon / detail
  110. [InferAddressSpaces] Add AS parameter to the pass factory

    This enables the pass to be used in the absence of
    TargetTransformInfo. When the argument isn't passed, the factory
    defaults to UninitializedAddressSpace and the flat address space is
    obtained from the TargetTransformInfo as before this change. Existing
    users won't have to change.

    Patch by Kevin Petit.

    Differential Revision: https://reviews.llvm.org/D60602 — svenvh / detail
  111. Fix alignment in AArch64InstructionSelector::emitConstantPoolEntry()

    The code was using the alignment of a pointer to the value, not the
    alignment of the constant itself.

    Maybe we got away with it so far because the pointer alignment is
    fairly high, but we did end up under-aligning <16 x i8> vectors,
    which was caught in the Chromium build after lld stopped over-aligning
    the .rodata.cst16 section in r356428. (See crbug.com/953815)

    Differential revision: https://reviews.llvm.org/D61124 — hans / detail
  112. [GlobalISel] Fix inserting copies in the right position for reg definitions

    When constrainRegClass is called if the constraining happens on a use the COPY
    needs to be inserted before the instruction that contains the MachineOperand,
    but if we are constraining a definition it actually needs to be added
    after the instruction. In addition, the COPY needs to have its operands
    flipped (in the use case we are copying from the old unconstrained register
    to the new constrained register, while in the definition case we are copying
    from the new constrained register that the instruction defines to the old
    unconstrained register). — mggm / detail
  113. Fix typos: (re)?sor?uce -> (re)?source

    Closes: https://github.com/llvm/llvm-project/pull/10

    In-collaboration-with: Olivier Cochard-Labbé <olivier@FreeBSD.org>
    Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>

    Differential Revision: https://reviews.llvm.org/D61021 — maskray / detail
  114. [NFC] Add baseline tests for int isKnownNonZero

    Add baseline tests for improvements of isKnownNonZero for integer types.

    Differential Revision: https://reviews.llvm.org/D60932 — dlrobertson / detail
  115. [llvm-objcopy] Accept --long-option but not -long-option

    Summary:

    llvm-{objcopy,strip} (and many other LLVM binary utilities) accept
    cl::opt style -long-option as well as many short options (e.g. -p -S
    -x). People who use them as replacement of GNU binutils often use the
    grouped option syntax (POSIX Utility Conventions), e.g. -Sx => -S -x,
    -Wd => -W -d, -sj.text => -s -j.text

    There is ambiguity if a long option starts with the character used by a
    short option. Drop the support for -long-option to resolve the ambiguity.

    This divergence from other utilities is accepted (other utilities
    continue supporting -long-option).
    https://lists.llvm.org/pipermail/llvm-dev/2019-April/131786.html

    Reviewers: alexshap, jakehehrlich, jhenderson, rupprecht, espindola

    Reviewed By: jakehehrlich, jhenderson, rupprecht

    Subscribers: grimar, emaste, arichardson, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60439 — maskray / detail
  116. [GlobalOpt] Swap the expensive check for cold calls with the cheap TTI check

    isValidCandidateForColdCC is much more expensive than
    TTI.useColdCCForColdCall, which by default just returns false. Avoid
    doing this work if we're not going to look at the answer anyway.

    This change is NFC, but I see significant compile time improvements on
    some code with pathologically many functions. — Justin Bogner / detail
  117. [ORC] Remove symbols from dependency lists when failing materialization.

    When failing materialization of a symbol X, remove X from the dependants list
    of any of X's dependencies. This ensures that when X's dependencies are
    emitted (or fail themselves) they do not try to access the no-longer-existing
    MaterializationInfo for X. — Lang Hames / detail
  118. [CUDA] Implemented _[bi]mma* builtins.

    These builtins provide access to the new integer and
    sub-integer variants of MMA (matrix multiply-accumulate) instructions
    provided by CUDA-10.x on sm_75 (AKA Turing) GPUs.

    Also added a feature for PTX 6.4. While Clang/LLVM does not generate
    any PTX instructions that need it, we still need to pass it through to
    ptxas in order to be able to compile code that uses the new 'mma'
    instruction as inline assembly (e.g used by NVIDIA's CUTLASS library
    https://github.com/NVIDIA/cutlass/blob/master/cutlass/arch/mma.h#L101)

    Differential Revision: https://reviews.llvm.org/D60279 — tra / detail
  119. PTX 6.3 extends `wmma` instruction to support s8/u8/s4/u4/b1 -> s32.

    All of the new instructions are still handled mostly by tablegen. I've slightly
    refactored the code to drive intrinsic/instruction generation from a master
    list of supported variants, so all irregularities have to be implemented in one place only.

    The test generation script wmma.py has been refactored in a similar way.

    Differential Revision: https://reviews.llvm.org/D60015 — tra / detail
  120. [NVPTX] generate correct MMA instruction mnemonics with PTX63+.

    PTX 6.3 requires using ".aligned" in the MMA instruction names.
    In order to generate correct name, now we pass current
    PTX version to each instruction as an extra constant operand
    and InstPrinter adjusts its output accordingly.

    Differential Revision: https://reviews.llvm.org/D59393 — tra / detail
  121. [NVPTX] Refactor generation of MMA intrinsics and instructions. NFC.

    Generalized constructions of 'fragments' of MMA operations to provide
    common primitives for construction of the ops. This will make it easier
    to add new variants of the instructions that operate on integer types.

    Use nested foreach loops which makes it possible to better control
    naming of the intrinsics.

    This patch does not affect LLVM's output, so there are no test changes.

    Differential Revision: https://reviews.llvm.org/D59389 — tra / detail
  122. [Object][XCOFF] Add intial support for section header table.

    Adds a representation of the section header table to XCOFFObjectFile,
    and implements enough to dump the section headers with llvm-obdump.

    Differential Revision: https://reviews.llvm.org/D60784 — sfertile / detail
  123. [CMake][PowerPC] Recognize LLVM_NATIVE_TARGET="ppc64le" as PowerPC

    Summary:
    This value is derived from the host triple, which on the machine
    I'm currently using is `ppc64le-linux-redhat`. This change makes
    LLVM compile.

    Reviewers: nemanjai
    Differential Revision: https://reviews.llvm.org/D57118 — kfischer / detail
  124. [AMDGPU] gfx1010 - fix ubsan failure

    Revert DecoderNamespace in one place for now. It will need more
    changes to properly work. — rampitec / detail
  125. [x86] add tests for vector fdiv reciprocal estimate; NFC — spatel / detail
  126. Assigning to a local object in a return statement prevents copy elision. NFC.

    I added a diagnostic along the lines of `-Wpessimizing-move` to detect `return x = y` suppressing copy elision, but I don't know if the diagnostic is really worth it. Anyway, here are the places where my diagnostic reported that copy elision would have been possible if not for the assignment.

    P1155R1 in the post-San-Diego WG21 (C++ committee) mailing discusses whether WG21 should fix this pitfall by just changing the core language to permit copy elision in cases like these.

    (Kona update: The bulk of P1155 is proceeding to CWG review, but specifically *not* the parts that explored the notion of permitting copy-elision in these specific cases.)

    Reviewed By: dblaikie

    Author: Arthur O'Dwyer

    Differential Revision: https://reviews.llvm.org/D54885 — dblaikie / detail
  127. [GlobalISel][AArch64] Make G_EXTRACT_VECTOR_ELT legal for v8s16s

    This case was missing before, so we couldn't legalize it.

    Add it to AArch64LegalizerInfo.cpp and update select-extract-vector-elt.mir. — paquette / detail
  128. [ObjC][ARC] Let ARC optimizer bail out if the number of pointer states
    it keeps track of becomes too large

    ARC optimizer does a top-down and a bottom-up traversal of the whole
    function to pair up retain and release instructions and remove them.
    This can be expensive if the number of instructions in the function and
    pointer states it tracks are large since it has to look at each pointer
    state and determine whether the instruction being visited can
    potentially use the pointer.

    This patch adds a command line option that sets a limit to the number of
    pointers it tracks.

    rdar://problem/49477063

    Differential Revision: https://reviews.llvm.org/D61100 — ahatanak / detail
  129. [AMDGPU] gfx1010 VOP1 instructions

    Differential Revision: https://reviews.llvm.org/D61099 — rampitec / detail
  130. [AMDGPU] gfx1010 utility functions

    Differential Revision: https://reviews.llvm.org/D61094 — rampitec / detail
  131. [GlobalISel][AArch64] Add generic legalization rule for extends

    This adds a legalization rule for G_ZEXT, G_ANYEXT, and G_SEXT which allows
    extends whenever the types will fit in registers (or the source is an s1).

    Update tests. Add GISel checks throughout all of arm64-vabs.ll,
    where we now select a good portion of the code. Add GISel checks to
    arm64-subvector-extend.ll, which has a good number of vector extends in it.

    Differential Revision: https://reviews.llvm.org/D60889 — paquette / detail
  132. [SelectionDAG][X86] Use stack load/store in PromoteIntRes_BITCAST when the input needs to be be split and the output type is a vector.

    We had special case handling here, but it uses a scalar any_extend for the
    promotion then bitcasts to the final type. This won't split up the input data
    into multiple promoted elements like we need.

    This patch falls back to doing the conversion through memory.

    Fixes PR41594 which I believe was reflected in the bitcast-vector-bool.ll
    changes. The changes to vector-half-conversions.ll are fixing a previously
    unknown miscompile from this issue.

    Differential Revision: https://reviews.llvm.org/D61114 — ctopper / detail
  133. [Evaluator] Walk initial elements when handling load through bitcast

    When evaluating a store through a bitcast, the evaluator tries to move the
    bitcast from the pointer onto the stored value. If the cast is invalid, it
    tries to "introspect" the type to get a valid cast by obtaining a pointer to
    the initial element (if the type is nested, this may require walking several
    initial elements).

    In some situations it is possible to get a bitcast on a load (e.g. with
    unions, where the bitcast may not be the same type as the store). However,
    equivalent logic to the store to introspect the type is missing. This patch
    add this logic.

    Note, when developing the patch I was unhappy with adding similar logic
    directly to the load case as it could get out of step. Instead, I have
    abstracted the "introspection" into a helper function, with the specifics
    being handled by a passed-in lambda function.

    Differential Revision: https://reviews.llvm.org/D60793 — rlougher / detail
  134. [GlobalISel][AArch64] Legalize G_FNEARBYINT

    Add legalizer support for G_FNEARBYINT. It's the same as G_FCEIL etc.

    Since the importer allows us to automatically select this after legalization,
    also add tests for selection etc. Also update arm64-vfloatintrinsics.ll. — paquette / detail
  135. [GlobalISel] Add IRTranslator support for G_FNEARBYINT

    Translate llvm.nearbyint into G_FNEARBYINT as a simple intrinsic. Update
    arm64-irtranslator.ll.

    Differential Revision: https://reviews.llvm.org/D60922 — paquette / detail
  136. [GlobalISel] Add a G_FNEARBYINT opcode

    For eventually selecting llvm.nearbyint. Equivalent to the SelectionDAG
    nearbyint node.

    Update legalizer-info-validation.mir.

    Differential Revision: https://reviews.llvm.org/D60921 — paquette / detail
  137. Revert "[JITLink] Make the JITLink MachO/x86-64 eh-frame test work on Windows."

    This reverts r359169, as it broke one of the windows bots. — Lang Hames / detail
  138. gn build: Document llvm_enable_dia_sdk variable better — nico / detail
  139. gn build: Make setting llvm_enable_dia_sdk=true work

    If this is set, %INCLUDE% must contain ".../DIA SDK/include"
    and %LIB% must contain ".../DIA SKD/lib/amd64" (assuming you're doing a
    64-bit build). — nico / detail
  140. [InstCombine][X86] Tweak generic expansion of PACKSS/PACKUS to shuffle then truncate. NFCI.

    This has no effect on constant folding but will be useful when we expand non-saturating PACKSS/PACKUS intrinsics. — rksimon / detail
  141. [Support] json::OStream::flush(), which passes through to the underlying stream — sammccall / detail
  142. gn build: Merge r359179 — nico / detail
  143. gn build: Merge r359174 — nico / detail
  144. gn build: Merge r359142 — nico / detail
  145. [Support] Add JSON streaming output API, faster where the heavy value types aren't needed.

    Summary:
    There's still a little bit of constant factor that could be trimmed (e.g.
    more overloads to avoid round-tripping primitives through json::Value).
    But this solves the memory scaling problem, and greatly improves the performance
    constant factor, and the API should leave room for optimization if needed.

    Adapt TimeProfiler to use it, eliminating almost all the performance regression
    from r358476.

    Performance test on my machine:
    perf stat -r 5 ~/llvmbuild-opt/bin/clang++ -w -S -ftime-trace -mllvm -time-trace-granularity=0 spirit.cpp

    Handcrafted JSON (HEAD=r358532 with r358476 reverted): 2480ms
    json::Value (HEAD): 2757ms (+11%)
    After this patch: 2520 ms (+1.6%)

    Reviewers: anton-afanasyev, lebedev.ri

    Subscribers: kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60804 — sammccall / detail
  146. [InstCombine][X86] Add PACKSS/PACKUS tests for truncation where saturation won't occur — rksimon / detail
  147. [Support] Try to unbreak windows buildbot

    After r359179. — ibiryukov / detail
  148. Parallel: only allow the first TaskGroup to run tasks parallelly

    Summary:
    Concurrent (e.g. nested) llvm::parallel::for_each() may lead to dead
    locks. See PR35788 (fixed by rLLD322041) and PR41508 (fixed by D60757).

    When parallel_for_each() is about to return, in ~Latch() called by
    ~TaskGroup(), a thread (in the default executor) may block in
    Latch::sync() waiting for Count to become zero. If all threads in the
    default executor are blocked, it is a dead lock.

    To fix this, force serial execution if the current TaskGroup is not the
    first one. For a nested llvm::parallel::for_each(), this parallelizes
    the outermost loop and serializes inner loops.

    Differential Revision: https://reviews.llvm.org/D61115 — maskray / detail
  149. [llvm-objdump] Prep for adding newlines before and after "Disassembly of section ...:" — maskray / detail
  150. [ConstantRange] [a, b) udiv a full range is [0, umax(b)).

    Reviewers: nikic, spatel, efriedma

    Reviewed By: nikic

    Differential Revision: https://reviews.llvm.org/D60536 — fhahn / detail
  151. [Testing] Move clangd::Annotations to llvm testing support

    Summary:
    Annotations allow writing nice-looking unit test code when one needs
    access to locations from the source code, e.g. running code completion
    at particular offsets in a file. See comments in Annotations.cpp for
    more details on the API.

    Also got rid of a duplicate annotations parsing code in clang's code
    complete tests.

    Reviewers: gribozavr, sammccall

    Reviewed By: gribozavr

    Subscribers: mgorny, hiraditya, ioeric, MaskRay, jkorous, arphaman, kadircet, jdoerfert, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D59814 — ibiryukov / detail
  152. [yaml2obj] - Don't crash on invalid inputs.

    yaml2obj might crash on invalid input when unable to parse the YAML.

    Recently a crash with a very similar nature was fixed for an empty files.
    This patch revisits the fix and does it in yaml::Input instead.
    It seems to be more correct way to handle such situation.

    With that crash for invalid inputs is also fixed now.

    Differential revision: https://reviews.llvm.org/D61059 — grimar / detail
  153. Fix include order. NFCI. — rksimon / detail
  154. [X86][SSE] combineBitcastvxi1 - add support for bitcasting to non-scalar integers

    Truncate the movmsk scalar integer result to the equivalent scalar integer width as before but then bitcast to the requested type.

    We still have the issue identified in PR41594 but D61114 should handle this. — rksimon / detail
  155. [Support] Add a GTest matcher for Optional<T>

    Reviewers: sammccall

    Reviewed By: sammccall

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61071 — ibiryukov / detail
  156. [NFC][LoopIdiomRecognize] Some basic baseline tests for bcmp loop idiom

    Doubt this is the final test coverage, but this appears to have good
    coverage already, so i figure i might as well precommit it. — lebedevri / detail
  157. [MIPS] Use custom bitcast lowering to avoid excessive instructions

    On Mips32r2 bitcast can be expanded to two sw instructions and an ldc1
    when using bitcast i64 to double or an sdc1 and two lw instructions when
    using bitcast double to i64. By introducing custom lowering that uses
    mtc1/mthc1 we can avoid excessive instructions.

    Patch by Mirko Brkusanin.

    Differential Revision: https://reviews.llvm.org/D61069 — atanasyan / detail
  158. [X86] Remove part of an if condition that should always be true.

    The IndexReg will always be non-null at this point. Earlier in the function, if
    IndexReg was null we set it to CurDAG->getRegister(0, VT) which made it
    non-null. — ctopper / detail
  159. [JITLink] Make the JITLink MachO/x86-64 eh-frame test work on Windows.

    This should fix the MachO/x86-64 eh-frame regression test by ensuring that
    the symbols __ZTIi and ___gxx_personality_v0 are defined on all platforms. — Lang Hames / detail
  160. [llvm-rtdyld] Add support for passing command line arguments to rtdyld-run code.

    The --args option can now be used to pass arguments to code linked with
    llvm-rtdyld. E.g.

    $ llvm-rtdyld file1.o file2.o --args a b c

    is equivalent to:

    $ ld -o program file1.o file2.o
    $ ./program a b c

    This is the rtdyld counterpart to the jitlink change in r359115, and makes
    benchmarking and comparison between the tools easier. — Lang Hames / detail
  161. Enable LoopVectorization by default.

    Summary:
    When refactoring vectorization flags, vectorization was disabled by default in the new pass manager.
    This patch re-enables is for both managers, and changes the assumptions opt makes, based on the new defaults.
    Comments in opt.cpp should clarify the intended use of all flags to enable/disable vectorization.

    Reviewers: chandlerc, jgorbe

    Subscribers: jlebar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61091 — asbirlea / detail
  162. [llvm-objdump] errorToErrorCode+message -> toString

    For test/Object/elf-invalid-phdr.test, the intended error message got lost due to errorToErrorCode(). — maskray / detail
  163. Consolidate existing utilities for interpreting vector predicate maskes [NFC] — reames / detail
  164. Fix unused variable warning in LoopFusion pass.

    Do not wrap the contents of printFusionCandidates in the LLVM_DEBUG macro. This
    fixes an unused variable warning generated when compiling without asserts but
    with -DENABLE_LLVM_DUMP.

    Differential Revision: https://reviews.llvm.org/D61035 — kbarton / detail
  165. [InstCombine] Be consistent w/handling of masked intrinsics style wise [NFC] — reames / detail
  166. [utils] Add a lldb data formatter for llvm::SmallString.

    Result:

    (lldb) p val
    (llvm::SmallString<32>) $31 = "patatino" — davide / detail
  167. Fix spelling error. NFC

    Summary: Test commit.

    Reviewers: msearles, jkorous

    Reviewed By: jkorous

    Subscribers: dexonsmith, arsenm, jvesely, nhaehnle, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61093 — kerbowa / detail
  168. llvm-cvtres: Make new dupe resource error a bit friendlier

    For well-known type IDs, include the name of the type.

    To not duplicate the ID->name map, make llvm-readobj call this new
    function as well.  It has slightly different output, so this also
    requires updating a few tests.

    Differential Revision: https://reviews.llvm.org/D61086 — nico / detail
  169. posix_spawn should retry upon EINTR

    Summary:
    We've seen cases of bots failing with:
      clang: error: unable to execute command: posix_spawn failed: Interrupted system call

    Add a small retry loop to posix_spawn in case this happens. Don't retry too much in case there's some systemic problem going on, but retry a few times.
    <rdar://problem/50181448>

    Reviewers: Bigcheese, arphaman

    Subscribers: jkorous, dexonsmith, kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61096 — jfb / detail
  170. Mark new jitlink test XFAIL for windows — rnk / detail
  171. Recommitting r358783 and r358786 "[MS] Emit S_HEAPALLOCSITE debug info" with fixes for buildbot error (undefined assembler label).

    Summary:
    This emits labels around heapallocsite calls and S_HEAPALLOCSITE debug
    info in codeview. Currently only changes FastISel, so emitting labels still
    needs to be implemented in SelectionDAG.

    Reviewers: rnk

    Subscribers: aprantl, hiraditya, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D61083 — akhuang / detail
  172. [DAGCombiner] scale repeated FP divisor by splat factor

    If we have a vector FP division with a splatted divisor, use the existing transform
    that converts 'x/y' into 'x * (1.0/y)' to allow more conversions. This can then
    potentially be converted into a scalar FP division by existing combines (rL358984)
    as seen in the tests here.

    That can be a potentially big perf difference if scalar fdiv has better timing
    (including avoiding possible frequency throttling for vector ops).

    Differential Revision: https://reviews.llvm.org/D61028 — spatel / detail
  173. [PowerPC] Allow using initial-exec TLS with PIC

    Using initial-exec TLS variables is a reasonable performance
    optimisation for system libraries. Use the correct PIC mechanism to get
    hold of the GOT to avoid text relocations.

    Differential Revision: https://reviews.llvm.org/D61026 — joerg / detail
  174. Add period at end of comment. — sfertile / detail
  175. [X86] Attempt to fix use-after-poison from r359121. — ctopper / detail
  176. [AMDGPU] gfx1010 SOP instructions

    Differential Revision: https://reviews.llvm.org/D61080 — rampitec / detail
  177. [SLP] Fix crash after r358519, by V. Porpodas.

    Summary: The code did not check if operand was undef before casting it to Instruction.

    Reviewers: RKSimon, ABataev, dtemirbulatov

    Reviewed By: ABataev

    Subscribers: uabelho

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61024 — abataev / detail
  178. Try once more to ensure constant initializaton of ManagedStatics

    First, use the old style of linker initialization for MSVC 2019 in
    addition to 2017. MSVC 2019 emits a dynamic initializer for
    ManagedStatic when compiled in debug mode, and according to zturner,
    also sometimes in release mode. I wasn't able to reproduce that, but it
    seems best to stick with the old code that works.

    When clang is using the MSVC STL, we have to give ManagedStatic a
    constexpr constructor that fully zero initializes all fields, otherwise
    it emits a dynamic initializer. The MSVC STL implementation of
    std::atomic has a non-trivial (but constexpr) default constructor that
    zero initializes the atomic value. Because one of the fields has a
    non-trivial constructor, ManagedStatic ends up with a non-trivial ctor.
    The ctor is not constexpr, so clang ends up emitting a dynamic
    initializer, even though it simply does zero initialization. To make it
    constexpr, we must initialize all fields of the ManagedStatic.

    However, while the constructor that takes a pointer is marked constexpr,
    clang says it does not evaluate to a constant because it contains a cast
    from a pointer to an integer. I filed this as:
    https://developercommunity.visualstudio.com/content/problem/545566/stdatomic-value-constructor-is-not-actually-conste.html

    Once we do that, we can add back the
    LLVM_REQUIRE_CONSTANT_INITIALIZATION marker, and so far as I'm aware it
    compiles successfully on all supported targets. — rnk / detail
  179. Add optional arg to profile count getters to filter
    synthetic profile count.

    Differential Revision: http://reviews.llvm.org/D61025 — davidxl / detail
  180. [X86] Prevent folding a load into an AND if that AND is really a ZEXT_INREG that should use movzx.

    This can save a 32-bit immediate move.

    We would shrink the load and fold it if it was non-volatile, but that's trickier to check for. — ctopper / detail
  181. llvm-cvtres: Remove a default argument. No behavior change. — nico / detail
  182. Revert using fcopyfile(3) to implement sys::fs::copy_file(Twine, int) on macOS

    It turns out that I mesread the man page and fcopyfile(3) does not
    actually support COPYFILE_CLONE for files.

    <rdar://problem/50148757> — Adrian Prantl / detail
  183. DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined types into type units

    While this doesn't come up in reasonable cases currently (the only user
    defined types not in type units are ones without linkage - which makes
    for near-ODR violations, because it'd be a type with linkage referencing
    a type without linkage - such a type can't be validly defined in more
    than one TU, so arguably it shouldn't be in a type unit to begin with -
    but it's a convenient way to demonstrate an issue that will become more
    revalent with homed modular debug info type definitions - which also
    don't need to be in type units but more legitimately so).

    Precursor to the Clang change to de-type-unit (by omitting the
    'identifier') types homed due to strong linkage vtables. (making that
    change without this one would lead to major type duplication in type
    units) — dblaikie / detail
  184. [X86] Remove dead nodes left after ReplaceAllUsesWith calls during address matching

    ReplaceAllUsesWith doesn't remove the node that was replaced. So its left around in the graph messing up use counts on other nodes.

    One thing to note, is that this isn't valid if the node being deleted is the root node of an LEA match that gets rejected. In that case the node needs to stay alive because the isel table walking code would still have a reference to it that its going to try to match next. I don't think that's the case here though because the nodes being deleted here should be "and", "srl", and "zero_extend" none of which can be the root node of an LEA match.

    Differential Revision: https://reviews.llvm.org/D61048 — ctopper / detail
  185. [AMDGPU] gfx1010 sgpr register changes

    Differential Revision: https://reviews.llvm.org/D61045 — rampitec / detail
  186. [X86][SSE] Add tests for bitcasting vXi1 bool vectors to non-simple types. — rksimon / detail
  187. [JITLink] Add support for passing arguments to jit-linked code.

    The --args option can now be used to pass arguments to code linked with
    llvm-jitlink. E.g.

    $ llvm-jitlink file1.o file2.o --args a b c

    is equivalent to:

    $ ld -o program file1.o file2.o
    $ ./program a b c — Lang Hames / detail
  188. [LLVM-C] Deprecate the LLVMValueRef-returning metadata creation functions

    Summary: There is still some value in using these functions while the remaining LLVMValueRef-based accessors are still around, but LLVMMDNodeInContext in particular has some wonky semantics that make it worth replacing outright.

    Reviewers: whitequark, deadalnix

    Reviewed By: whitequark

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60524 — codafi / detail
  189. [AMDGPU] Add gfx1010 target definitions

    Differential Revision: https://reviews.llvm.org/D61041 — rampitec / detail
  190. [InstCombine][X86] Use generic expansion of PACKSS/PACKUS for constant folding. NFCI.

    This patch rewrites the existing PACKSS/PACKUS constant folding code to expand as a generic expansion.

    This is a first NFCI step toward expanding PACKSS/PACKUS intrinsics which are acting as non-saturating truncations (although technically the expansion could be used in all cases - but we'll probably want to be conservative). — rksimon / detail
  191. Revert "[llvm-objdump] errorToErrorCode+message -> toString"

    Revert r359100

    It breaks llvm/test/Object/elf-invalid-phdr.test — jfb / detail
  192. llvm-undname: Fix assert-on->4GiB-string-literal, found by oss-fuzz — nico / detail
  193. [JITLink] Refer to FDE's CIE (not the most recent CIE) when parsing eh-frame.

    Frame Descriptor Entries (FDEs) have a pointer back to a Common Information
    Entry (CIE) that describes how the rest FDE should be parsed. JITLink had been
    assuming that FDEs always referred to the most recent CIE encountered, but the
    spec allows them to point back to any previously encountered CIE. This patch
    fixes JITLink to look up the correct CIE for the FDE.

    The testcase is a MachO binary with an FDE that refers to a CIE that is not the
    one immediately proceeding it (the layout can be viewed wit
    'dwarfdump --eh-frame <testcase>'. This test case had to be a binary as llvm-mc
    now sorts FDEs (as of r356216) to ensure FDEs *do* point to the most recent CIE. — Lang Hames / detail
  194. [llvm-objdump] Delete redundant check — maskray / detail
  195. [obj2yamp] - Simplify and cleanup the code in ELFDumper<ELFT>::dumpGroup a bit. NFC.

    This makes the variables naming to match LLVM style,
    simplifies the code used to extract the group members,
    simplifies the loop and reorders the code around a bit. — grimar / detail
  196. [llvm-objdump] errorToErrorCode+message -> toString — maskray / detail
  197. [AMDGPU][MC] Parser cleanup and refactoring

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D60767 — dpreobra / detail
  198. [x86] make sure horizontal op and broadcast types match to simplify (PR41414)

    If the types don't match, we can't just remove the shuffle.
    There may be some other opportunity for optimization here,
    but this should prevent the crashing seen in:
    https://bugs.llvm.org/show_bug.cgi?id=41414 — spatel / detail
  199. [LLVM-C] Use dyn_cast instead of unwrap in LLVMGetDebugLoc functions

    Summary:
    The `unwrap<Type>` calls can assert with:
    ```
    Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible type!"), function cast
    ```
    so replace them with `dyn_cast`.

    Reviewers: whitequark, abdulras, hiraditya, compnerd

    Reviewed By: whitequark

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60473 — whitequark / detail
  200. [yaml2obj] Replace num_zeros with write_zeros — maskray / detail
  201. [yaml2elf] - Replace a loop with write_zeros(). NFC.

    And apply clang-format to the method changed. — grimar / detail
  202. [X86] Add shouldFoldConstantShiftPairToMask override placeholder. NFCI.

    Prep work toward fixing PR40758 — rksimon / detail
  203. Let llvm-cvtres (and lld-link) report duplicate resources

    If two .res files contain the same resource, cvtres.exe (and hence
    link.exe) reject the input with this message:

        CVTRES : fatal error CVT1100: duplicate resource.  type:STRING, name:101, language:0x0409
        LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

    llvm-cvtres (and lld-link) used to silently pick one of the duplicate
    resources instead. This patch makes them report an error as well.
    We slightly improve on cvtres by printing the name of two .res files
    containing duplicate entries as well.

    Differential Revision: https://reviews.llvm.org/D61049 — nico / detail
  204. [X86][SSE] Add masked bit test cases for PR26697 — rksimon / detail
  205. Add "const" in GetUnderlyingObjects. NFC

    Summary:
    Both the input Value pointer and the returned Value
    pointers in GetUnderlyingObjects are now declared as
    const.

    It turned out that all current (in-tree) uses of
    GetUnderlyingObjects were trivial to update, being
    satisfied with have those Value pointers declared
    as const. Actually, in the past several of the users
    had to use const_cast, just because of ValueTracking
    not providing a version of GetUnderlyingObjects with
    "const" Value pointers. With this patch we get rid
    of those const casts.

    Reviewers: hfinkel, materi, jkorous

    Reviewed By: jkorous

    Subscribers: dexonsmith, jkorous, jholewinski, sdardis, eraman, hiraditya, jrtc27, atanasyan, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61038 — bjope / detail
  206. [Mips][CodeGen] Remove MachineFunction::setSubtarget. Change Mips to just copy the subtarget from the MachineFunction instead of recalculating it.

    Summary:
    The MachineFunction should have been created with the correct subtarget. As
    long as there is no way to change it, MipsTargetMachine can just capture it
    directly from the MachineFunction without calling getSubtargetImpl again.

    While there, const correct the Subtarget pointer to avoid a const_cast.

    I believe the Mips16Subtarget and NoMips16Subtarget members are never used, but
    I'll leave there removal for a separate patch.

    Reviewers: echristo, atanasyan

    Reviewed By: atanasyan

    Subscribers: sdardis, arichardson, hiraditya, jrtc27, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60936 — ctopper / detail
  207. [CommandLine] Provide parser<unsigned long> instantiation to allow cl::opt<uint64_t> on LP64 platforms

    Summary:
    And migrate opt<unsigned long long> to opt<uint64_t>

    Fixes PR19665

    Differential Revision: https://reviews.llvm.org/D60933 — maskray / detail
  208. llvm-cvtres: Accept /? as help flag, like cvtres.exe — nico / detail
  209. gn build: Merge r359050 more — nico / detail
  210. gn build: Merge r359050 — nico / detail
  211. Revert [AliasAnalysis] AAResults preserves AAManager.

    Triggers use-after-free. — asbirlea / detail
  212. [Remarks] Fix documentation indentation

    Fix the documentation bot:

    http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/30450/steps/docs-llvm-html/logs/stdio — thegameg / detail
  213. [Remarks] Add string deduplication using a string table

    * Add support for uniquing strings in the remark streamer and emitting the string table in the remarks section.

    * Add parsing support for the string table in the RemarkParser.

    From this remark:

    ```
    --- !Missed
    Pass:     inline
    Name:     NoDefinition
    DebugLoc: { File: 'test-suite/SingleSource/UnitTests/2002-04-17-PrintfChar.c',
                Line: 7, Column: 3 }
    Function: printArgsNoRet
    Args:
      - Callee:   printf
      - String:   ' will not be inlined into '
      - Caller:   printArgsNoRet
        DebugLoc: { File: 'test-suite/SingleSource/UnitTests/2002-04-17-PrintfChar.c',
                    Line: 6, Column: 0 }
      - String:   ' because its definition is unavailable'
    ...
    ```

    to:

    ```
    --- !Missed
    Pass: 0
    Name: 1
    DebugLoc: { File: 3, Line: 7, Column: 3 }
    Function: 2
    Args:
      - Callee:   4
      - String:   5
      - Caller:   2
        DebugLoc: { File: 3, Line: 6, Column: 0 }
      - String:   6
    ...
    ```

    And the string table in the .remarks/__remarks section containing:

    ```
    inline\0NoDefinition\0printArgsNoRet\0
    test-suite/SingleSource/UnitTests/2002-04-17-PrintfChar.c\0printf\0
    will not be inlined into \0 because its definition is unavailable\0
    ```

    This is mostly supposed to be used for testing purposes, but it gives us
    a 2x reduction in the remark size, and is an incremental change for the
    updates to the remarks file format.

    Differential Revision: https://reviews.llvm.org/D60227 — thegameg / detail
  214. [Lint] Permit aliasing noalias readonly arguments

    Summary:
    If two arguments are both readonly, then they have no memory dependency
    that would violate noalias, even if they do actually overlap.

    Reviewers: hfinkel, efriedma

    Reviewed By: efriedma

    Subscribers: efriedma, hiraditya, llvm-commits, tstellar

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60239 — cuviper / detail
  215. [AArch64][GlobalISel] Select G_INTRINSIC_ROUND

    Add selection support for G_INTRINSIC_ROUND, add a selection test, and add
    check lines to arm64-vfloatintrinsics.ll and f16-instructions.ll. — paquette / detail
  216. [AArch64][GlobalISel] Mark G_INTRINSIC_ROUND as a pre-isel floating point opcode

    Add G_INTRINSIC_ROUND to isPreISelGenericFloatingPointOpcode to ensure that its
    input and output are assigned the correct register bank.

    Add a regbankselect test to verify that we get what we expect here. — paquette / detail
  217. The error message for mismatched value sites is very cryptic.
    Make it more readable for an average user.

    Differential Revision: https://reviews.llvm.org/D60896 — dmikulin / detail
  218. [CMake] Use add_dependencies in add_llvm_install_targets

    Summary:
    The CMake documentation says that the `DEPENDS` field of
    add_custom_target is for files and output of custom commands. Adding a
    dependency on a target should be done with `add_dependency`.

    Differential Revision: https://reviews.llvm.org/D60879 — xiaobai / detail
  219. [CGP] Look through bitcasts when duplicating returns for tail calls

    The simple case of:

    ```
    int *callee();
    void *caller(void *a) {
      if (a == NULL)
        return callee();
      return a;
    }
    ```

    would generate a regular call instead of a tail call because we don't
    look through the bitcast of the call to `callee` when duplicating the
    return blocks.

    Differential Revision: https://reviews.llvm.org/D60837 — thegameg / detail
  220. [X86] Add codegen prepare test exercising a bitcast + tail call

    In preparation of https://reviews.llvm.org/D60837, add this test where
    we don't perform a tail call because we don't look through a bitcast. — thegameg / detail
  221. [WebAssembly] Emit br_table for most switch instructions

    Summary:
    Always convert switches to br_tables unless there is only one case,
    which is equivalent to a simple branch. This reduces code size for wasm,
    and we defer possible jump table optimizations to the VM.
    Addresses PR41502.

    Reviewers: kripken, sunfish

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60966 — aheejin / detail
  222. [WebAssembly] Make LBB markers not affected by test order

    Summary:
    This way we can change the order of tests or delete some of them without
    affecting tests for other functions.

    Reviewers: tlively

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60929 — aheejin / detail
  223. Revert "[MS] Emit S_HEAPALLOCSITE debug info" because of ToTWin64(db)
    buildbot failure.

    This reverts commit d07d6d617713bececf57f3547434dd52f0f13f9e and
    c774f687b6880484a126ed3e3d737e74c926f0ae. — akhuang / detail
  224. [AArch64][GlobalISel] Legalize G_INTRINSIC_ROUND

    Add it to the same rule as G_FCEIL etc. Add a legalizer test, and add a missing
    switch case to AArch64LegalizerInfo.cpp. — paquette / detail
  225. [MemorySSA] LCSSA preserves MemorySSA.

    Summary:
    Enabling MemorySSA in the old pass manager leads to MemorySSA being run
    twice due to the fact that LCSSA and LoopSimplify do not preserve
    MemorySSA. This is the first step to address that: target LCSSA.

    LCSSA does not make any changes that invalidate MemorySSA, so it
    preserves it by design. It must preserve AA as well, for this to hold.

    After this patch, MemorySSA is still run twice in the old pass manager.
    Step two follows: target LoopSimplify.

    Subscribers: mehdi_amini, jlebar, Prazek, llvm-commits, george.burgess.iv, chandlerc

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60832 — asbirlea / detail
  226. [X86] Autogenerate complete checks. NFC

    Prep for D60993 — ctopper / detail
  227. [AArch64][GlobalISel] Actually select G_INTRINSIC_TRUNC

    Apparently FileCheck wasn't actually matching the fallback check lines in
    arm64-vfloatintrinsics.ll properly. So, there were selection fallbacks for
    G_INTRINSIC_TRUNC there.

    Actually hook it up into AArch64InstructionSelector.cpp and write a proper
    selection test.

    I guess I'll figure out the FileCheck magic to make the fallback checks work
    properly in arm64-vfloatintrinsics.ll. — paquette / detail
  228. [ObjC][ARC] Check the basic block size before calling
    DominatorTree::dominate.

    ARC contract pass has an optimization that replaces the uses of the
    argument of an ObjC runtime function call with the call result.

    For example:

    ; Before optimization
    %1 = tail call i8* @foo1()
    %2 = tail call i8* @llvm.objc.retainAutoreleasedReturnValue(i8* %1)
    store i8* %1, i8** @g0, align 8

    ; After optimization
    %1 = tail call i8* @foo1()
    %2 = tail call i8* @llvm.objc.retainAutoreleasedReturnValue(i8* %1)
    store i8* %2, i8** @g0, align 8 // %1 is replaced with %2

    Before replacing the argument use, DominatorTree::dominate is called to
    determine whether the user instruction is dominated by the ObjC runtime
    function call instruction. The call to DominatorTree::dominate can be
    expensive if the two instructions belong to the same basic block and the
    size of the basic block is large. This patch checks the basic block size
    and just bails out if the size exceeds the limit set by command line
    option "arc-contract-max-bb-size".

    rdar://problem/49477063

    Differential Revision: https://reviews.llvm.org/D60900 — ahatanak / detail
  229. Reapply: "DebugInfo: Emit only one kind of accelerated access/name table""

    Originally committed in r358931
    Reverted in r358997

    Seems this change made Apple accelerator tables miss names (because
    names started respecting the CU NameTableKind GNU & assuming that
    shouldn't produce accelerated names too), which is never correct (apple
    accelerator tables don't have separators or CU lists - if present, they
    must describe all names in all CUs).

    Original Description:
    Currently to opt in to debug_names in DWARFv5, the IR must contain
    'nameTableKind: Default' which also enables debug_pubnames.

    Instead, only allow one of {debug_names, apple_names, debug_pubnames,
    debug_gnu_pubnames}.

    nameTableKind: Default gives debug_names in DWARFv5 and greater,
    debug_pubnames in v4 and earlier - and apple_names when tuning for lldb
    on MachO.
    nameTableKind: GNU always gives gnu_pubnames — dblaikie / detail
  230. [ThinLTO] Pass down opt level to LTO backend and handle -O0 LTO in new PM

    Summary:
    The opt level was not being passed down to the ThinLTO backend when
    invoked via clang (for distributed ThinLTO).

    This exposed an issue where the new PM was asserting if the Thin or
    regular LTO backend pipelines were invoked with -O0 (not a new issue,
    could be provoked by invoking in-process *LTO backends via linker using
    new PM and -O0). Fix this similar to the old PM where -O0 only does the
    necessary lowering of type metadata (WPD and LowerTypeTest passes) and
    then quits, rather than asserting.

    Reviewers: xur

    Subscribers: mehdi_amini, inglorion, eraman, hiraditya, steven_wu, dexonsmith, cfe-commits, llvm-commits, pcc

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D61022 — tejohnson / detail
  231. llvm-cvtres: Split addChild(ID) into two functions

    Before, there was an IsData parameter. Now, there are two different
    functions for data nodes and ID nodes. No behavior change, needed for a
    follow-up change to make two data nodes (but not two ID nodes) with the
    same ID an error.

    For consistency, rename another addChild() overload to addNameChild(). — nico / detail
  232. [AArch64][GlobalISel] Teach regbankselect about G_INTRINSIC_TRUNC

    Add it to isPreISelGenericFloatingPointOpcode, and add a regbankselect test.

    Update arm64-vfloatintrinsics.ll now that we can select it. — paquette / detail
  233. [AArch64][GlobalISel] Legalize G_INTRINSIC_TRUNC

    Same patch as G_FCEIL etc.

    Add the missing switch case in widenScalar, add G_INTRINSIC_TRUNC to the correct
    rule in AArch64LegalizerInfo.cpp, and add a test. — paquette / detail
  234. [ConstantRange] Add urem support

    Add urem support to ConstantRange, so we can handle in in LVI. This
    is an approximate implementation that tries to capture the most useful
    conditions: If the LHS is always strictly smaller than the RHS, then
    the urem is a no-op and the result is the same as the LHS range.
    Otherwise the lower bound is zero and the upper bound is
    min(LHSMax, RHSMax - 1).

    Differential Revision: https://reviews.llvm.org/D60952 — nikic / detail
  235. [ConstantRangeTest] Move helper methods; NFC

    Move Test(Unsigned|Signed)BinOpExhaustive() towards the top of the
    file, so they're easier to reuse. — nikic / detail
  236. [AMDGPU] Fixed addReg() in SIOptimizeExecMaskingPreRA.cpp

    The second argument is flags, not subreg.

    Differential Revision: https://reviews.llvm.org/D61031 — rampitec / detail
  237. [AArch64][GlobalISel] Legalize G_FMA for more vector types

    Same as G_FCEIL, G_FABS, etc. Just move it into that rule.

    Add a legalizer test for G_FMA, which we didn't have before and update
    arm64-vfloatintrinsics.ll. — paquette / detail
  238. [AliasAnalysis] AAResults preserves AAManager.

    Summary:
    AAResults should not invalidate AAManager.
    Update tests.

    Reviewers: chandlerc

    Subscribers: mehdi_amini, jlebar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60914 — asbirlea / detail
  239. [AArch64][GlobalISel] Add G_FMA to isPreISelGenericFloatingPointOpcode

    Noticed an unnecessary fallback in arm64-vmul caused by this.

    Also add a regbankselect test for G_FMA. — paquette / detail
  240. [APSInt][OpenMP] Fix isNegative, etc. for unsigned types

    Without this patch, APSInt inherits APInt::isNegative, which merely
    checks the sign bit without regard to whether the type is actually
    signed.  isNonNegative and isStrictlyPositive call isNegative and so
    are also affected.

    This patch adjusts APSInt to override isNegative, isNonNegative, and
    isStrictlyPositive with implementations that consider whether the type
    is signed.

    A large set of Clang OpenMP tests are affected.  Without this patch,
    these tests assume that `true` is not a valid argument for clauses
    like `collapse`.  Indeed, `true` fails APInt::isStrictlyPositive but
    not APSInt::isStrictlyPositive.  This patch adjusts those tests to
    assume `true` should be accepted.

    This patch also adds tests revealing various other similar fixes due
    to APSInt::isNegative calls in Clang's ExprConstant.cpp and
    SemaExpr.cpp: `++` and `--` overflow in `constexpr`, evaluated object
    size based on `alloc_size`, `<<` and `>>` shift count validation, and
    OpenMP array section validation.

    Reviewed By: lebedev.ri, ABataev, hfinkel

    Differential Revision: https://reviews.llvm.org/D59712 — jdenny / detail
  241. [dsymutil] Put Swift interface files into a per-arch subdirectory.

    This was meant to be part of the original commit r358921, but somehow
    got lost.

    <rdar://problem/49751748> — Adrian Prantl / detail
  242. [x86] fix test checks for fdiv combine; NFC

    Must have picked up some transient code changes when originally generating this. — spatel / detail
  243. llvm-undname: Support demangling the spaceship operator

    Also add a test for demanling the co_await operator. — nico / detail
  244. [x86] add tests for vector fdiv with splat divisor; NFC — spatel / detail
  245. [dsymutil] Fix use-after-free when sys::path::append grows the buffer.

    <rdar://problem/50117620> — Adrian Prantl / detail
  246. Revert "[dsymutil] Fix use-after-free when sys::path::append grows the buffer." — Adrian Prantl / detail
  247. [dsymutil] Fix use-after-free when sys::path::append grows the buffer.

    <rdar://problem/50117620> — Adrian Prantl / detail
  248. [InstCombine] Convert a masked.load of a dereferenceable address to an unconditional load

    If we have a masked.load from a location we know to be dereferenceable, we can simply issue a speculative unconditional load against that address. The key advantage is that it produces IR which is well understood by the optimizer. The select (cnd, load, passthrough) form produced should be pattern matchable back to hardware predication if profitable.

    Differential Revision: https://reviews.llvm.org/D59703 — reames / detail
  249. [x86] use psubus for more vsetcc lowering (PR39859)

    Circling back to a leftover bit from PR39859:
    https://bugs.llvm.org/show_bug.cgi?id=39859#c1

    ...we have this counter-intuitive (based on the test diffs) opportunity to use 'psubus'.
    This appears to be the better perf option for both Haswell and Jaguar based on llvm-mca.
    We already do this transform for the SETULT predicate, so this makes the code more
    symmetrical too. If we have pminub/pminuw, we prefer those, so this should not affect
    anything but pre-SSE4.1 subtargets.

      $ cat before.s
    movdqa -16(%rip), %xmm2    ## xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
    pxor %xmm0, %xmm2
    pcmpgtw -32(%rip), %xmm2 ## xmm2 = [255,255,255,255,255,255,255,255]
    pand %xmm2, %xmm0
    pandn %xmm1, %xmm2
    por %xmm2, %xmm0

      $ cat after.s
    movdqa -16(%rip), %xmm2    ## xmm2 = [256,256,256,256,256,256,256,256]
    psubusw %xmm0, %xmm2
    pxor %xmm3, %xmm3
    pcmpeqw %xmm2, %xmm3
    pand %xmm3, %xmm0
    pandn %xmm1, %xmm3
    por %xmm3, %xmm0

      $ llvm-mca before.s -mcpu=haswell
      Iterations:        100
      Instructions:      600
      Total Cycles:      909
      Total uOps:        700

      Dispatch Width:    4
      uOps Per Cycle:    0.77
      IPC:               0.66
      Block RThroughput: 1.8

      $ llvm-mca after.s -mcpu=haswell
      Iterations:        100
      Instructions:      700
      Total Cycles:      409
      Total uOps:        700

      Dispatch Width:    4
      uOps Per Cycle:    1.71
      IPC:               1.71
      Block RThroughput: 1.8

    Differential Revision: https://reviews.llvm.org/D60838 — spatel / detail
  250. [SPARC] Use the correct register set for the "r" asm constraint.

    64bit mode must use 64bit registers, otherwise assumptions about the top
    half of the registers are made. Problem found by Takeshi Nakayama in
    NetBSD. — joerg / detail
  251. Revert "DebugInfo: Emit only one kind of accelerated access/name table"

    Regresses some apple_names situations - still investigating.

    This reverts commit r358931. — dblaikie / detail
  252. Use llvm::stable_sort

    While touching the code, simplify if feasible. — maskray / detail
  253. [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers

    This patch adds support for parsing and assembling the %tls_ie_pcrel_hi
    and %tls_gd_pcrel_hi modifiers.

    Differential Revision: https://reviews.llvm.org/D55342 — lewis-revill / detail
  254. gn build: Merge r358944 — nico / detail
  255. [AMDGPU] Fix hidden argument metadata duplication for V3

    Essentially complete a proper rebase of the V3 metadata change over
    https://reviews.llvm.org/D49096.

    Minimize the diff between the V2 and V3 variants of the relevant lit
    tests, and clean up some trailing whitespace. — scott.linder / detail
  256. gn build: Merge r358949 — nico / detail
  257. [X86] Pull out collectConcatOps helper. NFCI.

    Create collectConcatOps helper that returns all the subvector ops for CONCAT_VECTORS or a INSERT_SUBVECTOR series. — rksimon / detail
  258. ARM: disallow add/sub to sp unless Rn is also sp.

    The manual says that Thumb2 add/sub instructions are only allowed to modify sp
    if the first source is also sp. This is slightly different from the usual rGPR
    restriction since it's context-sensitive, so implement it in C++. — Tim Northover / detail
  259. [Docs] ReleaseNotes: fixup markup in memcmp()->bcmp() entry — lebedevri / detail
  260. [DAGCombiner] generalize binop-of-splats scalarization

    If we only match build vectors, we can miss some patterns
    that use shuffles as seen in the affected tests.

    Note that the underlying calls within getSplatSourceVector()
    have the potential for compile-time explosion because of
    exponential recursion looking through binop opcodes, but
    currently the list of supported opcodes is very limited.
    Both of those problems should be addressed in follow-up
    patches. — spatel / detail
  261. AMDGPU: Fix LCSSA phi lowering in SILowerI1Copies

    Summary:
    When an LCSSA phi survives through instruction selection, the pass
    ends up removing that phi entirely because it is dominated by the
    logic that does the lanemask merging.

    This then used to trigger an assertion when processing a dependent
    phi instruction.

    Change-Id: Id4949719f8298062fe476a25718acccc109113b6

    Reviewers: llvm-commits

    Subscribers: kzhuravl, jvesely, wdng, yaxunl, t-tye, tpr, dstuttard, rtaylor, arsenm

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60999 — nha / detail
  262. [CallSite removal] move InlineCost to CallBase usage

    Converting InlineCost interface and its internals into CallBase usage.
    Inliners themselves are still not converted.

    Reviewed By: reames
    Tags: #llvm
    Differential Revision: https://reviews.llvm.org/D60636 — fedor.sergeev / detail
  263. Removing the explicit specifier from some default constructors; NFC. — aaronballman / detail
  264. [ARM] Update check for CBZ in Ifcvt

    The check for creating CBZ in constant island pass recently obtained the
    ability to search backwards to find a Cmp instruction. The code in IfCvt should
    mirror this to allow more conversions to the smaller form. The common code has
    been pulled out into a separate function to be shared between the two places.

    Differential Revision: https://reviews.llvm.org/D60090 — dmgreen / detail
  265. [ARM] Don't replicate instructions in Ifcvt at minsize

    Ifcvt can replicate instructions as it converts them to be predicated. This
    stops that from happening on thumb2 targets at minsize where an extra IT
    instruction is likely needed.

    Differential Revision: https://reviews.llvm.org/D60089 — dmgreen / detail
  266. Fix MSVC "32-bit shift implicitly converted to 64 bits" warning. NFCI. — rksimon / detail
  267. Fix MSVC "32-bit shift implicitly converted to 64 bits" warning. NFCI. — rksimon / detail
  268. [DAGCombiner] Combine OR as ADD when no common bits are set

    Summary:
    The DAGCombiner is rewriting (canonicalizing) an ISD::ADD
    with no common bits set in the operands as an ISD::OR node.

    This could sometimes result in "missing out" on some
    combines that normally are performed for ADD. To be more
    specific this could happen if we already have rewritten an
    ADD into OR, and later (after legalizations or combines)
    we expose patterns that could have been optimized if we
    had seen the OR as an ADD (e.g. reassociations based on ADD).

    To make the DAG combiner less sensitive to if ADD or OR is
    used for these "no common bits set" ADD/OR operations we
    now apply most of the ADD combines also to an OR operation,
    when value tracking indicates that the operands have no
    common bits set.

    Reviewers: spatel, RKSimon, craig.topper, kparzysz

    Reviewed By: spatel

    Subscribers: arsenm, rampitec, lebedev.ri, jvesely, nhaehnle, hiraditya, javed.absar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D59758 — bjope / detail
  269. [AArch64] Add support for MTE intrinsics

    This patch provides intrinsics support for Memory Tagging Extension (MTE),
    which was introduced with the Armv8.5-a architecture.
    The intrinsics are described in detail in the latest
    ACLE Q1 2019 documentation: https://developer.arm.com/docs/101028/latest
    Reviewed by: David Spickett
    Differential Revision: https://reviews.llvm.org/D60486 — javed.absar / detail
  270. [ARM][FIX] Add missing f16.lane.vldN/vstN lowering

    Summary:
    Add missing D and Q lane VLDSTLane lowering
    for fp16 elements.

    Reviewers: efriedma, kosarev, SjoerdMeijer, ostannard

    Reviewed By: efriedma

    Subscribers: javed.absar, kristof.beyls, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60874 — dnsampaio / detail
  271. [llvm-mc] - Properly set the the address align field of the compressed sections.

    About the compressed sections spec says:
    (https://docs.oracle.com/cd/E37838_01/html/E36783/section_compression.html)
    sh_addralign fields of the section header for a compressed section
    reflect the requirements of the compressed section.

    Currently, llvm-mc always puts uncompressed section alignment to sh_addralign.
    It is not correct. zlib styled section contains an Elfxx_Chdr header,
    so we should either use 4 or 8 values depending on the target
    (Uncompressed section alignment is stored in ch_addralign field of the compression header).

    GNU assembler version 2.31.1 also has this issue,
    but in 2.32.51 it was already fixed. This is how it was found
    during debugging of the https://bugs.llvm.org/show_bug.cgi?id=40482
    actually.

    Differential revision: https://reviews.llvm.org/D60965 — grimar / detail
  272. [LSR] Limit the recursion for setup cost

    In some circumstances we can end up with setup costs that are very complex to
    compute, even though the scevs are not very complex to create. This can also
    lead to setupcosts that are calculated to be exactly -1, which LSR treats as an
    invalid cost. This patch puts a limit on the recursion depth for setup cost to
    prevent them taking too long.

    Thanks to @reames for the report and test case.

    Differential Revision: https://reviews.llvm.org/D60944 — dmgreen / detail
  273. [WebAssembly] Bail out of fastisel earlier when computing PIC addresses

    This change partially reverts https://reviews.llvm.org/D54647 in favor
    of bailing out during computeAddress instead.

    This catches the condition earlier and handles more cases.

    Differential Revision: https://reviews.llvm.org/D60986 — sbc / detail
  274. add Qiu Chaofan (qiucf@cn.ibm.com) to the CREDITS.txt — chaofan / detail
  275. Revert "Use const DebugLoc&"

    This reverts r358910 (git commit 2b744665308fc8d30a3baecb4947f2bd81aa7d30)

    While this patch *seems* trivial and safe and correct, it is not. The
    copies are actually load bearing copies. You can observe this with MSan
    or other ways of checking for use-after-destroy, but otherwise this may
    result in ... difficult to debug inexplicable behavior.

    I suspect the issue is that the debug location is used after the
    original reference to it is removed. The metadata backing it gets
    destroyed as its last references goes away, and then we reference it
    later through these const references. — chandlerc / detail
  276. [CMake] Replace the sanitizer support in runtimes build with multilib

    This is a more generic solution; while the sanitizer support can be used
    only for sanitizer instrumented builds, the multilib support can be used
    to build other variants such as noexcept which is what we would like to use
    in Fuchsia.

    The name CMake target name uses the target name, same as for the regular
    runtimes build and the name of the multilib, concatenated with '+'. The
    libraries are installed in a subdirectory named after the multilib.

    Differential Revision: https://reviews.llvm.org/D60926 — phosek / detail
  277. Fully qualify llvm::Optional, some compilers complain otherwise. — Adrian Prantl / detail
  278. DebugInfo: Emit only one kind of accelerated access/name table

    Currently to opt in to debug_names in DWARFv5, the IR must contain
    'nameTableKind: Default' which also enables debug_pubnames.

    Instead, only allow one of {debug_names, apple_names, debug_pubnames,
    debug_gnu_pubnames}.

    nameTableKind: Default gives debug_names in DWARFv5 and greater,
    debug_pubnames in v4 and earlier - and apple_names when tuning for lldb
    on MachO.
    nameTableKind: GNU always gives gnu_pubnames — dblaikie / detail
  279. [SelectionDAG] move splat util functions up from x86 lowering

    This was supposed to be NFC, but the change in SDLoc
    definitions causes instruction scheduling changes.

    There's nothing x86-specific in this code, and it can
    likely be used from DAGCombiner's simplifyVBinOp(). — spatel / detail
  280. Try to work around compile errors with older versions of GCC. — Adrian Prantl / detail
  281. Relax test to check for a valid number instead of a specific number. — dyung / detail
  282. [AMDGPU] Fix an issue in `op_sel_hi` skipping.

    Summary:
    - Only apply packed literal `op_sel_hi` skipping on operands requiring
      packed literals. Even an instruction is `packed`, it may have operand
      requiring non-packed literal, such as `v_dot2_f32_f16`.

    Reviewers: rampitec, arsenm, kzhuravl

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60978 — hliao / detail
  283. [dsymutil] Collect parseable Swift interfaces in the .dSYM bundle.

    When a Swift module built with debug info imports a library without
    debug info from a textual interface, the textual interface is
    necessary to reconstruct types defined in the library's interface. By
    recording the Swift interface files in DWARF dsymutil can collect them
    and LLDB can find them.

    This patch teaches dsymutil to look for DW_TAG_imported_modules and
    records all references to parseable Swift ingterfrace files and copies
    them to

      a.out.dSYM/Contents/Resources/<Arch>/<ModuleName>.swiftinterface

    <rdar://problem/49751748> — Adrian Prantl / detail
  284. [InstCombine] Eliminate stores to constant memory

    If we have a store to a piece of memory which is known constant, then we know the store must be storing back the same value. As a result, the store (or memset, or memmove) must either be down a dead path, or a noop. In either case, it is valid to simply remove the store.

    The motivating case for this involves a memmove to a buffer which is constant down a path which is dynamically dead.

    Note that I'm choosing to implement the less aggressive of two possible semantics here. We could simply say that the store *is undefined*, and prune the path. Consensus in the review was that the more aggressive form might be a good follow on change at a later date.

    Differential Revision: https://reviews.llvm.org/D60659 — reames / detail
  285. [Support] unflake TempFileCollisions test

    Summary:
    This test was added to verify that createUniqueEntity() does
    not enter an infinite loop when all possible names are taken. However,
    it also checked that all possible names are generated, which is flaky
    (because the names are generated randomly). This change increases the
    number of attempts we make to make flakes exceedingly
    unlikely (3.88e-62).

    Reviewers: fedor.sergeev, rsmith

    Reviewed By: fedor.sergeev

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D56336 — inglorion / detail
  286. [InstSimplify] Move masked.gather w/no active lanes handling to InstSimplify from InstCombine

    In the process, use the existing masked.load combine which is slightly stronger, and handles a mix of zero and undef elements in the mask. — reames / detail
  287. gn build: Merge r358869 — nico / detail
  288. Use const DebugLoc& — arsenm / detail
  289. AMDGPU: Skip debug instructions in assert

    These are inserted after branch relaxation, and for some reason it's
    decided to put them in the long branch expansion block. It's probably
    not great to rely on the source block address, so this should probably
    be switched to being PC relative instead of relying on the block
    address — arsenm / detail
  290. [Tests] Revise a test as requested by reviewer in D59703 — reames / detail
  291. [Tests] Add a negative test for masked.gather part of D59703 — reames / detail
  292. [IPSCCP] Add missing `AssumptionCacheTracker` dependency

    Back in August, r340525 introduced a dependency on the assumption
    cache tracker in the ipsccp pass, but that commit missed a call to
    INITIALIZE_PASS_DEPENDENCY, which leaves the assumption cache
    improperly registered if SCCP is the only thing that pulls it in. — Justin Bogner / detail
  293. [LPM/BPI] Preserve BPI through trivial loop pass pipeline (e.g. LCSSA, LoopSimplify)

    Currently, we do not expose BPI to loop passes at all. In the old pass manager, we appear to have been ignoring the fact that LCSSA and/or LoopSimplify didn't preserve BPI, and making it available to the following loop passes anyways.  In the new one, it's invalidated before running any loop pass if either LCSSA or LoopSimplify actually make changes. If they don't make changes, then BPI is valid and available.  So, we go ahead and teach LCSSA and LoopSimplify how to preserve BPI for consistency between old and new pass managers.

    This patch avoids an invalidation between the two requires in the following trivial pass pipeline:
    opt -passes="requires<branch-prob>,loop(no-op-loop),requires<branch-prob>"
    (when the input file is one which requires either LCSSA or LoopSimplify to canonicalize the loops)

    Differential Revision: https://reviews.llvm.org/D60790 — reames / detail
  294. [PGO/SamplePGO][NFC] Move the function updateProfWeight from Instruction
    to CallInst.

    The issue was raised here: https://reviews.llvm.org/D60903#1472783

    The function Instruction::updateProfWeight is only used for CallInst in
    profile update. From the current interface, it is very easy to think that
    the function can also be used for branch instruction. However, Branch
    instruction does't need the scaling the function provides for
    branch_weights and VP (value profile), in addition, scaling may introduce
    inaccuracy for branch probablity.

    The patch moves the function updateProfWeight from Instruction class to
    CallInst to remove the confusion. The patch also changes the scaling of
    branch_weights from a loop to a block because we know that ProfileData
    for branch_weights of CallInst will only have two operands at most.

    Differential Revision: https://reviews.llvm.org/D60911 — wmi / detail
  295. Use llvm::stable_sort. NFC — maskray / detail
  296. Remove spurious semicolons; NFC. — aaronballman / detail
  297. AMDGPU/GlobalISel: Fix non-power-of-2 G_EXTRACT sources — arsenm / detail
  298. STLExtras: add stable_sort wrappers — maskray / detail
  299. GlobalISel: Legalize scalar G_EXTRACT sources — arsenm / detail
  300. llvm-undname: Fix an assert-on-invalid, found by oss-fuzz — nico / detail
  301. AMDGPU: Fix not checking for copy when looking at copy src

    Effectively reverts r356956. The check for isFullCopy was excessive,
    but there still needs to be a check that this is a copy. — arsenm / detail
  302. [AMDGPU][MC] Corrected parsing of SP3 'neg' modifier

    See bug 41156: https://bugs.llvm.org/show_bug.cgi?id=41156

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D60624 — dpreobra / detail
  303. [TargetLowering][AMDGPU][X86] Improve SimplifyDemandedBits bitcast handling

    This patch adds support for BigBitWidth -> SmallBitWidth bitcasts, splitting the DemandedBits/Elts accordingly.

    The AMDGPU backend needed an extra  (srl (and x, c1 << c2), c2) -> (and (srl(x, c2), c1) combine to encourage BFE creation, I investigated putting this in DAGCombine but it caused a lot of noise on other targets - some improvements, some regressions.

    The X86 changes are all definite wins.

    Differential Revision: https://reviews.llvm.org/D60462 — rksimon / detail
  304. [DAGCombiner] make variable name less ambiguous; NFC — spatel / detail
  305. [DAGCombiner] prepare shuffle-of-splat to handle more patterns; NFC — spatel / detail
  306. [LLVM-C] Add accessors to the default floating-point metadata node

    Summary: Add a getter and setter pair for floating-point accuracy metadata.

    Reviewers: whitequark, deadalnix

    Reviewed By: whitequark

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60527 — codafi / detail
  307. [NewPM] Add Option handling for SimpleLoopUnswitch

    This patch enables passing options to SimpleLoopUnswitch via the passes pipeline.

    Reviewers: chandlerc, fedor.sergeev, leonardchan, philip.pfaffe
    Reviewed By: fedor.sergeev
    Subscribers: llvm-commits
    Differential Revision: https://reviews.llvm.org/D60676 — skatkov / detail
  308. [AMDGPU] Regenerate uitofp i8 to float conversion tests.

    Prep work for D60462 — rksimon / detail
  309. [NewPM] Add dummy Test for LoopVectorize option parsing. — skatkov / detail
  310. Revert "[ConstantRange] Rename make{Guaranteed -> Exact}NoWrapRegion() NFC"

    This reverts commit 7bf4d7c07f2fac862ef34c82ad0fef6513452445.

    After thinking about this more, this isn't right, the range is not exact
    in the same sense as makeExactICmpRegion(). This needs a separate
    function. — nikic / detail
  311. [ConstantRange] Rename make{Guaranteed -> Exact}NoWrapRegion() NFC

    Following D60632 makeGuaranteedNoWrapRegion() always returns an
    exact nowrap region. Rename the function accordingly. This is in
    line with the naming of makeExactICmpRegion(). — nikic / detail
  312. [X86] Reject 512-bit types in getRegForInlineAsmConstraint when AVX512 is not enabled. Same for 256 bit and AVX. — ctopper / detail
  313. [JITLink] Remove a lot of reduntant 'JITLink_' prefixes. NFC. — Lang Hames / detail
  314. [cmake] Add llvm-jit to LLVM_TEST_DEPENDS

    Otherwise llvm-jit would say "utils/lit/lit/llvm/subst.py:127: note: Did not find llvm-jitlink in ..." — maskray / detail
  315. [JITLink] Fix section start address calculation in eh-frame recorder.

    Section atoms are not sorted, so we need to scan the whole section to find the
    start address.

    No test case: Found by inspection, and any reproduction would depend on pointer
    ordering. — Lang Hames / detail
  316. Attemp get llvm-jitlink building on Windows

    By removing an include of dlfcn.h that looks unused.

    And clang-format a too-long line while here. — nico / detail
  317. [JITLink] Add an option to dump relocated section content.

    The -dump-relocated-section-content option will dump the contents of each
    section after relocations are applied, and before any checks are run or
    code executed. — Lang Hames / detail
  318. gn build: Re-run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format` — nico / detail
  319. gn build: Merge r358749

    Since the symlinks list for llvm-symbolizer is now never empty,
    the :symlinks target no longer needs an explicit dep on :llvm-symbolizer
    -- there will be at least one dep on a symlink, and each symlink depends
    on :llvm-symbolizer already.

    Since llvm-symbolizer:symlinks now produces symlinks that check-llvm
    uses, make llvm/test depend on the symlink target. — nico / detail
  320. gn build: Merge r358818 (JITLink) — nico / detail
  321. [cmake] Fix bug in r358779 - [CMake] Pass monorepo build settings in cross compile

    Escape semicolons in the targets list so that cmake doesn't expand
    them to spaces. — dhinton / detail
  322. llvm-undname: Fix hex escapes in wchar_t, char16_t, char32_t strings

    llvm-undname used to put '\x' in front of every pair of nibbles, but
    u"\xD7\xFF" produces a string with 6 bytes: \xD7 \0 \xFF \0 (and \0\0). Correct
    for a single character (plus terminating \0) is u\xD7FF instead.
    Now, wchar_t, char16_t, and char32_t strings roundtrip from source to
    clang-cl (and cl.exe) and then llvm-undname.

    (...at least as long as it's not a string like L"\xD7FF" L"foo" which
    gets demangled as L"\xD7FFfoo", where the compiler then considers the
    "f" as part of the hex escape. That seems ok.)

    Also add a comment saying that the "almost-valid" char32_t string I
    added in my last commit is actually produced by compilers. — nico / detail
  323. llvm-undname: Fix stack overflow on almost-valid

    If a unsigned with all 4 bytes non-0 was passed to outputHex(), there
    were two off-by-ones in it:

    - Both MaxPos and Pos left space for the final \0, which left the buffer
      one byte to small. Set MaxPos to 16 instead of 15 to fix.

    - The `assert(Pos >= 0);` was after a `Pos--`, move it up one line.

    Since valid Unicode codepoints are <= 0x10ffff, this could never really
    happen in practice.

    Found by oss-fuzz. — nico / detail
  324. [ConstantRange] Add saturating add/sub methods

    Add support for uadd_sat and friends to ConstantRange, so we can
    handle uadd.sat and friends in LVI. The implementation is forwarding
    to the corresponding APInt methods with appropriate bounds.

    One thing worth pointing out here is that the handling of wrapping
    ranges is not maximally accurate. A simple example is that adding 0
    to a wrapped range will return a full range, rather than the original
    wrapped range. The tests also only check that the non-wrapping
    envelope is correct and minimal.

    Differential Revision: https://reviews.llvm.org/D60946 — nikic / detail
  325. [ConstantRange] Add getNonEmpty() constructor

    ConstantRanges have an annoying special case: If upper and lower are
    the same, it can be either an empty or a full set. When constructing
    constant ranges nearly always a full set is intended, but this still
    requires an explicit check in many places.

    This revision adds a getNonEmpty() constructor that disambiguates this
    case: If upper and lower are the same, a full set is created.

    Differential Revision: https://reviews.llvm.org/D60947 — nikic / detail
  326. [AArch64] add tests with multiple binop+splat vals; NFC

    See D60890 for context. — spatel / detail
  327. llvm-undname: Fix stack overflow on invalid found by oss-fuzz — nico / detail
  328. gn build: Fix build after r358837 — nico / detail
  329. [ARM] Rewrite isLegalT2AddressImmediate

    This does two main things, firstly adding some at least basic addressing modes
    for i64 types, and secondly treats floats and doubles sensibly when there is no
    fpu. The floating point change can help codesize in some cases, especially with
    D60294.

    Most backends seems to not consider the exact VT in isLegalAddressingMode,
    instead switching on type size. That is now what this does when the target does
    not have an fpu (as the float data will be loaded using LDR's). i64's currently
    use the address range of an LDRD (even though they may be legalised and loaded
    with an LDR). This is at least better than marking them all as illegal
    addressing modes.

    I have not attempted to do much with vectors yet. That will need changing once
    MVE is added.

    Differential Revision: https://reviews.llvm.org/D60677 — dmgreen / detail
  330. [X86] Add the rounding control operand to the printing for some scalar FMA instructions. — ctopper / detail
  331. [CachePruning] Simplify comparator — maskray / detail
  332. [JITLink] Add dependency on MCParser to unit test after rL358818

    This is required by -DBUILD_SHARED_LIBS=on builds for createMCAsmParser. — maskray / detail
  333. [X86] Don't form masked vfpclass instruction from and+vfpclass unless the fpclass only has a single use. — ctopper / detail
  334. [JITLink] Remove an overly strict error check in JITLink's eh-frame parser.

    The error check required FDEs to refer to the most recent CIE, but the eh-frame
    spec allows them to refer to any previously seen CIE. This patch removes the
    offending check. — Lang Hames / detail
  335. [BinaryFormat] Fix bitfield-ordering of MachO::relocation_info on big-endian.

    Hopefully this will fix the JITLink regression test failures on big-endian
    testers (e.g.
    http://lab.llvm.org:8011/builders/clang-s390x-linux-lnt/builds/12702) — Lang Hames / detail
  336. [JITLink] Factor basic common GOT and stub creation code into its own class. — Lang Hames / detail
  337. [gn] Move Features.inc to clangd, create a config for it

    ClangdLSPServer and clangd unittests now include Features.inc so we
    need to append the target_gen_dir that contains it to their
    include_dirs. To do so, we use a public config that's applied to
    any target that depends on the features one.

    Differential Revision: https://reviews.llvm.org/D60919 — phosek / detail
  338. [JITLink] Add dependencies on MCDissassembler and Target to unit test. — Lang Hames / detail
  339. llvm-undname: Improve string literal demangling with embedded \0 chars

    - Don't assert when a string looks like a u32 string to the heuristic
      but doesn't have a length that's 0 mod 4.  Instead, classify those
      as u16 with embedded \0 chars. Found by oss-fuzz.
    - Print embedded nul bytes as \0 instead of \x00. — nico / detail
  340. ftime-trace: Trace the name of the currently active pass as well.

    Differential Revision: https://reviews.llvm.org/D60782 — nico / detail
  341. [JITLink] Add yet more detail to MachO/x86-64 unsupported relocation errors.

    Knowing the address/symbolnum field values makes it easier to identify the
    unsupported relocation, and provides enough information for the full bit
    pattern of the relocation to be reconstructed. — Lang Hames / detail
  342. [JITLink][ORC] Add JITLink to the list of dependencies for ORC.

    The new ObjectLinkingLayer in ORC depends on JITLink.

    This should fix the build error at
    http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/9621 — Lang Hames / detail
  343. [JITLink] Fix a bad formatv format string. — Lang Hames / detail
  344. [JITLink] Disable MachO/x86-64 regression test if the X86 target is not built. — Lang Hames / detail
  345. Revert r358800. Breaks Obsequi from the test suite.

    The last attempt fixed gcc and consumer-typeset, but Obsequi seems to fail with
    a different issue. — aemerson / detail
  346. [JITLink] Add llvm-jitlink to the list of available tools in lit.

    Should fix the 'llvm-jitlink command not found' errors that are appearing on
    some builders. — Lang Hames / detail
  347. [JITLink] Add BinaryFormat to JITLink's dependencies.

    Hopefully this will fix the missing dependence on llvm::identify_magic that is
    showing up on some PPC bots. E.g.

    http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/9617 — Lang Hames / detail
  348. [JITLink] Add more detail to MachO/x86-64 "unsupported relocation" errors.

    The extra information here will be helpful in diagnosing errors, like the
    ones currently occuring on the PPC big-endian bots. :) — Lang Hames / detail
  349. [JITLink] Add check to JITLink unit test to bail out for unsupported targets.

    This should prevent spurious JITLink unit test failures for builds that do not
    support the target(s) required by the tests. — Lang Hames / detail
  350. [JITLink] Silence some MSVC implicit cast warnings. — Lang Hames / detail
  351. [JITLink] Add llvm-jitlink subdirectory to tools/LLVMBuild.txt — Lang Hames / detail
  352. [JITLink] Use memset instead of bzero. — Lang Hames / detail
  353. [JITLink] Silence a narrowing conversion warning. — Lang Hames / detail
  354. [JITLink] Update BuildingAJIT tutorials to account for API changes in r358818.

    DynamicLibrarySearchGenerator::GetForCurrentProcess now takes a char (the global
    prefix) rather than a DataLayout reference. — Lang Hames / detail
  355. [JITLink] Fix a missing header and bad prototype. — Lang Hames / detail
  356. Initial implementation of JITLink - A replacement for RuntimeDyld.

    Summary:

    JITLink is a jit-linker that performs the same high-level task as RuntimeDyld:
    it parses relocatable object files and makes their contents runnable in a target
    process.

    JITLink aims to improve on RuntimeDyld in several ways:

    (1) A clear design intended to maximize code-sharing while minimizing coupling.

    RuntimeDyld has been developed in an ad-hoc fashion for a number of years and
    this had led to intermingling of code for multiple architectures (e.g. in
    RuntimeDyldELF::processRelocationRef) in a way that makes the code more
    difficult to read, reason about, extend. JITLink is designed to isolate
    format and architecture specific code, while still sharing generic code.

    (2) Support for native code models.

    RuntimeDyld required the use of large code models (where calls to external
    functions are made indirectly via registers) for many of platforms due to its
    restrictive model for stub generation (one "stub" per symbol). JITLink allows
    arbitrary mutation of the atom graph, allowing both GOT and PLT atoms to be
    added naturally.

    (3) Native support for asynchronous linking.

    JITLink uses asynchronous calls for symbol resolution and finalization: these
    callbacks are passed a continuation function that they must call to complete the
    linker's work. This allows for cleaner interoperation with the new concurrent
    ORC JIT APIs, while still being easily implementable in synchronous style if
    asynchrony is not needed.

    To maximise sharing, the design has a hierarchy of common code:

    (1) Generic atom-graph data structure and algorithms (e.g. dead stripping and
    |  memory allocation) that are intended to be shared by all architectures.
    |
    + -- (2) Shared per-format code that utilizes (1), e.g. Generic MachO to
           |  atom-graph parsing.
           |
           + -- (3) Architecture specific code that uses (1) and (2). E.g.
                    JITLinkerMachO_x86_64, which adds x86-64 specific relocation
                    support to (2) to build and patch up the atom graph.

    To support asynchronous symbol resolution and finalization, the callbacks for
    these operations take continuations as arguments:

      using JITLinkAsyncLookupContinuation =
          std::function<void(Expected<AsyncLookupResult> LR)>;

      using JITLinkAsyncLookupFunction =
          std::function<void(const DenseSet<StringRef> &Symbols,
                             JITLinkAsyncLookupContinuation LookupContinuation)>;

      using FinalizeContinuation = std::function<void(Error)>;

      virtual void finalizeAsync(FinalizeContinuation OnFinalize);

    In addition to its headline features, JITLink also makes other improvements:

      - Dead stripping support: symbols that are not used (e.g. redundant ODR
        definitions) are discarded, and take up no memory in the target process
        (In contrast, RuntimeDyld supported pointer equality for weak definitions,
        but the redundant definitions stayed resident in memory).

      - Improved exception handling support. JITLink provides a much more extensive
        eh-frame parser than RuntimeDyld, and is able to correctly fix up many
        eh-frame sections that RuntimeDyld currently (silently) fails on.

      - More extensive validation and error handling throughout.

    This initial patch supports linking MachO/x86-64 only. Work on support for
    other architectures and formats will happen in-tree.

    Differential Revision: https://reviews.llvm.org/D58704 — Lang Hames / detail
  357. [X86] Disable argument copy elision for arguments passed via pointers

    Summary:
    If you pass two 1024 bit vectors in IR with AVX2 on Windows 64. Both vectors will be split in four 256 bit pieces. The four pieces of the first argument will be passed indirectly using 4 gprs. The second argument will get passed via pointers in memory.

    The PartOffsets stored for the second argument are all in terms of its original 1024 bit size. So the PartOffsets for each piece are 32 bytes apart. So if we consider it for copy elision we'll only load an 8 byte pointer, but we'll move the address 32 bytes. The stack object size we create for the first part is probably wrong too.

    This issue was encountered by ISPC. I'm working on getting a reduce test case, but wanted to go ahead and get feedback on the fix.

    Reviewers: rnk

    Reviewed By: rnk

    Subscribers: dbabokin, llvm-commits, hiraditya

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60801 — ctopper / detail
  358. [CorrelatedValuePropagation] Mark subs that we know not to wrap with nuw/nsw.

    Summary:
    Teach CorrelatedValuePropagation to also handle sub instructions in addition to add. Relatively simple since makeGuaranteedNoWrapRegion already understood sub instructions. Only subtle change is which range is passed as "Other" to that function, since sub isn't commutative.

    Note that CorrelatedValuePropagation::processAddSub is still hidden behind a default-off flag as IndVarSimplify hasn't yet been fixed to strip the added nsw/nuw flags and causes a miscompile. (PR31181)

    Reviewers: sanjoy, apilipenko, nikic

    Reviewed By: nikic

    Subscribers: hiraditya, jfb, jdoerfert, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60036 — luqmana / detail
  359. [ExecutionDomainFix] Optimize a binary search insertion — maskray / detail
  360. [llvm-symbolizer] Fix section index at the end of a section

    This is very minor issue. The returned section index is only used by
    DWARFDebugLine as an llvm::upper_bound input and the use case shouldn't
    cause any behavioral change. — maskray / detail
  361. [IndVarSimplify] Generate full checks for some LFTR tests; NFC — nikic / detail
  362. [IndVarSimplify] Add tests for PR31181; NFC — nikic / detail
  363. [ADT] Avoid warning in bsearch testcase — sammccall / detail
  364. [llvm-objdump] Fix End in disassemblyObject after rL358806 — maskray / detail
  365. [CVP] Add tests for sub nowrap inference; NFC

    These are baseline tests for D60036.

    Patch by Luqman Aden. — nikic / detail
  366. [X86] Fix stack probing on x32 (PR41477)

    Fix for https://bugs.llvm.org/show_bug.cgi?id=41477. On the x32 ABI
    with stack probing a dynamic alloca will result in a WIN_ALLOCA_32
    with a 32-bit size. The current implementation tries to copy it into
    RAX, resulting in a physreg copy error. Fix this by copying to EAX
    instead. Also fix incorrect opcodes or registers used in subs. — nikic / detail
  367. [llvm-objdump] Don't disassemble symbols before SectionAddr

    This was caught by UBSAN

    tools/llvm-objdump/X86/macho-disassembly-g-dsym.test
    tools/llvm-objdump/X86/hex-displacement.test — maskray / detail
  368. [X86] Don't turn (and (shl X, C1), C2) into (shl (and X, (C1 >> C2), C2) if the original AND can represented by MOVZX.

    The MOVZX doesn't require an immediate to be encoded at all. Though it does use
    a 2 byte opcode so its the same size as a 1 byte immediate. But it has a
    separate source and dest register so can help avoid copies. — ctopper / detail
  369. [X86] Turn (and (anyextend (shl X, C1), C2)) into (shl (and (anyextend X), (C1 >> C2), C2) if the AND could match a movzx.

    There's one slight regression in here because we don't check that the immediate
    already allowed movzx before the shift. I'll fix that next. — ctopper / detail
  370. [llvm-objdump] Simplify --{start,stop}-address — maskray / detail
  371. [WebAssembly] Object: Improve error messages on invalid section

    Also add a test.

    Differential Revision: https://reviews.llvm.org/D60836 — sbc / detail
  372. Revert "Revert "[GlobalISel] Add legalization support for non-power-2 loads and stores""

    We were shifting the wrong component of a split load when trying to combine them
    back into a single value. — aemerson / detail
  373. [GlobalISel][AArch64] Legalize + select G_FRINT

    Exactly the same as G_FCEIL, G_FABS, etc.

    Add tests for the fp16/nofp16 behaviour, update arm64-vfloatintrinsics, etc.

    Differential Revision: https://reviews.llvm.org/D60895 — paquette / detail
  374. [WebAssembly] FastISel: Don't fallback to SelectionDAG after BuildMI in selectCall

    My understanding is that once BuildMI has been called we can't fallback
    to SelectionDAG.

    This change moves the fallback for when getRegForValue() fails for
    that target of an indirect call.  This was failing in -fPIC mode when
    the callee is GlobalValue.

    Add a test case that tickles this.

    Differential Revision: https://reviews.llvm.org/D60908 — sbc / detail
  375. [GVN+LICM] Use line 0 locations for better crash attribution

    This is a follow-up to r291037+r291258, which used null debug locations
    to prevent jumpy line tables.

    Using line 0 locations achieves the same effect, but works better for
    crash attribution because it preserves the right inline scope.

    Differential Revision: https://reviews.llvm.org/D60913 — Vedant Kumar / detail
  376. Update GN files to build with r358103 — Vitaly Buka / detail
  377. Remove the EnableEarlyCSEMemSSA set of options from the legacy
    and new pass managers. They were default to true and not being
    used.

    Differential Revision: https://reviews.llvm.org/D60747 — echristo / detail
  378. [AArch64] Fix checks for AArch64MCExpr::VK_SABS flag.

    VK_SABS is part of the SymLoc bitfield in the variant kind which should
    be compared for equality, not by checking the VK_SABS bit.

    As far as I know, the existing code happened to produce the correct
    results in all cases, so this is just a cleanup.

    Patch by Stephen Crane.

    Differential Revision: https://reviews.llvm.org/D60596 — efriedma / detail
  379. [GlobalISel] Add IRTranslator support for G_FRINT

    Add it as a simple intrinsic, update arm64-irtranslator.ll.

    Differential Revision: https://reviews.llvm.org/D60893 — paquette / detail
  380. Attempt to fix buildbot failure in commit 1bb57bac959ac163fd7d8a76d734ca3e0ecee6ab. — akhuang / detail
  381. [GlobalISel] Add a G_FRINT opcode

    Equivalent to SelectionDAG's frint node.

    Differential Revision: https://reviews.llvm.org/D60891 — paquette / detail
  382. [X86] Add test case for D60801. NFC — ctopper / detail
  383. [MS] Emit S_HEAPALLOCSITE debug info

    Summary:
    This emits labels around heapallocsite calls and S_HEAPALLOCSITE debug
    info in codeview. Currently only changes FastISel, so emitting labels still
    needs to be implemented in SelectionDAG.

    Reviewers: hans, rnk

    Subscribers: aprantl, hiraditya, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D60800 — akhuang / detail
  384. [CMake] Pass monorepo build settings in cross compile

    This allows the cross compiled build targets to configure the LLVM tools and sub-projects that are part of the main build.

    This is needed for generating native non llvm *-tablegen tools when cross compiling clang in the monorepo build environment. — cbieneman / detail
  385. [gn] Support dots in CMake paths in the sync script

    Some file paths use dots to pick up sources from parent directories.

    Differential Revision: https://reviews.llvm.org/D60734 — phosek / detail
  386. [LICM & MemorySSA] Make limit flags pass tuning options.

    Summary:
    Make the flags in LICM + MemorySSA tuning options in the old and new
    pass managers.

    Subscribers: mehdi_amini, jlebar, Prazek, george.burgess.iv, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60490 — asbirlea / detail
  387. Revert "[GlobalISel] Add legalization support for non-power-2 loads and stores"

    This introduces some runtime failures which I'll need to investigate further. — aemerson / detail
  388. [GlobalISel][AArch64] Legalize vector G_FPOW

    This instruction is legalized in the same way as G_FSIN, G_FCOS, G_FLOG10, etc.

    Update legalize-pow.mir and arm64-vfloatintrinsics.ll to reflect the change.

    Differential Revision: https://reviews.llvm.org/D60218 — paquette / detail
  389. [NewPassManager] Adding pass tuning options: loop vectorize.

    Summary:
    Trying to add the plumbing necessary to add tuning options to the new pass manager.
    Testing with the flags for loop vectorize.

    Reviewers: chandlerc

    Subscribers: sanjoy, mehdi_amini, jlebar, steven_wu, dexonsmith, dang, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D59723 — asbirlea / detail
  390. [dsymutil] DwarfLinker: delete unused parameter — maskray / detail
  391. [SelectionDAG] soften splat mask assert/unreachable (PR41535)

    These are general queries, so they should not die when given
    a degenerate input like an all undef mask. Callers should be
    able to deal with an op that will eventually be simplified away. — spatel / detail
  392. llvm-undname: Attempt to fix leak-on-invalid found by oss-fuzz — nico / detail
  393. gn build: Merge r358722 — nico / detail
  394. gn build: Merge r358691 — nico / detail
  395. [LTO] Add plumbing to save stats during LTO on Darwin.

    Gold and ld on Linux already support saving stats, but the
    infrastructure is missing on Darwin. Unfortunately it seems like the
    configuration from lib/LTO/LTO.cpp is not used.

    This patch adds a new LTOStatsFile option and adds plumbing in Clang to
    use it on Darwin, similar to the way remarks are handled.

    Currnetly the handling of LTO flags seems quite spread out, with a bunch
    of duplication. But I am not sure if there is an easy way to improve
    that?

    Reviewers: anemet, tejohnson, thegameg, steven_wu

    Reviewed By: steven_wu

    Differential Revision: https://reviews.llvm.org/D60516 — fhahn / detail
  396. Change \r\n -> \n for llvm-symbolizer/help.test after rL358749 — maskray / detail
  397. [llvm-symbolizer] Add llvm-addr2line

    This adds an alias for llvm-symbolizer with different defaults so that
    it can be used as a drop-in replacement for GNU's addr2line.

    If a substring "addr2line" is found in the tool's name:
      * it defaults "-i", "-f" and "-C" to OFF;
      * it uses "--output-style=GNU" by default.

    Differential Revision: https://reviews.llvm.org/D60067 — ikudrin / detail
  398. [llvm-symbolizer] Unhide and document the "-output-style" option

    With the latest changes, the option gets useful for users of
    llvm-symbolizer, not only for the upcoming llvm-addr2line.

    Differential Revision: https://reviews.llvm.org/D60816 — ikudrin / detail
  399. [llvm-symbolizer] Make the output with -output-style=GNU closer to addr2line's

    This patch addresses two differences in the output of llvm-symbolizer
    and GNU's addr2line:

    * llvm-symbolizer prints an empty line after the report for an address.

    * With "-f -i=0", llvm-symbolizer replaces the name of an inlined
      function with the name from the symbol table, i. e., the top caller
      function in the inlining chain. addr2line preserves the name of the
      inlined function.

    Differential Revision: https://reviews.llvm.org/D60770 — ikudrin / detail
  400. [AMDGPU] Regenerate extractelt->truncate test.

    Prep work for D60462 — rksimon / detail
  401. [CodeGen] Add "const" to MachineInstr::mayAlias

    Summary:
    The basic idea here is to make it possible to use
    MachineInstr::mayAlias also when the MachineInstr
    is const (or the "Other" MachineInstr is const).

    The addition of const in MachineInstr::mayAlias
    then rippled down to the need for adding const
    in several other places, such as
    TargetTransformInfo::getMemOperandWithOffset.

    Reviewers: hfinkel

    Reviewed By: hfinkel

    Subscribers: hfinkel, MatzeB, arsenm, jvesely, nhaehnle, hiraditya, javed.absar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60856 — bjope / detail
  402. [PATCH] [MachineScheduler] Check pending instructions when an instruction is scheduled

    Pending instructions that may have been blocked from being available by the HazardRecognizer may no longer may not be blocked any more when an instruction is scheduled; pending instructions should be re-checked in this case.

    This is primarily aimed at VLIW targets with large parallelism and esoteric constraints.

    No testcase as no in-tree targets have this behavior.

    Differential revision: https://reviews.llvm.org/D60861 — jamesm / detail
  403. [MergeFunc] Delete unused FunctionNode::release() — maskray / detail
  404. [MergeFunc] removeUsers: call remove() only on direct users

    removeUsers uses a work list to collect indirect users and call remove()
    on those functions. However it has a bug (`if (!Visited.insert(UU).second)`).

    Actually, we don't have to collect indirect users.
    After the merge of F and G, G's callers will be considered (added to
    Deferred). If G's callers can be merged, G's callers' callers will be
    considered.

    Update the test unnamed-addr-reprocessing.ll to make it clear we can
    still merge indirect callers. — maskray / detail
  405. [AMDGPU] Ignore non-SUnits edges

    Summary:
    Ignore edges to non-SUnits (e.g. ExitSU) when checking
    for low latency instructions.

    When calling the function isLowLatencyInstruction(),
    an ExitSU could be on the list of successors, not necessarily
    a regular SU. In other places in the code there is a check
    "Succ->NodeNum >= DAGSize" to prevent further processing of
    ExitSU as "Succ->getInstr()" is NULL in such a case.
    Also, 8 out of 9 cases of "SUnit *Succ = SuccDep.getSUnit())"
    has the guard, so it is clearly an omission here.

    Change-Id: Ica86f0327c7b2e6bcb56958e804ea6c71084663b

    Reviewers: nhaehnle

    Reviewed By: nhaehnle

    Subscribers: MatzeB, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, javed.absar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60864 — Piotr Sobczak / detail
  406. [CallSite removal]  Move the legacy PM, call graph, and some inliner
    code to `CallBase`.

    This patch focuses on the legacy PM, call graph, and some of inliner and legacy
    passes interacting with those APIs from `CallSite` to the new `CallBase` class.
    No interesting changes.

    Differential Revision: https://reviews.llvm.org/D60412 — chandlerc / detail
  407. [MergeFunc] Use less_first() as the comparator of Schwartzian transform — maskray / detail
  408. [X86] Turn (and (shl X, C1), C2) into (shl (and X, (C1 >> C2), C2) if the AND could match a movzx.

    Could get further improvements by recognizing (i64 and (anyext (i32 shl))). — ctopper / detail
  409. [X86] Add test cases for turning (and (shl X, C1), C2) into (shl (and X, (C1 >> C2), C2) when the AND could match to a movzx.

    We already reorder when C1 >> C2 would allow a smaller immediate encoding. — ctopper / detail
  410. [X86] Make sure we copy the HandleSDNode back to N before executing the default code after the switch in matchAddressRecursively

    Summary:
    There are two places where we create a HandleSDNode in address matching in order to handle the case where N is changed by CSE. But if we end up not matching, we fall back to code at the bottom of the switch that really would like N to point to something that wasn't CSEd away. So we should make sure we copy the handle back to N on any paths that can reach that code.

    This appears to be the true reason we needed to check DELETED_NODE in the negation matching. In pr32329.ll we had two subtracts back to back. We recursed through the first subtract, and onto the second subtract. The second subtract called matchAddressRecursively on its LHS which caused that subtract to CSE. We ultimately failed the match and ended up in the default code. But N was pointing at the old node that had been deleted, but the default code didn't know that and took it as the base register. Then we unwound back to the first subtract and tried to access this bogus base reg requiring the check for deleted node. With this patch we now use the CSE result as the base reg instead.

    matchAdd has been broken since sometime in 2015 when it was pulled out of the switch into a helper function. The assignment to N at the end was still there, but N was passed by value and not by reference so the update didn't go anywhere.

    Reviewers: niravd, spatel, RKSimon, bkramer

    Reviewed By: niravd

    Subscribers: llvm-commits, hiraditya

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60843 — ctopper / detail
  411. [DWARF] Use hasFileAtIndex to properly verify DWARF 5 after rL358732 — maskray / detail
  412. [llvm] Prevent duplicate files in debug line header in dwarf 5: another attempt

    Another attempt to land the changes in debug line header to prevent duplicate
    files in Dwarf 5. I rolled back my previous commit because of a mistake in
    generating the object file in a test. Meanwhile, I addressed some offline
    comments and changed the implementation; the largest difference is that
    MCDwarfLineTableHeader does not keep DwarfVersion but gets it as a parameter. I
    also merged the patch to fix two lld tests that will strt to fail into this
    patch.

    Original Commit:

    https://reviews.llvm.org/D59515

    Original Message:
    Motivation: In previous dwarf versions, file name indexes started from 1, and
    the primary source file was not explicit. Dwarf 5 standard (6.2.4) prescribes
    the primary source file to be explicitly given an entry with an index number 0.

    The current implementation honors the specification by just duplicating the
    main source file, once with index number 0, and later maybe with another
    index number. While this is compliant with the letter of the standard, the
    duplication causes problems for consumers of this information such as lldb.
    (Some files are duplicated, where only some of them have a line table although
    all refer to the same file)

    With this change, dwarf 5 debug line section files always start from 0, and
    the zeroth entry is not duplicated whenever possible. This requires different
    handling of dwarf 4 and dwarf 5 during generation (e.g. when a function returns
    an index zero for a file name, it signals an error in dwarf 4, but not in dwarf
    5) However, I think the minor complication is worth it, because it enables all
    consumers (lldb, gdb, dwarfdump, objdump, and so on) to treat all files in the
    file name list homogenously. — tamur / detail
  413. [APInt] Optimize umul_ov

    Change two costly udiv() calls to lshr(1)*RHS + left-shift + plus

    On one 64-bit umul_ov benchmark, I measured an obvious improvement: 12.8129s -> 3.6257s

    Note, there may be some value to special case 64-bit (the most common
    case) with __builtin_umulll_overflow().

    Differential Revision: https://reviews.llvm.org/D60669 — maskray / detail
  414. MergeFunc: preserve COMDAT information when creating a thunk

    We would previously drop the COMDAT on the thunk we generated when replacing a
    function body with the forwarding thunk. This would result in a function that
    may have been multiply emitted and multiply merged to be emitted with the same
    name without the COMDAT. This is a hard error with PE/COFF where the COMDAT is
    used for the deduplication of Value Witness functions for Swift. — Saleem Abdulrasool / detail
  415. [LoopUnroll] Move list of params into a struct [NFCI].

    Summary: Cleanup suggested in review of r358304.

    Reviewers: sanjoy, efriedma

    Subscribers: jlebar, zzheng, dmgreen, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60638 — asbirlea / detail
  416. [AArch64] add tests for mul-by-element; NFC — spatel / detail
  417. Implement sys::fs::copy_file using the macOS copyfile(3) API
    to support APFS clones.

    This patch adds a Darwin-specific implementation of
    llvm::sys::fs::copy_file() that uses the macOS copyfile(3) API to
    support APFS copy-on-write clones, which should be faster and much
    more space efficient.

    https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/ToolsandAPIs/ToolsandAPIs.html

    Differential Revision: https://reviews.llvm.org/D60802

    This reapplies 358628 with an additional bugfix handling the case
    where the destination file already exists. (Caught by the clang testsuite). — Adrian Prantl / detail
  418. [GlobalISel][AArch64] Legalize/select G_(S/Z/ANY)_EXT for v8s8s

    This adds legalization for G_SEXT, G_ZEXT, and G_ANYEXT for v8s8s.

    We were falling back on G_ZEXT in arm64-vabs.ll before, preventing us from
    selecting the @llvm.aarch64.neon.sabd.v8i8 intrinsic.

    This adds legalizer support for those 3, which gives us selection via the
    importer. Update the relevant tests (legalize-ext.mir, select-int-ext.mir) and
    add a GISel line to arm64-vabs.ll.

    Differential Revision: https://reviews.llvm.org/D60881 — paquette / detail
  419. [GlobalISel][AArch64] Legalize v8s8 loads

    Add legalizer support for loads of v8s8 and update legalize-load-store.mir.

    Differential Revision: https://reviews.llvm.org/D60877 — paquette / detail
  420. llvm-undname: Fix two more asserts-on-invalid, found by oss-fuzz — nico / detail
  421. llvm-undname: Fix two asserts-on-invalid — nico / detail
  422. [GuardWidening] Wire up a NPM version of the LoopGuardWidening pass — reames / detail
  423. [NFC] FMF propagation for GlobalIsel — mcberg2017 / detail
  424. [BlockExtractor] Extend the file format to support the grouping of basic blocks

    Prior to this patch, each basic block listed in the extrack-blocks-file
    would be extracted to a different function.

    This patch adds the support for comma separated list of basic blocks
    to form group.

    When the region formed by a group is not extractable, e.g., not single
    entry, all the blocks of that group are left untouched.

    Let us see this new format in action (comments are not part of the
    file format):
    ;; funcName bbName[,bbName...]
       foo      bb1        ;; Extract bb1 in its own function
       foo      bb2,bb3    ;; Extract bb2,bb3 in their own function
       bar      bb1,bb4    ;; Extract bb1,bb4 in their own function
       bar      bb2        ;; Extract bb2 in its own function

    Assuming all regions are extractable, this will create one function and
    thus one call per region.

    Differential Revision: https://reviews.llvm.org/D60746 — qcolombet / detail
  425. [PowerPC] Add some PPC vec cost tests to prep for D60160 NFC — froese / detail
  426. [X86] combineVectorTruncationWithPACKUS - remove split/concatenation of mask

    combineVectorTruncationWithPACKUS is currently splitting the upper bit bit masking into 128-bit subregs and then concatenating them back together.

    This was originally done to avoid regressions that caused existing subregs to be concatenated to the larger type just for the AND masking before being extracted again. This was fixed by @spatel (notably rL303997 and rL347356).

    This also lets SimplifyDemandedBits do some further improvements before it hits the recursive depth limit.

    My only annoyance with this is that we were broadcasting some xmm masks but we seem to have lost them by moving to ymm - but that's a known issue as the logic in lowerBuildVectorAsBroadcast isn't great.

    Differential Revision: https://reviews.llvm.org/D60375#inline-539623 — rksimon / detail
  427. [LoopPred] Fix a blatantly obvious bug in r358684

    The bug is that I didn't check whether the operand of the invariant_loads were themselves invariant.  I don't know how this got missed in the patch and review.  I even had an unreduced test case locally, and I remember handling this case, but I must have lost it in one of the rebases.  Oops. — reames / detail
  428. [x86] add tests for improved insertelement to index 0 (PR41512); NFC

    Patch proposal in D60852. — spatel / detail
  429. [CMake] Allow custom extensions for externalized debug info

    Summary:
    Extra flexibility for emitting debug info to external files (remains Darwin only for now).
    LLDB needs this functionality to emit a LLDB.framework.dSYM instead of LLDB.dSYM when building the framework, because the latter could conflict with the driver's lldb.dSYM when emitted in the same directory on case-insensitive file systems.

    Reviewers: friss, bogner, beanz

    Subscribers: mgorny, aprantl, llvm-commits, #lldb

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60862 — stefan.graenitz / detail
  430. [LoopPredication] Allow predication of loop invariant computations (within the loop)

    The purpose of this patch is to eliminate a pass ordering dependence between LoopPredication and LICM. To understand the purpose, consider the following snippet of code inside some loop 'L' with IV 'i'
    A = _a.length;
    guard (i < A)
    a = _a[i]
    B = _b.length;
    guard (i < B);
    b = _b[i];
    ...
    Z = _z.length;
    guard (i < Z)
    z = _z[i]
    accum += a + b + ... + z;

    Today, we need LICM to hoist the length loads, LoopPredication to make the guards loop invariant, and TrivialUnswitch to eliminate the loop invariant guard to establish must execute for the next length load. Today, if we can't prove speculation safety, we'd have to iterate these three passes 26 times to reduce this example down to the minimal form.

    Using the fact that the array lengths are known to be invariant, we can short circuit this iteration. By forming the loop invariant form of all the guards at once, we remove the need for LoopPredication from the iterative cycle. At the moment, we'd still have to iterate LICM and TrivialUnswitch; we'll leave that part for later.

    As a secondary benefit, this allows LoopPred to expose peeling oppurtunities in a much more obvious manner.  See the udiv test changes as an example.  If the udiv was not hoistable (i.e. we couldn't prove speculation safety) this would be an example where peeling becomes obviously profitable whereas it wasn't before.

    A couple of subtleties in the implementation:
    - SCEV's isSafeToExpand guarantees speculation safety (i.e. let's us expand at a new point).  It is not a precondition for expansion if we know the SCEV corresponds to a Value which dominates the requested expansion point.
    - SCEV's isLoopInvariant returns true for expressions which compute the same value across all iterations executed, regardless of where the original Value is located.  (i.e. it can be in the loop)  This implies we have a speculation burden to prove before expanding them outside loops.
    - invariant_loads and AA->pointsToConstantMemory are two cases that SCEV currently does not handle, but meets the SCEV definition of invariance.  I plan to sink this part into SCEV once this has baked for a bit.

    Differential Revision: https://reviews.llvm.org/D60093 — reames / detail
  431. [SDA] Bug fix: Use IPD outside the loop as divergence bound

    Summary:
    The immediate post dominator of the loop header may be part of the divergent loop.
    Since this /was/ the divergence propagation bound the SDA would not detect joins of divergent paths outside the loop.

    Reviewers: nhaehnle

    Reviewed By: nhaehnle

    Subscribers: mmasten, arsenm, jvesely, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D59042 — nha / detail
  432. Fix a bug in SCEV's isSafeToExpand around speculation safety

    isSafeToExpand was making a common, but dangerously wrong, mistake in assuming that if any instruction within a basic block executes, that all instructions within that block must execute.  This can be trivially shown to be false by considering the following small example:
    bb:
      add x, y  <-- InsertionPoint
      call @throws()
      udiv x, y <-- SCEV* S
      br ...

    It's clearly not legal to expand S above the throwing call, but the previous logic would do so since S dominates (but not properlyDominates) the block containing the InsertionPoint.

    Since iterating instructions w/in a block is expensive, this change special cases two cases: 1) S is an operand of InsertionPoint, and 2) InsertionPoint is the terminator of it's block.  These two together are enough to keep all current optimizations triggering while fixing the latent correctness issue.

    As best I can tell, this is a silent bug in current ToT.  Given that, there's no tests with this change.  It was noticed in an upcoming optimization change (D60093), and was reviewed as part of that.  That change will include the test which caused me to notice the issue.  I'm submitting this seperately so that anyone bisecting a problem gets a clear explanation. — reames / detail
  433. MinidumpYAML: Fix ambiguity between std::make_unique and llvm::make_unique — d0k / detail
  434. MinidumpYAML: Add support for ModuleList stream

    Summary:
    This patch adds support for yaml (de)serialization of the minidump
    ModuleList stream. It's a fairly straight forward-application of the
    existing patterns to the ModuleList structures defined in previous
    patches.

    One thing, which may be interesting to call out explicitly is the
    addition of "new" allocation functions to the helper BlobAllocator
    class. The reason for this was, that there was an emerging pattern of a
    need to allocate space for entities, which do not have a suitable
    lifetime for use with the existing allocation functions. A typical
    example of that was the "size" of various lists, which is only available
    as a temporary returned by the .size() method of some container. For
    these cases, one can use the new set of allocation functions, which
    will take a temporary object, and store it in an allocator-managed
    buffer until it is written to disk.

    Reviewers: amccarth, jhenderson, clayborg, zturner

    Subscribers: lldb-commits, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60405 — labath / detail
  435. gn build: Merge r358607 — nico / detail
  436. gn build: Merge r358633 — nico / detail
  437. gn build: Merge r358620 — nico / detail
  438. [llvm-objcopy] Add -B mips — rupprecht / detail
  439. [yaml2elf/obj2yaml] - Allow normal parsing/dumping of the .rela.dyn section

    .rela.dyn is a section that has sh_info normally
    set to zero. And Info is an optional field in the description
    of the relocation section in YAML.

    But currently, yaml2obj would fail to produce the object when
    Info is not explicitly listed.

    The patch fixes the issue.

    Differential revision: https://reviews.llvm.org/D60820 — grimar / detail
  440. [X86][SSE] Lower ICMP EQ(AND(X,C),C) -> SRA(SHL(X,LOG2(C)),BW-1) iff C is power-of-2.

    This replaces the MOVMSK combine introduced at D52121/rL342326

    (movmsk (setne (and X, (1 << C)), 0)) -> (movmsk (X << C))

    with the more general icmp lowering so it can pick up more cases through bitcasts - notably vXi8 cases which use vXi16 shifts+masks, this patch can remove the mask and use pcmpgtb(0,x) for the sra.

    Differential Revision: https://reviews.llvm.org/D60625 — rksimon / detail
  441. [llvm-objcopy][llvm-strip] Add switch to allow removing referenced sections

    llvm-objcopy currently emits an error if a section to be removed is
    referenced by another section. This is a reasonable thing to do, but is
    different to GNU objcopy. We should allow users who know what they are
    doing to have a way to produce the invalid ELF. This change adds a new
    switch --allow-broken-links to both llvm-strip and llvm-objcopy to do
    precisely that. The corresponding sh_link field is then set to 0 instead
    of an error being emitted.

    I cannot use llvm-readelf/readobj to test the link fields because they
    emit an error if any sections, like the .dynsym, cannot be properly
    loaded.

    Reviewed by: rupprecht, grimar

    Differential Revision: https://reviews.llvm.org/D60324 — jhenderson / detail
  442. Test commit access [NFC]

    Remove a trailing space — c-rhodes / detail
  443. [NewPM] Add Option handling for LoopVectorize

    This patch enables passing options to LoopVectorizePass via the passes pipeline.

    Reviewers: chandlerc, fedor.sergeev, leonardchan, philip.pfaffe
    Reviewed By: fedor.sergeev
    Subscribers: llvm-commits
    Differential Revision: https://reviews.llvm.org/D60681 — skatkov / detail
  444. [PowerPC] Fix wrong ElemSIze when calling isConsecutiveLS()

    Summary:
    This issue from the bugzilla: https://bugs.llvm.org/show_bug.cgi?id=41177

    When the two operands for BUILD_VECTOR are same, we will get assert error.
    llvm::SDValue combineBVOfConsecutiveLoads(llvm::SDNode*, llvm::SelectionDAG&):
    Assertion `!(InputsAreConsecutiveLoads && InputsAreReverseConsecutive) &&
    "The loads cannot be both consecutive and reverse consecutive."' failed.

    This error caused by the wrong ElemSIze when calling isConsecutiveLS(). We
    should use `getScalarType().getStoreSize();` to get the ElemSize instread of
    `getScalarSizeInBits() / 8`.

    Reviewed By: jsji

    Differential Revision: https://reviews.llvm.org/D60811 — zhangkang / detail
  445. [llvm-profdata] Fix one bad format in llvm-profdata CommandGuide doc. NFC — xur / detail
  446. Elaborate why we have an option on by default for enabling chr. — echristo / detail
  447. [AMDGPU] Avoid DAG combining assert with fneg(fadd(A,0))

    fneg combining attempts to turn it into fadd(fneg(A), fneg(0)), but
    creating the new fadd folds to just fneg(A). When A has multiple uses,
    this confuses it and you get an assert. Fixed.

    Differential Revision: https://reviews.llvm.org/D60633

    Change-Id: I0ddc9b7286abe78edc0cd8d734fdeb05ff09821c — tpr / detail
  448. Fix a typo in comments. [NFC] — tamur / detail
  449. [GISel]:IRTranslator: Prefer a buidInstr form that allows CSE of cast instructions

    https://reviews.llvm.org/D60844

    Use the style of buildInstr that allows CSEing. — aditya_nandakumar / detail
  450. Fix bad compare function over FusionCandidate.

    Reverse the checking of the domiance order so that when a self compare happens,
    it returns false.  This makes compare function have strict weak ordering. — rtrieu / detail
  451. Revert Implement sys::fs::copy_file using the macOS copyfile(3) API to support APFS clones.

    This reverts r358628 (git commit 91a06bee788262a294527b815354f380d99dfa9b)
    while investigating a crash reproducer bot failure. — Adrian Prantl / detail
  452. Implement sys::fs::copy_file using the macOS copyfile(3) API
    to support APFS clones.

    This patch adds a Darwin-specific implementation of
    llvm::sys::fs::copy_file() that uses the macOS copyfile(3) API to
    support APFS copy-on-write clones, which should be faster and much
    more space efficient.

    https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/ToolsandAPIs/ToolsandAPIs.html

    Differential Revision: https://reviews.llvm.org/D60802 — Adrian Prantl / detail
  453. Fix formatting. NFC — ahatanak / detail
  454. [x86] try to widen 'shl' as part of LEA formation

    The test file has pairs of tests that are logically equivalent:
    https://rise4fun.com/Alive/2zQ

    %t4 = and i8 %t1, 8
    %t5 = zext i8 %t4 to i16
    %sh = shl i16 %t5, 2
    %t6 = add i16 %sh, %t0
    =>
    %t4 = and i8 %t1, 8
    %sh2 = shl i8 %t4, 2
    %z5 = zext i8 %sh2 to i16
    %t6 = add i16 %z5, %t0

    ...so if we can fold the shift op into LEA in the 1st pattern, then we
    should be able to do the same in the 2nd pattern (unnecessary 'movzbl'
    is a separate bug I think).

    We don't want to do this any sooner though because that would conflict
    with generic transforms that try to narrow the width of the shift.

    Differential Revision: https://reviews.llvm.org/D60789 — spatel / detail
  455. Test commit by Denis Bakhvalov

    Change-Id: I4d85123a157d957434902fb14ba50926b2d56212 — dendibakh / detail
  456. [AsmPrinter] hoist %a output template to base class for ARM+Aarch64

    Summary:
    X86 is quite complicated; so I intend to leave it as is. ARM+Aarch64 do
    basically the same thing (Aarch64 did not correctly handle immediates,
    ARM has a test llvm/test/CodeGen/ARM/2009-04-06-AsmModifier.ll that uses
    %a with an immediate) for a flag that should be target independent
    anyways.

    Reviewers: echristo, peter.smith

    Reviewed By: echristo

    Subscribers: javed.absar, eraman, kristof.beyls, hiraditya, llvm-commits, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60841 — nickdesaulniers / detail
  457. Add a getSizeInBits() accessor to MachineMemOperand. NFC.

    Cleans up a bunch of places where we do getSize() * 8.

    Differential Revision: https://reviews.llvm.org/D60799 — aemerson / detail
  458. [GlobalISel] Add legalization support for non-power-2 loads and stores

    Legalize things like i24 load/store by splitting them into smaller power of 2 operations.

    This matches how SelectionDAG handles these operations.

    Differential Revision: https://reviews.llvm.org/D59971 — aemerson / detail
  459. Add basic loop fusion pass.

    This patch adds a basic loop fusion pass. It will fuse loops that conform to the
    following 4 conditions:
      1. Adjacent (no code between them)
      2. Control flow equivalent (if one loop executes, the other loop executes)
      3. Identical bounds (both loops iterate the same number of iterations)
      4. No negative distance dependencies between the loop bodies.

    The pass does not make any changes to the IR to create opportunities for fusion.
    Instead, it checks if the necessary conditions are met and if so it fuses two
    loops together.

    The pass has not been added to the pass pipeline yet, and thus is not enabled by
    default. It can be run stand alone using the -loop-fusion option.

    Differential Revision: https://reviews.llvm.org/D55851 — kbarton / detail
  460. [AsmPrinter] defer %c to base class for ARM, PPC, and Hexagon. NFC

    Summary:
    None of these derived classes do anything that the base class cannot.
    If we remove these case statements, then the base class can handle them
    just fine.

    Reviewers: peter.smith, echristo

    Reviewed By: echristo

    Subscribers: nemanjai, javed.absar, eraman, kristof.beyls, hiraditya, kbarton, jsji, llvm-commits, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60803 — nickdesaulniers / detail
  461. [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols

    Summary:
    Reapply r357931 with fixes to ThinLTO testcases and llvm-lto tool.

    ThinLTOCodeGenerator currently does not preserve llvm.used symbols and
    it can internalize them. In order to pass the necessary information to the
    legacy ThinLTOCodeGenerator, the input to the code generator is
    rewritten to be based on lto::InputFile.

    Now ThinLTO using the legacy LTO API will requires data layout in
    Module.

    "internalize" thinlto action in llvm-lto is updated to run both
    "promote" and "internalize" with the same configuration as
    ThinLTOCodeGenerator. The old "promote" + "internalize" option does not
    produce the same output as ThinLTOCodeGenerator.

    This fixes: PR41236
    rdar://problem/49293439

    Reviewers: tejohnson, pcc, kromanova, dexonsmith

    Reviewed By: tejohnson

    Subscribers: ormris, bd1976llvm, mehdi_amini, inglorion, eraman, hiraditya, jkorous, dexonsmith, arphaman, dang, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60421 — steven_wu / detail
  462. [InstCombine] Factor out unreachable inst idiom creation [NFC]

    In InstCombine, we use an idiom of "store i1 true, i1 undef" to indicate we've found a path which we've proven unreachable.  We can't actually insert the unreachable instruction since that would require changing the CFG.  We leave that to simplifycfg later.

    This just factors out that idiom creation so we don't duplicate the same mostly undocument idiom creation in multiple places. — reames / detail
  463. [LVI][CVP] Constrain values in with.overflow branches

    If a branch is conditional on extractvalue(op.with.overflow(%x, C), 1)
    then we can constrain the value of %x inside the branch based on
    makeGuaranteedNoWrapRegion(). We do this by extending the edge-value
    handling in LVI. This allows CVP to then fold comparisons against %x,
    as illustrated in the tests.

    Differential Revision: https://reviews.llvm.org/D60650 — nikic / detail
  464. [AMDGPU][MC] Corrected handling of "-" before expressions

    See bug 41156: https://bugs.llvm.org/show_bug.cgi?id=41156

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D60622 — dpreobra / detail
  465. [ARM] tighten test checks; NFC — spatel / detail
  466. AMDGPU: Force skip over SMRD, VMEM and s_waitcnt instructions

    Summary: This fixes a large Dawn of War 3 performance regression with RADV from Mesa 19.0 to master which was caused by creating less code in some branches.

    Reviewers: arsen, nhaehnle

    Reviewed By: nhaehnle

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60824 — pendingchaos / detail
  467. [ARM] make test checks more thorough; NFC

    This will change with the proposal in D60214.
    Unfortunately, the triple is not supported for auto-generation
    via script, and the multiple RUN lines have diffs on this test,
    but I can't tell exactly what is required by this test.
    PR7162 was an assert/crash, so hopefully, this is good enough. — spatel / detail
  468. [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size.

    Summary:
    In the following cases, unrolling can be beneficial, even when
    optimizing for code size:
    1) very low trip counts
    2) potential to constant fold most instructions after fully unrolling.

    We can unroll in those cases, by setting the unrolling threshold to the
    loop size. This might highlight some cost modeling issues and fixing
    them will have a positive impact in general.

    Reviewers: vsk, efriedma, dmgreen, paquette

    Reviewed By: paquette

    Differential Revision: https://reviews.llvm.org/D60265 — fhahn / detail
  469. [DAGCombine] Add SimplifyDemandedBits helper that handles demanded elts mask as well

    The other SimplifyDemandedBits helpers become wrappers to this new demanded elts variant. — rksimon / detail
  470. [Support] Add LEB128 support to BinaryStreamReader/Writer.

    Summary:
    This patch adds support for ULEB128 and SLEB128 encoding and decoding to
    BinaryStreamWriter and BinaryStreamReader respectively.

    Support for ULEB128/SLEB128 will be used for eh-frame parsing in the JITLink
    library currently under development (see https://reviews.llvm.org/D58704).

    Reviewers: zturner, dblaikie

    Subscribers: kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60810 — Lang Hames / detail
  471. [ScheduleDAGRRList] Recompute topological ordering on demand.

    Currently there is a single point in ScheduleDAGRRList, where we
    actually query the topological order (besides init code). Currently we
    are recomputing the order after adding a node (which does not have
    predecessors) and then we add predecessors edge-by-edge.

    We can avoid adding edges one-by-one after we added a new node. In that case, we can
    just rebuild the order from scratch after adding the edges to the DAG
    and avoid all the updates to the ordering.

    Also, we can delay updating the DAG until we query the DAG, if we keep a
    list of added edges. Depending on the number of updates, we can either
    apply them when needed or recompute the order from scratch.

    This brings down the geomean compile time for of CTMark with -O1 down 0.3% on X86,
    with no regressions.

    Reviewers: MatzeB, atrick, efriedma, niravd, paquette

    Reviewed By: efriedma

    Differential Revision: https://reviews.llvm.org/D60125 — fhahn / detail
  472. [AMDGPU][MC] Corrected parsing of registers

    See bug 41280: https://bugs.llvm.org/show_bug.cgi?id=41280

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D60621 — dpreobra / detail
  473. [AMDGPU] Flag new raw/struct atomic ops as source of divergence

    Differential Revision: https://reviews.llvm.org/D60731

    Change-Id: I821d93dec8b9cdd247b8172d92fb5e15340a9e7d — tpr / detail
  474. gn build: Merge r358554 — nico / detail
  475. [LLVM-C] Add DIFile Field Accesssors

    Summary:
    Add accessors for the file, directory, source file name (curiously, an `Optional` value?), of a DIFile.

    This is intended to replace the LLVMValueRef-based accessors used in D52239

    Reviewers: whitequark, jberdine, deadalnix

    Reviewed By: whitequark, jberdine

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60489 — codafi / detail
  476. [CostModel][X86] Add bool anyof/allof reduction costs

    On pre-AVX512 targets we can use MOVMSK to extract reduced boolean results. This is properly optimized, annoyingly AVX512 isn't and produces code that is almost as bad as the (unchanged) costs suggest......

    Differential Revision: https://reviews.llvm.org/D60403 — rksimon / detail
  477. [DWARF] llvm::Error -> Error. NFC

    The unqualified name is more common and is used in the file as well. — maskray / detail
  478. Change some llvm::{lower,upper}_bound to llvm::bsearch. NFC — maskray / detail
  479. [llvm-objcopy] Support full list of bfd targets that lld uses.

    Summary:
    This change takes the full list of bfd targets that lld supports (see `ScriptParser.cpp`), including generic handling for `*-freebsd` targets (which uses the same settings but with a FreeBSD OSABI). In particular this adds mips support for `--output-target` (but not yet via `--binary-architecture`).

    lld and llvm-objcopy use their own different custom data structures, so I'd prefer to check this in as-is (add support directly in llvm-objcopy, including all the test coverage) and do a separate NFC patch(s) that consolidate the two by putting this mapping into libobject.

    See [[ https://bugs.llvm.org/show_bug.cgi?id=41462 | PR41462 ]].

    Reviewers: jhenderson, jakehehrlich, espindola, alexshap, arichardson

    Reviewed By: arichardson

    Subscribers: fedor.sergeev, emaste, sdardis, krytarowski, atanasyan, llvm-commits, MaskRay, arichardson

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60773 — rupprecht / detail
  480. [CVP] processOverflowIntrinsic(): don't crash if constant-holding happened

    As reported by Mikael Holmén in post-commit review in
    https://reviews.llvm.org/D60791#1469765 — lebedevri / detail
  481. [DWARF] Pass ReferenceToDIEOffsets elements by reference — maskray / detail
  482. Fixed error message printing in write_cmake_config.py

    Summary:
    Previously, write_cmake_config.py would raise an error while printing
    the error, because `leftovers` in "'\n'.join(leftovers)" is a tuple.

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60766 — gribozavr / detail
  483. [X86] Autogenerate complete checks. NFC — ctopper / detail
  484. [X86] In CopyToFromAsymmetricReg, use VR128 instead of FR32 instructions for GR32<->XMM register copies.

    We have two versions of some instructions, VR128 versions and FR32 versions that
    are marked as CodeGenOnly.

    This change switches to using the VR128 versions for these copies. It's after
    register allocation so the class size no longer matters. This matches how GR64
    works. — ctopper / detail
  485. [MCA] Moved the bottleneck analysis to its own file. NFCI — adibiagio / detail
  486. Revert "Add basic loop fusion pass." Per request.

    This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. — echristo / detail
  487. Revert "Temporarily Revert "Add basic loop fusion pass.""

    The reversion apparently deleted the test/Transforms directory.

    Will be re-reverting again. — echristo / detail
  488. Remove the run-slp-after-loop-vectorization option.

    It's been on by default for 4 years and cleans up the pass
    hierarchy. — echristo / detail
  489. Temporarily Revert "Add basic loop fusion pass."
    As it's causing some bot failures (and per request from kbarton).

    This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. — echristo / detail
  490. Add basic loop fusion pass.

    This patch adds a basic loop fusion pass. It will fuse loops that conform to the
    following 4 conditions:
      1. Adjacent (no code between them)
      2. Control flow equivalent (if one loop executes, the other loop executes)
      3. Identical bounds (both loops iterate the same number of iterations)
      4. No negative distance dependencies between the loop bodies.

    The pass does not make any changes to the IR to create opportunities for fusion.
    Instead, it checks if the necessary conditions are met and if so it fuses two
    loops together.

    The pass has not been added to the pass pipeline yet, and thus is not enabled by
    default. It can be run stand alone using the -loop-fusion option.

    Phabricator: https://reviews.llvm.org/D55851 — kbarton / detail
  491. [ADT] llvm::bsearch, binary search for mere mortals

    Summary:
    Add to STLExtras a binary search function with a simple mental model:
    You provide a range and a predicate which is true above a certain point.
    bsearch() tells you that point.
    Overloads are provided for integers, iterators, and containers.

    This is more suitable than std:: alternatives in many cases:
    - std::binary_search only indicates presence/absence
    - upper_bound/lower_bound give you the opportunity to pick the wrong one
    - all of the options have confusing names and definitions when your predicate
       doesn't have simple "less than" semantics
    - all of the options require iterators
    - we plumb around a useless `value` parameter that should be a lambda capture

    The API is inspired by Go's standard library, but we add an extra parameter as
    well as some overloads and templates to show how clever C++ is.

    Reviewers: ilya-biryukov, gribozavr

    Subscribers: dexonsmith, kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60779 — sammccall / detail
  492. [x86] adjust LEA tests for better coverage; NFC

    The scale can 1, 2, or 3. — spatel / detail
  493. [LLVM-C] Add Accessors For Global Variable Metadata Properties

    Summary: Metadata for a global variable is really a  (GlobalVariable, Expression) tuple.  Allow access to these, then allow retrieving the file, scope, and line for a DIVariable, whether global or local.  This should be the last of the accessors required for uniform access to location and file information metadata.

    Reviewers: jberdine, whitequark, deadalnix

    Reviewed By: jberdine, whitequark

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60725 — codafi / detail
  494. Fix a typo in comments. [NFC] — tamur / detail
  495. [NVPTXAsmPrinter] clean up dead code. NFC

    Summary:
    The printOperand function takes a default parameter, for which there are
    zero call sites that explicitly pass such a parameter.  As such, there
    is no case to support. This means that the method
    printVecModifiedImmediate is purly dead code, and can be removed.

    The eventual goal for some of these AsmPrinter refactoring is to have
    printOperand be a virtual method; making it easier to print operands
    from the base class for more generic Asm printing. It will help if all
    printOperand methods have the same function signature (ie. no Modifier
    argument when not needed).

    Reviewers: echristo, tra

    Reviewed By: echristo

    Subscribers: jholewinski, hiraditya, llvm-commits, craig.topper, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60727 — nickdesaulniers / detail
  496. [TargetLowering] Rename preferShiftsToClearExtremeBits and shouldFoldShiftPairToMask (PR41359)

    As discussed on PR41359, this patch renames the pair of shift-mask target feature functions to make their purposes more obvious.

    shouldFoldShiftPairToMask -> shouldFoldConstantShiftPairToMask

    preferShiftsToClearExtremeBits -> shouldFoldMaskToVariableShiftPair — rksimon / detail
  497. [EarlyCSE] detect equivalence of selects with inverse conditions and commuted operands (PR41101)

    This is 1 of the problems discussed in the post-commit thread for:
    rL355741 / http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190311/635516.html
    and filed as:
    https://bugs.llvm.org/show_bug.cgi?id=41101

    Instcombine tries to canonicalize some of these cases (and there's room for improvement
    there independently of this patch), but it can't always do that because of extra uses.
    So we need to recognize these commuted operand patterns here in EarlyCSE. This is similar
    to how we detect commuted compares and commuted min/max/abs.

    Differential Revision: https://reviews.llvm.org/D60723 — spatel / detail
  498. Time profiler: optimize json output time

    Summary:
    Use llvm::json::Array.reserve() to optimize json output time. Here is motivation:
    https://reviews.llvm.org/D60609#1468941. In short: for the json array
    with ~32K entries, pushing back each entry takes ~4% of whole time compared
    to the method of preliminary memory reservation: (3995-3845)/3995 = 3.75%.

    Reviewers: lebedev.ri

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60792 — anton-afanasyev / detail
  499. [CVP] Simplify umulo and smulo that cannot overflow

    If a umul.with.overflow or smul.with.overflow operation cannot
    overflow, simplify it to a simple mul nuw / mul nsw. After the
    refactoring in D60668 this is just a matter of removing an
    explicit check against multiplications.

    Differential Revision: https://reviews.llvm.org/D60791 — nikic / detail
  500. [Support][JSON] Add reserve() to json Array

    Summary:
    Space reservation increases json lib performance for the arrays with large number of entries.
    Here is the example and discussion: https://reviews.llvm.org/D60609#1468941

    Reviewers: lebedev.ri, sammccall

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60788 — anton-afanasyev / detail
  501. [SLP] Refactoring of the operand reordering code.

    This is a refactoring patch which should have all the functionality of the current code. Its goal is twofold:
    i. Cleanup and simplify the reordering code, and
    ii. Generalize reordering so that it will work for an arbitrary number of operands, not just 2.

    This is the second patch in a series of patches that will enable operand reordering across chains of operations. An example of this was presented in EuroLLVM'18 https://www.youtube.com/watch?v=gIEn34LvyNo .

    Committed on behalf of @vporpo (Vasileios Porpodas)

    Differential Revision: https://reviews.llvm.org/D59973 — rksimon / detail
  502. [CVP] Add tests for non-overflowing mulo; NFC

    Should be simplified to simple mul. — nikic / detail
  503. [X86][AVX] X86ISD::PERMV/PERMV3 node types can never fold index ops

    Improves codegen demonstrated by D60512 - instructions represented by X86ISD::PERMV/PERMV3 can never memory fold the operand used for their index register.

    This patch updates the 'isUseOfShuffle' helper into the more capable 'isFoldableUseOfShuffle' that recognises that the op is used for a X86ISD::PERMV/PERMV3 index mask and can't be folded - allowing us to use broadcast/subvector-broadcast ops to reduce the size of the mask constant pool data.

    Differential Revision: https://reviews.llvm.org/D60562 — rksimon / detail
  504. [InstCombine] Prune fshl/fshr with masked operands

    If a constant shift amount is used, then only some of the LHS/RHS
    operand bits are demanded and we may be able to simplify based on
    that. InstCombineSimplifyDemanded already had the necessary support
    for that, we just weren't calling it with fshl/fshr as root.

    In particular, this allows us to relax some masked funnel shifts
    into simple shifts, as shown in the tests.

    Patch by Shawn Landden.

    Differential Revision: https://reviews.llvm.org/D60660 — nikic / detail
  505. [InstCombine] Add tests for fshl/fshr with masked operands; NFC

    Baseline tests for D60660.

    Patch by Shawn Landden.

    Differential Revision: https://reviews.llvm.org/D60688 — nikic / detail
  506. [x86] add more tests for LEA formation; NFC

    Promoting the shift to the wider type should allow LEA. — spatel / detail
  507. [IR] Add WithOverflowInst class

    This adds a WithOverflowInst class with a few helper methods to get
    the underlying binop, signedness and nowrap type and makes use of it
    where sensible. There will be two more uses in D60650/D60656.

    The refactorings are all NFC, though I left some TODOs where things
    could be improved. In particular we have two places where add/sub are
    handled but mul isn't.

    Differential Revision: https://reviews.llvm.org/D60668 — nikic / detail
  508. [Tests] Add branch_weights to latches so that test is not effected by future profitability patch to LoopPredication — reames / detail
  509. [Hexagon] Remove indeterministic traversal order

    Patch by Sergei Larin. — kparzysz / detail
  510. [llvm-objdump] Test tabs in disassemble-align.s with a more visible character

    Summary: Apply rupprecht's suggestion in D60376

    Reviewers: rupprecht

    Reviewed By: rupprecht

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60777 — maskray / detail
  511. [DAGCombiner] Add missing flag to addressing mode check

    The checks in `canFoldInAddressingMode` tested for addressing modes that have a
    base register but didn't set the `HasBaseReg` flag to true (it's false by
    default). This patch fixes that. Although the omission of the flag was
    technically incorrect it had no known observable impact, so no tests were
    changed by this patch.

    Differential Revision:  https://reviews.llvm.org/D60314 — luismarques / detail
  512. [OCaml] Update api to account for FNeg and CallBr instructions

    Summary:
    This diff adds minimal support for the recent FNeg and CallBr
    instructions to the OCaml bindings.

    Reviewers: whitequark

    Reviewed By: whitequark

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60680 — whitequark / detail
  513. [RISCV] Custom lower SHL_PARTS, SRA_PARTS, SRL_PARTS

    When not optimizing for minimum size (-Oz) we custom lower wide shifts
    (SHL_PARTS, SRA_PARTS, SRL_PARTS) instead of expanding to a libcall.

    Differential Revision: https://reviews.llvm.org/D59477 — luismarques / detail
  514. [SystemZ] Add missing intrinsics to intrinsics-immarg.ll

    As of r356091, support for the ImmArg intrinsics was added,
    including a SystemZ test case.  However, that test case doesn't
    actually verify all SystemZ intrinsics with immediate arguments,
    only a subset.  The rest of them actually works correctly, there's
    just no test for them.  This patch add all missing intrinsics. — uweigand / detail
  515. [llvm][Support] Provide interface to set thread priorities

    Summary:
    We have a multi-platform thread priority setting function(last piece
    landed with D58683), I wanted to make this available to all llvm community,
    there seem to be other users of such functionality with portability fixmes:
    lib/Support/CrashRecoveryContext.cpp
    tools/clang/tools/libclang/CIndex.cpp

    Reviewers: gribozavr, ioeric

    Subscribers: krytarowski, jfb, kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D59130 — kadircet / detail
  516. llvm-undname: Consistently use "return nullptr" in functions returning pointers — nico / detail
  517. llvm-undname: Fix nullptr deref on invalid structor names in template args

    Similar to r358421: A StructorIndentifierNode has a Class field which
    is read when printing it, but if the StructorIndentifierNode appears in
    a template argument then demangleFullyQualifiedSymbolName() which sets
    Class isn't called. Since StructorIndentifierNodes are always leaf
    names, we can just reject them as well.

    Found by oss-fuzz. — nico / detail
  518. llvm-undname: Tweak arena allocator

    - Make `allocUnalignedBuffer` look more like `allocArray` and `alloc`.
      No behavior change.
    - Change `Head->Used < Head->Capacity` to `Head->Used <= Head->Capacity`
      in `allocArray` and `alloc`. No intended behavior change, might be a
      minuscule memory usage improvement. Noticed this since it was the logic
      used in `allocUnalignedBuffer`.
    - Don't let `allocArray` alloc too small buffers for names that have
      more than 512 levels of nesting (in 64-bit builds). Fixes a heap
      buffer overflow found by oss-fuzz.

    Differential Revision: https://reviews.llvm.org/D60774 — nico / detail
  519. llvm-undname: add a missing CHECK: to a passing test — nico / detail
  520. Fix llvm-undname tests after r358485 — nico / detail
  521. gn build: Merge r358422 — nico / detail
  522. llvm-undname: Add a -raw-file flag to pass a raw buffer to microsoftDemangle

    The default handling splits input into lines. Since
    llvm-microsoft-demangle-fuzzer doesn't do this, oss-fuzz produces inputs
    that only trigger crashes if the input isn't split into lines. This adds
    a hidden flag -raw-file which passes file contents to microsoftDemangle() in
    the same way the fuzzer does, for reproducing oss-fuzz reports.

    Also change llvm-undname to have a non-0 exit code for invalid symbols.

    Differential Revision: https://reviews.llvm.org/D60771 — nico / detail
  523. Re-commit r357452: SimplifyCFG SinkCommonCodeFromPredecessors: Also sink function calls without used results (PR41259)

    The original commit caused false positives from AddressSanitizer's
    use-after-scope checks, which have now been fixed in r358478.

    > The code was previously checking that candidates for sinking had exactly
    > one use or were a store instruction (which can't have uses). This meant
    > we could sink call instructions only if they had a use.
    >
    > That limitation seemed a bit arbitrary, so this patch changes it to
    > "instruction has zero or one use" which seems more natural and removes
    > the need to special-case stores.
    >
    > Differential revision: https://reviews.llvm.org/D59936 — hans / detail
  524. Removed CMake cache upgrade code from 2011

    Summary:
    This code was added in r141266 to make a breaking change to CMake, but
    still be compatible with existing cache files.  The cache files from
    2011 are irrelevant today in 2019.

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60711 — gribozavr / detail
  525. Asan use-after-scope: don't poison allocas if there were untraced lifetime intrinsics in the function (PR41481)

    If there are any intrinsics that cannot be traced back to an alloca, we
    might have missed the start of a variable's scope, leading to false
    error reports if the variable is poisoned at function entry. Instead, if
    there are some intrinsics that can't be traced, fail safe and don't
    poison the variables in that function.

    Differential revision: https://reviews.llvm.org/D60686 — hans / detail
  526. Use native llvm JSON library for time profiler output

    Summary: Replace plain json text output with llvm JSON library wrapper using.

    Reviewers: takuto.ikuta, lebedev.ri

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60609 — anton-afanasyev / detail
  527. [llvm-objdump] Align instructions to a tab stop in disassembly output

    This relands D60376/rL358405, with the difference: sed 'y/\t/ /' -> tr '\t' ' '
    BSD sed doesn't support escape characters for the 'y' command.
    I didn't use it in rL358405 because it was not listed at
    https://llvm.org/docs/GettingStarted.html#software but it
    should be available.

    Original description:

    In GNU objdump, -w/--wide aligns instructions in the disassembly output.
    This patch does the same to llvm-objdump. However, we always use the
    wide format (-w/--wide is ignored), because the narrow format
    (instructions are misaligned) is probably not very useful.

    In llvm-readobj, we made a similar decision: always use the wide format,
    accept but ignore -W/--wide.

    To save some columns, we change the tab before hex bytes (controlled by
    --[no-]show-raw-insn) to a space. — maskray / detail
  528. [llvm-objdump] Simplify PrintHelpMessage() logic

    This relands rL358418. It missed one test that should also use -macho
    Note, all the other -private-header -exports-trie tests are used
    together with -macho. — maskray / detail
  529. [CodeExtractor] Add a few debug lines to understand why a region is not extracted

    The CodeExtractor is not smart enough to compute which basic block is
    the entry of a region. Instead it relies on the order of the list
    of basic blocks that is handed to it and assumes that the entry
    is the first block in the list.

    Without the additional debug information, it is hard to understand
    why a valid region does not get extracted, because we would miss
    that the order of in the list just doesn't match what the CodeExtractor
    wants.

    NFC — qcolombet / detail
  530. Remove some more unused headers from MachineFunction.h and friends.

    Most of these headers are still included via transitive includes and
    so won't likely show any problems or improvements in incremental
    rebuild time.

    Differential Revision: https://reviews.llvm.org/D60741 — echristo / detail
  531. Reapply [Support] Fix recursive response file expansion guard

    The test in the dependent revision has been fixed for Windows.

    Original commit message:

    Response file expansion limits the amount of expansion to prevent
    potential infinite recursion. However, the current logic assumes that
    any argument beginning with @ is a response file, which is not true for
    e.g. `-Xlinker -rpath -Xlinker @executable_path/../lib` on Darwin.
    Having too many of these non-response file arguments beginning with @
    prevents actual response files from being expanded. Instead, limit based
    on the number of successful response file expansions, which should still
    prevent infinite recursion but also avoid false positives.

    Differential Revision: https://reviews.llvm.org/D60631

    llvm-svn: 358452 — smeenai / detail
  532. Reapply [Support] Add a test for recursive response file expansion

    Use the appropriate tokenizer to fix the test on Windows.

    Original commit message:

    I'm going to be modifying the logic to avoid infinitely recursing on
    self-referential response files, so add a unit test to verify the
    expected behavior.

    Differential Revision: https://reviews.llvm.org/D60630

    llvm-svn: 358451 — smeenai / detail
  533. Revert [Support] Add a test for recursive response file expansion

    This reverts r358451 (git commit c8497467edc5766ae81ffbde58159f8c6af50803)

    The test breaks a Windows buildbot:
    http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/17016/steps/test-check-all/logs/stdio — smeenai / detail
  534. Revert [Support] Fix recursive response file expansion guard

    This reverts r358452 (git commit c8df4fb9c3865eac52a99602c26bbc070098c3d4)

    A dependent commit breaks the Windows buildbots. — smeenai / detail
  535. Revert r358405: "[llvm-objdump] Align instructions to a tab stop in disassembly output"

    The test fails on darwin due to a sed error:

    sed: 1: "y/\t/ /": transform strings are not the same length — arphaman / detail
  536. [AArch64][GlobalISel] Don't do extending loads combine for non-pow-2 types.

    Since non-pow-2 types are going to get split up into multiple loads anyway,
    don't do the [SZ]EXTLOAD combine for those and save us trouble later in
    legalization. — aemerson / detail
  537. [LSR] Rewrite misses some fixup locations if it splits critical edge

    If LSR split critical edge during rewriting phi operands and
    phi node has other pending fixup operands, we need to
    update those pending fixups. Otherwise formulae will not be
    implemented completely and some instructions will not be eliminated.

    llvm.org/PR41445

    Differential Revision: https://reviews.llvm.org/D60645

    Patch by: Denis Bakhvalov <denis.bakhvalov@intel.com> — qcolombet / detail
  538. Only use argv[0] as the main executable name if it exists.

    Under some environments, argv[0] doesn't hold a valid file name, but
    sys::fs::getMainExecutable will find the main executable properly.

    This patch tweaks the logic to fall back to sys::fs::getMainExecutable
    in more situations.

    Differential Revision: https://reviews.llvm.org/D60730 — silvas / detail
  539. [EarlyCSE] add more tests for double-negated select condition; NFC — spatel / detail
  540. [Support] Fix recursive response file expansion guard

    Response file expansion limits the amount of expansion to prevent
    potential infinite recursion. However, the current logic assumes that
    any argument beginning with @ is a response file, which is not true for
    e.g. `-Xlinker -rpath -Xlinker @executable_path/../lib` on Darwin.
    Having too many of these non-response file arguments beginning with @
    prevents actual response files from being expanded. Instead, limit based
    on the number of successful response file expansions, which should still
    prevent infinite recursion but also avoid false positives.

    Differential Revision: https://reviews.llvm.org/D60631 — smeenai / detail
  541. [Support] Add a test for recursive response file expansion

    I'm going to be modifying the logic to avoid infinitely recursing on
    self-referential response files, so add a unit test to verify the
    expected behavior.

    Differential Revision: https://reviews.llvm.org/D60630 — smeenai / detail
  542. [X86] Limit the 'x' inline assembly constraint to zmm0-15 when used for a 512 type.

    The 'v' constraint is used to select zmm0-31. This makes 512 bit consistent with 128/256-bit.a — ctopper / detail
  543. [X86] Fix a stack folding test to have a full xmm2-31 clobber list instead of stopping at xmm15. Add an additional dependency to keep instruction below inline asm block. — ctopper / detail
  544. Time profiler: small fixes and optimizations

    Summary: Fixes from Roman's review here: https://reviews.llvm.org/D58675#1465336

    Reviewers: lebedev.ri

    Subscribers: hiraditya, mgrang, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D60663 — anton-afanasyev / detail
  545. AMDGPU: Fix unreachable when counting register usage of SGPR96 — arsenm / detail
  546. AMDGPU: Fix printed format of SReg_96

    These are artificial, so I think this should only come up with inline
    asm comments.