Subzero. X86. Refactors Address Mode formation.

Refactors the Address Mode optimization interface.

BUG=
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/1605103002 .
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index 9fb0c15..202b85a 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -455,6 +455,15 @@
 
   bool shouldOptimizeMemIntrins();
 
+  /// SandboxType enumerates all possible sandboxing strategies that
+  enum SandboxType {
+    ST_None,
+    ST_NaCl,
+    ST_Nonsfi,
+  };
+
+  static SandboxType determineSandboxTypeFromFlags(const ClFlags &Flags);
+
   Cfg *Func;
   GlobalContext *Ctx;
   bool HasComputedFrame = false;
@@ -462,6 +471,7 @@
   SizeT NextLabelNumber = 0;
   SizeT NextJumpTableNumber = 0;
   LoweringContext Context;
+  const SandboxType SandboxingType = ST_None;
 
   // Runtime helper function names
   const static constexpr char *H_bitcast_16xi1_i16 = "__Sz_bitcast_16xi1_i16";