Simplify references to command line flags.

This CL removes all indirect pointer chasing to get the values of
command line flags. Since we are only using 1 copy of ClFlags, this CL
introduces a static field Flags to hold the defined command line flags
(it was previously a static field of GlobalContext).

For those few contexts where one must change CL flags due to context
(such as testsing and running in the browser), use ClFlags::Flags.

In the remainder of the cases, the code uses getFlags() which returns
a constant reference to ClFlags::Flags, allowing access to the get
accessors.

BUG=None
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/1848303003 .
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index 03a8cb2..37bf127 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -51,7 +51,7 @@
 // FakeDef and FakeUse instructions to try maintain liveness consistency.
 #define UnimplementedLoweringError(Target, Instr)                              \
   do {                                                                         \
-    if ((Target)->Ctx->getFlags().getSkipUnimplemented()) {                    \
+    if (getFlags().getSkipUnimplemented()) {                                   \
       (Target)->addFakeDefUses(Instr);                                         \
     } else {                                                                   \
       /* Use llvm_unreachable instead of report_fatal_error, which gives       \
@@ -181,7 +181,7 @@
   virtual std::unique_ptr<Assembler> createAssembler() const = 0;
 
   void translate() {
-    switch (Ctx->getFlags().getOptLevel()) {
+    switch (getFlags().getOptLevel()) {
     case Opt_m1:
       translateOm1();
       break;