FailedChanges

Summary

  1. gn build: Merge r354365 more
  2. [GVN] Small tweaks to comments, style, and missed vector handling Noticed these while doing a final sweep of the code to make sure I hadn't missed anything in my last couple of patches. The (minor) missed optimization was noticed because of the stylistic fix to avoid an overly specific cast.
  3. gn build: Merge r354365
  4. [lld-link] preserve @llvm.used symbols in LTO Summary: We translate @llvm.used to COFF by generating /include directives in the .drectve section. However, in LTO links, this happens after directives have already been processed, so the new directives do not take effect. This change marks @llvm.used symbols as GCRoots so that they are preserved as intended. Fixes PR40733. Reviewers: rnk, pcc, ruiu Reviewed By: ruiu Subscribers: mehdi_amini, steven_wu, dexonsmith, dang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58255
  5. [BPF] make test case reloc-btf.ll tolerable for old compilers The test case reloc-btf.ll is generated with an IR containing spFlags introduced by https://reviews.llvm.org/rL347806. In the case of BTF backporting, the old compiler may not have this patch, so this test will fail during validation. This patch removed spFlags from IR in the test case and used the old way for various flags. Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Yonghong Song <yhs@fb.com>
  6. Revert "[InstSimplify] use any-zero matcher for fcmp folds" This reverts commit 058bb8351351d56d2a4e8a772570231f9e5305e5. Forgot to update another test affected by this change.
  7. [GVN] Fix last crasher w/non-integral pointers Same case as for memset and memcpy, but this time for clobbering stores and loads. We still can't allow coercion to or from non-integrals, regardless of the transform. Now that I'm done the whole little sequence, it seems apparent that we'd entirely missed reasoning about clobbers in the original GVN support for non-integral pointers. My appologies, I thought we'd upstreamed all of this, but it turns out we were still carrying a downstream hack which hid all of these issues. My chanks to Cherry Zhang for helping debug.
  8. [InstSimplify] use any-zero matcher for fcmp folds The m_APFloat matcher does not work with anything but strict splat vector constants, so we could miss these folds and then trigger an assertion in instcombine: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13201
  9. [InstSimplify] add vector tests for fcmp+fabs; NFC
  10. [GVN] Fix a crash bug w/non-integral pointers and memtransfers Problem is very similiar to the one fixed for memsets in r354399, we try to coerce a value to non-integral type, and then crash while try to do so. Since we shouldn't be doing such coercions to start with, easy fix. From inspection, I see two other cases which look to be similiar and will follow up with most test cases and fixes if confirmed.
  11. [msan] Fix name_to_handle_at test on overlayfs. Udev supports name_to_handle_at. Use /dev/null instead of /bin/cat.
  12. [GVN] Fix a non-integral pointer bug w/vector types GVN generally doesn't forward structs or array types, but it *will* forward vector types to non-vectors and vice versa. As demonstrated in tests, we need to inhibit the same set of transforms for vector of non-integral pointers as for non-integral pointers themselves.
  13. [GVN] Fix a crash bug around non-integral pointers If we encountered a location where we tried to forward the value of a memset to a load of a non-integral pointer, we crashed. Such a forward is not legal in general, but we can forward null pointers. Test for both cases are included.
  14. [Test] Autogenerate existing tests before adding more
  15. [WebAssembly] Update MC for bulk memory Summary: Rename MemoryIndex to InitFlags and implement logic for determining data segment layout in ObjectYAML and MC. Also adds a "passive" flag for the .section assembler directive although this cannot be assembled yet because the assembler does not support data sections. Reviewers: sbc100, aardappel, aheejin, dschuff Subscribers: jgravelle-google, hiraditya, sunfish, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57938
  16. [X86] Mark FP32_TO_INT16_IN_MEM/FP32_TO_INT32_IN_MEM/FP32_TO_INT64_IN_MEM as clobbering EFLAGS to prevent mis-scheduling during conversion from SelectionDAG to MIR. After r354178, these instruction expand to a sequence that uses an OR instruction. That OR clobbers EFLAGS so we need to state that to avoid accidentally using the clobbered flags. Our tests show the bug, but I didn't notice because the SETcc instructions didn't move after r354178 since it used to be safe to do the fp->int conversion first. We should probably convert this whole sequence to SelectionDAG instead of a custom inserter to avoid mistakes like this. Fixes PR40779
  17. [LangRef] add to description of alloca instruction As mentioned in D58359, we can explicitly state that the memory allocated is uninitialized and reading that memory produces undef.
  18. [InstCombine] reduce even more unsigned saturated add with 'not' op We want to use the sum in the icmp to allow matching with m_UAddWithOverflow and eliminate the 'not'. This is discussed in D51929 and is another step towards solving PR14613: https://bugs.llvm.org/show_bug.cgi?id=14613 Name: uaddsat, -1 fval %notx = xor i32 %x, -1 %a = add i32 %x, %y %c = icmp ugt i32 %notx, %y %r = select i1 %c, i32 %a, i32 -1 => %a = add i32 %x, %y %c2 = icmp ugt i32 %y, %a %r = select i1 %c2, i32 -1, i32 %a Name: uaddsat, -1 fval + ult %notx = xor i32 %x, -1 %a = add i32 %x, %y %c = icmp ult i32 %y, %notx %r = select i1 %c, i32 %a, i32 -1 => %a = add i32 %x, %y %c2 = icmp ugt i32 %y, %a %r = select i1 %c2, i32 -1, i32 %a https://rise4fun.com/Alive/nTp
  19. [libFuzzer] docs: add a FAQ entry about dlclose
  20. second test on git-llvm-push
  21. Fix builds with llvm/runtimes/compiler-rt after r354365 Compiler-rt doesn't include config-ix which was providing CheckSymbolExists to the LLVM build. Add it to HandleLLVMOptions to fix this
  22. [ArgumentPromotion] Add a lit.local.cfg to disable X86 specific tests if the X86 target doesn't exist. Hopefully this fixes some buildbot failure after r354376
  23. [InstCombine] rearrange saturated add folds; NFC This is no-functional-change-intended, but that was also true when it was part of rL354276, and I managed to lose 2 predicates for the fold with constant...causing much bot distress. So this time I'm adding a couple of negative tests to avoid that.
  24. Testing git-llvm-push script
  25. PowerPC: Fix typos in comments
  26. [ConstantFold] Fix misfolding fcmp of a ConstantExpr NaN with itself. The code incorrectly inferred that the relationship of a constant expression to itself is FCMP_OEQ (ordered and equal), when it's actually FCMP_UEQ (unordered *or* equal). This change corrects that, and adds some more limited folds that can be done in this case. Differential revision: https://reviews.llvm.org/D51216
  27. [ConstantFold] Fix misfolding of icmp with a bitcast FP second operand. In the process of trying to eliminate the bitcast, this was producing a malformed icmp with FP operands. Differential revision: https://reviews.llvm.org/D51215
  28. [llvm-cov] Add support for gcov --hash-filenames option The patch adds support for --hash-filenames to llvm-cov. This option adds md5 hash of the source path to the name of the generated .gcov file. The option is crucial for cases where you have multiple files with the same name but can't use --preserve-paths as resulting filenames exceed the limit. from gcov(1): ``` -x --hash-filenames By default, gcov uses the full pathname of the source files to to create an output filename. This can lead to long filenames that can overflow filesystem limits. This option creates names of the form source-file##md5.gcov, where the source-file component is the final filename part and the md5 component is calculated from the full mangled name that would have been used otherwise. ``` Patch by Igor Ignatev! Differential Revision: https://reviews.llvm.org/D58370
  29. Testing commit access
  30. [msan] Remove cxa_atexit_race.cc Summary: The goal of the test to check that msan does not crash when code is racy on __cxa_atexit. Original crash was caused by race condition in the glibc. With the msan patch the msan does not crashes however the race is still there and the test triggers it. Because the test relies on triggering of undefined behavior results are not very predictable and it may occasionally crashes or hangs. I don't see how to reasonably improve the test, so I remove it. Reviewers: eugenis, peter.smith Subscribers: jfb, jdoerfert, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D58396
  31. [X86] Don't consider functions ABI compatible for ArgumentPromotion pass if they view 512-bit vectors differently. The use of the -mprefer-vector-width=256 command line option mixed with functions using vector intrinsics can create situations where one function thinks 512 vectors are legal, but another fucntion does not. If a 512 bit vector is passed between them via a pointer, its possible ArgumentPromotion might try to pass by value instead. This will result in type legalization for the two functions handling the 512 bit vector differently leading to runtime failures. Had the 512 bit vector been passed by value from clang codegen, both functions would have been tagged with a min-legal-vector-width=512 function attribute. That would make them be legalized the same way. I observed this issue in 32-bit mode where a union containing a 512 bit vector was being passed by a function that used intrinsics to one that did not. The caller ended up passing in zmm0 and the callee tried to read it from ymm0 and ymm1. The fix implemented here is just to consider it a mismatch if two functions would handle 512 bit differently without looking at the types that are being considered. This is the easist and safest fix, but it can be improved in the future. Differential Revision: https://reviews.llvm.org/D58390
  32. Revert "Revert "[llvm-objdump] Allow short options without arguments to be grouped"" - Tests that use multiple short switches now test them grouped and ungrouped. - Ensure the output of ungrouped and grouped variants is identical Differential Revision: https://reviews.llvm.org/D57904
  33. Fix builds for older macOS deployment targets after r354365 Surprisingly, check_symbol_exists is not sufficient. The macOS linker checks the called functions against a compatibility list for the given deployment target and check_symbol_exists doesn't trigger this check as it never calls the function. This fixes the GreenDragon bots where the deployment target is 10.9
  34. [sanitizers] add a regression test for the bug fixed in r354366
  35. [sanitizer] fix a memory safety bug (!!!) in sanitizer suppressions code, discovered by Aaron Jacobs
  36. Annotate timeline in Instruments with passes and other timed regions. Summary: Instruments is a useful tool for finding performance issues in LLVM but it can be difficult to identify regions of interest on the timeline that we can use to filter the profiler or allocations instrument. Xcode 10 and the latest macOS/iOS/etc. added support for the os_signpost() API which allows us to annotate the timeline with information that's meaningful to LLVM. This patch causes timer start and end events to emit signposts. When used with -time-passes, this causes the passes to be annotated on the Instruments timeline. In addition to visually showing the duration of passes on the timeline, it also allows us to filter the profile and allocations instrument down to an individual pass allowing us to find the issues within that pass without being drowned out by the noise from other parts of the compiler. Using this in conjunction with the Time Profiler (in high frequency mode) and the Allocations instrument is how I found the SparseBitVector that should have been a BitVector and the DenseMap that could be replaced by a sorted vector a couple months ago. I added NamedRegionTimers to TableGen and used the resulting annotations to identify the slow portions of the Register Info Emitter. Some of these were placed according to educated guesses while others were placed according to hot functions from a previous profile. From there I filtered the profile to a slow portion and the aforementioned issues stood out in the profile. To use this feature enable LLVM_SUPPORT_XCODE_SIGNPOSTS in CMake and run the compiler under Instruments with -time-passes like so: instruments -t 'Time Profiler' bin/llc -time-passes -o - input.ll' Then open the resulting trace in Instruments. There was a talk at WWDC 2018 that explained the feature which can be found at https://developer.apple.com/videos/play/wwdc2018/405/ if you'd like to know more about it. Reviewers: bogner Reviewed By: bogner Subscribers: jdoerfert, mgorny, kristina, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D52954
  37. [libObject][NFC] Use sys::path::convert_to_slash. Summary: As suggested in rL353995 Reviewers: compnerd Reviewed By: compnerd Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58298
  38. [X86][SSE] Generalize X86ISD::BLENDI support to more value types D42042 introduced the ability for the ExecutionDomainFixPass to more easily change between BLENDPD/BLENDPS/PBLENDW as the domains required. With this ability, we can avoid most bitcasts/scaling in the DAG that was occurring with X86ISD::BLENDI lowering/combining, blend with the vXi32/vXi64 vectors directly and use isel patterns to lower to the float vector equivalent vectors. This helps the shuffle combining and SimplifyDemandedVectorElts be more aggressive as we lose track of fewer UNDEF elements than when we go up/down through bitcasts. I've introduced a basic blend(bitcast(x),bitcast(y)) -> bitcast(blend(x,y)) fold, there are more generalizations I can do there (e.g. widening/scaling and handling the tricky v16i16 repeated mask case). The vector-reduce-smin/smax regressions will be fixed in a future improvement to SimplifyDemandedBits to peek through bitcasts and support X86ISD::BLENDV. Reapplied after reversion at rL353699 - AVX2 isel fix was applied at rL354358, additional test at rL354360/rL354361 Differential Revision: https://reviews.llvm.org/D57888
  39. [NFC] Remove unused headers in Optional.h
  40. Fix stupid assembly comment typo
  41. [X86][SSE] Add pblendw commuted load test case Reduced test case for the regression caused in D57888/rL353610
  42. [SDAG] Use shift amount type in MULO promotion; NFC Directly use the correct shift amount type if it is possible, and future-proof the code against vectors. The added test makes sure that bitwidths that do not fit into the shift amount type do not assert. Split out from D57997.
  43. [X86][AVX2] Hide VPBLENDD instructions behind AVX2 predicate This was the cause of the regression in D57888 - the commuted load pattern wasn't hidden by the predicate so once we enabled v4i32 blends on SSE41+ targets then isel was incorrectly matched against AVX2+ instructions.
  44. [X86] Bugfix for nullptr check by klocwork klocwork critical issues in CG files: Patch by Xiang Zhang (xiangzhangllvm) Differential Revision: https://reviews.llvm.org/D58363
  45. X86AsmParser AVX-512: Return error instead of hitting assert When parsing a sequence of tokens beginning with {, it will hit an assert and crash if the token afterwards is not an identifier. Instead of this, return a more verbose error as seen elsewhere in the function. Patch by Brandon Jones (BrandonTJones) Differential Revision: https://reviews.llvm.org/D57375
  46. [X86] Filter out tuning feature flags and a few ISA feature flags when checking for function inline compatibility. Tuning flags don't have any effect on the available instructions so aren't a good reason to prevent inlining. There are also some ISA flags that don't have any intrinsics our ABI requirements that we can exclude. I've put only the most basic ones like cmpxchg16b and lahfsahf. These are interesting because they aren't present in all 64-bit CPUs, but we have codegen workarounds when they aren't present. Loosening these checks can help with scenarios where a caller has a more specific CPU than a callee. The default tuning flags on our generic 'x86-64' CPU can currently make it inline compatible with other CPUs. I've also added an example test for 'nocona' and 'prescott' where 'nocona' is just a 64-bit capable version of 'prescott' but in 32-bit mode they should be completely compatible. I've based the implementation here of the similar code in AMDGPU. Differential Revision: https://reviews.llvm.org/D58371
  47. GlobalISel: Implement moreElementsVector for select
  48. index.rst: Remove bb-chapuni from list of IRC bots
  49. index.rst: Remove Dragonegg link
  50. Remove extraneous space in MSVC-style diagnostic output There was an extra space between the file location and the diagnostic message: /tmp/a.c(1,12): warning: unused parameter 'unused' the tests didn't catch this due to FileCheck not running in --strict-whitespace mode. Reported by Marco: http://lists.llvm.org/pipermail/cfe-dev/2019-February/061326.html Differential revision: https://reviews.llvm.org/D58377
  51. [compiler-rt][CMake] Set project for the custom libc++ This is another follow up to r354212 which is broken on Darwin when cross-compiling runtimes to Linux when it ignores the -fuse-ld=lld linker flag and attempts to use the host linker when performing the compiler identification. Upon investigation, I noticed that setting the project with appropriate list of languages makes the error go away and it shouldn't hurt either. Differential Revision: https://reviews.llvm.org/D58372
  52. [clangd] Add an option in the code to not display number of fixes Summary: Only to the APIs, which are used by our embedders. We do not plan to add a user-facing option for this. Reviewers: sammccall, ioeric Reviewed By: sammccall Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58387
  53. GlobalISel: Implement moreElementsVector for G_EXTRACT source
  54. [OpenMP 5.0] Parsing/sema support for map clause with mapper modifier. This patch implements the parsing and sema support for OpenMP map clauses with potential user-defined mapper attached. User defined mapper is a new feature in OpenMP 5.0. A map clause can have an explicit or implicit associated mapper, which instructs the compiler to generate extra data mapping. An example is shown below: struct S { int len; int *d; }; #pragma omp declare mapper(id: struct S s) map(s, s.d[0:s.len]) struct S ss; #pragma omp target map(mapper(id) tofrom: ss) // use the mapper with name 'id' to map ss Contributed-by: Lingda Li <lildmh@gmail.com> Differential Revision: https://reviews.llvm.org/D58074
  55. [X86][AVX] Update VBROADCAST folds to always use v2i64 X86vzload The VBROADCAST combines and SimplifyDemandedVectorElts improvements mean that we now more consistently use shorter (128-bit) X86vzload input operands. Follow up to D58053
  56. GlobalISel: Implement moreElementsVector for bit ops
  57. [yaml2obj][obj2yaml] Remove section type range markers from allowed mappings and support hex values yaml2obj/obj2yaml previously supported SHT_LOOS, SHT_HIOS, and SHT_LOPROC for section types. These are simply values that delineate a range and don't really make sense as valid values. For example if a section has type value 0x70000000, obj2yaml shouldn't print this value as SHT_LOPROC. Additionally, this was missing the three other range markers (SHT_HIPROC, SHT_LOUSER and SHT_HIUSER). This change removes these three range markers. It also adds support for specifying the type as an integer, to allow section types that LLVM doesn't know about. Reviewed by: grimar Differential Revision: https://reviews.llvm.org/D58383
  58. Cast from SDValue directly instead of superfluous getNode(). NFCI.
  59. GlobalISel: Verify g_insert
  60. [X86][AVX] EltsFromConsecutiveLoads - Add BROADCAST lowering support This patch adds scalar/subvector BROADCAST handling to EltsFromConsecutiveLoads. It mainly shows codegen changes to 32-bit code which failed to handle i64 loads, although 64-bit code is also using this new path to more efficiently combine to a broadcast load. Differential Revision: https://reviews.llvm.org/D58053
Revision 354413 by nico:
gn build: Merge r354365 more
Change TypePath in RepositoryPath in Workspace
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
Revision 354412 by reames:
[GVN] Small tweaks to comments, style, and missed vector handling

Noticed these while doing a final sweep of the code to make sure I hadn't missed anything in my last couple of patches.  The (minor) missed optimization was noticed because of the stylistic fix to avoid an overly specific cast.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp (diff)llvm.src/lib/Transforms/Utils/VNCoercion.cpp
The file was modified/llvm/trunk/test/Transforms/GVN/non-integral-pointers.ll (diff)llvm.src/test/Transforms/GVN/non-integral-pointers.ll
Revision 354411 by nico:
gn build: Merge r354365
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Support/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Revision 354410 by inglorion:
[lld-link] preserve @llvm.used symbols in LTO

Summary:
We translate @llvm.used to COFF by generating /include directives
in the .drectve section. However, in LTO links, this happens after
directives have already been processed, so the new directives do
not take effect. This change marks @llvm.used symbols as GCRoots
so that they are preserved as intended.

Fixes PR40733.

Reviewers: rnk, pcc, ruiu

Reviewed By: ruiu

Subscribers: mehdi_amini, steven_wu, dexonsmith, dang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58255
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/COFF/InputFiles.cpp (diff)N/A
The file was added/lld/trunk/test/COFF/used-lto.llN/A
The file was modified/llvm/trunk/include/llvm/LTO/LTO.h (diff)llvm.src/include/llvm/LTO/LTO.h
Revision 354409 by yhs:
[BPF] make test case reloc-btf.ll tolerable for old compilers

The test case reloc-btf.ll is generated with an IR containing
spFlags introduced by https://reviews.llvm.org/rL347806.
In the case of BTF backporting, the old compiler may not
have this patch, so this test will fail during
validation.

This patch removed spFlags from IR in the test case
and used the old way for various flags.

Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Yonghong Song <yhs@fb.com>
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/BPF/reloc-btf.ll (diff)llvm.src/test/CodeGen/BPF/reloc-btf.ll
Revision 354408 by spatel:
Revert "[InstSimplify] use any-zero matcher for fcmp folds"

This reverts commit 058bb8351351d56d2a4e8a772570231f9e5305e5.
Forgot to update another test affected by this change.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cpp (diff)llvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/floating-point-compare.ll (diff)llvm.src/test/Transforms/InstSimplify/floating-point-compare.ll
Revision 354407 by reames:
[GVN] Fix last crasher w/non-integral pointers

Same case as for memset and memcpy, but this time for clobbering stores and loads.  We still can't allow coercion to or from non-integrals, regardless of the transform.

Now that I'm done the whole little sequence, it seems apparent that we'd entirely missed reasoning about clobbers in the original GVN support for non-integral pointers.

My appologies, I thought we'd upstreamed all of this, but it turns out we were still carrying a downstream hack which hid all of these issues.  My chanks to Cherry Zhang for helping debug.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp (diff)llvm.src/lib/Transforms/Utils/VNCoercion.cpp
The file was modified/llvm/trunk/test/Transforms/GVN/non-integral-pointers.ll (diff)llvm.src/test/Transforms/GVN/non-integral-pointers.ll
Revision 354406 by spatel:
[InstSimplify] use any-zero matcher for fcmp folds

The m_APFloat matcher does not work with anything but strict
splat vector constants, so we could miss these folds and then
trigger an assertion in instcombine:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13201
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cpp (diff)llvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/floating-point-compare.ll (diff)llvm.src/test/Transforms/InstSimplify/floating-point-compare.ll
Revision 354404 by spatel:
[InstSimplify] add vector tests for fcmp+fabs; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstSimplify/floating-point-compare.ll (diff)llvm.src/test/Transforms/InstSimplify/floating-point-compare.ll
Revision 354403 by reames:
[GVN] Fix a crash bug w/non-integral pointers and memtransfers

Problem is very similiar to the one fixed for memsets in r354399, we try to coerce a value to non-integral type, and then crash while try to do so.  Since we shouldn't be doing such coercions to start with, easy fix.  From inspection, I see two other cases which look to be similiar and will follow up with most test cases and fixes if confirmed.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp (diff)llvm.src/lib/Transforms/Utils/VNCoercion.cpp
The file was modified/llvm/trunk/test/Transforms/GVN/non-integral-pointers.ll (diff)llvm.src/test/Transforms/GVN/non-integral-pointers.ll
Revision 354402 by eugenis:
[msan] Fix name_to_handle_at test on overlayfs.

Udev supports name_to_handle_at. Use /dev/null instead of /bin/cat.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/msan/Linux/name_to_handle_at.cc (diff)compiler-rt.src/test/msan/Linux/name_to_handle_at.cc
Revision 354401 by reames:
[GVN] Fix a non-integral pointer bug w/vector types

GVN generally doesn't forward structs or array types, but it *will* forward vector types to non-vectors and vice versa.  As demonstrated in tests, we need to inhibit the same set of transforms for vector of non-integral pointers as for non-integral pointers themselves.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp (diff)llvm.src/lib/Transforms/Utils/VNCoercion.cpp
The file was modified/llvm/trunk/test/Transforms/GVN/non-integral-pointers.ll (diff)llvm.src/test/Transforms/GVN/non-integral-pointers.ll
Revision 354399 by reames:
[GVN] Fix a crash bug around non-integral pointers

If we encountered a location where we tried to forward the value of a memset to a load of a non-integral pointer, we crashed.  Such a forward is not legal in general, but we can forward null pointers.  Test for both cases are included.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/VNCoercion.cpp (diff)llvm.src/lib/Transforms/Utils/VNCoercion.cpp
The file was modified/llvm/trunk/test/Transforms/GVN/non-integral-pointers.ll (diff)llvm.src/test/Transforms/GVN/non-integral-pointers.ll
Revision 354398 by reames:
[Test] Autogenerate existing tests before adding more
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/GVN/non-integral-pointers.ll (diff)llvm.src/test/Transforms/GVN/non-integral-pointers.ll
Revision 354397 by tlively:
[WebAssembly] Update MC for bulk memory

Summary:
Rename MemoryIndex to InitFlags and implement logic for determining
data segment layout in ObjectYAML and MC. Also adds a "passive" flag
for the .section assembler directive although this cannot be assembled
yet because the assembler does not support data sections.

Reviewers: sbc100, aardappel, aheejin, dschuff

Subscribers: jgravelle-google, hiraditya, sunfish, rupprecht, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57938
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/wasm/call-indirect.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/comdats.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/data-layout.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/gc-sections.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/init-fini.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/local-symbols.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/locals-duplicate.test (diff)N/A
The file was modified/lld/trunk/test/wasm/lto/used.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/many-functions.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/relocatable.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/shared.ll (diff)N/A
The file was modified/lld/trunk/test/wasm/weak-symbols.ll (diff)N/A
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/include/llvm/MC/MCSectionWasm.h (diff)llvm.src/include/llvm/MC/MCSectionWasm.h
The file was modified/llvm/trunk/include/llvm/ObjectYAML/WasmYAML.h (diff)llvm.src/include/llvm/ObjectYAML/WasmYAML.h
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modified/llvm/trunk/lib/MC/MCParser/WasmAsmParser.cpp (diff)llvm.src/lib/MC/MCParser/WasmAsmParser.cpp
The file was modified/llvm/trunk/lib/MC/MCSectionWasm.cpp (diff)llvm.src/lib/MC/MCSectionWasm.cpp
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/lib/ObjectYAML/WasmYAML.cpp (diff)llvm.src/lib/ObjectYAML/WasmYAML.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/global.ll (diff)llvm.src/test/CodeGen/WebAssembly/global.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/vtable.ll (diff)llvm.src/test/CodeGen/WebAssembly/vtable.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/bss.ll (diff)llvm.src/test/MC/WebAssembly/bss.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/comdat.ll (diff)llvm.src/test/MC/WebAssembly/comdat.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/debug-info.ll (diff)llvm.src/test/MC/WebAssembly/debug-info.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/explicit-sections.ll (diff)llvm.src/test/MC/WebAssembly/explicit-sections.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/external-data.ll (diff)llvm.src/test/MC/WebAssembly/external-data.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/external-func-address.ll (diff)llvm.src/test/MC/WebAssembly/external-func-address.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/global-ctor-dtor.ll (diff)llvm.src/test/MC/WebAssembly/global-ctor-dtor.ll
The file was added/llvm/trunk/test/MC/WebAssembly/init-flags.llllvm.src/test/MC/WebAssembly/init-flags.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/reloc-data.ll (diff)llvm.src/test/MC/WebAssembly/reloc-data.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/unnamed-data.ll (diff)llvm.src/test/MC/WebAssembly/unnamed-data.ll
The file was modified/llvm/trunk/test/MC/WebAssembly/weak-alias.ll (diff)llvm.src/test/MC/WebAssembly/weak-alias.ll
The file was modified/llvm/trunk/test/ObjectYAML/wasm/data_section.yaml (diff)llvm.src/test/ObjectYAML/wasm/data_section.yaml
The file was modified/llvm/trunk/test/ObjectYAML/wasm/linking_section.yaml (diff)llvm.src/test/ObjectYAML/wasm/linking_section.yaml
The file was modified/llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml (diff)llvm.src/test/tools/llvm-nm/wasm/exports.yaml
The file was modified/llvm/trunk/test/tools/llvm-nm/wasm/local-symbols.ll (diff)llvm.src/test/tools/llvm-nm/wasm/local-symbols.ll
The file was modified/llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml (diff)llvm.src/test/tools/llvm-nm/wasm/weak-symbols.yaml
The file was modified/llvm/trunk/test/tools/llvm-objdump/WebAssembly/relocations.test (diff)llvm.src/test/tools/llvm-objdump/WebAssembly/relocations.test
The file was modified/llvm/trunk/tools/obj2yaml/wasm2yaml.cpp (diff)llvm.src/tools/obj2yaml/wasm2yaml.cpp
The file was modified/llvm/trunk/tools/yaml2obj/yaml2wasm.cpp (diff)llvm.src/tools/yaml2obj/yaml2wasm.cpp
Revision 354395 by ctopper:
[X86] Mark FP32_TO_INT16_IN_MEM/FP32_TO_INT32_IN_MEM/FP32_TO_INT64_IN_MEM as clobbering EFLAGS to prevent mis-scheduling during conversion from SelectionDAG to MIR.

After r354178, these instruction expand to a sequence that uses an OR instruction. That OR clobbers EFLAGS so we need to state that to avoid accidentally using the clobbered flags.

Our tests show the bug, but I didn't notice because the SETcc instructions didn't move after r354178 since it used to be safe to do the fp->int conversion first.

We should probably convert this whole sequence to SelectionDAG instead of a custom inserter to avoid mistakes like this.

Fixes PR40779
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrFPStack.td (diff)llvm.src/lib/Target/X86/X86InstrFPStack.td
The file was modified/llvm/trunk/test/CodeGen/X86/fp-cvt.ll (diff)llvm.src/test/CodeGen/X86/fp-cvt.ll
The file was modified/llvm/trunk/test/CodeGen/X86/scalar-fp-to-i64.ll (diff)llvm.src/test/CodeGen/X86/scalar-fp-to-i64.ll
Revision 354394 by spatel:
[LangRef] add to description of alloca instruction

As mentioned in D58359, we can explicitly state that the
memory allocated is uninitialized and reading that memory
produces undef.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rst (diff)llvm.src/docs/LangRef.rst
Revision 354393 by spatel:
[InstCombine] reduce even more unsigned saturated add with 'not' op

We want to use the sum in the icmp to allow matching with
m_UAddWithOverflow and eliminate the 'not'. This is discussed
in D51929 and is another step towards solving PR14613:
https://bugs.llvm.org/show_bug.cgi?id=14613

  Name: uaddsat, -1 fval
  %notx = xor i32 %x, -1
  %a = add i32 %x, %y
  %c = icmp ugt i32 %notx, %y
  %r = select i1 %c, i32 %a, i32 -1
  =>
  %a = add i32 %x, %y
  %c2 = icmp ugt i32 %y, %a
  %r = select i1 %c2, i32 -1, i32 %a

  Name: uaddsat, -1 fval + ult
  %notx = xor i32 %x, -1
  %a = add i32 %x, %y
  %c = icmp ult i32 %y, %notx
  %r = select i1 %c, i32 %a, i32 -1
  =>
  %a = add i32 %x, %y
  %c2 = icmp ugt i32 %y, %a
  %r = select i1 %c2, i32 -1, i32 %a

https://rise4fun.com/Alive/nTp
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/saturating-add-sub.ll (diff)llvm.src/test/Transforms/InstCombine/saturating-add-sub.ll
Revision 354392 by kcc:
[libFuzzer] docs: add a FAQ entry about dlclose
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LibFuzzer.rst (diff)llvm.src/docs/LibFuzzer.rst
Revision 354390 by rengolin:
second test on git-llvm-push
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CREDITS.TXT (diff)llvm.src/CREDITS.TXT
Revision 354389 by dsanders:
Fix builds with llvm/runtimes/compiler-rt after r354365

Compiler-rt doesn't include config-ix which was providing CheckSymbolExists to
the LLVM build. Add it to HandleLLVMOptions to fix this
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (diff)llvm.src/cmake/modules/HandleLLVMOptions.cmake
Revision 354388 by ctopper:
[ArgumentPromotion] Add a lit.local.cfg to disable X86 specific tests if the X86 target doesn't exist.

Hopefully this fixes some buildbot failure after r354376
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/ArgumentPromotion/X86/lit.local.cfgllvm.src/test/Transforms/ArgumentPromotion/X86/lit.local.cfg
Revision 354384 by spatel:
[InstCombine] rearrange saturated add folds; NFC

This is no-functional-change-intended, but that was also
true when it was part of rL354276, and I managed to lose
2 predicates for the fold with constant...causing much bot
distress. So this time I'm adding a couple of negative tests
to avoid that.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/saturating-add-sub.ll (diff)llvm.src/test/Transforms/InstCombine/saturating-add-sub.ll
Revision 354383 by rengolin:
Testing git-llvm-push script
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CREDITS.TXT (diff)llvm.src/CREDITS.TXT
Revision 354382 by jsji:
PowerPC: Fix typos in comments
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/P9InstrResources.td (diff)llvm.src/lib/Target/PowerPC/P9InstrResources.td
Revision 354381 by andrewscheidecker:
[ConstantFold] Fix misfolding fcmp of a ConstantExpr NaN with itself.

The code incorrectly inferred that the relationship of a constant expression
to itself is FCMP_OEQ (ordered and equal), when it's actually FCMP_UEQ
(unordered *or* equal). This change corrects that, and adds some more limited
folds that can be done in this case.

Differential revision: https://reviews.llvm.org/D51216
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/ConstantFold.cpp (diff)llvm.src/lib/IR/ConstantFold.cpp
The file was modified/llvm/trunk/test/Transforms/ConstProp/bitcast.ll (diff)llvm.src/test/Transforms/ConstProp/bitcast.ll
Revision 354380 by andrewscheidecker:
[ConstantFold] Fix misfolding of icmp with a bitcast FP second operand.

In the process of trying to eliminate the bitcast, this was producing a
malformed icmp with FP operands.

Differential revision: https://reviews.llvm.org/D51215
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/ConstantFold.cpp (diff)llvm.src/lib/IR/ConstantFold.cpp
The file was modified/llvm/trunk/test/Transforms/ConstProp/bitcast.ll (diff)llvm.src/test/Transforms/ConstProp/bitcast.ll
Revision 354379 by Vedant Kumar:
[llvm-cov] Add support for gcov --hash-filenames option

The patch adds support for --hash-filenames to llvm-cov. This option adds md5
hash of the source path to the name of the generated .gcov file. The option is
crucial for cases where you have multiple files with the same name but can't
use --preserve-paths as resulting filenames exceed the limit.

from gcov(1):

```
-x
--hash-filenames
    By default, gcov uses the full pathname of the source files to to
    create an output filename.  This can lead to long filenames that
    can overflow filesystem limits.  This option creates names of the
    form source-file##md5.gcov, where the source-file component is
    the final filename part and the md5 component is calculated from
    the full mangled name that would have been used otherwise.
```

Patch by Igor Ignatev!

Differential Revision: https://reviews.llvm.org/D58370
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/llvm-cov.rst (diff)llvm.src/docs/CommandGuide/llvm-cov.rst
The file was modified/llvm/trunk/include/llvm/ProfileData/GCOV.h (diff)llvm.src/include/llvm/ProfileData/GCOV.h
The file was modified/llvm/trunk/lib/ProfileData/GCOV.cpp (diff)llvm.src/lib/ProfileData/GCOV.cpp
The file was added/llvm/trunk/test/tools/llvm-cov/Inputs/test_hash.outputllvm.src/test/tools/llvm-cov/Inputs/test_hash.output
The file was modified/llvm/trunk/test/tools/llvm-cov/llvm-cov.test (diff)llvm.src/test/tools/llvm-cov/llvm-cov.test
The file was modified/llvm/trunk/tools/llvm-cov/gcov.cpp (diff)llvm.src/tools/llvm-cov/gcov.cpp
Revision 354378 by andrewscheidecker:
Testing commit access
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/README.txt (diff)llvm.src/README.txt
Revision 354377 by Vitaly Buka:
[msan] Remove cxa_atexit_race.cc

Summary:
The goal of the test to check that msan does not crash when code is racy on __cxa_atexit. Original crash was caused by race condition in the glibc. With
the msan patch the msan does not crashes however the race is still there and the test triggers it.

Because the test relies on triggering of undefined behavior results are not
very predictable and it may occasionally crashes or hangs.

I don't see how to reasonably improve the test, so I remove it.

Reviewers: eugenis, peter.smith

Subscribers: jfb, jdoerfert, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D58396
Change TypePath in RepositoryPath in Workspace
The file was removed/compiler-rt/trunk/test/msan/cxa_atexit_race.cccompiler-rt.src/test/msan/cxa_atexit_race.cc
Revision 354376 by ctopper:
[X86] Don't consider functions ABI compatible for ArgumentPromotion pass if they view 512-bit vectors differently.

The use of the -mprefer-vector-width=256 command line option mixed with functions
using vector intrinsics can create situations where one function thinks 512 vectors
are legal, but another fucntion does not.

If a 512 bit vector is passed between them via a pointer, its possible ArgumentPromotion
might try to pass by value instead. This will result in type legalization for the two
functions handling the 512 bit vector differently leading to runtime failures.

Had the 512 bit vector been passed by value from clang codegen, both functions would
have been tagged with a min-legal-vector-width=512 function attribute. That would
make them be legalized the same way.

I observed this issue in 32-bit mode where a union containing a 512 bit vector was
being passed by a function that used intrinsics to one that did not. The caller
ended up passing in zmm0 and the callee tried to read it from ymm0 and ymm1.

The fix implemented here is just to consider it a mismatch if two functions
would handle 512 bit differently without looking at the types that are being
considered. This is the easist and safest fix, but it can be improved in the future.

Differential Revision: https://reviews.llvm.org/D58390
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp (diff)llvm.src/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.h (diff)llvm.src/lib/Target/X86/X86TargetTransformInfo.h
The file was added/llvm/trunk/test/Transforms/ArgumentPromotion/X86/min-legal-vector-width.llllvm.src/test/Transforms/ArgumentPromotion/X86/min-legal-vector-width.ll
Revision 354375 by ormris:
Revert "Revert "[llvm-objdump] Allow short options without arguments to be grouped""

  - Tests that use multiple short switches now test them grouped and ungrouped.

  - Ensure the output of ungrouped and grouped variants is identical

Differential Revision: https://reviews.llvm.org/D57904
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objdump/AArch64/macho-fat-arm-disasm.test (diff)llvm.src/test/tools/llvm-objdump/AArch64/macho-fat-arm-disasm.test
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/disasm-specific-funcs.test (diff)llvm.src/test/tools/llvm-objdump/X86/disasm-specific-funcs.test
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/macho-disassembly-g-dsym.test (diff)llvm.src/test/tools/llvm-objdump/X86/macho-disassembly-g-dsym.test
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/out-of-section-sym.test (diff)llvm.src/test/tools/llvm-objdump/X86/out-of-section-sym.test
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll (diff)llvm.src/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll
The file was added/llvm/trunk/test/tools/llvm-objdump/option-grouping.testllvm.src/test/tools/llvm-objdump/option-grouping.test
The file was modified/llvm/trunk/tools/llvm-objdump/MachODump.cpp (diff)llvm.src/tools/llvm-objdump/MachODump.cpp
The file was modified/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (diff)llvm.src/tools/llvm-objdump/llvm-objdump.cpp
Revision 354374 by dsanders:
Fix builds for older macOS deployment targets after r354365

Surprisingly, check_symbol_exists is not sufficient. The macOS linker checks the
called functions against a compatibility list for the given deployment target
and check_symbol_exists doesn't trigger this check as it never calls the
function.

This fixes the GreenDragon bots where the deployment target is 10.9
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (diff)llvm.src/cmake/modules/HandleLLVMOptions.cmake
Revision 354373 by kcc:
[sanitizers] add a regression test for the bug fixed in r354366
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc (diff)compiler-rt.src/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc
Revision 354366 by kcc:
[sanitizer] fix a memory safety bug (!!!) in sanitizer suppressions code, discovered by Aaron Jacobs
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_suppressions.cc
Revision 354365 by dsanders:
Annotate timeline in Instruments with passes and other timed regions.

Summary:
Instruments is a useful tool for finding performance issues in LLVM but it can
be difficult to identify regions of interest on the timeline that we can use
to filter the profiler or allocations instrument. Xcode 10 and the latest
macOS/iOS/etc. added support for the os_signpost() API which allows us to
annotate the timeline with information that's meaningful to LLVM.

This patch causes timer start and end events to emit signposts. When used with
-time-passes, this causes the passes to be annotated on the Instruments timeline.
In addition to visually showing the duration of passes on the timeline, it also
allows us to filter the profile and allocations instrument down to an individual
pass allowing us to find the issues within that pass without being drowned out
by the noise from other parts of the compiler.

Using this in conjunction with the Time Profiler (in high frequency mode) and
the Allocations instrument is how I found the SparseBitVector that should have
been a BitVector and the DenseMap that could be replaced by a sorted vector a
couple months ago. I added NamedRegionTimers to TableGen and used the resulting
annotations to identify the slow portions of the Register Info Emitter. Some of
these were placed according to educated guesses while others were placed
according to hot functions from a previous profile. From there I filtered the
profile to a slow portion and the aforementioned issues stood out in the
profile.

To use this feature enable LLVM_SUPPORT_XCODE_SIGNPOSTS in CMake and run the
compiler under Instruments with -time-passes like so:
  instruments -t 'Time Profiler' bin/llc -time-passes -o - input.ll'
Then open the resulting trace in Instruments.

There was a talk at WWDC 2018 that explained the feature which can be found at
https://developer.apple.com/videos/play/wwdc2018/405/ if you'd like to know
more about it.

Reviewers: bogner

Reviewed By: bogner

Subscribers: jdoerfert, mgorny, kristina, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D52954
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (diff)llvm.src/cmake/modules/HandleLLVMOptions.cmake
The file was modified/llvm/trunk/include/llvm/Config/config.h.cmake (diff)llvm.src/include/llvm/Config/config.h.cmake
The file was added/llvm/trunk/include/llvm/Support/Signposts.hllvm.src/include/llvm/Support/Signposts.h
The file was modified/llvm/trunk/lib/Support/CMakeLists.txt (diff)llvm.src/lib/Support/CMakeLists.txt
The file was added/llvm/trunk/lib/Support/Signposts.cppllvm.src/lib/Support/Signposts.cpp
The file was modified/llvm/trunk/lib/Support/Timer.cpp (diff)llvm.src/lib/Support/Timer.cpp
Revision 354364 by rupprecht:
[libObject][NFC] Use sys::path::convert_to_slash.

Summary: As suggested in rL353995

Reviewers: compnerd

Reviewed By: compnerd

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58298
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Object/ArchiveWriter.cpp (diff)llvm.src/lib/Object/ArchiveWriter.cpp
Revision 354363 by rksimon:
[X86][SSE] Generalize X86ISD::BLENDI support to more value types

D42042 introduced the ability for the ExecutionDomainFixPass to more easily change between BLENDPD/BLENDPS/PBLENDW as the domains required.

With this ability, we can avoid most bitcasts/scaling in the DAG that was occurring with X86ISD::BLENDI lowering/combining, blend with the vXi32/vXi64 vectors directly and use isel patterns to lower to the float vector equivalent vectors.

This helps the shuffle combining and SimplifyDemandedVectorElts be more aggressive as we lose track of fewer UNDEF elements than when we go up/down through bitcasts.

I've introduced a basic blend(bitcast(x),bitcast(y)) -> bitcast(blend(x,y)) fold, there are more generalizations I can do there (e.g. widening/scaling and handling the tricky v16i16 repeated mask case).

The vector-reduce-smin/smax regressions will be fixed in a future improvement to SimplifyDemandedBits to peek through bitcasts and support X86ISD::BLENDV.

Reapplied after reversion at rL353699 - AVX2 isel fix was applied at rL354358, additional test at rL354360/rL354361

Differential Revision: https://reviews.llvm.org/D57888
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/lib/Target/X86/X86InstrSSE.td (diff)llvm.src/lib/Target/X86/X86InstrSSE.td
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/combine-sdiv.ll (diff)llvm.src/test/CodeGen/X86/combine-sdiv.ll
The file was modified/llvm/trunk/test/CodeGen/X86/insertelement-ones.ll (diff)llvm.src/test/CodeGen/X86/insertelement-ones.ll
The file was modified/llvm/trunk/test/CodeGen/X86/known-signbits-vector.ll (diff)llvm.src/test/CodeGen/X86/known-signbits-vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_load.ll (diff)llvm.src/test/CodeGen/X86/masked_load.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_store.ll (diff)llvm.src/test/CodeGen/X86/masked_store.ll
The file was modified/llvm/trunk/test/CodeGen/X86/oddshuffles.ll (diff)llvm.src/test/CodeGen/X86/oddshuffles.ll
The file was modified/llvm/trunk/test/CodeGen/X86/packss.ll (diff)llvm.src/test/CodeGen/X86/packss.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/prefer-avx256-mask-shuffle.ll (diff)llvm.src/test/CodeGen/X86/prefer-avx256-mask-shuffle.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse2.ll (diff)llvm.src/test/CodeGen/X86/sse2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-smax.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-smax.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-smin.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-smin.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-256.ll (diff)llvm.src/test/CodeGen/X86/vector-shift-ashr-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v8.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-128-v8.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v16.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-256-v16.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v32.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-256-v32.ll
Revision 354362 by serge_sans_paille:
[NFC] Remove unused headers in Optional.h
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
Revision 354361 by rksimon:
Fix stupid assembly comment typo
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/commute-blend-sse41.ll (diff)llvm.src/test/CodeGen/X86/commute-blend-sse41.ll
Revision 354360 by rksimon:
[X86][SSE] Add pblendw commuted load test case

Reduced test case for the regression caused in D57888/rL353610
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/commute-blend-sse41.ll (diff)llvm.src/test/CodeGen/X86/commute-blend-sse41.ll
Revision 354359 by nikic:
[SDAG] Use shift amount type in MULO promotion; NFC

Directly use the correct shift amount type if it is possible, and
future-proof the code against vectors. The added test makes sure that
bitwidths that do not fit into the shift amount type do not assert.

Split out from D57997.
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/test/CodeGen/X86/umul-with-overflow.ll (diff)llvm.src/test/CodeGen/X86/umul-with-overflow.ll
Revision 354358 by rksimon:
[X86][AVX2] Hide VPBLENDD instructions behind AVX2 predicate

This was the cause of the regression in D57888 - the commuted load pattern wasn't hidden by the predicate so once we enabled v4i32 blends on SSE41+ targets then isel was incorrectly matched against AVX2+ instructions.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.td (diff)llvm.src/lib/Target/X86/X86InstrSSE.td
Revision 354357 by ctopper:
[X86] Bugfix for nullptr check by klocwork

klocwork critical issues in CG files:

Patch by Xiang Zhang (xiangzhangllvm)

Differential Revision: https://reviews.llvm.org/D58363
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86DiscriminateMemOps.cpp (diff)llvm.src/lib/Target/X86/X86DiscriminateMemOps.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstructionSelector.cpp (diff)llvm.src/lib/Target/X86/X86InstructionSelector.cpp
Revision 354356 by ctopper:
X86AsmParser AVX-512: Return error instead of hitting assert

When parsing a sequence of tokens beginning with {, it will hit an assert and crash if the token afterwards is not an identifier. Instead of this, return a more verbose error as seen elsewhere in the function.

Patch by Brandon Jones (BrandonTJones)

Differential Revision: https://reviews.llvm.org/D57375
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (diff)llvm.src/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modified/llvm/trunk/test/MC/X86/avx512-err.s (diff)llvm.src/test/MC/X86/avx512-err.s
Revision 354355 by ctopper:
[X86] Filter out tuning feature flags and a few ISA feature flags when checking for function inline compatibility.

Tuning flags don't have any effect on the available instructions so aren't a good reason to prevent inlining.

There are also some ISA flags that don't have any intrinsics our ABI requirements that we can exclude. I've put only the most basic ones like cmpxchg16b and lahfsahf. These are interesting because they aren't present in all 64-bit CPUs, but we have codegen workarounds when they aren't present.

Loosening these checks can help with scenarios where a caller has a more specific CPU than a callee. The default tuning flags on our generic 'x86-64' CPU can currently make it inline compatible with other CPUs. I've also added an example test for 'nocona' and 'prescott' where 'nocona' is just a 64-bit capable version of 'prescott' but in 32-bit mode they should be completely compatible.

I've based the implementation here of the similar code in AMDGPU.

Differential Revision: https://reviews.llvm.org/D58371
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp (diff)llvm.src/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.h (diff)llvm.src/lib/Target/X86/X86TargetTransformInfo.h
The file was added/llvm/trunk/test/Transforms/Inline/X86/inline-target-cpu-i686.llllvm.src/test/Transforms/Inline/X86/inline-target-cpu-i686.ll
The file was added/llvm/trunk/test/Transforms/Inline/X86/inline-target-cpu-x86_64.llllvm.src/test/Transforms/Inline/X86/inline-target-cpu-x86_64.ll
Revision 354354 by arsenm:
GlobalISel: Implement moreElementsVector for select
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
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-select.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
Revision 354353 by hans:
index.rst: Remove bb-chapuni from list of IRC bots
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/index.rst (diff)llvm.src/docs/index.rst
Revision 354352 by hans:
index.rst: Remove Dragonegg link
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/index.rst (diff)llvm.src/docs/index.rst
Revision 354351 by hans:
Remove extraneous space in MSVC-style diagnostic output

There was an extra space between the file location and the diagnostic
message:

  /tmp/a.c(1,12):  warning: unused parameter 'unused'

the tests didn't catch this due to FileCheck not running in --strict-whitespace mode.

Reported by Marco: http://lists.llvm.org/pipermail/cfe-dev/2019-February/061326.html

Differential revision: https://reviews.llvm.org/D58377
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/TextDiagnostic.cpp (diff)clang.src/lib/Frontend/TextDiagnostic.cpp
The file was modified/cfe/trunk/test/Misc/diag-format.c (diff)clang.src/test/Misc/diag-format.c
Revision 354350 by phosek:
[compiler-rt][CMake] Set project for the custom libc++

This is another follow up to r354212 which is broken on Darwin when
cross-compiling runtimes to Linux when it ignores the -fuse-ld=lld
linker flag and attempts to use the host linker when performing the
compiler identification. Upon investigation, I noticed that setting
the project with appropriate list of languages makes the error go
away and it shouldn't hurt either.

Differential Revision: https://reviews.llvm.org/D58372
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/CustomLibcxx/CMakeLists.txt (diff)compiler-rt.src/cmake/Modules/CustomLibcxx/CMakeLists.txt
Revision 354349 by ibiryukov:
[clangd] Add an option in the code to not display number of fixes

Summary:
Only to the APIs, which are used by our embedders.
We do not plan to add a user-facing option for this.

Reviewers: sammccall, ioeric

Reviewed By: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58387
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/Diagnostics.cpp (diff)clang-tools-extra.src/clangd/Diagnostics.cpp
The file was modified/clang-tools-extra/trunk/clangd/Diagnostics.h (diff)clang-tools-extra.src/clangd/Diagnostics.h
Revision 354348 by arsenm:
GlobalISel: Implement moreElementsVector for G_EXTRACT source
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
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.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
Revision 354347 by meinersbur:
[OpenMP 5.0] Parsing/sema support for map clause with mapper modifier.

This patch implements the parsing and sema support for OpenMP map
clauses with potential user-defined mapper attached. User defined mapper
is a new feature in OpenMP 5.0. A map clause can have an explicit or
implicit associated mapper, which instructs the compiler to generate
extra data mapping. An example is shown below:

    struct S { int len; int *d; };
    #pragma omp declare mapper(id: struct S s) map(s, s.d[0:s.len])
    struct S ss;
    #pragma omp target map(mapper(id) tofrom: ss) // use the mapper with name 'id' to map ss

Contributed-by: Lingda Li <lildmh@gmail.com>

Differential Revision: https://reviews.llvm.org/D58074
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/DeclOpenMP.h (diff)clang.src/include/clang/AST/DeclOpenMP.h
The file was modified/cfe/trunk/include/clang/AST/OpenMPClause.h (diff)clang.src/include/clang/AST/OpenMPClause.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (diff)clang.src/include/clang/Basic/DiagnosticParseKinds.td
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/include/clang/Basic/OpenMPKinds.def (diff)clang.src/include/clang/Basic/OpenMPKinds.def
The file was modified/cfe/trunk/include/clang/Parse/Parser.h (diff)clang.src/include/clang/Parse/Parser.h
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/AST/OpenMPClause.cpp (diff)clang.src/lib/AST/OpenMPClause.cpp
The file was modified/cfe/trunk/lib/Parse/ParseOpenMP.cpp (diff)clang.src/lib/Parse/ParseOpenMP.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cpp (diff)clang.src/lib/Sema/SemaOpenMP.cpp
The file was modified/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (diff)clang.src/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modified/cfe/trunk/lib/Sema/TreeTransform.h (diff)clang.src/lib/Sema/TreeTransform.h
The file was modified/cfe/trunk/lib/Serialization/ASTReader.cpp (diff)clang.src/lib/Serialization/ASTReader.cpp
The file was modified/cfe/trunk/lib/Serialization/ASTWriter.cpp (diff)clang.src/lib/Serialization/ASTWriter.cpp
The file was modified/cfe/trunk/test/OpenMP/declare_mapper_ast_print.c (diff)clang.src/test/OpenMP/declare_mapper_ast_print.c
The file was modified/cfe/trunk/test/OpenMP/declare_mapper_ast_print.cpp (diff)clang.src/test/OpenMP/declare_mapper_ast_print.cpp
The file was added/cfe/trunk/test/OpenMP/declare_mapper_codegen.cppclang.src/test/OpenMP/declare_mapper_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/declare_mapper_messages.c (diff)clang.src/test/OpenMP/declare_mapper_messages.c
The file was modified/cfe/trunk/test/OpenMP/declare_mapper_messages.cpp (diff)clang.src/test/OpenMP/declare_mapper_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_map_messages.cpp (diff)clang.src/test/OpenMP/target_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_parallel_for_map_messages.cpp (diff)clang.src/test/OpenMP/target_parallel_for_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_parallel_for_simd_map_messages.cpp (diff)clang.src/test/OpenMP/target_parallel_for_simd_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_parallel_map_messages.cpp (diff)clang.src/test/OpenMP/target_parallel_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_simd_map_messages.cpp (diff)clang.src/test/OpenMP/target_simd_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_map_messages.cpp (diff)clang.src/test/OpenMP/target_teams_distribute_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp (diff)clang.src/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp (diff)clang.src/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_simd_map_messages.cpp (diff)clang.src/test/OpenMP/target_teams_distribute_simd_map_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_map_messages.cpp (diff)clang.src/test/OpenMP/target_teams_map_messages.cpp
Revision 354346 by rksimon:
[X86][AVX] Update VBROADCAST folds to always use v2i64 X86vzload

The VBROADCAST combines and SimplifyDemandedVectorElts improvements mean that we now more consistently use shorter (128-bit) X86vzload input operands.

Follow up to D58053
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.td (diff)llvm.src/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.td (diff)llvm.src/lib/Target/X86/X86InstrSSE.td
The file was modified/llvm/trunk/test/CodeGen/X86/insertelement-shuffle.ll (diff)llvm.src/test/CodeGen/X86/insertelement-shuffle.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-avx2.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll
Revision 354345 by arsenm:
GlobalISel: Implement moreElementsVector for bit ops
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/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Revision 354344 by jhenderson:
[yaml2obj][obj2yaml] Remove section type range markers from allowed mappings and support hex values

yaml2obj/obj2yaml previously supported SHT_LOOS, SHT_HIOS, and
SHT_LOPROC for section types. These are simply values that delineate a
range and don't really make sense as valid values. For example if a
section has type value 0x70000000, obj2yaml shouldn't print this value
as SHT_LOPROC. Additionally, this was missing the three other range
markers (SHT_HIPROC, SHT_LOUSER and SHT_HIUSER).

This change removes these three range markers. It also adds support for
specifying the type as an integer, to allow section types that LLVM
doesn't know about.

Reviewed by: grimar

Differential Revision: https://reviews.llvm.org/D58383
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
The file was added/llvm/trunk/test/tools/obj2yaml/section-type.yamlllvm.src/test/tools/obj2yaml/section-type.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/section-type.yamlllvm.src/test/tools/yaml2obj/section-type.yaml
Revision 354343 by rksimon:
Cast from SDValue directly instead of superfluous getNode(). NFCI.
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 354342 by arsenm:
GlobalISel: Verify g_insert
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/MachineVerifier.cpp (diff)llvm.src/lib/CodeGen/MachineVerifier.cpp
The file was added/llvm/trunk/test/MachineVerifier/test_g_insert.mirllvm.src/test/MachineVerifier/test_g_insert.mir
Revision 354340 by rksimon:
[X86][AVX] EltsFromConsecutiveLoads - Add BROADCAST lowering support

This patch adds scalar/subvector BROADCAST handling to EltsFromConsecutiveLoads.

It mainly shows codegen changes to 32-bit code which failed to handle i64 loads, although 64-bit code is also using this new path to more efficiently combine to a broadcast load.

Differential Revision: https://reviews.llvm.org/D58053
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/avx-vbroadcast.ll (diff)llvm.src/test/CodeGen/X86/avx-vbroadcast.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx2-vbroadcast.ll (diff)llvm.src/test/CodeGen/X86/avx2-vbroadcast.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-intrinsics-upgrade.ll (diff)llvm.src/test/CodeGen/X86/avx512-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll (diff)llvm.src/test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512ifma-intrinsics-upgrade.ll (diff)llvm.src/test/CodeGen/X86/avx512ifma-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512ifma-intrinsics.ll (diff)llvm.src/test/CodeGen/X86/avx512ifma-intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll (diff)llvm.src/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/i64-mem-copy.ll (diff)llvm.src/test/CodeGen/X86/i64-mem-copy.ll
The file was modified/llvm/trunk/test/CodeGen/X86/insertelement-shuffle.ll (diff)llvm.src/test/CodeGen/X86/insertelement-shuffle.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-xop.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-combining-xop.ll