Index: src/IceClFlags.cpp |
diff --git a/src/IceClFlags.cpp b/src/IceClFlags.cpp |
index 28db1b01a65d0aee2023dab81b8a2207a9440869..f7766340936eef9efa461d6234373e67be30be3a 100644 |
--- a/src/IceClFlags.cpp |
+++ b/src/IceClFlags.cpp |
@@ -185,6 +185,13 @@ cl::opt<bool> |
cl::desc("Randomize register allocation"), |
cl::init(false)); |
+/// Allow failsafe access to registers that were restricted via -reg-use or |
+/// -reg-exclude. |
+cl::opt<bool> |
+ RegAllocReserve("reg-reserve", |
+ cl::desc("Let register allocation use reserve registers"), |
+ cl::init(false)); |
+ |
/// Repeat register allocation until convergence. |
cl::opt<bool> |
RepeatRegAlloc("regalloc-repeat", |
@@ -545,6 +552,7 @@ void ClFlags::getParsedClFlags(ClFlags &OutFlags) { |
OutFlags.setShouldReorderBasicBlocks(::ReorderBasicBlocks); |
OutFlags.setShouldDoNopInsertion(::ShouldDoNopInsertion); |
OutFlags.setShouldRandomizeRegAlloc(::RandomizeRegisterAllocation); |
+ OutFlags.setRegAllocReserve(::RegAllocReserve); |
OutFlags.setShouldRepeatRegAlloc(::RepeatRegAlloc); |
OutFlags.setShouldReorderFunctions(::ReorderFunctions); |
OutFlags.setShouldReorderGlobalVariables(::ReorderGlobalVariables); |