SuccessChanges

Summary

  1. Testuite: Support Asan test with remote testing (details)
  2. [JITLink] Refactor EH-frame handling to support eh-frames with existing (details)
  3. [ConstantRange] TestAddWithNo*WrapExhaustive: check that all overflow (details)
  4. [ConstantRange] Cleanup addWithNoWrap() by just piggybacking on (details)
  5. [ConstantRange] Add `subWithNoWrap()` method (details)
Commit 8243918f43c6eedc2b018c1edc9c6b72fe9b3c1e by Fred Riss
Testuite: Support Asan test with remote testing
To do so, we need to register the sanitizer libraries with the target so
that they get uploaded before running. This patch adds a helper to the
test class to this effect.
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 76aee8a389447409905c58b178b0554c9bae8a0a by Lang Hames
[JITLink] Refactor EH-frame handling to support eh-frames with existing
relocs.
Some targets (E.g. MachO/arm64) use relocations to fix some CFI record
fields in the eh-frame section. When relocations are used the initial
(pre-relocation) content of the eh-frame section can no longer be
interpreted by following the eh-frame specification. This causes errors
in the existing eh-frame parser.
This patch moves eh-frame handling into two LinkGraph passes that are
run after relocations have been parsed (but before they are applied).
The first] pass breaks up blocks in the eh-frame section into
per-CFI-record blocks, and the second parses blocks of (potentially
multiple) CFI records and adds the appropriate edges to any CFI fields
that do not have existing relocations. These passes can be run
independently of one another. By handling eh-frame splitting/fixing with
LinkGraph passes we can both re-use existing relocations for CFI record
fields and avoid applying eh-frame fixups before parsing the section
(which would complicate the linker and require extra temporary
allocations of working memory).
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
The file was addedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_ehframe.test
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h
The file was addedllvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_arm64_ehframe.o
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
Commit b5ddcb9f1e41b142f89110fc9be78b3c6997f090 by lebedev.ri
[ConstantRange] TestAddWithNo*WrapExhaustive: check that all overflow
means empty set
As disscussed in https://reviews.llvm.org/D69918 /
https://reviews.llvm.org/D67339 that is an implied postcondition, but
it's not really fully tested.
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp
Commit 365d729e1075a9391b7520306d8d9beee84d52b5 by lebedev.ri
[ConstantRange] Cleanup addWithNoWrap() by just piggybacking on
sadd_sat()/uadd_sat()
As discussed in https://reviews.llvm.org/D69918 that happens to work as
intended, and returns empty set if there is always an overflow because
we get lucky with intersection. Since there's now an explicit test for
that, let's prefer cleaner code.
The file was modifiedllvm/lib/IR/ConstantRange.cpp
Commit 7fbe5d4b2ab905792158669149ae4f547761ac9c by lebedev.ri
[ConstantRange] Add `subWithNoWrap()` method
Summary: Much like D67339, adds ConstantRange handling for when we know
no-wrap behavior of the `sub`.
Unlike addWithNoWrap(), we only get lucky re returning empty set for
signed wrap. For unsigned, we must perform overflow check manually.
A patch that makes use of this in LVI (CVP) to be posted later.
Reviewers: nikic, shchenz, efriedma
Reviewed By: nikic
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69918
The file was modifiedllvm/include/llvm/IR/ConstantRange.h
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp
The file was modifiedllvm/lib/IR/ConstantRange.cpp