[llvm-commits] [llvm] r125978 - in /llvm/trunk: include/llvm/Target/TargetLibraryInfo.h lib/Target/TargetLibraryInfo.cpp tools/opt/opt.cpp
Chris Lattner
sabre at nondot.org
Fri Feb 18 14:34:03 PST 2011
Author: lattner
Date: Fri Feb 18 16:34:03 2011
New Revision: 125978
URL: http://llvm.org/viewvc/llvm-project?rev=125978&view=rev
Log:
add a way to disable all builtins, wire it up to opt's -disable-simplifylibcalls flag.
Modified:
llvm/trunk/include/llvm/Target/TargetLibraryInfo.h
llvm/trunk/lib/Target/TargetLibraryInfo.cpp
llvm/trunk/tools/opt/opt.cpp
Modified: llvm/trunk/include/llvm/Target/TargetLibraryInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLibraryInfo.h?rev=125978&r1=125977&r2=125978&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Target/TargetLibraryInfo.h (original)
+++ llvm/trunk/include/llvm/Target/TargetLibraryInfo.h Fri Feb 18 16:34:03 2011
@@ -55,6 +55,10 @@
void setAvailable(LibFunc::Func F) {
AvailableArray[F/8] |= 1 << (F&7);
}
+
+ /// disableAllFunctions - This disables all builtins, which is used for
+ /// options like -fno-builtin.
+ void disableAllFunctions();
};
} // end namespace llvm
Modified: llvm/trunk/lib/Target/TargetLibraryInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetLibraryInfo.cpp?rev=125978&r1=125977&r2=125978&view=diff
==============================================================================
--- llvm/trunk/lib/Target/TargetLibraryInfo.cpp (original)
+++ llvm/trunk/lib/Target/TargetLibraryInfo.cpp Fri Feb 18 16:34:03 2011
@@ -47,3 +47,9 @@
initialize(*this, T);
}
+
+/// disableAllFunctions - This disables all builtins, which is used for options
+/// like -fno-builtin.
+void TargetLibraryInfo::disableAllFunctions() {
+ memset(AvailableArray, 0, sizeof(AvailableArray));
+}
Modified: llvm/trunk/tools/opt/opt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=125978&r1=125977&r2=125978&view=diff
==============================================================================
--- llvm/trunk/tools/opt/opt.cpp (original)
+++ llvm/trunk/tools/opt/opt.cpp Fri Feb 18 16:34:03 2011
@@ -532,8 +532,12 @@
PassManager Passes;
// Add an appropriate TargetLibraryInfo pass for the module's triple.
- if (!M->getTargetTriple().empty())
- Passes.add(new TargetLibraryInfo(Triple(M->getTargetTriple())));
+ TargetLibraryInfo *TLI = new TargetLibraryInfo(Triple(M->getTargetTriple()));
+
+ // The -disable-simplify-libcalls flag actually disables all builtin optzns.
+ if (DisableSimplifyLibCalls)
+ TLI->disableAllFunctions();
+ Passes.add(TLI);
// Add an appropriate TargetData instance for this module.
TargetData *TD = 0;
More information about the llvm-commits
mailing list