#
a44b7322 |
| 03-Nov-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Split lambda into 2 parts for further reuse
|
#
f847094c |
| 03-Nov-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[IndVars] Use knowledge about execution on last iteration when removing checks
If we know that some check will not be executed on the last iteration, we can use this fact to eliminate its check.
Di
[IndVars] Use knowledge about execution on last iteration when removing checks
If we know that some check will not be executed on the last iteration, we can use this fact to eliminate its check.
Differential Revision: https://reviews.llvm.org/D88210 Reviwed By: ebrevnov
show more ...
|
#
bd341baf |
| 30-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Simplify code in IndVars
|
#
160a4531 |
| 28-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
Return "[IndVars] Remove monotonic checks with unknown exit count"
This reverts commit e038b60d9169733367393f733058f0ff23c28d3f. This reverts commit a0d84d80315d0c725b5efcd889928bad1171ba56.
This r
Return "[IndVars] Remove monotonic checks with unknown exit count"
This reverts commit e038b60d9169733367393f733058f0ff23c28d3f. This reverts commit a0d84d80315d0c725b5efcd889928bad1171ba56.
This revert was a mistake. The reason of the failures was "Use uint64_t for branch weights instead of uint32_t"
Differential Revision: https://reviews.llvm.org/D87832
show more ...
|
#
e038b60d |
| 27-Oct-2020 |
Raphael Isemann <teemperor@gmail.com> |
Revert "[IndVars] Remove monotonic checks with unknown exit count"
This reverts commit c6ca26c0bfedb8f80d6f8cb9adde25b1d6aac1c5. This breaks stage2 builds due to hitting this assert: ``` Assertio
Revert "[IndVars] Remove monotonic checks with unknown exit count"
This reverts commit c6ca26c0bfedb8f80d6f8cb9adde25b1d6aac1c5. This breaks stage2 builds due to hitting this assert: ``` Assertion failed: (WeightSum <= UINT32_MAX && "Expected weights to scale down to 32 bits"), function calcMetadataWeights ``` when compiling AArch64RegisterBankInfo.cpp in LLVM.
show more ...
|
#
a0d84d80 |
| 27-Oct-2020 |
Raphael Isemann <teemperor@gmail.com> |
Revert "[NFC] Factor away lambda's redundant parameter"
This reverts commit fdc845b36130d162e5a66e427bf69b2c37b6c6bb. It seems to be a follow-up to c6372b3fb495 which will be reverted.
|
#
fdc845b3 |
| 27-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Factor away lambda's redundant parameter
|
#
c6ca26c0 |
| 27-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[IndVars] Remove monotonic checks with unknown exit count
Even if the exact exit count is unknown, we can still prove that this exit will not be taken. If we can prove that the predicate is monotoni
[IndVars] Remove monotonic checks with unknown exit count
Even if the exact exit count is unknown, we can still prove that this exit will not be taken. If we can prove that the predicate is monotonic, fulfilled on first & last iteration, and no overflow happened in between, then the check can be removed.
Differential Revision: https://reviews.llvm.org/D87832 Reviewed By: apilipenko
show more ...
|
#
bfabd787 |
| 26-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
Fix broken build after previous commit
|
#
cdccc82f |
| 26-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Remove unused funciton param
|
#
4b5e848b |
| 26-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Factor out common code into lambda for further improvement
|
#
c0190990 |
| 26-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[IndVars] Use contextual knowledge when proving trivial conds
No exact example where it would help, but it's a generally a more powerful way to prove predicates.
|
#
6e574abf |
| 23-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[SCEV][NFC] Cache symbolic max exit count
We want to have a caching version of symbolic BE exit count rather than recompute it every time we need it.
Differential Revision: https://reviews.llvm.org
[SCEV][NFC] Cache symbolic max exit count
We want to have a caching version of symbolic BE exit count rather than recompute it every time we need it.
Differential Revision: https://reviews.llvm.org/D89954 Reviewed By: nikic, efriedma
show more ...
|
#
b740899c |
| 16-Oct-2020 |
Benjamin Kramer <benny.kra@googlemail.com> |
[Indvars][NFCI] Simplify assertion.
This should be semantically identical. Also avoids unused variable warnings in Release builds.
|
#
08570290 |
| 16-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[Indvars][NFC] Merge two functions together
Logic of widenWithVariantUse is split into check and transform part, unlike any other transform in IndVars. We want to pass some extra flags from analysis
[Indvars][NFC] Merge two functions together
Logic of widenWithVariantUse is split into check and transform part, unlike any other transform in IndVars. We want to pass some extra flags from analysis to transform part and standartize the code at once, so merging them together.
show more ...
|
#
bb39372e |
| 16-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[Indvars][NFCI] Remove meaningless restrictive code in IndVars
Variable ExtendOperExpr only exists to check whether it is a SCEV ext. We create it as SCEV ext right here, so semantically this check
[Indvars][NFCI] Remove meaningless restrictive code in IndVars
Variable ExtendOperExpr only exists to check whether it is a SCEV ext. We create it as SCEV ext right here, so semantically this check is trivially true. In theory, it may fail if SCEV is smart enough and can simplify the expression. However, no matter whether it is an ext or not, we never use this fact for further reasoning. So this code is currently useless and in theory may become harmful with SCEV's development.
We do not expect any behavior changes with removing it. If it caused negative changes, the patch should be reverted.
show more ...
|
#
0ee0c7dc |
| 16-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[Indvars][NFC] Remove duplicating checks
Some facts have already been checked in widenWithVariantUse and then checked again in widenWithVariantUseCodegen. The latter is redundant, we can replace it
[Indvars][NFC] Remove duplicating checks
Some facts have already been checked in widenWithVariantUse and then checked again in widenWithVariantUseCodegen. The latter is redundant, we can replace it with asserts.
show more ...
|
#
225df719 |
| 09-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Add option to disable IV widening if needed
IV widening is sometimes a strictly harmful transform (some examples of this are shown in tests 11, 12 in widen-loop-comp.ll). One of the reasons of
[NFC] Add option to disable IV widening if needed
IV widening is sometimes a strictly harmful transform (some examples of this are shown in tests 11, 12 in widen-loop-comp.ll). One of the reasons of this is that sometimes SCEV fails to prove some facts after part of guards has been widened.
Though each single such case looks like a bug that can be addressed, it seems that disabling of IV widening may be profitable in some cases. We want to have an option to do so. By default, existing behavior is preserved and IV widening is on.
show more ...
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6 |
|
#
fba42aea |
| 07-Oct-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Use getZero instead of getConstant(0)
|
Revision tags: llvmorg-11.0.0-rc5 |
|
#
e862e78b |
| 29-Sep-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Use assert instead of checking the guaranteed condition
From preconditions it is known that either A dominates B or B dominates A. If A does not dominate B, we do not really need to check it.
[NFC] Use assert instead of checking the guaranteed condition
From preconditions it is known that either A dominates B or B dominates A. If A does not dominate B, we do not really need to check it. Assert should be enough. Should save some compile time.
show more ...
|
#
d266fd96 |
| 29-Sep-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[IndVars] Remove exiting conditions that are trivially true/false
When removing exiting loop conditions, we only consider checks for which we know the exact exit count. We could also eliminate check
[IndVars] Remove exiting conditions that are trivially true/false
When removing exiting loop conditions, we only consider checks for which we know the exact exit count. We could also eliminate checks for which the condition is always true/false.
Differential Revision: https://reviews.llvm.org/D87344 Reviewed By: lebedev.ri, reames
show more ...
|
Revision tags: llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
#
25ce1e04 |
| 08-Sep-2020 |
Juneyoung Lee <aqjune@gmail.com> |
[ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions
This patch adds isGuaranteedNotToBePoison and programUndefinedIfUndefOrPoison.
isGuaranteedNotToBePoison will be used at
[ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions
This patch adds isGuaranteedNotToBePoison and programUndefinedIfUndefOrPoison.
isGuaranteedNotToBePoison will be used at D75808. The latter function is used at isGuaranteedNotToBePoison.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D84242
show more ...
|
#
795e4ee9 |
| 09-Sep-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Move functon from IndVarSimplify to SCEV
This function can be reused in other places.
Differential Revision: https://reviews.llvm.org/D87274 Reviewed By: fhahn, lebedev.ri
|
Revision tags: llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init |
|
#
6d247f98 |
| 15-Jul-2020 |
Chen Zheng <czhengsz@cn.ibm.com> |
[SCEV][IndVarSimplify] insert point should not be block front.
Recommit after removing the unused cast instructions.
Differential Revision: https://reviews.llvm.org/D80975
|
#
c86c1e97 |
| 15-Jul-2020 |
Chen Zheng <czhengsz@cn.ibm.com> |
[IndVarSimplify] Uniformly use emplace_back for DeadInsts, nfc
|