llvm-project/llvm/lib/Transforms
Andrew Litteken bd4b1b5f6d [IRSim] Adding support for recognizing branch similarity
The current IRSimilarityIdentifier does not try to find similarity across blocks, this patch provides a mechanism to compare two branches against one another, to find similarity across basic blocks, rather than just within them.

This adds a step in the similarity identification process that labels all of the basic blocks so that we can identify the relative branching locations. Within an IRSimilarityCandidate we use these relative locations to determine whether if the branching to other relative locations in the same region is the same between branches. If they are, we consider them similar.

We do not consider the relative location of the branch if the target branch is outside of the region. In this case, both branches must exit to a location outside the region, but the exact relative location does not matter.

Reviewers: paquette, yroux

Differential Revision: https://reviews.llvm.org/D106989
2021-09-06 11:55:38 -07:00
..
AggressiveInstCombine [AggressiveInstCombine] Add arithmetic shift right instr to `TruncInstCombine` DAG 2021-08-24 10:41:16 +03:00
CFGuard llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Coroutines [Coroutines] Only run verifyFunction in debug mode 2021-09-02 17:35:01 -07:00
Hello
IPO [IRSim] Adding support for recognizing branch similarity 2021-09-06 11:55:38 -07:00
InstCombine [InstCombine] fix infinite loop from shift transform 2021-09-06 11:13:39 -04:00
Instrumentation [hwasan] Support more complicated lifetimes. 2021-09-03 10:29:50 +01:00
ObjCARC [ObjC][ARC] Don't form a StoreStrong call if it is unsafe to move the 2021-08-11 13:50:19 -07:00
Scalar [SimpleLoopUnswitch] Inform pass manager when child loops are deleted 2021-09-04 17:54:39 +02:00
Utils [InstCombine] stpcpy(d,s) -> strcpy(d,s) if the result is not used 2021-09-05 12:12:07 +02:00
Vectorize [IVDescriptors] Make pointer inductions compatible with opaque pointers 2021-09-01 21:02:05 +02:00
CMakeLists.txt [NewPM][HelloWorld] Move HelloWorld to Utils 2021-02-03 12:59:40 -08:00