SuccessChanges

Summary

  1. [CVP] After proving that @llvm.with.overflow()/@llvm.sat() don't (details)
  2. [libunwind][Android] Fix findUnwindSections for ARM EHABI Bionic (details)
  3. scudo: Update TLS_SLOT_SANITIZER value. (details)
  4. [GISel][CallLowering] Make isIncomingArgumentHandler a pure virtual (details)
  5. [analyzer] Fix hidden node traversal in exploded graph dumps. (details)
  6. [analyzer] exploded-graph-rewriter: Fix dump for state 0. (details)
  7. [analyzer] Drop the logic for collapsing the state if it's same as in (details)
  8. [analyzer] Fix FieldRegion dumps. (details)
  9. [analyzer] exploded-graph-rewriter: Rename Environment to Expressions. (details)
  10. [WebAssembly] Allow multivalue signatures in object files (details)
Commit 284b6d7f4da2260d996834fd1fabec461310bc96 by lebedev.ri
[CVP] After proving that @llvm.with.overflow()/@llvm.sat() don't
overflow, also try to prove other no-wrap
Summary: CVP, unlike InstCombine, does not run till exaustion. It only
does a single pass.
When dealing with those special binops, if we prove that they can safely
be demoted into their usual binop form, we do set the no-wrap we
deduced. But when dealing with usual binops, we try to deduce both
no-wraps.
So if we convert e.g. @llvm.uadd.with.overflow() to `add nuw`, we won't
attempt to check whether it can be `add nuw nsw`.
This patch proposes to call `processBinOp()` on newly-created binop,
which is identical to what we do for div/rem already.
Reviewers: nikic, spatel, reames
Reviewed By: nikic
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69183
llvm-svn: 375273
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (diff)
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/overflows.ll (diff)
Commit 788acc6ff8ee3b2fc16a3f68179b0b445f6f4381 by rprichard
[libunwind][Android] Fix findUnwindSections for ARM EHABI Bionic
Summary: Fix the arm_section_length count. The meaning of the
arm_section_length field changed from num-of-elements to num-of-bytes
when the dl_unwind_find_exidx special case was removed (D30306 and
D30681). The special case was restored in D39468, but that patch didn't
account for the change in arm_section_length's meaning.
That patch worked when it was applied to the NDK's fork of libunwind,
because it never removed the special case in the first place, and the
special case is probably disabled in the Android platform's copy of
libunwind, because __ANDROID_API__ is greater than 21.
Turn the dl_unwind_find_exidx special case on unconditionally for
Bionic. Bionic's dl_unwind_find_exidx is much faster than using
dl_iterate_phdr.
(e.g. Bionic stores exidx info on an internal soinfo object.)
Reviewers: thomasanderson, srhines, danalbert, ed, keith.walker.arm,
mclow.lists, compnerd
Reviewed By: srhines, danalbert
Subscribers: srhines, kristof.beyls, christof, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D68972
llvm-svn: 375275
The file was modifiedlibunwind/src/AddressSpace.hpp (diff)
The file was modifiedlibunwind/src/UnwindCursor.hpp (diff)
Commit cf25242daaf876085f6f665c26fa3aa3cd502040 by peter
scudo: Update TLS_SLOT_SANITIZER value.
Android now allocates only 8 fixed TLS slots. Somehow we were getting
away with using a non-existent slot until now, but in some cases the TLS
slots were being placed at the end of a page, which led to a segfault at
startup.
Differential Revision: https://reviews.llvm.org/D69191
llvm-svn: 375276
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.h (diff)
Commit 9f9151d49410cee6aa8528b109f3753878b30ba3 by quentin.colombet
[GISel][CallLowering] Make isIncomingArgumentHandler a pure virtual
method
The default implementation of isIncomingArgumentHandler could lead to
generating incorrect code. Make it a pure virtual method, so that
targets know they have to override it to produce correct code.
NFC
Differential Revision: https://reviews.llvm.org/D69187
llvm-svn: 375277
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp (diff)
The file was modifiedllvm/lib/Target/X86/X86CallLowering.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CallLowering.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64CallLowering.cpp (diff)
Commit 7a17f197093a6872d910b7486cfd43a53aba220b by Artem Dergachev
[analyzer] Fix hidden node traversal in exploded graph dumps.
The joined nodes now actually have the same state. That was intended
from the start but the original implementation turned out to be buggy.
Differential Revision: https://reviews.llvm.org/D69150
llvm-svn: 375278
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp (diff)
The file was modifiedclang/test/Analysis/dump_egraph.c (diff)
Commit d93b810cd673d37598ed05334a662e6878c32812 by Artem Dergachev
[analyzer] exploded-graph-rewriter: Fix dump for state 0.
It shouldn't say "unspecified" when the state is specified to be empty.
llvm-svn: 375279
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/program_points.dot (diff)
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/trimmers.dot (diff)
The file was modifiedclang/utils/analyzer/exploded-graph-rewriter.py (diff)
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/edge.dot (diff)
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/node_labels.dot (diff)
Commit b3e34e043cae03e56f2a1b23eae1669e1c3be770 by Artem Dergachev
[analyzer] Drop the logic for collapsing the state if it's same as in
preds.
One of the first attempts to reduce the size of the exploded graph dumps
was to skip the state dump as long as the state is the same as in all of
the predecessor nodes. With all the new facilities in place (node
joining, diff dumps), this feature doesn't do much, and when it does,
it's more harmful than useful. Let's remove it.
llvm-svn: 375280
The file was modifiedclang/test/Analysis/dump_egraph.c (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp (diff)
Commit 2b4f6df91775a4f13233a04d3377f8233c7087f6 by Artem Dergachev
[analyzer] Fix FieldRegion dumps.
The '->' thing has always been confusing; the actual operation '->'
translates to a pointer dereference together with adding a FieldRegion,
but FieldRegion on its own doesn't imply an additional pointer
dereference.
llvm-svn: 375281
The file was modifiedclang/test/Analysis/dump_egraph.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/MemRegion.cpp (diff)
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/initializers_under_construction.cpp (diff)
The file was modifiedclang/test/Analysis/expr-inspection.c (diff)
Commit c6921379f55ee566fb62ba5aa47b217cf7c5d960 by Artem Dergachev
[analyzer] exploded-graph-rewriter: Rename Environment to Expressions.
It's less confusing for newcomers.
llvm-svn: 375282
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/environment.dot (diff)
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/escapes.c (diff)
The file was modifiedclang/utils/analyzer/exploded-graph-rewriter.py (diff)
Commit 393d0f799f8828e9d8002766a9e9db21797451df by tlively
[WebAssembly] Allow multivalue signatures in object files
Summary: Also changes the wasm YAML format to reflect the possibility of
having multiple return types and to put the returns after the params for
consistency with the binary encoding.
Reviewers: aheejin, sbc100
Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, arphaman,
rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69156
llvm-svn: 375283
The file was modifiedllvm/test/ObjectYAML/wasm/start_section.yaml (diff)
The file was modifiedlld/test/wasm/alias.ll (diff)
The file was modifiedllvm/test/MC/WebAssembly/comdat.ll (diff)
The file was modifiedllvm/test/MC/WebAssembly/weak-alias.ll (diff)
The file was modifiedllvm/test/MC/WebAssembly/type-index.s (diff)
The file was modifiedlld/test/wasm/locals-duplicate.test (diff)
The file was modifiedlld/test/wasm/call-indirect.ll (diff)
The file was modifiedllvm/test/MC/WebAssembly/types.ll (diff)
The file was modifiedlld/test/wasm/function-imports-first.ll (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/multivalue.ll (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/linking_section.yaml (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/name_section.yaml (diff)
The file was modifiedlld/test/wasm/function-index.test (diff)
The file was modifiedllvm/test/MC/WebAssembly/reloc-pic.s (diff)
The file was modifiedlld/test/wasm/Inputs/globals.yaml (diff)
The file was modifiedlld/test/wasm/function-imports.ll (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/import_memory_shared.yaml (diff)
The file was modifiedlld/test/wasm/event-section.ll (diff)
The file was modifiedlld/test/wasm/local-symbols.ll (diff)
The file was modifiedllvm/test/MC/WebAssembly/assembler-binary.ll (diff)
The file was modifiedlld/test/wasm/stack-pointer.ll (diff)
The file was modifiedllvm/include/llvm/ObjectYAML/WasmYAML.h (diff)
The file was modifiedllvm/test/tools/llvm-nm/wasm/imports.yaml (diff)
The file was modifiedllvm/test/tools/llvm-nm/wasm/weak-symbols.yaml (diff)
The file was modifiedllvm/test/MC/WebAssembly/event-section.ll (diff)
The file was modifiedllvm/lib/ObjectYAML/WasmYAML.cpp (diff)
The file was modifiedlld/test/wasm/weak-alias-overide.ll (diff)
The file was modifiedlld/test/wasm/weak-symbols.ll (diff)
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp (diff)
The file was modifiedllvm/test/Object/wasm-relocs-and-producers.yaml (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/event_section.yaml (diff)
The file was modifiedllvm/test/tools/llvm-nm/wasm/exports.yaml (diff)
The file was modifiedlld/test/wasm/gc-sections.ll (diff)
The file was modifiedlld/test/wasm/undefined-weak-call.ll (diff)
The file was modifiedllvm/lib/ObjectYAML/WasmEmitter.cpp (diff)
The file was modifiedllvm/tools/obj2yaml/wasm2yaml.cpp (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/invalid_section_order.yaml (diff)
The file was modifiedllvm/test/MC/WebAssembly/libcall.ll (diff)
The file was modifiedllvm/test/Object/wasm-duplicate-name.test (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/function_section.yaml (diff)
The file was modifiedllvm/test/MC/WebAssembly/data-section.s (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/import_section.yaml (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/weak_symbols.yaml (diff)
The file was modifiedlld/test/wasm/relocatable.ll (diff)
The file was modifiedlld/test/wasm/weak-undefined.ll (diff)
The file was modifiedllvm/test/MC/WebAssembly/external-func-address.ll (diff)
The file was modifiedlld/test/wasm/weak-alias.ll (diff)
The file was modifiedlld/test/wasm/Inputs/undefined-globals.yaml (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/code_section.yaml (diff)
The file was modifiedllvm/test/tools/llvm-readobj/wasm-imports.test (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/type_section.yaml (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/tailcall.ll (diff)
The file was modifiedllvm/test/ObjectYAML/wasm/export_section.yaml (diff)