mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-22 17:03:32 +00:00
[Layout] Add a new option (NFC)
Currently cost based loop rotation algo can only be turned on with two conditions: the function has real profile data, and -precise-rotation-cost flag is turned on. This is not convenient for developers to experiment when profile is not available. Add a new option to force the new rotation algorithm -force-precise-rotation-cost llvm-svn: 269266
This commit is contained in:
parent
a61cb48dd2
commit
f0ab6dfedc
@ -99,6 +99,11 @@ static cl::opt<bool>
|
||||
cl::desc("Model the cost of loop rotation more "
|
||||
"precisely by using profile data."),
|
||||
cl::init(false), cl::Hidden);
|
||||
static cl::opt<bool>
|
||||
ForcePreciseRotationCost("force-precise-rotation-cost",
|
||||
cl::desc("Model the cost of loop rotation more "
|
||||
"precisely by using profile data."),
|
||||
cl::init(false), cl::Hidden);
|
||||
|
||||
static cl::opt<unsigned> MisfetchCost(
|
||||
"misfetch-cost",
|
||||
@ -1126,7 +1131,8 @@ void MachineBlockPlacement::buildLoopChains(MachineFunction &F,
|
||||
// this loop by modeling costs more precisely which requires the profile data
|
||||
// for better layout.
|
||||
bool RotateLoopWithProfile =
|
||||
PreciseRotationCost && F.getFunction()->getEntryCount();
|
||||
ForcePreciseRotationCost ||
|
||||
(PreciseRotationCost && F.getFunction()->getEntryCount());
|
||||
|
||||
// First check to see if there is an obviously preferable top block for the
|
||||
// loop. This will default to the header, but may end up as one of the
|
||||
|
Loading…
x
Reference in New Issue
Block a user