HomePhabricator

Revert r372893 "[CodeGen] Replace -max-jump-table-size with -max-jump-table…

Authored by hansw on Sep 27 2019, 2:54 AM.

Description

Revert r372893 "[CodeGen] Replace -max-jump-table-size with -max-jump-table-targets"

This caused severe compile-time regressions, see PR43455.

Modern processors predict the targets of an indirect branch regardless of
the size of any jump table used to glean its target address. Moreover,
branch predictors typically use resources limited by the number of actual
targets that occur at run time.

This patch changes the semantics of the option -max-jump-table-size to limit
the number of different targets instead of the number of entries in a jump
table. Thus, it is now renamed to -max-jump-table-targets.

Before, when -max-jump-table-size was specified, it could happen that
cluster jump tables could have targets used repeatedly, but each one was
counted and typically resulted in tables with the same number of entries.
With this patch, when specifying -max-jump-table-targets, tables may have
different lengths, since the number of unique targets is counted towards the
limit, but the number of unique targets in tables is the same, but for the
last one containing the balance of targets.

Differential revision: https://reviews.llvm.org/D60295

llvm-svn: 373060

Details

Committed
hanswSep 27 2019, 2:54 AM
Parents
rG4627bdedd90d: Revert r373056: [clang-format] Reference qualifiers in member templates causing…
Branches
Unknown
Tags
Unknown