[BOLT][NFC] Warning for deprecated option '-reorder-blocks=cache+'

Emit warning when using deprecated option '-reorder-blocks=cache+'.
Auto switch to option '-reorder-blocks=ext-tsp'.

Test Plan:
```
ninja check-bolt
```
Added a new test cache+-deprecated.test.
Run and verify that the upstream tests are passed.

Reviewed By: rafauler, Amir, maksfb

Differential Revision: https://reviews.llvm.org/D126722
This commit is contained in:
Huan Nguyen 2022-06-03 14:16:24 -07:00 committed by Amir Ayupov
parent 814a0abcce
commit 5ac26156fe
3 changed files with 20 additions and 2 deletions

View File

@ -142,6 +142,8 @@ public:
/// LT_OPTIMIZE_CACHE piggybacks on the idea from Ispike paper (CGO '04)
/// that suggests putting frequently executed chains first in the layout.
LT_OPTIMIZE_CACHE,
// CACHE_PLUS and EXT_TSP are synonyms, emit warning of deprecation.
LT_OPTIMIZE_CACHE_PLUS,
/// Block reordering guided by the extended TSP metric.
LT_OPTIMIZE_EXT_TSP,
/// Create clusters and use random order for them.

View File

@ -176,13 +176,21 @@ cl::opt<bolt::ReorderBasicBlocks::LayoutType> ReorderBlocks(
clEnumValN(bolt::ReorderBasicBlocks::LT_OPTIMIZE_CACHE, "cache",
"perform optimal layout prioritizing I-cache "
"behavior"),
clEnumValN(bolt::ReorderBasicBlocks::LT_OPTIMIZE_EXT_TSP, "cache+",
clEnumValN(bolt::ReorderBasicBlocks::LT_OPTIMIZE_CACHE_PLUS, "cache+",
"perform layout optimizing I-cache behavior"),
clEnumValN(bolt::ReorderBasicBlocks::LT_OPTIMIZE_EXT_TSP, "ext-tsp",
"perform layout optimizing I-cache behavior"),
clEnumValN(bolt::ReorderBasicBlocks::LT_OPTIMIZE_SHUFFLE,
"cluster-shuffle", "perform random layout of clusters")),
cl::ZeroOrMore, cl::cat(BoltOptCategory));
cl::ZeroOrMore, cl::cat(BoltOptCategory),
cl::callback([](const bolt::ReorderBasicBlocks::LayoutType &option) {
if (option == bolt::ReorderBasicBlocks::LT_OPTIMIZE_CACHE_PLUS) {
WithColor::warning()
<< "'-reorder-blocks=cache+' is deprecated, "
<< "please use '-reorder-blocks=ext-tsp' instead\n";
ReorderBlocks = bolt::ReorderBasicBlocks::LT_OPTIMIZE_EXT_TSP;
}
}));
static cl::opt<unsigned>
ReportBadLayout("report-bad-layout",

View File

@ -0,0 +1,8 @@
REQUIRES: system-linux
RUN: %clangxx %p/Inputs/bolt_icf.cpp -g -Wl,-q -o %t.exe
RUN: llvm-bolt %t.exe -reorder-blocks=cache+ -relocs -o %t 2>&1 | FileCheck %s
CHECK: '-reorder-blocks=cache+' is deprecated, please use '-reorder-blocks=ext-tsp' instead