]> granicus.if.org Git - clang/commitdiff
Eliminate CodeGenOptions::SimplifyLibCalls.
authorDaniel Dunbar <daniel@zuster.org>
Mon, 30 Nov 2009 08:39:32 +0000 (08:39 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 30 Nov 2009 08:39:32 +0000 (08:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90117 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/CodeGen/CodeGenOptions.h
lib/Driver/CC1Options.cpp
lib/Frontend/Backend.cpp
tools/clang-cc/Options.cpp

index 31fd7b4bf1a423376205aeeff9776d6ef04eaaf2..2effa46f968e8cd153ed7b1feca0b0536f64a24a 100644 (file)
@@ -43,8 +43,6 @@ public:
   unsigned NoZeroInitializedInBSS : 1; /// -fno-zero-initialized-in-bss
   unsigned OptimizationLevel : 3; /// The -O[0-4] option specified.
   unsigned OptimizeSize      : 1; /// If -Os is specified.
-  unsigned SimplifyLibCalls  : 1; /// Should standard library calls be treated
-                                  /// specially.
   unsigned TimePasses        : 1; /// Set when -ftime-report is enabled.
   unsigned UnitAtATime       : 1; /// Unused. For mirroring GCC optimization
                                   /// selection.
@@ -85,7 +83,7 @@ public:
     NoZeroInitializedInBSS = 0;
     OptimizationLevel = 0;
     OptimizeSize = 0;
-    SimplifyLibCalls = UnrollLoops = 0;
+    UnrollLoops = 0;
     TimePasses = 0;
     UnitAtATime = 1;
     UnwindTables = 0;
index b99ecec5a5d4452507d6b29709e22e44a29cc70f..103f645103d44b945d44183d593982304f804001 100644 (file)
@@ -177,7 +177,6 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
   Opts.NoCommon = Args.hasArg(OPT_fno_common);
   Opts.NoImplicitFloat = Args.hasArg(OPT_no_implicit_float);
   Opts.OptimizeSize = Args.hasArg(OPT_Os);
-  Opts.SimplifyLibCalls = 1;
   Opts.UnrollLoops = (Opts.OptimizationLevel > 1 && !Opts.OptimizeSize);
 
   Opts.AsmVerbose = Args.hasArg(OPT_masm_verbose);
@@ -193,8 +192,6 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
 
   // FIXME: Implement!
   // FIXME: Eliminate this dependency?
-//   if (Lang.NoBuiltin)
-//     Opts.SimplifyLibCalls = 0;
 //   if (Lang.CPlusPlus)
 //     Opts.NoCommon = 1;
 //   Opts.TimePasses = TimePasses;
index 12bb5a81dc54588f7f1e9a2b0566363f6f565262..e895a666973ffedc2fddc31db9deb6ff6c7e5ebe 100644 (file)
@@ -38,8 +38,9 @@ using namespace llvm;
 namespace {
   class BackendConsumer : public ASTConsumer {
     BackendAction Action;
-    CodeGenOptions CodeGenOpts;
-    TargetOptions TargetOpts;
+    const CodeGenOptions &CodeGenOpts;
+    const LangOptions &LangOpts;
+    const TargetOptions &TargetOpts;
     llvm::raw_ostream *AsmOutStream;
     llvm::formatted_raw_ostream FormattedOutStream;
     ASTContext *Context;
@@ -79,6 +80,7 @@ namespace {
                     llvm::raw_ostream* OS, LLVMContext& C) :
       Action(action),
       CodeGenOpts(compopts),
+      LangOpts(langopts),
       TargetOpts(targetopts),
       AsmOutStream(OS),
       LLVMIRGeneration("LLVM IR Generation Time"),
@@ -249,7 +251,7 @@ bool BackendConsumer::AddEmitPasses(std::string &Error) {
     if (TargetOpts.CPU.size() || TargetOpts.Features.size()) {
       SubtargetFeatures Features;
       Features.setCPU(TargetOpts.CPU);
-      for (std::vector<std::string>::iterator
+      for (std::vector<std::string>::const_iterator
              it = TargetOpts.Features.begin(),
              ie = TargetOpts.Features.end(); it != ie; ++it)
         Features.AddFeature(*it);
@@ -336,7 +338,7 @@ void BackendConsumer::CreatePasses() {
   llvm::createStandardModulePasses(PM, OptLevel, CodeGenOpts.OptimizeSize,
                                    CodeGenOpts.UnitAtATime,
                                    CodeGenOpts.UnrollLoops,
-                                   CodeGenOpts.SimplifyLibCalls,
+                                   /*SimplifyLibCalls=*/!LangOpts.NoBuiltin,
                                    /*HaveExceptions=*/true,
                                    InliningPass);
 }
index 2436873d473d9b47713d92041c45d958bfd6c6cc..710a928da6d75c101b081feef796f8e07c21a763 100644 (file)
@@ -814,7 +814,6 @@ void clang::InitializeCodeGenOptions(CodeGenOptions &Opts,
   Opts.NoCommon = NoCommon;
   Opts.NoImplicitFloat = NoImplicitFloat;
   Opts.OptimizeSize = OptSize;
-  Opts.SimplifyLibCalls = 1;
   Opts.UnrollLoops = (Opts.OptimizationLevel > 1 && !OptSize);
 
   // LLVM Code Generator options.
@@ -829,8 +828,6 @@ void clang::InitializeCodeGenOptions(CodeGenOptions &Opts,
   Opts.RelocationModel = MRelocationModel;
 
   // FIXME: Eliminate this dependency?
-  if (Lang.NoBuiltin)
-    Opts.SimplifyLibCalls = 0;
   if (Lang.CPlusPlus)
     Opts.NoCommon = 1;
   Opts.TimePasses = TimePasses;