Update in response to feedback from Chris:

- Use enums instead of magic numbers.

- Rework algorithm to use the bytes size from the target to determine when to
  emit stack protectors.

- Get rid of "propolice" in any comments.

- Renamed an option to its expanded form.

- Other miscellanenous changes.

More changes will come after this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58723 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2008-11-04 21:53:09 +00:00
parent ba10fe04e7
commit 80a320d974
3 changed files with 61 additions and 34 deletions

View File

@@ -23,8 +23,19 @@ namespace llvm {
class FunctionPass;
class PassInfo;
class TargetMachine;
class TargetLowering;
class RegisterCoalescer;
/// StackProtectorLevel - An enumeration for when to determin when to turn
/// stack smashing protection (SSP) on.
namespace SSP {
enum StackProtectorLevel {
OFF, // Stack protectors are off.
SOME, // Stack protectors on only for functions that require them.
ALL // Stack protectors on for all functions.
};
} // end SSP namespace
/// createUnreachableBlockEliminationPass - The LLVM code generator does not
/// work well with unreachable basic blocks (what live ranges make sense for a
/// block that cannot be reached?). As such, a code generator should either
@@ -193,7 +204,8 @@ namespace llvm {
FunctionPass *createStackSlotColoringPass();
/// createStackProtectorPass - This pass adds stack protectors to functions.
FunctionPass *createStackProtectorPass(int Level);
FunctionPass *createStackProtectorPass(SSP::StackProtectorLevel lvl,
const TargetLowering *tli);
} // End llvm namespace