- Dec 08, 2022
-
-
Leonard Chan authored
Prior to this, metadata pertaining to the size or address point offsets into a relative vtable were twice the value they should be (treating component widths as pointer width rather than 4 bytes). This prevented some vtables from being devirtualized with D134320. This ensures the correct metadata is written so whole program devirtualization can catch these remaining devirt targets. Differential Revision: https://reviews.llvm.org/D134687
-
Craig Topper authored
We don't need to store a full 64-bit immediate. The largest value used by any opcode is 20 bits. Using an int32_t shrinks the struct from 16 bytes to 8 bytes and reduces the size of the SmallVector that we use to store sequences by 64 bytes.
-
Akira Hatanaka authored
-
Roman Lebedev authored
-
Artem Belevich authored
-
Leonard Chan authored
This is unused in the android toolchain and fixes https://lab.llvm.org/buildbot/#/builders/77/builds/23883
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D139581
-
Roman Lebedev authored
``` /repositories/llvm-project/llvm/include/llvm/Transforms/IPO/Attributor.h:5076:47: note: cast one or both operands to int to silence this warning 1 warning generated. [ 89% 599/666][ 75% 00:48 + 00:15] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilderPipelines.cpp.o In file included from /repositories/llvm-project/llvm/lib/Passes/PassBuilderPipelines.cpp:42: /repositories/llvm-project/llvm/include/llvm/Transforms/IPO/Attributor.h:5076:47: warning: use of bitwise '|' with boolean operands [-Wbitwise-instead-of-logical] bool isWriteOrAssumption() const { return isWrite() | isAssumption(); } ^~~~~~~~~~~~~~~~~~~~~~~~~~ || ``` -
Keith Smiley authored
Fixes https://github.com/llvm/llvm-project/issues/59378 Differential Revision: https://reviews.llvm.org/D139563
-
Johannes Doerfert authored
Assumptions can help us reason about memory content. This patch teaches AAPointerInfo to reason about memory assumptions of the following form: ``` %x = load %ptr ... code not writing memory, may include branches ... %c = %x == %val ... code not writing memory, may include branches ... llvm.assume(%c) ``` Assumption accesses are recognized from the involved load (%x above). Assumption accesses are treated special and neither as ordinary read or write. We use read encoding with an extra flag. Reads are not impacting other reads or writes. Writes could do that. We don't want assumptions to impact other writes as they themselves only confirm a value, not write it. So the "other" write might be required as the assumption only confirms the effect of that write.
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Roman Lebedev authored
-