FailedChanges

Summary

  1. [AArch64] Fix condition for "high-vector" DUP optimizations. AArch64 NEON has a bunch of instructions with a "2" suffix that extract the top half of the source vectors, instead of the bottom half. We have some DAGCombines to try to take advantage of that. However, they assumed that any EXTRACT_VECTOR was extracting the high half of the vector in question. This issue has apparently existed since the AArch64 backend was merged. Fixes https://bugs.llvm.org/show_bug.cgi?id=40632 . Differential Revision: https://reviews.llvm.org/D57862
  2. Silence -Wformat warnings about GetLastError returning ULONG
  3. Commit macro intended to be included in r353483.
  4. [compiler rt] Win64 GetInstructionSize additional register MOV + stack alignment AND Current interception code does not cover all of the required registers on Windows for a specific flavor of MOV, so this patch adds cases to identify the following 5-byte instructions on 64-bit Windows: mov QWORD PTR [rsp + XX], rdx <- second integer argument mov QWORD PTR [rsp + XX], r9 <- third integer argument mov QWORD PTR [rsp + XX], r8 <- fourth integer argument The instruction for MOV [...] RCX is already covered in the previous version. Patch by Matthew McGovern! Reviewers: rnk Differential Revision: https://reviews.llvm.org/D57339
  5. [safestack] Explain why tinfo at the end of the buffer Reviewers: pcc, eugenis, vlad.tsyrklevich Reviewed By: vlad.tsyrklevich Subscribers: llvm-commits, jfb, #sanitizers Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D57863
  6. [safestack] Remove pageSize Summary: 3rd party sysconf interceptor may crash if it's called before unsafe_stack_setup However pageSize is not useful here. mmap should round up on it's own, SFS_CHECK can be removed. Reviewers: eugenis, vlad.tsyrklevich Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D57924
  7. [mips][micromips] Fix how values in .gcc_except_table are calculated When a landing pad is calculated in a program that is compiled for micromips with -fPIC flag, it will point to an even address. Such an error will cause a segmentation fault, as the instructions in micromips are aligned on odd addresses. This patch sets the last bit of the offset where a landing pad is, to 1, which will effectively be an odd address and point to the instruction exactly. r344591 fixed this issue for -static compilation. Patch by Aleksandar Beserminji. Differential Revision: https://reviews.llvm.org/D57677
  8. bpf: teach BPF driver about the new CPU "v3" This patch simply teach BPF driver about the new CPU "v3" introduced in LLVM backend. Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
  9. [x86] fix formatting; NFC
  10. [WebAssembly] Update test output after rL353474. NFC.
  11. [safestack] Don't crash if stack size is not aligned as expected Summary: From runtime side looks it's OK to RoundUpTo to needed alignment as buffer is going to be RoundUpTo to page size anyway. Reviewers: eugenis, pcc Subscribers: #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D57866
  12. [WebAssembly] Fix imported function symbol names that differ from their import names in the .o format Add a flag to allow symbols to have a wasm import name which differs from the linker symbol name, allowing the linker to link code using the import_module attribute. This is the MC/Object portion of the patch. Differential Revision: https://reviews.llvm.org/D57632
  13. [InstCombine] Optimize `atomicrmw <op>, 0` into `load atomic` when possible This commit teaches InstCombine how to replace an atomicrmw operation into a simple load atomic. For a given `atomicrmw <op>`, this is possible when: 1. The ordering of that operation is compatible with a load (i.e., anything that doesn't have a release semantic). 2. <op> does not modify the value being stored Differential Revision: https://reviews.llvm.org/D57854
  14. gn build: Make check-{clang,lld,llvm} pass on FreeBSD. Mostly achieved by assuming that anything that isn't Win or Mac is ELF, which seems reasonable enough for now. Differential Revision: https://reviews.llvm.org/D57870
  15. [LV] Remove unnecessary assignment to UserIC.
  16. [InstCombine] Fix crashing from (icmp (bitcast ([su]itofp X)), Y) This fixes a class of bugs introduced by D44367, which transforms various cases of icmp (bitcast ([su]itofp X)), Y to icmp X, Y. If the bitcast is between vector types with a different number of elements, the current code will produce bad IR along the lines of: icmp <N x i32> ..., <M x i32> <...>. This patch suppresses the transform if the bitcast changes the number of vector elements. Patch by: @AndrewScheidecker (Andrew Scheidecker) Differential Revision: https://reviews.llvm.org/D57871
  17. Move SMTSolver dump() methods out-of-line. This broke modularized non-local-submodule-visibility builds because the function bodies pulled in extra dependencies.
  18. [CodeGen] Handle vector UADDO, SADDO, USUBO, SSUBO This is part of https://bugs.llvm.org/show_bug.cgi?id=40442. Vector legalization is implemented for the add/sub overflow opcodes. UMULO/SMULO are also handled as far as legalization is concerned, but they don't support vector expansion yet (so no tests for them). The vector result widening implementation is suboptimal, because it could result in a legalization loop. Differential Revision: https://reviews.llvm.org/D57639
  19. [cmake] Pass LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN to NATIVE configure We should propagate this down to host builds so that e.g. people using an optimized tablegen can do the sub-configure successfully.
  20. [InstCombine] refactor folds for (icmp (bitcast X), Y); NFCI
  21. [LV] Prevent interleaving if computeMaxVF returned None. As discussed in D57382, interleaving should be avoided if computeMaxVF returns None, same as we currently do for vectorization. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6477 Reviewers: Ayal, dcaballe, hsaito, mkuper, rengolin Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D57837
  22. GlobalISel: Try to fix bot failures Don't rely on order of evaluation of function arguments.
  23. [Sema][ObjC] Disallow non-trivial C struct fields in unions. This patch fixes a bug where clang doesn’t reject union fields of non-trivial C struct types. For example: ``` // This struct is non-trivial under ARC. struct S0 { id x; }; union U0 { struct S0 s0; // clang should reject this. struct S0 s1; // clang should reject this. }; void test(union U0 a) { // Previously, both 'a.s0.x' and 'a.s1.x' were released in this // function. } ``` rdar://problem/46677858 Differential Revision: https://reviews.llvm.org/D55659
  24. [DAGCombiner] (add (umax X, C), -C) --> (usubsat X, C) (PR40111) Move the (add (umax X, C), -C) --> (usubsat X, C) X86 combine into generic DAGCombiner First of a number of saturated arithmetic folds that can be moved out of X86-specific code for PR40111. Differential Revision: https://reviews.llvm.org/D57754
  25. [SEMA]Generalize deferred diagnostic interface, NFC. Summary: Deferred diagnostic interface is going to be used for OpenMP device compilation. Generalized previously existed deferred diagnostic interface for CUDA to be used with OpenMP and, possibly, other models. Reviewers: rjmccall, tra Subscribers: caomhin, cfe-commits, kkwli0 Tags: #clang Differential Revision: https://reviews.llvm.org/D57908
  26. GlobalISel: Implement narrowScalar for shift main type This is pretty much directly ported from SelectionDAG. Doesn't include the shift by non-constant but known bits version, since there isn't a globalisel version of computeKnownBits yet. This shows a disadvantage of targets not specifically which type should be used for the shift amount. If type 0 is legalized before type 1, the operations on the shift amount type use the wider type (which are also less likely to legalize). This can be avoided by targets specifying legalization actions on type 1 earlier than for type 0.
  27. AMDGPU/GlobalISel: Restrict g_implicit_def legality
  28. Add static_asserts to tuple's comparison operators to enforce the requirement that the tuples be the same size. See PR39183 for an example where we give unexpected results for this bad input case. With this change, we will reject it at compile-time
  29. GlobalISel: Fix artifact combiner constant legality checks for vectors Since G_CONSTANT is illegal for vectors, this needs to check what buildConstant will produce for a splat vector.
  30. Add UBSAN annotation to __hash_table::rehash; we don't do anything wrong, but UBSAN's checker flags it as suspicious. See PR38606. NFC
  31. AMDGPU/GlobalISel: Don't use g_implicit_def in a few tests
  32. Revert "[DAG] Cleanup of unused node in SimplifySelectCC." Causes ASAN use-after-poison errors.
  33. [InstrProf] Avoid reconstructing Triple, NFC
  34. AMDGPU/GlobalISel: Legalize fsqrt
  35. AMDGPU/GlobalISel: Legalize some f16 operations
  36. [InstrProf] Port test suite to Windows Summary: Before this change, check-profile would run, but all tests would be marked unsupported on Windows. This is the new status of 'check-profile' after this change: Testing Time: 6.66s Expected Passes : 29 Expected Failures : 5 Unsupported Tests : 39 I moved many tests that exercise posix-y features like dlopen and DSOs into the Posix subdirectory, and ran the tests on Linux to validate my changes. These are the remaining tests that I handled on a case by case basis: - instrprof-path.c Passes, Fixed some path portability issues - instrprof-gcov-exceptions.test Passes, the FileCheck actually succeeds on Windows, so I RUNX'd it - instrprof-icall-promo.test XFAILed, probably due to C++ ABI differences in vtables - instrprof-merge-match.test - instrprof-merge.c - instrprof-merging.cpp XFAILed, These seem like real bugs that need fixing - instrprof-version-mismatch.c XFAILed, Overriding the weak version symbol doesn't work - instrprof-without-libc.c UNSUPPORTED, test needs an executable symbol table, Windows has none Reviewers: davidxl, wmi, void Subscribers: fedor.sergeev, #sanitizers, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D57853
  37. [HotColdSplit] With PGO add profile entry metadata to split cold function Summary: When compiling with profile data, ensure the split cold function gets cold function_entry_count metadata (just use 0 since it should be cold). Otherwise with function sections it will not be placed in the unlikely text section with other cold code. Reviewers: vsk Subscribers: sebpop, hiraditya, davidxl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57900
  38. [DAGCombiner] fold add/sub with bool operand based on target's boolean contents I noticed that we are missing this canonicalization in IR: rL352515 ...and then realized that we don't get this right in SDAG either, so this has to be fixed first regardless of what we choose to do in IR. The existing fold was limited to scalars and using the wrong predicate to guard the transform. We have a boolean contents TLI query that can be used to decide which direction to fold. This may eventually lead back to the problems/question in: https://bugs.llvm.org/show_bug.cgi?id=40486 ...but it makes no difference to that yet. Differential Revision: https://reviews.llvm.org/D57401
  39. GlobalISel: Implement fewerElementsVector for shifts Introduce a new function which handles instructions with multiple type indices, but have the same number of vector elements. Also legalize v2s16 shifts when applicable.
  40. [OpenCL][PR40603] In C++ preserve compatibility with OpenCL C v2.0 Valid OpenCL C code should still compile in C++ mode. This change enables extensions and OpenCL types. Differential Revision: https://reviews.llvm.org/D57824
  41. GlobalISel: Try to make legalize rules more useful for vectors Mostly keep the existing functions on scalars, but add versions which also operate based on the vector element size.
  42. [DAG] Cleanup of unused node in SimplifySelectCC.
  43. [x86] split more 256/512-bit shuffles in lowering This is intentionally a small step because it's hard to know exactly where we might introduce a conflicting transform with the code that tries to form wider shuffles. But I think this is safe - if we have a wide shuffle with 2 operands, then we should do better with an extract + narrow shuffle. Differential Revision: https://reviews.llvm.org/D57867
  44. [DAG] Cleanup unused node on failed SELECT Combine.
  45. [ASTImporter] Refactor unittests to be able to parameterize them in a more flexible way Summary: Currently `TestImportBase` is derived from `ParameterizedTestsFixture` which explicitly states that the gtest parameter can be only an `ArgVector`. This is a limitation when we want to create tests which may have different parameters. E.g. we would like to create tests where we can combine different test parameters. So, for example we'd like gtest to be able to provide parameters of `<std::tuple<ArgVector, const char *>` instead of a simple `ArgVector`. Reviewers: a_sidorin, shafik, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Differential Revision: https://reviews.llvm.org/D57322
  46. [llvm-ar][libObject] Fix relative paths when nesting thin archives. Summary: When adding one thin archive to another, we currently chop off the relative path to the flattened members. For instance, when adding `foo/child.a` (which contains `x.txt`) to `parent.a`, when flattening it we should add it as `foo/x.txt` (which exists) instead of `x.txt` (which does not exist). As a note, this also undoes the `IsNew` parameter of handling relative paths in r288280. The unit test there still passes. This was reported as part of testing the kernel build with llvm-ar: https://patchwork.kernel.org/patch/10767545/ (see the second point). Reviewers: mstorsjo, pcc, ruiu, davide, david2050 Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57842
  47. [clangd] Mention indexing in docs. Reviewers: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D57392
  48. [clangd] Reduce number of threads used by BackgroundIndex to number of physical cores. Summary: clangd is using as many threads as logical cores for BackgroundIndex by default. We observed that it increases latency of foreground tasks. This patch aims to change that default to number of physical cores to get rid of that extra latency. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57819
  49. [clangd] Fix an assertion failure in Selection. Summary: The assertion is triggered when the Decl is null. Details for the assertion: F0207 09:55:09.069385 47308 logging.cc:84] assert.h assertion failed at llvm/include/llvm/Support/Casting.h:105 in static bool llvm::isa_impl_cl<clang::TranslationUnitDecl, const clang:: Decl *>::doit(const From *) [To = clang::TranslationUnitDecl, From = const clang::Decl *]: Val && "isa<> used on a null pointer" 15 *** Check failure stack trace: *** 19 @ 0x55615c1f7e06 __assert_fail 20 @ 0x55615a6297d8 clang::clangd::(anonymous namespace)::SelectionVisitor::TraverseDecl() 21 @ 0x55615a62f48d clang::RecursiveASTVisitor<>::TraverseTemplateTemplateParmDecl() 22 @ 0x55615a62b264 clang::RecursiveASTVisitor<>::TraverseDecl() 23 @ 0x55615a62979c clang::clangd::(anonymous namespace)::SelectionVisitor::TraverseDecl() 24 @ 0x55615a63060c clang::RecursiveASTVisitor<>::TraverseClassTemplatePartialSpecializationDecl() 25 @ 0x55615a62ae45 clang::RecursiveASTVisitor<>::TraverseDecl() Reviewers: sammccall Subscribers: javed.absar, kristof.beyls, ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57879
  50. [scudo][standalone] Do not error out on spurious C(XX) flags Summary: The standalone Scudo version is being built with `-Werror` which can be tripped by extraneous command line arguments. We have little control over those as they can be passed down to us by `CMAKE_C(XX)_FLAGS`, the reported scenario involving `-stdlib=libc++` (see https://reviews.llvm.org/D57412#1384504). To work around this, disable `-Wunused-command-line-argument`. Reviewers: eugenis, vitalybuka, Eugene.Zelenko Reviewed By: eugenis Subscribers: mgorny, delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D57757
  51. [X86] Simplify casing. NFC.
  52. [DAG] Cleanup unused nodes on failed store-to-load forward combine.
  53. [ELF] Format lines inadvertently indented by rCTE353380
  54. [clangd] Use Dex for dynamic index by default. Summary: Memory usage for a sample TU: Without Dex: 17.9M With Dex: 24.4M The memory increase is considerable but seems tolerable. Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57878
  55. [CodeView] Fix cycles in debug info when merging Types with global hashes When type streams with forward references were merged using GHashes, cycles were introduced in the debug info. This was caused by GlobalTypeTableBuilder::insertRecordAs() not inserting the record on the second pass, thus yielding an empty ArrayRef at that record slot. Later on, upon PDB emission, TpiStreamBuilder::commit() would skip that empty record, thus offseting all indices that came after in the stream. This solution comes in two steps: 1. Fix the hash calculation, by doing a multiple-step resolution, iff there are forward references in the input stream. 2. Fix merge by resolving with multiple passes, therefore moving records with forward references at the end of the stream. This patch also adds support for llvm-readoj --codeview-ghash. Finally, fix dumpCodeViewMergedTypes() which previously could reference deleted memory. Fixes PR40221 Differential Revision: https://reviews.llvm.org/D57790
Revision 353486 by efriedma:
[AArch64] Fix condition for "high-vector" DUP optimizations.

AArch64 NEON has a bunch of instructions with a "2" suffix that extract
the top half of the source vectors, instead of the bottom half.  We have
some DAGCombines to try to take advantage of that.  However, they
assumed that any EXTRACT_VECTOR was extracting the high half of the
vector in question.

This issue has apparently existed since the AArch64 backend was merged.

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

Differential Revision: https://reviews.llvm.org/D57862
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-vabs.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-vabs.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-vadd.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-vadd.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-vmul.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-vmul.ll
Revision 353485 by rnk:
Silence -Wformat warnings about GetLastError returning ULONG
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/profile/GCDAProfiling.c (diff)compiler-rt.src/lib/profile/GCDAProfiling.c
Revision 353484 by rnk:
Commit macro intended to be included in r353483.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/interception/tests/interception_win_test.cc (diff)compiler-rt.src/lib/interception/tests/interception_win_test.cc
Revision 353483 by rnk:
[compiler rt] Win64 GetInstructionSize additional register MOV + stack alignment AND

Current interception code does not cover all of the required registers
on Windows for a specific flavor of MOV, so this patch adds cases to
identify the following 5-byte instructions on 64-bit Windows:

mov QWORD PTR [rsp + XX], rdx  <- second integer argument
mov QWORD PTR [rsp + XX], r9    <- third integer argument
mov QWORD PTR [rsp + XX], r8    <- fourth integer argument

The instruction for MOV [...] RCX is already covered in the previous
version.

Patch by Matthew McGovern!

Reviewers: rnk

Differential Revision: https://reviews.llvm.org/D57339
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/interception/interception_win.cc (diff)compiler-rt.src/lib/interception/interception_win.cc
The file was modified/compiler-rt/trunk/lib/interception/tests/interception_win_test.cc (diff)compiler-rt.src/lib/interception/tests/interception_win_test.cc
Revision 353482 by Vitaly Buka:
[safestack] Explain why tinfo at the end of the buffer

Reviewers: pcc, eugenis, vlad.tsyrklevich

Reviewed By: vlad.tsyrklevich

Subscribers: llvm-commits, jfb, #sanitizers

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D57863
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/safestack/safestack.cc (diff)compiler-rt.src/lib/safestack/safestack.cc
Revision 353481 by Vitaly Buka:
[safestack] Remove pageSize

Summary:
3rd party sysconf interceptor may crash if it's called before unsafe_stack_setup

However pageSize is not useful here. mmap should round up on it's own, SFS_CHECK can be removed.

Reviewers: eugenis, vlad.tsyrklevich

Subscribers: #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D57924
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/safestack/safestack.cc (diff)compiler-rt.src/lib/safestack/safestack.cc
Revision 353480 by petarj:
[mips][micromips] Fix how values in .gcc_except_table are calculated

When a landing pad is calculated in a program that is compiled for micromips
with -fPIC flag, it will point to an even address.
Such an error will cause a segmentation fault, as the instructions in
micromips are aligned on odd addresses. This patch sets the last bit of the
offset where a landing pad is, to 1, which will effectively be an odd
address and point to the instruction exactly.

r344591 fixed this issue for -static compilation.

Patch by Aleksandar Beserminji.

Differential Revision: https://reviews.llvm.org/D57677
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCExpr.cpp (diff)llvm.src/lib/MC/MCExpr.cpp
The file was modified/llvm/trunk/test/CodeGen/Mips/micromips-b-range.ll (diff)llvm.src/test/CodeGen/Mips/micromips-b-range.ll
The file was modified/llvm/trunk/test/DebugInfo/Mips/eh_frame.ll (diff)llvm.src/test/DebugInfo/Mips/eh_frame.ll
Revision 353479 by jiwang:
bpf: teach BPF driver about the new CPU "v3"

This patch simply teach BPF driver about the new CPU "v3" introduced in
LLVM backend.

Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/BPF.cpp (diff)clang.src/lib/Basic/Targets/BPF.cpp
The file was modified/cfe/trunk/test/Misc/target-invalid-cpu-note.c (diff)clang.src/test/Misc/target-invalid-cpu-note.c
Revision 353477 by spatel:
[x86] fix formatting; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 353476 by djg:
[WebAssembly] Update test output after rL353474. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-readobj/symbols.test (diff)llvm.src/test/tools/llvm-readobj/symbols.test
Revision 353475 by Vitaly Buka:
[safestack] Don't crash if stack size is not aligned as expected

Summary:
From runtime side looks it's OK to RoundUpTo to needed alignment as buffer is
going to be RoundUpTo to page size anyway.

Reviewers: eugenis, pcc

Subscribers: #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D57866
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/safestack/safestack.cc (diff)compiler-rt.src/lib/safestack/safestack.cc
Revision 353474 by djg:
[WebAssembly] Fix imported function symbol names that differ from their import names in the .o format

Add a flag to allow symbols to have a wasm import name which differs from the
linker symbol name, allowing the linker to link code using the import_module
attribute.

This is the MC/Object portion of the patch.

Differential Revision: https://reviews.llvm.org/D57632
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/Wasm.h (diff)llvm.src/include/llvm/BinaryFormat/Wasm.h
The file was modified/llvm/trunk/lib/MC/WasmObjectWriter.cpp (diff)llvm.src/lib/MC/WasmObjectWriter.cpp
The file was modified/llvm/trunk/lib/Object/WasmObjectFile.cpp (diff)llvm.src/lib/Object/WasmObjectFile.cpp
The file was modified/llvm/trunk/test/MC/WebAssembly/debug-info.ll (diff)llvm.src/test/MC/WebAssembly/debug-info.ll
The file was added/llvm/trunk/test/MC/WebAssembly/import-module.llllvm.src/test/MC/WebAssembly/import-module.ll
The file was modified/llvm/trunk/tools/llvm-readobj/WasmDumper.cpp (diff)llvm.src/tools/llvm-readobj/WasmDumper.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2wasm.cpp (diff)llvm.src/tools/yaml2obj/yaml2wasm.cpp
Revision 353471 by qcolombet:
[InstCombine] Optimize `atomicrmw <op>, 0` into `load atomic` when possible

This commit teaches InstCombine how to replace an atomicrmw operation
into a simple load atomic.
For a given `atomicrmw <op>`, this is possible when:
1. The ordering of that operation is compatible with a load (i.e.,
   anything that doesn't have a release semantic).
2. <op> does not modify the value being stored

Differential Revision: https://reviews.llvm.org/D57854
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/CMakeLists.txt (diff)llvm.src/lib/Transforms/InstCombine/CMakeLists.txt
The file was added/llvm/trunk/lib/Transforms/InstCombine/InstCombineAtomicRMW.cppllvm.src/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h (diff)llvm.src/lib/Transforms/InstCombine/InstCombineInternal.h
The file was added/llvm/trunk/test/Transforms/InstCombine/atomicrmw.llllvm.src/test/Transforms/InstCombine/atomicrmw.ll
Revision 353470 by pcc:
gn build: Make check-{clang,lld,llvm} pass on FreeBSD.

Mostly achieved by assuming that anything that isn't Win or Mac is ELF,
which seems reasonable enough for now.

Differential Revision: https://reviews.llvm.org/D57870
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang/tools/libclang/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang/tools/libclang/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Transforms/Hello/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/Transforms/Hello/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/test/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/test/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/bugpoint-passes/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/tools/bugpoint-passes/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/bugpoint/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/tools/bugpoint/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/llc/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/tools/llc/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/lli/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/tools/lli/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/lto/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/tools/lto/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/opt/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/tools/opt/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/triples.gni (diff)llvm.src/utils/gn/secondary/llvm/triples.gni
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/Passes/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/Passes/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/Support/DynamicLibrary/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/Support/DynamicLibrary/BUILD.gn
Revision 353469 by fhahn:
[LV] Remove unnecessary assignment to UserIC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)llvm.src/lib/Transforms/Vectorize/LoopVectorize.cpp
Revision 353467 by spatel:
[InstCombine] Fix crashing from (icmp (bitcast ([su]itofp X)), Y)

This fixes a class of bugs introduced by D44367,
which transforms various cases of icmp (bitcast ([su]itofp X)), Y to icmp X, Y.
If the bitcast is between vector types with a different number of elements,
the current code will produce bad IR along the lines of: icmp <N x i32> ..., <M x i32> <...>.

This patch suppresses the transform if the bitcast changes the number of vector elements.

Patch by: @AndrewScheidecker (Andrew Scheidecker)

Differential Revision: https://reviews.llvm.org/D57871
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/cast-int-icmp-eq-0.ll (diff)llvm.src/test/Transforms/InstCombine/cast-int-icmp-eq-0.ll
Revision 353465 by Adrian Prantl:
Move SMTSolver dump() methods out-of-line.

This broke modularized non-local-submodule-visibility builds because
the function bodies pulled in extra dependencies.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/SMTAPI.h (diff)llvm.src/include/llvm/Support/SMTAPI.h
The file was modified/llvm/trunk/lib/Support/Z3Solver.cpp (diff)llvm.src/lib/Support/Z3Solver.cpp
Revision 353464 by nikic:
[CodeGen] Handle vector UADDO, SADDO, USUBO, SSUBO

This is part of https://bugs.llvm.org/show_bug.cgi?id=40442.

Vector legalization is implemented for the add/sub overflow opcodes.
UMULO/SMULO are also handled as far as legalization is concerned, but
they don't support vector expansion yet (so no tests for them).

The vector result widening implementation is suboptimal, because it
could result in a legalization loop.

Differential Revision: https://reviews.llvm.org/D57639
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/vec_uaddo.llllvm.src/test/CodeGen/AArch64/vec_uaddo.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/saddo.ll (diff)llvm.src/test/CodeGen/AMDGPU/saddo.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/ssubo.ll (diff)llvm.src/test/CodeGen/AMDGPU/ssubo.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/uaddo.ll (diff)llvm.src/test/CodeGen/AMDGPU/uaddo.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/usubo.ll (diff)llvm.src/test/CodeGen/AMDGPU/usubo.ll
The file was added/llvm/trunk/test/CodeGen/X86/vec_saddo.llllvm.src/test/CodeGen/X86/vec_saddo.ll
The file was added/llvm/trunk/test/CodeGen/X86/vec_ssubo.llllvm.src/test/CodeGen/X86/vec_ssubo.ll
The file was added/llvm/trunk/test/CodeGen/X86/vec_uaddo.llllvm.src/test/CodeGen/X86/vec_uaddo.ll
The file was added/llvm/trunk/test/CodeGen/X86/vec_usubo.llllvm.src/test/CodeGen/X86/vec_usubo.ll
Revision 353463 by smeenai:
[cmake] Pass LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN to NATIVE configure

We should propagate this down to host builds so that e.g. people using
an optimized tablegen can do the sub-configure successfully.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/CrossCompile.cmake (diff)llvm.src/cmake/modules/CrossCompile.cmake
Revision 353462 by spatel:
[InstCombine] refactor folds for (icmp (bitcast X), Y); NFCI
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.h (diff)llvm.src/lib/Transforms/InstCombine/InstCombineInternal.h
Revision 353461 by fhahn:
[LV] Prevent interleaving if computeMaxVF returned None.

As discussed in D57382, interleaving should be avoided if computeMaxVF
returns None, same as we currently do for vectorization.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6477

Reviewers: Ayal, dcaballe, hsaito, mkuper, rengolin

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D57837
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorizationPlanner.h (diff)llvm.src/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)llvm.src/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was added/llvm/trunk/test/Transforms/LoopVectorize/no-interleave-up-front.llllvm.src/test/Transforms/LoopVectorize/no-interleave-up-front.ll
Revision 353460 by arsenm:
GlobalISel: Try to fix bot failures

Don't rely on order of evaluation of function arguments.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Revision 353459 by ahatanak:
[Sema][ObjC] Disallow non-trivial C struct fields in unions.

This patch fixes a bug where clang doesn’t reject union fields of
non-trivial C struct types. For example:

```
// This struct is non-trivial under ARC.
struct S0 {
  id x;
};

union U0 {
  struct S0 s0; // clang should reject this.
  struct S0 s1; // clang should reject this.
};

void test(union U0 a) {
  // Previously, both 'a.s0.x' and 'a.s1.x' were released in this
  // function.
}
```

rdar://problem/46677858

Differential Revision: https://reviews.llvm.org/D55659
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Type.h (diff)clang.src/include/clang/AST/Type.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (diff)clang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/AST/Type.cpp (diff)clang.src/lib/AST/Type.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/test/SemaObjC/arc-decls.m (diff)clang.src/test/SemaObjC/arc-decls.m
Revision 353457 by rksimon:
[DAGCombiner] (add (umax X, C), -C) --> (usubsat X, C) (PR40111)

Move the (add (umax X, C), -C) --> (usubsat X, C) X86 combine into generic DAGCombiner

First of a number of saturated arithmetic folds that can be moved out of X86-specific code for PR40111.

Differential Revision: https://reviews.llvm.org/D57754
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 353456 by abataev:
[SEMA]Generalize deferred diagnostic interface, NFC.

Summary:
Deferred diagnostic interface is going to be used for OpenMP device
compilation. Generalized previously existed deferred diagnostic
interface for CUDA to be used with OpenMP and, possibly, other models.

Reviewers: rjmccall, tra

Subscribers: caomhin, cfe-commits, kkwli0

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57908
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Sema/Sema.h (diff)clang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Sema/Sema.cpp (diff)clang.src/lib/Sema/Sema.cpp
The file was modified/cfe/trunk/lib/Sema/SemaCUDA.cpp (diff)clang.src/lib/Sema/SemaCUDA.cpp
Revision 353455 by arsenm:
GlobalISel: Implement narrowScalar for shift main type

This is pretty much directly ported from SelectionDAG. Doesn't include
the shift by non-constant but known bits version, since there isn't a
globalisel version of computeKnownBits yet.

This shows a disadvantage of targets not specifically which type
should be used for the shift amount. If type 0 is legalized before
type 1, the operations on the shift amount type use the wider type
(which are also less likely to legalize). This can be avoided by
targets specifying legalization actions on type 1 earlier than for
type 0.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-merge-values.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-merge-values.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-unmerge-values.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-unmerge-values.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
Revision 353452 by arsenm:
AMDGPU/GlobalISel: Restrict g_implicit_def legality
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir
Revision 353450 by marshall:
Add static_asserts to tuple's comparison operators to enforce the requirement that the tuples be the same size. See PR39183 for an example where we give unexpected results for this bad input case. With this change, we will reject it at compile-time
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/tuple (diff)libcxx.src/include/tuple
Revision 353449 by arsenm:
GlobalISel: Fix artifact combiner constant legality checks for vectors

Since G_CONSTANT is illegal for vectors, this needs to check
what buildConstant will produce for a splat vector.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-anyext.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-anyext.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-sext.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-sext.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
Revision 353448 by marshall:
Add UBSAN annotation to __hash_table::rehash; we don't do anything wrong, but UBSAN's checker flags it as suspicious. See PR38606. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__hash_table (diff)libcxx.src/include/__hash_table
Revision 353443 by arsenm:
AMDGPU/GlobalISel: Don't use g_implicit_def in a few tests
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-anyext.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-anyext.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-sext.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-sext.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-zext.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-zext.mir
Revision 353442 by niravd:
Revert "[DAG] Cleanup of unused node in SimplifySelectCC."

Causes ASAN use-after-poison errors.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 353439 by rnk:
[InstrProf] Avoid reconstructing Triple, NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)llvm.src/lib/Transforms/Instrumentation/InstrProfiling.cpp
Revision 353438 by arsenm:
AMDGPU/GlobalISel: Legalize fsqrt
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fsqrt.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fsqrt.mir
Revision 353436 by arsenm:
AMDGPU/GlobalISel: Legalize some f16 operations
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir
Revision 353435 by rnk:
[InstrProf] Port test suite to Windows

Summary:
Before this change, check-profile would run, but all tests would be
marked unsupported on Windows. This is the new status of 'check-profile'
after this change:

Testing Time: 6.66s
  Expected Passes    : 29
  Expected Failures  : 5
  Unsupported Tests  : 39

I moved many tests that exercise posix-y features like dlopen and DSOs
into the Posix subdirectory, and ran the tests on Linux to validate my
changes.

These are the remaining tests that I handled on a case by case basis:
- instrprof-path.c
  Passes, Fixed some path portability issues
- instrprof-gcov-exceptions.test
  Passes, the FileCheck actually succeeds on Windows, so I RUNX'd it
- instrprof-icall-promo.test
  XFAILed, probably due to C++ ABI differences in vtables
- instrprof-merge-match.test
- instrprof-merge.c
- instrprof-merging.cpp
  XFAILed, These seem like real bugs that need fixing
- instrprof-version-mismatch.c
  XFAILed, Overriding the weak version symbol doesn't work
- instrprof-without-libc.c
  UNSUPPORTED, test needs an executable symbol table, Windows has none

Reviewers: davidxl, wmi, void

Subscribers: fedor.sergeev, #sanitizers, llvm-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D57853
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-__gcov_flush-multiple.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-__gcov_flush-multiple.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-exceptions.cpp.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-exceptions.cpp.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-execlp.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-execlp.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-execvp.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-execvp.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-fork.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-fork.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-multiple-bbs-single-line.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-one-line-function.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-one-line-function.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-switch1.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-switch1.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-gcov-switch2.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-gcov-switch2.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-lib.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov
The file was modified/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov (diff)compiler-rt.src/test/profile/Inputs/instrprof-shared-main.c.gcov
The file was removed/compiler-rt/trunk/test/profile/Inputs/instrprof-visibility-helper.cppcompiler-rt.src/test/profile/Inputs/instrprof-visibility-helper.cpp
The file was added/compiler-rt/trunk/test/profile/Posix/Inputscompiler-rt.src/test/profile/Posix/Inputs
The file was added/compiler-rt/trunk/test/profile/Posix/Inputs/instrprof-visibility-helper.cppcompiler-rt.src/test/profile/Posix/Inputs/instrprof-visibility-helper.cpp
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-dlopen-dlclose-gcov.testcompiler-rt.src/test/profile/Posix/instrprof-dlopen-dlclose-gcov.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-dlopen.testcompiler-rt.src/test/profile/Posix/instrprof-dlopen.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-dynamic-one-shared.testcompiler-rt.src/test/profile/Posix/instrprof-dynamic-one-shared.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-dynamic-two-shared.testcompiler-rt.src/test/profile/Posix/instrprof-dynamic-two-shared.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-set-filename-shared.testcompiler-rt.src/test/profile/Posix/instrprof-set-filename-shared.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-shared-gcov-flush.testcompiler-rt.src/test/profile/Posix/instrprof-shared-gcov-flush.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-shared.testcompiler-rt.src/test/profile/Posix/instrprof-shared.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-value-prof-shared.testcompiler-rt.src/test/profile/Posix/instrprof-value-prof-shared.test
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-visibility-kinds.inccompiler-rt.src/test/profile/Posix/instrprof-visibility-kinds.inc
The file was added/compiler-rt/trunk/test/profile/Posix/instrprof-visibility.cppcompiler-rt.src/test/profile/Posix/instrprof-visibility.cpp
The file was added/compiler-rt/trunk/test/profile/Posix/lit.local.cfgcompiler-rt.src/test/profile/Posix/lit.local.cfg
The file was removed/compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.testcompiler-rt.src/test/profile/instrprof-dlopen-dlclose-gcov.test
The file was removed/compiler-rt/trunk/test/profile/instrprof-dlopen.testcompiler-rt.src/test/profile/instrprof-dlopen.test
The file was removed/compiler-rt/trunk/test/profile/instrprof-dynamic-one-shared.testcompiler-rt.src/test/profile/instrprof-dynamic-one-shared.test
The file was removed/compiler-rt/trunk/test/profile/instrprof-dynamic-two-shared.testcompiler-rt.src/test/profile/instrprof-dynamic-two-shared.test
The file was modified/compiler-rt/trunk/test/profile/instrprof-gcov-exceptions.test (diff)compiler-rt.src/test/profile/instrprof-gcov-exceptions.test
The file was modified/compiler-rt/trunk/test/profile/instrprof-icall-promo.test (diff)compiler-rt.src/test/profile/instrprof-icall-promo.test
The file was modified/compiler-rt/trunk/test/profile/instrprof-merge-match.test (diff)compiler-rt.src/test/profile/instrprof-merge-match.test
The file was modified/compiler-rt/trunk/test/profile/instrprof-merge.c (diff)compiler-rt.src/test/profile/instrprof-merge.c
The file was modified/compiler-rt/trunk/test/profile/instrprof-merging.cpp (diff)compiler-rt.src/test/profile/instrprof-merging.cpp
The file was modified/compiler-rt/trunk/test/profile/instrprof-path.c (diff)compiler-rt.src/test/profile/instrprof-path.c
The file was removed/compiler-rt/trunk/test/profile/instrprof-set-filename-shared.testcompiler-rt.src/test/profile/instrprof-set-filename-shared.test
The file was removed/compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.testcompiler-rt.src/test/profile/instrprof-shared-gcov-flush.test
The file was removed/compiler-rt/trunk/test/profile/instrprof-shared.testcompiler-rt.src/test/profile/instrprof-shared.test
The file was removed/compiler-rt/trunk/test/profile/instrprof-value-prof-shared.testcompiler-rt.src/test/profile/instrprof-value-prof-shared.test
The file was modified/compiler-rt/trunk/test/profile/instrprof-version-mismatch.c (diff)compiler-rt.src/test/profile/instrprof-version-mismatch.c
The file was removed/compiler-rt/trunk/test/profile/instrprof-visibility-kinds.inccompiler-rt.src/test/profile/instrprof-visibility-kinds.inc
The file was removed/compiler-rt/trunk/test/profile/instrprof-visibility.cppcompiler-rt.src/test/profile/instrprof-visibility.cpp
The file was modified/compiler-rt/trunk/test/profile/instrprof-without-libc.c (diff)compiler-rt.src/test/profile/instrprof-without-libc.c
The file was modified/compiler-rt/trunk/test/profile/lit.cfg (diff)compiler-rt.src/test/profile/lit.cfg
Revision 353434 by tejohnson:
[HotColdSplit] With PGO add profile entry metadata to split cold function

Summary:
When compiling with profile data, ensure the split cold function gets
cold function_entry_count metadata (just use 0 since it should be cold).
Otherwise with function sections it will not be placed in the unlikely
text section with other cold code.

Reviewers: vsk

Subscribers: sebpop, hiraditya, davidxl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57900
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cpp (diff)llvm.src/lib/Transforms/IPO/HotColdSplitting.cpp
The file was added/llvm/trunk/test/Transforms/HotColdSplit/coldentrycount.llllvm.src/test/Transforms/HotColdSplit/coldentrycount.ll
Revision 353433 by spatel:
[DAGCombiner] fold add/sub with bool operand based on target's boolean contents
 
I noticed that we are missing this canonicalization in IR:
rL352515
...and then realized that we don't get this right in SDAG either,
so this has to be fixed first regardless of what we choose to do in IR.

The existing fold was limited to scalars and using the wrong predicate
to guard the transform. We have a boolean contents TLI query that can
be used to decide which direction to fold.

This may eventually lead back to the problems/question in:
https://bugs.llvm.org/show_bug.cgi?id=40486
...but it makes no difference to that yet.

Differential Revision: https://reviews.llvm.org/D57401
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/bool-math.ll (diff)llvm.src/test/CodeGen/PowerPC/bool-math.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/signbit-shift.ll (diff)llvm.src/test/CodeGen/PowerPC/signbit-shift.ll
Revision 353432 by arsenm:
GlobalISel: Implement fewerElementsVector for shifts

Introduce a new function which handles instructions with multiple type
indices, but have the same number of vector elements.

Also legalize v2s16 shifts when applicable.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
Revision 353431 by stulova:
[OpenCL][PR40603] In C++ preserve compatibility with OpenCL C v2.0

Valid OpenCL C code should still compile in C++ mode.

This change enables extensions and OpenCL types.

Differential Revision: https://reviews.llvm.org/D57824
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/OpenCLOptions.h (diff)clang.src/include/clang/Basic/OpenCLOptions.h
The file was modified/cfe/trunk/lib/Frontend/InitPreprocessor.cpp (diff)clang.src/lib/Frontend/InitPreprocessor.cpp
The file was modified/cfe/trunk/lib/Parse/ParsePragma.cpp (diff)clang.src/lib/Parse/ParsePragma.cpp
The file was modified/cfe/trunk/lib/Sema/Sema.cpp (diff)clang.src/lib/Sema/Sema.cpp
The file was modified/cfe/trunk/test/SemaOpenCL/extension-version.cl (diff)clang.src/test/SemaOpenCL/extension-version.cl
The file was modified/cfe/trunk/test/SemaOpenCL/extensions.cl (diff)clang.src/test/SemaOpenCL/extensions.cl
Revision 353430 by arsenm:
GlobalISel: Try to make legalize rules more useful for vectors

Mostly keep the existing functions on scalars, but add versions which
also operate based on the vector element size.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
The file was modified/llvm/trunk/include/llvm/Support/LowLevelTypeImpl.h (diff)llvm.src/include/llvm/Support/LowLevelTypeImpl.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalityPredicates.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizeMutations.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
The file was modified/llvm/trunk/unittests/CodeGen/LowLevelTypeTest.cpp (diff)llvm.src/unittests/CodeGen/LowLevelTypeTest.cpp
Revision 353428 by niravd:
[DAG] Cleanup of unused node in SimplifySelectCC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 353427 by spatel:
[x86] split more 256/512-bit shuffles in lowering
 
This is intentionally a small step because it's hard to know exactly
where we might introduce a conflicting transform with the code that
tries to form wider shuffles. But I think this is safe - if we have
a wide shuffle with 2 operands, then we should do better with an
extract + narrow shuffle.

Differential Revision: https://reviews.llvm.org/D57867
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-shuffles/partial_permute.ll (diff)llvm.src/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr34592.ll (diff)llvm.src/test/CodeGen/X86/pr34592.ll
The file was modified/llvm/trunk/test/CodeGen/X86/trunc-subvector.ll (diff)llvm.src/test/CodeGen/X86/trunc-subvector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v4.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-256-v4.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v8.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-512-v8.ll
Revision 353426 by niravd:
[DAG] Cleanup unused node on failed SELECT Combine.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 353425 by martong:
[ASTImporter] Refactor unittests to be able to parameterize them in a more flexible way

Summary:
Currently `TestImportBase` is derived from `ParameterizedTestsFixture`
which explicitly states that the gtest parameter can be only an
`ArgVector`. This is a limitation when we want to create tests which may
have different parameters.
E.g. we would like to create tests where we can combine different test
parameters. So, for example we'd like gtest to be able to provide
parameters of `<std::tuple<ArgVector, const char *>` instead of a simple
`ArgVector`.

Reviewers: a_sidorin, shafik, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Differential Revision: https://reviews.llvm.org/D57322
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cpp (diff)clang.src/unittests/AST/ASTImporterTest.cpp
Revision 353424 by rupprecht:
[llvm-ar][libObject] Fix relative paths when nesting thin archives.

Summary:
When adding one thin archive to another, we currently chop off the relative path to the flattened members. For instance, when adding `foo/child.a` (which contains `x.txt`) to `parent.a`, when flattening it we should add it as `foo/x.txt` (which exists) instead of `x.txt` (which does not exist).

As a note, this also undoes the `IsNew` parameter of handling relative paths in r288280. The unit test there still passes.

This was reported as part of testing the kernel build with llvm-ar: https://patchwork.kernel.org/patch/10767545/ (see the second point).

Reviewers: mstorsjo, pcc, ruiu, davide, david2050

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57842
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Object/ArchiveWriter.h (diff)llvm.src/include/llvm/Object/ArchiveWriter.h
The file was modified/llvm/trunk/lib/Object/ArchiveWriter.cpp (diff)llvm.src/lib/Object/ArchiveWriter.cpp
The file was added/llvm/trunk/test/tools/llvm-ar/flatten-thin-archive-directories.testllvm.src/test/tools/llvm-ar/flatten-thin-archive-directories.test
The file was modified/llvm/trunk/test/tools/llvm-ar/flatten-thin-archive.test (diff)llvm.src/test/tools/llvm-ar/flatten-thin-archive.test
The file was modified/llvm/trunk/tools/llvm-ar/llvm-ar.cpp (diff)llvm.src/tools/llvm-ar/llvm-ar.cpp
Revision 353423 by kadircet:
[clangd] Mention indexing in docs.

Reviewers: sammccall

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

Differential Revision: https://reviews.llvm.org/D57392
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/docs/clangd.rst (diff)clang-tools-extra.src/docs/clangd.rst
Revision 353422 by kadircet:
[clangd] Reduce number of threads used by BackgroundIndex to number of physical cores.

Summary:
clangd is using as many threads as logical cores for BackgroundIndex
by default. We observed that it increases latency of foreground tasks.

This patch aims to change that default to number of physical cores to get rid of
that extra latency.

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57819
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/index/Background.h (diff)clang-tools-extra.src/clangd/index/Background.h
Revision 353421 by hokein:
[clangd] Fix an assertion failure in Selection.

Summary:
The assertion is triggered when the Decl is null.

Details for the assertion:

F0207 09:55:09.069385   47308 logging.cc:84] assert.h assertion failed at llvm/include/llvm/Support/Casting.h:105 in static bool llvm::isa_impl_cl<clang::TranslationUnitDecl, const clang::      Decl *>::doit(const From *) [To = clang::TranslationUnitDecl, From = const clang::Decl *]: Val && "isa<> used on a null pointer"
15 *** Check failure stack trace: ***
19     @     0x55615c1f7e06  __assert_fail
20     @     0x55615a6297d8  clang::clangd::(anonymous namespace)::SelectionVisitor::TraverseDecl()
21     @     0x55615a62f48d  clang::RecursiveASTVisitor<>::TraverseTemplateTemplateParmDecl()
22     @     0x55615a62b264  clang::RecursiveASTVisitor<>::TraverseDecl()
23     @     0x55615a62979c  clang::clangd::(anonymous namespace)::SelectionVisitor::TraverseDecl()
24     @     0x55615a63060c  clang::RecursiveASTVisitor<>::TraverseClassTemplatePartialSpecializationDecl()
25     @     0x55615a62ae45  clang::RecursiveASTVisitor<>::TraverseDecl()

Reviewers: sammccall

Subscribers: javed.absar, kristof.beyls, ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57879
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/Selection.cpp (diff)clang-tools-extra.src/clangd/Selection.cpp
The file was modified/clang-tools-extra/trunk/unittests/clangd/SelectionTests.cpp (diff)clang-tools-extra.src/unittests/clangd/SelectionTests.cpp
Revision 353418 by cryptoad:
[scudo][standalone] Do not error out on spurious C(XX) flags

Summary:
The standalone Scudo version is being built with `-Werror` which can be
tripped by extraneous command line arguments. We have little control over
those as they can be passed down to us by `CMAKE_C(XX)_FLAGS`, the reported
scenario involving `-stdlib=libc++` (see https://reviews.llvm.org/D57412#1384504).

To work around this, disable `-Wunused-command-line-argument`.

Reviewers: eugenis, vitalybuka, Eugene.Zelenko

Reviewed By: eugenis

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

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D57757
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/scudo/standalone/CMakeLists.txt (diff)compiler-rt.src/lib/scudo/standalone/CMakeLists.txt
Revision 353417 by niravd:
[X86] Simplify casing. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 353416 by niravd:
[DAG] Cleanup unused nodes on failed store-to-load forward combine.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 353415 by maskray:
[ELF] Format lines inadvertently indented by rCTE353380
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/SourceCode.h (diff)clang-tools-extra.src/clangd/SourceCode.h
Revision 353413 by ioeric:
[clangd] Use Dex for dynamic index by default.

Summary:
Memory usage for a sample TU:
  Without Dex: 17.9M
  With    Dex: 24.4M

The memory increase is considerable but seems tolerable.

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57878
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/tool/ClangdMain.cpp (diff)clang-tools-extra.src/clangd/tool/ClangdMain.cpp
Revision 353412 by aganea:
[CodeView] Fix cycles in debug info when merging Types with global hashes

When type streams with forward references were merged using GHashes, cycles
were introduced in the debug info. This was caused by
GlobalTypeTableBuilder::insertRecordAs() not inserting the record on the second
pass, thus yielding an empty ArrayRef at that record slot. Later on, upon PDB
emission, TpiStreamBuilder::commit() would skip that empty record, thus
offseting all indices that came after in the stream.

This solution comes in two steps:

1. Fix the hash calculation, by doing a multiple-step resolution, iff there are
forward references in the input stream.
2. Fix merge by resolving with multiple passes, therefore moving records with
forward references at the end of the stream.

This patch also adds support for llvm-readoj --codeview-ghash.
Finally, fix dumpCodeViewMergedTypes() which previously could reference deleted
memory.

Fixes PR40221

Differential Revision: https://reviews.llvm.org/D57790
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h (diff)llvm.src/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeHashing.h (diff)llvm.src/include/llvm/DebugInfo/CodeView/TypeHashing.h
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/TypeHashing.cpp (diff)llvm.src/lib/DebugInfo/CodeView/TypeHashing.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp (diff)llvm.src/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
The file was added/llvm/trunk/test/tools/llvm-readobj/codeview-merging-ghash.testllvm.src/test/tools/llvm-readobj/codeview-merging-ghash.test
The file was modified/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp (diff)llvm.src/tools/llvm-readobj/COFFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/ObjDumper.h (diff)llvm.src/tools/llvm-readobj/ObjDumper.h
The file was modified/llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp (diff)llvm.src/tools/llvm-readobj/llvm-readobj.cpp