diff --git a/include/llvm/Target/TargetOptions.h b/include/llvm/Target/TargetOptions.h
index 72bb272..881ec21 100644
--- a/include/llvm/Target/TargetOptions.h
+++ b/include/llvm/Target/TargetOptions.h
@@ -74,13 +74,18 @@
   /// be emitted.
   extern bool ExceptionHandling;
 
+  /// UnwindTablesOptional - This flag indicates that unwind tables need not
+  /// be emitted for all functions.  Exception handling may still require them
+  /// for some functions.
+  extern bool UnwindTablesOptional;
+
   /// PerformTailCallOpt - This flag is enabled when -tailcallopt is specified
   /// on the commandline. When the flag is on, the target will perform tail call
   /// optimization (pop the caller's stack) providing it supports it.
   extern bool PerformTailCallOpt;
 
-  /// OptimizeForSize - When this flags is set, code generator avoids optimization
-  /// that increases size.
+  /// OptimizeForSize - When this flag is set, the code generator avoids 
+  /// optimizations that increase size.
   extern bool OptimizeForSize;
 } // End llvm namespace
 
diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp
index 947b420..6cdc91e 100644
--- a/lib/CodeGen/DwarfWriter.cpp
+++ b/lib/CodeGen/DwarfWriter.cpp
@@ -2905,8 +2905,11 @@
 
     // If there are no calls then you can't unwind.  This may mean we can
     // omit the EH Frame, but some environments do not handle weak absolute
-    // symbols.
+    // symbols.  
+    // If UnwindTablesOptional is not set we cannot do this optimization; the
+    // unwind info is to be available for non-EH uses.
     if (!EHFrameInfo.hasCalls &&
+        UnwindTablesOptional &&
         ((linkage != Function::WeakLinkage && 
           linkage != Function::LinkOnceLinkage) ||
          !TAI->getWeakDefDirective() ||
@@ -3427,7 +3430,9 @@
         shouldEmitTable = true;
 
       // See if we need frame move info.
-      if (MMI->hasDebugInfo() || !MF->getFunction()->doesNotThrow())
+      if (MMI->hasDebugInfo() || 
+          !MF->getFunction()->doesNotThrow() ||
+          !UnwindTablesOptional)
         shouldEmitMoves = true;
 
       if (shouldEmitMoves || shouldEmitTable)
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp
index 8ef8b3f..8b4fb6a 100644
--- a/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -948,7 +948,8 @@
   MachineFrameInfo *MFI = MF.getFrameInfo();
   MachineModuleInfo *MMI = MFI->getMachineModuleInfo();
   bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) ||
-       !MF.getFunction()->doesNotThrow();
+       !MF.getFunction()->doesNotThrow() ||
+       !UnwindTablesOptional;
   
   // Prepare for frame info.
   unsigned FrameLabelId = 0;
diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp
index e4f633f..e6f080d 100644
--- a/lib/Target/TargetMachine.cpp
+++ b/lib/Target/TargetMachine.cpp
@@ -31,6 +31,7 @@
   bool UseSoftFloat;
   bool NoZerosInBSS;
   bool ExceptionHandling;
+  bool UnwindTablesOptional;
   Reloc::Model RelocationModel;
   CodeModel::Model CMModel;
   bool PerformTailCallOpt;
@@ -80,9 +81,14 @@
               cl::init(false));
   cl::opt<bool, true>
   EnableExceptionHandling("enable-eh",
-               cl::desc("Exception handling should be emitted."),
+               cl::desc("Emit DWARF exception handling (default if target supports)"),
                cl::location(ExceptionHandling),
                cl::init(false));
+  cl::opt<bool, true>
+  DisableUnwindTables("disable-required-unwind-tables",
+               cl::desc("Do not require unwinding info for all functions"),
+               cl::location(UnwindTablesOptional),
+               cl::init(false));
 
   cl::opt<llvm::Reloc::Model, true>
   DefRelocationModel(
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index 0a75560..2668582 100644
--- a/lib/Target/X86/X86RegisterInfo.cpp
+++ b/lib/Target/X86/X86RegisterInfo.cpp
@@ -504,7 +504,9 @@
   MachineModuleInfo *MMI = MFI->getMachineModuleInfo();
   X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
   MachineBasicBlock::iterator MBBI = MBB.begin();
-  bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || !Fn->doesNotThrow();
+  bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || 
+                          !Fn->doesNotThrow() ||
+                          !UnwindTablesOptional;
   
   // Prepare for frame info.
   unsigned FrameLabelId = 0;
