[llvm-commits] CVS: llvm/lib/System/DynamicLibrary.cpp README.txt

Reid Spencer reid at x10sys.com
Fri Aug 25 12:55:11 PDT 2006


Changes in directory llvm/lib/System:

DynamicLibrary.cpp updated: 1.16 -> 1.17
README.txt updated: 1.6 -> 1.7
---
Log message:

For PR797: http://llvm.org/PR797 :
Final commit for this bug. This removes the last EH holdouts in LLVM
and turns off exception support by using the -fno-exceptions option. This 
leads to the following reduction in library and executable sizes:
                DEBUG BUILD                RELEASE BUILD
         before     after   delta     before   after    delta
lib    162,328K  157,616K   4,712    17,864K  16,416K  1,448K
bin    571,444K  557,156K  14,288    63,296K   56,996K 6,300K

Debug   Improvement: 19,000K (2.59%)
Release Improvement:  7,748K (9.55%)


---
Diffs of the changes:  (+7 -8)

 DynamicLibrary.cpp |   11 +++++------
 README.txt         |    4 ++--
 2 files changed, 7 insertions(+), 8 deletions(-)


Index: llvm/lib/System/DynamicLibrary.cpp
diff -u llvm/lib/System/DynamicLibrary.cpp:1.16 llvm/lib/System/DynamicLibrary.cpp:1.17
--- llvm/lib/System/DynamicLibrary.cpp:1.16	Wed Jul 26 11:55:39 2006
+++ llvm/lib/System/DynamicLibrary.cpp	Fri Aug 25 14:54:53 2006
@@ -45,12 +45,10 @@
 //===          independent code.
 //===----------------------------------------------------------------------===//
 
-static bool did_initialize_ltdl = false;
-
 static inline void check_ltdl_initialization() {
+  static bool did_initialize_ltdl = false;
   if (!did_initialize_ltdl) {
-    if (0 != lt_dlinit())
-      throw std::string(lt_dlerror());
+    assert(0 == lt_dlinit() || "Can't init the ltdl library");
     did_initialize_ltdl = true;
   }
 }
@@ -62,13 +60,13 @@
 
   lt_dlhandle a_handle = lt_dlopen(0);
 
-  if (a_handle == 0)
-    throw std::string("Can't open program as dynamic library");
+  assert(a_handle == 0 || "Can't open program as dynamic library");
 
   handle = a_handle;
   OpenedHandles.push_back(a_handle);
 }
 
+/*
 DynamicLibrary::DynamicLibrary(const char*filename) : handle(0) {
   check_ltdl_initialization();
 
@@ -83,6 +81,7 @@
   handle = a_handle;
   OpenedHandles.push_back(a_handle);
 }
+*/
 
 DynamicLibrary::~DynamicLibrary() {
   lt_dlhandle a_handle = (lt_dlhandle) handle;


Index: llvm/lib/System/README.txt
diff -u llvm/lib/System/README.txt:1.6 llvm/lib/System/README.txt:1.7
--- llvm/lib/System/README.txt:1.6	Mon Mar 13 23:54:51 2006
+++ llvm/lib/System/README.txt	Fri Aug 25 14:54:53 2006
@@ -25,8 +25,8 @@
  3. No exposed system-specific functions.
  4. No exposed system-specific data.
  5. Data in lib/System classes must use only simple C++ intrinsic types.
- 6. Errors are handled by throwing std::string *only*.
- 7. Library must not throw any exceptions except std::string.
+ 6. Errors are handled by returning "true" and setting an optional std::string
+ 7. Library must not throw any exceptions, period.
  8. Interface functions must not have throw() specifications.
  9. No duplicate function impementations are permitted within an operating
     system class.






More information about the llvm-commits mailing list