FailedChanges

Summary

  1. [Attributor] Use local linkage instead of internal Local linkage is internal or private, and private is a specialization of internal, so either is fine for all our "local linkage" queries.
  2. [Attributor] Use abstract call sites for call site callback Summary: When we iterate over uses of functions and expect them to be call sites, we now use abstract call sites to allow callback calls. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, hfinkel, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67871
  3. [tsan, go] fix Go windows build Summary: Don't use weak exports when building tsan into a shared library for Go. gcc can't handle the pragmas used to make the weak references. Include files that have been added since the last update to build.bat. (We should really find a better way to list all the files needed.) Add windows version defines (WINVER and _WIN32_WINNT) to get AcquireSRWLockExclusive and ReleaseSRWLockExclusive defined. Define GetProcessMemoryInfo to use the kernel32 version. This is kind of a hack, the windows header files should do this translation for us. I think we're not in the right family partition (we're using Desktop, but that translation only happens for App and System partitions???), but hacking the family partition seems equally gross and I have no idea what the consequences of that might be. Patch by Keith Randall. Reviewers: dvyukov, vitalybuka Reviewed By: vitalybuka Subscribers: jfb, delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68599
  4. [tsan, go] break commands into multiple lines Summary: Patch by Keith Randall. Reviewers: dvyukov, vitalybuka Subscribers: delcypher, jfb, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68596
  5. [X86] Shrink zero extends of gather indices from type less than i32 to types larger than i32. Gather instructions can use i32 or i64 elements for indices. If the index is zero extended from a type smaller than i32 to i64, we can shrink the extend to just extend to i32.
  6. [X86] Add test cases for zero extending a gather index from less than i32 to i64. We should be able to use a smaller zero extend.
  7. Fix the spelling of my name.
  8. [sanitizer] Print SIGTRAP for corresponding signal Reviewers: eugenis, jfb Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D68603
  9. [tsan] Don't delay SIGTRAP handler Reviewers: eugenis, jfb Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D68604
  10. Add VFS support for sanitizers' blacklist Differential Revision: https://reviews.llvm.org/D67742
  11. [X86] Add new calling convention that guarantees tail call optimization When the target option GuaranteedTailCallOpt is specified, calls with the fastcc calling convention will be transformed into tail calls if they are in tail position. This diff adds a new calling convention, tailcc, currently supported only on X86, which behaves the same way as fastcc, except that the GuaranteedTailCallOpt flag does not need to enabled in order to enable tail call optimization. Patch by Dwight Guth <dwight.guth@runtimeverification.com>! Reviewed By: lebedev.ri, paquette, rnk Differential Revision: https://reviews.llvm.org/D67855
  12. [WebAssembly] Fix unwind mismatch stat computation Summary: There was a bug when computing the number of unwind destination mismatches in CFGStackify. When there are many mismatched calls that share the same (original) destination BB, they have to be counted separately. This also fixes a typo and runs `fixUnwindMismatches` only when the wasm exception handling is enabled. This is to prevent unnecessary computations and does not change behavior. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68552
  13. [llvm-lipo] Add TextAPI to LINK_COMPONENTS Summary: D68319 uses `MachO::getCPUTypeFromArchitecture` and without this builds with `-DBUILD_SHARED_LIBS=ON` fail. Reviewers: alexshap Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68594
  14. [Diagnostics] Emit better -Wbool-operation's warning message if we known that the result is always true
  15. [Attributor][FIX] Remove assertion wrong for on invalid IRPositions
  16. [libc++] Remove C++03 variadics in shared_ptr (v2) Summary: In my last patch (D67675) I forgot a few variadics. This patch removes the remaining make_shared and allocate_shared C++03 variadics. Reviewers: ldionne, EricWF, mclow.lists Subscribers: christof, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D68000
  17. [llvm-c] Add UnaryOperator to LLVM_FOR_EACH_VALUE_SUBCLASS macro Note that we are not sure where the tests for these functions lives. This was discussed in the Phab Diff. Differential Revision: https://reviews.llvm.org/D68588
  18. [WebAssembly] Add memory intrinsics handling to mayThrow() Summary: Previously, `WebAssembly::mayThrow()` assumed all inputs are global addresses. But when intrinsics, such as `memcpy`, `memmove`, or `memset` are lowered to external symbols in instruction selection and later emitted as library calls. And these functions don't throw. This patch adds handling to those memory intrinsics to `mayThrow` function. But while most of libcalls don't throw, we can't guarantee all of them don't throw, so currently we conservatively return true for all other external symbols. I think a better way to solve this problem is to embed 'nounwind' info in `TargetLowering::CallLoweringInfo`, so that we can access the info from the backend. This will also enable transferring 'nounwind' properties of LLVM IR instructions. Currently we don't transfer that info and we can only access properties of callee functions, if the callees are within the module. Other targets don't need this info in the backend because they do all the processing before isel, but it will help us because that info will reduce code size increase in fixing unwind destination mismatches in CFGStackify. But for now we return false for these memory intrinsics and true for all other libcalls conservatively. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68553
  19. [llvm-lipo] Relax the check of the specified input file architecture cctools lipo only compares the cputypes when it verifies that the specified (via -arch) input file and the architecture match. This diff adjusts the behavior of llvm-lipo accordingly. Differential revision: https://reviews.llvm.org/D68319 Test plan: make check-all
  20. [Attributor] Deduce memory behavior of functions and arguments Deduce the memory behavior, aka "read-none", "read-only", or "write-only", for functions and arguments. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67384
  21. [InstCombine] Fold conditional sign-extend of high-bit-extract into high-bit-extract-with-signext (PR42389) This can come up in Bit Stream abstractions. The pattern looks big/scary, but it can't be simplified any further. It only is so simple because a number of my preparatory folds had happened already (shift amount reassociation / shift amount reassociation in bit test, sign bit test detection). Highlights: * There are two main flavors: https://rise4fun.com/Alive/zWi The difference is add vs. sub, and left-shift of -1 vs. 1 * Since we only change the shift opcode, we can preserve the exact-ness: https://rise4fun.com/Alive/4u4 * There can be truncation after high-bit-extraction: https://rise4fun.com/Alive/slHc1 (the main pattern i'm after!) Which means that we need to ignore zext of shift amounts and of NBits. * The sign-extending magic can be extended itself (in add pattern via sext, in sub pattern via zext. not the other way around!) https://rise4fun.com/Alive/NhG (or those sext/zext can be sinked into `select`!) Which again means we should pay attention when matching NBits. * We can have both truncation of extraction and widening of magic: https://rise4fun.com/Alive/XTw In other words, i don't believe we need to have any checks on bitwidths of any of these constructs. This is worsened in general by the fact that we may have `sext` instead of `zext` for shift amounts, and we don't yet canonicalize to `zext`, although we should. I have not done anything about that here. Also, we really should have something to weed out `sub` like these, by folding them into `add` variant. https://bugs.llvm.org/show_bug.cgi?id=42389
  22. [InstCombine][NFC] Tests for "conditional sign-extend of high-bit-extract" pattern (PR42389) https://bugs.llvm.org/show_bug.cgi?id=42389
  23. [InstCombine] Move isSignBitCheck(), handle rest of the predicates True, no test coverage is being added here. But those non-canonical predicates that are already handled here already have no test coverage as far as i can tell. I tried to add tests for them, but all the patterns already get handled elsewhere.
  24. [InstCombine][NFC] dropRedundantMaskingOfLeftShiftInput(): change how we deal with mask Summary: Currently, we pre-check whether we need to produce a mask or not. This involves some rather magical constants. I'd like to extend this fold to also handle the situation when there's also a `trunc` before outer shift. That will require another set of magical constants. It's ugly. Instead, we can just compute the mask, and check whether mask is a pass-through (all-ones) or not. This way we don't need to have any magical numbers. This change is NFC other than the fact that we now compute the mask and then check if we need (and can!) apply it. Reviewers: spatel Reviewed By: spatel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68470
  25. [InstCombine] dropRedundantMaskingOfLeftShiftInput(): propagate undef shift amounts Summary: When we do `ConstantExpr::getZExt()`, that "extends" `undef` to `0`, which means that for patterns a/b we'd assume that we must not produce any bits for that channel, while in reality we simply didn't care about that channel - i.e. we don't need to mask it. Reviewers: spatel Reviewed By: spatel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68239
  26. [LLDB] Add LLVM 9 to the Matrix bot
  27. [Bitcode] Update naming of UNOP_NEG to UNOP_FNEG Differential Revision: https://reviews.llvm.org/D68588
  28. [AccelTable] Remove stale comment (NFC) rdar://55857228
  29. [OPENMP]Fix caonical->canonical, NFC. Fixed typo.
  30. Attempt to fix a few clang-tidy tests on Windows, see PR43593.
  31. Fix for expanding __pragmas in macro arguments Summary: Avoid parsing __pragma into an annotation token when macro arguments are pre-expanded. This is what clang currently does when parsing _Pragmas. Fixes https://bugs.llvm.org/show_bug.cgi?id=41128, where clang crashed when trying to get the length of an annotation token. Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68114
  32. gn build: try to make system-libs.windows.test pass
  33. AMDGPU/GlobalISel: Handle more G_INSERT cases Start manually writing a table to get the subreg index. TableGen should probably generate this, but I'm not sure what it looks like in the arbitrary case where subregisters are allowed to not fully cover the super-registers.
  34. GlobalISel: Partially implement lower for G_INSERT
  35. AMDGPU/GlobalISel: Fix selection of 16-bit shifts
  36. AMDGPU/GlobalISel: Select VALU G_AMDGPU_FFBH_U32
  37. AMDGPU/GlobalISel: Use S_MOV_B64 for inline constants This hides some defects in SIFoldOperands when the immediates are split.
  38. AMDGPU/GlobalISel: Widen 16-bit G_MERGE_VALUEs sources Continue making a mess of merge/unmerge legality.
Revision 373986 by jdoerfert:
[Attributor] Use local linkage instead of internal

Local linkage is internal or private, and private is a specialization of
internal, so either is fine for all our "local linkage" queries.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.hllvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cppllvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/internal-noalias.llllvm.src/test/Transforms/FunctionAttrs/internal-noalias.ll
Revision 373985 by jdoerfert:
[Attributor] Use abstract call sites for call site callback

Summary:
When we iterate over uses of functions and expect them to be call sites,
we now use abstract call sites to allow callback calls.

Reviewers: sstefan1, uenoku

Subscribers: hiraditya, bollu, hfinkel, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67871
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/CallSite.hllvm.src/include/llvm/IR/CallSite.h
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.hllvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cppllvm.src/lib/Transforms/IPO/Attributor.cpp
The file was added/llvm/trunk/test/Transforms/FunctionAttrs/callbacks.llllvm.src/test/Transforms/FunctionAttrs/callbacks.ll
Revision 373984 by Vitaly Buka:
[tsan, go] fix Go windows build

Summary:
Don't use weak exports when building tsan into a shared library for Go. gcc can't handle the pragmas used to make the weak references.

Include files that have been added since the last update to build.bat. (We should really find a better way to list all the files needed.)

Add windows version defines (WINVER and _WIN32_WINNT) to get AcquireSRWLockExclusive and ReleaseSRWLockExclusive defined.

Define GetProcessMemoryInfo to use the kernel32 version. This is kind of a hack, the windows header files should do this translation for us. I think we're not in the right family partition (we're using Desktop, but that translation only happens for App and System partitions???), but hacking the family partition seems equally gross and I have no idea what the consequences of that might be.

Patch by Keith Randall.

Reviewers: dvyukov, vitalybuka

Reviewed By: vitalybuka

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

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D68599
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_win_defs.hcompiler-rt.src/lib/sanitizer_common/sanitizer_win_defs.h
The file was modified/compiler-rt/trunk/lib/tsan/go/build.batcompiler-rt.src/lib/tsan/go/build.bat
Revision 373983 by Vitaly Buka:
[tsan, go] break commands into multiple lines

Summary: Patch by Keith Randall.

Reviewers: dvyukov, vitalybuka

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

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D68596
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/go/build.batcompiler-rt.src/lib/tsan/go/build.bat
Revision 373982 by ctopper:
[X86] Shrink zero extends of gather indices from type less than i32 to types larger than i32.

Gather instructions can use i32 or i64 elements for indices. If
the index is zero extended from a type smaller than i32 to i64, we
can shrink the extend to just extend to i32.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/masked_gather_scatter.llllvm.src/test/CodeGen/X86/masked_gather_scatter.ll
Revision 373981 by ctopper:
[X86] Add test cases for zero extending a gather index from less than i32 to i64.

We should be able to use a smaller zero extend.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/masked_gather_scatter.llllvm.src/test/CodeGen/X86/masked_gather_scatter.ll
Revision 373980 by joerg:
Fix the spelling of my name.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Proposals/GitHubMove.rstllvm.src/docs/Proposals/GitHubMove.rst
Revision 373979 by Vitaly Buka:
[sanitizer] Print SIGTRAP for corresponding signal

Reviewers: eugenis, jfb

Subscribers: #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D68603
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cppcompiler-rt.src/lib/sanitizer_common/sanitizer_posix.cpp
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap.cpp
Revision 373978 by Vitaly Buka:
[tsan] Don't delay SIGTRAP handler

Reviewers: eugenis, jfb

Subscribers: #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D68604
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors_posix.cppcompiler-rt.src/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cppcompiler-rt.src/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp
Revision 373977 by Jan Korous:
Add VFS support for sanitizers' blacklist

Differential Revision: https://reviews.llvm.org/D67742
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTContext.cppclang.src/lib/AST/ASTContext.cpp
The file was added/cfe/trunk/test/CodeGen/Inputs/sanitizer-blacklist-vfsoverlay.yamlclang.src/test/CodeGen/Inputs/sanitizer-blacklist-vfsoverlay.yaml
The file was modified/cfe/trunk/test/CodeGen/ubsan-blacklist.cclang.src/test/CodeGen/ubsan-blacklist.c
Revision 373976 by rnk:
[X86] Add new calling convention that guarantees tail call optimization

When the target option GuaranteedTailCallOpt is specified, calls with
the fastcc calling convention will be transformed into tail calls if
they are in tail position. This diff adds a new calling convention,
tailcc, currently supported only on X86, which behaves the same way as
fastcc, except that the GuaranteedTailCallOpt flag does not need to
enabled in order to enable tail call optimization.

Patch by Dwight Guth <dwight.guth@runtimeverification.com>!

Reviewed By: lebedev.ri, paquette, rnk

Differential Revision: https://reviews.llvm.org/D67855
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/BitCodeFormat.rstllvm.src/docs/BitCodeFormat.rst
The file was modified/llvm/trunk/docs/CodeGenerator.rstllvm.src/docs/CodeGenerator.rst
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/IR/CallingConv.hllvm.src/include/llvm/IR/CallingConv.h
The file was modified/llvm/trunk/lib/AsmParser/LLLexer.cppllvm.src/lib/AsmParser/LLLexer.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cppllvm.src/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLToken.hllvm.src/lib/AsmParser/LLToken.h
The file was modified/llvm/trunk/lib/CodeGen/Analysis.cppllvm.src/lib/CodeGen/Analysis.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cppllvm.src/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86CallingConv.tdllvm.src/lib/Target/X86/X86CallingConv.td
The file was modified/llvm/trunk/lib/Target/X86/X86FastISel.cppllvm.src/lib/Target/X86/X86FastISel.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86FrameLowering.cppllvm.src/lib/Target/X86/X86FrameLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86Subtarget.hllvm.src/lib/Target/X86/X86Subtarget.h
The file was added/llvm/trunk/test/CodeGen/X86/musttail-tailcc.llllvm.src/test/CodeGen/X86/musttail-tailcc.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcall-tailcc.llllvm.src/test/CodeGen/X86/tailcall-tailcc.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-calleesave.llllvm.src/test/CodeGen/X86/tailcc-calleesave.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-disable-tail-calls.llllvm.src/test/CodeGen/X86/tailcc-disable-tail-calls.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-fastcc.llllvm.src/test/CodeGen/X86/tailcc-fastcc.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-fastisel.llllvm.src/test/CodeGen/X86/tailcc-fastisel.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-largecode.llllvm.src/test/CodeGen/X86/tailcc-largecode.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-stackalign.llllvm.src/test/CodeGen/X86/tailcc-stackalign.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailcc-structret.llllvm.src/test/CodeGen/X86/tailcc-structret.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccbyval.llllvm.src/test/CodeGen/X86/tailccbyval.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccbyval64.llllvm.src/test/CodeGen/X86/tailccbyval64.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccfp.llllvm.src/test/CodeGen/X86/tailccfp.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccfp2.llllvm.src/test/CodeGen/X86/tailccfp2.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccpic1.llllvm.src/test/CodeGen/X86/tailccpic1.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccpic2.llllvm.src/test/CodeGen/X86/tailccpic2.ll
The file was added/llvm/trunk/test/CodeGen/X86/tailccstack64.llllvm.src/test/CodeGen/X86/tailccstack64.ll
The file was modified/llvm/trunk/utils/vim/syntax/llvm.vimllvm.src/utils/vim/syntax/llvm.vim
Revision 373975 by aheejin:
[WebAssembly] Fix unwind mismatch stat computation

Summary:
There was a bug when computing the number of unwind destination
mismatches in CFGStackify. When there are many mismatched calls that
share the same (original) destination BB, they have to be counted
separately.

This also fixes a typo and runs `fixUnwindMismatches` only when the wasm
exception handling is enabled. This is to prevent unnecessary
computations and does not change behavior.

Reviewers: dschuff

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68552
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cppllvm.src/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/cfg-stackify-eh.llllvm.src/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
Revision 373974 by aheejin:
[llvm-lipo] Add TextAPI to LINK_COMPONENTS

Summary:
D68319 uses `MachO::getCPUTypeFromArchitecture` and without this builds
with `-DBUILD_SHARED_LIBS=ON` fail.

Reviewers: alexshap

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68594
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-lipo/CMakeLists.txtllvm.src/tools/llvm-lipo/CMakeLists.txt
Revision 373973 by xbolva00:
[Diagnostics] Emit better -Wbool-operation's warning message if we known that the result is always true
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.tdclang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cppclang.src/lib/Sema/SemaChecking.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cppclang.src/lib/Sema/SemaExpr.cpp
The file was modified/cfe/trunk/test/Sema/warn-bitwise-negation-bool.cclang.src/test/Sema/warn-bitwise-negation-bool.c
Revision 373972 by jdoerfert:
[Attributor][FIX] Remove assertion wrong for on invalid IRPositions
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.hllvm.src/include/llvm/Transforms/IPO/Attributor.h
Revision 373971 by zoecarver:
[libc++] Remove C++03 variadics in shared_ptr (v2)

    Summary: In my last patch (D67675) I forgot a few variadics. This patch removes the remaining make_shared and allocate_shared C++03 variadics.

    Reviewers: ldionne, EricWF, mclow.lists

    Subscribers: christof, dexonsmith, libcxx-commits

    Tags: #libc

    Differential Revision: https://reviews.llvm.org/D68000
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/memorylibcxx.src/include/memory
Revision 373969 by mcinally:
[llvm-c] Add UnaryOperator to LLVM_FOR_EACH_VALUE_SUBCLASS macro

Note that we are not sure where the tests for these functions lives. This was discussed in the Phab Diff.

Differential Revision: https://reviews.llvm.org/D68588
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm-c/Core.hllvm.src/include/llvm-c/Core.h
Revision 373967 by aheejin:
[WebAssembly] Add memory intrinsics handling to mayThrow()

Summary:
Previously, `WebAssembly::mayThrow()` assumed all inputs are global
addresses. But when intrinsics, such as `memcpy`, `memmove`, or `memset`
are lowered to external symbols in instruction selection and later
emitted as library calls. And these functions don't throw.

This patch adds handling to those memory intrinsics to `mayThrow`
function. But while most of libcalls don't throw, we can't guarantee all
of them don't throw, so currently we conservatively return true for all
other external symbols.

I think a better way to solve this problem is to embed 'nounwind' info
in `TargetLowering::CallLoweringInfo`, so that we can access the info
from the backend. This will also enable transferring 'nounwind'
properties of LLVM IR instructions. Currently we don't transfer that
info and we can only access properties of callee functions, if the
callees are within the module. Other targets don't need this info in the
backend because they do all the processing before isel, but it will help
us because that info will reduce code size increase in fixing unwind
destination mismatches in CFGStackify.

But for now we return false for these memory intrinsics and true for all
other libcalls conservatively.

Reviewers: dschuff

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68553
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyUtilities.cppllvm.src/lib/Target/WebAssembly/WebAssemblyUtilities.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/cfg-stackify-eh.llllvm.src/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
Revision 373966 by alexshap:
[llvm-lipo] Relax the check of the specified input file architecture

cctools lipo only compares the cputypes when it verifies that
the specified (via -arch) input file and the architecture match.
This diff adjusts the behavior of llvm-lipo accordingly.

Differential revision: https://reviews.llvm.org/D68319

Test plan: make check-all
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-lipo/llvm-lipo.cppllvm.src/tools/llvm-lipo/llvm-lipo.cpp
Revision 373965 by jdoerfert:
[Attributor] Deduce memory behavior of functions and arguments

Deduce the memory behavior, aka "read-none", "read-only", or
"write-only", for functions and arguments.

Reviewers: sstefan1, uenoku

Subscribers: hiraditya, bollu, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67384
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.hllvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cppllvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/align.llllvm.src/test/Transforms/FunctionAttrs/align.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/arg_nocapture.llllvm.src/test/Transforms/FunctionAttrs/arg_nocapture.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/arg_returned.llllvm.src/test/Transforms/FunctionAttrs/arg_returned.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/dereferenceable.llllvm.src/test/Transforms/FunctionAttrs/dereferenceable.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/internal-noalias.llllvm.src/test/Transforms/FunctionAttrs/internal-noalias.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/liveness.llllvm.src/test/Transforms/FunctionAttrs/liveness.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/noalias_returned.llllvm.src/test/Transforms/FunctionAttrs/noalias_returned.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/nocapture.llllvm.src/test/Transforms/FunctionAttrs/nocapture.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/nofree-attributor.llllvm.src/test/Transforms/FunctionAttrs/nofree-attributor.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/nonnull.llllvm.src/test/Transforms/FunctionAttrs/nonnull.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/norecurse.llllvm.src/test/Transforms/FunctionAttrs/norecurse.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/nosync.llllvm.src/test/Transforms/FunctionAttrs/nosync.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.llllvm.src/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/readattrs.llllvm.src/test/Transforms/FunctionAttrs/readattrs.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/willreturn.llllvm.src/test/Transforms/FunctionAttrs/willreturn.ll
Revision 373964 by lebedevri:
[InstCombine] Fold conditional sign-extend of high-bit-extract into high-bit-extract-with-signext (PR42389)

This can come up in Bit Stream abstractions.

The pattern looks big/scary, but it can't be simplified any further.
It only is so simple because a number of my preparatory folds had
happened already (shift amount reassociation / shift amount
reassociation in bit test, sign bit test detection).

Highlights:
* There are two main flavors: https://rise4fun.com/Alive/zWi
  The difference is add vs. sub, and left-shift of -1 vs. 1
* Since we only change the shift opcode,
  we can preserve the exact-ness: https://rise4fun.com/Alive/4u4
* There can be truncation after high-bit-extraction:
  https://rise4fun.com/Alive/slHc1   (the main pattern i'm after!)
  Which means that we need to ignore zext of shift amounts and of NBits.
* The sign-extending magic can be extended itself (in add pattern
  via sext, in sub pattern via zext. not the other way around!)
  https://rise4fun.com/Alive/NhG
  (or those sext/zext can be sinked into `select`!)
  Which again means we should pay attention when matching NBits.
* We can have both truncation of extraction and widening of magic:
  https://rise4fun.com/Alive/XTw
  In other words, i don't believe we need to have any checks on
  bitwidths of any of these constructs.

This is worsened in general by the fact that we may have `sext` instead
of `zext` for shift amounts, and we don't yet canonicalize to `zext`,
although we should. I have not done anything about that here.

Also, we really should have something to weed out `sub` like these,
by folding them into `add` variant.

https://bugs.llvm.org/show_bug.cgi?id=42389
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineAddSub.cppllvm.src/lib/Transforms/InstCombine/InstCombineAddSub.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.llllvm.src/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.ll
Revision 373963 by lebedevri:
[InstCombine][NFC] Tests for "conditional sign-extend of high-bit-extract" pattern (PR42389)

https://bugs.llvm.org/show_bug.cgi?id=42389
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.llllvm.src/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.ll
Revision 373962 by lebedevri:
[InstCombine] Move isSignBitCheck(), handle rest of the predicates

True, no test coverage is being added here. But those non-canonical
predicates that are already handled here already have no test coverage
as far as i can tell. I tried to add tests for them, but all the patterns
already get handled elsewhere.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cppllvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineInternal.hllvm.src/lib/Transforms/InstCombine/InstCombineInternal.h
Revision 373961 by lebedevri:
[InstCombine][NFC] dropRedundantMaskingOfLeftShiftInput(): change how we deal with mask

Summary:
Currently, we pre-check whether we need to produce a mask or not.
This involves some rather magical constants.
I'd like to extend this fold to also handle the situation
when there's also a `trunc` before outer shift.
That will require another set of magical constants.
It's ugly.

Instead, we can just compute the mask, and check
whether mask is a pass-through (all-ones) or not.
This way we don't need to have any magical numbers.

This change is NFC other than the fact that we now compute
the mask and then check if we need (and can!) apply it.

Reviewers: spatel

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68470
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cppllvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
Revision 373960 by lebedevri:
[InstCombine] dropRedundantMaskingOfLeftShiftInput(): propagate undef shift amounts

Summary:
When we do `ConstantExpr::getZExt()`, that "extends" `undef` to `0`,
which means that for patterns a/b we'd assume that we must not produce
any bits for that channel, while in reality we simply didn't care
about that channel - i.e. we don't need to mask it.

Reviewers: spatel

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68239
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cppllvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-a.llllvm.src/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-a.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-b.llllvm.src/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-b.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-c.llllvm.src/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-c.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-d.llllvm.src/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-d.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-e.llllvm.src/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-e.ll
Revision 373959 by Jonas Devlieghere:
[LLDB] Add LLVM 9 to the Matrix bot
Change TypePath in RepositoryPath in Workspace
The file was modified/zorg/trunk/zorg/jenkins/jobs/jobs/lldb-cmake-matrixzorg/zorg/jenkins/jobs/jobs/lldb-cmake-matrix
Revision 373958 by mcinally:
[Bitcode] Update naming of UNOP_NEG to UNOP_FNEG

Differential Revision: https://reviews.llvm.org/D68588
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Bitcode/LLVMBitCodes.hllvm.src/include/llvm/Bitcode/LLVMBitCodes.h
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cppllvm.src/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cppllvm.src/lib/Bitcode/Writer/BitcodeWriter.cpp
Revision 373956 by Jonas Devlieghere:
[AccelTable] Remove stale comment (NFC)

rdar://55857228
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/AccelTable.hllvm.src/include/llvm/CodeGen/AccelTable.h
Revision 373952 by abataev:
[OPENMP]Fix caonical->canonical, NFC.

Fixed typo.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/StmtOpenMP.hclang.src/include/clang/AST/StmtOpenMP.h
The file was modified/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cppclang.src/lib/CodeGen/CGStmtOpenMP.cpp
Revision 373951 by nico:
Attempt to fix a few clang-tidy tests on Windows, see PR43593.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/test/clang-tidy/bugprone-branch-clone.cppclang-tools-extra.src/test/clang-tidy/bugprone-branch-clone.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/bugprone-unhandled-self-assignment.cppclang-tools-extra.src/test/clang-tidy/bugprone-unhandled-self-assignment.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/cppcoreguidelines-init-variables.cppclang-tools-extra.src/test/clang-tidy/cppcoreguidelines-init-variables.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/misc-redundant-expression.cppclang-tools-extra.src/test/clang-tidy/misc-redundant-expression.cpp
Revision 373950 by akhuang:
Fix for expanding __pragmas in macro arguments

Summary:
Avoid parsing __pragma into an annotation token when macro arguments are pre-expanded.
This is what clang currently does when parsing _Pragmas.

Fixes https://bugs.llvm.org/show_bug.cgi?id=41128, where clang crashed
when trying to get the length of an annotation token.

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68114
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Lex/Pragma.cppclang.src/lib/Lex/Pragma.cpp
The file was modified/cfe/trunk/test/Preprocessor/pragma_microsoft.cclang.src/test/Preprocessor/pragma_microsoft.c
Revision 373948 by nico:
gn build: try to make system-libs.windows.test pass
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gnllvm.src/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn
Revision 373947 by arsenm:
AMDGPU/GlobalISel: Handle more G_INSERT cases

Start manually writing a table to get the subreg index. TableGen
should probably generate this, but I'm not sure what it looks like in
the arbitrary case where subregisters are allowed to not fully cover
the super-registers.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cppllvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterInfo.cppllvm.src/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterInfo.hllvm.src/lib/Target/AMDGPU/AMDGPURegisterInfo.h
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-insert.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-insert.mir
Revision 373946 by arsenm:
GlobalISel: Partially implement lower for G_INSERT
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerHelper.hllvm.src/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cppllvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cppllvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-insert.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-insert.mir
Revision 373945 by arsenm:
AMDGPU/GlobalISel: Fix selection of 16-bit shifts
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.tdllvm.src/lib/Target/AMDGPU/VOP2Instructions.td
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.s16.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.s16.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.s16.mir
Revision 373944 by arsenm:
AMDGPU/GlobalISel: Select VALU G_AMDGPU_FFBH_U32
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP1Instructions.tdllvm.src/lib/Target/AMDGPU/VOP1Instructions.td
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgpu-ffbh-u32.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgpu-ffbh-u32.mir
Revision 373943 by arsenm:
AMDGPU/GlobalISel: Use S_MOV_B64 for inline constants

This hides some defects in SIFoldOperands when the immediates are
split.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cppllvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-constant.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-constant.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-smrd.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-smrd.mir
Revision 373942 by arsenm:
AMDGPU/GlobalISel: Widen 16-bit G_MERGE_VALUEs sources

Continue making a mess of merge/unmerge legality.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cppllvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant-32bit.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant-32bit.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir