#
74d6ce5d |
| 06-Jul-2021 |
Eli Friedman <efriedma@quicinc.com> |
[ScalarEvolution] Make getMinusSCEV() fail for unrelated pointers.
As part of making ScalarEvolution's handling of pointers consistent, we want to forbid multiplying a pointer by -1 (or any other va
[ScalarEvolution] Make getMinusSCEV() fail for unrelated pointers.
As part of making ScalarEvolution's handling of pointers consistent, we want to forbid multiplying a pointer by -1 (or any other value). This means we can't blindly subtract pointers.
There are a few ways we could deal with this: 1. We could completely forbid subtracting pointers in getMinusSCEV() 2. We could forbid subracting pointers with different pointer bases (this patch). 3. We could try to ptrtoint pointer operands.
The option in this patch is more friendly to non-integral pointers: code that works with normal pointers will also work with non-integral pointers. And it seems like there are very few places that actually benefit from the third option.
As a minimal patch, the ScalarEvolution implementation of getMinusSCEV still ends up subtracting pointers if they have the same base. This should eliminate the shared pointer base, but eventually we'll need to rewrite it to avoid negating the pointer base. I plan to do this as a separate step to allow measuring the compile-time impact.
This doesn't cause obvious functional changes in most cases; the one case that is significantly affected is ICmpZero handling in LSR (which is the source of almost all the test changes). The resulting changes seem okay to me, but suggestions welcome. As an alternative, I tried explicitly ptrtoint'ing the operands, but the result doesn't seem obviously better.
I deleted the test lsr-undef-in-binop.ll becuase I couldn't figure out how to repair it to test what it was actually trying to test.
Differential Revision: https://reviews.llvm.org/D104806
show more ...
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
#
6a6e3821 |
| 09-Jan-2021 |
Kazu Hirata <kazu@google.com> |
[llvm] Drop unnecessary make_range (NFC)
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6 |
|
#
dca4b713 |
| 03-Oct-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[Analysis] resolveAllCalls - fix use after std::move warning. NFCI.
We can't use Use.Calls after its std::move()'d to TmpCalls as it will be in an undefined state. Instead, swap with the known empty
[Analysis] resolveAllCalls - fix use after std::move warning. NFCI.
We can't use Use.Calls after its std::move()'d to TmpCalls as it will be in an undefined state. Instead, swap with the known empty map in TmpCalls so we can then safely emplace_back into the now empty Use.Calls.
Fixes clang static analyzer warning.
show more ...
|
Revision tags: llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
#
97bfac07 |
| 19-Sep-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Replace auto with type
Fixes static analyzer is warning.
|
Revision tags: llvmorg-11.0.0-rc2 |
|
#
3b348d91 |
| 14-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Move out sort from the loop
|
#
47552a61 |
| 06-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety] Change how callee searched in index
Handle other than local linkage types.
|
#
fc4fd898 |
| 14-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety] Use ValueInfo in ParamAccess::Call
This avoid GUID lookup in Index.findSummaryInModule. Follow up for D81242.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D
[StackSafety] Use ValueInfo in ParamAccess::Call
This avoid GUID lookup in Index.findSummaryInModule. Follow up for D81242.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D85269
show more ...
|
#
891b2be8 |
| 14-Aug-2020 |
Matt Morehouse <mascasa@google.com> |
Revert "[NFC][StackSafety] Move out sort from the loop"
This reverts commit 0426e28419799c35cf52fe3d773c5bab9928c699 due to ASan buildbot failure.
|
#
4c30d4b4 |
| 14-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Change map key comparison
|
#
0426e284 |
| 14-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Move out sort from the loop
|
#
798eb71c |
| 14-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Dedup callees
|
#
1970eefb |
| 08-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Add a couple of early returns
|
#
8d91ce8f |
| 08-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Count dataflow inputs
|
#
dee812a2 |
| 08-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety] Fix union which produces wrapped sets
|
#
a6feeb1c |
| 08-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Avoid assert in getBaseObjec
|
#
3a34228b |
| 08-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety] Don't keep FullSet in index
Optimization. Missing record is enterpreted as FullSet anyway.
|
#
648228bc |
| 07-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[NFC][StackSafety] Fix statistics
|
#
7d499603 |
| 07-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety,NFC] Add Stats counters
|
#
7fb9de2c |
| 07-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety,NFC] Fix tests in debug
|
#
58b95c9b |
| 06-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety,NFC] Add debug counters
|
#
92dcf12b |
| 06-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety,NFC] Use CHECK-EMPTY in tests
|
#
5c6d9b2b |
| 07-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[LTO,NFC] Skip generateParamAccessSummary when empty
addGlobalValueSummary can check newly added FunctionSummary and set HasParamAccess to mark that generateParamAccessSummary is needed.
Reviewed B
[LTO,NFC] Skip generateParamAccessSummary when empty
addGlobalValueSummary can check newly added FunctionSummary and set HasParamAccess to mark that generateParamAccessSummary is needed.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D85182
show more ...
|
#
08cf4965 |
| 02-Aug-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety, NFC] Don't insert empty objects into the map
Result should be the same but it makes generateParamAccessSummary 5x faster.
|
Revision tags: llvmorg-11.0.0-rc1, llvmorg-12-init |
|
#
9ce98312 |
| 10-Jul-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
StackSafetyAnalysis.cpp - pass ConstantRange arg as const reference.
Avoids unnecessary copies and silences clang tidy warning - we do this in most places, there are just a few that were missed.
|
#
e38727a0 |
| 09-Jul-2020 |
Vitaly Buka <vitalybuka@google.com> |
[StackSafety,NFC] Update documentation
It's follow up for D80908
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D82941
|