LifetimeStartOnFirstUse ("stackcoloring-lifetime-start-on-first-use", cl::init(true), cl::Hidden, cl::desc("Treat stack lifetimes as starting on first use, not on START marker."))
Enable enhanced dataflow scheme for lifetime analysis (treat first use of stack slot as start of slot lifetime, as opposed to looking for LIFETIME_START marker).
cl::opt< bool > LifetimeStartOnFirstUse("stackcoloring-lifetime-start-on-first-use", cl::init(true), cl::Hidden, cl::desc("Treat stack lifetimes as starting on first use, not on START marker.")) ( "stackcoloring-lifetime-start-on-first-use" , cl::init(true) , cl::Hidden , cl::desc("Treat stack lifetimes as starting on first use, not on START marker.") )
static
Enable enhanced dataflow scheme for lifetime analysis (treat first use of stack slot as start of slot lifetime, as opposed to looking for LIFETIME_START marker).
cl::opt< bool > ProtectFromEscapedAllocas("protect-from-escaped-allocas", cl::init(false), cl::Hidden, cl::desc("Do not optimize lifetime zones that " "are broken")) ( "protect-from-escaped-allocas" , cl::init(false) , cl::Hidden , cl::desc("Do not optimize lifetime zones that " "are broken") )
static
The user may write code that uses allocas outside of the declared lifetime zone.
This can happen when the user returns a reference to a local data-structure. We can detect these cases and decide not to optimize the code. If this flag is enabled, we try to save the user. This option is treated as overriding LifetimeStartOnFirstUse below.