aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2020-12-15 19:29:29 +0100
committerXavier Leroy <xavierleroy@users.noreply.github.com>2021-01-13 14:45:05 +0100
commit7f152e2f27d82f0d502ee919e1576edefcd44cf5 (patch)
tree36cf28dd969faccc7635b8a259860ab62db1604d /powerpc
parente16f5d1de08bb0c3ac561c2ea6a98f49ed8f49d5 (diff)
downloadcompcert-kvx-7f152e2f27d82f0d502ee919e1576edefcd44cf5.tar.gz
compcert-kvx-7f152e2f27d82f0d502ee919e1576edefcd44cf5.zip
Improve branch tunneling
The previous branch tunneling was missing optimization opportunities introduced by the optimization of conditional branches. For example: L1: instr; branch L2 L2: if cond then branch L3 else branch L4 L3: branch L4 L4: ... was transformed into L1: instr; branch L2 L2: branch L4 L3: branch L4 L4: ... missing a tunneling opportunity (branch L2 -> branch L4). This commit improves branch tunneling so that the expected code is produced: L1: instr; branch L4 L2: branch L4 L3: branch L4 L4: ... To this end, additional equalities are introduced in the union-find data structure corresponding to optimizable conditional branches. In rare cases these additional equalities trigger new opportunities for optimizing conditional branches. Hence we iterate the analysis until no optimizable conditional branch remains.
Diffstat (limited to 'powerpc')
0 files changed, 0 insertions, 0 deletions