Revision tags: llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
04210749 |
| 06-Jan-2023 |
OCHyams <orlando.hyams@sony.com> |
[DebugInfo][NFC] Rename is/setUndef to is/setKilllocation
These names better reflect the semantics and also the implementation, since it's not just "undef" operands that are sentinels used to signal
[DebugInfo][NFC] Rename is/setUndef to is/setKilllocation
These names better reflect the semantics and also the implementation, since it's not just "undef" operands that are sentinels used to signal that the debug intrinsic terminates dominating locations definitions.
Related to https://discourse.llvm.org/t/auto-undef-debug-uses-of-a-deleted-value
Reviewed By: StephenTozer
Differential Revision: https://reviews.llvm.org/D140903
show more ...
|
#
fb8eb84e |
| 16-Dec-2022 |
Fangrui Song <i@maskray.me> |
[Transforms,InstCombine] std::optional::value => operator*/operator->
value() has undesired exception checking semantics and calls __throw_bad_optional_access in libc++. Moreover, the API is unavail
[Transforms,InstCombine] std::optional::value => operator*/operator->
value() has undesired exception checking semantics and calls __throw_bad_optional_access in libc++. Moreover, the API is unavailable without _LIBCPP_NO_EXCEPTIONS on older Mach-O platforms (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS).
show more ...
|
#
6eb0b0a0 |
| 15-Dec-2022 |
Kazu Hirata <kazu@google.com> |
Don't include Optional.h
These files no longer use llvm::Optional.
|
#
d4b6fcb3 |
| 14-Dec-2022 |
Fangrui Song <i@maskray.me> |
[Analysis] llvm::Optional => std::optional
|
#
c178ed33 |
| 12-Dec-2022 |
Fangrui Song <i@maskray.me> |
Transforms/Utils: llvm::Optional => std::optional
|
#
343de685 |
| 03-Dec-2022 |
Kazu Hirata <kazu@google.com> |
[Transforms] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount
[Transforms] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
Revision tags: llvmorg-15.0.6 |
|
#
5d1ae634 |
| 19-Nov-2022 |
Kazu Hirata <kazu@google.com> |
[Analysis] Teach getOptionalIntLoopAttribute to return std::optional (NFC)
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-o
[Analysis] Teach getOptionalIntLoopAttribute to return std::optional (NFC)
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
Revision tags: llvmorg-15.0.5, llvmorg-15.0.4 |
|
#
88d34d46 |
| 20-Oct-2022 |
OCHyams <orlando.hyams@sony.com> |
[DebugInfo] Fix minor debug info bug in deleteDeadLoop
Using a DebugVariable as the set key rather than std::pair<DIVariable *, DIExpression *> ensures we don't accidently confuse multiple instances
[DebugInfo] Fix minor debug info bug in deleteDeadLoop
Using a DebugVariable as the set key rather than std::pair<DIVariable *, DIExpression *> ensures we don't accidently confuse multiple instances of inlined variables.
Reviewed By: jryans
Differential Revision: https://reviews.llvm.org/D133303
show more ...
|
#
f8252144 |
| 20-Oct-2022 |
OCHyams <orlando.hyams@sony.com> |
[DebugInfo][NFC] Refactor debug intrinsic copy and delete to instead just move
Reviewed By: jryans
Differential Revision: https://reviews.llvm.org/D133304
|
Revision tags: llvmorg-15.0.3 |
|
#
a8a07890 |
| 11-Oct-2022 |
Max Kazantsev <mkazantsev@azul.com> |
[NFC] Refine API: add missing const notion in hasPartialIVCondition
|
Revision tags: working, llvmorg-15.0.2 |
|
#
8ae0d9aa |
| 30-Sep-2022 |
Florian Hahn <flo@fhahn.com> |
[LoopDeletion] Clear block & loop dispo cache after breaking backedge.
breakLoopBackedge may remove blocks and loops. Also clear block & loop disposition to avoid the cache containing invalid blocks
[LoopDeletion] Clear block & loop dispo cache after breaking backedge.
breakLoopBackedge may remove blocks and loops. Also clear block & loop disposition to avoid the cache containing invalid blocks and loops.
The coverage for the change is provided when using an ASAN build of opt to run the LoopDeletion unit tests; without the fix, pointers to invalid objects would be used.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D134663
show more ...
|
#
2b23a589 |
| 28-Sep-2022 |
Florian Hahn <flo@fhahn.com> |
[LoopDeletion] Forget block and loop dispositions after deleting loop.
After deleting a loop, the block and loop dispositions need to be cleared. As we don't know which SCEVs in the loop/blocks may
[LoopDeletion] Forget block and loop dispositions after deleting loop.
After deleting a loop, the block and loop dispositions need to be cleared. As we don't know which SCEVs in the loop/blocks may be impacted, completely clear the cache. This should also fix some cases where deleted loops remained in the LoopDispositions cache.
This fixes a verification failure surfaced by D134531.
Reviewed By: mkazantsev
Differential Revision: https://reviews.llvm.org/D134613
show more ...
|
Revision tags: llvmorg-15.0.1 |
|
#
96066084 |
| 12-Sep-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Use x.empty() instead of llvm::empty(x) (NFC)
I'm planning to deprecate and eventually remove llvm::empty.
I thought about replacing llvm::empty(x) with std::empty(x), but it turns out that
[llvm] Use x.empty() instead of llvm::empty(x) (NFC)
I'm planning to deprecate and eventually remove llvm::empty.
I thought about replacing llvm::empty(x) with std::empty(x), but it turns out that all uses can be converted to x.empty(). That is, no use requires the ability of std::empty to accept C arrays and std::initializer_list.
Differential Revision: https://reviews.llvm.org/D133677
show more ...
|
Revision tags: llvmorg-15.0.0 |
|
#
c37b1a5f |
| 29-Aug-2022 |
Philip Reames <preames@rivosinc.com> |
[RLEV] Pick a correct insert point when incoming instruction is itself a phi node
This fixes https://github.com/llvm/llvm-project/issues/57336. It was exposed by a recent SCEV change, but appears to
[RLEV] Pick a correct insert point when incoming instruction is itself a phi node
This fixes https://github.com/llvm/llvm-project/issues/57336. It was exposed by a recent SCEV change, but appears to have been a long standing issue.
Note that the whole insert into the loop instead of a split exit edge is slightly contrived to begin with; it's there solely because IndVarSimplify preserves the CFG.
Differential Revision: https://reviews.llvm.org/D132571
show more ...
|
Revision tags: llvmorg-15.0.0-rc3 |
|
#
ff344326 |
| 23-Aug-2022 |
Florian Hahn <flo@fhahn.com> |
[LoopUtils] Remove unused Loop arg from addDiffRuntimeChecks (NFC).
The argument is no longer used, remove it.
|
#
109df7f9 |
| 13-Aug-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Qualify auto in range-based for loops (NFC)
Identified with readability-qualified-auto.
|
Revision tags: llvmorg-15.0.0-rc2 |
|
#
e20d210e |
| 08-Aug-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Qualify auto (NFC)
Identified with readability-qualified-auto.
|
Revision tags: llvmorg-15.0.0-rc1 |
|
#
d434e40f |
| 27-Jul-2022 |
Paul Kirth <paulkirth@google.com> |
[llvm][NFC] Refactor code to use ProfDataUtils
In this patch we replace common code patterns with the use of utility functions for dealing with profiling metadata. There should be no change in funct
[llvm][NFC] Refactor code to use ProfDataUtils
In this patch we replace common code patterns with the use of utility functions for dealing with profiling metadata. There should be no change in functionality, as the existing checks should be preserved in all cases.
Reviewed By: bogner, davidxl
Differential Revision: https://reviews.llvm.org/D128860
show more ...
|
#
6e9bab71 |
| 27-Jul-2022 |
Paul Kirth <paulkirth@google.com> |
Revert "[llvm][NFC] Refactor code to use ProfDataUtils"
This reverts commit 300c9a78819b4608b96bb26f9320bea6b8a0c4d0.
We will reland once these issues are ironed out.
|
Revision tags: llvmorg-16-init |
|
#
300c9a78 |
| 29-Jun-2022 |
Paul Kirth <paulkirth@google.com> |
[llvm][NFC] Refactor code to use ProfDataUtils
In this patch we replace common code patterns with the use of utility functions for dealing with profiling metadata. There should be no change in funct
[llvm][NFC] Refactor code to use ProfDataUtils
In this patch we replace common code patterns with the use of utility functions for dealing with profiling metadata. There should be no change in functionality, as the existing checks should be preserved in all cases.
Reviewed By: bogner, davidxl
Differential Revision: https://reviews.llvm.org/D128860
show more ...
|
#
9df0b254 |
| 23-Jul-2022 |
Nuno Lopes <nuno.lopes@tecnico.ulisboa.pt> |
[NFC] Switch a few uses of undef to poison as placeholders for unreachable code
|
#
dcf4b733 |
| 13-Jul-2022 |
Nikita Popov <npopov@redhat.com> |
[SCEVExpander] Make CanonicalMode handing in isSafeToExpand() more robust (PR50506)
isSafeToExpand() for addrecs depends on whether the SCEVExpander will be used in CanonicalMode. At least one calle
[SCEVExpander] Make CanonicalMode handing in isSafeToExpand() more robust (PR50506)
isSafeToExpand() for addrecs depends on whether the SCEVExpander will be used in CanonicalMode. At least one caller currently gets this wrong, resulting in PR50506.
Fix this by a) making the CanonicalMode argument on the freestanding functions required and b) adding member functions on SCEVExpander that automatically take the SCEVExpander mode into account. We can use the latter variant nearly everywhere, and thus make sure that there is no chance of CanonicalMode mismatch.
Fixes https://github.com/llvm/llvm-project/issues/50506.
Differential Revision: https://reviews.llvm.org/D129630
show more ...
|
#
611ffcf4 |
| 14-Jul-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Use value instead of getValue (NFC)
|
#
58b9666d |
| 07-Jul-2022 |
Zaara Syeda <syzaara@ca.ibm.com> |
[LSR] Fix bug - check if loop has preheader before calling isInductionPHI
Fix bug exposed by https://reviews.llvm.org/D125990 rewriteLoopExitValues calls InductionDescriptor::isInductionPHI which re
[LSR] Fix bug - check if loop has preheader before calling isInductionPHI
Fix bug exposed by https://reviews.llvm.org/D125990 rewriteLoopExitValues calls InductionDescriptor::isInductionPHI which requires the PHI node to have an incoming edge from the loop preheader. This adds checks before calling InductionDescriptor::isInductionPHI to see that the loop has a preheader. Also did some refactoring.
Differential Revision: https://reviews.llvm.org/D129297
show more ...
|
#
40a4078e |
| 06-Jul-2022 |
Nikita Popov <npopov@redhat.com> |
[BasicBlockUtils] Allow splitting predecessors with callbr terminators
SplitBlockPredecessors currently asserts if one of the predecessor terminators is a callbr. This limitation was originally nece
[BasicBlockUtils] Allow splitting predecessors with callbr terminators
SplitBlockPredecessors currently asserts if one of the predecessor terminators is a callbr. This limitation was originally necessary, because just like with indirectbr, it was not possible to replace successors of a callbr. However, this is no longer the case since D67252. As the requirement nowadays is that callbr must reference all blockaddrs directly in the call arguments, and these get automatically updated when setSuccessor() is called, we no longer need this limitation.
The only thing we need to do here is use replaceSuccessorWith() instead of replaceUsesOfWith(), because only the former does the necessary blockaddr updating magic.
I believe there's other similar limitations that can be removed, e.g. related to critical edge splitting.
Differential Revision: https://reviews.llvm.org/D129205
show more ...
|