History log of /llvm-project/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (Results 101 – 125 of 753)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


12345678910>>...31