[llvm-commits] [dragonegg] r138801 - in /dragonegg/trunk: include/dragonegg/Internals.h src/Convert.cpp

Duncan Sands baldrick at free.fr
Tue Aug 30 02:20:45 PDT 2011


Author: baldrick
Date: Tue Aug 30 04:20:45 2011
New Revision: 138801

URL: http://llvm.org/viewvc/llvm-project?rev=138801&view=rev
Log:
Add support for builtin_unreachable.  Put some builtins in
alphabetical order while there.

Modified:
    dragonegg/trunk/include/dragonegg/Internals.h
    dragonegg/trunk/src/Convert.cpp

Modified: dragonegg/trunk/include/dragonegg/Internals.h
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/include/dragonegg/Internals.h?rev=138801&r1=138800&r2=138801&view=diff
==============================================================================
--- dragonegg/trunk/include/dragonegg/Internals.h (original)
+++ dragonegg/trunk/include/dragonegg/Internals.h Tue Aug 30 04:20:45 2011
@@ -623,25 +623,29 @@
   Value *EmitBuiltinLFLOOR(gimple_statement_d *stmt);
   Value *EmitBuiltinCEXPI(gimple_statement_d *stmt);
 
-  bool EmitBuiltinConstantP(gimple_statement_d *stmt, Value *&Result);
+  bool EmitBuiltinAdjustTrampoline(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinAlloca(gimple_statement_d *stmt, Value *&Result);
+  bool EmitBuiltinBZero(gimple_statement_d *stmt, Value *&Result);
+  bool EmitBuiltinConstantP(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinExpect(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinExtendPointer(gimple_statement_d *stmt, Value *&Result);
-  bool EmitBuiltinVAStart(gimple_statement_d *stmt);
-  bool EmitBuiltinVAEnd(gimple_statement_d *stmt);
-  bool EmitBuiltinVACopy(gimple_statement_d *stmt);
+  bool EmitBuiltinExtractReturnAddr(gimple_statement_d *stmt, Value *&Result);
+  bool EmitBuiltinFrobReturnAddr(gimple_statement_d *stmt, Value *&Result);
+  bool EmitBuiltinInitTrampoline(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinMemCopy(gimple_statement_d *stmt, Value *&Result,
                           bool isMemMove, bool SizeCheck);
   bool EmitBuiltinMemSet(gimple_statement_d *stmt, Value *&Result,
                          bool SizeCheck);
-  bool EmitBuiltinBZero(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinPrefetch(gimple_statement_d *stmt);
   bool EmitBuiltinReturnAddr(gimple_statement_d *stmt, Value *&Result,
                              bool isFrame);
-  bool EmitBuiltinExtractReturnAddr(gimple_statement_d *stmt, Value *&Result);
-  bool EmitBuiltinFrobReturnAddr(gimple_statement_d *stmt, Value *&Result);
-  bool EmitBuiltinStackSave(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinStackRestore(gimple_statement_d *stmt);
+  bool EmitBuiltinStackSave(gimple_statement_d *stmt, Value *&Result);
+  bool EmitBuiltinUnreachable();
+  bool EmitBuiltinVACopy(gimple_statement_d *stmt);
+  bool EmitBuiltinVAEnd(gimple_statement_d *stmt);
+  bool EmitBuiltinVAStart(gimple_statement_d *stmt);
+
   bool EmitBuiltinEHPointer(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinDwarfCFA(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinDwarfSPColumn(gimple_statement_d *stmt, Value *&Result);
@@ -649,8 +653,6 @@
   bool EmitBuiltinEHReturn(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinInitDwarfRegSizes(gimple_statement_d *stmt, Value *&Result);
   bool EmitBuiltinUnwindInit(gimple_statement_d *stmt, Value *&Result);
-  bool EmitBuiltinAdjustTrampoline(gimple_statement_d *stmt, Value *&Result);
-  bool EmitBuiltinInitTrampoline(gimple_statement_d *stmt, Value *&Result);
 
   // Complex Math Expressions.
   Value *CreateComplex(Value *Real, Value *Imag);

Modified: dragonegg/trunk/src/Convert.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Convert.cpp?rev=138801&r1=138800&r2=138801&view=diff
==============================================================================
--- dragonegg/trunk/src/Convert.cpp (original)
+++ dragonegg/trunk/src/Convert.cpp Tue Aug 30 04:20:45 2011
@@ -3714,10 +3714,21 @@
   case BUILT_IN_VA_START:       return EmitBuiltinVAStart(stmt);
   case BUILT_IN_VA_END:         return EmitBuiltinVAEnd(stmt);
   case BUILT_IN_VA_COPY:        return EmitBuiltinVACopy(stmt);
-  case BUILT_IN_CONSTANT_P:     return EmitBuiltinConstantP(stmt, Result);
+
+  case BUILT_IN_ADJUST_TRAMPOLINE:
+    return EmitBuiltinAdjustTrampoline(stmt, Result);
   case BUILT_IN_ALLOCA:         return EmitBuiltinAlloca(stmt, Result);
-  case BUILT_IN_EXTEND_POINTER: return EmitBuiltinExtendPointer(stmt, Result);
+  case BUILT_IN_BZERO:          return EmitBuiltinBZero(stmt, Result);
+  case BUILT_IN_CONSTANT_P:     return EmitBuiltinConstantP(stmt, Result);
   case BUILT_IN_EXPECT:         return EmitBuiltinExpect(stmt, Result);
+  case BUILT_IN_EXTEND_POINTER: return EmitBuiltinExtendPointer(stmt, Result);
+  case BUILT_IN_EXTRACT_RETURN_ADDR:
+   return EmitBuiltinExtractReturnAddr(stmt, Result);
+  case BUILT_IN_FRAME_ADDRESS:  return EmitBuiltinReturnAddr(stmt, Result,true);
+  case BUILT_IN_FROB_RETURN_ADDR:
+   return EmitBuiltinFrobReturnAddr(stmt, Result);
+  case BUILT_IN_INIT_TRAMPOLINE:
+    return EmitBuiltinInitTrampoline(stmt, Result);
   case BUILT_IN_MEMCPY:         return EmitBuiltinMemCopy(stmt, Result,
                                                           false, false);
   case BUILT_IN_MEMCPY_CHK:     return EmitBuiltinMemCopy(stmt, Result,
@@ -3728,21 +3739,12 @@
                                                           true, true);
   case BUILT_IN_MEMSET:         return EmitBuiltinMemSet(stmt, Result, false);
   case BUILT_IN_MEMSET_CHK:     return EmitBuiltinMemSet(stmt, Result, true);
-  case BUILT_IN_BZERO:          return EmitBuiltinBZero(stmt, Result);
   case BUILT_IN_PREFETCH:       return EmitBuiltinPrefetch(stmt);
-  case BUILT_IN_FRAME_ADDRESS:  return EmitBuiltinReturnAddr(stmt, Result,true);
   case BUILT_IN_RETURN_ADDRESS:
     return EmitBuiltinReturnAddr(stmt, Result,false);
-  case BUILT_IN_STACK_SAVE:     return EmitBuiltinStackSave(stmt, Result);
   case BUILT_IN_STACK_RESTORE:  return EmitBuiltinStackRestore(stmt);
-  case BUILT_IN_EXTRACT_RETURN_ADDR:
-   return EmitBuiltinExtractReturnAddr(stmt, Result);
-  case BUILT_IN_FROB_RETURN_ADDR:
-   return EmitBuiltinFrobReturnAddr(stmt, Result);
-  case BUILT_IN_ADJUST_TRAMPOLINE:
-    return EmitBuiltinAdjustTrampoline(stmt, Result);
-  case BUILT_IN_INIT_TRAMPOLINE:
-    return EmitBuiltinInitTrampoline(stmt, Result);
+  case BUILT_IN_STACK_SAVE:     return EmitBuiltinStackSave(stmt, Result);
+  case BUILT_IN_UNREACHABLE:    return EmitBuiltinUnreachable();
 
   // Exception handling builtins.
   case BUILT_IN_EH_POINTER:
@@ -5021,6 +5023,10 @@
   return true;
 }
 
+bool TreeToLLVM::EmitBuiltinUnreachable() {
+  Builder.CreateUnreachable();
+  return true;
+}
 
 // Exception handling builtins.
 





More information about the llvm-commits mailing list