[llvm] r183633 - Fix a regression I introduced when I expanded the complex pseudos in

Reed Kotler rkotler at mips.com
Sun Jun 9 16:23:47 PDT 2013


Author: rkotler
Date: Sun Jun  9 18:23:46 2013
New Revision: 183633

URL: http://llvm.org/viewvc/llvm-project?rev=183633&view=rev
Log:
Fix a regression I introduced when I expanded the complex pseudos in
the Mips16 port. A few of the psuedos could either take signed
or unsigned arguments and I did not distinguish the case and improperly
rejected some valid cases that the assembler had previously accepted
when they were pure pseudos that expanded as assembly instructions.


Added:
    llvm/trunk/test/CodeGen/Mips/cmplarge.ll
Modified:
    llvm/trunk/lib/Target/Mips/Mips16ISelLowering.cpp
    llvm/trunk/lib/Target/Mips/Mips16ISelLowering.h

Modified: llvm/trunk/lib/Target/Mips/Mips16ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips16ISelLowering.cpp?rev=183633&r1=183632&r2=183633&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Mips16ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/Mips/Mips16ISelLowering.cpp Sun Jun  9 18:23:46 2013
@@ -131,17 +131,17 @@ Mips16TargetLowering::EmitInstrWithCusto
     // altogether.
     return emitFEXT_T8I816_ins(Mips::BtnezX16, Mips::SltuRxRy16, MI, BB);
   case Mips::BteqzT8CmpiX16: return emitFEXT_T8I8I16_ins(
-    Mips::BteqzX16, Mips::CmpiRxImm16, Mips::CmpiRxImmX16, MI, BB);
+    Mips::BteqzX16, Mips::CmpiRxImm16, Mips::CmpiRxImmX16, false, MI, BB);
   case Mips::BteqzT8SltiX16: return emitFEXT_T8I8I16_ins(
-    Mips::BteqzX16, Mips::SltiRxImm16, Mips::SltiRxImmX16, MI, BB);
+    Mips::BteqzX16, Mips::SltiRxImm16, Mips::SltiRxImmX16, true, MI, BB);
   case Mips::BteqzT8SltiuX16: return emitFEXT_T8I8I16_ins(
-    Mips::BteqzX16, Mips::SltiuRxImm16, Mips::SltiuRxImmX16, MI, BB);
+    Mips::BteqzX16, Mips::SltiuRxImm16, Mips::SltiuRxImmX16, false, MI, BB);
   case Mips::BtnezT8CmpiX16: return emitFEXT_T8I8I16_ins(
-    Mips::BtnezX16, Mips::CmpiRxImm16, Mips::CmpiRxImmX16, MI, BB);
+    Mips::BtnezX16, Mips::CmpiRxImm16, Mips::CmpiRxImmX16, false, MI, BB);
   case Mips::BtnezT8SltiX16: return emitFEXT_T8I8I16_ins(
-    Mips::BtnezX16, Mips::SltiRxImm16, Mips::SltiRxImmX16, MI, BB);
+    Mips::BtnezX16, Mips::SltiRxImm16, Mips::SltiRxImmX16, true, MI, BB);
   case Mips::BtnezT8SltiuX16: return emitFEXT_T8I8I16_ins(
-    Mips::BtnezX16, Mips::SltiuRxImm16, Mips::SltiuRxImmX16, MI, BB);
+    Mips::BtnezX16, Mips::SltiuRxImm16, Mips::SltiuRxImmX16, false, MI, BB);
     break;
   case Mips::SltCCRxRy16:
     return emitFEXT_CCRX16_ins(Mips::SltRxRy16, MI, BB);
@@ -629,7 +629,7 @@ MachineBasicBlock
 }
 
 MachineBasicBlock *Mips16TargetLowering::emitFEXT_T8I8I16_ins(
-  unsigned BtOpc, unsigned CmpiOpc, unsigned CmpiXOpc,
+  unsigned BtOpc, unsigned CmpiOpc, unsigned CmpiXOpc, bool ImmSigned,
   MachineInstr *MI,  MachineBasicBlock *BB) const {
   if (DontExpandCondPseudos16)
     return BB;
@@ -640,7 +640,8 @@ MachineBasicBlock *Mips16TargetLowering:
   unsigned CmpOpc;
   if (isUInt<8>(imm))
     CmpOpc = CmpiOpc;
-  else if (isUInt<16>(imm))
+  else if ((!ImmSigned && isUInt<16>(imm)) ||
+           (ImmSigned && isInt<16>(imm)))
     CmpOpc = CmpiXOpc;
   else
     llvm_unreachable("immediate field not usable");

Modified: llvm/trunk/lib/Target/Mips/Mips16ISelLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips16ISelLowering.h?rev=183633&r1=183632&r2=183633&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Mips16ISelLowering.h (original)
+++ llvm/trunk/lib/Target/Mips/Mips16ISelLowering.h Sun Jun  9 18:23:46 2013
@@ -64,7 +64,7 @@ namespace llvm {
                                            MachineBasicBlock *BB) const;
 
     MachineBasicBlock *emitFEXT_T8I8I16_ins(
-      unsigned BtOpc, unsigned CmpiOpc, unsigned CmpiXOpc,
+      unsigned BtOpc, unsigned CmpiOpc, unsigned CmpiXOpc, bool ImmSigned,
       MachineInstr *MI,  MachineBasicBlock *BB) const;
 
     MachineBasicBlock *emitFEXT_CCRX16_ins(

Added: llvm/trunk/test/CodeGen/Mips/cmplarge.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/cmplarge.ll?rev=183633&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Mips/cmplarge.ll (added)
+++ llvm/trunk/test/CodeGen/Mips/cmplarge.ll Sun Jun  9 18:23:46 2013
@@ -0,0 +1,6406 @@
+; RUN: llc -march=mipsel -mcpu=mips16 -relocation-model=pic < %s | FileCheck %s -check-prefix=cmp16
+
+%union.yystype = type { i32 }
+%struct.LIST_HELP = type { %struct.LIST_HELP*, i8* }
+%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
+%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
+%struct.MEMORY_RESOURCEHELP = type { i8*, i8*, i8*, i8*, i32, i32, i32 }
+%struct.signature = type { i8*, i32, i32, i32, i32, i32, %struct.LIST_HELP* }
+%union.yyalloc = type { %union.yystype }
+%struct.term = type { i32, %union.anon, %struct.LIST_HELP*, i32, i32 }
+%union.anon = type { %struct.LIST_HELP* }
+%struct.CLAUSE_HELP = type { i32, i32, i32, i32, i32*, i32, %struct.LIST_HELP*, %struct.LIST_HELP*, i32, i32, %struct.LITERAL_HELP**, i32, i32, i32, i32 }
+%struct.LITERAL_HELP = type { i32, i32, i32, %struct.CLAUSE_HELP*, %struct.term* }
+%struct.DFG_VARENTRY = type { i8*, i32 }
+
+ at dfg_nerrs = common global i32 0, align 4
+ at dfg_char = common global i32 0, align 4
+ at yypact = internal unnamed_addr constant [477 x i16] [i16 9, i16 -32, i16 35, i16 232, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -6, i16 13, i16 67, i16 20, i16 45, i16 53, i16 30, i16 -356, i16 110, i16 46, i16 118, i16 121, i16 -12, i16 73, i16 -356, i16 91, i16 84, i16 113, i16 112, i16 141, i16 123, i16 128, i16 132, i16 -356, i16 -356, i16 175, i16 152, i16 161, i16 155, i16 191, i16 2, i16 162, i16 180, i16 -356, i16 204, i16 232, i16 214, i16 173, i16 -356, i16 252, i16 176, i16 206, i16 209, i16 213, i16 226, i16 232, i16 47, i16 -356, i16 -356, i16 80, i16 218, i16 254, i16 224, i16 -14, i16 -356, i16 -356, i16 230, i16 233, i16 -356, i16 234, i16 241, i16 232, i16 242, i16 -356, i16 -356, i16 -356, i16 243, i16 237, i16 21, i16 244, i16 -356, i16 260, i16 -356, i16 246, i16 245, i16 250, i16 251, i16 294, i16 247, i16 248, i16 2, i16 232, i16 93, i16 -356, i16 -356, i16 232, i16 255, i16 272, i16 232, i16 253, i16 -356, i16 256, i16 -356, i16!
  232, i16
  257, i16 232, i16 290, i16 232, i16 232, i16 -356, i16 -356, i16 -356, i16 258, i16 21, i16 261, i16 -356, i16 271, i16 -356, i16 262, i16 264, i16 14, i16 263, i16 317, i16 108, i16 -356, i16 -356, i16 265, i16 266, i16 80, i16 119, i16 -356, i16 85, i16 268, i16 312, i16 -356, i16 124, i16 -356, i16 270, i16 273, i16 269, i16 -356, i16 274, i16 -356, i16 309, i16 275, i16 -356, i16 -52, i16 276, i16 277, i16 232, i16 279, i16 -356, i16 -356, i16 281, i16 -356, i16 -356, i16 -356, i16 284, i16 287, i16 288, i16 321, i16 -356, i16 -356, i16 286, i16 108, i16 -356, i16 -356, i16 289, i16 232, i16 232, i16 138, i16 -356, i16 -356, i16 156, i16 291, i16 293, i16 232, i16 -17, i16 232, i16 232, i16 232, i16 232, i16 346, i16 232, i16 -356, i16 232, i16 -356, i16 40, i16 296, i16 -356, i16 -356, i16 297, i16 299, i16 302, i16 300, i16 -356, i16 303, i16 -356, i16 -356, i16 285, i16 301, i16 85, i16 232, i16 143, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -3!
 56, i16 3
 37, i16 16, i16 304, i16 298, i16 306, i16 -356, i16 32, i16 -356, i16 311, i16 305, i16 -356, i16 56, i16 308, i16 314, i16 310, i16 -356, i16 -356, i16 315, i16 318, i16 -356, i16 -356, i16 108, i16 -356, i16 -356, i16 313, i16 319, i16 156, i16 -2, i16 320, i16 -356, i16 -356, i16 232, i16 232, i16 316, i16 322, i16 232, i16 232, i16 323, i16 324, i16 307, i16 325, i16 326, i16 -356, i16 240, i16 -356, i16 327, i16 329, i16 108, i16 -356, i16 -356, i16 -356, i16 331, i16 332, i16 334, i16 333, i16 -356, i16 335, i16 -356, i16 336, i16 -356, i16 -356, i16 145, i16 -356, i16 -356, i16 -356, i16 96, i16 -356, i16 -356, i16 -356, i16 338, i16 340, i16 -356, i16 -356, i16 342, i16 232, i16 163, i16 339, i16 -356, i16 -356, i16 239, i16 343, i16 232, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 344, i16 -356, i16 -356, i16 341, i16 347, i16 348, i16 350, i16 -356, i16 3, i16 -356, i16 -15, i16 -356, i16 -356, i16 -356, i16 42, i16 232, i16 -356, i16 43, i16 !
 -356, i16
  349, i16 351, i16 -356, i16 -356, i16 96, i16 232, i16 352, i16 96, i16 96, i16 353, i16 355, i16 357, i16 57, i16 358, i16 361, i16 -356, i16 359, i16 -356, i16 163, i16 108, i16 360, i16 362, i16 -356, i16 363, i16 364, i16 -356, i16 44, i16 -356, i16 -13, i16 -356, i16 366, i16 365, i16 -356, i16 168, i16 372, i16 -356, i16 369, i16 -356, i16 -356, i16 -356, i16 96, i16 -356, i16 96, i16 232, i16 371, i16 373, i16 341, i16 -356, i16 -356, i16 0, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 367, i16 -356, i16 370, i16 -356, i16 375, i16 -356, i16 306, i16 374, i16 228, i16 377, i16 379, i16 380, i16 341, i16 -356, i16 -356, i16 50, i16 381, i16 376, i16 382, i16 -356, i16 383, i16 -356, i16 384, i16 66, i16 -356, i16 -356, i16 386, i16 228, i16 387, i16 385, i16 -356, i16 -356, i16 388, i16 7, i16 -356, i16 -356, i16 -356, i16 389, i16 232, i16 239, i16 -356, i16 228, i16 -356, i16 69, i16 239, i16 393, i16 232, !
 i16 232, 
 i16 90, i16 96, i16 306, i16 390, i16 -356, i16 -356, i16 153, i16 -356, i16 -356, i16 391, i16 179, i16 -356, i16 396, i16 395, i16 -356, i16 397, i16 239, i16 398, i16 401, i16 -356, i16 402, i16 399, i16 -356, i16 168, i16 96, i16 409, i16 408, i16 185, i16 -356, i16 410, i16 411, i16 -356, i16 405, i16 168, i16 -356, i16 -356, i16 400, i16 412, i16 -356, i16 168, i16 413, i16 198, i16 345, i16 -356, i16 -356, i16 168, i16 168, i16 394, i16 -356, i16 168, i16 -356], align 2
+ at yytranslate = internal unnamed_addr constant [319 x i8] c"\00\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02 at A\02\02E\02B\02\02\02\02\02\02\02\02\02\02\02F\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02C\02D\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F !\22#$%&'()*+,-./0123456789:;<=>?", align 1
+ at yycheck = internal unnamed_addr constant [507 x i16] [i16 3, i16 46, i16 103, i16 3, i16 19, i16 19, i16 361, i16 9, i16 20, i16 276, i16 3, i16 8, i16 164, i16 65, i16 27, i16 6, i16 18, i16 69, i16 32, i16 31, i16 18, i16 38, i16 19, i16 23, i16 364, i16 18, i16 5, i16 40, i16 21, i16 22, i16 23, i16 24, i16 64, i16 12, i16 27, i16 0, i16 48, i16 40, i16 53, i16 41, i16 33, i16 34, i16 45, i16 41, i16 37, i16 47, i16 63, i16 40, i16 41, i16 47, i16 390, i16 11, i16 55, i16 3, i16 47, i16 322, i16 59, i16 17, i16 325, i16 65, i16 46, i16 416, i16 60, i16 56, i16 62, i16 8, i16 64, i16 60, i16 71, i16 62, i16 425, i16 57, i16 58, i16 23, i16 67, i16 19, i16 19, i16 27, i16 179, i16 66, i16 232, i16 65, i16 26, i16 16, i16 185, i16 69, i16 66, i16 90, i16 91, i16 36, i16 40, i16 358, i16 95, i16 360, i16 49, i16 98, i16 66, i16 65, i16 18, i16 3, i16 103, i16 69, i16 105, i16 18, i16 107, i16 108, i16 258, i16 65, i16 65, i16 65, i16 64, i16 69, i16 69, i16 69, i16 18, i16 !
 68, i16 6
 9, i16 21, i16 22, i16 23, i16 24, i16 41, i16 4, i16 27, i16 14, i16 128, i16 41, i16 47, i16 131, i16 33, i16 34, i16 65, i16 47, i16 37, i16 65, i16 69, i16 40, i16 41, i16 69, i16 66, i16 60, i16 449, i16 62, i16 47, i16 64, i16 60, i16 149, i16 62, i16 64, i16 64, i16 29, i16 459, i16 56, i16 254, i16 63, i16 65, i16 60, i16 465, i16 62, i16 69, i16 427, i16 68, i16 69, i16 471, i16 472, i16 168, i16 169, i16 475, i16 60, i16 61, i16 173, i16 3, i16 59, i16 176, i16 18, i16 178, i16 179, i16 180, i16 181, i16 67, i16 183, i16 18, i16 185, i16 450, i16 43, i16 337, i16 18, i16 68, i16 69, i16 66, i16 22, i16 23, i16 68, i16 69, i16 66, i16 27, i16 64, i16 41, i16 201, i16 202, i16 25, i16 33, i16 34, i16 47, i16 41, i16 37, i16 68, i16 69, i16 40, i16 41, i16 47, i16 68, i16 69, i16 68, i16 69, i16 47, i16 60, i16 65, i16 62, i16 64, i16 64, i16 68, i16 69, i16 60, i16 63, i16 62, i16 35, i16 64, i16 60, i16 67, i16 62, i16 51, i16 18, i16 19, i16 237, i16 21, i16 32, i!
 16 64, i1
 6 24, i16 242, i16 243, i16 27, i16 66, i16 246, i16 247, i16 290, i16 18, i16 68, i16 69, i16 21, i16 18, i16 254, i16 24, i16 68, i16 69, i16 41, i16 42, i16 18, i16 18, i16 19, i16 21, i16 47, i16 10, i16 24, i16 50, i16 37, i16 68, i16 69, i16 54, i16 41, i16 56, i16 65, i16 63, i16 41, i16 60, i16 47, i16 62, i16 64, i16 52, i16 47, i16 41, i16 41, i16 285, i16 286, i16 56, i16 67, i16 47, i16 47, i16 60, i16 292, i16 62, i16 67, i16 60, i16 39, i16 62, i16 56, i16 66, i16 64, i16 64, i16 60, i16 60, i16 62, i16 62, i16 66, i16 44, i16 64, i16 64, i16 64, i16 64, i16 15, i16 65, i16 314, i16 66, i16 63, i16 66, i16 64, i16 69, i16 45, i16 28, i16 66, i16 323, i16 65, i16 67, i16 65, i16 67, i16 64, i16 55, i16 64, i16 66, i16 65, i16 13, i16 19, i16 66, i16 336, i16 69, i16 67, i16 66, i16 64, i16 69, i16 30, i16 19, i16 386, i16 66, i16 69, i16 69, i16 66, i16 69, i16 66, i16 351, i16 65, i16 63, i16 65, i16 64, i16 7, i16 69, i16 66, i16 19, i16 66, i16 361, i16 66, !
 i16 405, 
 i16 65, i16 64, i16 66, i16 65, i16 63, i16 66, i16 66, i16 65, i16 65, i16 65, i16 64, i16 417, i16 65, i16 419, i16 69, i16 66, i16 422, i16 67, i16 65, i16 113, i16 66, i16 69, i16 65, i16 68, i16 66, i16 66, i16 128, i16 66, i16 66, i16 66, i16 66, i16 66, i16 66, i16 65, i16 64, i16 64, i16 442, i16 64, i16 66, i16 65, i16 62, i16 3, i16 201, i16 66, i16 69, i16 66, i16 65, i16 64, i16 66, i16 69, i16 64, i16 64, i16 416, i16 64, i16 70, i16 65, i16 65, i16 69, i16 64, i16 67, i16 424, i16 425, i16 66, i16 66, i16 64, i16 66, i16 65, i16 69, i16 66, i16 64, i16 66, i16 60, i16 69, i16 65, i16 64, i16 69, i16 64, i16 62, i16 69, i16 65, i16 67, i16 65, i16 64, i16 64, i16 64, i16 449, i16 65, i16 64, i16 40, i16 65, i16 68, i16 66, i16 237, i16 67, i16 65, i16 459, i16 69, i16 69, i16 66, i16 69, i16 65, i16 465, i16 68, i16 70, i16 67, i16 69, i16 67, i16 471, i16 472, i16 69, i16 69, i16 475, i16 65, i16 69, i16 65, i16 65, i16 65, i16 243, i16 66, i16 393, i16 411, i!
 16 90, i1
 6 405, i16 451, i16 393, i16 447, i16 419, i16 63, i16 -1, i16 336, i16 -1, i16 285, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 178], align 2
+ at yytable = internal unnamed_addr constant [507 x i16] [i16 10, i16 77, i16 139, i16 388, i16 331, i16 99, i16 384, i16 261, i16 30, i16 301, i16 293, i16 328, i16 196, i16 184, i16 362, i16 1, i16 262, i16 185, i16 62, i16 31, i16 5, i16 209, i16 329, i16 389, i16 387, i16 5, i16 110, i16 363, i16 67, i16 294, i16 295, i16 68, i16 3, i16 111, i16 296, i16 4, i16 32, i16 58, i16 332, i16 263, i16 297, i16 298, i16 65, i16 6, i16 299, i16 264, i16 210, i16 300, i16 6, i16 7, i16 407, i16 223, i16 88, i16 388, i16 7, i16 339, i16 94, i16 224, i16 342, i16 11, i16 154, i16 428, i16 8, i16 73, i16 9, i16 348, i16 55, i16 8, i16 106, i16 9, i16 436, i16 155, i16 156, i16 389, i16 425, i16 249, i16 349, i16 362, i16 213, i16 12, i16 257, i16 240, i16 250, i16 13, i16 221, i16 185, i16 15, i16 58, i16 126, i16 19, i16 363, i16 382, i16 130, i16 383, i16 16, i16 134, i16 21, i16 245, i16 5, i16 293, i16 138, i16 246, i16 141, i16 5, i16 144, i16 138, i16 284, i16 333, i16 335, i16 3!
 59, i16 2
 5, i16 176, i16 336, i16 360, i16 5, i16 89, i16 90, i16 67, i16 294, i16 295, i16 68, i16 6, i16 26, i16 296, i16 23, i16 94, i16 6, i16 7, i16 172, i16 297, i16 298, i16 418, i16 7, i16 299, i16 431, i16 419, i16 300, i16 6, i16 419, i16 34, i16 8, i16 454, i16 9, i16 7, i16 91, i16 8, i16 188, i16 9, i16 37, i16 169, i16 28, i16 464, i16 73, i16 281, i16 36, i16 437, i16 8, i16 468, i16 9, i16 360, i16 438, i16 127, i16 128, i16 473, i16 474, i16 198, i16 199, i16 476, i16 161, i16 162, i16 205, i16 369, i16 38, i16 208, i16 5, i16 138, i16 138, i16 214, i16 218, i16 40, i16 220, i16 5, i16 138, i16 455, i16 41, i16 354, i16 5, i16 167, i16 168, i16 43, i16 370, i16 371, i16 175, i16 176, i16 44, i16 372, i16 45, i16 6, i16 172, i16 235, i16 47, i16 373, i16 374, i16 7, i16 6, i16 375, i16 200, i16 201, i16 376, i16 6, i16 7, i16 236, i16 237, i16 291, i16 292, i16 7, i16 8, i16 50, i16 9, i16 52, i16 202, i16 441, i16 442, i16 8, i16 51, i16 9, i16 53, i16 314, i16 8, i!
 16 59, i1
 6 9, i16 60, i16 5, i16 66, i16 205, i16 67, i16 62, i16 78, i16 68, i16 267, i16 214, i16 69, i16 82, i16 271, i16 273, i16 319, i16 5, i16 444, i16 243, i16 67, i16 5, i16 138, i16 68, i16 458, i16 459, i16 6, i16 70, i16 5, i16 5, i16 280, i16 67, i16 7, i16 79, i16 68, i16 71, i16 400, i16 470, i16 471, i16 72, i16 6, i16 73, i16 83, i16 84, i16 6, i16 8, i16 7, i16 9, i16 85, i16 86, i16 7, i16 6, i16 6, i16 134, i16 315, i16 73, i16 95, i16 7, i16 7, i16 8, i16 321, i16 9, i16 98, i16 8, i16 96, i16 9, i16 73, i16 102, i16 103, i16 104, i16 8, i16 8, i16 9, i16 9, i16 109, i16 114, i16 105, i16 107, i16 108, i16 113, i16 121, i16 118, i16 334, i16 117, i16 119, i16 124, i16 120, i16 123, i16 132, i16 142, i16 136, i16 340, i16 137, i16 131, i16 147, i16 140, i16 149, i16 150, i16 158, i16 152, i16 153, i16 159, i16 174, i16 165, i16 315, i16 164, i16 173, i16 177, i16 178, i16 179, i16 182, i16 194, i16 403, i16 186, i16 181, i16 183, i16 189, i16 187, i16 190, i16 37!
 7, i16 19
 1, i16 192, i16 195, i16 193, i16 219, i16 232, i16 197, i16 239, i16 206, i16 214, i16 207, i16 403, i16 225, i16 242, i16 227, i16 228, i16 229, i16 230, i16 233, i16 231, i16 241, i16 248, i16 276, i16 429, i16 251, i16 403, i16 243, i16 253, i16 433, i16 247, i16 252, i16 148, i16 255, i16 258, i16 256, i16 269, i16 259, i16 266, i16 166, i16 270, i16 274, i16 275, i16 277, i16 278, i16 282, i16 283, i16 285, i16 286, i16 448, i16 287, i16 288, i16 289, i16 318, i16 388, i16 234, i16 310, i16 290, i16 311, i16 312, i16 322, i16 320, i16 323, i16 325, i16 326, i16 214, i16 327, i16 472, i16 338, i16 341, i16 337, i16 346, i16 345, i16 435, i16 214, i16 347, i16 350, i16 351, i16 355, i16 356, i16 352, i16 357, i16 367, i16 368, i16 380, i16 358, i16 381, i16 385, i16 393, i16 386, i16 413, i16 395, i16 397, i16 399, i16 404, i16 405, i16 406, i16 411, i16 377, i16 414, i16 417, i16 363, i16 423, i16 415, i16 420, i16 260, i16 422, i16 440, i16 377, i16 424, i16 427, i16 !
 434, i16 
 443, i16 445, i16 377, i16 446, i16 475, i16 449, i16 447, i16 465, i16 377, i16 377, i16 450, i16 451, i16 377, i16 457, i16 462, i16 460, i16 461, i16 466, i16 268, i16 469, i16 408, i16 426, i16 125, i16 421, i16 456, i16 409, i16 452, i16 430, i16 100, i16 0, i16 353, i16 0, i16 313, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 212], align 2
+ at dfg_lval = common global %union.yystype zeroinitializer, align 4
+ at yydefact = internal unnamed_addr constant [477 x i8] c"\00\00\00\00\01bca`_\00\00\00\00\12\00\00\AE2\00\00\14\00\00G\00\00\08\00\1A\00\00\00\AF4h\00\00\00\0A\00\00 \02\00\00\00\00H\8C\00\00\00\00\00\00\00\16\18\00\00$\00\00\C0\B1\00\00~\00\00\00\00}56|\00\00\00i\A8\04\00\00\00\00\00\00\00\00\00\00\1C\1E\00\00*\00\00\C1\003\00\00\00>\00\008EF\00\00\00\8D\11\05\00\00\00\00\0C\00\15\17\00\00\00\00\22\00\00\00\C3\00\B0\00\88\00:\00?\00\00\8A\00\00\00\00\00\A9\09\00\0E\10\0F\00\00\00\0010\00\00\1B\1D\00\00\00\00&(\00\00\00\00\00\00\00\00\00\00\00\80\00I\00\00\AA\0B\00\00\00\00\19\00!#\00\00\00\00\00,.\13\C2\C4\B5\B3\00\00\00f;d\00B\00\00\8B\00\00\00\00\AC\06\00\00\03\1F\00%'\00\00\00\00\00\89\7F\00\00\00\00\00\00\00\00\00\00\00\8E\00\07\00\00\00+-\B4\00\00\00\00\B2\00e\009C\00 at 7DTmk\90\00\00\0D)\00\00\00\00\B6g\00\00\00[X]^YZ\00\5CUK\00\00\00M\00\81\00\AB\AD/\00\00\BC\00\BA\00\00=A\00\00\00\00\00\00\00\00\00\00\00\B8\00\B7\00\00\00\00L\00\00V\00Qoj\00\00\8F\00\00\BB\00<NJ\00P\0!
 0\00\00\0
 0Kpq\83l\9F\9C\A2\A1\9D\9E\9B\A0\9A\00\98\BE\B9\00WR\00\00\00\00\00K\84\85\00\A3\00\00O\00r\00\00vx\00\00\00\00\A6\A7\00\00\99\BF\BD\00\00\00u\00n\00\00\00\00\00\00\00s\00w\87\00z\82\00\00\A4\00\00y\00\00\00\00S\00\00{\00\00\00\00\00\92\00\00\86\94\00\A5t\00\00\93\00\00\00\00\91\95\00\00\00\96\00\97", align 1
+ at yyr2 = internal unnamed_addr constant [197 x i8] c"\00\02\0A\0B\05\05\05\05\00\05\00\05\00\05\01\01\01\06\00\09\00\05\01\03\01\05\00\05\01\03\01\05\00\05\01\03\00\05\01\03\01\05\00\05\01\03\01\05\01\01\00\05\00\02\01\07\02\07\00\00\0B\09\00\01\01\03\01\03\08\01\01\00\02\00\07\00\02\01\04\06\04\00\00\0A\00\01\01\03\01\01\01\01\01\01\01\01\01\01\01\01\01\03\01\04\00\02\0A\00\0B\00\07\00\01\01\00\00\0A\04\01\03\01\04\01\03\01\01\01\06\04\00\07\00\01\01\08\04\01\04\01\03\00\02\00\09\00\0F\01\03\00\04\03\05\00\03\01\01\01\01\01\01\01\01\01\00\03\07\01\01\00\02\00\06\00\03\00\02\05\00\09\01\03\00\03\04\04\06\01\03\01\06\00\02\01\02\05\01\03", align 1
+ at dfg_DESC.0 = internal unnamed_addr global i8* null
+ at dfg_DESC.1 = internal unnamed_addr global i8* null
+ at dfg_DESC.2 = internal unnamed_addr global i8* null
+ at dfg_DESC.3 = internal unnamed_addr global i8* null
+ at dfg_DESC.4 = internal unnamed_addr global i32 0
+ at dfg_DESC.5 = internal unnamed_addr global i8* null
+ at dfg_DESC.6 = internal unnamed_addr global i8* null
+ at dfg_SORTDECLLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at dfg_AXIOMLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at dfg_CONJECLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at dfg_IGNORE = internal unnamed_addr global i32 0, align 4
+ at .str = private unnamed_addr constant [9 x i8] c"set_flag\00", align 1
+ at .str1 = private unnamed_addr constant [12 x i8] c"set_DomPred\00", align 1
+ at .str2 = private unnamed_addr constant [15 x i8] c"set_precedence\00", align 1
+ at stdout = external global %struct._IO_FILE*
+ at .str3 = private unnamed_addr constant [38 x i8] c"\0A Line %d: Symbol is not a variable.\0A\00", align 1
+ at dfg_LINENUMBER = common global i32 0, align 4
+ at .str4 = private unnamed_addr constant [39 x i8] c"\0A Line %d: Symbol is not a predicate.\0A\00", align 1
+ at dfg_AXCLAUSES = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at dfg_CONCLAUSES = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at .str5 = private unnamed_addr constant [6 x i8] c"SPASS\00", align 1
+ at dfg_PROOFLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at .str6 = private unnamed_addr constant [11 x i8] c"splitlevel\00", align 1
+ at dfg_TERMLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at dfg_IGNORETEXT = common global i32 0, align 4
+ at .str7 = private unnamed_addr constant [22 x i8] c"\0A Undefined symbol %s\00", align 1
+ at .str8 = private unnamed_addr constant [19 x i8] c" in DomPred list.\0A\00", align 1
+ at .str9 = private unnamed_addr constant [30 x i8] c"\0A Symbol %s isn't a predicate\00", align 1
+ at .str10 = private unnamed_addr constant [24 x i8] c"\0A Found unknown flag %s\00", align 1
+ at dfg_FLAGS = internal unnamed_addr global i32* null, align 4
+ at .str11 = private unnamed_addr constant [23 x i8] c"\0A Undefined symbol %s \00", align 1
+ at .str12 = private unnamed_addr constant [22 x i8] c" in precedence list.\0A\00", align 1
+ at dfg_PRECEDENCE = internal unnamed_addr global i32* null, align 4
+ at dfg_USERPRECEDENCE = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at .str13 = private unnamed_addr constant [21 x i8] c"in precedence list.\0A\00", align 1
+ at .str14 = private unnamed_addr constant [27 x i8] c"\0A Invalid symbol status %s\00", align 1
+ at .str15 = private unnamed_addr constant [21 x i8] c" in precedence list.\00", align 1
+ at yyr1 = internal unnamed_addr constant [197 x i8] c"\00GHIJKLMNNOOPPQQQRSSTTUUVVWWXXYYZZ[[\5C\5C]]^^__``aabbccddeeeefgehiijjkklmmnnooppqqqqrsqttuuvvvwwxxyyyyyzz{{||}~}\7F\7F\80\80\81\82\83\81\84\85\85\86\86\87\87\88\88\88\88\88\89\89\8A\8A\8B\8B\8C\8D\8D\8E\8E\8F\8F\91\90\92\92\93\93\94\94\95\95\97\96\98\98\98\98\98\98\98\98\98\99\99\99\9A\9A\9B\9B\9D\9C\9E\9E\9F\9F\A0\A1\A0\A2\A2\A3\A3\A4\A4\A4\A5\A5\A6\A6\A7\A7\A8\A8\A9\AA\AA", align 1
+ at yypgoto = internal unnamed_addr constant [100 x i16] [i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 392, i16 -356, i16 -356, i16 259, i16 -356, i16 -356, i16 -356, i16 -356, i16 202, i16 -356, i16 -356, i16 216, i16 -152, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 267, i16 -356, i16 -356, i16 -340, i16 -267, i16 -356, i16 -356, i16 -356, i16 70, i16 -356, i16 -356, i16 -356, i16 -3, i16 -355, i16 235, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 87, i16 -356, i16 -356, i16 33, i16 78, i16 68, i16 -356, i16 -45, i16 -356, i16 -356, i16 92, i16 39, i16 -101, i16 328, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -308, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 -356, i16 154!
 , i16 -35
 6, i16 -356, i16 425, i16 207], align 2
+ at yydefgoto = internal unnamed_addr constant [100 x i16] [i16 -1, i16 2, i16 14, i16 20, i16 27, i16 87, i16 122, i16 39, i16 54, i16 160, i16 157, i16 17, i16 18, i16 29, i16 56, i16 57, i16 42, i16 92, i16 93, i16 61, i16 129, i16 97, i16 170, i16 171, i16 133, i16 203, i16 204, i16 163, i16 24, i16 46, i16 74, i16 180, i16 244, i16 75, i16 143, i16 272, i16 217, i16 48, i16 112, i16 35, i16 222, i16 324, i16 343, i16 361, i16 398, i16 302, i16 344, i16 303, i16 304, i16 305, i16 76, i16 215, i16 216, i16 49, i16 80, i16 308, i16 307, i16 364, i16 365, i16 416, i16 439, i16 366, i16 401, i16 402, i16 432, i16 306, i16 330, i16 390, i16 391, i16 392, i16 145, i16 146, i16 81, i16 115, i16 279, i16 309, i16 453, i16 463, i16 467, i16 378, i16 394, i16 379, i16 412, i16 410, i16 116, i16 151, i16 226, i16 254, i16 22, i16 33, i16 101, i16 211, i16 238, i16 265, i16 316, i16 317, i16 396, i16 63, i16 64, i16 135], align 2
+ at yytname = internal unnamed_addr constant [172 x i8*] [i8* getelementptr inbounds ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str61, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str62, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str63, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str64, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str65, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str66, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str67, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str68, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8]* @.str69, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str70, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str71, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str72, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str73, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str74, i32 0, i3!
 2 0), i8*
  getelementptr inbounds ([9 x i8]* @.str75, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str76, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str77, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str78, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str79, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str80, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str81, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str82, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str83, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str84, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str85, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str86, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str87, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str88, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str89, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str90, i!
 32 0, i32
  0), i8* getelementptr inbounds ([11 x i8]* @.str91, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str93, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str94, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str95, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str96, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str97, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str98, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str99, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str100, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str101, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str102, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str103, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str104, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str105, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]!
 * @.str10
 6, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str107, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str108, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str109, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str110, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str111, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str112, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str113, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str114, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str115, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str116, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str117, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str118, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str119, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str120, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str121, i32 0, i32 0), i8* getelement!
 ptr inbou
 nds ([7 x i8]* @.str122, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str123, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str124, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str125, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str126, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str127, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str128, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str129, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str130, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str131, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str132, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str133, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str134, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str135, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str136, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str137, i32 0, i32 0), i8!
 * getelem
 entptr inbounds ([11 x i8]* @.str138, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str139, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str140, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str141, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str142, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str143, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str144, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str145, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str146, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str147, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str148, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str149, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str150, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str151, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str152, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str1!
 53, i32 0
 , i32 0), i8* getelementptr inbounds ([3 x i8]* @.str154, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8]* @.str155, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8]* @.str156, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str157, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str158, i32 0, i32 0), i8* getelementptr inbounds ([19 x i8]* @.str159, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str160, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str161, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str162, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str163, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str164, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str165, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str166, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str167, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str168, i32 0, i32 0), i8* getelementptr inbounds !
 ([7 x i8]
 * @.str169, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8]* @.str170, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8]* @.str171, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str172, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str173, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str174, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str175, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str176, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str177, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str178, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str179, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str180, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str181, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str182, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str183, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8]* @.str184, i32 0, i32 0), i8* getel!
 ementptr 
 inbounds ([11 x i8]* @.str185, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str186, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str187, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str188, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str189, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str190, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str191, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str192, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str193, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str194, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str195, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str196, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str197, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str198, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str199, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str200, i32 !
 0, i32 0)
 , i8* getelementptr inbounds ([5 x i8]* @.str201, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str202, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str203, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str204, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str205, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str206, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str207, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8]* @.str208, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str209, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8]* @.str210, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str211, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str212, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str213, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str214, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8]* @.str215, i32 0, i32 0), i8* getelementptr inbounds ([12 !
 x i8]* @.
 str216, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str217, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str218, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8]* @.str219, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str220, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str221, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str222, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str223, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str224, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str225, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str226, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str227, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str228, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str229, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str230, i32 0, i32 0), i8* null], align 4
+ at .str16 = private unnamed_addr constant [25 x i8] c"parse error, unexpected \00", align 1
+ at .str17 = private unnamed_addr constant [13 x i8] c", expecting \00", align 1
+ at .str18 = private unnamed_addr constant [5 x i8] c" or \00", align 1
+ at .str20 = private unnamed_addr constant [12 x i8] c"parse error\00", align 1
+ at .str21 = private unnamed_addr constant [22 x i8] c"parser stack overflow\00", align 1
+ at .str22 = private unnamed_addr constant [15 x i8] c"\0A Line %i: %s\0A\00", align 1
+ at .str24 = private unnamed_addr constant [12 x i8] c"satisfiable\00", align 1
+ at .str25 = private unnamed_addr constant [14 x i8] c"unsatisfiable\00", align 1
+ at .str26 = private unnamed_addr constant [8 x i8] c"unknown\00", align 1
+ at stderr = external global %struct._IO_FILE*
+ at .str27 = private unnamed_addr constant [31 x i8] c"\0A\09Error in file %s at line %d\0A\00", align 1
+ at .str28 = private unnamed_addr constant [12 x i8] c"dfgparser.y\00", align 1
+ at .str29 = private unnamed_addr constant [47 x i8] c"\0A In dfg_ProblemStatusString: Invalid status.\0A\00", align 1
+ at .str30 = private unnamed_addr constant [133 x i8] c"\0A Please report this error via email to spass at mpi-sb.mpg.de including\0A the SPASS version, input problem, options, operating system.\0A\00", align 1
+ at .str31 = private unnamed_addr constant [30 x i8] c"list_of_descriptions.\0A  name(\00", align 1
+ at .str32 = private unnamed_addr constant [6 x i8] c"{* *}\00", align 1
+ at .str33 = private unnamed_addr constant [13 x i8] c").\0A  author(\00", align 1
+ at .str34 = private unnamed_addr constant [4 x i8] c").\0A\00", align 1
+ at .str35 = private unnamed_addr constant [11 x i8] c"  version(\00", align 1
+ at .str36 = private unnamed_addr constant [9 x i8] c"  logic(\00", align 1
+ at .str37 = private unnamed_addr constant [10 x i8] c"  status(\00", align 1
+ at .str38 = private unnamed_addr constant [18 x i8] c").\0A  description(\00", align 1
+ at .str39 = private unnamed_addr constant [8 x i8] c"  date(\00", align 1
+ at .str40 = private unnamed_addr constant [13 x i8] c"end_of_list.\00", align 1
+ at dfg_VARLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at .str41 = private unnamed_addr constant [55 x i8] c"\0A In dfg_VarCheck: List of variables should be empty!\0A\00", align 1
+ at symbol_STANDARDVARCOUNTER = external global i32
+ at memory_FREEDBYTES = external global i32
+ at memory_ARRAY = external global [0 x %struct.MEMORY_RESOURCEHELP*]
+ at dfg_VARDECL = internal unnamed_addr global i1 false
+ at dfg_SYMBOLLIST = internal unnamed_addr global %struct.LIST_HELP* null, align 4
+ at symbol_TYPESTATBITS = external constant i32
+ at symbol_SIGNATURE = external global %struct.signature**
+ at .str42 = private unnamed_addr constant [44 x i8] c"\0A Line %d: Symbol is not a sort predicate.\0A\00", align 1
+ at .str43 = private unnamed_addr constant [33 x i8] c"\0A Line %d: undefined symbol %s.\0A\00", align 1
+ at .str44 = private unnamed_addr constant [38 x i8] c"\0A Line %d: Symbol is not a function.\0A\00", align 1
+ at symbol_TYPEMASK = external constant i32
+ at fol_FALSE = external global i32
+ at fol_TRUE = external global i32
+ at .str45 = private unnamed_addr constant [33 x i8] c"\0A Line %d: Undefined symbol %s.\0A\00", align 1
+ at .str46 = private unnamed_addr constant [30 x i8] c"\0A Line %u: Free Variable %s.\0A\00", align 1
+ at .str47 = private unnamed_addr constant [11 x i8] c"\0A Line %u:\00", align 1
+ at .str48 = private unnamed_addr constant [21 x i8] c" The actual arity %u\00", align 1
+ at .str49 = private unnamed_addr constant [22 x i8] c" of symbol %s differs\00", align 1
+ at .str50 = private unnamed_addr constant [30 x i8] c" from the previous arity %u.\0A\00", align 1
+ at .str51 = private unnamed_addr constant [50 x i8] c"\0A Line %u: Symbol %s was declared with arity %u.\0A\00", align 1
+ at .str52 = private unnamed_addr constant [58 x i8] c"\0A Line %u: symbols with arbitrary arity are not allowed.\0A\00", align 1
+ at .str53 = private unnamed_addr constant [46 x i8] c"\0A Line %u: symbol %s was already declared as \00", align 1
+ at .str54 = private unnamed_addr constant [11 x i8] c"function.\0A\00", align 1
+ at .str55 = private unnamed_addr constant [12 x i8] c"predicate.\0A\00", align 1
+ at .str56 = private unnamed_addr constant [10 x i8] c"junctor.\0A\00", align 1
+ at .str57 = private unnamed_addr constant [15 x i8] c"unknown type.\0A\00", align 1
+ at .str58 = private unnamed_addr constant [57 x i8] c"\0A Line %u: symbol %s was already declared with arity %d\0A\00", align 1
+ at stack_POINTER = external global i32
+ at dfg_in = external global %struct._IO_FILE*
+ at .str59 = private unnamed_addr constant [3 x i8] c"\0A\0A\00", align 1
+ at .str60 = private unnamed_addr constant [5 x i8] c"$end\00", align 1
+ at .str61 = private unnamed_addr constant [6 x i8] c"error\00", align 1
+ at .str62 = private unnamed_addr constant [11 x i8] c"$undefined\00", align 1
+ at .str63 = private unnamed_addr constant [8 x i8] c"DFG_AND\00", align 1
+ at .str64 = private unnamed_addr constant [11 x i8] c"DFG_AUTHOR\00", align 1
+ at .str65 = private unnamed_addr constant [11 x i8] c"DFG_AXIOMS\00", align 1
+ at .str66 = private unnamed_addr constant [12 x i8] c"DFG_BEGPROB\00", align 1
+ at .str67 = private unnamed_addr constant [7 x i8] c"DFG_BY\00", align 1
+ at .str68 = private unnamed_addr constant [11 x i8] c"DFG_CLAUSE\00", align 1
+ at .str69 = private unnamed_addr constant [15 x i8] c"DFG_CLOSEBRACE\00", align 1
+ at .str70 = private unnamed_addr constant [12 x i8] c"DFG_CLSLIST\00", align 1
+ at .str71 = private unnamed_addr constant [8 x i8] c"DFG_CNF\00", align 1
+ at .str72 = private unnamed_addr constant [12 x i8] c"DFG_CONJECS\00", align 1
+ at .str73 = private unnamed_addr constant [9 x i8] c"DFG_DATE\00", align 1
+ at .str74 = private unnamed_addr constant [13 x i8] c"DFG_DECLLIST\00", align 1
+ at .str75 = private unnamed_addr constant [9 x i8] c"DFG_DESC\00", align 1
+ at .str76 = private unnamed_addr constant [13 x i8] c"DFG_DESCLIST\00", align 1
+ at .str77 = private unnamed_addr constant [8 x i8] c"DFG_DNF\00", align 1
+ at .str78 = private unnamed_addr constant [12 x i8] c"DFG_DOMPRED\00", align 1
+ at .str79 = private unnamed_addr constant [12 x i8] c"DFG_ENDLIST\00", align 1
+ at .str80 = private unnamed_addr constant [12 x i8] c"DFG_ENDPROB\00", align 1
+ at .str81 = private unnamed_addr constant [10 x i8] c"DFG_EQUAL\00", align 1
+ at .str82 = private unnamed_addr constant [10 x i8] c"DFG_EQUIV\00", align 1
+ at .str83 = private unnamed_addr constant [11 x i8] c"DFG_EXISTS\00", align 1
+ at .str84 = private unnamed_addr constant [10 x i8] c"DFG_FALSE\00", align 1
+ at .str85 = private unnamed_addr constant [13 x i8] c"DFG_FORMLIST\00", align 1
+ at .str86 = private unnamed_addr constant [12 x i8] c"DFG_FORMULA\00", align 1
+ at .str87 = private unnamed_addr constant [11 x i8] c"DFG_FORALL\00", align 1
+ at .str88 = private unnamed_addr constant [11 x i8] c"DFG_FREELY\00", align 1
+ at .str89 = private unnamed_addr constant [9 x i8] c"DFG_FUNC\00", align 1
+ at .str90 = private unnamed_addr constant [14 x i8] c"DFG_GENERATED\00", align 1
+ at .str91 = private unnamed_addr constant [11 x i8] c"DFG_GENSET\00", align 1
+ at .str92 = private unnamed_addr constant [11 x i8] c"DFG_HYPOTH\00", align 1
+ at .str93 = private unnamed_addr constant [12 x i8] c"DFG_IMPLIED\00", align 1
+ at .str94 = private unnamed_addr constant [12 x i8] c"DFG_IMPLIES\00", align 1
+ at .str95 = private unnamed_addr constant [10 x i8] c"DFG_LOGIC\00", align 1
+ at .str96 = private unnamed_addr constant [9 x i8] c"DFG_NAME\00", align 1
+ at .str97 = private unnamed_addr constant [8 x i8] c"DFG_NOT\00", align 1
+ at .str98 = private unnamed_addr constant [14 x i8] c"DFG_OPENBRACE\00", align 1
+ at .str99 = private unnamed_addr constant [11 x i8] c"DFG_OPERAT\00", align 1
+ at .str100 = private unnamed_addr constant [7 x i8] c"DFG_OR\00", align 1
+ at .str101 = private unnamed_addr constant [9 x i8] c"DFG_PREC\00", align 1
+ at .str102 = private unnamed_addr constant [9 x i8] c"DFG_PRED\00", align 1
+ at .str103 = private unnamed_addr constant [12 x i8] c"DFG_PRDICAT\00", align 1
+ at .str104 = private unnamed_addr constant [12 x i8] c"DFG_PRFLIST\00", align 1
+ at .str105 = private unnamed_addr constant [12 x i8] c"DFG_QUANTIF\00", align 1
+ at .str106 = private unnamed_addr constant [10 x i8] c"DFG_SATIS\00", align 1
+ at .str107 = private unnamed_addr constant [12 x i8] c"DFG_SETFLAG\00", align 1
+ at .str108 = private unnamed_addr constant [13 x i8] c"DFG_SETTINGS\00", align 1
+ at .str109 = private unnamed_addr constant [12 x i8] c"DFG_SYMLIST\00", align 1
+ at .str110 = private unnamed_addr constant [9 x i8] c"DFG_SORT\00", align 1
+ at .str111 = private unnamed_addr constant [10 x i8] c"DFG_SORTS\00", align 1
+ at .str112 = private unnamed_addr constant [11 x i8] c"DFG_STATUS\00", align 1
+ at .str113 = private unnamed_addr constant [9 x i8] c"DFG_STEP\00", align 1
+ at .str114 = private unnamed_addr constant [12 x i8] c"DFG_SUBSORT\00", align 1
+ at .str115 = private unnamed_addr constant [13 x i8] c"DFG_TERMLIST\00", align 1
+ at .str116 = private unnamed_addr constant [9 x i8] c"DFG_TRUE\00", align 1
+ at .str117 = private unnamed_addr constant [12 x i8] c"DFG_UNKNOWN\00", align 1
+ at .str118 = private unnamed_addr constant [12 x i8] c"DFG_UNSATIS\00", align 1
+ at .str119 = private unnamed_addr constant [12 x i8] c"DFG_VERSION\00", align 1
+ at .str120 = private unnamed_addr constant [8 x i8] c"DFG_NUM\00", align 1
+ at .str121 = private unnamed_addr constant [11 x i8] c"DFG_MINUS1\00", align 1
+ at .str122 = private unnamed_addr constant [7 x i8] c"DFG_ID\00", align 1
+ at .str123 = private unnamed_addr constant [9 x i8] c"DFG_TEXT\00", align 1
+ at .str124 = private unnamed_addr constant [4 x i8] c"'('\00", align 1
+ at .str125 = private unnamed_addr constant [4 x i8] c"')'\00", align 1
+ at .str126 = private unnamed_addr constant [4 x i8] c"'.'\00", align 1
+ at .str127 = private unnamed_addr constant [4 x i8] c"'['\00", align 1
+ at .str128 = private unnamed_addr constant [4 x i8] c"']'\00", align 1
+ at .str129 = private unnamed_addr constant [4 x i8] c"','\00", align 1
+ at .str130 = private unnamed_addr constant [4 x i8] c"':'\00", align 1
+ at .str131 = private unnamed_addr constant [8 x i8] c"$accept\00", align 1
+ at .str132 = private unnamed_addr constant [8 x i8] c"problem\00", align 1
+ at .str133 = private unnamed_addr constant [12 x i8] c"description\00", align 1
+ at .str134 = private unnamed_addr constant [5 x i8] c"name\00", align 1
+ at .str135 = private unnamed_addr constant [7 x i8] c"author\00", align 1
+ at .str136 = private unnamed_addr constant [7 x i8] c"status\00", align 1
+ at .str137 = private unnamed_addr constant [9 x i8] c"desctext\00", align 1
+ at .str138 = private unnamed_addr constant [11 x i8] c"versionopt\00", align 1
+ at .str139 = private unnamed_addr constant [9 x i8] c"logicopt\00", align 1
+ at .str140 = private unnamed_addr constant [8 x i8] c"dateopt\00", align 1
+ at .str141 = private unnamed_addr constant [10 x i8] c"log_state\00", align 1
+ at .str142 = private unnamed_addr constant [12 x i8] c"logicalpart\00", align 1
+ at .str143 = private unnamed_addr constant [14 x i8] c"symbollistopt\00", align 1
+ at .str144 = private unnamed_addr constant [13 x i8] c"functionsopt\00", align 1
+ at .str145 = private unnamed_addr constant [13 x i8] c"functionlist\00", align 1
+ at .str146 = private unnamed_addr constant [5 x i8] c"func\00", align 1
+ at .str147 = private unnamed_addr constant [14 x i8] c"predicatesopt\00", align 1
+ at .str148 = private unnamed_addr constant [14 x i8] c"predicatelist\00", align 1
+ at .str149 = private unnamed_addr constant [5 x i8] c"pred\00", align 1
+ at .str150 = private unnamed_addr constant [9 x i8] c"sortsopt\00", align 1
+ at .str151 = private unnamed_addr constant [9 x i8] c"sortlist\00", align 1
+ at .str152 = private unnamed_addr constant [13 x i8] c"operatorsopt\00", align 1
+ at .str153 = private unnamed_addr constant [13 x i8] c"operatorlist\00", align 1
+ at .str154 = private unnamed_addr constant [3 x i8] c"op\00", align 1
+ at .str155 = private unnamed_addr constant [15 x i8] c"quantifiersopt\00", align 1
+ at .str156 = private unnamed_addr constant [15 x i8] c"quantifierlist\00", align 1
+ at .str157 = private unnamed_addr constant [6 x i8] c"quant\00", align 1
+ at .str158 = private unnamed_addr constant [7 x i8] c"number\00", align 1
+ at .str159 = private unnamed_addr constant [19 x i8] c"declarationlistopt\00", align 1
+ at .str160 = private unnamed_addr constant [12 x i8] c"decllistopt\00", align 1
+ at .str161 = private unnamed_addr constant [5 x i8] c"decl\00", align 1
+ at .str162 = private unnamed_addr constant [3 x i8] c"@1\00", align 1
+ at .str163 = private unnamed_addr constant [3 x i8] c"@2\00", align 1
+ at .str164 = private unnamed_addr constant [8 x i8] c"gendecl\00", align 1
+ at .str165 = private unnamed_addr constant [10 x i8] c"freelyopt\00", align 1
+ at .str166 = private unnamed_addr constant [9 x i8] c"funclist\00", align 1
+ at .str167 = private unnamed_addr constant [9 x i8] c"sortdecl\00", align 1
+ at .str168 = private unnamed_addr constant [12 x i8] c"formulalist\00", align 1
+ at .str169 = private unnamed_addr constant [7 x i8] c"origin\00", align 1
+ at .str170 = private unnamed_addr constant [16 x i8] c"formulalistsopt\00", align 1
+ at .str171 = private unnamed_addr constant [15 x i8] c"formulalistopt\00", align 1
+ at .str172 = private unnamed_addr constant [9 x i8] c"labelopt\00", align 1
+ at .str173 = private unnamed_addr constant [8 x i8] c"formula\00", align 1
+ at .str174 = private unnamed_addr constant [3 x i8] c"@3\00", align 1
+ at .str175 = private unnamed_addr constant [3 x i8] c"@4\00", align 1
+ at .str176 = private unnamed_addr constant [11 x i8] c"formulaopt\00", align 1
+ at .str177 = private unnamed_addr constant [8 x i8] c"arglist\00", align 1
+ at .str178 = private unnamed_addr constant [10 x i8] c"binsymbol\00", align 1
+ at .str179 = private unnamed_addr constant [8 x i8] c"nsymbol\00", align 1
+ at .str180 = private unnamed_addr constant [12 x i8] c"quantsymbol\00", align 1
+ at .str181 = private unnamed_addr constant [3 x i8] c"id\00", align 1
+ at .str182 = private unnamed_addr constant [10 x i8] c"qtermlist\00", align 1
+ at .str183 = private unnamed_addr constant [6 x i8] c"qterm\00", align 1
+ at .str184 = private unnamed_addr constant [15 x i8] c"clauselistsopt\00", align 1
+ at .str185 = private unnamed_addr constant [11 x i8] c"clauselist\00", align 1
+ at .str186 = private unnamed_addr constant [3 x i8] c"@5\00", align 1
+ at .str187 = private unnamed_addr constant [14 x i8] c"cnfclausesopt\00", align 1
+ at .str188 = private unnamed_addr constant [13 x i8] c"cnfclauseopt\00", align 1
+ at .str189 = private unnamed_addr constant [10 x i8] c"cnfclause\00", align 1
+ at .str190 = private unnamed_addr constant [3 x i8] c"@6\00", align 1
+ at .str191 = private unnamed_addr constant [3 x i8] c"@7\00", align 1
+ at .str192 = private unnamed_addr constant [14 x i8] c"cnfclausebody\00", align 1
+ at .str193 = private unnamed_addr constant [8 x i8] c"litlist\00", align 1
+ at .str194 = private unnamed_addr constant [4 x i8] c"lit\00", align 1
+ at .str195 = private unnamed_addr constant [9 x i8] c"atomlist\00", align 1
+ at .str196 = private unnamed_addr constant [5 x i8] c"atom\00", align 1
+ at .str197 = private unnamed_addr constant [14 x i8] c"dnfclausesopt\00", align 1
+ at .str198 = private unnamed_addr constant [13 x i8] c"dnfclauseopt\00", align 1
+ at .str199 = private unnamed_addr constant [10 x i8] c"dnfclause\00", align 1
+ at .str200 = private unnamed_addr constant [14 x i8] c"dnfclausebody\00", align 1
+ at .str201 = private unnamed_addr constant [5 x i8] c"term\00", align 1
+ at .str202 = private unnamed_addr constant [9 x i8] c"termlist\00", align 1
+ at .str203 = private unnamed_addr constant [14 x i8] c"prooflistsopt\00", align 1
+ at .str204 = private unnamed_addr constant [10 x i8] c"prooflist\00", align 1
+ at .str205 = private unnamed_addr constant [3 x i8] c"@8\00", align 1
+ at .str206 = private unnamed_addr constant [13 x i8] c"prooflistopt\00", align 1
+ at .str207 = private unnamed_addr constant [11 x i8] c"parentlist\00", align 1
+ at .str208 = private unnamed_addr constant [13 x i8] c"assoclistopt\00", align 1
+ at .str209 = private unnamed_addr constant [10 x i8] c"assoclist\00", align 1
+ at .str210 = private unnamed_addr constant [14 x i8] c"id_or_formula\00", align 1
+ at .str211 = private unnamed_addr constant [3 x i8] c"@9\00", align 1
+ at .str212 = private unnamed_addr constant [10 x i8] c"anysymbol\00", align 1
+ at .str213 = private unnamed_addr constant [8 x i8] c"optargs\00", align 1
+ at .str214 = private unnamed_addr constant [7 x i8] c"clause\00", align 1
+ at .str215 = private unnamed_addr constant [15 x i8] c"listOfTermsopt\00", align 1
+ at .str216 = private unnamed_addr constant [12 x i8] c"listOfTerms\00", align 1
+ at .str217 = private unnamed_addr constant [4 x i8] c"@10\00", align 1
+ at .str218 = private unnamed_addr constant [6 x i8] c"terms\00", align 1
+ at .str219 = private unnamed_addr constant [16 x i8] c"settinglistsopt\00", align 1
+ at .str220 = private unnamed_addr constant [12 x i8] c"settinglist\00", align 1
+ at .str221 = private unnamed_addr constant [4 x i8] c"@11\00", align 1
+ at .str222 = private unnamed_addr constant [6 x i8] c"flags\00", align 1
+ at .str223 = private unnamed_addr constant [11 x i8] c"spassflags\00", align 1
+ at .str224 = private unnamed_addr constant [10 x i8] c"spassflag\00", align 1
+ at .str225 = private unnamed_addr constant [9 x i8] c"preclist\00", align 1
+ at .str226 = private unnamed_addr constant [9 x i8] c"precitem\00", align 1
+ at .str227 = private unnamed_addr constant [8 x i8] c"statopt\00", align 1
+ at .str228 = private unnamed_addr constant [10 x i8] c"gsettings\00", align 1
+ at .str229 = private unnamed_addr constant [9 x i8] c"gsetting\00", align 1
+ at .str230 = private unnamed_addr constant [10 x i8] c"labellist\00", align 1
+ at .str231 = private unnamed_addr constant [50 x i8] c"\0A Error: Flag value %d is too small for flag %s.\0A\00", align 1
+ at .str232 = private unnamed_addr constant [50 x i8] c"\0A Error: Flag value %d is too large for flag %s.\0A\00", align 1
+ at .str233 = private unnamed_addr constant [31 x i8] c"\0A Line %d: is not a function.\0A\00", align 1
+ at fol_EQUALITY = external global i32
+ at stack_STACK = external global [10000 x i8*]
+ at fol_EXIST = external global i32
+ at fol_OR = external global i32
+ at fol_AND = external global i32
+ at fol_IMPLIES = external global i32
+ at fol_IMPLIED = external global i32
+ at fol_EQUIV = external global i32
+ at fol_NOT = external global i32
+ at fol_ALL = external global i32
+
+; Function Attrs: nounwind
+define i32 @dfg_parse() #0 {
+entry:
+  %yyssa = alloca [200 x i16], align 2
+  %yyvsa = alloca [200 x %union.yystype], align 4
+  %yyval = alloca %union.yystype, align 4
+  %0 = bitcast [200 x i16]* %yyssa to i8*
+  call void @llvm.lifetime.start(i64 400, i8* %0) #1
+  %arraydecay = getelementptr inbounds [200 x i16]* %yyssa, i32 0, i32 0
+  %1 = bitcast [200 x %union.yystype]* %yyvsa to i8*
+  call void @llvm.lifetime.start(i64 800, i8* %1) #1
+  %arraydecay1 = getelementptr inbounds [200 x %union.yystype]* %yyvsa, i32 0, i32 0
+  store i32 0, i32* @dfg_nerrs, align 4
+  store i32 -2, i32* @dfg_char, align 4
+  %2 = getelementptr inbounds %union.yystype* %yyval, i32 0, i32 0
+  %3 = load i32* @symbol_TYPEMASK, align 4
+  %4 = load i32* @symbol_TYPESTATBITS, align 4
+  br label %yysetstate
+
+yynewstate:                                       ; preds = %if.then1223, %if.else1226, %if.end100
+  %yyvsp.0 = phi %union.yystype* [ %incdec.ptr1204, %if.then1223 ], [ %incdec.ptr1204, %if.else1226 ], [ %incdec.ptr101, %if.end100 ]
+  %yyssp.0 = phi i16* [ %add.ptr1203, %if.then1223 ], [ %add.ptr1203, %if.else1226 ], [ %yyssp.2, %if.end100 ]
+  %yystate.0 = phi i32 [ %conv1225, %if.then1223 ], [ %conv1229, %if.else1226 ], [ %conv81, %if.end100 ]
+  %incdec.ptr = getelementptr inbounds i16* %yyssp.0, i32 1
+  br label %yysetstate
+
+yysetstate:                                       ; preds = %yynewstate, %entry
+  %yystacksize.0 = phi i32 [ 200, %entry ], [ %yystacksize.1, %yynewstate ]
+  %yyvsp.1 = phi %union.yystype* [ %arraydecay1, %entry ], [ %yyvsp.0, %yynewstate ]
+  %yyvs.0 = phi %union.yystype* [ %arraydecay1, %entry ], [ %yyvs.1, %yynewstate ]
+  %yyssp.1 = phi i16* [ %arraydecay, %entry ], [ %incdec.ptr, %yynewstate ]
+  %yyss.0 = phi i16* [ %arraydecay, %entry ], [ %yyss.1, %yynewstate ]
+  %yystate.1 = phi i32 [ 0, %entry ], [ %yystate.0, %yynewstate ]
+  %conv = trunc i32 %yystate.1 to i16
+  store i16 %conv, i16* %yyssp.1, align 2
+  %add.ptr.sum = add i32 %yystacksize.0, -1
+  %add.ptr2 = getelementptr inbounds i16* %yyss.0, i32 %add.ptr.sum
+  %cmp = icmp ult i16* %yyssp.1, %add.ptr2
+  br i1 %cmp, label %yybackup, label %if.then
+
+if.then:                                          ; preds = %yysetstate
+  %sub.ptr.lhs.cast = ptrtoint i16* %yyssp.1 to i32
+  %sub.ptr.rhs.cast = ptrtoint i16* %yyss.0 to i32
+  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
+  %sub.ptr.div = ashr exact i32 %sub.ptr.sub, 1
+  %add = add nsw i32 %sub.ptr.div, 1
+  %cmp4 = icmp ugt i32 %yystacksize.0, 9999
+  br i1 %cmp4, label %yyoverflowlab, label %if.end
+
+if.end:                                           ; preds = %if.then
+  %mul = shl i32 %yystacksize.0, 1
+  %cmp7 = icmp ugt i32 %mul, 10000
+  %.mul = select i1 %cmp7, i32 10000, i32 %mul
+  %mul11 = mul i32 %.mul, 6
+  %add121756 = or i32 %mul11, 3
+  %5 = alloca i8, i32 %add121756, align 4
+  %6 = bitcast i8* %5 to %union.yyalloc*
+  %yyss15 = bitcast i8* %5 to i16*
+  %7 = bitcast i16* %yyss.0 to i8*
+  %mul16 = shl i32 %add, 1
+  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %7, i32 %mul16, i32 2, i1 false)
+  %8 = lshr exact i32 %.mul, 1
+  %div = and i32 %8, 1073741823
+  %yyvs23 = getelementptr inbounds %union.yyalloc* %6, i32 %div, i32 0
+  %9 = bitcast %union.yystype* %yyvs23 to i8*
+  %10 = bitcast %union.yystype* %yyvs.0 to i8*
+  %mul24 = shl i32 %add, 2
+  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %9, i8* %10, i32 %mul24, i32 4, i1 false)
+  %add.ptr41 = getelementptr inbounds i16* %yyss15, i32 %sub.ptr.div
+  %add.ptr43 = getelementptr inbounds %union.yystype* %yyvs23, i32 %sub.ptr.div
+  %add.ptr44.sum = add i32 %.mul, -1
+  %cmp46 = icmp slt i32 %sub.ptr.div, %add.ptr44.sum
+  br i1 %cmp46, label %yybackup, label %yyreturn
+
+yybackup:                                         ; preds = %if.end, %yysetstate
+  %yystacksize.1 = phi i32 [ %.mul, %if.end ], [ %yystacksize.0, %yysetstate ]
+  %yyvsp.2 = phi %union.yystype* [ %add.ptr43, %if.end ], [ %yyvsp.1, %yysetstate ]
+  %yyvs.1 = phi %union.yystype* [ %yyvs23, %if.end ], [ %yyvs.0, %yysetstate ]
+  %yyssp.2 = phi i16* [ %add.ptr41, %if.end ], [ %yyssp.1, %yysetstate ]
+  %yyss.1 = phi i16* [ %yyss15, %if.end ], [ %yyss.0, %yysetstate ]
+  %arrayidx = getelementptr inbounds [477 x i16]* @yypact, i32 0, i32 %yystate.1
+  %11 = load i16* %arrayidx, align 2
+  %conv51 = sext i16 %11 to i32
+  %cmp52 = icmp eq i16 %11, -356
+  br i1 %cmp52, label %yydefault, label %if.end55
+
+if.end55:                                         ; preds = %yybackup
+  %12 = load i32* @dfg_char, align 4
+  %cmp56 = icmp eq i32 %12, -2
+  br i1 %cmp56, label %if.then58, label %if.end59
+
+if.then58:                                        ; preds = %if.end55
+  %call = call i32 @dfg_lex() #1
+  store i32 %call, i32* @dfg_char, align 4
+  br label %if.end59
+
+if.end59:                                         ; preds = %if.then58, %if.end55
+  %13 = phi i32 [ %call, %if.then58 ], [ %12, %if.end55 ]
+  %cmp60 = icmp slt i32 %13, 1
+  br i1 %cmp60, label %if.then62, label %if.else
+
+if.then62:                                        ; preds = %if.end59
+  store i32 0, i32* @dfg_char, align 4
+  br label %if.end67
+
+if.else:                                          ; preds = %if.end59
+  %cmp63 = icmp ult i32 %13, 319
+  br i1 %cmp63, label %cond.true, label %if.end67
+
+cond.true:                                        ; preds = %if.else
+  %arrayidx65 = getelementptr inbounds [319 x i8]* @yytranslate, i32 0, i32 %13
+  %14 = load i8* %arrayidx65, align 1
+  %conv66 = zext i8 %14 to i32
+  br label %if.end67
+
+if.end67:                                         ; preds = %cond.true, %if.else, %if.then62
+  %15 = phi i32 [ 0, %if.then62 ], [ %13, %cond.true ], [ %13, %if.else ]
+  %yychar1.2 = phi i32 [ 0, %if.then62 ], [ %conv66, %cond.true ], [ 2, %if.else ]
+  %add68 = add nsw i32 %yychar1.2, %conv51
+  %16 = icmp ugt i32 %add68, 506
+  br i1 %16, label %yydefault, label %lor.lhs.false73
+
+lor.lhs.false73:                                  ; preds = %if.end67
+  %arrayidx74 = getelementptr inbounds [507 x i16]* @yycheck, i32 0, i32 %add68
+  %17 = load i16* %arrayidx74, align 2
+  %conv75 = sext i16 %17 to i32
+  %cmp76 = icmp eq i32 %conv75, %yychar1.2
+  br i1 %cmp76, label %if.end79, label %yydefault
+
+if.end79:                                         ; preds = %lor.lhs.false73
+  %arrayidx80 = getelementptr inbounds [507 x i16]* @yytable, i32 0, i32 %add68
+  %18 = load i16* %arrayidx80, align 2
+  %conv81 = zext i16 %18 to i32
+  %cmp82 = icmp eq i16 %18, 0
+  br i1 %cmp82, label %if.then1232, label %if.end92
+
+if.end92:                                         ; preds = %if.end79
+  %cmp93 = icmp eq i32 %add68, 35
+  br i1 %cmp93, label %yyreturn, label %if.end96
+
+if.end96:                                         ; preds = %if.end92
+  %cmp97 = icmp eq i32 %15, 0
+  br i1 %cmp97, label %if.end100, label %if.then99
+
+if.then99:                                        ; preds = %if.end96
+  store i32 -2, i32* @dfg_char, align 4
+  br label %if.end100
+
+if.end100:                                        ; preds = %if.end96, %if.then99
+  %incdec.ptr101 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 1
+  %19 = load i32* getelementptr inbounds (%union.yystype* @dfg_lval, i32 0, i32 0), align 4
+  %20 = getelementptr inbounds %union.yystype* %incdec.ptr101, i32 0, i32 0
+  store i32 %19, i32* %20, align 4
+  br label %yynewstate
+
+yydefault:                                        ; preds = %lor.lhs.false73, %if.end67, %yybackup
+  %arrayidx105 = getelementptr inbounds [477 x i8]* @yydefact, i32 0, i32 %yystate.1
+  %21 = load i8* %arrayidx105, align 1
+  %conv106 = zext i8 %21 to i32
+  %cmp107 = icmp eq i8 %21, 0
+  br i1 %cmp107, label %if.then1232, label %yyreduce
+
+yyreduce:                                         ; preds = %yydefault
+  %arrayidx111 = getelementptr inbounds [197 x i8]* @yyr2, i32 0, i32 %conv106
+  %22 = load i8* %arrayidx111, align 1
+  %conv112 = zext i8 %22 to i32
+  %sub113 = sub i32 1, %conv112
+  %23 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 %sub113, i32 0
+  %24 = load i32* %23, align 4
+  store i32 %24, i32* %2, align 4
+  switch i32 %conv106, label %sw.epilog1200 [
+    i32 2, label %sw.bb
+    i32 4, label %sw.bb116
+    i32 5, label %sw.bb119
+    i32 6, label %sw.bb122
+    i32 7, label %sw.bb124
+    i32 9, label %sw.bb127
+    i32 11, label %sw.bb130
+    i32 13, label %sw.bb133
+    i32 14, label %sw.bb136
+    i32 15, label %sw.bb138
+    i32 16, label %sw.bb140
+    i32 24, label %sw.bb142
+    i32 25, label %sw.bb145
+    i32 30, label %sw.bb149
+    i32 31, label %sw.bb152
+    i32 34, label %sw.bb157
+    i32 35, label %sw.bb160
+    i32 40, label %sw.bb163
+    i32 41, label %sw.bb166
+    i32 46, label %sw.bb171
+    i32 47, label %sw.bb174
+    i32 48, label %sw.bb179
+    i32 49, label %sw.bb181
+    i32 55, label %sw.bb185
+    i32 56, label %sw.bb190
+    i32 57, label %sw.bb195
+    i32 58, label %sw.bb198
+    i32 59, label %sw.bb199
+    i32 60, label %sw.bb200
+    i32 61, label %sw.bb210
+    i32 62, label %sw.bb217
+    i32 63, label %sw.bb219
+    i32 64, label %sw.bb221
+    i32 65, label %sw.bb226
+    i32 66, label %sw.bb233
+    i32 67, label %sw.bb236
+    i32 68, label %sw.bb239
+    i32 69, label %sw.bb255
+    i32 70, label %sw.bb257
+    i32 73, label %sw.bb259
+    i32 74, label %sw.bb262
+    i32 75, label %sw.bb290
+    i32 76, label %sw.bb292
+    i32 77, label %sw.bb296
+    i32 78, label %sw.bb300
+    i32 79, label %sw.bb312
+    i32 80, label %sw.bb327
+    i32 81, label %sw.bb339
+    i32 82, label %sw.bb340
+    i32 83, label %sw.bb341
+    i32 84, label %sw.bb355
+    i32 85, label %sw.bb357
+    i32 86, label %sw.bb361
+    i32 87, label %sw.bb372
+    i32 88, label %sw.bb387
+    i32 89, label %sw.bb390
+    i32 90, label %sw.bb393
+    i32 91, label %sw.bb396
+    i32 92, label %sw.bb399
+    i32 93, label %sw.bb402
+    i32 94, label %sw.bb405
+    i32 95, label %sw.bb408
+    i32 96, label %sw.bb419
+    i32 97, label %sw.bb429
+    i32 98, label %sw.bb437
+    i32 99, label %sw.bb445
+    i32 100, label %sw.bb453
+    i32 101, label %sw.bb464
+    i32 102, label %sw.bb479
+    i32 103, label %sw.bb494
+    i32 106, label %sw.bb519
+    i32 107, label %sw.bb535
+    i32 108, label %sw.bb536
+    i32 109, label %sw.bb538
+    i32 110, label %sw.bb541
+    i32 111, label %sw.bb570
+    i32 112, label %sw.bb572
+    i32 113, label %sw.bb576
+    i32 114, label %sw.bb580
+    i32 115, label %sw.bb581
+    i32 116, label %sw.bb582
+    i32 117, label %sw.bb595
+    i32 118, label %sw.bb606
+    i32 119, label %sw.bb617
+    i32 120, label %sw.bb632
+    i32 121, label %sw.bb636
+    i32 122, label %sw.bb650
+    i32 123, label %sw.bb655
+    i32 124, label %sw.bb663
+    i32 125, label %sw.bb674
+    i32 126, label %sw.bb684
+    i32 127, label %sw.bb694
+    i32 128, label %sw.bb709
+    i32 136, label %sw.bb721
+    i32 137, label %sw.bb732
+    i32 138, label %sw.bb744
+    i32 139, label %sw.bb755
+    i32 142, label %sw.bb770
+    i32 143, label %sw.bb777
+    i32 145, label %sw.bb787
+    i32 146, label %sw.bb851
+    i32 147, label %sw.bb867
+    i32 148, label %sw.bb887
+    i32 149, label %sw.bb889
+    i32 150, label %sw.bb893
+    i32 151, label %sw.bb934
+    i32 152, label %sw.bb977
+    i32 153, label %sw.bb978
+    i32 154, label %sw.bb998
+    i32 155, label %sw.bb1002
+    i32 156, label %sw.bb1004
+    i32 157, label %sw.bb1006
+    i32 158, label %sw.bb1008
+    i32 159, label %sw.bb1010
+    i32 160, label %sw.bb1012
+    i32 161, label %sw.bb1014
+    i32 162, label %sw.bb1016
+    i32 163, label %sw.bb1018
+    i32 164, label %sw.bb1020
+    i32 165, label %sw.bb1022
+    i32 166, label %sw.bb1024
+    i32 167, label %sw.bb1028
+    i32 170, label %sw.bb1030
+    i32 171, label %sw.bb1031
+    i32 173, label %sw.bb1032
+    i32 177, label %sw.bb1037
+    i32 178, label %sw.bb1046
+    i32 179, label %sw.bb1047
+    i32 184, label %for.cond.preheader
+    i32 185, label %sw.bb1084
+    i32 188, label %sw.bb1099
+    i32 189, label %sw.bb1114
+    i32 190, label %sw.bb1138
+    i32 191, label %sw.bb1140
+    i32 194, label %sw.bb1184
+    i32 195, label %sw.bb1187
+    i32 196, label %sw.bb1192
+  ]
+
+for.cond.preheader:                               ; preds = %yyreduce
+  %arrayidx1052 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %list1053 = bitcast %union.yystype* %arrayidx1052 to %struct.LIST_HELP**
+  %25 = load %struct.LIST_HELP** %list1053, align 4
+  %cmp.i21612226 = icmp eq %struct.LIST_HELP* %25, null
+  br i1 %cmp.i21612226, label %sw.epilog1200, label %for.body.lr.ph
+
+for.body.lr.ph:                                   ; preds = %for.cond.preheader
+  %26 = getelementptr inbounds %union.yystype* %arrayidx1052, i32 0, i32 0
+  br label %for.body
+
+sw.bb:                                            ; preds = %yyreduce
+  %arrayidx115 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -7
+  %string = bitcast %union.yystype* %arrayidx115 to i8**
+  %27 = load i8** %string, align 4
+  call void @string_StringFree(i8* %27) #1
+  br label %yyreturn
+
+sw.bb116:
+  %arrayidx117 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string118 = bitcast %union.yystype* %arrayidx117 to i8**
+  %28 = load i8** %string118, align 4
+  store i8* %28, i8** @dfg_DESC.0, align 4
+  br label %sw.epilog1200
+
+sw.bb119:                                         ; preds = %yyreduce
+  %arrayidx120 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string121 = bitcast %union.yystype* %arrayidx120 to i8**
+  %29 = load i8** %string121, align 4
+  store i8* %29, i8** @dfg_DESC.1, align 4
+  br label %sw.epilog1200
+
+sw.bb122:                                         ; preds = %yyreduce
+  %state = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2, i32 0
+  %30 = load i32* %state, align 4
+  store i32 %30, i32* @dfg_DESC.4, align 4
+  br label %sw.epilog1200
+
+sw.bb124:                                         ; preds = %yyreduce
+  %arrayidx125 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string126 = bitcast %union.yystype* %arrayidx125 to i8**
+  %31 = load i8** %string126, align 4
+  store i8* %31, i8** @dfg_DESC.5, align 4
+  br label %sw.epilog1200
+
+sw.bb127:                                         ; preds = %yyreduce
+  %arrayidx128 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string129 = bitcast %union.yystype* %arrayidx128 to i8**
+  %32 = load i8** %string129, align 4
+  store i8* %32, i8** @dfg_DESC.2, align 4
+  br label %sw.epilog1200
+
+sw.bb130:                                         ; preds = %yyreduce
+  %arrayidx131 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string132 = bitcast %union.yystype* %arrayidx131 to i8**
+  %33 = load i8** %string132, align 4
+  store i8* %33, i8** @dfg_DESC.3, align 4
+  br label %sw.epilog1200
+
+sw.bb133:                                         ; preds = %yyreduce
+  %arrayidx134 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string135 = bitcast %union.yystype* %arrayidx134 to i8**
+  %34 = load i8** %string135, align 4
+  store i8* %34, i8** @dfg_DESC.6, align 4
+  br label %sw.epilog1200
+
+sw.bb136:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb138:                                         ; preds = %yyreduce
+  store i32 1, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb140:                                         ; preds = %yyreduce
+  store i32 2, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb142:                                         ; preds = %yyreduce
+  %string144 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %35 = load i8** %string144, align 4
+  call fastcc void @dfg_SymbolDecl(i32 284, i8* %35, i32 -2)
+  br label %sw.epilog1200
+
+sw.bb145:                                         ; preds = %yyreduce
+  %arrayidx146 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string147 = bitcast %union.yystype* %arrayidx146 to i8**
+  %36 = load i8** %string147, align 4
+  %number = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %37 = load i32* %number, align 4
+  call fastcc void @dfg_SymbolDecl(i32 284, i8* %36, i32 %37)
+  br label %sw.epilog1200
+
+sw.bb149:                                         ; preds = %yyreduce
+  %string151 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %38 = load i8** %string151, align 4
+  call fastcc void @dfg_SymbolDecl(i32 298, i8* %38, i32 -2)
+  br label %sw.epilog1200
+
+sw.bb152:                                         ; preds = %yyreduce
+  %arrayidx153 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string154 = bitcast %union.yystype* %arrayidx153 to i8**
+  %39 = load i8** %string154, align 4
+  %number156 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %40 = load i32* %number156, align 4
+  call fastcc void @dfg_SymbolDecl(i32 298, i8* %39, i32 %40)
+  br label %sw.epilog1200
+
+sw.bb157:                                         ; preds = %yyreduce
+  %string159 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %41 = load i8** %string159, align 4
+  call fastcc void @dfg_SymbolDecl(i32 298, i8* %41, i32 1)
+  br label %sw.epilog1200
+
+sw.bb160:                                         ; preds = %yyreduce
+  %string162 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %42 = load i8** %string162, align 4
+  call fastcc void @dfg_SymbolDecl(i32 298, i8* %42, i32 1)
+  br label %sw.epilog1200
+
+sw.bb163:                                         ; preds = %yyreduce
+  %string165 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %43 = load i8** %string165, align 4
+  call fastcc void @dfg_SymbolDecl(i32 294, i8* %43, i32 -2)
+  br label %sw.epilog1200
+
+sw.bb166:                                         ; preds = %yyreduce
+  %arrayidx167 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string168 = bitcast %union.yystype* %arrayidx167 to i8**
+  %44 = load i8** %string168, align 4
+  %number170 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %45 = load i32* %number170, align 4
+  call fastcc void @dfg_SymbolDecl(i32 294, i8* %44, i32 %45)
+  br label %sw.epilog1200
+
+sw.bb171:                                         ; preds = %yyreduce
+  %string173 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %46 = load i8** %string173, align 4
+  call fastcc void @dfg_SymbolDecl(i32 300, i8* %46, i32 -2)
+  br label %sw.epilog1200
+
+sw.bb174:                                         ; preds = %yyreduce
+  %arrayidx175 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string176 = bitcast %union.yystype* %arrayidx175 to i8**
+  %47 = load i8** %string176, align 4
+  %number178 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %48 = load i32* %number178, align 4
+  call fastcc void @dfg_SymbolDecl(i32 300, i8* %47, i32 %48)
+  br label %sw.epilog1200
+
+sw.bb179:                                         ; preds = %yyreduce
+  store i32 -1, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb181:                                         ; preds = %yyreduce
+  %number183 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 0, i32 0
+  %49 = load i32* %number183, align 4
+  store i32 %49, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb185:                                         ; preds = %yyreduce
+  %arrayidx186 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -4
+  %string187 = bitcast %union.yystype* %arrayidx186 to i8**
+  %50 = load i8** %string187, align 4
+  %arrayidx188 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string189 = bitcast %union.yystype* %arrayidx188 to i8**
+  %51 = load i8** %string189, align 4
+  %call.i = call fastcc i32 @dfg_Symbol(i8* %50, i32 1) #1
+  %call1.i = call fastcc i32 @dfg_Symbol(i8* %51, i32 1) #1
+  %tobool.i.i = icmp sgt i32 %call.i, -1
+  br i1 %tobool.i.i, label %if.then.i, label %land.rhs.i.i
+
+land.rhs.i.i:                                     ; preds = %sw.bb185
+  %sub.i.i.i = sub nsw i32 0, %call.i
+  %and.i.i.i = and i32 %3, %sub.i.i.i
+  %cmp.i.i = icmp eq i32 %and.i.i.i, 2
+  br i1 %cmp.i.i, label %if.end.i, label %if.then.i
+
+if.then.i:                                        ; preds = %land.rhs.i.i, %sw.bb185
+  %52 = load %struct._IO_FILE** @stdout, align 4
+  %call3.i = call i32 @fflush(%struct._IO_FILE* %52) #1
+  %53 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([44 x i8]* @.str42, i32 0, i32 0), i32 %53) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+if.end.i:                                         ; preds = %land.rhs.i.i
+  %tobool.i34.i = icmp sgt i32 %call1.i, -1
+  br i1 %tobool.i34.i, label %if.then6.i, label %land.rhs.i38.i
+
+land.rhs.i38.i:                                   ; preds = %if.end.i
+  %sub.i.i35.i = sub nsw i32 0, %call1.i
+  %and.i.i36.i = and i32 %3, %sub.i.i35.i
+  %cmp.i37.i = icmp eq i32 %and.i.i36.i, 2
+  br i1 %cmp.i37.i, label %if.end8.i, label %if.then6.i
+
+if.then6.i:                                       ; preds = %land.rhs.i38.i, %if.end.i
+  %54 = load %struct._IO_FILE** @stdout, align 4
+  %call7.i = call i32 @fflush(%struct._IO_FILE* %54) #1
+  %55 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([44 x i8]* @.str42, i32 0, i32 0), i32 %55) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+if.end8.i:                                        ; preds = %land.rhs.i38.i
+  %56 = load i32* @symbol_STANDARDVARCOUNTER, align 4
+  %inc.i.i = add nsw i32 %56, 1
+  store i32 %inc.i.i, i32* @symbol_STANDARDVARCOUNTER, align 4
+  %call11.i = call %struct.term* @term_Create(i32 %inc.i.i, %struct.LIST_HELP* null) #1
+  store i32 0, i32* @symbol_STANDARDVARCOUNTER, align 4
+  %57 = bitcast %struct.term* %call11.i to i8*
+  %call.i.i50.i = call i8* @memory_Malloc(i32 8) #1
+  %58 = bitcast i8* %call.i.i50.i to %struct.LIST_HELP*
+  %car.i.i51.i = getelementptr inbounds i8* %call.i.i50.i, i32 4
+  %59 = bitcast i8* %car.i.i51.i to i8**
+  store i8* %57, i8** %59, align 4
+  %cdr.i.i52.i = bitcast i8* %call.i.i50.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i52.i, align 4
+  %call13.i = call %struct.term* @term_Create(i32 %call.i, %struct.LIST_HELP* %58) #1
+  %call14.i = call %struct.term* @term_Copy(%struct.term* %call11.i) #1
+  %60 = bitcast %struct.term* %call14.i to i8*
+  %call.i.i53.i = call i8* @memory_Malloc(i32 8) #1
+  %61 = bitcast i8* %call.i.i53.i to %struct.LIST_HELP*
+  %car.i.i54.i = getelementptr inbounds i8* %call.i.i53.i, i32 4
+  %62 = bitcast i8* %car.i.i54.i to i8**
+  store i8* %60, i8** %62, align 4
+  %cdr.i.i55.i = bitcast i8* %call.i.i53.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i55.i, align 4
+  %call16.i = call %struct.term* @term_Create(i32 %call1.i, %struct.LIST_HELP* %61) #1
+  %63 = load i32* @fol_IMPLIES, align 4
+  %64 = bitcast %struct.term* %call13.i to i8*
+  %65 = bitcast %struct.term* %call16.i to i8*
+  %call.i.i56.i = call i8* @memory_Malloc(i32 8) #1
+  %66 = bitcast i8* %call.i.i56.i to %struct.LIST_HELP*
+  %car.i.i57.i = getelementptr inbounds i8* %call.i.i56.i, i32 4
+  %67 = bitcast i8* %car.i.i57.i to i8**
+  store i8* %65, i8** %67, align 4
+  %cdr.i.i58.i = bitcast i8* %call.i.i56.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i58.i, align 4
+  %call.i.i = call i8* @memory_Malloc(i32 8) #1
+  %68 = bitcast i8* %call.i.i to %struct.LIST_HELP*
+  %car.i.i = getelementptr inbounds i8* %call.i.i, i32 4
+  %69 = bitcast i8* %car.i.i to i8**
+  store i8* %64, i8** %69, align 4
+  %cdr.i.i = bitcast i8* %call.i.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %66, %struct.LIST_HELP** %cdr.i.i, align 4
+  %call20.i = call %struct.term* @term_Create(i32 %63, %struct.LIST_HELP* %68) #1
+  %70 = load i32* @fol_ALL, align 4
+  %call22.i = call %struct.term* @term_Copy(%struct.term* %call11.i) #1
+  %71 = bitcast %struct.term* %call22.i to i8*
+  %call.i.i47.i = call i8* @memory_Malloc(i32 8) #1
+  %72 = bitcast i8* %call.i.i47.i to %struct.LIST_HELP*
+  %car.i.i48.i = getelementptr inbounds i8* %call.i.i47.i, i32 4
+  %73 = bitcast i8* %car.i.i48.i to i8**
+  store i8* %71, i8** %73, align 4
+  %cdr.i.i49.i = bitcast i8* %call.i.i47.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i49.i, align 4
+  %74 = bitcast %struct.term* %call20.i to i8*
+  %call.i.i44.i = call i8* @memory_Malloc(i32 8) #1
+  %75 = bitcast i8* %call.i.i44.i to %struct.LIST_HELP*
+  %car.i.i45.i = getelementptr inbounds i8* %call.i.i44.i, i32 4
+  %76 = bitcast i8* %car.i.i45.i to i8**
+  store i8* %74, i8** %76, align 4
+  %cdr.i.i46.i = bitcast i8* %call.i.i44.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i46.i, align 4
+  %call25.i = call %struct.term* @fol_CreateQuantifier(i32 %70, %struct.LIST_HELP* %72, %struct.LIST_HELP* %75) #1
+  %77 = load %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  %78 = bitcast %struct.term* %call25.i to %struct.LIST_HELP*
+  %call.i.i41.i = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i42.i = getelementptr inbounds i8* %call.i.i41.i, i32 4
+  %79 = bitcast i8* %car.i.i42.i to i8**
+  store i8* null, i8** %79, align 4
+  %cdr.i.i43.i = bitcast i8* %call.i.i41.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %78, %struct.LIST_HELP** %cdr.i.i43.i, align 4
+  %call.i.i.i = call i8* @memory_Malloc(i32 8) #1
+  %80 = bitcast i8* %call.i.i.i to %struct.LIST_HELP*
+  %car.i.i.i = getelementptr inbounds i8* %call.i.i.i, i32 4
+  %81 = bitcast i8* %car.i.i.i to i8**
+  store i8* %call.i.i41.i, i8** %81, align 4
+  %cdr.i.i.i = bitcast i8* %call.i.i.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i.i, align 4
+  %cmp.i.i.i = icmp eq %struct.LIST_HELP* %77, null
+  br i1 %cmp.i.i.i, label %dfg_SubSort.exit, label %if.end.i.i
+
+if.end.i.i:                                       ; preds = %if.end8.i
+  %cmp.i18.i.i = icmp eq i8* %call.i.i.i, null
+  br i1 %cmp.i18.i.i, label %dfg_SubSort.exit, label %for.cond.i.i
+
+for.cond.i.i:                                     ; preds = %if.end.i.i, %for.cond.i.i
+  %List1.addr.0.i.i = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i.i, %for.cond.i.i ], [ %77, %if.end.i.i ]
+  %List1.addr.0.idx15.i.i = getelementptr %struct.LIST_HELP* %List1.addr.0.i.i, i32 0, i32 0
+  %List1.addr.0.idx15.val.i.i = load %struct.LIST_HELP** %List1.addr.0.idx15.i.i, align 4
+  %cmp.i16.i.i = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i.i, null
+  br i1 %cmp.i16.i.i, label %for.end.i.i, label %for.cond.i.i
+
+for.end.i.i:                                      ; preds = %for.cond.i.i
+  store %struct.LIST_HELP* %80, %struct.LIST_HELP** %List1.addr.0.idx15.i.i, align 4
+  br label %dfg_SubSort.exit
+
+dfg_SubSort.exit:                                 ; preds = %if.end8.i, %if.end.i.i, %for.end.i.i
+  %retval.0.i.i = phi %struct.LIST_HELP* [ %77, %for.end.i.i ], [ %80, %if.end8.i ], [ %77, %if.end.i.i ]
+  store %struct.LIST_HELP* %retval.0.i.i, %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  br label %sw.epilog1200
+
+sw.bb190:                                         ; preds = %yyreduce
+  %82 = load %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  %arrayidx191 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term = bitcast %union.yystype* %arrayidx191 to %struct.term**
+  %83 = load %struct.term** %term, align 4
+  %84 = bitcast %struct.term* %83 to %struct.LIST_HELP*
+  %call.i.i1761 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1762 = getelementptr inbounds i8* %call.i.i1761, i32 4
+  %85 = bitcast i8* %car.i.i1762 to i8**
+  store i8* null, i8** %85, align 4
+  %cdr.i.i1763 = bitcast i8* %call.i.i1761 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %84, %struct.LIST_HELP** %cdr.i.i1763, align 4
+  %call.i.i1764 = call i8* @memory_Malloc(i32 8) #1
+  %86 = bitcast i8* %call.i.i1764 to %struct.LIST_HELP*
+  %car.i.i1765 = getelementptr inbounds i8* %call.i.i1764, i32 4
+  %87 = bitcast i8* %car.i.i1765 to i8**
+  store i8* %call.i.i1761, i8** %87, align 4
+  %cdr.i.i1766 = bitcast i8* %call.i.i1764 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1766, align 4
+  %cmp.i.i1767 = icmp eq %struct.LIST_HELP* %82, null
+  br i1 %cmp.i.i1767, label %list_Nconc.exit, label %if.end.i1768
+
+if.end.i1768:                                     ; preds = %sw.bb190
+  %cmp.i18.i = icmp eq i8* %call.i.i1764, null
+  br i1 %cmp.i18.i, label %list_Nconc.exit, label %for.cond.i
+
+for.cond.i:                                       ; preds = %if.end.i1768, %for.cond.i
+  %List1.addr.0.i = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i, %for.cond.i ], [ %82, %if.end.i1768 ]
+  %List1.addr.0.idx15.i = getelementptr %struct.LIST_HELP* %List1.addr.0.i, i32 0, i32 0
+  %List1.addr.0.idx15.val.i = load %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  %cmp.i16.i = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i, null
+  br i1 %cmp.i16.i, label %for.end.i, label %for.cond.i
+
+for.end.i:                                        ; preds = %for.cond.i
+  store %struct.LIST_HELP* %86, %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  br label %list_Nconc.exit
+
+list_Nconc.exit:                                  ; preds = %sw.bb190, %if.end.i1768, %for.end.i
+  %retval.0.i = phi %struct.LIST_HELP* [ %82, %for.end.i ], [ %86, %sw.bb190 ], [ %82, %if.end.i1768 ]
+  store %struct.LIST_HELP* %retval.0.i, %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  br label %sw.epilog1200
+
+sw.bb195:                                         ; preds = %yyreduce
+  %arrayidx196 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -4
+  %string197 = bitcast %union.yystype* %arrayidx196 to i8**
+  %88 = load i8** %string197, align 4
+  call void @string_StringFree(i8* %88) #1
+  br label %sw.epilog1200
+
+sw.bb198:                                         ; preds = %yyreduce
+  %89 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %call.i.i.i1769 = call i8* @memory_Malloc(i32 8) #1
+  %90 = bitcast i8* %call.i.i.i1769 to %struct.LIST_HELP*
+  %car.i.i.i1770 = getelementptr inbounds i8* %call.i.i.i1769, i32 4
+  %91 = bitcast i8* %car.i.i.i1770 to i8**
+  store i8* null, i8** %91, align 4
+  %cdr.i.i.i1771 = bitcast i8* %call.i.i.i1769 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %89, %struct.LIST_HELP** %cdr.i.i.i1771, align 4
+  store %struct.LIST_HELP* %90, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 true, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb199:                                         ; preds = %yyreduce
+  store i1 false, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb200:                                         ; preds = %yyreduce
+  %92 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %.idx.i = getelementptr %struct.LIST_HELP* %92, i32 0, i32 1
+  %.idx.val.i = load i8** %.idx.i, align 4
+  %93 = bitcast i8* %.idx.val.i to %struct.LIST_HELP*
+  call void @list_DeleteWithElement(%struct.LIST_HELP* %93, void (i8*)* bitcast (void (%struct.DFG_VARENTRY*)* @dfg_VarFree to void (i8*)*)) #1
+  %94 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %L.idx.i.i = getelementptr %struct.LIST_HELP* %94, i32 0, i32 0
+  %L.idx.val.i.i = load %struct.LIST_HELP** %L.idx.i.i, align 4
+  %95 = bitcast %struct.LIST_HELP* %94 to i8*
+  %96 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %96, i32 0, i32 4
+  %97 = load i32* %total_size.i.i.i.i, align 4
+  %98 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i = add i32 %98, %97
+  store i32 %add24.i.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %96, i32 0, i32 0
+  %99 = load i8** %free.i.i.i.i, align 4
+  %.c.i.i.i = bitcast i8* %99 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i, %struct.LIST_HELP** %L.idx.i.i, align 4
+  %100 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %100, i32 0, i32 0
+  store i8* %95, i8** %free27.i.i.i.i, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %cmp.i.i1772 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i, null
+  br i1 %cmp.i.i1772, label %dfg_VarCheck.exit, label %if.then.i1774
+
+if.then.i1774:                                    ; preds = %sw.bb200
+  %101 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i1773 = call i32 @fflush(%struct._IO_FILE* %101) #1
+  %102 = load %struct._IO_FILE** @stderr, align 4
+  %call2.i = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %102, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1881) #1
+  call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([55 x i8]* @.str41, i32 0, i32 0)) #1
+  %103 = load %struct._IO_FILE** @stderr, align 4
+  %104 = call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %103) #1
+  call fastcc void @misc_DumpCore() #1
+  unreachable
+
+dfg_VarCheck.exit:                                ; preds = %sw.bb200
+  store i32 0, i32* @symbol_STANDARDVARCOUNTER, align 4
+  %105 = load i32* @fol_ALL, align 4
+  %arrayidx203 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6
+  %list = bitcast %union.yystype* %arrayidx203 to %struct.LIST_HELP**
+  %106 = load %struct.LIST_HELP** %list, align 4
+  %arrayidx204 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %term205 = bitcast %union.yystype* %arrayidx204 to %struct.term**
+  %107 = load %struct.term** %term205, align 4
+  %call206 = call %struct.term* @dfg_CreateQuantifier(i32 %105, %struct.LIST_HELP* %106, %struct.term* %107)
+  %108 = load %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  %109 = bitcast %struct.term* %call206 to %struct.LIST_HELP*
+  %call.i.i1776 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1777 = getelementptr inbounds i8* %call.i.i1776, i32 4
+  %110 = bitcast i8* %car.i.i1777 to i8**
+  store i8* null, i8** %110, align 4
+  %cdr.i.i1778 = bitcast i8* %call.i.i1776 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %109, %struct.LIST_HELP** %cdr.i.i1778, align 4
+  %call.i.i1779 = call i8* @memory_Malloc(i32 8) #1
+  %111 = bitcast i8* %call.i.i1779 to %struct.LIST_HELP*
+  %car.i.i1780 = getelementptr inbounds i8* %call.i.i1779, i32 4
+  %112 = bitcast i8* %car.i.i1780 to i8**
+  store i8* %call.i.i1776, i8** %112, align 4
+  %cdr.i.i1781 = bitcast i8* %call.i.i1779 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1781, align 4
+  %cmp.i.i1782 = icmp eq %struct.LIST_HELP* %108, null
+  br i1 %cmp.i.i1782, label %list_Nconc.exit1792, label %if.end.i1784
+
+if.end.i1784:                                     ; preds = %dfg_VarCheck.exit
+  %cmp.i18.i1783 = icmp eq i8* %call.i.i1779, null
+  br i1 %cmp.i18.i1783, label %list_Nconc.exit1792, label %for.cond.i1789
+
+for.cond.i1789:                                   ; preds = %if.end.i1784, %for.cond.i1789
+  %List1.addr.0.i1785 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1787, %for.cond.i1789 ], [ %108, %if.end.i1784 ]
+  %List1.addr.0.idx15.i1786 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1785, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1787 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1786, align 4
+  %cmp.i16.i1788 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1787, null
+  br i1 %cmp.i16.i1788, label %for.end.i1790, label %for.cond.i1789
+
+for.end.i1790:                                    ; preds = %for.cond.i1789
+  store %struct.LIST_HELP* %111, %struct.LIST_HELP** %List1.addr.0.idx15.i1786, align 4
+  br label %list_Nconc.exit1792
+
+list_Nconc.exit1792:                              ; preds = %dfg_VarCheck.exit, %if.end.i1784, %for.end.i1790
+  %retval.0.i1791 = phi %struct.LIST_HELP* [ %108, %for.end.i1790 ], [ %111, %dfg_VarCheck.exit ], [ %108, %if.end.i1784 ]
+  store %struct.LIST_HELP* %retval.0.i1791, %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  br label %sw.epilog1200
+
+sw.bb210:                                         ; preds = %yyreduce
+  %arrayidx211 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -7
+  %string212 = bitcast %union.yystype* %arrayidx211 to i8**
+  %113 = load i8** %string212, align 4
+  %call213 = call fastcc i32 @dfg_Symbol(i8* %113, i32 1)
+  %bool = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6, i32 0
+  %114 = load i32* %bool, align 4
+  %arrayidx215 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list216 = bitcast %union.yystype* %arrayidx215 to %struct.LIST_HELP**
+  %115 = load %struct.LIST_HELP** %list216, align 4
+  %tobool.i.i1793 = icmp sgt i32 %call213, -1
+  br i1 %tobool.i.i1793, label %if.then.i1799, label %land.rhs.i.i1797
+
+land.rhs.i.i1797:                                 ; preds = %sw.bb210
+  %sub.i.i.i1794 = sub nsw i32 0, %call213
+  %and.i.i.i1795 = and i32 %3, %sub.i.i.i1794
+  %cmp.i.i1796 = icmp eq i32 %and.i.i.i1795, 2
+  br i1 %cmp.i.i1796, label %if.end.i1800, label %if.then.i1799
+
+if.then.i1799:                                    ; preds = %land.rhs.i.i1797, %sw.bb210
+  %116 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i1798 = call i32 @fflush(%struct._IO_FILE* %116) #1
+  %117 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([44 x i8]* @.str42, i32 0, i32 0), i32 %117) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+if.end.i1800:                                     ; preds = %land.rhs.i.i1797
+  %shr.i.i54.i = ashr i32 %sub.i.i.i1794, %4
+  %118 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i55.i = getelementptr inbounds %struct.signature** %118, i32 %shr.i.i54.i
+  %119 = load %struct.signature** %arrayidx.i.i55.i, align 4
+  %props.i56.i = getelementptr inbounds %struct.signature* %119, i32 0, i32 4
+  %120 = load i32* %props.i56.i, align 4
+  %and.i.i = and i32 %120, 512
+  %tobool.i57.i = icmp eq i32 %and.i.i, 0
+  br i1 %tobool.i57.i, label %symbol_RemoveProperty.exit.i, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %if.end.i1800
+  %sub.i.i = add i32 %120, -512
+  store i32 %sub.i.i, i32* %props.i56.i, align 4
+  %.pre.i = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i63.phi.trans.insert.i = getelementptr inbounds %struct.signature** %.pre.i, i32 %shr.i.i54.i
+  %.pre93.i = load %struct.signature** %arrayidx.i.i63.phi.trans.insert.i, align 4
+  %props.i64.phi.trans.insert.i = getelementptr inbounds %struct.signature* %.pre93.i, i32 0, i32 4
+  %.pre94.i = load i32* %props.i64.phi.trans.insert.i, align 4
+  br label %symbol_RemoveProperty.exit.i
+
+symbol_RemoveProperty.exit.i:                     ; preds = %if.then.i.i, %if.end.i1800
+  %121 = phi i32 [ %120, %if.end.i1800 ], [ %.pre94.i, %if.then.i.i ]
+  %122 = phi %struct.signature* [ %119, %if.end.i1800 ], [ %.pre93.i, %if.then.i.i ]
+  %and.i65.i = and i32 %121, 256
+  %tobool.i66.i = icmp eq i32 %and.i65.i, 0
+  br i1 %tobool.i66.i, label %symbol_RemoveProperty.exit69.i, label %if.then.i68.i
+
+if.then.i68.i:                                    ; preds = %symbol_RemoveProperty.exit.i
+  %props.i64.i = getelementptr inbounds %struct.signature* %122, i32 0, i32 4
+  %sub.i67.i = add i32 %121, -256
+  store i32 %sub.i67.i, i32* %props.i64.i, align 4
+  %.pre95.i = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i83.phi.trans.insert.i = getelementptr inbounds %struct.signature** %.pre95.i, i32 %shr.i.i54.i
+  %.pre96.i = load %struct.signature** %arrayidx.i.i83.phi.trans.insert.i, align 4
+  br label %symbol_RemoveProperty.exit69.i
+
+symbol_RemoveProperty.exit69.i:                   ; preds = %if.then.i68.i, %symbol_RemoveProperty.exit.i
+  %123 = phi %struct.signature* [ %122, %symbol_RemoveProperty.exit.i ], [ %.pre96.i, %if.then.i68.i ]
+  %generatedBy.i84.i = getelementptr inbounds %struct.signature* %123, i32 0, i32 6
+  %124 = load %struct.LIST_HELP** %generatedBy.i84.i, align 4
+  %cmp.i5.i.i = icmp eq %struct.LIST_HELP* %124, null
+  br i1 %cmp.i5.i.i, label %list_Delete.exit.i, label %while.body.i.i
+
+while.body.i.i:                                   ; preds = %symbol_RemoveProperty.exit69.i, %while.body.i.i
+  %L.addr.06.i.i = phi %struct.LIST_HELP* [ %L.addr.0.idx.val.i.i, %while.body.i.i ], [ %124, %symbol_RemoveProperty.exit69.i ]
+  %L.addr.0.idx.i.i = getelementptr %struct.LIST_HELP* %L.addr.06.i.i, i32 0, i32 0
+  %L.addr.0.idx.val.i.i = load %struct.LIST_HELP** %L.addr.0.idx.i.i, align 4
+  %125 = bitcast %struct.LIST_HELP* %L.addr.06.i.i to i8*
+  %126 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i1801 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %126, i32 0, i32 4
+  %127 = load i32* %total_size.i.i.i.i1801, align 4
+  %128 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i1802 = add i32 %128, %127
+  store i32 %add24.i.i.i.i1802, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i1803 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %126, i32 0, i32 0
+  %129 = load i8** %free.i.i.i.i1803, align 4
+  %.c.i.i.i1804 = bitcast i8* %129 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i1804, %struct.LIST_HELP** %L.addr.0.idx.i.i, align 4
+  %130 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i1805 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %130, i32 0, i32 0
+  store i8* %125, i8** %free27.i.i.i.i1805, align 4
+  %cmp.i.i.i1806 = icmp eq %struct.LIST_HELP* %L.addr.0.idx.val.i.i, null
+  br i1 %cmp.i.i.i1806, label %list_Delete.exit.loopexit.i, label %while.body.i.i
+
+list_Delete.exit.loopexit.i:                      ; preds = %while.body.i.i
+  %.pre97.i = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i78.phi.trans.insert.i = getelementptr inbounds %struct.signature** %.pre97.i, i32 %shr.i.i54.i
+  %.pre98.i = load %struct.signature** %arrayidx.i.i78.phi.trans.insert.i, align 4
+  br label %list_Delete.exit.i
+
+list_Delete.exit.i:                               ; preds = %list_Delete.exit.loopexit.i, %symbol_RemoveProperty.exit69.i
+  %131 = phi %struct.signature* [ %.pre98.i, %list_Delete.exit.loopexit.i ], [ %123, %symbol_RemoveProperty.exit69.i ]
+  %props.i79.i = getelementptr inbounds %struct.signature* %131, i32 0, i32 4
+  %132 = load i32* %props.i79.i, align 4
+  %or.i80.i = or i32 %132, 512
+  store i32 %or.i80.i, i32* %props.i79.i, align 4
+  %tobool3.i = icmp ne i32 %114, 0
+  br i1 %tobool3.i, label %if.then4.i, label %for.cond.preheader.i
+
+if.then4.i:                                       ; preds = %list_Delete.exit.i
+  %133 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i73.i = getelementptr inbounds %struct.signature** %133, i32 %shr.i.i54.i
+  %134 = load %struct.signature** %arrayidx.i.i73.i, align 4
+  %props.i74.i = getelementptr inbounds %struct.signature* %134, i32 0, i32 4
+  %135 = load i32* %props.i74.i, align 4
+  %or.i75.i = or i32 %135, 256
+  store i32 %or.i75.i, i32* %props.i74.i, align 4
+  br label %for.cond.preheader.i
+
+for.cond.preheader.i:                             ; preds = %if.then4.i, %list_Delete.exit.i
+  %cmp.i7086.i = icmp eq %struct.LIST_HELP* %115, null
+  br i1 %cmp.i7086.i, label %dfg_SymbolGenerated.exit, label %for.body.lr.ph.i
+
+for.body.lr.ph.i:                                 ; preds = %for.cond.preheader.i
+  br i1 %tobool3.i, label %for.body.us.i, label %for.body.i
+
+for.body.us.i:                                    ; preds = %for.body.lr.ph.i, %for.inc.us.i
+  %scan.087.us.i = phi %struct.LIST_HELP* [ %scan.0.idx43.val.us.i, %for.inc.us.i ], [ %115, %for.body.lr.ph.i ]
+  %scan.0.idx42.us.i = getelementptr %struct.LIST_HELP* %scan.087.us.i, i32 0, i32 1
+  %scan.0.idx42.val.us.i = load i8** %scan.0.idx42.us.i, align 4
+  %call9.us.i = call i32 @symbol_Lookup(i8* %scan.0.idx42.val.us.i) #1
+  %cmp.us.i = icmp eq i32 %call9.us.i, 0
+  br i1 %cmp.us.i, label %if.then10.i, label %if.else.us.i
+
+if.else.us.i:                                     ; preds = %for.body.us.i
+  %tobool.i58.us.i = icmp sgt i32 %call9.us.i, -1
+  br i1 %tobool.i58.us.i, label %if.then15.i, label %land.rhs.i59.us.i
+
+land.rhs.i59.us.i:                                ; preds = %if.else.us.i
+  %sub.i6.i.us.i = sub nsw i32 0, %call9.us.i
+  %and.i7.i.us.i = and i32 %3, %sub.i6.i.us.i
+  %136 = icmp ult i32 %and.i7.i.us.i, 2
+  br i1 %136, label %for.inc.us.i, label %if.then15.i
+
+for.inc.us.i:                                     ; preds = %land.rhs.i59.us.i
+  %scan.0.idx.val.us.i = load i8** %scan.0.idx42.us.i, align 4
+  call void @string_StringFree(i8* %scan.0.idx.val.us.i) #1
+  %137 = inttoptr i32 %call9.us.i to i8*
+  store i8* %137, i8** %scan.0.idx42.us.i, align 4
+  %shr.i.i49.us.i = ashr i32 %sub.i6.i.us.i, %4
+  %138 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i50.us.i = getelementptr inbounds %struct.signature** %138, i32 %shr.i.i49.us.i
+  %139 = load %struct.signature** %arrayidx.i.i50.us.i, align 4
+  %props.i51.us.i = getelementptr inbounds %struct.signature* %139, i32 0, i32 4
+  %140 = load i32* %props.i51.us.i, align 4
+  %or.i52.us.i = or i32 %140, 512
+  store i32 %or.i52.us.i, i32* %props.i51.us.i, align 4
+  %141 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i47.us.i = getelementptr inbounds %struct.signature** %141, i32 %shr.i.i49.us.i
+  %142 = load %struct.signature** %arrayidx.i.i47.us.i, align 4
+  %props.i.us.i = getelementptr inbounds %struct.signature* %142, i32 0, i32 4
+  %143 = load i32* %props.i.us.i, align 4
+  %or.i.us.i = or i32 %143, 256
+  store i32 %or.i.us.i, i32* %props.i.us.i, align 4
+  %scan.0.idx43.us.i = getelementptr %struct.LIST_HELP* %scan.087.us.i, i32 0, i32 0
+  %scan.0.idx43.val.us.i = load %struct.LIST_HELP** %scan.0.idx43.us.i, align 4
+  %cmp.i70.us.i = icmp eq %struct.LIST_HELP* %scan.0.idx43.val.us.i, null
+  br i1 %cmp.i70.us.i, label %dfg_SymbolGenerated.exit, label %for.body.us.i
+
+for.body.i:                                       ; preds = %for.body.lr.ph.i, %for.inc.i
+  %scan.087.i = phi %struct.LIST_HELP* [ %scan.0.idx43.val.i, %for.inc.i ], [ %115, %for.body.lr.ph.i ]
+  %scan.0.idx42.i = getelementptr %struct.LIST_HELP* %scan.087.i, i32 0, i32 1
+  %scan.0.idx42.val.i = load i8** %scan.0.idx42.i, align 4
+  %call9.i = call i32 @symbol_Lookup(i8* %scan.0.idx42.val.i) #1
+  %cmp.i = icmp eq i32 %call9.i, 0
+  br i1 %cmp.i, label %if.then10.i, label %if.else.i
+
+if.then10.i:                                      ; preds = %for.body.us.i, %for.body.i
+  %scan.0.idx42.lcssa.i = phi i8** [ %scan.0.idx42.i, %for.body.i ], [ %scan.0.idx42.us.i, %for.body.us.i ]
+  %144 = load %struct._IO_FILE** @stdout, align 4
+  %call11.i1807 = call i32 @fflush(%struct._IO_FILE* %144) #1
+  %145 = load i32* @dfg_LINENUMBER, align 4
+  %scan.0.idx41.val.i = load i8** %scan.0.idx42.lcssa.i, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([33 x i8]* @.str43, i32 0, i32 0), i32 %145, i8* %scan.0.idx41.val.i) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+if.else.i:                                        ; preds = %for.body.i
+  %tobool.i58.i = icmp sgt i32 %call9.i, -1
+  br i1 %tobool.i58.i, label %if.then15.i, label %land.rhs.i59.i
+
+land.rhs.i59.i:                                   ; preds = %if.else.i
+  %sub.i6.i.i = sub nsw i32 0, %call9.i
+  %and.i7.i.i = and i32 %3, %sub.i6.i.i
+  %146 = icmp ult i32 %and.i7.i.i, 2
+  br i1 %146, label %for.inc.i, label %if.then15.i
+
+if.then15.i:                                      ; preds = %land.rhs.i59.us.i, %if.else.us.i, %land.rhs.i59.i, %if.else.i
+  %147 = load %struct._IO_FILE** @stdout, align 4
+  %call16.i1808 = call i32 @fflush(%struct._IO_FILE* %147) #1
+  %148 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([38 x i8]* @.str44, i32 0, i32 0), i32 %148) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+for.inc.i:                                        ; preds = %land.rhs.i59.i
+  %scan.0.idx.val.i = load i8** %scan.0.idx42.i, align 4
+  call void @string_StringFree(i8* %scan.0.idx.val.i) #1
+  %149 = inttoptr i32 %call9.i to i8*
+  store i8* %149, i8** %scan.0.idx42.i, align 4
+  %shr.i.i49.i = ashr i32 %sub.i6.i.i, %4
+  %150 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i50.i = getelementptr inbounds %struct.signature** %150, i32 %shr.i.i49.i
+  %151 = load %struct.signature** %arrayidx.i.i50.i, align 4
+  %props.i51.i = getelementptr inbounds %struct.signature* %151, i32 0, i32 4
+  %152 = load i32* %props.i51.i, align 4
+  %or.i52.i = or i32 %152, 512
+  store i32 %or.i52.i, i32* %props.i51.i, align 4
+  %scan.0.idx43.i = getelementptr %struct.LIST_HELP* %scan.087.i, i32 0, i32 0
+  %scan.0.idx43.val.i = load %struct.LIST_HELP** %scan.0.idx43.i, align 4
+  %cmp.i70.i = icmp eq %struct.LIST_HELP* %scan.0.idx43.val.i, null
+  br i1 %cmp.i70.i, label %dfg_SymbolGenerated.exit, label %for.body.i
+
+dfg_SymbolGenerated.exit:                         ; preds = %for.inc.us.i, %for.inc.i, %for.cond.preheader.i
+  %153 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i.i = getelementptr inbounds %struct.signature** %153, i32 %shr.i.i54.i
+  %154 = load %struct.signature** %arrayidx.i.i.i, align 4
+  %generatedBy.i.i = getelementptr inbounds %struct.signature* %154, i32 0, i32 6
+  store %struct.LIST_HELP* %115, %struct.LIST_HELP** %generatedBy.i.i, align 4
+  br label %sw.epilog1200
+
+sw.bb217:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb219:                                         ; preds = %yyreduce
+  store i32 1, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb221:                                         ; preds = %yyreduce
+  %string223 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %155 = load i8** %string223, align 4
+  %call.i.i1810 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1811 = getelementptr inbounds i8* %call.i.i1810, i32 4
+  %156 = bitcast i8* %car.i.i1811 to i8**
+  store i8* %155, i8** %156, align 4
+  %cdr.i.i1812 = bitcast i8* %call.i.i1810 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1812, align 4
+  %call224.c = ptrtoint i8* %call.i.i1810 to i32
+  store i32 %call224.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb226:                                         ; preds = %yyreduce
+  %string228 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %157 = load i8** %string228, align 4
+  %arrayidx229 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list230 = bitcast %union.yystype* %arrayidx229 to %struct.LIST_HELP**
+  %158 = load %struct.LIST_HELP** %list230, align 4
+  %call.i1813 = call i8* @memory_Malloc(i32 8) #1
+  %car.i = getelementptr inbounds i8* %call.i1813, i32 4
+  %159 = bitcast i8* %car.i to i8**
+  store i8* %157, i8** %159, align 4
+  %cdr.i = bitcast i8* %call.i1813 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %158, %struct.LIST_HELP** %cdr.i, align 4
+  %call231.c = ptrtoint i8* %call.i1813 to i32
+  store i32 %call231.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb233:                                         ; preds = %yyreduce
+  %string235 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %160 = load i8** %string235, align 4
+  call void @string_StringFree(i8* %160) #1
+  br label %sw.epilog1200
+
+sw.bb236:                                         ; preds = %yyreduce
+  %string238 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %161 = load i8** %string238, align 4
+  call void @string_StringFree(i8* %161) #1
+  br label %sw.epilog1200
+
+sw.bb239:                                         ; preds = %yyreduce
+  %arrayidx240 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list241 = bitcast %union.yystype* %arrayidx240 to %struct.LIST_HELP**
+  %162 = load %struct.LIST_HELP** %list241, align 4
+  %call242 = call %struct.LIST_HELP* @list_NReverse(%struct.LIST_HELP* %162) #1
+  %bool244 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -5, i32 0
+  %163 = load i32* %bool244, align 4
+  %tobool245 = icmp eq i32 %163, 0
+  br i1 %tobool245, label %if.else250, label %if.then246
+
+if.then246:                                       ; preds = %sw.bb239
+  %164 = load %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  %165 = load %struct.LIST_HELP** %list241, align 4
+  %cmp.i.i1814 = icmp eq %struct.LIST_HELP* %164, null
+  br i1 %cmp.i.i1814, label %list_Nconc.exit1824, label %if.end.i1816
+
+if.end.i1816:                                     ; preds = %if.then246
+  %cmp.i18.i1815 = icmp eq %struct.LIST_HELP* %165, null
+  br i1 %cmp.i18.i1815, label %list_Nconc.exit1824, label %for.cond.i1821
+
+for.cond.i1821:                                   ; preds = %if.end.i1816, %for.cond.i1821
+  %List1.addr.0.i1817 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1819, %for.cond.i1821 ], [ %164, %if.end.i1816 ]
+  %List1.addr.0.idx15.i1818 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1817, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1819 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1818, align 4
+  %cmp.i16.i1820 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1819, null
+  br i1 %cmp.i16.i1820, label %for.end.i1822, label %for.cond.i1821
+
+for.end.i1822:                                    ; preds = %for.cond.i1821
+  store %struct.LIST_HELP* %165, %struct.LIST_HELP** %List1.addr.0.idx15.i1818, align 4
+  br label %list_Nconc.exit1824
+
+list_Nconc.exit1824:                              ; preds = %if.then246, %if.end.i1816, %for.end.i1822
+  %retval.0.i1823 = phi %struct.LIST_HELP* [ %164, %for.end.i1822 ], [ %165, %if.then246 ], [ %164, %if.end.i1816 ]
+  store %struct.LIST_HELP* %retval.0.i1823, %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  br label %sw.epilog1200
+
+if.else250:                                       ; preds = %sw.bb239
+  %166 = load %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  %167 = load %struct.LIST_HELP** %list241, align 4
+  %cmp.i.i1825 = icmp eq %struct.LIST_HELP* %166, null
+  br i1 %cmp.i.i1825, label %list_Nconc.exit1835, label %if.end.i1827
+
+if.end.i1827:                                     ; preds = %if.else250
+  %cmp.i18.i1826 = icmp eq %struct.LIST_HELP* %167, null
+  br i1 %cmp.i18.i1826, label %list_Nconc.exit1835, label %for.cond.i1832
+
+for.cond.i1832:                                   ; preds = %if.end.i1827, %for.cond.i1832
+  %List1.addr.0.i1828 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1830, %for.cond.i1832 ], [ %166, %if.end.i1827 ]
+  %List1.addr.0.idx15.i1829 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1828, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1830 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1829, align 4
+  %cmp.i16.i1831 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1830, null
+  br i1 %cmp.i16.i1831, label %for.end.i1833, label %for.cond.i1832
+
+for.end.i1833:                                    ; preds = %for.cond.i1832
+  store %struct.LIST_HELP* %167, %struct.LIST_HELP** %List1.addr.0.idx15.i1829, align 4
+  br label %list_Nconc.exit1835
+
+list_Nconc.exit1835:                              ; preds = %if.else250, %if.end.i1827, %for.end.i1833
+  %retval.0.i1834 = phi %struct.LIST_HELP* [ %166, %for.end.i1833 ], [ %167, %if.else250 ], [ %166, %if.end.i1827 ]
+  store %struct.LIST_HELP* %retval.0.i1834, %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  br label %sw.epilog1200
+
+sw.bb255:                                         ; preds = %yyreduce
+  store i32 1, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb257:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb259:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb262:                                         ; preds = %yyreduce
+  %arrayidx263 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %term264 = bitcast %union.yystype* %arrayidx263 to %struct.term**
+  %168 = load %struct.term** %term264, align 4
+  %cmp265 = icmp eq %struct.term* %168, null
+  %arrayidx268 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string269 = bitcast %union.yystype* %arrayidx268 to i8**
+  %169 = load i8** %string269, align 4
+  br i1 %cmp265, label %if.then267, label %if.else279
+
+if.then267:                                       ; preds = %sw.bb262
+  %cmp270 = icmp eq i8* %169, null
+  br i1 %cmp270, label %if.end275, label %if.then272
+
+if.then272:                                       ; preds = %if.then267
+  call void @string_StringFree(i8* %169) #1
+  br label %if.end275
+
+if.end275:                                        ; preds = %if.then267, %if.then272
+  %arrayidx276 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6
+  %list277 = bitcast %union.yystype* %arrayidx276 to %struct.LIST_HELP**
+  %170 = load %struct.LIST_HELP** %list277, align 4
+  %.c1755 = ptrtoint %struct.LIST_HELP* %170 to i32
+  br label %if.end289
+
+if.else279:                                       ; preds = %sw.bb262
+  %171 = bitcast %struct.term* %168 to %struct.LIST_HELP*
+  %call.i.i1836 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1837 = getelementptr inbounds i8* %call.i.i1836, i32 4
+  %172 = bitcast i8* %car.i.i1837 to i8**
+  store i8* %169, i8** %172, align 4
+  %cdr.i.i1838 = bitcast i8* %call.i.i1836 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %171, %struct.LIST_HELP** %cdr.i.i1838, align 4
+  %arrayidx285 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6
+  %list286 = bitcast %union.yystype* %arrayidx285 to %struct.LIST_HELP**
+  %173 = load %struct.LIST_HELP** %list286, align 4
+  %call.i1839 = call i8* @memory_Malloc(i32 8) #1
+  %car.i1840 = getelementptr inbounds i8* %call.i1839, i32 4
+  %174 = bitcast i8* %car.i1840 to i8**
+  store i8* %call.i.i1836, i8** %174, align 4
+  %cdr.i1841 = bitcast i8* %call.i1839 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %173, %struct.LIST_HELP** %cdr.i1841, align 4
+  %call287.c = ptrtoint i8* %call.i1839 to i32
+  br label %if.end289
+
+if.end289:                                        ; preds = %if.else279, %if.end275
+  %storemerge2213 = phi i32 [ %call287.c, %if.else279 ], [ %.c1755, %if.end275 ]
+  store i32 %storemerge2213, i32* %2, align 4
+  %175 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %cmp.i.i1842 = icmp eq %struct.LIST_HELP* %175, null
+  br i1 %cmp.i.i1842, label %dfg_VarCheck.exit1847, label %if.then.i1845
+
+if.then.i1845:                                    ; preds = %if.end289
+  %176 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i1843 = call i32 @fflush(%struct._IO_FILE* %176) #1
+  %177 = load %struct._IO_FILE** @stderr, align 4
+  %call2.i1844 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %177, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1881) #1
+  call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([55 x i8]* @.str41, i32 0, i32 0)) #1
+  %178 = load %struct._IO_FILE** @stderr, align 4
+  %179 = call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %178) #1
+  call fastcc void @misc_DumpCore() #1
+  unreachable
+
+dfg_VarCheck.exit1847:                            ; preds = %if.end289
+  store i32 0, i32* @symbol_STANDARDVARCOUNTER, align 4
+  br label %sw.epilog1200
+
+sw.bb290:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb292:                                         ; preds = %yyreduce
+  %string294 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %180 = load i8** %string294, align 4
+  %.c1754 = ptrtoint i8* %180 to i32
+  store i32 %.c1754, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb296:                                         ; preds = %yyreduce
+  %term298 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %181 = load %struct.term** %term298, align 4
+  %.c1753 = ptrtoint %struct.term* %181 to i32
+  store i32 %.c1753, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb300:                                         ; preds = %yyreduce
+  %182 = load i32* @dfg_IGNORE, align 4
+  %tobool301 = icmp eq i32 %182, 0
+  br i1 %tobool301, label %cond.false303, label %cond.end309
+
+cond.false303:                                    ; preds = %sw.bb300
+  %183 = load i32* @fol_NOT, align 4
+  %arrayidx305 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term306 = bitcast %union.yystype* %arrayidx305 to %struct.term**
+  %184 = load %struct.term** %term306, align 4
+  %185 = bitcast %struct.term* %184 to i8*
+  %call.i.i1848 = call i8* @memory_Malloc(i32 8) #1
+  %186 = bitcast i8* %call.i.i1848 to %struct.LIST_HELP*
+  %car.i.i1849 = getelementptr inbounds i8* %call.i.i1848, i32 4
+  %187 = bitcast i8* %car.i.i1849 to i8**
+  store i8* %185, i8** %187, align 4
+  %cdr.i.i1850 = bitcast i8* %call.i.i1848 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1850, align 4
+  %call308 = call %struct.term* @term_Create(i32 %183, %struct.LIST_HELP* %186) #1
+  %phitmp1752 = ptrtoint %struct.term* %call308 to i32
+  br label %cond.end309
+
+cond.end309:                                      ; preds = %sw.bb300, %cond.false303
+  %cond310 = phi i32 [ %phitmp1752, %cond.false303 ], [ 0, %sw.bb300 ]
+  store i32 %cond310, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb312:                                         ; preds = %yyreduce
+  %188 = load i32* @dfg_IGNORE, align 4
+  %tobool313 = icmp eq i32 %188, 0
+  br i1 %tobool313, label %cond.false315, label %cond.end324
+
+cond.false315:                                    ; preds = %sw.bb312
+  %symbol = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -5, i32 0
+  %189 = load i32* %symbol, align 4
+  %arrayidx317 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %term318 = bitcast %union.yystype* %arrayidx317 to %struct.term**
+  %190 = load %struct.term** %term318, align 4
+  %191 = bitcast %struct.term* %190 to i8*
+  %arrayidx319 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term320 = bitcast %union.yystype* %arrayidx319 to %struct.term**
+  %192 = load %struct.term** %term320, align 4
+  %193 = bitcast %struct.term* %192 to i8*
+  %call.i.i1851 = call i8* @memory_Malloc(i32 8) #1
+  %194 = bitcast i8* %call.i.i1851 to %struct.LIST_HELP*
+  %car.i.i1852 = getelementptr inbounds i8* %call.i.i1851, i32 4
+  %195 = bitcast i8* %car.i.i1852 to i8**
+  store i8* %193, i8** %195, align 4
+  %cdr.i.i1853 = bitcast i8* %call.i.i1851 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1853, align 4
+  %call.i1854 = call i8* @memory_Malloc(i32 8) #1
+  %196 = bitcast i8* %call.i1854 to %struct.LIST_HELP*
+  %car.i1855 = getelementptr inbounds i8* %call.i1854, i32 4
+  %197 = bitcast i8* %car.i1855 to i8**
+  store i8* %191, i8** %197, align 4
+  %cdr.i1856 = bitcast i8* %call.i1854 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %194, %struct.LIST_HELP** %cdr.i1856, align 4
+  %call323 = call %struct.term* @term_Create(i32 %189, %struct.LIST_HELP* %196) #1
+  %phitmp1751 = ptrtoint %struct.term* %call323 to i32
+  br label %cond.end324
+
+cond.end324:                                      ; preds = %sw.bb312, %cond.false315
+  %cond325 = phi i32 [ %phitmp1751, %cond.false315 ], [ 0, %sw.bb312 ]
+  store i32 %cond325, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb327:                                         ; preds = %yyreduce
+  %198 = load i32* @dfg_IGNORE, align 4
+  %tobool328 = icmp eq i32 %198, 0
+  br i1 %tobool328, label %cond.false330, label %cond.end336
+
+cond.false330:                                    ; preds = %sw.bb327
+  %symbol332 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3, i32 0
+  %199 = load i32* %symbol332, align 4
+  %arrayidx333 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %list334 = bitcast %union.yystype* %arrayidx333 to %struct.LIST_HELP**
+  %200 = load %struct.LIST_HELP** %list334, align 4
+  %call335 = call %struct.term* @term_Create(i32 %199, %struct.LIST_HELP* %200) #1
+  %phitmp1750 = ptrtoint %struct.term* %call335 to i32
+  br label %cond.end336
+
+cond.end336:                                      ; preds = %sw.bb327, %cond.false330
+  %cond337 = phi i32 [ %phitmp1750, %cond.false330 ], [ 0, %sw.bb327 ]
+  store i32 %cond337, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb339:                                         ; preds = %yyreduce
+  %201 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %call.i.i.i1857 = call i8* @memory_Malloc(i32 8) #1
+  %202 = bitcast i8* %call.i.i.i1857 to %struct.LIST_HELP*
+  %car.i.i.i1858 = getelementptr inbounds i8* %call.i.i.i1857, i32 4
+  %203 = bitcast i8* %car.i.i.i1858 to i8**
+  store i8* null, i8** %203, align 4
+  %cdr.i.i.i1859 = bitcast i8* %call.i.i.i1857 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %201, %struct.LIST_HELP** %cdr.i.i.i1859, align 4
+  store %struct.LIST_HELP* %202, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 true, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb340:                                         ; preds = %yyreduce
+  store i1 false, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb341:                                         ; preds = %yyreduce
+  %204 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %.idx.i1860 = getelementptr %struct.LIST_HELP* %204, i32 0, i32 1
+  %.idx.val.i1861 = load i8** %.idx.i1860, align 4
+  %205 = bitcast i8* %.idx.val.i1861 to %struct.LIST_HELP*
+  call void @list_DeleteWithElement(%struct.LIST_HELP* %205, void (i8*)* bitcast (void (%struct.DFG_VARENTRY*)* @dfg_VarFree to void (i8*)*)) #1
+  %206 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %L.idx.i.i1862 = getelementptr %struct.LIST_HELP* %206, i32 0, i32 0
+  %L.idx.val.i.i1863 = load %struct.LIST_HELP** %L.idx.i.i1862, align 4
+  %207 = bitcast %struct.LIST_HELP* %206 to i8*
+  %208 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i1864 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %208, i32 0, i32 4
+  %209 = load i32* %total_size.i.i.i.i1864, align 4
+  %210 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i1865 = add i32 %210, %209
+  store i32 %add24.i.i.i.i1865, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i1866 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %208, i32 0, i32 0
+  %211 = load i8** %free.i.i.i.i1866, align 4
+  %.c.i.i.i1867 = bitcast i8* %211 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i1867, %struct.LIST_HELP** %L.idx.i.i1862, align 4
+  %212 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i1868 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %212, i32 0, i32 0
+  store i8* %207, i8** %free27.i.i.i.i1868, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i1863, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %213 = load i32* @dfg_IGNORE, align 4
+  %tobool342 = icmp eq i32 %213, 0
+  br i1 %tobool342, label %cond.false344, label %cond.end352
+
+cond.false344:                                    ; preds = %sw.bb341
+  %symbol346 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -9, i32 0
+  %214 = load i32* %symbol346, align 4
+  %arrayidx347 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -5
+  %list348 = bitcast %union.yystype* %arrayidx347 to %struct.LIST_HELP**
+  %215 = load %struct.LIST_HELP** %list348, align 4
+  %arrayidx349 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term350 = bitcast %union.yystype* %arrayidx349 to %struct.term**
+  %216 = load %struct.term** %term350, align 4
+  %call351 = call %struct.term* @dfg_CreateQuantifier(i32 %214, %struct.LIST_HELP* %215, %struct.term* %216)
+  %phitmp1749 = ptrtoint %struct.term* %call351 to i32
+  br label %cond.end352
+
+cond.end352:                                      ; preds = %sw.bb341, %cond.false344
+  %cond353 = phi i32 [ %phitmp1749, %cond.false344 ], [ 0, %sw.bb341 ]
+  store i32 %cond353, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb355:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb357:                                         ; preds = %yyreduce
+  %term359 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %217 = load %struct.term** %term359, align 4
+  %.c1748 = ptrtoint %struct.term* %217 to i32
+  store i32 %.c1748, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb361:                                         ; preds = %yyreduce
+  %218 = load i32* @dfg_IGNORE, align 4
+  %tobool362 = icmp eq i32 %218, 0
+  br i1 %tobool362, label %cond.false365, label %cond.end369
+
+cond.false365:                                    ; preds = %sw.bb361
+  %term367 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %219 = load %struct.term** %term367, align 4
+  %220 = bitcast %struct.term* %219 to i8*
+  %call.i.i1869 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1870 = getelementptr inbounds i8* %call.i.i1869, i32 4
+  %221 = bitcast i8* %car.i.i1870 to i8**
+  store i8* %220, i8** %221, align 4
+  %cdr.i.i1871 = bitcast i8* %call.i.i1869 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1871, align 4
+  %phitmp1747 = ptrtoint i8* %call.i.i1869 to i32
+  br label %cond.end369
+
+cond.end369:                                      ; preds = %sw.bb361, %cond.false365
+  %cond370 = phi i32 [ %phitmp1747, %cond.false365 ], [ 0, %sw.bb361 ]
+  store i32 %cond370, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb372:                                         ; preds = %yyreduce
+  %222 = load i32* @dfg_IGNORE, align 4
+  %tobool373 = icmp eq i32 %222, 0
+  %arrayidx375 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list376 = bitcast %union.yystype* %arrayidx375 to %struct.LIST_HELP**
+  %223 = load %struct.LIST_HELP** %list376, align 4
+  br i1 %tobool373, label %cond.false377, label %cond.end384
+
+cond.false377:                                    ; preds = %sw.bb372
+  %term381 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %224 = load %struct.term** %term381, align 4
+  %225 = bitcast %struct.term* %224 to i8*
+  %call.i.i1872 = call i8* @memory_Malloc(i32 8) #1
+  %226 = bitcast i8* %call.i.i1872 to %struct.LIST_HELP*
+  %car.i.i1873 = getelementptr inbounds i8* %call.i.i1872, i32 4
+  %227 = bitcast i8* %car.i.i1873 to i8**
+  store i8* %225, i8** %227, align 4
+  %cdr.i.i1874 = bitcast i8* %call.i.i1872 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1874, align 4
+  %cmp.i.i1875 = icmp eq %struct.LIST_HELP* %223, null
+  br i1 %cmp.i.i1875, label %cond.end384, label %if.end.i1877
+
+if.end.i1877:                                     ; preds = %cond.false377
+  %cmp.i18.i1876 = icmp eq i8* %call.i.i1872, null
+  br i1 %cmp.i18.i1876, label %cond.end384, label %for.cond.i1882
+
+for.cond.i1882:                                   ; preds = %if.end.i1877, %for.cond.i1882
+  %List1.addr.0.i1878 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1880, %for.cond.i1882 ], [ %223, %if.end.i1877 ]
+  %List1.addr.0.idx15.i1879 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1878, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1880 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1879, align 4
+  %cmp.i16.i1881 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1880, null
+  br i1 %cmp.i16.i1881, label %for.end.i1883, label %for.cond.i1882
+
+for.end.i1883:                                    ; preds = %for.cond.i1882
+  store %struct.LIST_HELP* %226, %struct.LIST_HELP** %List1.addr.0.idx15.i1879, align 4
+  br label %cond.end384
+
+cond.end384:                                      ; preds = %for.end.i1883, %if.end.i1877, %cond.false377, %sw.bb372
+  %cond385 = phi %struct.LIST_HELP* [ %223, %sw.bb372 ], [ %223, %for.end.i1883 ], [ %226, %cond.false377 ], [ %223, %if.end.i1877 ]
+  %cond385.c = ptrtoint %struct.LIST_HELP* %cond385 to i32
+  store i32 %cond385.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb387:                                         ; preds = %yyreduce
+  %228 = load i32* @fol_EQUIV, align 4
+  store i32 %228, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb390:                                         ; preds = %yyreduce
+  %229 = load i32* @fol_IMPLIED, align 4
+  store i32 %229, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb393:                                         ; preds = %yyreduce
+  %230 = load i32* @fol_IMPLIES, align 4
+  store i32 %230, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb396:                                         ; preds = %yyreduce
+  %231 = load i32* @fol_AND, align 4
+  store i32 %231, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb399:                                         ; preds = %yyreduce
+  %232 = load i32* @fol_OR, align 4
+  store i32 %232, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb402:                                         ; preds = %yyreduce
+  %233 = load i32* @fol_EXIST, align 4
+  store i32 %233, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb405:                                         ; preds = %yyreduce
+  %234 = load i32* @fol_ALL, align 4
+  store i32 %234, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb408:                                         ; preds = %yyreduce
+  %235 = load i32* @dfg_IGNORE, align 4
+  %tobool409 = icmp eq i32 %235, 0
+  %string412 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %236 = load i8** %string412, align 4
+  br i1 %tobool409, label %if.else414, label %if.then410
+
+if.then410:                                       ; preds = %sw.bb408
+  call void @string_StringFree(i8* %236) #1
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+if.else414:                                       ; preds = %sw.bb408
+  %.c1746 = ptrtoint i8* %236 to i32
+  store i32 %.c1746, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb419:                                         ; preds = %yyreduce
+  %237 = load i32* @dfg_IGNORE, align 4
+  %tobool420 = icmp eq i32 %237, 0
+  br i1 %tobool420, label %cond.false422, label %cond.end426
+
+cond.false422:                                    ; preds = %sw.bb419
+  %number424 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 0, i32 0
+  %238 = load i32* %number424, align 4
+  %call425 = call i8* @string_IntToString(i32 %238) #1
+  %phitmp1745 = ptrtoint i8* %call425 to i32
+  br label %cond.end426
+
+cond.end426:                                      ; preds = %sw.bb419, %cond.false422
+  %cond427 = phi i32 [ %phitmp1745, %cond.false422 ], [ 0, %sw.bb419 ]
+  store i32 %cond427, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb429:                                         ; preds = %yyreduce
+  %239 = load i32* @dfg_IGNORE, align 4
+  %tobool430 = icmp eq i32 %239, 0
+  br i1 %tobool430, label %cond.false432, label %cond.end434
+
+cond.false432:                                    ; preds = %sw.bb429
+  %call433 = call i8* @string_StringCopy(i8* getelementptr inbounds ([9 x i8]* @.str, i32 0, i32 0)) #1
+  %phitmp1744 = ptrtoint i8* %call433 to i32
+  br label %cond.end434
+
+cond.end434:                                      ; preds = %sw.bb429, %cond.false432
+  %cond435 = phi i32 [ %phitmp1744, %cond.false432 ], [ 0, %sw.bb429 ]
+  store i32 %cond435, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb437:                                         ; preds = %yyreduce
+  %240 = load i32* @dfg_IGNORE, align 4
+  %tobool438 = icmp eq i32 %240, 0
+  br i1 %tobool438, label %cond.false440, label %cond.end442
+
+cond.false440:                                    ; preds = %sw.bb437
+  %call441 = call i8* @string_StringCopy(i8* getelementptr inbounds ([12 x i8]* @.str1, i32 0, i32 0)) #1
+  %phitmp1743 = ptrtoint i8* %call441 to i32
+  br label %cond.end442
+
+cond.end442:                                      ; preds = %sw.bb437, %cond.false440
+  %cond443 = phi i32 [ %phitmp1743, %cond.false440 ], [ 0, %sw.bb437 ]
+  store i32 %cond443, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb445:                                         ; preds = %yyreduce
+  %241 = load i32* @dfg_IGNORE, align 4
+  %tobool446 = icmp eq i32 %241, 0
+  br i1 %tobool446, label %cond.false448, label %cond.end450
+
+cond.false448:                                    ; preds = %sw.bb445
+  %call449 = call i8* @string_StringCopy(i8* getelementptr inbounds ([15 x i8]* @.str2, i32 0, i32 0)) #1
+  %phitmp1742 = ptrtoint i8* %call449 to i32
+  br label %cond.end450
+
+cond.end450:                                      ; preds = %sw.bb445, %cond.false448
+  %cond451 = phi i32 [ %phitmp1742, %cond.false448 ], [ 0, %sw.bb445 ]
+  store i32 %cond451, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb453:                                         ; preds = %yyreduce
+  %242 = load i32* @dfg_IGNORE, align 4
+  %tobool454 = icmp eq i32 %242, 0
+  br i1 %tobool454, label %cond.false457, label %cond.end461
+
+cond.false457:                                    ; preds = %sw.bb453
+  %term459 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %243 = load %struct.term** %term459, align 4
+  %244 = bitcast %struct.term* %243 to i8*
+  %call.i.i1886 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1887 = getelementptr inbounds i8* %call.i.i1886, i32 4
+  %245 = bitcast i8* %car.i.i1887 to i8**
+  store i8* %244, i8** %245, align 4
+  %cdr.i.i1888 = bitcast i8* %call.i.i1886 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1888, align 4
+  %phitmp1741 = ptrtoint i8* %call.i.i1886 to i32
+  br label %cond.end461
+
+cond.end461:                                      ; preds = %sw.bb453, %cond.false457
+  %cond462 = phi i32 [ %phitmp1741, %cond.false457 ], [ 0, %sw.bb453 ]
+  store i32 %cond462, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb464:                                         ; preds = %yyreduce
+  %246 = load i32* @dfg_IGNORE, align 4
+  %tobool465 = icmp eq i32 %246, 0
+  %arrayidx467 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list468 = bitcast %union.yystype* %arrayidx467 to %struct.LIST_HELP**
+  %247 = load %struct.LIST_HELP** %list468, align 4
+  br i1 %tobool465, label %cond.false469, label %cond.end476
+
+cond.false469:                                    ; preds = %sw.bb464
+  %term473 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %248 = load %struct.term** %term473, align 4
+  %249 = bitcast %struct.term* %248 to i8*
+  %call.i.i1889 = call i8* @memory_Malloc(i32 8) #1
+  %250 = bitcast i8* %call.i.i1889 to %struct.LIST_HELP*
+  %car.i.i1890 = getelementptr inbounds i8* %call.i.i1889, i32 4
+  %251 = bitcast i8* %car.i.i1890 to i8**
+  store i8* %249, i8** %251, align 4
+  %cdr.i.i1891 = bitcast i8* %call.i.i1889 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1891, align 4
+  %cmp.i.i1892 = icmp eq %struct.LIST_HELP* %247, null
+  br i1 %cmp.i.i1892, label %cond.end476, label %if.end.i1894
+
+if.end.i1894:                                     ; preds = %cond.false469
+  %cmp.i18.i1893 = icmp eq i8* %call.i.i1889, null
+  br i1 %cmp.i18.i1893, label %cond.end476, label %for.cond.i1899
+
+for.cond.i1899:                                   ; preds = %if.end.i1894, %for.cond.i1899
+  %List1.addr.0.i1895 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1897, %for.cond.i1899 ], [ %247, %if.end.i1894 ]
+  %List1.addr.0.idx15.i1896 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1895, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1897 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1896, align 4
+  %cmp.i16.i1898 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1897, null
+  br i1 %cmp.i16.i1898, label %for.end.i1900, label %for.cond.i1899
+
+for.end.i1900:                                    ; preds = %for.cond.i1899
+  store %struct.LIST_HELP* %250, %struct.LIST_HELP** %List1.addr.0.idx15.i1896, align 4
+  br label %cond.end476
+
+cond.end476:                                      ; preds = %for.end.i1900, %if.end.i1894, %cond.false469, %sw.bb464
+  %cond477 = phi %struct.LIST_HELP* [ %247, %sw.bb464 ], [ %247, %for.end.i1900 ], [ %250, %cond.false469 ], [ %247, %if.end.i1894 ]
+  %cond477.c = ptrtoint %struct.LIST_HELP* %cond477 to i32
+  store i32 %cond477.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb479:                                         ; preds = %yyreduce
+  %252 = load i32* @dfg_IGNORE, align 4
+  %tobool480 = icmp eq i32 %252, 0
+  br i1 %tobool480, label %if.then481, label %sw.epilog1200
+
+if.then481:                                       ; preds = %sw.bb479
+  %string483 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %253 = load i8** %string483, align 4
+  %call484 = call fastcc i32 @dfg_Symbol(i8* %253, i32 0)
+  %cmp.i1903 = icmp sgt i32 %call484, 0
+  br i1 %cmp.i1903, label %if.end489, label %if.then487
+
+if.then487:                                       ; preds = %if.then481
+  %254 = load %struct._IO_FILE** @stdout, align 4
+  %call488 = call i32 @fflush(%struct._IO_FILE* %254) #1
+  %255 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([38 x i8]* @.str3, i32 0, i32 0), i32 %255) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end489:                                        ; preds = %if.then481
+  %call491 = call %struct.term* @term_Create(i32 %call484, %struct.LIST_HELP* null) #1
+  %call491.c = ptrtoint %struct.term* %call491 to i32
+  store i32 %call491.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb494:                                         ; preds = %yyreduce
+  %256 = load i32* @dfg_IGNORE, align 4
+  %tobool495 = icmp eq i32 %256, 0
+  br i1 %tobool495, label %if.then496, label %sw.epilog1200
+
+if.then496:                                       ; preds = %sw.bb494
+  %arrayidx497 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string498 = bitcast %union.yystype* %arrayidx497 to i8**
+  %257 = load i8** %string498, align 4
+  %call499 = call fastcc i32 @dfg_Symbol(i8* %257, i32 1)
+  %tobool.i = icmp sgt i32 %call499, -1
+  br i1 %tobool.i, label %if.then502, label %land.rhs.i
+
+land.rhs.i:                                       ; preds = %if.then496
+  %sub.i.i1904 = sub nsw i32 0, %call499
+  %and.i.i1905 = and i32 %3, %sub.i.i1904
+  %cmp.i1906 = icmp eq i32 %and.i.i1905, 2
+  br i1 %cmp.i1906, label %if.end504, label %if.then502
+
+if.then502:                                       ; preds = %if.then496, %land.rhs.i
+  %258 = load %struct._IO_FILE** @stdout, align 4
+  %call503 = call i32 @fflush(%struct._IO_FILE* %258) #1
+  %259 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([39 x i8]* @.str4, i32 0, i32 0), i32 %259) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end504:                                        ; preds = %land.rhs.i
+  %arrayidx505 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %string506 = bitcast %union.yystype* %arrayidx505 to i8**
+  %260 = load i8** %string506, align 4
+  %call507 = call fastcc i32 @dfg_Symbol(i8* %260, i32 0)
+  %cmp.i1907 = icmp sgt i32 %call507, 0
+  br i1 %cmp.i1907, label %if.end512, label %if.then510
+
+if.then510:                                       ; preds = %if.end504
+  %261 = load %struct._IO_FILE** @stdout, align 4
+  %call511 = call i32 @fflush(%struct._IO_FILE* %261) #1
+  %262 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([38 x i8]* @.str3, i32 0, i32 0), i32 %262) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end512:                                        ; preds = %if.end504
+  %call514 = call %struct.term* @term_Create(i32 %call507, %struct.LIST_HELP* null) #1
+  %263 = bitcast %struct.term* %call514 to i8*
+  %call.i.i1909 = call i8* @memory_Malloc(i32 8) #1
+  %264 = bitcast i8* %call.i.i1909 to %struct.LIST_HELP*
+  %car.i.i1910 = getelementptr inbounds i8* %call.i.i1909, i32 4
+  %265 = bitcast i8* %car.i.i1910 to i8**
+  store i8* %263, i8** %265, align 4
+  %cdr.i.i1911 = bitcast i8* %call.i.i1909 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1911, align 4
+  %call516 = call %struct.term* @term_Create(i32 %call499, %struct.LIST_HELP* %264) #1
+  %call516.c = ptrtoint %struct.term* %call516 to i32
+  store i32 %call516.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb519:                                         ; preds = %yyreduce
+  %arrayidx520 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list521 = bitcast %union.yystype* %arrayidx520 to %struct.LIST_HELP**
+  %266 = load %struct.LIST_HELP** %list521, align 4
+  %call522 = call %struct.LIST_HELP* @list_NReverse(%struct.LIST_HELP* %266) #1
+  %bool524 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -7, i32 0
+  %267 = load i32* %bool524, align 4
+  %tobool525 = icmp eq i32 %267, 0
+  br i1 %tobool525, label %if.else530, label %if.then526
+
+if.then526:                                       ; preds = %sw.bb519
+  %268 = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %269 = load %struct.LIST_HELP** %list521, align 4
+  %cmp.i.i1912 = icmp eq %struct.LIST_HELP* %268, null
+  br i1 %cmp.i.i1912, label %list_Nconc.exit1922, label %if.end.i1914
+
+if.end.i1914:                                     ; preds = %if.then526
+  %cmp.i18.i1913 = icmp eq %struct.LIST_HELP* %269, null
+  br i1 %cmp.i18.i1913, label %list_Nconc.exit1922, label %for.cond.i1919
+
+for.cond.i1919:                                   ; preds = %if.end.i1914, %for.cond.i1919
+  %List1.addr.0.i1915 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1917, %for.cond.i1919 ], [ %268, %if.end.i1914 ]
+  %List1.addr.0.idx15.i1916 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1915, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1917 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1916, align 4
+  %cmp.i16.i1918 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1917, null
+  br i1 %cmp.i16.i1918, label %for.end.i1920, label %for.cond.i1919
+
+for.end.i1920:                                    ; preds = %for.cond.i1919
+  store %struct.LIST_HELP* %269, %struct.LIST_HELP** %List1.addr.0.idx15.i1916, align 4
+  br label %list_Nconc.exit1922
+
+list_Nconc.exit1922:                              ; preds = %if.then526, %if.end.i1914, %for.end.i1920
+  %retval.0.i1921 = phi %struct.LIST_HELP* [ %268, %for.end.i1920 ], [ %269, %if.then526 ], [ %268, %if.end.i1914 ]
+  store %struct.LIST_HELP* %retval.0.i1921, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  br label %sw.epilog1200
+
+if.else530:                                       ; preds = %sw.bb519
+  %270 = load %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %271 = load %struct.LIST_HELP** %list521, align 4
+  %cmp.i.i1923 = icmp eq %struct.LIST_HELP* %270, null
+  br i1 %cmp.i.i1923, label %list_Nconc.exit1933, label %if.end.i1925
+
+if.end.i1925:                                     ; preds = %if.else530
+  %cmp.i18.i1924 = icmp eq %struct.LIST_HELP* %271, null
+  br i1 %cmp.i18.i1924, label %list_Nconc.exit1933, label %for.cond.i1930
+
+for.cond.i1930:                                   ; preds = %if.end.i1925, %for.cond.i1930
+  %List1.addr.0.i1926 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1928, %for.cond.i1930 ], [ %270, %if.end.i1925 ]
+  %List1.addr.0.idx15.i1927 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1926, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1928 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1927, align 4
+  %cmp.i16.i1929 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1928, null
+  br i1 %cmp.i16.i1929, label %for.end.i1931, label %for.cond.i1930
+
+for.end.i1931:                                    ; preds = %for.cond.i1930
+  store %struct.LIST_HELP* %271, %struct.LIST_HELP** %List1.addr.0.idx15.i1927, align 4
+  br label %list_Nconc.exit1933
+
+list_Nconc.exit1933:                              ; preds = %if.else530, %if.end.i1925, %for.end.i1931
+  %retval.0.i1932 = phi %struct.LIST_HELP* [ %270, %for.end.i1931 ], [ %271, %if.else530 ], [ %270, %if.end.i1925 ]
+  store %struct.LIST_HELP* %retval.0.i1932, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  br label %sw.epilog1200
+
+sw.bb535:                                         ; preds = %yyreduce
+  %272 = load i32* @dfg_IGNORE, align 4
+  %273 = inttoptr i32 %272 to i8*
+  %274 = load i32* @stack_POINTER, align 4
+  %inc.i = add i32 %274, 1
+  store i32 %inc.i, i32* @stack_POINTER, align 4
+  %arrayidx.i = getelementptr inbounds [10000 x i8*]* @stack_STACK, i32 0, i32 %274
+  store i8* %273, i8** %arrayidx.i, align 4
+  store i32 1, i32* @dfg_IGNORE, align 4
+  br label %sw.epilog1200
+
+sw.bb536:                                         ; preds = %yyreduce
+  %275 = load i32* @stack_POINTER, align 4
+  %dec.i = add i32 %275, -1
+  store i32 %dec.i, i32* @stack_POINTER, align 4
+  %arrayidx.i1934 = getelementptr inbounds [10000 x i8*]* @stack_STACK, i32 0, i32 %dec.i
+  %276 = load i8** %arrayidx.i1934, align 4
+  %277 = ptrtoint i8* %276 to i32
+  store i32 %277, i32* @dfg_IGNORE, align 4
+  br label %sw.epilog1200
+
+sw.bb538:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb541:                                         ; preds = %yyreduce
+  %arrayidx543 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %term544 = bitcast %union.yystype* %arrayidx543 to %struct.term**
+  %278 = load %struct.term** %term544, align 4
+  %cmp545 = icmp eq %struct.term* %278, null
+  %arrayidx548 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string549 = bitcast %union.yystype* %arrayidx548 to i8**
+  %279 = load i8** %string549, align 4
+  br i1 %cmp545, label %if.then547, label %if.else559
+
+if.then547:                                       ; preds = %sw.bb541
+  %cmp550 = icmp eq i8* %279, null
+  br i1 %cmp550, label %if.end555, label %if.then552
+
+if.then552:                                       ; preds = %if.then547
+  call void @string_StringFree(i8* %279) #1
+  br label %if.end555
+
+if.end555:                                        ; preds = %if.then547, %if.then552
+  %arrayidx556 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6
+  %list557 = bitcast %union.yystype* %arrayidx556 to %struct.LIST_HELP**
+  %280 = load %struct.LIST_HELP** %list557, align 4
+  %.c1740 = ptrtoint %struct.LIST_HELP* %280 to i32
+  br label %if.end569
+
+if.else559:                                       ; preds = %sw.bb541
+  %281 = bitcast %struct.term* %278 to %struct.LIST_HELP*
+  %call.i.i1935 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1936 = getelementptr inbounds i8* %call.i.i1935, i32 4
+  %282 = bitcast i8* %car.i.i1936 to i8**
+  store i8* %279, i8** %282, align 4
+  %cdr.i.i1937 = bitcast i8* %call.i.i1935 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %281, %struct.LIST_HELP** %cdr.i.i1937, align 4
+  %arrayidx565 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6
+  %list566 = bitcast %union.yystype* %arrayidx565 to %struct.LIST_HELP**
+  %283 = load %struct.LIST_HELP** %list566, align 4
+  %call.i1938 = call i8* @memory_Malloc(i32 8) #1
+  %car.i1939 = getelementptr inbounds i8* %call.i1938, i32 4
+  %284 = bitcast i8* %car.i1939 to i8**
+  store i8* %call.i.i1935, i8** %284, align 4
+  %cdr.i1940 = bitcast i8* %call.i1938 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %283, %struct.LIST_HELP** %cdr.i1940, align 4
+  %call567.c = ptrtoint i8* %call.i1938 to i32
+  br label %if.end569
+
+if.end569:                                        ; preds = %if.else559, %if.end555
+  %storemerge = phi i32 [ %call567.c, %if.else559 ], [ %.c1740, %if.end555 ]
+  store i32 %storemerge, i32* %2, align 4
+  %285 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %cmp.i.i1941 = icmp eq %struct.LIST_HELP* %285, null
+  br i1 %cmp.i.i1941, label %dfg_VarCheck.exit1946, label %if.then.i1944
+
+if.then.i1944:                                    ; preds = %if.end569
+  %286 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i1942 = call i32 @fflush(%struct._IO_FILE* %286) #1
+  %287 = load %struct._IO_FILE** @stderr, align 4
+  %call2.i1943 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %287, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1881) #1
+  call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([55 x i8]* @.str41, i32 0, i32 0)) #1
+  %288 = load %struct._IO_FILE** @stderr, align 4
+  %289 = call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %288) #1
+  call fastcc void @misc_DumpCore() #1
+  unreachable
+
+dfg_VarCheck.exit1946:                            ; preds = %if.end569
+  store i32 0, i32* @symbol_STANDARDVARCOUNTER, align 4
+  br label %sw.epilog1200
+
+sw.bb570:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb572:                                         ; preds = %yyreduce
+  %term574 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %290 = load %struct.term** %term574, align 4
+  %.c1739 = ptrtoint %struct.term* %290 to i32
+  store i32 %.c1739, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb576:                                         ; preds = %yyreduce
+  %term578 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %291 = load %struct.term** %term578, align 4
+  %.c1738 = ptrtoint %struct.term* %291 to i32
+  store i32 %.c1738, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb580:                                         ; preds = %yyreduce
+  %292 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %call.i.i.i1947 = call i8* @memory_Malloc(i32 8) #1
+  %293 = bitcast i8* %call.i.i.i1947 to %struct.LIST_HELP*
+  %car.i.i.i1948 = getelementptr inbounds i8* %call.i.i.i1947, i32 4
+  %294 = bitcast i8* %car.i.i.i1948 to i8**
+  store i8* null, i8** %294, align 4
+  %cdr.i.i.i1949 = bitcast i8* %call.i.i.i1947 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %292, %struct.LIST_HELP** %cdr.i.i.i1949, align 4
+  store %struct.LIST_HELP* %293, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 true, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb581:                                         ; preds = %yyreduce
+  store i1 false, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb582:                                         ; preds = %yyreduce
+  %295 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %.idx.i1950 = getelementptr %struct.LIST_HELP* %295, i32 0, i32 1
+  %.idx.val.i1951 = load i8** %.idx.i1950, align 4
+  %296 = bitcast i8* %.idx.val.i1951 to %struct.LIST_HELP*
+  call void @list_DeleteWithElement(%struct.LIST_HELP* %296, void (i8*)* bitcast (void (%struct.DFG_VARENTRY*)* @dfg_VarFree to void (i8*)*)) #1
+  %297 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %L.idx.i.i1952 = getelementptr %struct.LIST_HELP* %297, i32 0, i32 0
+  %L.idx.val.i.i1953 = load %struct.LIST_HELP** %L.idx.i.i1952, align 4
+  %298 = bitcast %struct.LIST_HELP* %297 to i8*
+  %299 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i1954 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %299, i32 0, i32 4
+  %300 = load i32* %total_size.i.i.i.i1954, align 4
+  %301 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i1955 = add i32 %301, %300
+  store i32 %add24.i.i.i.i1955, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i1956 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %299, i32 0, i32 0
+  %302 = load i8** %free.i.i.i.i1956, align 4
+  %.c.i.i.i1957 = bitcast i8* %302 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i1957, %struct.LIST_HELP** %L.idx.i.i1952, align 4
+  %303 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i1958 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %303, i32 0, i32 0
+  store i8* %298, i8** %free27.i.i.i.i1958, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i1953, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %304 = load i32* @dfg_IGNORE, align 4
+  %tobool583 = icmp eq i32 %304, 0
+  br i1 %tobool583, label %cond.false585, label %cond.end592
+
+cond.false585:                                    ; preds = %sw.bb582
+  %305 = load i32* @fol_ALL, align 4
+  %arrayidx587 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -5
+  %list588 = bitcast %union.yystype* %arrayidx587 to %struct.LIST_HELP**
+  %306 = load %struct.LIST_HELP** %list588, align 4
+  %arrayidx589 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term590 = bitcast %union.yystype* %arrayidx589 to %struct.term**
+  %307 = load %struct.term** %term590, align 4
+  %call591 = call %struct.term* @dfg_CreateQuantifier(i32 %305, %struct.LIST_HELP* %306, %struct.term* %307)
+  %phitmp1737 = ptrtoint %struct.term* %call591 to i32
+  br label %cond.end592
+
+cond.end592:                                      ; preds = %sw.bb582, %cond.false585
+  %cond593 = phi i32 [ %phitmp1737, %cond.false585 ], [ 0, %sw.bb582 ]
+  store i32 %cond593, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb595:                                         ; preds = %yyreduce
+  %308 = load i32* @dfg_IGNORE, align 4
+  %tobool596 = icmp eq i32 %308, 0
+  br i1 %tobool596, label %cond.false598, label %cond.end603
+
+cond.false598:                                    ; preds = %sw.bb595
+  %309 = load i32* @fol_OR, align 4
+  %arrayidx600 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %list601 = bitcast %union.yystype* %arrayidx600 to %struct.LIST_HELP**
+  %310 = load %struct.LIST_HELP** %list601, align 4
+  %call602 = call %struct.term* @term_Create(i32 %309, %struct.LIST_HELP* %310) #1
+  %phitmp1736 = ptrtoint %struct.term* %call602 to i32
+  br label %cond.end603
+
+cond.end603:                                      ; preds = %sw.bb595, %cond.false598
+  %cond604 = phi i32 [ %phitmp1736, %cond.false598 ], [ 0, %sw.bb595 ]
+  store i32 %cond604, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb606:                                         ; preds = %yyreduce
+  %311 = load i32* @dfg_IGNORE, align 4
+  %tobool607 = icmp eq i32 %311, 0
+  br i1 %tobool607, label %cond.false610, label %cond.end614
+
+cond.false610:                                    ; preds = %sw.bb606
+  %term612 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %312 = load %struct.term** %term612, align 4
+  %313 = bitcast %struct.term* %312 to i8*
+  %call.i.i1959 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1960 = getelementptr inbounds i8* %call.i.i1959, i32 4
+  %314 = bitcast i8* %car.i.i1960 to i8**
+  store i8* %313, i8** %314, align 4
+  %cdr.i.i1961 = bitcast i8* %call.i.i1959 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1961, align 4
+  %phitmp1735 = ptrtoint i8* %call.i.i1959 to i32
+  br label %cond.end614
+
+cond.end614:                                      ; preds = %sw.bb606, %cond.false610
+  %cond615 = phi i32 [ %phitmp1735, %cond.false610 ], [ 0, %sw.bb606 ]
+  store i32 %cond615, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb617:                                         ; preds = %yyreduce
+  %315 = load i32* @dfg_IGNORE, align 4
+  %tobool618 = icmp eq i32 %315, 0
+  %arrayidx620 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list621 = bitcast %union.yystype* %arrayidx620 to %struct.LIST_HELP**
+  %316 = load %struct.LIST_HELP** %list621, align 4
+  br i1 %tobool618, label %cond.false622, label %cond.end629
+
+cond.false622:                                    ; preds = %sw.bb617
+  %term626 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %317 = load %struct.term** %term626, align 4
+  %318 = bitcast %struct.term* %317 to i8*
+  %call.i.i1962 = call i8* @memory_Malloc(i32 8) #1
+  %319 = bitcast i8* %call.i.i1962 to %struct.LIST_HELP*
+  %car.i.i1963 = getelementptr inbounds i8* %call.i.i1962, i32 4
+  %320 = bitcast i8* %car.i.i1963 to i8**
+  store i8* %318, i8** %320, align 4
+  %cdr.i.i1964 = bitcast i8* %call.i.i1962 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1964, align 4
+  %cmp.i.i1965 = icmp eq %struct.LIST_HELP* %316, null
+  br i1 %cmp.i.i1965, label %cond.end629, label %if.end.i1967
+
+if.end.i1967:                                     ; preds = %cond.false622
+  %cmp.i18.i1966 = icmp eq i8* %call.i.i1962, null
+  br i1 %cmp.i18.i1966, label %cond.end629, label %for.cond.i1972
+
+for.cond.i1972:                                   ; preds = %if.end.i1967, %for.cond.i1972
+  %List1.addr.0.i1968 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1970, %for.cond.i1972 ], [ %316, %if.end.i1967 ]
+  %List1.addr.0.idx15.i1969 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1968, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1970 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1969, align 4
+  %cmp.i16.i1971 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1970, null
+  br i1 %cmp.i16.i1971, label %for.end.i1973, label %for.cond.i1972
+
+for.end.i1973:                                    ; preds = %for.cond.i1972
+  store %struct.LIST_HELP* %319, %struct.LIST_HELP** %List1.addr.0.idx15.i1969, align 4
+  br label %cond.end629
+
+cond.end629:                                      ; preds = %for.end.i1973, %if.end.i1967, %cond.false622, %sw.bb617
+  %cond630 = phi %struct.LIST_HELP* [ %316, %sw.bb617 ], [ %316, %for.end.i1973 ], [ %319, %cond.false622 ], [ %316, %if.end.i1967 ]
+  %cond630.c = ptrtoint %struct.LIST_HELP* %cond630 to i32
+  store i32 %cond630.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb632:                                         ; preds = %yyreduce
+  %term634 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %321 = load %struct.term** %term634, align 4
+  %.c1734 = ptrtoint %struct.term* %321 to i32
+  store i32 %.c1734, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb636:                                         ; preds = %yyreduce
+  %322 = load i32* @dfg_IGNORE, align 4
+  %tobool637 = icmp eq i32 %322, 0
+  br i1 %tobool637, label %cond.false641, label %cond.true638
+
+cond.true638:                                     ; preds = %sw.bb636
+  %arrayidx639 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term640 = bitcast %union.yystype* %arrayidx639 to %struct.term**
+  %323 = load %struct.term** %term640, align 4
+  br label %cond.end647
+
+cond.false641:                                    ; preds = %sw.bb636
+  %324 = load i32* @fol_NOT, align 4
+  %arrayidx643 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term644 = bitcast %union.yystype* %arrayidx643 to %struct.term**
+  %325 = load %struct.term** %term644, align 4
+  %326 = bitcast %struct.term* %325 to i8*
+  %call.i.i1976 = call i8* @memory_Malloc(i32 8) #1
+  %327 = bitcast i8* %call.i.i1976 to %struct.LIST_HELP*
+  %car.i.i1977 = getelementptr inbounds i8* %call.i.i1976, i32 4
+  %328 = bitcast i8* %car.i.i1977 to i8**
+  store i8* %326, i8** %328, align 4
+  %cdr.i.i1978 = bitcast i8* %call.i.i1976 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1978, align 4
+  %call646 = call %struct.term* @term_Create(i32 %324, %struct.LIST_HELP* %327) #1
+  br label %cond.end647
+
+cond.end647:                                      ; preds = %cond.false641, %cond.true638
+  %cond648 = phi %struct.term* [ %323, %cond.true638 ], [ %call646, %cond.false641 ]
+  %cond648.c = ptrtoint %struct.term* %cond648 to i32
+  store i32 %cond648.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb650:                                         ; preds = %yyreduce
+  %term652 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %329 = load %struct.term** %term652, align 4
+  %330 = bitcast %struct.term* %329 to i8*
+  %call.i.i1979 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i1980 = getelementptr inbounds i8* %call.i.i1979, i32 4
+  %331 = bitcast i8* %car.i.i1980 to i8**
+  store i8* %330, i8** %331, align 4
+  %cdr.i.i1981 = bitcast i8* %call.i.i1979 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1981, align 4
+  %call653.c = ptrtoint i8* %call.i.i1979 to i32
+  store i32 %call653.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb655:                                         ; preds = %yyreduce
+  %arrayidx656 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list657 = bitcast %union.yystype* %arrayidx656 to %struct.LIST_HELP**
+  %332 = load %struct.LIST_HELP** %list657, align 4
+  %term659 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %333 = load %struct.term** %term659, align 4
+  %334 = bitcast %struct.term* %333 to i8*
+  %call.i.i1982 = call i8* @memory_Malloc(i32 8) #1
+  %335 = bitcast i8* %call.i.i1982 to %struct.LIST_HELP*
+  %car.i.i1983 = getelementptr inbounds i8* %call.i.i1982, i32 4
+  %336 = bitcast i8* %car.i.i1983 to i8**
+  store i8* %334, i8** %336, align 4
+  %cdr.i.i1984 = bitcast i8* %call.i.i1982 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i1984, align 4
+  %cmp.i.i1985 = icmp eq %struct.LIST_HELP* %332, null
+  br i1 %cmp.i.i1985, label %list_Nconc.exit1995, label %if.end.i1987
+
+if.end.i1987:                                     ; preds = %sw.bb655
+  %cmp.i18.i1986 = icmp eq i8* %call.i.i1982, null
+  br i1 %cmp.i18.i1986, label %list_Nconc.exit1995, label %for.cond.i1992
+
+for.cond.i1992:                                   ; preds = %if.end.i1987, %for.cond.i1992
+  %List1.addr.0.i1988 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i1990, %for.cond.i1992 ], [ %332, %if.end.i1987 ]
+  %List1.addr.0.idx15.i1989 = getelementptr %struct.LIST_HELP* %List1.addr.0.i1988, i32 0, i32 0
+  %List1.addr.0.idx15.val.i1990 = load %struct.LIST_HELP** %List1.addr.0.idx15.i1989, align 4
+  %cmp.i16.i1991 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i1990, null
+  br i1 %cmp.i16.i1991, label %for.end.i1993, label %for.cond.i1992
+
+for.end.i1993:                                    ; preds = %for.cond.i1992
+  store %struct.LIST_HELP* %335, %struct.LIST_HELP** %List1.addr.0.idx15.i1989, align 4
+  br label %list_Nconc.exit1995
+
+list_Nconc.exit1995:                              ; preds = %sw.bb655, %if.end.i1987, %for.end.i1993
+  %retval.0.i1994 = phi %struct.LIST_HELP* [ %332, %for.end.i1993 ], [ %335, %sw.bb655 ], [ %332, %if.end.i1987 ]
+  %call661.c = ptrtoint %struct.LIST_HELP* %retval.0.i1994 to i32
+  store i32 %call661.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb663:                                         ; preds = %yyreduce
+  %337 = load i32* @dfg_IGNORE, align 4
+  %tobool664 = icmp eq i32 %337, 0
+  br i1 %tobool664, label %cond.false666, label %cond.end671
+
+cond.false666:                                    ; preds = %sw.bb663
+  %string668 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %338 = load i8** %string668, align 4
+  %call.i1996 = call i32 @list_Length(%struct.LIST_HELP* null) #1
+  %call1.i1997 = call fastcc i32 @dfg_Symbol(i8* %338, i32 %call.i1996) #1
+  %tobool.i.i1998 = icmp sgt i32 %call1.i1997, -1
+  br i1 %tobool.i.i1998, label %if.then.i2002, label %land.rhs.i.i2001
+
+land.rhs.i.i2001:                                 ; preds = %cond.false666
+  %sub.i.i.i1999 = sub nsw i32 0, %call1.i1997
+  %and.i.i.i2000 = and i32 %3, %sub.i.i.i1999
+  %cmp.i10.i = icmp eq i32 %and.i.i.i2000, 2
+  br i1 %cmp.i10.i, label %dfg_AtomCreate.exit, label %if.then.i2002
+
+if.then.i2002:                                    ; preds = %land.rhs.i.i2001, %cond.false666
+  %339 = load %struct._IO_FILE** @stdout, align 4
+  %call5.i = call i32 @fflush(%struct._IO_FILE* %339) #1
+  %340 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([39 x i8]* @.str4, i32 0, i32 0), i32 %340) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+dfg_AtomCreate.exit:                              ; preds = %land.rhs.i.i2001
+  %call6.i = call %struct.term* @term_Create(i32 %call1.i1997, %struct.LIST_HELP* null) #1
+  %phitmp1733 = ptrtoint %struct.term* %call6.i to i32
+  br label %cond.end671
+
+cond.end671:                                      ; preds = %sw.bb663, %dfg_AtomCreate.exit
+  %cond672 = phi i32 [ %phitmp1733, %dfg_AtomCreate.exit ], [ 0, %sw.bb663 ]
+  store i32 %cond672, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb674:                                         ; preds = %yyreduce
+  %341 = load i32* @dfg_IGNORE, align 4
+  %tobool675 = icmp eq i32 %341, 0
+  br i1 %tobool675, label %cond.false677, label %cond.end681
+
+cond.false677:                                    ; preds = %sw.bb674
+  %342 = load i32* @fol_TRUE, align 4
+  %call680 = call %struct.term* @term_Create(i32 %342, %struct.LIST_HELP* null) #1
+  %phitmp1732 = ptrtoint %struct.term* %call680 to i32
+  br label %cond.end681
+
+cond.end681:                                      ; preds = %sw.bb674, %cond.false677
+  %cond682 = phi i32 [ %phitmp1732, %cond.false677 ], [ 0, %sw.bb674 ]
+  store i32 %cond682, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb684:                                         ; preds = %yyreduce
+  %343 = load i32* @dfg_IGNORE, align 4
+  %tobool685 = icmp eq i32 %343, 0
+  br i1 %tobool685, label %cond.false687, label %cond.end691
+
+cond.false687:                                    ; preds = %sw.bb684
+  %344 = load i32* @fol_FALSE, align 4
+  %call690 = call %struct.term* @term_Create(i32 %344, %struct.LIST_HELP* null) #1
+  %phitmp1731 = ptrtoint %struct.term* %call690 to i32
+  br label %cond.end691
+
+cond.end691:                                      ; preds = %sw.bb684, %cond.false687
+  %cond692 = phi i32 [ %phitmp1731, %cond.false687 ], [ 0, %sw.bb684 ]
+  store i32 %cond692, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb694:                                         ; preds = %yyreduce
+  %345 = load i32* @dfg_IGNORE, align 4
+  %tobool695 = icmp eq i32 %345, 0
+  br i1 %tobool695, label %cond.false697, label %cond.end706
+
+cond.false697:                                    ; preds = %sw.bb694
+  %346 = load i32* @fol_EQUALITY, align 4
+  %arrayidx699 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %term700 = bitcast %union.yystype* %arrayidx699 to %struct.term**
+  %347 = load %struct.term** %term700, align 4
+  %348 = bitcast %struct.term* %347 to i8*
+  %arrayidx701 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term702 = bitcast %union.yystype* %arrayidx701 to %struct.term**
+  %349 = load %struct.term** %term702, align 4
+  %350 = bitcast %struct.term* %349 to i8*
+  %call.i.i2004 = call i8* @memory_Malloc(i32 8) #1
+  %351 = bitcast i8* %call.i.i2004 to %struct.LIST_HELP*
+  %car.i.i2005 = getelementptr inbounds i8* %call.i.i2004, i32 4
+  %352 = bitcast i8* %car.i.i2005 to i8**
+  store i8* %350, i8** %352, align 4
+  %cdr.i.i2006 = bitcast i8* %call.i.i2004 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2006, align 4
+  %call.i2007 = call i8* @memory_Malloc(i32 8) #1
+  %353 = bitcast i8* %call.i2007 to %struct.LIST_HELP*
+  %car.i2008 = getelementptr inbounds i8* %call.i2007, i32 4
+  %354 = bitcast i8* %car.i2008 to i8**
+  store i8* %348, i8** %354, align 4
+  %cdr.i2009 = bitcast i8* %call.i2007 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %351, %struct.LIST_HELP** %cdr.i2009, align 4
+  %call705 = call %struct.term* @term_Create(i32 %346, %struct.LIST_HELP* %353) #1
+  %phitmp1730 = ptrtoint %struct.term* %call705 to i32
+  br label %cond.end706
+
+cond.end706:                                      ; preds = %sw.bb694, %cond.false697
+  %cond707 = phi i32 [ %phitmp1730, %cond.false697 ], [ 0, %sw.bb694 ]
+  store i32 %cond707, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb709:                                         ; preds = %yyreduce
+  %355 = load i32* @dfg_IGNORE, align 4
+  %tobool710 = icmp eq i32 %355, 0
+  br i1 %tobool710, label %cond.false712, label %cond.end718
+
+cond.false712:                                    ; preds = %sw.bb709
+  %arrayidx713 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string714 = bitcast %union.yystype* %arrayidx713 to i8**
+  %356 = load i8** %string714, align 4
+  %arrayidx715 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %list716 = bitcast %union.yystype* %arrayidx715 to %struct.LIST_HELP**
+  %357 = load %struct.LIST_HELP** %list716, align 4
+  %call.i2010 = call i32 @list_Length(%struct.LIST_HELP* %357) #1
+  %call1.i2011 = call fastcc i32 @dfg_Symbol(i8* %356, i32 %call.i2010) #1
+  %tobool.i.i2012 = icmp sgt i32 %call1.i2011, -1
+  br i1 %tobool.i.i2012, label %if.then.i2018, label %land.rhs.i.i2016
+
+land.rhs.i.i2016:                                 ; preds = %cond.false712
+  %sub.i.i.i2013 = sub nsw i32 0, %call1.i2011
+  %and.i.i.i2014 = and i32 %3, %sub.i.i.i2013
+  %cmp.i10.i2015 = icmp eq i32 %and.i.i.i2014, 2
+  br i1 %cmp.i10.i2015, label %dfg_AtomCreate.exit2021, label %if.then.i2018
+
+if.then.i2018:                                    ; preds = %land.rhs.i.i2016, %cond.false712
+  %358 = load %struct._IO_FILE** @stdout, align 4
+  %call5.i2017 = call i32 @fflush(%struct._IO_FILE* %358) #1
+  %359 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([39 x i8]* @.str4, i32 0, i32 0), i32 %359) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+dfg_AtomCreate.exit2021:                          ; preds = %land.rhs.i.i2016
+  %call6.i2019 = call %struct.term* @term_Create(i32 %call1.i2011, %struct.LIST_HELP* %357) #1
+  %phitmp1729 = ptrtoint %struct.term* %call6.i2019 to i32
+  br label %cond.end718
+
+cond.end718:                                      ; preds = %sw.bb709, %dfg_AtomCreate.exit2021
+  %cond719 = phi i32 [ %phitmp1729, %dfg_AtomCreate.exit2021 ], [ 0, %sw.bb709 ]
+  store i32 %cond719, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb721:                                         ; preds = %yyreduce
+  %360 = load i32* @dfg_IGNORE, align 4
+  %tobool722 = icmp eq i32 %360, 0
+  br i1 %tobool722, label %cond.false724, label %cond.end729
+
+cond.false724:                                    ; preds = %sw.bb721
+  %string726 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %361 = load i8** %string726, align 4
+  %call.i2022 = call i32 @list_Length(%struct.LIST_HELP* null) #1
+  %call1.i2023 = call fastcc i32 @dfg_Symbol(i8* %361, i32 %call.i2022) #1
+  %cmp.i.i2024 = icmp sgt i32 %call1.i2023, 0
+  br i1 %cmp.i.i2024, label %dfg_TermCreate.exit, label %land.lhs.true.i
+
+land.lhs.true.i:                                  ; preds = %cond.false724
+  %tobool.i.i2025 = icmp sgt i32 %call1.i2023, -1
+  br i1 %tobool.i.i2025, label %if.then.i2030, label %land.rhs.i.i2028
+
+land.rhs.i.i2028:                                 ; preds = %land.lhs.true.i
+  %sub.i6.i.i2026 = sub nsw i32 0, %call1.i2023
+  %and.i7.i.i2027 = and i32 %3, %sub.i6.i.i2026
+  %362 = icmp ult i32 %and.i7.i.i2027, 2
+  br i1 %362, label %dfg_TermCreate.exit, label %if.then.i2030
+
+if.then.i2030:                                    ; preds = %land.rhs.i.i2028, %land.lhs.true.i
+  %363 = load %struct._IO_FILE** @stdout, align 4
+  %call5.i2029 = call i32 @fflush(%struct._IO_FILE* %363) #1
+  %364 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([31 x i8]* @.str233, i32 0, i32 0), i32 %364) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+dfg_TermCreate.exit:                              ; preds = %cond.false724, %land.rhs.i.i2028
+  %call6.i2031 = call %struct.term* @term_Create(i32 %call1.i2023, %struct.LIST_HELP* null) #1
+  %phitmp1728 = ptrtoint %struct.term* %call6.i2031 to i32
+  br label %cond.end729
+
+cond.end729:                                      ; preds = %sw.bb721, %dfg_TermCreate.exit
+  %cond730 = phi i32 [ %phitmp1728, %dfg_TermCreate.exit ], [ 0, %sw.bb721 ]
+  store i32 %cond730, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb732:                                         ; preds = %yyreduce
+  %365 = load i32* @dfg_IGNORE, align 4
+  %tobool733 = icmp eq i32 %365, 0
+  br i1 %tobool733, label %cond.false735, label %cond.end741
+
+cond.false735:                                    ; preds = %sw.bb732
+  %arrayidx736 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string737 = bitcast %union.yystype* %arrayidx736 to i8**
+  %366 = load i8** %string737, align 4
+  %arrayidx738 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %list739 = bitcast %union.yystype* %arrayidx738 to %struct.LIST_HELP**
+  %367 = load %struct.LIST_HELP** %list739, align 4
+  %call.i2033 = call i32 @list_Length(%struct.LIST_HELP* %367) #1
+  %call1.i2034 = call fastcc i32 @dfg_Symbol(i8* %366, i32 %call.i2033) #1
+  %cmp.i.i2035 = icmp sgt i32 %call1.i2034, 0
+  br i1 %cmp.i.i2035, label %dfg_TermCreate.exit2045, label %land.lhs.true.i2037
+
+land.lhs.true.i2037:                              ; preds = %cond.false735
+  %tobool.i.i2036 = icmp sgt i32 %call1.i2034, -1
+  br i1 %tobool.i.i2036, label %if.then.i2042, label %land.rhs.i.i2040
+
+land.rhs.i.i2040:                                 ; preds = %land.lhs.true.i2037
+  %sub.i6.i.i2038 = sub nsw i32 0, %call1.i2034
+  %and.i7.i.i2039 = and i32 %3, %sub.i6.i.i2038
+  %368 = icmp ult i32 %and.i7.i.i2039, 2
+  br i1 %368, label %dfg_TermCreate.exit2045, label %if.then.i2042
+
+if.then.i2042:                                    ; preds = %land.rhs.i.i2040, %land.lhs.true.i2037
+  %369 = load %struct._IO_FILE** @stdout, align 4
+  %call5.i2041 = call i32 @fflush(%struct._IO_FILE* %369) #1
+  %370 = load i32* @dfg_LINENUMBER, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([31 x i8]* @.str233, i32 0, i32 0), i32 %370) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+dfg_TermCreate.exit2045:                          ; preds = %cond.false735, %land.rhs.i.i2040
+  %call6.i2043 = call %struct.term* @term_Create(i32 %call1.i2034, %struct.LIST_HELP* %367) #1
+  %phitmp1727 = ptrtoint %struct.term* %call6.i2043 to i32
+  br label %cond.end741
+
+cond.end741:                                      ; preds = %sw.bb732, %dfg_TermCreate.exit2045
+  %cond742 = phi i32 [ %phitmp1727, %dfg_TermCreate.exit2045 ], [ 0, %sw.bb732 ]
+  store i32 %cond742, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb744:                                         ; preds = %yyreduce
+  %371 = load i32* @dfg_IGNORE, align 4
+  %tobool745 = icmp eq i32 %371, 0
+  br i1 %tobool745, label %cond.false748, label %cond.end752
+
+cond.false748:                                    ; preds = %sw.bb744
+  %term750 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %372 = load %struct.term** %term750, align 4
+  %373 = bitcast %struct.term* %372 to i8*
+  %call.i.i2046 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i2047 = getelementptr inbounds i8* %call.i.i2046, i32 4
+  %374 = bitcast i8* %car.i.i2047 to i8**
+  store i8* %373, i8** %374, align 4
+  %cdr.i.i2048 = bitcast i8* %call.i.i2046 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2048, align 4
+  %phitmp1726 = ptrtoint i8* %call.i.i2046 to i32
+  br label %cond.end752
+
+cond.end752:                                      ; preds = %sw.bb744, %cond.false748
+  %cond753 = phi i32 [ %phitmp1726, %cond.false748 ], [ 0, %sw.bb744 ]
+  store i32 %cond753, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb755:                                         ; preds = %yyreduce
+  %375 = load i32* @dfg_IGNORE, align 4
+  %tobool756 = icmp eq i32 %375, 0
+  %arrayidx758 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list759 = bitcast %union.yystype* %arrayidx758 to %struct.LIST_HELP**
+  %376 = load %struct.LIST_HELP** %list759, align 4
+  br i1 %tobool756, label %cond.false760, label %cond.end767
+
+cond.false760:                                    ; preds = %sw.bb755
+  %term764 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %377 = load %struct.term** %term764, align 4
+  %378 = bitcast %struct.term* %377 to i8*
+  %call.i.i2049 = call i8* @memory_Malloc(i32 8) #1
+  %379 = bitcast i8* %call.i.i2049 to %struct.LIST_HELP*
+  %car.i.i2050 = getelementptr inbounds i8* %call.i.i2049, i32 4
+  %380 = bitcast i8* %car.i.i2050 to i8**
+  store i8* %378, i8** %380, align 4
+  %cdr.i.i2051 = bitcast i8* %call.i.i2049 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2051, align 4
+  %cmp.i.i2052 = icmp eq %struct.LIST_HELP* %376, null
+  br i1 %cmp.i.i2052, label %cond.end767, label %if.end.i2054
+
+if.end.i2054:                                     ; preds = %cond.false760
+  %cmp.i18.i2053 = icmp eq i8* %call.i.i2049, null
+  br i1 %cmp.i18.i2053, label %cond.end767, label %for.cond.i2059
+
+for.cond.i2059:                                   ; preds = %if.end.i2054, %for.cond.i2059
+  %List1.addr.0.i2055 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i2057, %for.cond.i2059 ], [ %376, %if.end.i2054 ]
+  %List1.addr.0.idx15.i2056 = getelementptr %struct.LIST_HELP* %List1.addr.0.i2055, i32 0, i32 0
+  %List1.addr.0.idx15.val.i2057 = load %struct.LIST_HELP** %List1.addr.0.idx15.i2056, align 4
+  %cmp.i16.i2058 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i2057, null
+  br i1 %cmp.i16.i2058, label %for.end.i2060, label %for.cond.i2059
+
+for.end.i2060:                                    ; preds = %for.cond.i2059
+  store %struct.LIST_HELP* %379, %struct.LIST_HELP** %List1.addr.0.idx15.i2056, align 4
+  br label %cond.end767
+
+cond.end767:                                      ; preds = %for.end.i2060, %if.end.i2054, %cond.false760, %sw.bb755
+  %cond768 = phi %struct.LIST_HELP* [ %376, %sw.bb755 ], [ %376, %for.end.i2060 ], [ %379, %cond.false760 ], [ %376, %if.end.i2054 ]
+  %cond768.c = ptrtoint %struct.LIST_HELP* %cond768 to i32
+  store i32 %cond768.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb770:                                         ; preds = %yyreduce
+  %arrayidx771 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string772 = bitcast %union.yystype* %arrayidx771 to i8**
+  %381 = load i8** %string772, align 4
+  %call.i2063 = call i32 @strcmp(i8* %381, i8* getelementptr inbounds ([6 x i8]* @.str5, i32 0, i32 0)) #1
+  %cmp.i2064 = icmp eq i32 %call.i2063, 0
+  br i1 %cmp.i2064, label %sw.epilog1200, label %if.then775
+
+if.then775:                                       ; preds = %sw.bb770
+  %382 = load i32* @dfg_IGNORE, align 4
+  %383 = inttoptr i32 %382 to i8*
+  %384 = load i32* @stack_POINTER, align 4
+  %inc.i2066 = add i32 %384, 1
+  store i32 %inc.i2066, i32* @stack_POINTER, align 4
+  %arrayidx.i2067 = getelementptr inbounds [10000 x i8*]* @stack_STACK, i32 0, i32 %384
+  store i8* %383, i8** %arrayidx.i2067, align 4
+  store i32 1, i32* @dfg_IGNORE, align 4
+  br label %sw.epilog1200
+
+sw.bb777:                                         ; preds = %yyreduce
+  %arrayidx778 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -6
+  %string779 = bitcast %union.yystype* %arrayidx778 to i8**
+  %385 = load i8** %string779, align 4
+  %call.i2068 = call i32 @strcmp(i8* %385, i8* getelementptr inbounds ([6 x i8]* @.str5, i32 0, i32 0)) #1
+  %cmp.i2069 = icmp eq i32 %call.i2068, 0
+  br i1 %cmp.i2069, label %if.end784, label %if.then782
+
+if.then782:                                       ; preds = %sw.bb777
+  %386 = load i32* @stack_POINTER, align 4
+  %dec.i2071 = add i32 %386, -1
+  store i32 %dec.i2071, i32* @stack_POINTER, align 4
+  %arrayidx.i2072 = getelementptr inbounds [10000 x i8*]* @stack_STACK, i32 0, i32 %dec.i2071
+  %387 = load i8** %arrayidx.i2072, align 4
+  %388 = ptrtoint i8* %387 to i32
+  store i32 %388, i32* @dfg_IGNORE, align 4
+  %.pre = load i8** %string779, align 4
+  br label %if.end784
+
+if.end784:                                        ; preds = %sw.bb777, %if.then782
+  %389 = phi i8* [ %385, %sw.bb777 ], [ %.pre, %if.then782 ]
+  call void @string_StringFree(i8* %389) #1
+  br label %sw.epilog1200
+
+sw.bb787:                                         ; preds = %yyreduce
+  %390 = load i32* @dfg_IGNORE, align 4
+  %tobool788 = icmp eq i32 %390, 0
+  %arrayidx789 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -11
+  %string790 = bitcast %union.yystype* %arrayidx789 to i8**
+  %391 = load i8** %string790, align 4
+  br i1 %tobool788, label %land.lhs.true, label %if.else823
+
+land.lhs.true:                                    ; preds = %sw.bb787
+  %cmp791 = icmp eq i8* %391, null
+  br i1 %cmp791, label %if.end831, label %land.lhs.true793
+
+land.lhs.true793:                                 ; preds = %land.lhs.true
+  %arrayidx794 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -9
+  %term795 = bitcast %union.yystype* %arrayidx794 to %struct.term**
+  %392 = load %struct.term** %term795, align 4
+  %cmp796 = icmp eq %struct.term* %392, null
+  br i1 %cmp796, label %if.then828, label %land.lhs.true798
+
+land.lhs.true798:                                 ; preds = %land.lhs.true793
+  %arrayidx799 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -4
+  %list800 = bitcast %union.yystype* %arrayidx799 to %struct.LIST_HELP**
+  %393 = load %struct.LIST_HELP** %list800, align 4
+  %cmp.i2073 = icmp eq %struct.LIST_HELP* %393, null
+  br i1 %cmp.i2073, label %if.else823, label %if.then803
+
+if.then803:                                       ; preds = %land.lhs.true798
+  %arrayidx804 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -7
+  %string805 = bitcast %union.yystype* %arrayidx804 to i8**
+  %394 = load i8** %string805, align 4
+  %call806 = call i32 @clause_GetOriginFromString(i8* %394) #1
+  %395 = load i8** %string805, align 4
+  call void @string_StringFree(i8* %395) #1
+  %number810 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2, i32 0
+  %396 = load i32* %number810, align 4
+  %397 = inttoptr i32 %396 to i8*
+  %398 = inttoptr i32 %call806 to i8*
+  %call.i.i2075 = call i8* @memory_Malloc(i32 8) #1
+  %399 = bitcast i8* %call.i.i2075 to %struct.LIST_HELP*
+  %car.i.i2076 = getelementptr inbounds i8* %call.i.i2075, i32 4
+  %400 = bitcast i8* %car.i.i2076 to i8**
+  store i8* %398, i8** %400, align 4
+  %cdr.i.i2077 = bitcast i8* %call.i.i2075 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2077, align 4
+  %call.i2078 = call i8* @memory_Malloc(i32 8) #1
+  %401 = bitcast i8* %call.i2078 to %struct.LIST_HELP*
+  %car.i2079 = getelementptr inbounds i8* %call.i2078, i32 4
+  %402 = bitcast i8* %car.i2079 to i8**
+  store i8* %397, i8** %402, align 4
+  %cdr.i2080 = bitcast i8* %call.i2078 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %399, %struct.LIST_HELP** %cdr.i2080, align 4
+  %403 = load i8** %string790, align 4
+  %404 = load %struct.term** %term795, align 4
+  %405 = bitcast %struct.term* %404 to i8*
+  %406 = load %struct.LIST_HELP** %list800, align 4
+  %407 = bitcast %struct.LIST_HELP* %406 to i8*
+  %call.i2081 = call i8* @memory_Malloc(i32 8) #1
+  %408 = bitcast i8* %call.i2081 to %struct.LIST_HELP*
+  %car.i2082 = getelementptr inbounds i8* %call.i2081, i32 4
+  %409 = bitcast i8* %car.i2082 to i8**
+  store i8* %407, i8** %409, align 4
+  %cdr.i2083 = bitcast i8* %call.i2081 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %401, %struct.LIST_HELP** %cdr.i2083, align 4
+  %call.i2084 = call i8* @memory_Malloc(i32 8) #1
+  %410 = bitcast i8* %call.i2084 to %struct.LIST_HELP*
+  %car.i2085 = getelementptr inbounds i8* %call.i2084, i32 4
+  %411 = bitcast i8* %car.i2085 to i8**
+  store i8* %405, i8** %411, align 4
+  %cdr.i2086 = bitcast i8* %call.i2084 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %408, %struct.LIST_HELP** %cdr.i2086, align 4
+  %call.i2087 = call i8* @memory_Malloc(i32 8) #1
+  %car.i2088 = getelementptr inbounds i8* %call.i2087, i32 4
+  %412 = bitcast i8* %car.i2088 to i8**
+  store i8* %403, i8** %412, align 4
+  %cdr.i2089 = bitcast i8* %call.i2087 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %410, %struct.LIST_HELP** %cdr.i2089, align 4
+  %413 = load %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  %call.i2090 = call i8* @memory_Malloc(i32 8) #1
+  %414 = bitcast i8* %call.i2090 to %struct.LIST_HELP*
+  %car.i2091 = getelementptr inbounds i8* %call.i2090, i32 4
+  %415 = bitcast i8* %car.i2091 to i8**
+  store i8* %call.i2087, i8** %415, align 4
+  %cdr.i2092 = bitcast i8* %call.i2090 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %413, %struct.LIST_HELP** %cdr.i2092, align 4
+  store %struct.LIST_HELP* %414, %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  br label %if.end850
+
+if.else823:                                       ; preds = %sw.bb787, %land.lhs.true798
+  %cmp826 = icmp eq i8* %391, null
+  br i1 %cmp826, label %if.end831, label %if.then828
+
+if.then828:                                       ; preds = %land.lhs.true793, %if.else823
+  call void @string_StringFree(i8* %391) #1
+  br label %if.end831
+
+if.end831:                                        ; preds = %land.lhs.true, %if.else823, %if.then828
+  %arrayidx832 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -9
+  %term833 = bitcast %union.yystype* %arrayidx832 to %struct.term**
+  %416 = load %struct.term** %term833, align 4
+  %cmp834 = icmp eq %struct.term* %416, null
+  br i1 %cmp834, label %if.end839, label %if.then836
+
+if.then836:                                       ; preds = %if.end831
+  call void @term_Delete(%struct.term* %416) #1
+  br label %if.end839
+
+if.end839:                                        ; preds = %if.end831, %if.then836
+  %arrayidx840 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -7
+  %string841 = bitcast %union.yystype* %arrayidx840 to i8**
+  %417 = load i8** %string841, align 4
+  %cmp842 = icmp eq i8* %417, null
+  br i1 %cmp842, label %if.end847, label %if.then844
+
+if.then844:                                       ; preds = %if.end839
+  call void @string_StringFree(i8* %417) #1
+  br label %if.end847
+
+if.end847:                                        ; preds = %if.end839, %if.then844
+  %arrayidx848 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -4
+  %list849 = bitcast %union.yystype* %arrayidx848 to %struct.LIST_HELP**
+  %418 = load %struct.LIST_HELP** %list849, align 4
+  call void @list_DeleteWithElement(%struct.LIST_HELP* %418, void (i8*)* @string_StringFree) #1
+  br label %if.end850
+
+if.end850:                                        ; preds = %if.end847, %if.then803
+  %419 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %cmp.i.i2093 = icmp eq %struct.LIST_HELP* %419, null
+  br i1 %cmp.i.i2093, label %dfg_VarCheck.exit2098, label %if.then.i2096
+
+if.then.i2096:                                    ; preds = %if.end850
+  %420 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i2094 = call i32 @fflush(%struct._IO_FILE* %420) #1
+  %421 = load %struct._IO_FILE** @stderr, align 4
+  %call2.i2095 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %421, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1881) #1
+  call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([55 x i8]* @.str41, i32 0, i32 0)) #1
+  %422 = load %struct._IO_FILE** @stderr, align 4
+  %423 = call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %422) #1
+  call fastcc void @misc_DumpCore() #1
+  unreachable
+
+dfg_VarCheck.exit2098:                            ; preds = %if.end850
+  store i32 0, i32* @symbol_STANDARDVARCOUNTER, align 4
+  br label %sw.epilog1200
+
+sw.bb851:                                         ; preds = %yyreduce
+  %424 = load i32* @dfg_IGNORE, align 4
+  %tobool852 = icmp eq i32 %424, 0
+  br i1 %tobool852, label %lor.lhs.false853, label %cond.end864
+
+lor.lhs.false853:                                 ; preds = %sw.bb851
+  %string855 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %425 = load i8** %string855, align 4
+  %cmp856 = icmp eq i8* %425, null
+  br i1 %cmp856, label %cond.end864, label %cond.false860
+
+cond.false860:                                    ; preds = %lor.lhs.false853
+  %call.i.i2099 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i2100 = getelementptr inbounds i8* %call.i.i2099, i32 4
+  %426 = bitcast i8* %car.i.i2100 to i8**
+  store i8* %425, i8** %426, align 4
+  %cdr.i.i2101 = bitcast i8* %call.i.i2099 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2101, align 4
+  %phitmp = ptrtoint i8* %call.i.i2099 to i32
+  br label %cond.end864
+
+cond.end864:                                      ; preds = %lor.lhs.false853, %sw.bb851, %cond.false860
+  %cond865 = phi i32 [ %phitmp, %cond.false860 ], [ 0, %sw.bb851 ], [ 0, %lor.lhs.false853 ]
+  store i32 %cond865, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb867:                                         ; preds = %yyreduce
+  %427 = load i32* @dfg_IGNORE, align 4
+  %tobool868 = icmp eq i32 %427, 0
+  br i1 %tobool868, label %lor.lhs.false869, label %cond.true874
+
+lor.lhs.false869:                                 ; preds = %sw.bb867
+  %string871 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %428 = load i8** %string871, align 4
+  %cmp872 = icmp eq i8* %428, null
+  br i1 %cmp872, label %cond.true874, label %cond.false877
+
+cond.true874:                                     ; preds = %sw.bb867, %lor.lhs.false869
+  %arrayidx875 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list876 = bitcast %union.yystype* %arrayidx875 to %struct.LIST_HELP**
+  %429 = load %struct.LIST_HELP** %list876, align 4
+  br label %cond.end884
+
+cond.false877:                                    ; preds = %lor.lhs.false869
+  %arrayidx878 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list879 = bitcast %union.yystype* %arrayidx878 to %struct.LIST_HELP**
+  %430 = load %struct.LIST_HELP** %list879, align 4
+  %call.i.i2102 = call i8* @memory_Malloc(i32 8) #1
+  %431 = bitcast i8* %call.i.i2102 to %struct.LIST_HELP*
+  %car.i.i2103 = getelementptr inbounds i8* %call.i.i2102, i32 4
+  %432 = bitcast i8* %car.i.i2103 to i8**
+  store i8* %428, i8** %432, align 4
+  %cdr.i.i2104 = bitcast i8* %call.i.i2102 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2104, align 4
+  %cmp.i.i2105 = icmp eq %struct.LIST_HELP* %430, null
+  br i1 %cmp.i.i2105, label %cond.end884, label %if.end.i2107
+
+if.end.i2107:                                     ; preds = %cond.false877
+  %cmp.i18.i2106 = icmp eq i8* %call.i.i2102, null
+  br i1 %cmp.i18.i2106, label %cond.end884, label %for.cond.i2112
+
+for.cond.i2112:                                   ; preds = %if.end.i2107, %for.cond.i2112
+  %List1.addr.0.i2108 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i2110, %for.cond.i2112 ], [ %430, %if.end.i2107 ]
+  %List1.addr.0.idx15.i2109 = getelementptr %struct.LIST_HELP* %List1.addr.0.i2108, i32 0, i32 0
+  %List1.addr.0.idx15.val.i2110 = load %struct.LIST_HELP** %List1.addr.0.idx15.i2109, align 4
+  %cmp.i16.i2111 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i2110, null
+  br i1 %cmp.i16.i2111, label %for.end.i2113, label %for.cond.i2112
+
+for.end.i2113:                                    ; preds = %for.cond.i2112
+  store %struct.LIST_HELP* %431, %struct.LIST_HELP** %List1.addr.0.idx15.i2109, align 4
+  br label %cond.end884
+
+cond.end884:                                      ; preds = %for.end.i2113, %if.end.i2107, %cond.false877, %cond.true874
+  %cond885 = phi %struct.LIST_HELP* [ %429, %cond.true874 ], [ %430, %for.end.i2113 ], [ %431, %cond.false877 ], [ %430, %if.end.i2107 ]
+  %cond885.c = ptrtoint %struct.LIST_HELP* %cond885 to i32
+  store i32 %cond885.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb887:                                         ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb889:                                         ; preds = %yyreduce
+  %number891 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %433 = load i32* %number891, align 4
+  store i32 %433, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb893:                                         ; preds = %yyreduce
+  %434 = load i32* @dfg_IGNORE, align 4
+  %tobool894 = icmp eq i32 %434, 0
+  %arrayidx896 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string897 = bitcast %union.yystype* %arrayidx896 to i8**
+  br i1 %tobool894, label %land.lhs.true895, label %if.else915
+
+land.lhs.true895:                                 ; preds = %sw.bb893
+  %435 = load i8** %string897, align 4
+  %cmp898 = icmp eq i8* %435, null
+  br i1 %cmp898, label %if.else915, label %land.lhs.true900
+
+land.lhs.true900:                                 ; preds = %land.lhs.true895
+  %string902 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %436 = load i8** %string902, align 4
+  %cmp903 = icmp eq i8* %436, null
+  br i1 %cmp903, label %if.else915, label %land.lhs.true905
+
+land.lhs.true905:                                 ; preds = %land.lhs.true900
+  %call.i2116 = call i32 @strcmp(i8* %435, i8* getelementptr inbounds ([11 x i8]* @.str6, i32 0, i32 0)) #1
+  %cmp.i2117 = icmp eq i32 %call.i2116, 0
+  br i1 %cmp.i2117, label %if.then910, label %if.else915
+
+if.then910:                                       ; preds = %land.lhs.true905
+  %call914 = call i32 @string_StringToInt(i8* %436, i32 1, i32* %2) #1
+  br label %if.end917
+
+if.else915:                                       ; preds = %sw.bb893, %land.lhs.true905, %land.lhs.true900, %land.lhs.true895
+  store i32 0, i32* %2, align 4
+  br label %if.end917
+
+if.end917:                                        ; preds = %if.else915, %if.then910
+  %437 = load i8** %string897, align 4
+  %cmp920 = icmp eq i8* %437, null
+  br i1 %cmp920, label %if.end925, label %if.then922
+
+if.then922:                                       ; preds = %if.end917
+  call void @string_StringFree(i8* %437) #1
+  br label %if.end925
+
+if.end925:                                        ; preds = %if.end917, %if.then922
+  %string927 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %438 = load i8** %string927, align 4
+  %cmp928 = icmp eq i8* %438, null
+  br i1 %cmp928, label %sw.epilog1200, label %if.then930
+
+if.then930:                                       ; preds = %if.end925
+  call void @string_StringFree(i8* %438) #1
+  br label %sw.epilog1200
+
+sw.bb934:                                         ; preds = %yyreduce
+  %439 = load i32* @dfg_IGNORE, align 4
+  %tobool935 = icmp eq i32 %439, 0
+  %arrayidx937 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string938 = bitcast %union.yystype* %arrayidx937 to i8**
+  br i1 %tobool935, label %land.lhs.true936, label %if.else956
+
+land.lhs.true936:                                 ; preds = %sw.bb934
+  %440 = load i8** %string938, align 4
+  %cmp939 = icmp eq i8* %440, null
+  br i1 %cmp939, label %if.else956, label %land.lhs.true941
+
+land.lhs.true941:                                 ; preds = %land.lhs.true936
+  %string943 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %441 = load i8** %string943, align 4
+  %cmp944 = icmp eq i8* %441, null
+  br i1 %cmp944, label %if.else956, label %land.lhs.true946
+
+land.lhs.true946:                                 ; preds = %land.lhs.true941
+  %call.i2119 = call i32 @strcmp(i8* %440, i8* getelementptr inbounds ([11 x i8]* @.str6, i32 0, i32 0)) #1
+  %cmp.i2120 = icmp eq i32 %call.i2119, 0
+  br i1 %cmp.i2120, label %if.then951, label %if.else956
+
+if.then951:                                       ; preds = %land.lhs.true946
+  %call955 = call i32 @string_StringToInt(i8* %441, i32 1, i32* %2) #1
+  br label %if.end960
+
+if.else956:                                       ; preds = %sw.bb934, %land.lhs.true946, %land.lhs.true941, %land.lhs.true936
+  %number958 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -4, i32 0
+  %442 = load i32* %number958, align 4
+  store i32 %442, i32* %2, align 4
+  br label %if.end960
+
+if.end960:                                        ; preds = %if.else956, %if.then951
+  %443 = load i8** %string938, align 4
+  %cmp963 = icmp eq i8* %443, null
+  br i1 %cmp963, label %if.end968, label %if.then965
+
+if.then965:                                       ; preds = %if.end960
+  call void @string_StringFree(i8* %443) #1
+  br label %if.end968
+
+if.end968:                                        ; preds = %if.end960, %if.then965
+  %string970 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %444 = load i8** %string970, align 4
+  %cmp971 = icmp eq i8* %444, null
+  br i1 %cmp971, label %sw.epilog1200, label %if.then973
+
+if.then973:                                       ; preds = %if.end968
+  call void @string_StringFree(i8* %444) #1
+  br label %sw.epilog1200
+
+sw.bb977:                                         ; preds = %yyreduce
+  %445 = load i32* @dfg_IGNORE, align 4
+  %446 = inttoptr i32 %445 to i8*
+  %447 = load i32* @stack_POINTER, align 4
+  %inc.i2122 = add i32 %447, 1
+  store i32 %inc.i2122, i32* @stack_POINTER, align 4
+  %arrayidx.i2123 = getelementptr inbounds [10000 x i8*]* @stack_STACK, i32 0, i32 %447
+  store i8* %446, i8** %arrayidx.i2123, align 4
+  store i32 1, i32* @dfg_IGNORE, align 4
+  br label %sw.epilog1200
+
+sw.bb978:                                         ; preds = %yyreduce
+  %448 = load i32* @stack_POINTER, align 4
+  %dec.i2124 = add i32 %448, -1
+  store i32 %dec.i2124, i32* @stack_POINTER, align 4
+  %arrayidx.i2125 = getelementptr inbounds [10000 x i8*]* @stack_STACK, i32 0, i32 %dec.i2124
+  %449 = load i8** %arrayidx.i2125, align 4
+  %450 = ptrtoint i8* %449 to i32
+  store i32 %450, i32* @dfg_IGNORE, align 4
+  %bool981 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 0, i32 0
+  %451 = load i32* %bool981, align 4
+  %tobool982 = icmp eq i32 %451, 0
+  %arrayidx984 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %string985 = bitcast %union.yystype* %arrayidx984 to i8**
+  %452 = load i8** %string985, align 4
+  br i1 %tobool982, label %if.else993, label %if.then983
+
+if.then983:                                       ; preds = %sw.bb978
+  %cmp986 = icmp eq i8* %452, null
+  br i1 %cmp986, label %if.end991, label %if.then988
+
+if.then988:                                       ; preds = %if.then983
+  call void @string_StringFree(i8* %452) #1
+  br label %if.end991
+
+if.end991:                                        ; preds = %if.then983, %if.then988
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+if.else993:                                       ; preds = %sw.bb978
+  %.c1725 = ptrtoint i8* %452 to i32
+  store i32 %.c1725, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb998:                                         ; preds = %yyreduce
+  %string1000 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %453 = load i8** %string1000, align 4
+  %.c1724 = ptrtoint i8* %453 to i32
+  store i32 %.c1724, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1002:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1004:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1006:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1008:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1010:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1012:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1014:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1016:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1018:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1020:                                        ; preds = %yyreduce
+  store i32 1, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1022:                                        ; preds = %yyreduce
+  store i32 1, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1024:                                        ; preds = %yyreduce
+  %term1026 = bitcast %union.yystype* %yyvsp.2 to %struct.term**
+  %454 = load %struct.term** %term1026, align 4
+  %.c = ptrtoint %struct.term* %454 to i32
+  store i32 %.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1028:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1030:                                        ; preds = %yyreduce
+  %455 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %call.i.i.i2126 = call i8* @memory_Malloc(i32 8) #1
+  %456 = bitcast i8* %call.i.i.i2126 to %struct.LIST_HELP*
+  %car.i.i.i2127 = getelementptr inbounds i8* %call.i.i.i2126, i32 4
+  %457 = bitcast i8* %car.i.i.i2127 to i8**
+  store i8* null, i8** %457, align 4
+  %cdr.i.i.i2128 = bitcast i8* %call.i.i.i2126 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %455, %struct.LIST_HELP** %cdr.i.i.i2128, align 4
+  store %struct.LIST_HELP* %456, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 true, i1* @dfg_VARDECL, align 1
+  br label %sw.epilog1200
+
+sw.bb1031:                                        ; preds = %yyreduce
+  store i1 false, i1* @dfg_VARDECL, align 1
+  %458 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %.idx.i2129 = getelementptr %struct.LIST_HELP* %458, i32 0, i32 1
+  %.idx.val.i2130 = load i8** %.idx.i2129, align 4
+  %459 = bitcast i8* %.idx.val.i2130 to %struct.LIST_HELP*
+  call void @list_DeleteWithElement(%struct.LIST_HELP* %459, void (i8*)* bitcast (void (%struct.DFG_VARENTRY*)* @dfg_VarFree to void (i8*)*)) #1
+  %460 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %L.idx.i.i2131 = getelementptr %struct.LIST_HELP* %460, i32 0, i32 0
+  %L.idx.val.i.i2132 = load %struct.LIST_HELP** %L.idx.i.i2131, align 4
+  %461 = bitcast %struct.LIST_HELP* %460 to i8*
+  %462 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i2133 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %462, i32 0, i32 4
+  %463 = load i32* %total_size.i.i.i.i2133, align 4
+  %464 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i2134 = add i32 %464, %463
+  store i32 %add24.i.i.i.i2134, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i2135 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %462, i32 0, i32 0
+  %465 = load i8** %free.i.i.i.i2135, align 4
+  %.c.i.i.i2136 = bitcast i8* %465 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i2136, %struct.LIST_HELP** %L.idx.i.i2131, align 4
+  %466 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i2137 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %466, i32 0, i32 0
+  store i8* %461, i8** %free27.i.i.i.i2137, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i2132, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %cmp.i.i2138 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i2132, null
+  br i1 %cmp.i.i2138, label %dfg_VarCheck.exit2143, label %if.then.i2141
+
+if.then.i2141:                                    ; preds = %sw.bb1031
+  %467 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i2139 = call i32 @fflush(%struct._IO_FILE* %467) #1
+  %468 = load %struct._IO_FILE** @stderr, align 4
+  %call2.i2140 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %468, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1881) #1
+  call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([55 x i8]* @.str41, i32 0, i32 0)) #1
+  %469 = load %struct._IO_FILE** @stderr, align 4
+  %470 = call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %469) #1
+  call fastcc void @misc_DumpCore() #1
+  unreachable
+
+dfg_VarCheck.exit2143:                            ; preds = %sw.bb1031
+  store i32 0, i32* @symbol_STANDARDVARCOUNTER, align 4
+  br label %sw.epilog1200
+
+sw.bb1032:                                        ; preds = %yyreduce
+  %471 = load %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  %arrayidx1033 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1
+  %term1034 = bitcast %union.yystype* %arrayidx1033 to %struct.term**
+  %472 = load %struct.term** %term1034, align 4
+  %473 = bitcast %struct.term* %472 to i8*
+  %call.i.i2144 = call i8* @memory_Malloc(i32 8) #1
+  %474 = bitcast i8* %call.i.i2144 to %struct.LIST_HELP*
+  %car.i.i2145 = getelementptr inbounds i8* %call.i.i2144, i32 4
+  %475 = bitcast i8* %car.i.i2145 to i8**
+  store i8* %473, i8** %475, align 4
+  %cdr.i.i2146 = bitcast i8* %call.i.i2144 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2146, align 4
+  %cmp.i.i2147 = icmp eq %struct.LIST_HELP* %471, null
+  br i1 %cmp.i.i2147, label %list_Nconc.exit2157, label %if.end.i2149
+
+if.end.i2149:                                     ; preds = %sw.bb1032
+  %cmp.i18.i2148 = icmp eq i8* %call.i.i2144, null
+  br i1 %cmp.i18.i2148, label %list_Nconc.exit2157, label %for.cond.i2154
+
+for.cond.i2154:                                   ; preds = %if.end.i2149, %for.cond.i2154
+  %List1.addr.0.i2150 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i2152, %for.cond.i2154 ], [ %471, %if.end.i2149 ]
+  %List1.addr.0.idx15.i2151 = getelementptr %struct.LIST_HELP* %List1.addr.0.i2150, i32 0, i32 0
+  %List1.addr.0.idx15.val.i2152 = load %struct.LIST_HELP** %List1.addr.0.idx15.i2151, align 4
+  %cmp.i16.i2153 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i2152, null
+  br i1 %cmp.i16.i2153, label %for.end.i2155, label %for.cond.i2154
+
+for.end.i2155:                                    ; preds = %for.cond.i2154
+  store %struct.LIST_HELP* %474, %struct.LIST_HELP** %List1.addr.0.idx15.i2151, align 4
+  br label %list_Nconc.exit2157
+
+list_Nconc.exit2157:                              ; preds = %sw.bb1032, %if.end.i2149, %for.end.i2155
+  %retval.0.i2156 = phi %struct.LIST_HELP* [ %471, %for.end.i2155 ], [ %474, %sw.bb1032 ], [ %471, %if.end.i2149 ]
+  store %struct.LIST_HELP* %retval.0.i2156, %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  br label %sw.epilog1200
+
+sw.bb1037:                                        ; preds = %yyreduce
+  %string1039 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %476 = load i8** %string1039, align 4
+  %call.i2158 = call i32 @strcmp(i8* %476, i8* getelementptr inbounds ([6 x i8]* @.str5, i32 0, i32 0)) #1
+  %cmp.i2159 = icmp eq i32 %call.i2158, 0
+  br i1 %cmp.i2159, label %if.then1042, label %if.end1043
+
+if.then1042:                                      ; preds = %sw.bb1037
+  store i32 0, i32* @dfg_IGNORETEXT, align 4
+  %.pre2536 = load i8** %string1039, align 4
+  br label %if.end1043
+
+if.end1043:                                       ; preds = %sw.bb1037, %if.then1042
+  %477 = phi i8* [ %476, %sw.bb1037 ], [ %.pre2536, %if.then1042 ]
+  call void @string_StringFree(i8* %477) #1
+  br label %sw.epilog1200
+
+sw.bb1046:                                        ; preds = %yyreduce
+  store i32 1, i32* @dfg_IGNORETEXT, align 4
+  br label %sw.epilog1200
+
+sw.bb1047:                                        ; preds = %yyreduce
+  %string1049 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %478 = load i8** %string1049, align 4
+  call void @string_StringFree(i8* %478) #1
+  br label %sw.epilog1200
+
+for.body:                                         ; preds = %for.body.lr.ph, %if.end1075
+  %479 = phi %struct.LIST_HELP* [ %25, %for.body.lr.ph ], [ %L.idx.val.i, %if.end1075 ]
+  %.idx1760 = getelementptr %struct.LIST_HELP* %479, i32 0, i32 1
+  %.idx1760.val = load i8** %.idx1760, align 4
+  %call1059 = call i32 @symbol_Lookup(i8* %.idx1760.val) #1
+  %cmp1060 = icmp eq i32 %call1059, 0
+  br i1 %cmp1060, label %if.then1062, label %if.end1067
+
+if.then1062:                                      ; preds = %for.body
+  %480 = load %struct._IO_FILE** @stdout, align 4
+  %call1063 = call i32 @fflush(%struct._IO_FILE* %480) #1
+  %481 = load %struct.LIST_HELP** %list1053, align 4
+  %.idx1759 = getelementptr %struct.LIST_HELP* %481, i32 0, i32 1
+  %.idx1759.val = load i8** %.idx1759, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([22 x i8]* @.str7, i32 0, i32 0), i8* %.idx1759.val) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([19 x i8]* @.str8, i32 0, i32 0)) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end1067:                                       ; preds = %for.body
+  %tobool.i2163 = icmp sgt i32 %call1059, -1
+  br i1 %tobool.i2163, label %if.then1070, label %land.rhs.i2167
+
+land.rhs.i2167:                                   ; preds = %if.end1067
+  %sub.i.i2164 = sub nsw i32 0, %call1059
+  %and.i.i2165 = and i32 %3, %sub.i.i2164
+  %cmp.i2166 = icmp eq i32 %and.i.i2165, 2
+  br i1 %cmp.i2166, label %if.end1075, label %if.then1070
+
+if.then1070:                                      ; preds = %if.end1067, %land.rhs.i2167
+  %482 = load %struct._IO_FILE** @stdout, align 4
+  %call1071 = call i32 @fflush(%struct._IO_FILE* %482) #1
+  %483 = load %struct.LIST_HELP** %list1053, align 4
+  %.idx1758 = getelementptr %struct.LIST_HELP* %483, i32 0, i32 1
+  %.idx1758.val = load i8** %.idx1758, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([30 x i8]* @.str9, i32 0, i32 0), i8* %.idx1758.val) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([19 x i8]* @.str8, i32 0, i32 0)) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end1075:                                       ; preds = %land.rhs.i2167
+  %484 = load %struct.LIST_HELP** %list1053, align 4
+  %.idx = getelementptr %struct.LIST_HELP* %484, i32 0, i32 1
+  %.idx.val = load i8** %.idx, align 4
+  call void @string_StringFree(i8* %.idx.val) #1
+  %shr.i.i = ashr i32 %sub.i.i2164, %4
+  %485 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i = getelementptr inbounds %struct.signature** %485, i32 %shr.i.i
+  %486 = load %struct.signature** %arrayidx.i.i, align 4
+  %props.i = getelementptr inbounds %struct.signature* %486, i32 0, i32 4
+  %487 = load i32* %props.i, align 4
+  %or.i = or i32 %487, 64
+  store i32 %or.i, i32* %props.i, align 4
+  %488 = load %struct.LIST_HELP** %list1053, align 4
+  %L.idx.i = getelementptr %struct.LIST_HELP* %488, i32 0, i32 0
+  %L.idx.val.i = load %struct.LIST_HELP** %L.idx.i, align 4
+  %489 = bitcast %struct.LIST_HELP* %488 to i8*
+  %490 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %490, i32 0, i32 4
+  %491 = load i32* %total_size.i.i.i, align 4
+  %492 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %492, %491
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %490, i32 0, i32 0
+  %493 = load i8** %free.i.i.i, align 4
+  %.c.i.i = bitcast i8* %493 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i, %struct.LIST_HELP** %L.idx.i, align 4
+  %494 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %494, i32 0, i32 0
+  store i8* %489, i8** %free27.i.i.i, align 4
+  %call1081.c = ptrtoint %struct.LIST_HELP* %L.idx.val.i to i32
+  store i32 %call1081.c, i32* %26, align 4
+  %cmp.i2161 = icmp eq %struct.LIST_HELP* %L.idx.val.i, null
+  br i1 %cmp.i2161, label %sw.epilog1200, label %for.body
+
+sw.bb1084:                                        ; preds = %yyreduce
+  %arrayidx1085 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -3
+  %string1086 = bitcast %union.yystype* %arrayidx1085 to i8**
+  %495 = load i8** %string1086, align 4
+  %call1087 = call i32 @flag_Id(i8* %495) #1
+  %cmp1088 = icmp eq i32 %call1087, -1
+  br i1 %cmp1088, label %if.then1090, label %if.end1094
+
+if.then1090:                                      ; preds = %sw.bb1084
+  %496 = load %struct._IO_FILE** @stdout, align 4
+  %call1091 = call i32 @fflush(%struct._IO_FILE* %496) #1
+  %497 = load i8** %string1086, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([24 x i8]* @.str10, i32 0, i32 0), i8* %497) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end1094:                                       ; preds = %sw.bb1084
+  %498 = load i8** %string1086, align 4
+  call void @string_StringFree(i8* %498) #1
+  %499 = load i32** @dfg_FLAGS, align 4
+  %number1098 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %500 = load i32* %number1098, align 4
+  %call.i.i2171 = call i32 @flag_Minimum(i32 %call1087) #1
+  %cmp.i.i2172 = icmp slt i32 %call.i.i2171, %500
+  br i1 %cmp.i.i2172, label %if.else.i.i, label %if.then.i.i2173
+
+if.then.i.i2173:                                  ; preds = %if.end1094
+  %501 = load %struct._IO_FILE** @stdout, align 4
+  %call1.i.i = call i32 @fflush(%struct._IO_FILE* %501) #1
+  %call2.i.i = call i8* @flag_Name(i32 %call1087) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([50 x i8]* @.str231, i32 0, i32 0), i32 %500, i8* %call2.i.i) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+if.else.i.i:                                      ; preds = %if.end1094
+  %call3.i.i = call i32 @flag_Maximum(i32 %call1087) #1
+  %cmp4.i.i = icmp sgt i32 %call3.i.i, %500
+  br i1 %cmp4.i.i, label %flag_SetFlagValue.exit, label %if.then5.i.i
+
+if.then5.i.i:                                     ; preds = %if.else.i.i
+  %502 = load %struct._IO_FILE** @stdout, align 4
+  %call6.i.i = call i32 @fflush(%struct._IO_FILE* %502) #1
+  %call7.i.i = call i8* @flag_Name(i32 %call1087) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([50 x i8]* @.str232, i32 0, i32 0), i32 %500, i8* %call7.i.i) #1
+  call fastcc void @misc_Error() #1
+  unreachable
+
+flag_SetFlagValue.exit:                           ; preds = %if.else.i.i
+  %arrayidx.i2174 = getelementptr inbounds i32* %499, i32 %call1087
+  store i32 %500, i32* %arrayidx.i2174, align 4
+  br label %sw.epilog1200
+
+sw.bb1099:                                        ; preds = %yyreduce
+  %string1102 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %503 = load i8** %string1102, align 4
+  %call1103 = call i32 @symbol_Lookup(i8* %503) #1
+  %cmp1104 = icmp eq i32 %call1103, 0
+  br i1 %cmp1104, label %if.then1106, label %if.end1110
+
+if.then1106:                                      ; preds = %sw.bb1099
+  %504 = load %struct._IO_FILE** @stdout, align 4
+  %call1107 = call i32 @fflush(%struct._IO_FILE* %504) #1
+  %505 = load i8** %string1102, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([23 x i8]* @.str11, i32 0, i32 0), i8* %505) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([22 x i8]* @.str12, i32 0, i32 0)) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end1110:                                       ; preds = %sw.bb1099
+  %506 = load i8** %string1102, align 4
+  call void @string_StringFree(i8* %506) #1
+  %507 = load i32** @dfg_PRECEDENCE, align 4
+  %call.i2175 = call i32 @symbol_GetIncreasedOrderingCounter() #1
+  %sub.i.i.i2176 = sub nsw i32 0, %call1103
+  %shr.i.i.i = ashr i32 %sub.i.i.i2176, %4
+  %arrayidx.i.i2177 = getelementptr inbounds i32* %507, i32 %shr.i.i.i
+  store i32 %call.i2175, i32* %arrayidx.i.i2177, align 4
+  %508 = inttoptr i32 %call1103 to i8*
+  %509 = load %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  %call.i2178 = call i8* @memory_Malloc(i32 8) #1
+  %510 = bitcast i8* %call.i2178 to %struct.LIST_HELP*
+  %car.i2179 = getelementptr inbounds i8* %call.i2178, i32 4
+  %511 = bitcast i8* %car.i2179 to i8**
+  store i8* %508, i8** %511, align 4
+  %cdr.i2180 = bitcast i8* %call.i2178 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %509, %struct.LIST_HELP** %cdr.i2180, align 4
+  store %struct.LIST_HELP* %510, %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  br label %sw.epilog1200
+
+sw.bb1114:                                        ; preds = %yyreduce
+  %arrayidx1116 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -4
+  %string1117 = bitcast %union.yystype* %arrayidx1116 to i8**
+  %512 = load i8** %string1117, align 4
+  %call1118 = call i32 @symbol_Lookup(i8* %512) #1
+  %cmp1119 = icmp eq i32 %call1118, 0
+  br i1 %cmp1119, label %if.then1121, label %if.end1125
+
+if.then1121:                                      ; preds = %sw.bb1114
+  %513 = load %struct._IO_FILE** @stdout, align 4
+  %call1122 = call i32 @fflush(%struct._IO_FILE* %513) #1
+  %514 = load i8** %string1117, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([22 x i8]* @.str7, i32 0, i32 0), i8* %514) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([21 x i8]* @.str13, i32 0, i32 0)) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end1125:                                       ; preds = %sw.bb1114
+  %515 = load i8** %string1117, align 4
+  call void @string_StringFree(i8* %515) #1
+  %516 = load i32** @dfg_PRECEDENCE, align 4
+  %call.i2181 = call i32 @symbol_GetIncreasedOrderingCounter() #1
+  %sub.i.i.i2182 = sub nsw i32 0, %call1118
+  %shr.i.i.i2183 = ashr i32 %sub.i.i.i2182, %4
+  %arrayidx.i.i2184 = getelementptr inbounds i32* %516, i32 %shr.i.i.i2183
+  store i32 %call.i2181, i32* %arrayidx.i.i2184, align 4
+  %517 = inttoptr i32 %call1118 to i8*
+  %518 = load %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  %call.i2185 = call i8* @memory_Malloc(i32 8) #1
+  %519 = bitcast i8* %call.i2185 to %struct.LIST_HELP*
+  %car.i2186 = getelementptr inbounds i8* %call.i2185, i32 4
+  %520 = bitcast i8* %car.i2186 to i8**
+  store i8* %517, i8** %520, align 4
+  %cdr.i2187 = bitcast i8* %call.i2185 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %518, %struct.LIST_HELP** %cdr.i2187, align 4
+  store %struct.LIST_HELP* %519, %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  %number1130 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2, i32 0
+  %521 = load i32* %number1130, align 4
+  %522 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i2190 = getelementptr inbounds %struct.signature** %522, i32 %shr.i.i.i2183
+  %523 = load %struct.signature** %arrayidx.i.i2190, align 4
+  %weight.i = getelementptr inbounds %struct.signature* %523, i32 0, i32 2
+  store i32 %521, i32* %weight.i, align 4
+  %property = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -1, i32 0
+  %524 = load i32* %property, align 4
+  %cmp1132 = icmp eq i32 %524, 0
+  br i1 %cmp1132, label %sw.epilog1200, label %if.then1134
+
+if.then1134:                                      ; preds = %if.end1125
+  %525 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i2193 = getelementptr inbounds %struct.signature** %525, i32 %shr.i.i.i2183
+  %526 = load %struct.signature** %arrayidx.i.i2193, align 4
+  %props.i2194 = getelementptr inbounds %struct.signature* %526, i32 0, i32 4
+  %527 = load i32* %props.i2194, align 4
+  %or.i2195 = or i32 %527, %524
+  store i32 %or.i2195, i32* %props.i2194, align 4
+  br label %sw.epilog1200
+
+sw.bb1138:                                        ; preds = %yyreduce
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1140:                                        ; preds = %yyreduce
+  %string1142 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %528 = load i8** %string1142, align 4
+  %arrayidx1143 = getelementptr inbounds i8* %528, i32 1
+  %529 = load i8* %arrayidx1143, align 1
+  %cmp1145 = icmp eq i8 %529, 0
+  br i1 %cmp1145, label %lor.lhs.false1147, label %if.then1168
+
+lor.lhs.false1147:                                ; preds = %sw.bb1140
+  %530 = load i8* %528, align 1
+  switch i8 %530, label %if.then1168 [
+    i8 108, label %if.end1172
+    i8 109, label %if.end1172
+    i8 114, label %if.end1172
+  ]
+
+if.then1168:                                      ; preds = %lor.lhs.false1147, %sw.bb1140
+  %531 = load %struct._IO_FILE** @stdout, align 4
+  %call1169 = call i32 @fflush(%struct._IO_FILE* %531) #1
+  %532 = load i8** %string1142, align 4
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([27 x i8]* @.str14, i32 0, i32 0), i8* %532) #1
+  call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([21 x i8]* @.str15, i32 0, i32 0)) #1
+  call fastcc void @misc_Error()
+  unreachable
+
+if.end1172:                                       ; preds = %lor.lhs.false1147, %lor.lhs.false1147, %lor.lhs.false1147
+  %conv1176 = sext i8 %530 to i32
+  switch i32 %conv1176, label %sw.default [
+    i32 109, label %sw.bb1177
+    i32 114, label %sw.bb1179
+  ]
+
+sw.bb1177:                                        ; preds = %if.end1172
+  store i32 16, i32* %2, align 4
+  br label %sw.epilog
+
+sw.bb1179:                                        ; preds = %if.end1172
+  store i32 8, i32* %2, align 4
+  br label %sw.epilog
+
+sw.default:                                       ; preds = %if.end1172
+  store i32 0, i32* %2, align 4
+  br label %sw.epilog
+
+sw.epilog:                                        ; preds = %sw.default, %sw.bb1179, %sw.bb1177
+  %533 = load i8** %string1142, align 4
+  call void @string_StringFree(i8* %533) #1
+  br label %sw.epilog1200
+
+sw.bb1184:                                        ; preds = %yyreduce
+  %arrayidx1185 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list1186 = bitcast %union.yystype* %arrayidx1185 to %struct.LIST_HELP**
+  %534 = load %struct.LIST_HELP** %list1186, align 4
+  call void @list_DeleteWithElement(%struct.LIST_HELP* %534, void (i8*)* @string_StringFree) #1
+  br label %sw.epilog1200
+
+sw.bb1187:                                        ; preds = %yyreduce
+  %string1189 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %535 = load i8** %string1189, align 4
+  %call.i.i2196 = call i8* @memory_Malloc(i32 8) #1
+  %car.i.i2197 = getelementptr inbounds i8* %call.i.i2196, i32 4
+  %536 = bitcast i8* %car.i.i2197 to i8**
+  store i8* %535, i8** %536, align 4
+  %cdr.i.i2198 = bitcast i8* %call.i.i2196 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2198, align 4
+  %call1190.c = ptrtoint i8* %call.i.i2196 to i32
+  store i32 %call1190.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.bb1192:                                        ; preds = %yyreduce
+  %arrayidx1193 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 -2
+  %list1194 = bitcast %union.yystype* %arrayidx1193 to %struct.LIST_HELP**
+  %537 = load %struct.LIST_HELP** %list1194, align 4
+  %string1196 = bitcast %union.yystype* %yyvsp.2 to i8**
+  %538 = load i8** %string1196, align 4
+  %call.i.i2199 = call i8* @memory_Malloc(i32 8) #1
+  %539 = bitcast i8* %call.i.i2199 to %struct.LIST_HELP*
+  %car.i.i2200 = getelementptr inbounds i8* %call.i.i2199, i32 4
+  %540 = bitcast i8* %car.i.i2200 to i8**
+  store i8* %538, i8** %540, align 4
+  %cdr.i.i2201 = bitcast i8* %call.i.i2199 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i2201, align 4
+  %cmp.i.i2202 = icmp eq %struct.LIST_HELP* %537, null
+  br i1 %cmp.i.i2202, label %list_Nconc.exit2212, label %if.end.i2204
+
+if.end.i2204:                                     ; preds = %sw.bb1192
+  %cmp.i18.i2203 = icmp eq i8* %call.i.i2199, null
+  br i1 %cmp.i18.i2203, label %list_Nconc.exit2212, label %for.cond.i2209
+
+for.cond.i2209:                                   ; preds = %if.end.i2204, %for.cond.i2209
+  %List1.addr.0.i2205 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i2207, %for.cond.i2209 ], [ %537, %if.end.i2204 ]
+  %List1.addr.0.idx15.i2206 = getelementptr %struct.LIST_HELP* %List1.addr.0.i2205, i32 0, i32 0
+  %List1.addr.0.idx15.val.i2207 = load %struct.LIST_HELP** %List1.addr.0.idx15.i2206, align 4
+  %cmp.i16.i2208 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i2207, null
+  br i1 %cmp.i16.i2208, label %for.end.i2210, label %for.cond.i2209
+
+for.end.i2210:                                    ; preds = %for.cond.i2209
+  store %struct.LIST_HELP* %539, %struct.LIST_HELP** %List1.addr.0.idx15.i2206, align 4
+  br label %list_Nconc.exit2212
+
+list_Nconc.exit2212:                              ; preds = %sw.bb1192, %if.end.i2204, %for.end.i2210
+  %retval.0.i2211 = phi %struct.LIST_HELP* [ %537, %for.end.i2210 ], [ %539, %sw.bb1192 ], [ %537, %if.end.i2204 ]
+  %call1198.c = ptrtoint %struct.LIST_HELP* %retval.0.i2211 to i32
+  store i32 %call1198.c, i32* %2, align 4
+  br label %sw.epilog1200
+
+sw.epilog1200:                                    ; preds = %for.cond.preheader, %if.end1075, %sw.bb770, %sw.bb479, %sw.bb494, %if.end925, %if.end968, %if.end1125, %if.then1134, %if.end991, %if.else993, %if.then973, %if.then930, %if.then775, %list_Nconc.exit1922, %list_Nconc.exit1933, %if.end512, %if.end489, %if.then410, %if.else414, %list_Nconc.exit1824, %list_Nconc.exit1835, %yyreduce, %list_Nconc.exit2212, %sw.bb1187, %sw.bb1184, %sw.epilog, %sw.bb1138, %if.end1110, %flag_SetFlagValue.exit, %sw.bb1047, %sw.bb1046, %if.end1043, %list_Nconc.exit2157, %dfg_VarCheck.exit2143, %sw.bb1030, %sw.bb1028, %sw.bb1024, %sw.bb1022, %sw.bb1020, %sw.bb1018, %sw.bb1016, %sw.bb1014, %sw.bb1012, %sw.bb1010, %sw.bb1008, %sw.bb1006, %sw.bb1004, %sw.bb1002, %sw.bb998, %sw.bb977, %sw.bb889, %sw.bb887, %cond.end884, %cond.end864, %dfg_VarCheck.exit2098, %if.end784, %cond.end767, %cond.end752, %cond.end741, %cond.end729, %cond.end718, %cond.end706, %cond.end691, %cond.end681, %cond.end671, %lis!
 t_Nconc.e
 xit1995, %sw.bb650, %cond.end647, %sw.bb632, %cond.end629, %cond.end614, %cond.end603, %cond.end592, %sw.bb581, %sw.bb580, %sw.bb576, %sw.bb572, %sw.bb570, %dfg_VarCheck.exit1946, %sw.bb538, %sw.bb536, %sw.bb535, %cond.end476, %cond.end461, %cond.end450, %cond.end442, %cond.end434, %cond.end426, %sw.bb405, %sw.bb402, %sw.bb399, %sw.bb396, %sw.bb393, %sw.bb390, %sw.bb387, %cond.end384, %cond.end369, %sw.bb357, %sw.bb355, %cond.end352, %sw.bb340, %sw.bb339, %cond.end336, %cond.end324, %cond.end309, %sw.bb296, %sw.bb292, %sw.bb290, %dfg_VarCheck.exit1847, %sw.bb259, %sw.bb257, %sw.bb255, %sw.bb236, %sw.bb233, %sw.bb226, %sw.bb221, %sw.bb219, %sw.bb217, %dfg_SymbolGenerated.exit, %list_Nconc.exit1792, %sw.bb199, %sw.bb198, %sw.bb195, %list_Nconc.exit, %dfg_SubSort.exit, %sw.bb181, %sw.bb179, %sw.bb174, %sw.bb171, %sw.bb166, %sw.bb163, %sw.bb160, %sw.bb157, %sw.bb152, %sw.bb149, %sw.bb145, %sw.bb142, %sw.bb140, %sw.bb138, %sw.bb136, %sw.bb133, %sw.bb130, %sw.bb127, %sw.bb124, %s!
 w.bb122, 
 %sw.bb119, %sw.bb116
+  %idx.neg = sub i32 0, %conv112
+  %add.ptr1203 = getelementptr inbounds i16* %yyssp.2, i32 %idx.neg
+  %incdec.ptr1204 = getelementptr inbounds %union.yystype* %yyvsp.2, i32 %sub113
+  %541 = load i32* %2, align 4
+  %542 = getelementptr inbounds %union.yystype* %incdec.ptr1204, i32 0, i32 0
+  store i32 %541, i32* %542, align 4
+  %arrayidx1205 = getelementptr inbounds [197 x i8]* @yyr1, i32 0, i32 %conv106
+  %543 = load i8* %arrayidx1205, align 1
+  %conv1206 = zext i8 %543 to i32
+  %sub1207 = add nsw i32 %conv1206, -71
+  %arrayidx1208 = getelementptr inbounds [100 x i16]* @yypgoto, i32 0, i32 %sub1207
+  %544 = load i16* %arrayidx1208, align 2
+  %conv1209 = sext i16 %544 to i32
+  %545 = load i16* %add.ptr1203, align 2
+  %conv1210 = sext i16 %545 to i32
+  %add1211 = add nsw i32 %conv1210, %conv1209
+  %546 = icmp ult i32 %add1211, 507
+  br i1 %546, label %land.lhs.true1217, label %if.else1226
+
+land.lhs.true1217:                                ; preds = %sw.epilog1200
+  %arrayidx1218 = getelementptr inbounds [507 x i16]* @yycheck, i32 0, i32 %add1211
+  %547 = load i16* %arrayidx1218, align 2
+  %cmp1221 = icmp eq i16 %547, %545
+  br i1 %cmp1221, label %if.then1223, label %if.else1226
+
+if.then1223:                                      ; preds = %land.lhs.true1217
+  %arrayidx1224 = getelementptr inbounds [507 x i16]* @yytable, i32 0, i32 %add1211
+  %548 = load i16* %arrayidx1224, align 2
+  %conv1225 = zext i16 %548 to i32
+  br label %yynewstate
+
+if.else1226:                                      ; preds = %land.lhs.true1217, %sw.epilog1200
+  %arrayidx1228 = getelementptr inbounds [100 x i16]* @yydefgoto, i32 0, i32 %sub1207
+  %549 = load i16* %arrayidx1228, align 2
+  %conv1229 = sext i16 %549 to i32
+  br label %yynewstate
+
+if.then1232:                                      ; preds = %yydefault, %if.end79
+  %550 = load i32* @dfg_nerrs, align 4
+  %inc = add nsw i32 %550, 1
+  store i32 %inc, i32* @dfg_nerrs, align 4
+  %cmp1235 = icmp sgt i16 %11, -356
+  br i1 %cmp1235, label %if.then1240, label %if.else1329
+
+if.then1240:                                      ; preds = %if.then1232
+  %551 = load i32* @dfg_char, align 4
+  %cmp1242 = icmp ult i32 %551, 319
+  br i1 %cmp1242, label %cond.true1244, label %cond.end1248
+
+cond.true1244:                                    ; preds = %if.then1240
+  %arrayidx1245 = getelementptr inbounds [319 x i8]* @yytranslate, i32 0, i32 %551
+  %552 = load i8* %arrayidx1245, align 1
+  %conv1246 = zext i8 %552 to i32
+  br label %cond.end1248
+
+cond.end1248:                                     ; preds = %if.then1240, %cond.true1244
+  %cond1249 = phi i32 [ %conv1246, %cond.true1244 ], [ 2, %if.then1240 ]
+  %cmp1250 = icmp slt i16 %11, 0
+  %sub1253 = sub nsw i32 0, %conv51
+  %sub1253. = select i1 %cmp1250, i32 %sub1253, i32 0
+  %cmp12582218 = icmp slt i32 %sub1253., 172
+  br i1 %cmp12582218, label %for.body1260, label %for.end1278
+
+for.body1260:                                     ; preds = %cond.end1248, %for.inc1276
+  %yycount.02221 = phi i32 [ %yycount.1, %for.inc1276 ], [ 0, %cond.end1248 ]
+  %yyx.02220 = phi i32 [ %inc1277, %for.inc1276 ], [ %sub1253., %cond.end1248 ]
+  %yysize1241.02219 = phi i32 [ %yysize1241.1, %for.inc1276 ], [ 0, %cond.end1248 ]
+  %add1261 = add nsw i32 %yyx.02220, %conv51
+  %arrayidx1262 = getelementptr inbounds [507 x i16]* @yycheck, i32 0, i32 %add1261
+  %553 = load i16* %arrayidx1262, align 2
+  %conv1263 = sext i16 %553 to i32
+  %cmp1264 = icmp eq i32 %conv1263, %yyx.02220
+  %cmp1267 = icmp ne i32 %yyx.02220, 1
+  %or.cond1400 = and i1 %cmp1264, %cmp1267
+  br i1 %or.cond1400, label %if.then1269, label %for.inc1276
+
+if.then1269:                                      ; preds = %for.body1260
+  %arrayidx1270 = getelementptr inbounds [172 x i8*]* @yytname, i32 0, i32 %yyx.02220
+  %554 = load i8** %arrayidx1270, align 4
+  %call1271 = call i32 @strlen(i8* %554) #6
+  %add1272 = add i32 %yysize1241.02219, 15
+  %add1273 = add i32 %add1272, %call1271
+  %inc1274 = add nsw i32 %yycount.02221, 1
+  br label %for.inc1276
+
+for.inc1276:                                      ; preds = %for.body1260, %if.then1269
+  %yysize1241.1 = phi i32 [ %add1273, %if.then1269 ], [ %yysize1241.02219, %for.body1260 ]
+  %yycount.1 = phi i32 [ %inc1274, %if.then1269 ], [ %yycount.02221, %for.body1260 ]
+  %inc1277 = add nsw i32 %yyx.02220, 1
+  %exitcond2382 = icmp eq i32 %inc1277, 172
+  br i1 %exitcond2382, label %for.end1278, label %for.body1260
+
+for.end1278:                                      ; preds = %for.inc1276, %cond.end1248
+  %yycount.0.lcssa = phi i32 [ 0, %cond.end1248 ], [ %yycount.1, %for.inc1276 ]
+  %yysize1241.0.lcssa = phi i32 [ 0, %cond.end1248 ], [ %yysize1241.1, %for.inc1276 ]
+  %add1279 = add i32 %yysize1241.0.lcssa, 25
+  %arrayidx1280 = getelementptr inbounds [172 x i8*]* @yytname, i32 0, i32 %cond1249
+  %555 = load i8** %arrayidx1280, align 4
+  %call1281 = call i32 @strlen(i8* %555) #6
+  %add1282 = add i32 %add1279, %call1281
+  %556 = alloca i8, i32 %add1282, align 4
+  %557 = getelementptr i8* %556, i32 24
+  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %556, i8* getelementptr inbounds ([25 x i8]* @.str16, i32 0, i32 0), i32 25, i32 1, i1 false)
+  %call1288 = call i8* @stpcpy(i8* %557, i8* %555) #1
+  %cmp1289.not = icmp sgt i32 %yycount.0.lcssa, 4
+  %cmp12582218.not = xor i1 %cmp12582218, true
+  %brmerge = or i1 %cmp1289.not, %cmp12582218.not
+  br i1 %brmerge, label %if.end1323, label %for.body1302
+
+for.body1302:                                     ; preds = %for.end1278, %for.inc1320
+  %yyp.02217 = phi i8* [ %yyp.1, %for.inc1320 ], [ %call1288, %for.end1278 ]
+  %yycount.22216 = phi i32 [ %yycount.3, %for.inc1320 ], [ 0, %for.end1278 ]
+  %yyx.12215 = phi i32 [ %inc1321, %for.inc1320 ], [ %sub1253., %for.end1278 ]
+  %add1303 = add nsw i32 %yyx.12215, %conv51
+  %arrayidx1304 = getelementptr inbounds [507 x i16]* @yycheck, i32 0, i32 %add1303
+  %558 = load i16* %arrayidx1304, align 2
+  %conv1305 = sext i16 %558 to i32
+  %cmp1306 = icmp eq i32 %conv1305, %yyx.12215
+  %cmp1309 = icmp ne i32 %yyx.12215, 1
+  %or.cond1401 = and i1 %cmp1306, %cmp1309
+  br i1 %or.cond1401, label %if.then1311, label %for.inc1320
+
+if.then1311:                                      ; preds = %for.body1302
+  %lnot1313 = icmp eq i32 %yycount.22216, 0
+  %cond1314 = select i1 %lnot1313, i8* getelementptr inbounds ([13 x i8]* @.str17, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str18, i32 0, i32 0)
+  %call1315 = call i8* @stpcpy(i8* %yyp.02217, i8* %cond1314) #1
+  %arrayidx1316 = getelementptr inbounds [172 x i8*]* @yytname, i32 0, i32 %yyx.12215
+  %559 = load i8** %arrayidx1316, align 4
+  %call1317 = call i8* @stpcpy(i8* %call1315, i8* %559) #1
+  %inc1318 = add nsw i32 %yycount.22216, 1
+  br label %for.inc1320
+
+for.inc1320:                                      ; preds = %for.body1302, %if.then1311
+  %yycount.3 = phi i32 [ %inc1318, %if.then1311 ], [ %yycount.22216, %for.body1302 ]
+  %yyp.1 = phi i8* [ %call1317, %if.then1311 ], [ %yyp.02217, %for.body1302 ]
+  %inc1321 = add nsw i32 %yyx.12215, 1
+  %exitcond = icmp eq i32 %inc1321, 172
+  br i1 %exitcond, label %if.end1323, label %for.body1302
+
+if.end1323:                                       ; preds = %for.end1278, %for.inc1320
+  call void @dfg_error(i8* %556)
+  unreachable
+
+if.else1329:                                      ; preds = %if.then1232
+  call void @dfg_error(i8* getelementptr inbounds ([12 x i8]* @.str20, i32 0, i32 0))
+  unreachable
+
+yyoverflowlab:                                    ; preds = %if.then
+  call void @dfg_error(i8* getelementptr inbounds ([22 x i8]* @.str21, i32 0, i32 0))
+  unreachable
+
+yyreturn:                                         ; preds = %if.end, %if.end92, %sw.bb
+  %yyresult.0 = phi i32 [ 0, %sw.bb ], [ 1, %if.end ], [ 0, %if.end92 ]
+  call void @llvm.lifetime.end(i64 800, i8* %1) #1
+  call void @llvm.lifetime.end(i64 400, i8* %0) #1
+  ret i32 %yyresult.0
+}
+
+; Function Attrs: nounwind
+declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+
+; Function Attrs: nounwind
+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) #1
+
+declare i32 @dfg_lex() #2
+
+declare void @string_StringFree(i8*) #2
+
+; cmp16: 	.ent	dfg_parse
+; cmp16:	.end	dfg_parse 
+
+; Function Attrs: nounwind
+define internal fastcc void @dfg_SymbolDecl(i32 %SymbolType, i8* %Name, i32 %Arity) #0 {
+entry:
+  switch i32 %Arity, label %sw.default [
+    i32 -2, label %sw.epilog
+    i32 -1, label %sw.bb1
+  ]
+
+sw.bb1:                                           ; preds = %entry
+  %0 = load %struct._IO_FILE** @stdout, align 4
+  %call = tail call i32 @fflush(%struct._IO_FILE* %0) #1
+  %1 = load i32* @dfg_LINENUMBER, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([58 x i8]* @.str52, i32 0, i32 0), i32 %1) #1
+  tail call fastcc void @misc_Error()
+  unreachable
+
+sw.default:                                       ; preds = %entry
+  br label %sw.epilog
+
+sw.epilog:                                        ; preds = %entry, %sw.default
+  %arity.0 = phi i32 [ %Arity, %sw.default ], [ 0, %entry ]
+  %call2 = tail call i32 @strlen(i8* %Name) #6
+  %cmp = icmp ugt i32 %call2, 63
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %sw.epilog
+  %arrayidx = getelementptr inbounds i8* %Name, i32 63
+  store i8 0, i8* %arrayidx, align 1
+  br label %if.end
+
+if.end:                                           ; preds = %if.then, %sw.epilog
+  %call3 = tail call i32 @symbol_Lookup(i8* %Name) #1
+  %cmp4 = icmp eq i32 %call3, 0
+  br i1 %cmp4, label %if.else, label %if.then5
+
+if.then5:                                         ; preds = %if.end
+  switch i32 %SymbolType, label %if.end27 [
+    i32 284, label %land.lhs.true
+    i32 298, label %land.lhs.true9
+    i32 300, label %land.lhs.true16
+    i32 294, label %land.lhs.true16
+  ]
+
+land.lhs.true:                                    ; preds = %if.then5
+  %tobool.i = icmp sgt i32 %call3, -1
+  br i1 %tobool.i, label %if.then19, label %land.rhs.i
+
+land.rhs.i:                                       ; preds = %land.lhs.true
+  %sub.i6.i = sub nsw i32 0, %call3
+  %2 = load i32* @symbol_TYPEMASK, align 4
+  %and.i7.i = and i32 %2, %sub.i6.i
+  %3 = icmp ult i32 %and.i7.i, 2
+  br i1 %3, label %if.end27, label %if.then19
+
+land.lhs.true9:                                   ; preds = %if.then5
+  %tobool.i77 = icmp sgt i32 %call3, -1
+  br i1 %tobool.i77, label %if.then19, label %land.rhs.i78
+
+land.rhs.i78:                                     ; preds = %land.lhs.true9
+  %sub.i.i = sub nsw i32 0, %call3
+  %4 = load i32* @symbol_TYPEMASK, align 4
+  %and.i.i = and i32 %4, %sub.i.i
+  %cmp.i = icmp eq i32 %and.i.i, 2
+  br i1 %cmp.i, label %lor.lhs.false12, label %if.then19
+
+lor.lhs.false12:                                  ; preds = %land.rhs.i78
+  switch i32 %SymbolType, label %if.end27 [
+    i32 300, label %land.lhs.true16
+    i32 294, label %land.lhs.true16
+  ]
+
+land.lhs.true16:                                  ; preds = %if.then5, %if.then5, %lor.lhs.false12, %lor.lhs.false12
+  %tobool.i80 = icmp sgt i32 %call3, -1
+  br i1 %tobool.i80, label %if.then19, label %land.rhs.i84
+
+land.rhs.i84:                                     ; preds = %land.lhs.true16
+  %sub.i.i81 = sub nsw i32 0, %call3
+  %5 = load i32* @symbol_TYPEMASK, align 4
+  %and.i.i82 = and i32 %5, %sub.i.i81
+  %cmp.i83 = icmp eq i32 %and.i.i82, 3
+  br i1 %cmp.i83, label %if.end27, label %if.then19
+
+if.then19:                                        ; preds = %land.lhs.true16, %land.lhs.true9, %land.lhs.true, %land.rhs.i, %land.rhs.i78, %land.rhs.i84
+  %6 = load %struct._IO_FILE** @stdout, align 4
+  %call20 = tail call i32 @fflush(%struct._IO_FILE* %6) #1
+  %7 = load i32* @dfg_LINENUMBER, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([46 x i8]* @.str53, i32 0, i32 0), i32 %7, i8* %Name) #1
+  %sub.i = sub nsw i32 0, %call3
+  %8 = load i32* @symbol_TYPEMASK, align 4
+  %and.i = and i32 %8, %sub.i
+  switch i32 %and.i, label %sw.default25 [
+    i32 0, label %sw.bb22
+    i32 1, label %sw.bb22
+    i32 2, label %sw.bb23
+    i32 3, label %sw.bb24
+  ]
+
+sw.bb22:                                          ; preds = %if.then19, %if.then19
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([11 x i8]* @.str54, i32 0, i32 0)) #1
+  br label %sw.epilog26
+
+sw.bb23:                                          ; preds = %if.then19
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([12 x i8]* @.str55, i32 0, i32 0)) #1
+  br label %sw.epilog26
+
+sw.bb24:                                          ; preds = %if.then19
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([10 x i8]* @.str56, i32 0, i32 0)) #1
+  br label %sw.epilog26
+
+sw.default25:                                     ; preds = %if.then19
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([15 x i8]* @.str57, i32 0, i32 0)) #1
+  br label %sw.epilog26
+
+sw.epilog26:                                      ; preds = %sw.default25, %sw.bb24, %sw.bb23, %sw.bb22
+  tail call fastcc void @misc_Error()
+  unreachable
+
+if.end27:                                         ; preds = %land.rhs.i, %land.rhs.i84, %if.then5, %lor.lhs.false12
+  %cmp28 = icmp eq i32 %Arity, -2
+  br i1 %cmp28, label %if.end46, label %land.lhs.true29
+
+land.lhs.true29:                                  ; preds = %if.end27
+  %sub.i.i88 = sub nsw i32 0, %call3
+  %9 = load i32* @symbol_TYPESTATBITS, align 4
+  %shr.i.i89 = ashr i32 %sub.i.i88, %9
+  %10 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i90 = getelementptr inbounds %struct.signature** %10, i32 %shr.i.i89
+  %11 = load %struct.signature** %arrayidx.i.i90, align 4
+  %arity.i91 = getelementptr inbounds %struct.signature* %11, i32 0, i32 3
+  %12 = load i32* %arity.i91, align 4
+  %cmp31 = icmp eq i32 %12, %Arity
+  br i1 %cmp31, label %if.end46, label %if.then32
+
+if.then32:                                        ; preds = %land.lhs.true29
+  %13 = load %struct._IO_FILE** @stdout, align 4
+  %call33 = tail call i32 @fflush(%struct._IO_FILE* %13) #1
+  %14 = load i32* @dfg_LINENUMBER, align 4
+  %15 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i = getelementptr inbounds %struct.signature** %15, i32 %shr.i.i89
+  %16 = load %struct.signature** %arrayidx.i.i, align 4
+  %arity.i87 = getelementptr inbounds %struct.signature* %16, i32 0, i32 3
+  %17 = load i32* %arity.i87, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([57 x i8]* @.str58, i32 0, i32 0), i32 %14, i8* %Name, i32 %17) #1
+  tail call fastcc void @misc_Error()
+  unreachable
+
+if.else:                                          ; preds = %if.end
+  switch i32 %SymbolType, label %sw.default40 [
+    i32 284, label %sw.bb36
+    i32 298, label %sw.bb38
+  ]
+
+sw.bb36:                                          ; preds = %if.else
+  %18 = load i32** @dfg_PRECEDENCE, align 4
+  %call37 = tail call i32 @symbol_CreateFunction(i8* %Name, i32 %arity.0, i32 0, i32* %18) #1
+  br label %sw.epilog42
+
+sw.bb38:                                          ; preds = %if.else
+  %19 = load i32** @dfg_PRECEDENCE, align 4
+  %call39 = tail call i32 @symbol_CreatePredicate(i8* %Name, i32 %arity.0, i32 0, i32* %19) #1
+  br label %sw.epilog42
+
+sw.default40:                                     ; preds = %if.else
+  %20 = load i32** @dfg_PRECEDENCE, align 4
+  %call41 = tail call i32 @symbol_CreateJunctor(i8* %Name, i32 %arity.0, i32 0, i32* %20) #1
+  br label %sw.epilog42
+
+sw.epilog42:                                      ; preds = %sw.default40, %sw.bb38, %sw.bb36
+  %symbol.0 = phi i32 [ %call41, %sw.default40 ], [ %call39, %sw.bb38 ], [ %call37, %sw.bb36 ]
+  %cmp43 = icmp eq i32 %Arity, -2
+  br i1 %cmp43, label %if.then44, label %if.end46
+
+if.then44:                                        ; preds = %sw.epilog42
+  %call.i.i = tail call i8* @memory_Malloc(i32 12) #1
+  %symbol.i = bitcast i8* %call.i.i to i32*
+  store i32 %symbol.0, i32* %symbol.i, align 4
+  %valid.i = getelementptr inbounds i8* %call.i.i, i32 4
+  %21 = bitcast i8* %valid.i to i32*
+  store i32 0, i32* %21, align 4
+  %arity.i = getelementptr inbounds i8* %call.i.i, i32 8
+  %22 = bitcast i8* %arity.i to i32*
+  store i32 0, i32* %22, align 4
+  %23 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %call.i5.i = tail call i8* @memory_Malloc(i32 8) #1
+  %24 = bitcast i8* %call.i5.i to %struct.LIST_HELP*
+  %car.i.i = getelementptr inbounds i8* %call.i5.i, i32 4
+  %25 = bitcast i8* %car.i.i to i8**
+  store i8* %call.i.i, i8** %25, align 4
+  %cdr.i.i = bitcast i8* %call.i5.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %23, %struct.LIST_HELP** %cdr.i.i, align 4
+  store %struct.LIST_HELP* %24, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  br label %if.end46
+
+if.end46:                                         ; preds = %land.lhs.true29, %if.end27, %sw.epilog42, %if.then44
+  br i1 %cmp, label %if.then48, label %if.end50
+
+if.then48:                                        ; preds = %if.end46
+  %arrayidx49 = getelementptr inbounds i8* %Name, i32 63
+  store i8 32, i8* %arrayidx49, align 1
+  br label %if.end50
+
+if.end50:                                         ; preds = %if.then48, %if.end46
+  tail call void @string_StringFree(i8* %Name) #1
+  ret void
+}
+
+; Function Attrs: nounwind
+define %struct.term* @dfg_CreateQuantifier(i32 %Symbol, %struct.LIST_HELP* %VarTermList, %struct.term* %Term) #0 {
+entry:
+  %cmp.i240 = icmp eq %struct.LIST_HELP* %VarTermList, null
+  br i1 %cmp.i240, label %for.end, label %for.body
+
+for.body:                                         ; preds = %entry, %for.inc
+  %VarTermList.addr.0243 = phi %struct.LIST_HELP* [ %L.idx.val.i, %for.inc ], [ %VarTermList, %entry ]
+  %sortlist.0242 = phi %struct.LIST_HELP* [ %sortlist.1, %for.inc ], [ null, %entry ]
+  %varlist.0241 = phi %struct.LIST_HELP* [ %varlist.1, %for.inc ], [ null, %entry ]
+  %VarTermList.addr.0.idx = getelementptr %struct.LIST_HELP* %VarTermList.addr.0243, i32 0, i32 1
+  %VarTermList.addr.0.idx.val = load i8** %VarTermList.addr.0.idx, align 4
+  %0 = bitcast i8* %VarTermList.addr.0.idx.val to %struct.term*
+  %.idx135 = bitcast i8* %VarTermList.addr.0.idx.val to i32*
+  %.idx135.val = load i32* %.idx135, align 4
+  %cmp.i.i157 = icmp sgt i32 %.idx135.val, 0
+  br i1 %cmp.i.i157, label %if.then, label %if.else
+
+if.then:                                          ; preds = %for.body
+  %1 = inttoptr i32 %.idx135.val to i8*
+  %call.i.i165 = tail call i8* @memory_Malloc(i32 8) #1
+  %2 = bitcast i8* %call.i.i165 to %struct.LIST_HELP*
+  %car.i.i166 = getelementptr inbounds i8* %call.i.i165, i32 4
+  %3 = bitcast i8* %car.i.i166 to i8**
+  store i8* %1, i8** %3, align 4
+  %cdr.i.i167 = bitcast i8* %call.i.i165 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i167, align 4
+  %cmp.i.i168 = icmp eq %struct.LIST_HELP* %varlist.0241, null
+  br i1 %cmp.i.i168, label %list_Nconc.exit178, label %if.end.i170
+
+if.end.i170:                                      ; preds = %if.then
+  %cmp.i18.i169 = icmp eq i8* %call.i.i165, null
+  br i1 %cmp.i18.i169, label %list_Nconc.exit178, label %for.cond.i175
+
+for.cond.i175:                                    ; preds = %if.end.i170, %for.cond.i175
+  %List1.addr.0.i171 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i173, %for.cond.i175 ], [ %varlist.0241, %if.end.i170 ]
+  %List1.addr.0.idx15.i172 = getelementptr %struct.LIST_HELP* %List1.addr.0.i171, i32 0, i32 0
+  %List1.addr.0.idx15.val.i173 = load %struct.LIST_HELP** %List1.addr.0.idx15.i172, align 4
+  %cmp.i16.i174 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i173, null
+  br i1 %cmp.i16.i174, label %for.end.i176, label %for.cond.i175
+
+for.end.i176:                                     ; preds = %for.cond.i175
+  store %struct.LIST_HELP* %2, %struct.LIST_HELP** %List1.addr.0.idx15.i172, align 4
+  br label %list_Nconc.exit178
+
+list_Nconc.exit178:                               ; preds = %if.then, %if.end.i170, %for.end.i176
+  %retval.0.i177 = phi %struct.LIST_HELP* [ %varlist.0241, %for.end.i176 ], [ %2, %if.then ], [ %varlist.0241, %if.end.i170 ]
+  tail call void @term_Delete(%struct.term* %0) #1
+  br label %for.inc
+
+if.else:                                          ; preds = %for.body
+  %.idx136 = getelementptr i8* %VarTermList.addr.0.idx.val, i32 8
+  %4 = bitcast i8* %.idx136 to %struct.LIST_HELP**
+  %.idx136.val = load %struct.LIST_HELP** %4, align 4
+  %.idx136.val.idx = getelementptr %struct.LIST_HELP* %.idx136.val, i32 0, i32 1
+  %.idx136.val.idx.val = load i8** %.idx136.val.idx, align 4
+  %call8.idx = bitcast i8* %.idx136.val.idx.val to i32*
+  %call8.idx.val = load i32* %call8.idx, align 4
+  %5 = inttoptr i32 %call8.idx.val to i8*
+  %call.i.i233 = tail call i8* @memory_Malloc(i32 8) #1
+  %6 = bitcast i8* %call.i.i233 to %struct.LIST_HELP*
+  %car.i.i234 = getelementptr inbounds i8* %call.i.i233, i32 4
+  %7 = bitcast i8* %car.i.i234 to i8**
+  store i8* %5, i8** %7, align 4
+  %cdr.i.i235 = bitcast i8* %call.i.i233 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i235, align 4
+  %cmp.i.i222 = icmp eq %struct.LIST_HELP* %varlist.0241, null
+  br i1 %cmp.i.i222, label %list_Nconc.exit232, label %if.end.i224
+
+if.end.i224:                                      ; preds = %if.else
+  %cmp.i18.i223 = icmp eq i8* %call.i.i233, null
+  br i1 %cmp.i18.i223, label %list_Nconc.exit232, label %for.cond.i229
+
+for.cond.i229:                                    ; preds = %if.end.i224, %for.cond.i229
+  %List1.addr.0.i225 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i227, %for.cond.i229 ], [ %varlist.0241, %if.end.i224 ]
+  %List1.addr.0.idx15.i226 = getelementptr %struct.LIST_HELP* %List1.addr.0.i225, i32 0, i32 0
+  %List1.addr.0.idx15.val.i227 = load %struct.LIST_HELP** %List1.addr.0.idx15.i226, align 4
+  %cmp.i16.i228 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i227, null
+  br i1 %cmp.i16.i228, label %for.end.i230, label %for.cond.i229
+
+for.end.i230:                                     ; preds = %for.cond.i229
+  store %struct.LIST_HELP* %6, %struct.LIST_HELP** %List1.addr.0.idx15.i226, align 4
+  br label %list_Nconc.exit232
+
+list_Nconc.exit232:                               ; preds = %if.else, %if.end.i224, %for.end.i230
+  %retval.0.i231 = phi %struct.LIST_HELP* [ %varlist.0241, %for.end.i230 ], [ %6, %if.else ], [ %varlist.0241, %if.end.i224 ]
+  %call.i.i219 = tail call i8* @memory_Malloc(i32 8) #1
+  %8 = bitcast i8* %call.i.i219 to %struct.LIST_HELP*
+  %car.i.i220 = getelementptr inbounds i8* %call.i.i219, i32 4
+  %9 = bitcast i8* %car.i.i220 to i8**
+  store i8* %VarTermList.addr.0.idx.val, i8** %9, align 4
+  %cdr.i.i221 = bitcast i8* %call.i.i219 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i221, align 4
+  %cmp.i.i208 = icmp eq %struct.LIST_HELP* %sortlist.0242, null
+  br i1 %cmp.i.i208, label %for.inc, label %if.end.i210
+
+if.end.i210:                                      ; preds = %list_Nconc.exit232
+  %cmp.i18.i209 = icmp eq i8* %call.i.i219, null
+  br i1 %cmp.i18.i209, label %for.inc, label %for.cond.i215
+
+for.cond.i215:                                    ; preds = %if.end.i210, %for.cond.i215
+  %List1.addr.0.i211 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i213, %for.cond.i215 ], [ %sortlist.0242, %if.end.i210 ]
+  %List1.addr.0.idx15.i212 = getelementptr %struct.LIST_HELP* %List1.addr.0.i211, i32 0, i32 0
+  %List1.addr.0.idx15.val.i213 = load %struct.LIST_HELP** %List1.addr.0.idx15.i212, align 4
+  %cmp.i16.i214 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i213, null
+  br i1 %cmp.i16.i214, label %for.end.i216, label %for.cond.i215
+
+for.end.i216:                                     ; preds = %for.cond.i215
+  store %struct.LIST_HELP* %8, %struct.LIST_HELP** %List1.addr.0.idx15.i212, align 4
+  br label %for.inc
+
+for.inc:                                          ; preds = %for.end.i216, %if.end.i210, %list_Nconc.exit232, %list_Nconc.exit178
+  %varlist.1 = phi %struct.LIST_HELP* [ %retval.0.i177, %list_Nconc.exit178 ], [ %retval.0.i231, %list_Nconc.exit232 ], [ %retval.0.i231, %if.end.i210 ], [ %retval.0.i231, %for.end.i216 ]
+  %sortlist.1 = phi %struct.LIST_HELP* [ %sortlist.0242, %list_Nconc.exit178 ], [ %8, %list_Nconc.exit232 ], [ %sortlist.0242, %if.end.i210 ], [ %sortlist.0242, %for.end.i216 ]
+  %L.idx.i = getelementptr %struct.LIST_HELP* %VarTermList.addr.0243, i32 0, i32 0
+  %L.idx.val.i = load %struct.LIST_HELP** %L.idx.i, align 4
+  %10 = bitcast %struct.LIST_HELP* %VarTermList.addr.0243 to i8*
+  %11 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %11, i32 0, i32 4
+  %12 = load i32* %total_size.i.i.i, align 4
+  %13 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %13, %12
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %11, i32 0, i32 0
+  %14 = load i8** %free.i.i.i, align 4
+  %.c.i.i = bitcast i8* %14 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i, %struct.LIST_HELP** %L.idx.i, align 4
+  %15 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %15, i32 0, i32 0
+  store i8* %10, i8** %free27.i.i.i, align 4
+  %cmp.i = icmp eq %struct.LIST_HELP* %L.idx.val.i, null
+  br i1 %cmp.i, label %for.end, label %for.body
+
+for.end:                                          ; preds = %for.inc, %entry
+  %sortlist.0.lcssa = phi %struct.LIST_HELP* [ null, %entry ], [ %sortlist.1, %for.inc ]
+  %varlist.0.lcssa = phi %struct.LIST_HELP* [ null, %entry ], [ %varlist.1, %for.inc ]
+  %call15 = tail call %struct.LIST_HELP* @list_PointerDeleteDuplicates(%struct.LIST_HELP* %varlist.0.lcssa) #1
+  %cmp.i206238 = icmp eq %struct.LIST_HELP* %call15, null
+  br i1 %cmp.i206238, label %for.end26, label %for.body20
+
+for.body20:                                       ; preds = %for.end, %for.body20
+  %scan.0239 = phi %struct.LIST_HELP* [ %scan.0.idx133.val, %for.body20 ], [ %call15, %for.end ]
+  %scan.0.idx = getelementptr %struct.LIST_HELP* %scan.0239, i32 0, i32 1
+  %scan.0.idx.val = load i8** %scan.0.idx, align 4
+  %16 = ptrtoint i8* %scan.0.idx.val to i32
+  %call23 = tail call %struct.term* @term_Create(i32 %16, %struct.LIST_HELP* null) #1
+  %17 = bitcast %struct.term* %call23 to i8*
+  store i8* %17, i8** %scan.0.idx, align 4
+  %scan.0.idx133 = getelementptr %struct.LIST_HELP* %scan.0239, i32 0, i32 0
+  %scan.0.idx133.val = load %struct.LIST_HELP** %scan.0.idx133, align 4
+  %cmp.i206 = icmp eq %struct.LIST_HELP* %scan.0.idx133.val, null
+  br i1 %cmp.i206, label %for.end26, label %for.body20
+
+for.end26:                                        ; preds = %for.body20, %for.end
+  %cmp.i203 = icmp eq %struct.LIST_HELP* %sortlist.0.lcssa, null
+  br i1 %cmp.i203, label %if.end90, label %if.then29
+
+if.then29:                                        ; preds = %for.end26
+  %18 = load i32* @fol_ALL, align 4
+  %cmp.i201 = icmp eq i32 %18, %Symbol
+  br i1 %cmp.i201, label %if.then33, label %if.else70
+
+if.then33:                                        ; preds = %if.then29
+  %19 = load i32* @fol_OR, align 4
+  %Term.idx134 = getelementptr %struct.term* %Term, i32 0, i32 0
+  %Term.idx134.val = load i32* %Term.idx134, align 4
+  %cmp.i199 = icmp eq i32 %19, %Term.idx134.val
+  br i1 %cmp.i199, label %for.body43, label %if.else53
+
+for.body43:                                       ; preds = %if.then33, %for.body43
+  %scan.1237 = phi %struct.LIST_HELP* [ %scan.1.idx132.val, %for.body43 ], [ %sortlist.0.lcssa, %if.then33 ]
+  %20 = load i32* @fol_NOT, align 4
+  %scan.1.idx = getelementptr %struct.LIST_HELP* %scan.1237, i32 0, i32 1
+  %scan.1.idx.val = load i8** %scan.1.idx, align 4
+  %call.i.i194 = tail call i8* @memory_Malloc(i32 8) #1
+  %21 = bitcast i8* %call.i.i194 to %struct.LIST_HELP*
+  %car.i.i195 = getelementptr inbounds i8* %call.i.i194, i32 4
+  %22 = bitcast i8* %car.i.i195 to i8**
+  store i8* %scan.1.idx.val, i8** %22, align 4
+  %cdr.i.i196 = bitcast i8* %call.i.i194 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i196, align 4
+  %call47 = tail call %struct.term* @term_Create(i32 %20, %struct.LIST_HELP* %21) #1
+  %23 = bitcast %struct.term* %call47 to i8*
+  store i8* %23, i8** %scan.1.idx, align 4
+  %scan.1.idx132 = getelementptr %struct.LIST_HELP* %scan.1237, i32 0, i32 0
+  %scan.1.idx132.val = load %struct.LIST_HELP** %scan.1.idx132, align 4
+  %cmp.i197 = icmp eq %struct.LIST_HELP* %scan.1.idx132.val, null
+  br i1 %cmp.i197, label %if.end.i184, label %for.body43
+
+if.end.i184:                                      ; preds = %for.body43
+  %Term.idx138 = getelementptr %struct.term* %Term, i32 0, i32 2
+  %Term.idx138.val = load %struct.LIST_HELP** %Term.idx138, align 4
+  %cmp.i18.i183 = icmp eq %struct.LIST_HELP* %Term.idx138.val, null
+  br i1 %cmp.i18.i183, label %list_Nconc.exit192, label %for.cond.i189
+
+for.cond.i189:                                    ; preds = %if.end.i184, %for.cond.i189
+  %List1.addr.0.i185 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i187, %for.cond.i189 ], [ %sortlist.0.lcssa, %if.end.i184 ]
+  %List1.addr.0.idx15.i186 = getelementptr %struct.LIST_HELP* %List1.addr.0.i185, i32 0, i32 0
+  %List1.addr.0.idx15.val.i187 = load %struct.LIST_HELP** %List1.addr.0.idx15.i186, align 4
+  %cmp.i16.i188 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i187, null
+  br i1 %cmp.i16.i188, label %for.end.i190, label %for.cond.i189
+
+for.end.i190:                                     ; preds = %for.cond.i189
+  store %struct.LIST_HELP* %Term.idx138.val, %struct.LIST_HELP** %List1.addr.0.idx15.i186, align 4
+  br label %list_Nconc.exit192
+
+list_Nconc.exit192:                               ; preds = %if.end.i184, %for.end.i190
+  store %struct.LIST_HELP* %sortlist.0.lcssa, %struct.LIST_HELP** %Term.idx138, align 4
+  br label %if.end90
+
+if.else53:                                        ; preds = %if.then33
+  %sortlist.0.idx = getelementptr %struct.LIST_HELP* %sortlist.0.lcssa, i32 0, i32 0
+  %sortlist.0.idx.val = load %struct.LIST_HELP** %sortlist.0.idx, align 4
+  %cmp.i179 = icmp eq %struct.LIST_HELP* %sortlist.0.idx.val, null
+  br i1 %cmp.i179, label %if.then57, label %if.else61
+
+if.then57:                                        ; preds = %if.else53
+  %24 = bitcast %struct.term* %Term to i8*
+  %call.i.i162 = tail call i8* @memory_Malloc(i32 8) #1
+  %25 = bitcast i8* %call.i.i162 to %struct.LIST_HELP*
+  %car.i.i163 = getelementptr inbounds i8* %call.i.i162, i32 4
+  %26 = bitcast i8* %car.i.i163 to i8**
+  store i8* %24, i8** %26, align 4
+  %cdr.i.i164 = bitcast i8* %call.i.i162 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i164, align 4
+  store %struct.LIST_HELP* %25, %struct.LIST_HELP** %sortlist.0.idx, align 4
+  %27 = load i32* @fol_IMPLIES, align 4
+  %call60 = tail call %struct.term* @term_Create(i32 %27, %struct.LIST_HELP* %sortlist.0.lcssa) #1
+  br label %if.end90
+
+if.else61:                                        ; preds = %if.else53
+  %28 = load i32* @fol_AND, align 4
+  %call63 = tail call %struct.term* @term_Create(i32 %28, %struct.LIST_HELP* %sortlist.0.lcssa) #1
+  %29 = load i32* @fol_IMPLIES, align 4
+  %30 = bitcast %struct.term* %call63 to i8*
+  %31 = bitcast %struct.term* %Term to i8*
+  %call.i.i158 = tail call i8* @memory_Malloc(i32 8) #1
+  %32 = bitcast i8* %call.i.i158 to %struct.LIST_HELP*
+  %car.i.i159 = getelementptr inbounds i8* %call.i.i158, i32 4
+  %33 = bitcast i8* %car.i.i159 to i8**
+  store i8* %31, i8** %33, align 4
+  %cdr.i.i160 = bitcast i8* %call.i.i158 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i160, align 4
+  %call.i = tail call i8* @memory_Malloc(i32 8) #1
+  %34 = bitcast i8* %call.i to %struct.LIST_HELP*
+  %car.i = getelementptr inbounds i8* %call.i, i32 4
+  %35 = bitcast i8* %car.i to i8**
+  store i8* %30, i8** %35, align 4
+  %cdr.i = bitcast i8* %call.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %32, %struct.LIST_HELP** %cdr.i, align 4
+  %call67 = tail call %struct.term* @term_Create(i32 %29, %struct.LIST_HELP* %34) #1
+  br label %if.end90
+
+if.else70:                                        ; preds = %if.then29
+  %36 = load i32* @fol_EXIST, align 4
+  %cmp.i155 = icmp eq i32 %36, %Symbol
+  br i1 %cmp.i155, label %if.then74, label %if.end90
+
+if.then74:                                        ; preds = %if.else70
+  %37 = load i32* @fol_AND, align 4
+  %Term.idx = getelementptr %struct.term* %Term, i32 0, i32 0
+  %Term.idx.val = load i32* %Term.idx, align 4
+  %cmp.i153 = icmp eq i32 %37, %Term.idx.val
+  br i1 %cmp.i153, label %if.end.i144, label %if.end.i
+
+if.end.i144:                                      ; preds = %if.then74
+  %Term.idx137 = getelementptr %struct.term* %Term, i32 0, i32 2
+  %Term.idx137.val = load %struct.LIST_HELP** %Term.idx137, align 4
+  %cmp.i18.i143 = icmp eq %struct.LIST_HELP* %Term.idx137.val, null
+  br i1 %cmp.i18.i143, label %list_Nconc.exit152, label %for.cond.i149
+
+for.cond.i149:                                    ; preds = %if.end.i144, %for.cond.i149
+  %List1.addr.0.i145 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i147, %for.cond.i149 ], [ %sortlist.0.lcssa, %if.end.i144 ]
+  %List1.addr.0.idx15.i146 = getelementptr %struct.LIST_HELP* %List1.addr.0.i145, i32 0, i32 0
+  %List1.addr.0.idx15.val.i147 = load %struct.LIST_HELP** %List1.addr.0.idx15.i146, align 4
+  %cmp.i16.i148 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i147, null
+  br i1 %cmp.i16.i148, label %for.end.i150, label %for.cond.i149
+
+for.end.i150:                                     ; preds = %for.cond.i149
+  store %struct.LIST_HELP* %Term.idx137.val, %struct.LIST_HELP** %List1.addr.0.idx15.i146, align 4
+  br label %list_Nconc.exit152
+
+list_Nconc.exit152:                               ; preds = %if.end.i144, %for.end.i150
+  store %struct.LIST_HELP* %sortlist.0.lcssa, %struct.LIST_HELP** %Term.idx137, align 4
+  br label %if.end90
+
+if.end.i:                                         ; preds = %if.then74
+  %38 = bitcast %struct.term* %Term to i8*
+  %call.i.i139 = tail call i8* @memory_Malloc(i32 8) #1
+  %39 = bitcast i8* %call.i.i139 to %struct.LIST_HELP*
+  %car.i.i140 = getelementptr inbounds i8* %call.i.i139, i32 4
+  %40 = bitcast i8* %car.i.i140 to i8**
+  store i8* %38, i8** %40, align 4
+  %cdr.i.i141 = bitcast i8* %call.i.i139 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i141, align 4
+  %cmp.i18.i = icmp eq i8* %call.i.i139, null
+  br i1 %cmp.i18.i, label %list_Nconc.exit, label %for.cond.i
+
+for.cond.i:                                       ; preds = %if.end.i, %for.cond.i
+  %List1.addr.0.i = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i, %for.cond.i ], [ %sortlist.0.lcssa, %if.end.i ]
+  %List1.addr.0.idx15.i = getelementptr %struct.LIST_HELP* %List1.addr.0.i, i32 0, i32 0
+  %List1.addr.0.idx15.val.i = load %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  %cmp.i16.i = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i, null
+  br i1 %cmp.i16.i, label %for.end.i, label %for.cond.i
+
+for.end.i:                                        ; preds = %for.cond.i
+  store %struct.LIST_HELP* %39, %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  br label %list_Nconc.exit
+
+list_Nconc.exit:                                  ; preds = %if.end.i, %for.end.i
+  %41 = load i32* @fol_AND, align 4
+  %call86 = tail call %struct.term* @term_Create(i32 %41, %struct.LIST_HELP* %sortlist.0.lcssa) #1
+  br label %if.end90
+
+if.end90:                                         ; preds = %if.else70, %for.end26, %if.then57, %if.else61, %list_Nconc.exit192, %list_Nconc.exit152, %list_Nconc.exit
+  %Term.addr.0 = phi %struct.term* [ %Term, %for.end26 ], [ %Term, %list_Nconc.exit192 ], [ %call60, %if.then57 ], [ %call67, %if.else61 ], [ %Term, %list_Nconc.exit152 ], [ %call86, %list_Nconc.exit ], [ %Term, %if.else70 ]
+  %42 = bitcast %struct.term* %Term.addr.0 to i8*
+  %call.i.i = tail call i8* @memory_Malloc(i32 8) #1
+  %43 = bitcast i8* %call.i.i to %struct.LIST_HELP*
+  %car.i.i = getelementptr inbounds i8* %call.i.i, i32 4
+  %44 = bitcast i8* %car.i.i to i8**
+  store i8* %42, i8** %44, align 4
+  %cdr.i.i = bitcast i8* %call.i.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i, align 4
+  %call92 = tail call %struct.term* @fol_CreateQuantifier(i32 %Symbol, %struct.LIST_HELP* %call15, %struct.LIST_HELP* %43) #1
+  ret %struct.term* %call92
+}
+
+; Function Attrs: nounwind
+define internal fastcc i32 @dfg_Symbol(i8* %Name, i32 %Arity) #0 {
+entry:
+  %call = tail call i32 @strlen(i8* %Name) #6
+  %cmp = icmp ugt i32 %call, 63
+  br i1 %cmp, label %if.then4, label %if.end
+
+if.end:                                           ; preds = %entry
+  %call2 = tail call i32 @symbol_Lookup(i8* %Name) #1
+  br label %if.end6
+
+if.then4:                                         ; preds = %entry
+  %arrayidx = getelementptr inbounds i8* %Name, i32 63
+  %0 = load i8* %arrayidx, align 1
+  store i8 0, i8* %arrayidx, align 1
+  %call234 = tail call i32 @symbol_Lookup(i8* %Name) #1
+  store i8 %0, i8* %arrayidx, align 1
+  br label %if.end6
+
+if.end6:                                          ; preds = %if.end, %if.then4
+  %call236 = phi i32 [ %call234, %if.then4 ], [ %call2, %if.end ]
+  %cmp7 = icmp eq i32 %call236, 0
+  br i1 %cmp7, label %if.else, label %if.then8
+
+if.then8:                                         ; preds = %if.end6
+  tail call void @string_StringFree(i8* %Name) #1
+  %scan.047.i = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i48.i = icmp eq %struct.LIST_HELP* %scan.047.i, null
+  br i1 %cmp.i48.i, label %while.end.i, label %while.body.i
+
+while.cond.i:                                     ; preds = %while.body.i
+  %scan.0.idx35.i = getelementptr %struct.LIST_HELP* %scan.049.i, i32 0, i32 0
+  %scan.0.i = load %struct.LIST_HELP** %scan.0.idx35.i, align 4
+  %cmp.i.i = icmp eq %struct.LIST_HELP* %scan.0.i, null
+  br i1 %cmp.i.i, label %while.end.i, label %while.body.i
+
+while.body.i:                                     ; preds = %if.then8, %while.cond.i
+  %scan.049.i = phi %struct.LIST_HELP* [ %scan.0.i, %while.cond.i ], [ %scan.047.i, %if.then8 ]
+  %scan.0.idx.i = getelementptr %struct.LIST_HELP* %scan.049.i, i32 0, i32 1
+  %scan.0.idx.val.i = load i8** %scan.0.idx.i, align 4
+  %symbol.i = bitcast i8* %scan.0.idx.val.i to i32*
+  %1 = load i32* %symbol.i, align 4
+  %cmp.i = icmp eq i32 %1, %call236
+  br i1 %cmp.i, label %if.then.i, label %while.cond.i
+
+if.then.i:                                        ; preds = %while.body.i
+  %valid.i = getelementptr inbounds i8* %scan.0.idx.val.i, i32 4
+  %2 = bitcast i8* %valid.i to i32*
+  %3 = load i32* %2, align 4
+  %tobool2.i = icmp eq i32 %3, 0
+  %arity9.i = getelementptr inbounds i8* %scan.0.idx.val.i, i32 8
+  %4 = bitcast i8* %arity9.i to i32*
+  br i1 %tobool2.i, label %if.else.i, label %if.then3.i
+
+if.then3.i:                                       ; preds = %if.then.i
+  %5 = load i32* %4, align 4
+  %cmp4.i = icmp eq i32 %5, %Arity
+  br i1 %cmp4.i, label %if.end14, label %if.then5.i
+
+if.then5.i:                                       ; preds = %if.then3.i
+  %6 = load %struct._IO_FILE** @stdout, align 4
+  %call6.i = tail call i32 @fflush(%struct._IO_FILE* %6) #1
+  %7 = load i32* @dfg_LINENUMBER, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([11 x i8]* @.str47, i32 0, i32 0), i32 %7) #1
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([21 x i8]* @.str48, i32 0, i32 0), i32 %Arity) #1
+  %sub.i.i43.i = sub nsw i32 0, %call236
+  %8 = load i32* @symbol_TYPESTATBITS, align 4
+  %shr.i.i44.i = ashr i32 %sub.i.i43.i, %8
+  %9 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i45.i = getelementptr inbounds %struct.signature** %9, i32 %shr.i.i44.i
+  %10 = load %struct.signature** %arrayidx.i.i45.i, align 4
+  %name.i46.i = getelementptr inbounds %struct.signature* %10, i32 0, i32 0
+  %11 = load i8** %name.i46.i, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([22 x i8]* @.str49, i32 0, i32 0), i8* %11) #1
+  %12 = load i32* %4, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([30 x i8]* @.str50, i32 0, i32 0), i32 %12) #1
+  tail call fastcc void @misc_Error() #1
+  unreachable
+
+if.else.i:                                        ; preds = %if.then.i
+  store i32 %Arity, i32* %4, align 4
+  store i32 1, i32* %2, align 4
+  br label %if.end14
+
+while.end.i:                                      ; preds = %while.cond.i, %if.then8
+  %sub.i.i39.i = sub nsw i32 0, %call236
+  %13 = load i32* @symbol_TYPESTATBITS, align 4
+  %shr.i.i40.i = ashr i32 %sub.i.i39.i, %13
+  %14 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i41.i = getelementptr inbounds %struct.signature** %14, i32 %shr.i.i40.i
+  %15 = load %struct.signature** %arrayidx.i.i41.i, align 4
+  %arity.i42.i = getelementptr inbounds %struct.signature* %15, i32 0, i32 3
+  %16 = load i32* %arity.i42.i, align 4
+  %cmp15.i = icmp eq i32 %16, %Arity
+  br i1 %cmp15.i, label %if.end14, label %if.then16.i
+
+if.then16.i:                                      ; preds = %while.end.i
+  %17 = load %struct._IO_FILE** @stdout, align 4
+  %call17.i = tail call i32 @fflush(%struct._IO_FILE* %17) #1
+  %18 = load i32* @dfg_LINENUMBER, align 4
+  %19 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i38.i = getelementptr inbounds %struct.signature** %19, i32 %shr.i.i40.i
+  %20 = load %struct.signature** %arrayidx.i.i38.i, align 4
+  %name.i.i = getelementptr inbounds %struct.signature* %20, i32 0, i32 0
+  %21 = load i8** %name.i.i, align 4
+  %arity.i.i = getelementptr inbounds %struct.signature* %20, i32 0, i32 3
+  %22 = load i32* %arity.i.i, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([50 x i8]* @.str51, i32 0, i32 0), i32 %18, i8* %21, i32 %22) #1
+  tail call fastcc void @misc_Error() #1
+  unreachable
+
+if.else:                                          ; preds = %if.end6
+  %cmp9 = icmp eq i32 %Arity, 0
+  br i1 %cmp9, label %if.end12, label %if.then10
+
+if.then10:                                        ; preds = %if.else
+  %23 = load %struct._IO_FILE** @stdout, align 4
+  %call11 = tail call i32 @fflush(%struct._IO_FILE* %23) #1
+  %24 = load i32* @dfg_LINENUMBER, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([33 x i8]* @.str45, i32 0, i32 0), i32 %24, i8* %Name) #1
+  tail call fastcc void @misc_Error()
+  unreachable
+
+if.end12:                                         ; preds = %if.else
+  %scan.064.i = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %cmp.i65.i = icmp eq %struct.LIST_HELP* %scan.064.i, null
+  br i1 %cmp.i65.i, label %if.else.i33, label %while.body.i28
+
+while.body.i28:                                   ; preds = %if.end12, %while.end.i31
+  %scan.066.i = phi %struct.LIST_HELP* [ %scan.0.i29, %while.end.i31 ], [ %scan.064.i, %if.end12 ]
+  %scan.0.idx.i26 = getelementptr %struct.LIST_HELP* %scan.066.i, i32 0, i32 1
+  %scan.0.idx.val.i27 = load i8** %scan.0.idx.i26, align 4
+  %25 = bitcast i8* %scan.0.idx.val.i27 to %struct.LIST_HELP*
+  %cmp.i6062.i = icmp eq i8* %scan.0.idx.val.i27, null
+  br i1 %cmp.i6062.i, label %while.end.i31, label %land.rhs9.i
+
+land.rhs9.i:                                      ; preds = %while.body.i28, %while.body15.i
+  %scan2.163.i = phi %struct.LIST_HELP* [ %scan2.1.idx48.val.i, %while.body15.i ], [ %25, %while.body.i28 ]
+  %scan2.1.idx.i = getelementptr %struct.LIST_HELP* %scan2.163.i, i32 0, i32 1
+  %scan2.1.idx.val.i = load i8** %scan2.1.idx.i, align 4
+  %.idx49.i = bitcast i8* %scan2.1.idx.val.i to i8**
+  %.idx49.val.i = load i8** %.idx49.i, align 4
+  %call.i57.i = tail call i32 @strcmp(i8* %.idx49.val.i, i8* %Name) #1
+  %cmp.i58.i = icmp eq i32 %call.i57.i, 0
+  br i1 %cmp.i58.i, label %while.end.i31, label %while.body15.i
+
+while.body15.i:                                   ; preds = %land.rhs9.i
+  %scan2.1.idx48.i = getelementptr %struct.LIST_HELP* %scan2.163.i, i32 0, i32 0
+  %scan2.1.idx48.val.i = load %struct.LIST_HELP** %scan2.1.idx48.i, align 4
+  %cmp.i60.i = icmp eq %struct.LIST_HELP* %scan2.1.idx48.val.i, null
+  br i1 %cmp.i60.i, label %while.end.i31, label %land.rhs9.i
+
+while.end.i31:                                    ; preds = %while.body15.i, %land.rhs9.i, %while.body.i28
+  %scan2.1.lcssa.i = phi %struct.LIST_HELP* [ %25, %while.body.i28 ], [ null, %while.body15.i ], [ %scan2.163.i, %land.rhs9.i ]
+  %scan.0.idx47.i = getelementptr %struct.LIST_HELP* %scan.066.i, i32 0, i32 0
+  %scan.0.i29 = load %struct.LIST_HELP** %scan.0.idx47.i, align 4
+  %cmp.i.i30 = icmp ne %struct.LIST_HELP* %scan.0.i29, null
+  %cmp.i53.i = icmp eq %struct.LIST_HELP* %scan2.1.lcssa.i, null
+  %or.cond.i = and i1 %cmp.i.i30, %cmp.i53.i
+  br i1 %or.cond.i, label %while.body.i28, label %while.end18.i
+
+while.end18.i:                                    ; preds = %while.end.i31
+  br i1 %cmp.i53.i, label %if.else.i33, label %if.then.i32
+
+if.then.i32:                                      ; preds = %while.end18.i
+  tail call void @string_StringFree(i8* %Name) #1
+  %scan2.0.idx.i = getelementptr %struct.LIST_HELP* %scan2.1.lcssa.i, i32 0, i32 1
+  %scan2.0.idx.val.i = load i8** %scan2.0.idx.i, align 4
+  br label %dfg_VarLookup.exit
+
+if.else.i33:                                      ; preds = %while.end18.i, %if.end12
+  %.b.i = load i1* @dfg_VARDECL, align 1
+  br i1 %.b.i, label %if.then24.i, label %if.else31.i
+
+if.then24.i:                                      ; preds = %if.else.i33
+  %call.i52.i = tail call i8* @memory_Malloc(i32 8) #1
+  %name.i = bitcast i8* %call.i52.i to i8**
+  store i8* %Name, i8** %name.i, align 4
+  %26 = load i32* @symbol_STANDARDVARCOUNTER, align 4
+  %inc.i.i = add nsw i32 %26, 1
+  store i32 %inc.i.i, i32* @symbol_STANDARDVARCOUNTER, align 4
+  %symbol27.i = getelementptr inbounds i8* %call.i52.i, i32 4
+  %27 = bitcast i8* %symbol27.i to i32*
+  store i32 %inc.i.i, i32* %27, align 4
+  %28 = load %struct.LIST_HELP** @dfg_VARLIST, align 4
+  %.idx.i = getelementptr %struct.LIST_HELP* %28, i32 0, i32 1
+  %.idx.val.i = load i8** %.idx.i, align 4
+  %29 = bitcast i8* %.idx.val.i to %struct.LIST_HELP*
+  %call.i.i = tail call i8* @memory_Malloc(i32 8) #1
+  %car.i51.i = getelementptr inbounds i8* %call.i.i, i32 4
+  %30 = bitcast i8* %car.i51.i to i8**
+  store i8* %call.i52.i, i8** %30, align 4
+  %cdr.i.i = bitcast i8* %call.i.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %29, %struct.LIST_HELP** %cdr.i.i, align 4
+  store i8* %call.i.i, i8** %.idx.i, align 4
+  br label %dfg_VarLookup.exit
+
+if.else31.i:                                      ; preds = %if.else.i33
+  %31 = load %struct._IO_FILE** @stdout, align 4
+  %call32.i = tail call i32 @fflush(%struct._IO_FILE* %31) #1
+  %32 = load i32* @dfg_LINENUMBER, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([30 x i8]* @.str46, i32 0, i32 0), i32 %32, i8* %Name) #1
+  tail call fastcc void @misc_Error() #1
+  unreachable
+
+dfg_VarLookup.exit:                               ; preds = %if.then.i32, %if.then24.i
+  %call.i52.pn.i = phi i8* [ %call.i52.i, %if.then24.i ], [ %scan2.0.idx.val.i, %if.then.i32 ]
+  %symbol.0.in.in.i = getelementptr i8* %call.i52.pn.i, i32 4
+  %symbol.0.in.i = bitcast i8* %symbol.0.in.in.i to i32*
+  %symbol.0.i = load i32* %symbol.0.in.i, align 4
+  br label %if.end14
+
+if.end14:                                         ; preds = %while.end.i, %if.else.i, %if.then3.i, %dfg_VarLookup.exit
+  %symbol.0 = phi i32 [ %symbol.0.i, %dfg_VarLookup.exit ], [ %call236, %if.then3.i ], [ %call236, %if.else.i ], [ %call236, %while.end.i ]
+  ret i32 %symbol.0
+}
+
+declare %struct.LIST_HELP* @list_NReverse(%struct.LIST_HELP*) #2
+
+declare %struct.term* @term_Create(i32, %struct.LIST_HELP*) #2
+
+declare i8* @string_IntToString(i32) #2
+
+declare i8* @string_StringCopy(i8*) #2
+
+; Function Attrs: nounwind
+declare i32 @fflush(%struct._IO_FILE* nocapture) #0
+
+declare void @misc_UserErrorReport(i8*, ...) #2
+
+; Function Attrs: inlinehint noreturn nounwind
+define internal fastcc void @misc_Error() #3 {
+entry:
+  %0 = load %struct._IO_FILE** @stderr, align 4
+  %call = tail call i32 @fflush(%struct._IO_FILE* %0) #1
+  %1 = load %struct._IO_FILE** @stdout, align 4
+  %call1 = tail call i32 @fflush(%struct._IO_FILE* %1) #1
+  %2 = load %struct._IO_FILE** @stderr, align 4
+  %call2 = tail call i32 @fflush(%struct._IO_FILE* %2) #1
+  tail call void @exit(i32 1) #7
+  unreachable
+}
+
+declare i32 @clause_GetOriginFromString(i8*) #2
+
+declare void @term_Delete(%struct.term*) #2
+
+declare i32 @string_StringToInt(i8*, i32, i32*) #2
+
+declare i32 @symbol_Lookup(i8*) #2
+
+declare i32 @flag_Id(i8*) #2
+
+; Function Attrs: nounwind readonly
+declare i32 @strlen(i8* nocapture) #4
+
+; Function Attrs: nounwind
+declare i8* @stpcpy(i8*, i8* nocapture) #0
+
+; Function Attrs: noreturn nounwind
+define void @dfg_error(i8* %s) #5 {
+entry:
+  %0 = load %struct._IO_FILE** @stdout, align 4
+  %call = tail call i32 @fflush(%struct._IO_FILE* %0) #1
+  %1 = load i32* @dfg_LINENUMBER, align 4
+  tail call void (i8*, ...)* @misc_UserErrorReport(i8* getelementptr inbounds ([15 x i8]* @.str22, i32 0, i32 0), i32 %1, i8* %s) #1
+  tail call fastcc void @misc_Error()
+  unreachable
+}
+
+; Function Attrs: nounwind
+declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+
+; Function Attrs: nounwind
+define void @dfg_Free() #0 {
+entry:
+  %0 = load i8** @dfg_DESC.0, align 4
+  %cmp = icmp eq i8* %0, null
+  br i1 %cmp, label %if.end, label %if.then
+
+if.then:                                          ; preds = %entry
+  tail call void @string_StringFree(i8* %0) #1
+  br label %if.end
+
+if.end:                                           ; preds = %entry, %if.then
+  %1 = load i8** @dfg_DESC.1, align 4
+  %cmp1 = icmp eq i8* %1, null
+  br i1 %cmp1, label %if.end3, label %if.then2
+
+if.then2:                                         ; preds = %if.end
+  tail call void @string_StringFree(i8* %1) #1
+  br label %if.end3
+
+if.end3:                                          ; preds = %if.end, %if.then2
+  %2 = load i8** @dfg_DESC.2, align 4
+  %cmp4 = icmp eq i8* %2, null
+  br i1 %cmp4, label %if.end6, label %if.then5
+
+if.then5:                                         ; preds = %if.end3
+  tail call void @string_StringFree(i8* %2) #1
+  br label %if.end6
+
+if.end6:                                          ; preds = %if.end3, %if.then5
+  %3 = load i8** @dfg_DESC.3, align 4
+  %cmp7 = icmp eq i8* %3, null
+  br i1 %cmp7, label %if.end9, label %if.then8
+
+if.then8:                                         ; preds = %if.end6
+  tail call void @string_StringFree(i8* %3) #1
+  br label %if.end9
+
+if.end9:                                          ; preds = %if.end6, %if.then8
+  %4 = load i8** @dfg_DESC.5, align 4
+  %cmp10 = icmp eq i8* %4, null
+  br i1 %cmp10, label %if.end12, label %if.then11
+
+if.then11:                                        ; preds = %if.end9
+  tail call void @string_StringFree(i8* %4) #1
+  br label %if.end12
+
+if.end12:                                         ; preds = %if.end9, %if.then11
+  %5 = load i8** @dfg_DESC.6, align 4
+  %cmp13 = icmp eq i8* %5, null
+  br i1 %cmp13, label %if.end15, label %if.then14
+
+if.then14:                                        ; preds = %if.end12
+  tail call void @string_StringFree(i8* %5) #1
+  br label %if.end15
+
+if.end15:                                         ; preds = %if.end12, %if.then14
+  ret void
+}
+
+; Function Attrs: nounwind readonly
+define i8* @dfg_ProblemName() #4 {
+entry:
+  %0 = load i8** @dfg_DESC.0, align 4
+  ret i8* %0
+}
+
+; Function Attrs: nounwind readonly
+define i8* @dfg_ProblemAuthor() #4 {
+entry:
+  %0 = load i8** @dfg_DESC.1, align 4
+  ret i8* %0
+}
+
+; Function Attrs: nounwind readonly
+define i8* @dfg_ProblemVersion() #4 {
+entry:
+  %0 = load i8** @dfg_DESC.2, align 4
+  ret i8* %0
+}
+
+; Function Attrs: nounwind readonly
+define i8* @dfg_ProblemLogic() #4 {
+entry:
+  %0 = load i8** @dfg_DESC.3, align 4
+  ret i8* %0
+}
+
+; Function Attrs: nounwind readonly
+define i32 @dfg_ProblemStatus() #4 {
+entry:
+  %0 = load i32* @dfg_DESC.4, align 4
+  ret i32 %0
+}
+
+; Function Attrs: nounwind
+define i8* @dfg_ProblemStatusString() #0 {
+entry:
+  %0 = load i32* @dfg_DESC.4, align 4
+  switch i32 %0, label %sw.default [
+    i32 0, label %sw.epilog
+    i32 1, label %sw.bb1
+    i32 2, label %sw.bb2
+  ]
+
+sw.bb1:                                           ; preds = %entry
+  br label %sw.epilog
+
+sw.bb2:                                           ; preds = %entry
+  br label %sw.epilog
+
+sw.default:                                       ; preds = %entry
+  %1 = load %struct._IO_FILE** @stdout, align 4
+  %call = tail call i32 @fflush(%struct._IO_FILE* %1) #1
+  %2 = load %struct._IO_FILE** @stderr, align 4
+  %call3 = tail call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %2, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1025) #1
+  tail call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([47 x i8]* @.str29, i32 0, i32 0)) #1
+  %3 = load %struct._IO_FILE** @stderr, align 4
+  %4 = tail call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %3)
+  tail call fastcc void @misc_DumpCore()
+  unreachable
+
+sw.epilog:                                        ; preds = %entry, %sw.bb2, %sw.bb1
+  %result.0 = phi i8* [ getelementptr inbounds ([8 x i8]* @.str26, i32 0, i32 0), %sw.bb2 ], [ getelementptr inbounds ([14 x i8]* @.str25, i32 0, i32 0), %sw.bb1 ], [ getelementptr inbounds ([12 x i8]* @.str24, i32 0, i32 0), %entry ]
+  ret i8* %result.0
+}
+
+; Function Attrs: nounwind
+declare i32 @fprintf(%struct._IO_FILE* nocapture, i8* nocapture, ...) #0
+
+declare void @misc_ErrorReport(i8*, ...) #2
+
+; Function Attrs: nounwind
+declare i32 @fputs(i8* nocapture, %struct._IO_FILE* nocapture) #0
+
+; Function Attrs: inlinehint noreturn nounwind
+define internal fastcc void @misc_DumpCore() #3 {
+entry:
+  %0 = load %struct._IO_FILE** @stderr, align 4
+  %1 = tail call i32 @fwrite(i8* getelementptr inbounds ([3 x i8]* @.str59, i32 0, i32 0), i32 2, i32 1, %struct._IO_FILE* %0)
+  %2 = load %struct._IO_FILE** @stderr, align 4
+  %call1 = tail call i32 @fflush(%struct._IO_FILE* %2) #1
+  %3 = load %struct._IO_FILE** @stdout, align 4
+  %call2 = tail call i32 @fflush(%struct._IO_FILE* %3) #1
+  %4 = load %struct._IO_FILE** @stderr, align 4
+  %call3 = tail call i32 @fflush(%struct._IO_FILE* %4) #1
+  tail call void @abort() #7
+  unreachable
+}
+
+; Function Attrs: nounwind readonly
+define i8* @dfg_ProblemDescription() #4 {
+entry:
+  %0 = load i8** @dfg_DESC.5, align 4
+  ret i8* %0
+}
+
+; Function Attrs: nounwind readonly
+define i8* @dfg_ProblemDate() #4 {
+entry:
+  %0 = load i8** @dfg_DESC.6, align 4
+  ret i8* %0
+}
+
+; Function Attrs: nounwind
+define void @dfg_FPrintDescription(%struct._IO_FILE* %File) #0 {
+entry:
+  %0 = tail call i32 @fwrite(i8* getelementptr inbounds ([30 x i8]* @.str31, i32 0, i32 0), i32 29, i32 1, %struct._IO_FILE* %File)
+  %1 = load i8** @dfg_DESC.0, align 4
+  %cmp = icmp eq i8* %1, null
+  br i1 %cmp, label %if.else, label %if.then
+
+if.then:                                          ; preds = %entry
+  %call1 = tail call i32 @fputs(i8* %1, %struct._IO_FILE* %File) #1
+  br label %if.end
+
+if.else:                                          ; preds = %entry
+  %2 = tail call i32 @fwrite(i8* getelementptr inbounds ([6 x i8]* @.str32, i32 0, i32 0), i32 5, i32 1, %struct._IO_FILE* %File)
+  br label %if.end
+
+if.end:                                           ; preds = %if.else, %if.then
+  %3 = tail call i32 @fwrite(i8* getelementptr inbounds ([13 x i8]* @.str33, i32 0, i32 0), i32 12, i32 1, %struct._IO_FILE* %File)
+  %4 = load i8** @dfg_DESC.1, align 4
+  %cmp4 = icmp eq i8* %4, null
+  br i1 %cmp4, label %if.else7, label %if.then5
+
+if.then5:                                         ; preds = %if.end
+  %call6 = tail call i32 @fputs(i8* %4, %struct._IO_FILE* %File) #1
+  br label %if.end9
+
+if.else7:                                         ; preds = %if.end
+  %5 = tail call i32 @fwrite(i8* getelementptr inbounds ([6 x i8]* @.str32, i32 0, i32 0), i32 5, i32 1, %struct._IO_FILE* %File)
+  br label %if.end9
+
+if.end9:                                          ; preds = %if.else7, %if.then5
+  %6 = tail call i32 @fwrite(i8* getelementptr inbounds ([4 x i8]* @.str34, i32 0, i32 0), i32 3, i32 1, %struct._IO_FILE* %File)
+  %7 = load i8** @dfg_DESC.2, align 4
+  %cmp11 = icmp eq i8* %7, null
+  br i1 %cmp11, label %if.end16, label %if.then12
+
+if.then12:                                        ; preds = %if.end9
+  %8 = tail call i32 @fwrite(i8* getelementptr inbounds ([11 x i8]* @.str35, i32 0, i32 0), i32 10, i32 1, %struct._IO_FILE* %File)
+  %9 = load i8** @dfg_DESC.2, align 4
+  %call14 = tail call i32 @fputs(i8* %9, %struct._IO_FILE* %File) #1
+  %10 = tail call i32 @fwrite(i8* getelementptr inbounds ([4 x i8]* @.str34, i32 0, i32 0), i32 3, i32 1, %struct._IO_FILE* %File)
+  br label %if.end16
+
+if.end16:                                         ; preds = %if.end9, %if.then12
+  %11 = load i8** @dfg_DESC.3, align 4
+  %cmp17 = icmp eq i8* %11, null
+  br i1 %cmp17, label %if.end22, label %if.then18
+
+if.then18:                                        ; preds = %if.end16
+  %12 = tail call i32 @fwrite(i8* getelementptr inbounds ([9 x i8]* @.str36, i32 0, i32 0), i32 8, i32 1, %struct._IO_FILE* %File)
+  %13 = load i8** @dfg_DESC.3, align 4
+  %call20 = tail call i32 @fputs(i8* %13, %struct._IO_FILE* %File) #1
+  %14 = tail call i32 @fwrite(i8* getelementptr inbounds ([4 x i8]* @.str34, i32 0, i32 0), i32 3, i32 1, %struct._IO_FILE* %File)
+  br label %if.end22
+
+if.end22:                                         ; preds = %if.end16, %if.then18
+  %15 = tail call i32 @fwrite(i8* getelementptr inbounds ([10 x i8]* @.str37, i32 0, i32 0), i32 9, i32 1, %struct._IO_FILE* %File)
+  %16 = load i32* @dfg_DESC.4, align 4
+  switch i32 %16, label %sw.default.i [
+    i32 0, label %dfg_ProblemStatusString.exit
+    i32 1, label %sw.bb1.i
+    i32 2, label %sw.bb2.i
+  ]
+
+sw.bb1.i:                                         ; preds = %if.end22
+  br label %dfg_ProblemStatusString.exit
+
+sw.bb2.i:                                         ; preds = %if.end22
+  br label %dfg_ProblemStatusString.exit
+
+sw.default.i:                                     ; preds = %if.end22
+  %17 = load %struct._IO_FILE** @stdout, align 4
+  %call.i = tail call i32 @fflush(%struct._IO_FILE* %17) #1
+  %18 = load %struct._IO_FILE** @stderr, align 4
+  %call3.i = tail call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf(%struct._IO_FILE* %18, i8* getelementptr inbounds ([31 x i8]* @.str27, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8]* @.str28, i32 0, i32 0), i32 1025) #1
+  tail call void (i8*, ...)* @misc_ErrorReport(i8* getelementptr inbounds ([47 x i8]* @.str29, i32 0, i32 0)) #1
+  %19 = load %struct._IO_FILE** @stderr, align 4
+  %20 = tail call i32 @fwrite(i8* getelementptr inbounds ([133 x i8]* @.str30, i32 0, i32 0), i32 132, i32 1, %struct._IO_FILE* %19) #1
+  tail call fastcc void @misc_DumpCore() #1
+  unreachable
+
+dfg_ProblemStatusString.exit:                     ; preds = %if.end22, %sw.bb1.i, %sw.bb2.i
+  %result.0.i = phi i8* [ getelementptr inbounds ([8 x i8]* @.str26, i32 0, i32 0), %sw.bb2.i ], [ getelementptr inbounds ([14 x i8]* @.str25, i32 0, i32 0), %sw.bb1.i ], [ getelementptr inbounds ([12 x i8]* @.str24, i32 0, i32 0), %if.end22 ]
+  %call25 = tail call i32 @fputs(i8* %result.0.i, %struct._IO_FILE* %File) #1
+  %21 = tail call i32 @fwrite(i8* getelementptr inbounds ([18 x i8]* @.str38, i32 0, i32 0), i32 17, i32 1, %struct._IO_FILE* %File)
+  %22 = load i8** @dfg_DESC.5, align 4
+  %cmp27 = icmp eq i8* %22, null
+  br i1 %cmp27, label %if.else30, label %if.then28
+
+if.then28:                                        ; preds = %dfg_ProblemStatusString.exit
+  %call29 = tail call i32 @fputs(i8* %22, %struct._IO_FILE* %File) #1
+  br label %if.end32
+
+if.else30:                                        ; preds = %dfg_ProblemStatusString.exit
+  %23 = tail call i32 @fwrite(i8* getelementptr inbounds ([6 x i8]* @.str32, i32 0, i32 0), i32 5, i32 1, %struct._IO_FILE* %File)
+  br label %if.end32
+
+if.end32:                                         ; preds = %if.else30, %if.then28
+  %24 = tail call i32 @fwrite(i8* getelementptr inbounds ([4 x i8]* @.str34, i32 0, i32 0), i32 3, i32 1, %struct._IO_FILE* %File)
+  %25 = load i8** @dfg_DESC.6, align 4
+  %cmp34 = icmp eq i8* %25, null
+  br i1 %cmp34, label %if.end39, label %if.then35
+
+if.then35:                                        ; preds = %if.end32
+  %26 = tail call i32 @fwrite(i8* getelementptr inbounds ([8 x i8]* @.str39, i32 0, i32 0), i32 7, i32 1, %struct._IO_FILE* %File)
+  %27 = load i8** @dfg_DESC.6, align 4
+  %call37 = tail call i32 @fputs(i8* %27, %struct._IO_FILE* %File) #1
+  %28 = tail call i32 @fwrite(i8* getelementptr inbounds ([4 x i8]* @.str34, i32 0, i32 0), i32 3, i32 1, %struct._IO_FILE* %File)
+  br label %if.end39
+
+if.end39:                                         ; preds = %if.end32, %if.then35
+  %29 = tail call i32 @fwrite(i8* getelementptr inbounds ([13 x i8]* @.str40, i32 0, i32 0), i32 12, i32 1, %struct._IO_FILE* %File)
+  ret void
+}
+
+; Function Attrs: nounwind
+define %struct.LIST_HELP* @dfg_DFGParser(%struct._IO_FILE* %File, i32* %Flags, i32* %Precedence, %struct.LIST_HELP** nocapture %Axioms, %struct.LIST_HELP** nocapture %Conjectures, %struct.LIST_HELP** nocapture %SortDecl, %struct.LIST_HELP** nocapture %UserDefinedPrecedence) #0 {
+entry:
+  store %struct._IO_FILE* %File, %struct._IO_FILE** @dfg_in, align 4
+  store i32 1, i32* @dfg_LINENUMBER, align 4
+  store i32 1, i32* @dfg_IGNORETEXT, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 false, i1* @dfg_VARDECL, align 1
+  store i32 0, i32* @dfg_IGNORE, align 4
+  store i32* %Flags, i32** @dfg_FLAGS, align 4
+  store i32* %Precedence, i32** @dfg_PRECEDENCE, align 4
+  store i8* null, i8** @dfg_DESC.0, align 4
+  store i8* null, i8** @dfg_DESC.1, align 4
+  store i8* null, i8** @dfg_DESC.2, align 4
+  store i8* null, i8** @dfg_DESC.3, align 4
+  store i32 2, i32* @dfg_DESC.4, align 4
+  store i8* null, i8** @dfg_DESC.5, align 4
+  store i8* null, i8** @dfg_DESC.6, align 4
+  %call1 = tail call i32 @dfg_parse()
+  %0 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i13.i = icmp eq %struct.LIST_HELP* %0, null
+  br i1 %cmp.i13.i, label %for.cond.preheader, label %while.body.lr.ph.i
+
+while.body.lr.ph.i:                               ; preds = %entry
+  %1 = load i32* @symbol_TYPESTATBITS, align 4
+  br label %while.body.i
+
+while.body.i:                                     ; preds = %if.end.i109, %while.body.lr.ph.i
+  %2 = phi %struct.LIST_HELP* [ %0, %while.body.lr.ph.i ], [ %L.idx.val.i.i, %if.end.i109 ]
+  %.idx.i = getelementptr %struct.LIST_HELP* %2, i32 0, i32 1
+  %.idx.val.i = load i8** %.idx.i, align 4
+  %symbol.i = bitcast i8* %.idx.val.i to i32*
+  %3 = load i32* %symbol.i, align 4
+  %arity.i = getelementptr inbounds i8* %.idx.val.i, i32 8
+  %4 = bitcast i8* %arity.i to i32*
+  %5 = load i32* %4, align 4
+  %sub.i.i9.i = sub nsw i32 0, %3
+  %shr.i.i10.i = ashr i32 %sub.i.i9.i, %1
+  %6 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i11.i = getelementptr inbounds %struct.signature** %6, i32 %shr.i.i10.i
+  %7 = load %struct.signature** %arrayidx.i.i11.i, align 4
+  %arity.i12.i = getelementptr inbounds %struct.signature* %7, i32 0, i32 3
+  %8 = load i32* %arity.i12.i, align 4
+  %cmp.i = icmp eq i32 %5, %8
+  br i1 %cmp.i, label %if.end.i109, label %if.then.i
+
+if.then.i:                                        ; preds = %while.body.i
+  store i32 %5, i32* %arity.i12.i, align 4
+  br label %if.end.i109
+
+if.end.i109:                                      ; preds = %if.then.i, %while.body.i
+  %9 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 12), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 4
+  %10 = load i32* %total_size.i.i.i, align 4
+  %11 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %11, %10
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 0
+  %12 = load i8** %free.i.i.i, align 4
+  %.c.i.i = ptrtoint i8* %12 to i32
+  store i32 %.c.i.i, i32* %symbol.i, align 4
+  %13 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 12), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %13, i32 0, i32 0
+  store i8* %.idx.val.i, i8** %free27.i.i.i, align 4
+  %14 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %L.idx.i.i = getelementptr %struct.LIST_HELP* %14, i32 0, i32 0
+  %L.idx.val.i.i = load %struct.LIST_HELP** %L.idx.i.i, align 4
+  %15 = bitcast %struct.LIST_HELP* %14 to i8*
+  %16 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %16, i32 0, i32 4
+  %17 = load i32* %total_size.i.i.i.i, align 4
+  %18 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i = add i32 %18, %17
+  store i32 %add24.i.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %16, i32 0, i32 0
+  %19 = load i8** %free.i.i.i.i, align 4
+  %.c.i.i.i = bitcast i8* %19 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i, %struct.LIST_HELP** %L.idx.i.i, align 4
+  %20 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %20, i32 0, i32 0
+  store i8* %15, i8** %free27.i.i.i.i, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i.i108 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i, null
+  br i1 %cmp.i.i108, label %for.cond.preheader, label %while.body.i
+
+for.cond.preheader:                               ; preds = %if.end.i109, %entry
+  %scan.0127 = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %cmp.i115128 = icmp eq %struct.LIST_HELP* %scan.0127, null
+  br i1 %cmp.i115128, label %for.end, label %for.body
+
+for.body:                                         ; preds = %for.cond.preheader, %if.end
+  %scan.0129 = phi %struct.LIST_HELP* [ %scan.0, %if.end ], [ %scan.0127, %for.cond.preheader ]
+  %scan.0.idx = getelementptr %struct.LIST_HELP* %scan.0129, i32 0, i32 1
+  %scan.0.idx.val = load i8** %scan.0.idx, align 4
+  %.idx59 = bitcast i8* %scan.0.idx.val to %struct.LIST_HELP**
+  %.idx59.val = load %struct.LIST_HELP** %.idx59, align 4
+  %21 = bitcast %struct.LIST_HELP* %.idx59.val to %struct.term*
+  %call5 = tail call %struct.CLAUSE_HELP* @dfg_CreateClauseFromTerm(%struct.term* %21, i32 1, i32* %Flags, i32* %Precedence)
+  %22 = bitcast %struct.CLAUSE_HELP* %call5 to i8*
+  store i8* %22, i8** %scan.0.idx, align 4
+  %.idx63 = getelementptr i8* %scan.0.idx.val, i32 4
+  %23 = bitcast i8* %.idx63 to i8**
+  %.idx63.val = load i8** %23, align 4
+  %cmp = icmp eq i8* %.idx63.val, null
+  br i1 %cmp, label %if.end, label %if.then
+
+if.then:                                          ; preds = %for.body
+  tail call void @string_StringFree(i8* %.idx63.val) #1
+  br label %if.end
+
+if.end:                                           ; preds = %for.body, %if.then
+  %24 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i118 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %24, i32 0, i32 4
+  %25 = load i32* %total_size.i.i.i118, align 4
+  %26 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i119 = add i32 %26, %25
+  store i32 %add24.i.i.i119, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i120 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %24, i32 0, i32 0
+  %27 = load i8** %free.i.i.i120, align 4
+  %.c.i.i121 = bitcast i8* %27 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i121, %struct.LIST_HELP** %.idx59, align 4
+  %28 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i122 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %28, i32 0, i32 0
+  store i8* %scan.0.idx.val, i8** %free27.i.i.i122, align 4
+  %scan.0.idx58 = getelementptr %struct.LIST_HELP* %scan.0129, i32 0, i32 0
+  %scan.0 = load %struct.LIST_HELP** %scan.0.idx58, align 4
+  %cmp.i115 = icmp eq %struct.LIST_HELP* %scan.0, null
+  br i1 %cmp.i115, label %for.cond.for.end_crit_edge, label %for.body
+
+for.cond.for.end_crit_edge:                       ; preds = %if.end
+  %.pre = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  br label %for.end
+
+for.end:                                          ; preds = %for.cond.for.end_crit_edge, %for.cond.preheader
+  %29 = phi %struct.LIST_HELP* [ %.pre, %for.cond.for.end_crit_edge ], [ null, %for.cond.preheader ]
+  %call9 = tail call %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP* %29, i8* null) #1
+  store %struct.LIST_HELP* %call9, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %scan.1124 = load %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %cmp.i116125 = icmp eq %struct.LIST_HELP* %scan.1124, null
+  br i1 %cmp.i116125, label %for.end25, label %for.body14
+
+for.body14:                                       ; preds = %for.end, %if.end22
+  %scan.1126 = phi %struct.LIST_HELP* [ %scan.1, %if.end22 ], [ %scan.1124, %for.end ]
+  %scan.1.idx = getelementptr %struct.LIST_HELP* %scan.1126, i32 0, i32 1
+  %scan.1.idx.val = load i8** %scan.1.idx, align 4
+  %.idx = bitcast i8* %scan.1.idx.val to %struct.LIST_HELP**
+  %.idx.val = load %struct.LIST_HELP** %.idx, align 4
+  %30 = bitcast %struct.LIST_HELP* %.idx.val to %struct.term*
+  %call17 = tail call %struct.CLAUSE_HELP* @dfg_CreateClauseFromTerm(%struct.term* %30, i32 0, i32* %Flags, i32* %Precedence)
+  %31 = bitcast %struct.CLAUSE_HELP* %call17 to i8*
+  store i8* %31, i8** %scan.1.idx, align 4
+  %.idx61 = getelementptr i8* %scan.1.idx.val, i32 4
+  %32 = bitcast i8* %.idx61 to i8**
+  %.idx61.val = load i8** %32, align 4
+  %cmp19 = icmp eq i8* %.idx61.val, null
+  br i1 %cmp19, label %if.end22, label %if.then20
+
+if.then20:                                        ; preds = %for.body14
+  tail call void @string_StringFree(i8* %.idx61.val) #1
+  br label %if.end22
+
+if.end22:                                         ; preds = %for.body14, %if.then20
+  %33 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i110 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %33, i32 0, i32 4
+  %34 = load i32* %total_size.i.i.i110, align 4
+  %35 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i111 = add i32 %35, %34
+  store i32 %add24.i.i.i111, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i112 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %33, i32 0, i32 0
+  %36 = load i8** %free.i.i.i112, align 4
+  %.c.i.i113 = bitcast i8* %36 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i113, %struct.LIST_HELP** %.idx, align 4
+  %37 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i114 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %37, i32 0, i32 0
+  store i8* %scan.1.idx.val, i8** %free27.i.i.i114, align 4
+  %scan.1.idx57 = getelementptr %struct.LIST_HELP* %scan.1126, i32 0, i32 0
+  %scan.1 = load %struct.LIST_HELP** %scan.1.idx57, align 4
+  %cmp.i116 = icmp eq %struct.LIST_HELP* %scan.1, null
+  br i1 %cmp.i116, label %for.cond10.for.end25_crit_edge, label %for.body14
+
+for.cond10.for.end25_crit_edge:                   ; preds = %if.end22
+  %.pre130 = load %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  br label %for.end25
+
+for.end25:                                        ; preds = %for.cond10.for.end25_crit_edge, %for.end
+  %38 = phi %struct.LIST_HELP* [ %.pre130, %for.cond10.for.end25_crit_edge ], [ null, %for.end ]
+  %call26 = tail call %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP* %38, i8* null) #1
+  store %struct.LIST_HELP* %call26, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %39 = load %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  tail call void @dfg_DeleteProofList(%struct.LIST_HELP* %39)
+  %40 = load %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  tail call void @list_DeleteWithElement(%struct.LIST_HELP* %40, void (i8*)* bitcast (void (%struct.term*)* @term_Delete to void (i8*)*)) #1
+  %41 = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %42 = load %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %cmp.i.i97 = icmp eq %struct.LIST_HELP* %41, null
+  br i1 %cmp.i.i97, label %list_Nconc.exit107, label %if.end.i99
+
+if.end.i99:                                       ; preds = %for.end25
+  %cmp.i18.i98 = icmp eq %struct.LIST_HELP* %42, null
+  br i1 %cmp.i18.i98, label %list_Nconc.exit107, label %for.cond.i104
+
+for.cond.i104:                                    ; preds = %if.end.i99, %for.cond.i104
+  %List1.addr.0.i100 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i102, %for.cond.i104 ], [ %41, %if.end.i99 ]
+  %List1.addr.0.idx15.i101 = getelementptr %struct.LIST_HELP* %List1.addr.0.i100, i32 0, i32 0
+  %List1.addr.0.idx15.val.i102 = load %struct.LIST_HELP** %List1.addr.0.idx15.i101, align 4
+  %cmp.i16.i103 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i102, null
+  br i1 %cmp.i16.i103, label %for.end.i105, label %for.cond.i104
+
+for.end.i105:                                     ; preds = %for.cond.i104
+  store %struct.LIST_HELP* %42, %struct.LIST_HELP** %List1.addr.0.idx15.i101, align 4
+  br label %list_Nconc.exit107
+
+list_Nconc.exit107:                               ; preds = %for.end25, %if.end.i99, %for.end.i105
+  %retval.0.i106 = phi %struct.LIST_HELP* [ %41, %for.end.i105 ], [ %42, %for.end25 ], [ %41, %if.end.i99 ]
+  %43 = load %struct.LIST_HELP** %Axioms, align 4
+  %44 = load %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  %cmp.i.i86 = icmp eq %struct.LIST_HELP* %43, null
+  br i1 %cmp.i.i86, label %list_Nconc.exit96, label %if.end.i88
+
+if.end.i88:                                       ; preds = %list_Nconc.exit107
+  %cmp.i18.i87 = icmp eq %struct.LIST_HELP* %44, null
+  br i1 %cmp.i18.i87, label %list_Nconc.exit96, label %for.cond.i93
+
+for.cond.i93:                                     ; preds = %if.end.i88, %for.cond.i93
+  %List1.addr.0.i89 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i91, %for.cond.i93 ], [ %43, %if.end.i88 ]
+  %List1.addr.0.idx15.i90 = getelementptr %struct.LIST_HELP* %List1.addr.0.i89, i32 0, i32 0
+  %List1.addr.0.idx15.val.i91 = load %struct.LIST_HELP** %List1.addr.0.idx15.i90, align 4
+  %cmp.i16.i92 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i91, null
+  br i1 %cmp.i16.i92, label %for.end.i94, label %for.cond.i93
+
+for.end.i94:                                      ; preds = %for.cond.i93
+  store %struct.LIST_HELP* %44, %struct.LIST_HELP** %List1.addr.0.idx15.i90, align 4
+  br label %list_Nconc.exit96
+
+list_Nconc.exit96:                                ; preds = %list_Nconc.exit107, %if.end.i88, %for.end.i94
+  %retval.0.i95 = phi %struct.LIST_HELP* [ %43, %for.end.i94 ], [ %44, %list_Nconc.exit107 ], [ %43, %if.end.i88 ]
+  store %struct.LIST_HELP* %retval.0.i95, %struct.LIST_HELP** %Axioms, align 4
+  %45 = load %struct.LIST_HELP** %Conjectures, align 4
+  %46 = load %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  %cmp.i.i75 = icmp eq %struct.LIST_HELP* %45, null
+  br i1 %cmp.i.i75, label %list_Nconc.exit85, label %if.end.i77
+
+if.end.i77:                                       ; preds = %list_Nconc.exit96
+  %cmp.i18.i76 = icmp eq %struct.LIST_HELP* %46, null
+  br i1 %cmp.i18.i76, label %list_Nconc.exit85, label %for.cond.i82
+
+for.cond.i82:                                     ; preds = %if.end.i77, %for.cond.i82
+  %List1.addr.0.i78 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i80, %for.cond.i82 ], [ %45, %if.end.i77 ]
+  %List1.addr.0.idx15.i79 = getelementptr %struct.LIST_HELP* %List1.addr.0.i78, i32 0, i32 0
+  %List1.addr.0.idx15.val.i80 = load %struct.LIST_HELP** %List1.addr.0.idx15.i79, align 4
+  %cmp.i16.i81 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i80, null
+  br i1 %cmp.i16.i81, label %for.end.i83, label %for.cond.i82
+
+for.end.i83:                                      ; preds = %for.cond.i82
+  store %struct.LIST_HELP* %46, %struct.LIST_HELP** %List1.addr.0.idx15.i79, align 4
+  br label %list_Nconc.exit85
+
+list_Nconc.exit85:                                ; preds = %list_Nconc.exit96, %if.end.i77, %for.end.i83
+  %retval.0.i84 = phi %struct.LIST_HELP* [ %45, %for.end.i83 ], [ %46, %list_Nconc.exit96 ], [ %45, %if.end.i77 ]
+  store %struct.LIST_HELP* %retval.0.i84, %struct.LIST_HELP** %Conjectures, align 4
+  %47 = load %struct.LIST_HELP** %SortDecl, align 4
+  %48 = load %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  %cmp.i.i64 = icmp eq %struct.LIST_HELP* %47, null
+  br i1 %cmp.i.i64, label %list_Nconc.exit74, label %if.end.i66
+
+if.end.i66:                                       ; preds = %list_Nconc.exit85
+  %cmp.i18.i65 = icmp eq %struct.LIST_HELP* %48, null
+  br i1 %cmp.i18.i65, label %list_Nconc.exit74, label %for.cond.i71
+
+for.cond.i71:                                     ; preds = %if.end.i66, %for.cond.i71
+  %List1.addr.0.i67 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i69, %for.cond.i71 ], [ %47, %if.end.i66 ]
+  %List1.addr.0.idx15.i68 = getelementptr %struct.LIST_HELP* %List1.addr.0.i67, i32 0, i32 0
+  %List1.addr.0.idx15.val.i69 = load %struct.LIST_HELP** %List1.addr.0.idx15.i68, align 4
+  %cmp.i16.i70 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i69, null
+  br i1 %cmp.i16.i70, label %for.end.i72, label %for.cond.i71
+
+for.end.i72:                                      ; preds = %for.cond.i71
+  store %struct.LIST_HELP* %48, %struct.LIST_HELP** %List1.addr.0.idx15.i68, align 4
+  br label %list_Nconc.exit74
+
+list_Nconc.exit74:                                ; preds = %list_Nconc.exit85, %if.end.i66, %for.end.i72
+  %retval.0.i73 = phi %struct.LIST_HELP* [ %47, %for.end.i72 ], [ %48, %list_Nconc.exit85 ], [ %47, %if.end.i66 ]
+  store %struct.LIST_HELP* %retval.0.i73, %struct.LIST_HELP** %SortDecl, align 4
+  %49 = load %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  %call31 = tail call %struct.LIST_HELP* @list_NReverse(%struct.LIST_HELP* %49) #1
+  %50 = load %struct.LIST_HELP** %UserDefinedPrecedence, align 4
+  %51 = load %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  %cmp.i.i = icmp eq %struct.LIST_HELP* %50, null
+  br i1 %cmp.i.i, label %list_Nconc.exit, label %if.end.i
+
+if.end.i:                                         ; preds = %list_Nconc.exit74
+  %cmp.i18.i = icmp eq %struct.LIST_HELP* %51, null
+  br i1 %cmp.i18.i, label %list_Nconc.exit, label %for.cond.i
+
+for.cond.i:                                       ; preds = %if.end.i, %for.cond.i
+  %List1.addr.0.i = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i, %for.cond.i ], [ %50, %if.end.i ]
+  %List1.addr.0.idx15.i = getelementptr %struct.LIST_HELP* %List1.addr.0.i, i32 0, i32 0
+  %List1.addr.0.idx15.val.i = load %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  %cmp.i16.i = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i, null
+  br i1 %cmp.i16.i, label %for.end.i, label %for.cond.i
+
+for.end.i:                                        ; preds = %for.cond.i
+  store %struct.LIST_HELP* %51, %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  br label %list_Nconc.exit
+
+list_Nconc.exit:                                  ; preds = %list_Nconc.exit74, %if.end.i, %for.end.i
+  %retval.0.i = phi %struct.LIST_HELP* [ %50, %for.end.i ], [ %51, %list_Nconc.exit74 ], [ %50, %if.end.i ]
+  store %struct.LIST_HELP* %retval.0.i, %struct.LIST_HELP** %UserDefinedPrecedence, align 4
+  ret %struct.LIST_HELP* %retval.0.i106
+}
+
+; Function Attrs: nounwind
+define %struct.CLAUSE_HELP* @dfg_CreateClauseFromTerm(%struct.term* %Clause, i32 %IsAxiom, i32* %Flags, i32* %Precedence) #0 {
+entry:
+  %Clause.idx = getelementptr %struct.term* %Clause, i32 0, i32 0
+  %Clause.idx.val = load i32* %Clause.idx, align 4
+  %0 = load i32* @fol_ALL, align 4
+  %cmp = icmp eq i32 %Clause.idx.val, %0
+  %Clause.idx66 = getelementptr %struct.term* %Clause, i32 0, i32 2
+  %Clause.idx66.val = load %struct.LIST_HELP** %Clause.idx66, align 4
+  br i1 %cmp, label %if.then, label %if.else
+
+if.then:                                          ; preds = %entry
+  %Clause.idx66.val.idx = getelementptr %struct.LIST_HELP* %Clause.idx66.val, i32 0, i32 0
+  %Clause.idx66.val.idx.val = load %struct.LIST_HELP** %Clause.idx66.val.idx, align 4
+  %Clause.idx66.val.idx.val.idx = getelementptr %struct.LIST_HELP* %Clause.idx66.val.idx.val, i32 0, i32 1
+  %Clause.idx66.val.idx.val.idx.val = load i8** %Clause.idx66.val.idx.val.idx, align 4
+  %call2.idx = getelementptr i8* %Clause.idx66.val.idx.val.idx.val, i32 8
+  %1 = bitcast i8* %call2.idx to %struct.LIST_HELP**
+  %call2.idx.val = load %struct.LIST_HELP** %1, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %1, align 4
+  br label %if.end
+
+if.else:                                          ; preds = %entry
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %Clause.idx66, align 4
+  br label %if.end
+
+if.end:                                           ; preds = %if.else, %if.then
+  %literals.0 = phi %struct.LIST_HELP* [ %call2.idx.val, %if.then ], [ %Clause.idx66.val, %if.else ]
+  tail call void @term_Delete(%struct.term* %Clause) #1
+  %cmp.i7880 = icmp eq %struct.LIST_HELP* %literals.0, null
+  br i1 %cmp.i7880, label %for.end, label %for.body.lr.ph
+
+for.body.lr.ph:                                   ; preds = %if.end
+  %car.i = getelementptr inbounds %struct.LIST_HELP* %literals.0, i32 0, i32 1
+  %2 = load i32* @symbol_TYPEMASK, align 4
+  br label %for.body
+
+for.body:                                         ; preds = %for.body.lr.ph, %for.inc
+  %scan.081 = phi %struct.LIST_HELP* [ %literals.0, %for.body.lr.ph ], [ %scan.0.idx62.val, %for.inc ]
+  %scan.0.idx = getelementptr %struct.LIST_HELP* %scan.081, i32 0, i32 1
+  %scan.0.idx.val = load i8** %scan.0.idx, align 4
+  %3 = bitcast i8* %scan.0.idx.val to %struct.term*
+  %.idx = bitcast i8* %scan.0.idx.val to i32*
+  %.idx.val = load i32* %.idx, align 4
+  %tobool.i = icmp sgt i32 %.idx.val, -1
+  br i1 %tobool.i, label %if.else24, label %land.rhs.i
+
+land.rhs.i:                                       ; preds = %for.body
+  %sub.i.i = sub nsw i32 0, %.idx.val
+  %and.i.i = and i32 %2, %sub.i.i
+  %cmp.i = icmp eq i32 %and.i.i, 2
+  br i1 %cmp.i, label %if.then13, label %if.else24
+
+if.then13:                                        ; preds = %land.rhs.i
+  %4 = load i32* @fol_TRUE, align 4
+  %cmp.i.i76 = icmp eq i32 %4, %.idx.val
+  br i1 %cmp.i.i76, label %if.then16, label %if.else18
+
+if.then16:                                        ; preds = %if.then13
+  %call17 = tail call %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP* %literals.0, i8* null) #1
+  tail call void @list_DeleteWithElement(%struct.LIST_HELP* %literals.0, void (i8*)* bitcast (void (%struct.term*)* @term_Delete to void (i8*)*)) #1
+  br label %return
+
+if.else18:                                        ; preds = %if.then13
+  %5 = load i32* @fol_FALSE, align 4
+  %cmp.i.i74 = icmp eq i32 %5, %.idx.val
+  br i1 %cmp.i.i74, label %if.then21, label %for.inc
+
+if.then21:                                        ; preds = %if.else18
+  tail call void @term_Delete(%struct.term* %3) #1
+  store i8* null, i8** %scan.0.idx, align 4
+  br label %for.inc
+
+if.else24:                                        ; preds = %for.body, %land.rhs.i
+  %.idx63 = getelementptr i8* %scan.0.idx.val, i32 8
+  %6 = bitcast i8* %.idx63 to %struct.LIST_HELP**
+  %.idx63.val = load %struct.LIST_HELP** %6, align 4
+  %.idx63.val.idx = getelementptr %struct.LIST_HELP* %.idx63.val, i32 0, i32 1
+  %.idx63.val.idx.val = load i8** %.idx63.val.idx, align 4
+  %call25.idx68 = bitcast i8* %.idx63.val.idx.val to i32*
+  %call25.idx68.val = load i32* %call25.idx68, align 4
+  %7 = load i32* @fol_FALSE, align 4
+  %cmp.i.i71 = icmp eq i32 %7, %call25.idx68.val
+  br i1 %cmp.i.i71, label %if.then28, label %if.else30
+
+if.then28:                                        ; preds = %if.else24
+  %call29 = tail call %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP* %literals.0, i8* null) #1
+  tail call void @list_DeleteWithElement(%struct.LIST_HELP* %literals.0, void (i8*)* bitcast (void (%struct.term*)* @term_Delete to void (i8*)*)) #1
+  br label %return
+
+if.else30:                                        ; preds = %if.else24
+  %8 = load i32* @fol_TRUE, align 4
+  %cmp.i.i70 = icmp eq i32 %8, %call25.idx68.val
+  br i1 %cmp.i.i70, label %if.then33, label %for.inc
+
+if.then33:                                        ; preds = %if.else30
+  tail call void @term_Delete(%struct.term* %3) #1
+  store i8* null, i8** %car.i, align 4
+  br label %for.inc
+
+for.inc:                                          ; preds = %if.else30, %if.else18, %if.then21, %if.then33
+  %scan.0.idx62 = getelementptr %struct.LIST_HELP* %scan.081, i32 0, i32 0
+  %scan.0.idx62.val = load %struct.LIST_HELP** %scan.0.idx62, align 4
+  %cmp.i78 = icmp eq %struct.LIST_HELP* %scan.0.idx62.val, null
+  br i1 %cmp.i78, label %for.end, label %for.body
+
+for.end:                                          ; preds = %for.inc, %if.end
+  %call38 = tail call %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP* %literals.0, i8* null) #1
+  %lnot40 = icmp eq i32 %IsAxiom, 0
+  %lnot.ext = zext i1 %lnot40 to i32
+  %call41 = tail call %struct.CLAUSE_HELP* @clause_CreateFromLiterals(%struct.LIST_HELP* %call38, i32 0, i32 %lnot.ext, i32 0, i32* %Flags, i32* %Precedence) #1
+  %cmp.i5.i = icmp eq %struct.LIST_HELP* %call38, null
+  br i1 %cmp.i5.i, label %return, label %while.body.i
+
+while.body.i:                                     ; preds = %for.end, %while.body.i
+  %L.addr.06.i = phi %struct.LIST_HELP* [ %L.addr.0.idx.val.i, %while.body.i ], [ %call38, %for.end ]
+  %L.addr.0.idx.i = getelementptr %struct.LIST_HELP* %L.addr.06.i, i32 0, i32 0
+  %L.addr.0.idx.val.i = load %struct.LIST_HELP** %L.addr.0.idx.i, align 4
+  %9 = bitcast %struct.LIST_HELP* %L.addr.06.i to i8*
+  %10 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %10, i32 0, i32 4
+  %11 = load i32* %total_size.i.i.i, align 4
+  %12 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %12, %11
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %10, i32 0, i32 0
+  %13 = load i8** %free.i.i.i, align 4
+  %.c.i.i = bitcast i8* %13 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i, %struct.LIST_HELP** %L.addr.0.idx.i, align 4
+  %14 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %14, i32 0, i32 0
+  store i8* %9, i8** %free27.i.i.i, align 4
+  %cmp.i.i = icmp eq %struct.LIST_HELP* %L.addr.0.idx.val.i, null
+  br i1 %cmp.i.i, label %return, label %while.body.i
+
+return:                                           ; preds = %while.body.i, %for.end, %if.then28, %if.then16
+  %retval.0 = phi %struct.CLAUSE_HELP* [ null, %if.then16 ], [ null, %if.then28 ], [ %call41, %for.end ], [ %call41, %while.body.i ]
+  ret %struct.CLAUSE_HELP* %retval.0
+}
+
+declare %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP*, i8*) #2
+
+; Function Attrs: nounwind
+define void @dfg_DeleteProofList(%struct.LIST_HELP* %Proof) #0 {
+entry:
+  %cmp.i18 = icmp eq %struct.LIST_HELP* %Proof, null
+  br i1 %cmp.i18, label %for.end, label %for.body
+
+for.body:                                         ; preds = %entry, %list_Delete.exit
+  %Proof.addr.019 = phi %struct.LIST_HELP* [ %L.idx.val.i, %list_Delete.exit ], [ %Proof, %entry ]
+  %Proof.addr.0.idx = getelementptr %struct.LIST_HELP* %Proof.addr.019, i32 0, i32 1
+  %Proof.addr.0.idx.val = load i8** %Proof.addr.0.idx, align 4
+  %.idx = getelementptr i8* %Proof.addr.0.idx.val, i32 4
+  %0 = bitcast i8* %.idx to i8**
+  %.idx.val = load i8** %0, align 4
+  tail call void @string_StringFree(i8* %.idx.val) #1
+  %.idx11 = bitcast i8* %Proof.addr.0.idx.val to %struct.LIST_HELP**
+  %.idx11.val = load %struct.LIST_HELP** %.idx11, align 4
+  %.idx11.val.idx = getelementptr %struct.LIST_HELP* %.idx11.val, i32 0, i32 1
+  %.idx11.val.idx.val = load i8** %.idx11.val.idx, align 4
+  %1 = bitcast i8* %.idx11.val.idx.val to %struct.term*
+  tail call void @term_Delete(%struct.term* %1) #1
+  %.idx12.val = load %struct.LIST_HELP** %.idx11, align 4
+  %.idx12.val.idx = getelementptr %struct.LIST_HELP* %.idx12.val, i32 0, i32 0
+  %.idx12.val.idx.val = load %struct.LIST_HELP** %.idx12.val.idx, align 4
+  %.idx12.val.idx.val.idx = getelementptr %struct.LIST_HELP* %.idx12.val.idx.val, i32 0, i32 1
+  %.idx12.val.idx.val.idx.val = load i8** %.idx12.val.idx.val.idx, align 4
+  %2 = bitcast i8* %.idx12.val.idx.val.idx.val to %struct.LIST_HELP*
+  tail call void @list_DeleteWithElement(%struct.LIST_HELP* %2, void (i8*)* @string_StringFree) #1
+  %cmp.i5.i = icmp eq i8* %Proof.addr.0.idx.val, null
+  br i1 %cmp.i5.i, label %list_Delete.exit, label %while.body.i.preheader
+
+while.body.i.preheader:                           ; preds = %for.body
+  %3 = bitcast i8* %Proof.addr.0.idx.val to %struct.LIST_HELP*
+  br label %while.body.i
+
+while.body.i:                                     ; preds = %while.body.i.preheader, %while.body.i
+  %L.addr.06.i = phi %struct.LIST_HELP* [ %L.addr.0.idx.val.i, %while.body.i ], [ %3, %while.body.i.preheader ]
+  %L.addr.0.idx.i = getelementptr %struct.LIST_HELP* %L.addr.06.i, i32 0, i32 0
+  %L.addr.0.idx.val.i = load %struct.LIST_HELP** %L.addr.0.idx.i, align 4
+  %4 = bitcast %struct.LIST_HELP* %L.addr.06.i to i8*
+  %5 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %5, i32 0, i32 4
+  %6 = load i32* %total_size.i.i.i13, align 4
+  %7 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14 = add i32 %7, %6
+  store i32 %add24.i.i.i14, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %5, i32 0, i32 0
+  %8 = load i8** %free.i.i.i15, align 4
+  %.c.i.i16 = bitcast i8* %8 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16, %struct.LIST_HELP** %L.addr.0.idx.i, align 4
+  %9 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 0
+  store i8* %4, i8** %free27.i.i.i17, align 4
+  %cmp.i.i = icmp eq %struct.LIST_HELP* %L.addr.0.idx.val.i, null
+  br i1 %cmp.i.i, label %list_Delete.exit, label %while.body.i
+
+list_Delete.exit:                                 ; preds = %while.body.i, %for.body
+  %L.idx.i = getelementptr %struct.LIST_HELP* %Proof.addr.019, i32 0, i32 0
+  %L.idx.val.i = load %struct.LIST_HELP** %L.idx.i, align 4
+  %10 = bitcast %struct.LIST_HELP* %Proof.addr.019 to i8*
+  %11 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %11, i32 0, i32 4
+  %12 = load i32* %total_size.i.i.i, align 4
+  %13 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %13, %12
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %11, i32 0, i32 0
+  %14 = load i8** %free.i.i.i, align 4
+  %.c.i.i = bitcast i8* %14 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i, %struct.LIST_HELP** %L.idx.i, align 4
+  %15 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %15, i32 0, i32 0
+  store i8* %10, i8** %free27.i.i.i, align 4
+  %cmp.i = icmp eq %struct.LIST_HELP* %L.idx.val.i, null
+  br i1 %cmp.i, label %for.end, label %for.body
+
+for.end:                                          ; preds = %list_Delete.exit, %entry
+  ret void
+}
+
+; Function Attrs: nounwind
+define %struct.LIST_HELP* @dfg_ProofParser(%struct._IO_FILE* %File, i32* %Flags, i32* %Precedence) #0 {
+entry:
+  store %struct._IO_FILE* %File, %struct._IO_FILE** @dfg_in, align 4
+  store i32 1, i32* @dfg_LINENUMBER, align 4
+  store i32 1, i32* @dfg_IGNORETEXT, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 false, i1* @dfg_VARDECL, align 1
+  store i32 0, i32* @dfg_IGNORE, align 4
+  store i32* %Flags, i32** @dfg_FLAGS, align 4
+  store i32* %Precedence, i32** @dfg_PRECEDENCE, align 4
+  store i8* null, i8** @dfg_DESC.0, align 4
+  store i8* null, i8** @dfg_DESC.1, align 4
+  store i8* null, i8** @dfg_DESC.2, align 4
+  store i8* null, i8** @dfg_DESC.3, align 4
+  store i32 2, i32* @dfg_DESC.4, align 4
+  store i8* null, i8** @dfg_DESC.5, align 4
+  store i8* null, i8** @dfg_DESC.6, align 4
+  %call1 = tail call i32 @dfg_parse()
+  %0 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i13.i = icmp eq %struct.LIST_HELP* %0, null
+  br i1 %cmp.i13.i, label %dfg_SymCleanUp.exit, label %while.body.lr.ph.i
+
+while.body.lr.ph.i:                               ; preds = %entry
+  %1 = load i32* @symbol_TYPESTATBITS, align 4
+  br label %while.body.i
+
+while.body.i:                                     ; preds = %if.end.i42, %while.body.lr.ph.i
+  %2 = phi %struct.LIST_HELP* [ %0, %while.body.lr.ph.i ], [ %L.idx.val.i.i35, %if.end.i42 ]
+  %.idx.i30 = getelementptr %struct.LIST_HELP* %2, i32 0, i32 1
+  %.idx.val.i31 = load i8** %.idx.i30, align 4
+  %symbol.i = bitcast i8* %.idx.val.i31 to i32*
+  %3 = load i32* %symbol.i, align 4
+  %arity.i = getelementptr inbounds i8* %.idx.val.i31, i32 8
+  %4 = bitcast i8* %arity.i to i32*
+  %5 = load i32* %4, align 4
+  %sub.i.i9.i = sub nsw i32 0, %3
+  %shr.i.i10.i = ashr i32 %sub.i.i9.i, %1
+  %6 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i11.i = getelementptr inbounds %struct.signature** %6, i32 %shr.i.i10.i
+  %7 = load %struct.signature** %arrayidx.i.i11.i, align 4
+  %arity.i12.i = getelementptr inbounds %struct.signature* %7, i32 0, i32 3
+  %8 = load i32* %arity.i12.i, align 4
+  %cmp.i32 = icmp eq i32 %5, %8
+  br i1 %cmp.i32, label %if.end.i42, label %if.then.i33
+
+if.then.i33:                                      ; preds = %while.body.i
+  store i32 %5, i32* %arity.i12.i, align 4
+  br label %if.end.i42
+
+if.end.i42:                                       ; preds = %if.then.i33, %while.body.i
+  %9 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 12), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 4
+  %10 = load i32* %total_size.i.i.i, align 4
+  %11 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %11, %10
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 0
+  %12 = load i8** %free.i.i.i, align 4
+  %.c.i.i = ptrtoint i8* %12 to i32
+  store i32 %.c.i.i, i32* %symbol.i, align 4
+  %13 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 12), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %13, i32 0, i32 0
+  store i8* %.idx.val.i31, i8** %free27.i.i.i, align 4
+  %14 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %L.idx.i.i34 = getelementptr %struct.LIST_HELP* %14, i32 0, i32 0
+  %L.idx.val.i.i35 = load %struct.LIST_HELP** %L.idx.i.i34, align 4
+  %15 = bitcast %struct.LIST_HELP* %14 to i8*
+  %16 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i36 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %16, i32 0, i32 4
+  %17 = load i32* %total_size.i.i.i.i36, align 4
+  %18 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i37 = add i32 %18, %17
+  store i32 %add24.i.i.i.i37, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i38 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %16, i32 0, i32 0
+  %19 = load i8** %free.i.i.i.i38, align 4
+  %.c.i.i.i39 = bitcast i8* %19 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i39, %struct.LIST_HELP** %L.idx.i.i34, align 4
+  %20 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i40 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %20, i32 0, i32 0
+  store i8* %15, i8** %free27.i.i.i.i40, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i35, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i.i41 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i35, null
+  br i1 %cmp.i.i41, label %dfg_SymCleanUp.exit, label %while.body.i
+
+dfg_SymCleanUp.exit:                              ; preds = %if.end.i42, %entry
+  %21 = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %22 = load %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %cmp.i.i43 = icmp eq %struct.LIST_HELP* %21, null
+  br i1 %cmp.i.i43, label %list_Nconc.exit53, label %if.end.i45
+
+if.end.i45:                                       ; preds = %dfg_SymCleanUp.exit
+  %cmp.i18.i44 = icmp eq %struct.LIST_HELP* %22, null
+  br i1 %cmp.i18.i44, label %list_Nconc.exit53.thread, label %for.cond.i50
+
+list_Nconc.exit53.thread:                         ; preds = %if.end.i45
+  store %struct.LIST_HELP* %21, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  br label %for.body
+
+for.cond.i50:                                     ; preds = %if.end.i45, %for.cond.i50
+  %List1.addr.0.i46 = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i48, %for.cond.i50 ], [ %21, %if.end.i45 ]
+  %List1.addr.0.idx15.i47 = getelementptr %struct.LIST_HELP* %List1.addr.0.i46, i32 0, i32 0
+  %List1.addr.0.idx15.val.i48 = load %struct.LIST_HELP** %List1.addr.0.idx15.i47, align 4
+  %cmp.i16.i49 = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i48, null
+  br i1 %cmp.i16.i49, label %for.end.i51, label %for.cond.i50
+
+for.end.i51:                                      ; preds = %for.cond.i50
+  store %struct.LIST_HELP* %22, %struct.LIST_HELP** %List1.addr.0.idx15.i47, align 4
+  br label %list_Nconc.exit53
+
+list_Nconc.exit53:                                ; preds = %dfg_SymCleanUp.exit, %for.end.i51
+  %retval.0.i52 = phi %struct.LIST_HELP* [ %21, %for.end.i51 ], [ %22, %dfg_SymCleanUp.exit ]
+  store %struct.LIST_HELP* %retval.0.i52, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %cmp.i81122 = icmp eq %struct.LIST_HELP* %retval.0.i52, null
+  br i1 %cmp.i81122, label %for.end, label %for.body
+
+for.body:                                         ; preds = %list_Nconc.exit53, %list_Nconc.exit53.thread, %for.inc
+  %scan.0123 = phi %struct.LIST_HELP* [ %scan.0.idx24.val, %for.inc ], [ %21, %list_Nconc.exit53.thread ], [ %retval.0.i52, %list_Nconc.exit53 ]
+  %scan.0.idx = getelementptr %struct.LIST_HELP* %scan.0123, i32 0, i32 1
+  %scan.0.idx.val = load i8** %scan.0.idx, align 4
+  %.idx = bitcast i8* %scan.0.idx.val to %struct.LIST_HELP**
+  %.idx.val = load %struct.LIST_HELP** %.idx, align 4
+  %.idx25 = getelementptr i8* %scan.0.idx.val, i32 4
+  %23 = bitcast i8* %.idx25 to i8**
+  %.idx25.val = load i8** %23, align 4
+  %cmp = icmp eq i8* %.idx25.val, null
+  br i1 %cmp, label %if.then, label %if.else
+
+if.then:                                          ; preds = %for.body
+  %24 = bitcast %struct.LIST_HELP* %.idx.val to %struct.term*
+  tail call void @term_Delete(%struct.term* %24) #1
+  %25 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i113 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %25, i32 0, i32 4
+  %26 = load i32* %total_size.i.i.i113, align 4
+  %27 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i114 = add i32 %27, %26
+  store i32 %add24.i.i.i114, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i115 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %25, i32 0, i32 0
+  %28 = load i8** %free.i.i.i115, align 4
+  %.c.i.i116 = bitcast i8* %28 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i116, %struct.LIST_HELP** %.idx, align 4
+  %29 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i117 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %29, i32 0, i32 0
+  store i8* %scan.0.idx.val, i8** %free27.i.i.i117, align 4
+  store i8* null, i8** %scan.0.idx, align 4
+  br label %for.inc
+
+if.else:                                          ; preds = %for.body
+  %30 = bitcast %struct.LIST_HELP* %.idx.val to i8*
+  %call.i.i = tail call i8* @memory_Malloc(i32 8) #1
+  %31 = bitcast i8* %call.i.i to %struct.LIST_HELP*
+  %car.i.i = getelementptr inbounds i8* %call.i.i, i32 4
+  %32 = bitcast i8* %car.i.i to i8**
+  store i8* inttoptr (i32 16 to i8*), i8** %32, align 4
+  %cdr.i.i = bitcast i8* %call.i.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** %cdr.i.i, align 4
+  %call.i118 = tail call i8* @memory_Malloc(i32 8) #1
+  %33 = bitcast i8* %call.i118 to %struct.LIST_HELP*
+  %car.i119 = getelementptr inbounds i8* %call.i118, i32 4
+  %34 = bitcast i8* %car.i119 to i8**
+  store i8* null, i8** %34, align 4
+  %cdr.i120 = bitcast i8* %call.i118 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %31, %struct.LIST_HELP** %cdr.i120, align 4
+  %call.i110 = tail call i8* @memory_Malloc(i32 8) #1
+  %35 = bitcast i8* %call.i110 to %struct.LIST_HELP*
+  %car.i111 = getelementptr inbounds i8* %call.i110, i32 4
+  %36 = bitcast i8* %car.i111 to i8**
+  store i8* null, i8** %36, align 4
+  %cdr.i112 = bitcast i8* %call.i110 to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %33, %struct.LIST_HELP** %cdr.i112, align 4
+  %call.i = tail call i8* @memory_Malloc(i32 8) #1
+  %37 = bitcast i8* %call.i to %struct.LIST_HELP*
+  %car.i = getelementptr inbounds i8* %call.i, i32 4
+  %38 = bitcast i8* %car.i to i8**
+  store i8* %30, i8** %38, align 4
+  %cdr.i109 = bitcast i8* %call.i to %struct.LIST_HELP**
+  store %struct.LIST_HELP* %35, %struct.LIST_HELP** %cdr.i109, align 4
+  store %struct.LIST_HELP* %37, %struct.LIST_HELP** %.idx, align 4
+  br label %for.inc
+
+for.inc:                                          ; preds = %if.then, %if.else
+  %scan.0.idx24 = getelementptr %struct.LIST_HELP* %scan.0123, i32 0, i32 0
+  %scan.0.idx24.val = load %struct.LIST_HELP** %scan.0.idx24, align 4
+  %cmp.i81 = icmp eq %struct.LIST_HELP* %scan.0.idx24.val, null
+  br i1 %cmp.i81, label %for.cond.for.end_crit_edge, label %for.body
+
+for.cond.for.end_crit_edge:                       ; preds = %for.inc
+  %.pre = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  br label %for.end
+
+for.end:                                          ; preds = %for.cond.for.end_crit_edge, %list_Nconc.exit53
+  %39 = phi %struct.LIST_HELP* [ %.pre, %for.cond.for.end_crit_edge ], [ null, %list_Nconc.exit53 ]
+  %call14 = tail call %struct.LIST_HELP* @list_PointerDeleteElement(%struct.LIST_HELP* %39, i8* null) #1
+  store %struct.LIST_HELP* %call14, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %40 = load %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  %cmp.i18.i82 = icmp eq %struct.LIST_HELP* %40, null
+  br i1 %cmp.i18.i82, label %dfg_DeleteFormulaPairList.exit108, label %for.body.i91
+
+for.body.i91:                                     ; preds = %for.end, %if.end.i106
+  %FormulaPairs.addr.019.i83 = phi %struct.LIST_HELP* [ %L.idx.val.i.i99, %if.end.i106 ], [ %40, %for.end ]
+  %FormulaPairs.addr.0.idx.i84 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i83, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i85 = load i8** %FormulaPairs.addr.0.idx.i84, align 4
+  %.idx.i86 = bitcast i8* %FormulaPairs.addr.0.idx.val.i85 to %struct.LIST_HELP**
+  %.idx.val.i87 = load %struct.LIST_HELP** %.idx.i86, align 4
+  %41 = bitcast %struct.LIST_HELP* %.idx.val.i87 to %struct.term*
+  tail call void @term_Delete(%struct.term* %41) #1
+  %.idx12.i88 = getelementptr i8* %FormulaPairs.addr.0.idx.val.i85, i32 4
+  %42 = bitcast i8* %.idx12.i88 to i8**
+  %.idx12.val.i89 = load i8** %42, align 4
+  %cmp.i90 = icmp eq i8* %.idx12.val.i89, null
+  br i1 %cmp.i90, label %if.end.i106, label %if.then.i92
+
+if.then.i92:                                      ; preds = %for.body.i91
+  tail call void @string_StringFree(i8* %.idx12.val.i89) #1
+  br label %if.end.i106
+
+if.end.i106:                                      ; preds = %if.then.i92, %for.body.i91
+  %43 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i93 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %43, i32 0, i32 4
+  %44 = load i32* %total_size.i.i.i13.i93, align 4
+  %45 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i94 = add i32 %45, %44
+  store i32 %add24.i.i.i14.i94, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i95 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %43, i32 0, i32 0
+  %46 = load i8** %free.i.i.i15.i95, align 4
+  %.c.i.i16.i96 = bitcast i8* %46 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i96, %struct.LIST_HELP** %.idx.i86, align 4
+  %47 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i97 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %47, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i85, i8** %free27.i.i.i17.i97, align 4
+  %L.idx.i.i98 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i83, i32 0, i32 0
+  %L.idx.val.i.i99 = load %struct.LIST_HELP** %L.idx.i.i98, align 4
+  %48 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i83 to i8*
+  %49 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i100 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %49, i32 0, i32 4
+  %50 = load i32* %total_size.i.i.i.i100, align 4
+  %51 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i101 = add i32 %51, %50
+  store i32 %add24.i.i.i.i101, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i102 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %49, i32 0, i32 0
+  %52 = load i8** %free.i.i.i.i102, align 4
+  %.c.i.i.i103 = bitcast i8* %52 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i103, %struct.LIST_HELP** %L.idx.i.i98, align 4
+  %53 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i104 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %53, i32 0, i32 0
+  store i8* %48, i8** %free27.i.i.i.i104, align 4
+  %cmp.i.i105 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i99, null
+  br i1 %cmp.i.i105, label %dfg_DeleteFormulaPairList.exit108, label %for.body.i91
+
+dfg_DeleteFormulaPairList.exit108:                ; preds = %if.end.i106, %for.end
+  %54 = load %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  %cmp.i18.i54 = icmp eq %struct.LIST_HELP* %54, null
+  br i1 %cmp.i18.i54, label %dfg_DeleteFormulaPairList.exit80, label %for.body.i63
+
+for.body.i63:                                     ; preds = %dfg_DeleteFormulaPairList.exit108, %if.end.i78
+  %FormulaPairs.addr.019.i55 = phi %struct.LIST_HELP* [ %L.idx.val.i.i71, %if.end.i78 ], [ %54, %dfg_DeleteFormulaPairList.exit108 ]
+  %FormulaPairs.addr.0.idx.i56 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i55, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i57 = load i8** %FormulaPairs.addr.0.idx.i56, align 4
+  %.idx.i58 = bitcast i8* %FormulaPairs.addr.0.idx.val.i57 to %struct.LIST_HELP**
+  %.idx.val.i59 = load %struct.LIST_HELP** %.idx.i58, align 4
+  %55 = bitcast %struct.LIST_HELP* %.idx.val.i59 to %struct.term*
+  tail call void @term_Delete(%struct.term* %55) #1
+  %.idx12.i60 = getelementptr i8* %FormulaPairs.addr.0.idx.val.i57, i32 4
+  %56 = bitcast i8* %.idx12.i60 to i8**
+  %.idx12.val.i61 = load i8** %56, align 4
+  %cmp.i62 = icmp eq i8* %.idx12.val.i61, null
+  br i1 %cmp.i62, label %if.end.i78, label %if.then.i64
+
+if.then.i64:                                      ; preds = %for.body.i63
+  tail call void @string_StringFree(i8* %.idx12.val.i61) #1
+  br label %if.end.i78
+
+if.end.i78:                                       ; preds = %if.then.i64, %for.body.i63
+  %57 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i65 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %57, i32 0, i32 4
+  %58 = load i32* %total_size.i.i.i13.i65, align 4
+  %59 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i66 = add i32 %59, %58
+  store i32 %add24.i.i.i14.i66, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i67 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %57, i32 0, i32 0
+  %60 = load i8** %free.i.i.i15.i67, align 4
+  %.c.i.i16.i68 = bitcast i8* %60 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i68, %struct.LIST_HELP** %.idx.i58, align 4
+  %61 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i69 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %61, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i57, i8** %free27.i.i.i17.i69, align 4
+  %L.idx.i.i70 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i55, i32 0, i32 0
+  %L.idx.val.i.i71 = load %struct.LIST_HELP** %L.idx.i.i70, align 4
+  %62 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i55 to i8*
+  %63 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i72 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %63, i32 0, i32 4
+  %64 = load i32* %total_size.i.i.i.i72, align 4
+  %65 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i73 = add i32 %65, %64
+  store i32 %add24.i.i.i.i73, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i74 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %63, i32 0, i32 0
+  %66 = load i8** %free.i.i.i.i74, align 4
+  %.c.i.i.i75 = bitcast i8* %66 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i75, %struct.LIST_HELP** %L.idx.i.i70, align 4
+  %67 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i76 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %67, i32 0, i32 0
+  store i8* %62, i8** %free27.i.i.i.i76, align 4
+  %cmp.i.i77 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i71, null
+  br i1 %cmp.i.i77, label %dfg_DeleteFormulaPairList.exit80, label %for.body.i63
+
+dfg_DeleteFormulaPairList.exit80:                 ; preds = %if.end.i78, %dfg_DeleteFormulaPairList.exit108
+  %68 = load %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  %cmp.i18.i26 = icmp eq %struct.LIST_HELP* %68, null
+  br i1 %cmp.i18.i26, label %dfg_DeleteFormulaPairList.exit, label %for.body.i
+
+for.body.i:                                       ; preds = %dfg_DeleteFormulaPairList.exit80, %if.end.i28
+  %FormulaPairs.addr.019.i = phi %struct.LIST_HELP* [ %L.idx.val.i.i, %if.end.i28 ], [ %68, %dfg_DeleteFormulaPairList.exit80 ]
+  %FormulaPairs.addr.0.idx.i = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i = load i8** %FormulaPairs.addr.0.idx.i, align 4
+  %.idx.i = bitcast i8* %FormulaPairs.addr.0.idx.val.i to %struct.LIST_HELP**
+  %.idx.val.i = load %struct.LIST_HELP** %.idx.i, align 4
+  %69 = bitcast %struct.LIST_HELP* %.idx.val.i to %struct.term*
+  tail call void @term_Delete(%struct.term* %69) #1
+  %.idx12.i = getelementptr i8* %FormulaPairs.addr.0.idx.val.i, i32 4
+  %70 = bitcast i8* %.idx12.i to i8**
+  %.idx12.val.i = load i8** %70, align 4
+  %cmp.i = icmp eq i8* %.idx12.val.i, null
+  br i1 %cmp.i, label %if.end.i28, label %if.then.i
+
+if.then.i:                                        ; preds = %for.body.i
+  tail call void @string_StringFree(i8* %.idx12.val.i) #1
+  br label %if.end.i28
+
+if.end.i28:                                       ; preds = %if.then.i, %for.body.i
+  %71 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %71, i32 0, i32 4
+  %72 = load i32* %total_size.i.i.i13.i, align 4
+  %73 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i = add i32 %73, %72
+  store i32 %add24.i.i.i14.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %71, i32 0, i32 0
+  %74 = load i8** %free.i.i.i15.i, align 4
+  %.c.i.i16.i = bitcast i8* %74 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i, %struct.LIST_HELP** %.idx.i, align 4
+  %75 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %75, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i, i8** %free27.i.i.i17.i, align 4
+  %L.idx.i.i = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i, i32 0, i32 0
+  %L.idx.val.i.i = load %struct.LIST_HELP** %L.idx.i.i, align 4
+  %76 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i to i8*
+  %77 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %77, i32 0, i32 4
+  %78 = load i32* %total_size.i.i.i.i, align 4
+  %79 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i = add i32 %79, %78
+  store i32 %add24.i.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %77, i32 0, i32 0
+  %80 = load i8** %free.i.i.i.i, align 4
+  %.c.i.i.i = bitcast i8* %80 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i, %struct.LIST_HELP** %L.idx.i.i, align 4
+  %81 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %81, i32 0, i32 0
+  store i8* %76, i8** %free27.i.i.i.i, align 4
+  %cmp.i.i27 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i, null
+  br i1 %cmp.i.i27, label %dfg_DeleteFormulaPairList.exit, label %for.body.i
+
+dfg_DeleteFormulaPairList.exit:                   ; preds = %if.end.i28, %dfg_DeleteFormulaPairList.exit80
+  %82 = load %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  tail call void @list_DeleteWithElement(%struct.LIST_HELP* %82, void (i8*)* bitcast (void (%struct.term*)* @term_Delete to void (i8*)*)) #1
+  %83 = load %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  %call15 = tail call %struct.LIST_HELP* @list_NReverse(%struct.LIST_HELP* %83) #1
+  store %struct.LIST_HELP* %call15, %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  %84 = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %cmp.i.i = icmp eq %struct.LIST_HELP* %84, null
+  br i1 %cmp.i.i, label %list_Nconc.exit, label %if.end.i
+
+if.end.i:                                         ; preds = %dfg_DeleteFormulaPairList.exit
+  %cmp.i18.i = icmp eq %struct.LIST_HELP* %call15, null
+  br i1 %cmp.i18.i, label %list_Nconc.exit, label %for.cond.i
+
+for.cond.i:                                       ; preds = %if.end.i, %for.cond.i
+  %List1.addr.0.i = phi %struct.LIST_HELP* [ %List1.addr.0.idx15.val.i, %for.cond.i ], [ %84, %if.end.i ]
+  %List1.addr.0.idx15.i = getelementptr %struct.LIST_HELP* %List1.addr.0.i, i32 0, i32 0
+  %List1.addr.0.idx15.val.i = load %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  %cmp.i16.i = icmp eq %struct.LIST_HELP* %List1.addr.0.idx15.val.i, null
+  br i1 %cmp.i16.i, label %for.end.i, label %for.cond.i
+
+for.end.i:                                        ; preds = %for.cond.i
+  store %struct.LIST_HELP* %call15, %struct.LIST_HELP** %List1.addr.0.idx15.i, align 4
+  br label %list_Nconc.exit
+
+list_Nconc.exit:                                  ; preds = %dfg_DeleteFormulaPairList.exit, %if.end.i, %for.end.i
+  %retval.0.i = phi %struct.LIST_HELP* [ %84, %for.end.i ], [ %call15, %dfg_DeleteFormulaPairList.exit ], [ %84, %if.end.i ]
+  store %struct.LIST_HELP* %retval.0.i, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  ret %struct.LIST_HELP* %retval.0.i
+}
+
+; Function Attrs: nounwind
+define void @dfg_DeleteFormulaPairList(%struct.LIST_HELP* %FormulaPairs) #0 {
+entry:
+  %cmp.i18 = icmp eq %struct.LIST_HELP* %FormulaPairs, null
+  br i1 %cmp.i18, label %for.end, label %for.body
+
+for.body:                                         ; preds = %entry, %if.end
+  %FormulaPairs.addr.019 = phi %struct.LIST_HELP* [ %L.idx.val.i, %if.end ], [ %FormulaPairs, %entry ]
+  %FormulaPairs.addr.0.idx = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val = load i8** %FormulaPairs.addr.0.idx, align 4
+  %.idx = bitcast i8* %FormulaPairs.addr.0.idx.val to %struct.LIST_HELP**
+  %.idx.val = load %struct.LIST_HELP** %.idx, align 4
+  %0 = bitcast %struct.LIST_HELP* %.idx.val to %struct.term*
+  tail call void @term_Delete(%struct.term* %0) #1
+  %.idx12 = getelementptr i8* %FormulaPairs.addr.0.idx.val, i32 4
+  %1 = bitcast i8* %.idx12 to i8**
+  %.idx12.val = load i8** %1, align 4
+  %cmp = icmp eq i8* %.idx12.val, null
+  br i1 %cmp, label %if.end, label %if.then
+
+if.then:                                          ; preds = %for.body
+  tail call void @string_StringFree(i8* %.idx12.val) #1
+  br label %if.end
+
+if.end:                                           ; preds = %for.body, %if.then
+  %2 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %2, i32 0, i32 4
+  %3 = load i32* %total_size.i.i.i13, align 4
+  %4 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14 = add i32 %4, %3
+  store i32 %add24.i.i.i14, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %2, i32 0, i32 0
+  %5 = load i8** %free.i.i.i15, align 4
+  %.c.i.i16 = bitcast i8* %5 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16, %struct.LIST_HELP** %.idx, align 4
+  %6 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %6, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val, i8** %free27.i.i.i17, align 4
+  %L.idx.i = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019, i32 0, i32 0
+  %L.idx.val.i = load %struct.LIST_HELP** %L.idx.i, align 4
+  %7 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019 to i8*
+  %8 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %8, i32 0, i32 4
+  %9 = load i32* %total_size.i.i.i, align 4
+  %10 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %10, %9
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %8, i32 0, i32 0
+  %11 = load i8** %free.i.i.i, align 4
+  %.c.i.i = bitcast i8* %11 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i, %struct.LIST_HELP** %L.idx.i, align 4
+  %12 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %12, i32 0, i32 0
+  store i8* %7, i8** %free27.i.i.i, align 4
+  %cmp.i = icmp eq %struct.LIST_HELP* %L.idx.val.i, null
+  br i1 %cmp.i, label %for.end, label %for.body
+
+for.end:                                          ; preds = %if.end, %entry
+  ret void
+}
+
+; Function Attrs: nounwind
+define %struct.LIST_HELP* @dfg_TermParser(%struct._IO_FILE* %File, i32* %Flags, i32* %Precedence) #0 {
+entry:
+  store %struct._IO_FILE* %File, %struct._IO_FILE** @dfg_in, align 4
+  store i32 1, i32* @dfg_LINENUMBER, align 4
+  store i32 1, i32* @dfg_IGNORETEXT, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_USERPRECEDENCE, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  store %struct.LIST_HELP* null, %struct.LIST_HELP** @dfg_VARLIST, align 4
+  store i1 false, i1* @dfg_VARDECL, align 1
+  store i32 0, i32* @dfg_IGNORE, align 4
+  store i32* %Flags, i32** @dfg_FLAGS, align 4
+  store i32* %Precedence, i32** @dfg_PRECEDENCE, align 4
+  store i8* null, i8** @dfg_DESC.0, align 4
+  store i8* null, i8** @dfg_DESC.1, align 4
+  store i8* null, i8** @dfg_DESC.2, align 4
+  store i8* null, i8** @dfg_DESC.3, align 4
+  store i32 2, i32* @dfg_DESC.4, align 4
+  store i8* null, i8** @dfg_DESC.5, align 4
+  store i8* null, i8** @dfg_DESC.6, align 4
+  %call1 = tail call i32 @dfg_parse()
+  %0 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i13.i = icmp eq %struct.LIST_HELP* %0, null
+  br i1 %cmp.i13.i, label %dfg_SymCleanUp.exit, label %while.body.lr.ph.i
+
+while.body.lr.ph.i:                               ; preds = %entry
+  %1 = load i32* @symbol_TYPESTATBITS, align 4
+  br label %while.body.i
+
+while.body.i:                                     ; preds = %if.end.i14, %while.body.lr.ph.i
+  %2 = phi %struct.LIST_HELP* [ %0, %while.body.lr.ph.i ], [ %L.idx.val.i.i7, %if.end.i14 ]
+  %.idx.i2 = getelementptr %struct.LIST_HELP* %2, i32 0, i32 1
+  %.idx.val.i3 = load i8** %.idx.i2, align 4
+  %symbol.i = bitcast i8* %.idx.val.i3 to i32*
+  %3 = load i32* %symbol.i, align 4
+  %arity.i = getelementptr inbounds i8* %.idx.val.i3, i32 8
+  %4 = bitcast i8* %arity.i to i32*
+  %5 = load i32* %4, align 4
+  %sub.i.i9.i = sub nsw i32 0, %3
+  %shr.i.i10.i = ashr i32 %sub.i.i9.i, %1
+  %6 = load %struct.signature*** @symbol_SIGNATURE, align 4
+  %arrayidx.i.i11.i = getelementptr inbounds %struct.signature** %6, i32 %shr.i.i10.i
+  %7 = load %struct.signature** %arrayidx.i.i11.i, align 4
+  %arity.i12.i = getelementptr inbounds %struct.signature* %7, i32 0, i32 3
+  %8 = load i32* %arity.i12.i, align 4
+  %cmp.i4 = icmp eq i32 %5, %8
+  br i1 %cmp.i4, label %if.end.i14, label %if.then.i5
+
+if.then.i5:                                       ; preds = %while.body.i
+  store i32 %5, i32* %arity.i12.i, align 4
+  br label %if.end.i14
+
+if.end.i14:                                       ; preds = %if.then.i5, %while.body.i
+  %9 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 12), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 4
+  %10 = load i32* %total_size.i.i.i, align 4
+  %11 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %11, %10
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %9, i32 0, i32 0
+  %12 = load i8** %free.i.i.i, align 4
+  %.c.i.i = ptrtoint i8* %12 to i32
+  store i32 %.c.i.i, i32* %symbol.i, align 4
+  %13 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 12), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %13, i32 0, i32 0
+  store i8* %.idx.val.i3, i8** %free27.i.i.i, align 4
+  %14 = load %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %L.idx.i.i6 = getelementptr %struct.LIST_HELP* %14, i32 0, i32 0
+  %L.idx.val.i.i7 = load %struct.LIST_HELP** %L.idx.i.i6, align 4
+  %15 = bitcast %struct.LIST_HELP* %14 to i8*
+  %16 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i8 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %16, i32 0, i32 4
+  %17 = load i32* %total_size.i.i.i.i8, align 4
+  %18 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i9 = add i32 %18, %17
+  store i32 %add24.i.i.i.i9, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i10 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %16, i32 0, i32 0
+  %19 = load i8** %free.i.i.i.i10, align 4
+  %.c.i.i.i11 = bitcast i8* %19 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i11, %struct.LIST_HELP** %L.idx.i.i6, align 4
+  %20 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i12 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %20, i32 0, i32 0
+  store i8* %15, i8** %free27.i.i.i.i12, align 4
+  store %struct.LIST_HELP* %L.idx.val.i.i7, %struct.LIST_HELP** @dfg_SYMBOLLIST, align 4
+  %cmp.i.i13 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i7, null
+  br i1 %cmp.i.i13, label %dfg_SymCleanUp.exit, label %while.body.i
+
+dfg_SymCleanUp.exit:                              ; preds = %if.end.i14, %entry
+  %21 = load %struct.LIST_HELP** @dfg_AXCLAUSES, align 4
+  %cmp.i18.i15 = icmp eq %struct.LIST_HELP* %21, null
+  br i1 %cmp.i18.i15, label %dfg_DeleteFormulaPairList.exit40, label %for.body.i24
+
+for.body.i24:                                     ; preds = %dfg_SymCleanUp.exit, %if.end.i39
+  %FormulaPairs.addr.019.i16 = phi %struct.LIST_HELP* [ %L.idx.val.i.i32, %if.end.i39 ], [ %21, %dfg_SymCleanUp.exit ]
+  %FormulaPairs.addr.0.idx.i17 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i16, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i18 = load i8** %FormulaPairs.addr.0.idx.i17, align 4
+  %.idx.i19 = bitcast i8* %FormulaPairs.addr.0.idx.val.i18 to %struct.LIST_HELP**
+  %.idx.val.i20 = load %struct.LIST_HELP** %.idx.i19, align 4
+  %22 = bitcast %struct.LIST_HELP* %.idx.val.i20 to %struct.term*
+  tail call void @term_Delete(%struct.term* %22) #1
+  %.idx12.i21 = getelementptr i8* %FormulaPairs.addr.0.idx.val.i18, i32 4
+  %23 = bitcast i8* %.idx12.i21 to i8**
+  %.idx12.val.i22 = load i8** %23, align 4
+  %cmp.i23 = icmp eq i8* %.idx12.val.i22, null
+  br i1 %cmp.i23, label %if.end.i39, label %if.then.i25
+
+if.then.i25:                                      ; preds = %for.body.i24
+  tail call void @string_StringFree(i8* %.idx12.val.i22) #1
+  br label %if.end.i39
+
+if.end.i39:                                       ; preds = %if.then.i25, %for.body.i24
+  %24 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i26 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %24, i32 0, i32 4
+  %25 = load i32* %total_size.i.i.i13.i26, align 4
+  %26 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i27 = add i32 %26, %25
+  store i32 %add24.i.i.i14.i27, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i28 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %24, i32 0, i32 0
+  %27 = load i8** %free.i.i.i15.i28, align 4
+  %.c.i.i16.i29 = bitcast i8* %27 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i29, %struct.LIST_HELP** %.idx.i19, align 4
+  %28 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i30 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %28, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i18, i8** %free27.i.i.i17.i30, align 4
+  %L.idx.i.i31 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i16, i32 0, i32 0
+  %L.idx.val.i.i32 = load %struct.LIST_HELP** %L.idx.i.i31, align 4
+  %29 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i16 to i8*
+  %30 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i33 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %30, i32 0, i32 4
+  %31 = load i32* %total_size.i.i.i.i33, align 4
+  %32 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i34 = add i32 %32, %31
+  store i32 %add24.i.i.i.i34, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i35 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %30, i32 0, i32 0
+  %33 = load i8** %free.i.i.i.i35, align 4
+  %.c.i.i.i36 = bitcast i8* %33 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i36, %struct.LIST_HELP** %L.idx.i.i31, align 4
+  %34 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i37 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %34, i32 0, i32 0
+  store i8* %29, i8** %free27.i.i.i.i37, align 4
+  %cmp.i.i38 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i32, null
+  br i1 %cmp.i.i38, label %dfg_DeleteFormulaPairList.exit40, label %for.body.i24
+
+dfg_DeleteFormulaPairList.exit40:                 ; preds = %if.end.i39, %dfg_SymCleanUp.exit
+  %35 = load %struct.LIST_HELP** @dfg_CONCLAUSES, align 4
+  %cmp.i18.i41 = icmp eq %struct.LIST_HELP* %35, null
+  br i1 %cmp.i18.i41, label %dfg_DeleteFormulaPairList.exit66, label %for.body.i50
+
+for.body.i50:                                     ; preds = %dfg_DeleteFormulaPairList.exit40, %if.end.i65
+  %FormulaPairs.addr.019.i42 = phi %struct.LIST_HELP* [ %L.idx.val.i.i58, %if.end.i65 ], [ %35, %dfg_DeleteFormulaPairList.exit40 ]
+  %FormulaPairs.addr.0.idx.i43 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i42, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i44 = load i8** %FormulaPairs.addr.0.idx.i43, align 4
+  %.idx.i45 = bitcast i8* %FormulaPairs.addr.0.idx.val.i44 to %struct.LIST_HELP**
+  %.idx.val.i46 = load %struct.LIST_HELP** %.idx.i45, align 4
+  %36 = bitcast %struct.LIST_HELP* %.idx.val.i46 to %struct.term*
+  tail call void @term_Delete(%struct.term* %36) #1
+  %.idx12.i47 = getelementptr i8* %FormulaPairs.addr.0.idx.val.i44, i32 4
+  %37 = bitcast i8* %.idx12.i47 to i8**
+  %.idx12.val.i48 = load i8** %37, align 4
+  %cmp.i49 = icmp eq i8* %.idx12.val.i48, null
+  br i1 %cmp.i49, label %if.end.i65, label %if.then.i51
+
+if.then.i51:                                      ; preds = %for.body.i50
+  tail call void @string_StringFree(i8* %.idx12.val.i48) #1
+  br label %if.end.i65
+
+if.end.i65:                                       ; preds = %if.then.i51, %for.body.i50
+  %38 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i52 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %38, i32 0, i32 4
+  %39 = load i32* %total_size.i.i.i13.i52, align 4
+  %40 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i53 = add i32 %40, %39
+  store i32 %add24.i.i.i14.i53, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i54 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %38, i32 0, i32 0
+  %41 = load i8** %free.i.i.i15.i54, align 4
+  %.c.i.i16.i55 = bitcast i8* %41 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i55, %struct.LIST_HELP** %.idx.i45, align 4
+  %42 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i56 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %42, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i44, i8** %free27.i.i.i17.i56, align 4
+  %L.idx.i.i57 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i42, i32 0, i32 0
+  %L.idx.val.i.i58 = load %struct.LIST_HELP** %L.idx.i.i57, align 4
+  %43 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i42 to i8*
+  %44 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i59 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %44, i32 0, i32 4
+  %45 = load i32* %total_size.i.i.i.i59, align 4
+  %46 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i60 = add i32 %46, %45
+  store i32 %add24.i.i.i.i60, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i61 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %44, i32 0, i32 0
+  %47 = load i8** %free.i.i.i.i61, align 4
+  %.c.i.i.i62 = bitcast i8* %47 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i62, %struct.LIST_HELP** %L.idx.i.i57, align 4
+  %48 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i63 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %48, i32 0, i32 0
+  store i8* %43, i8** %free27.i.i.i.i63, align 4
+  %cmp.i.i64 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i58, null
+  br i1 %cmp.i.i64, label %dfg_DeleteFormulaPairList.exit66, label %for.body.i50
+
+dfg_DeleteFormulaPairList.exit66:                 ; preds = %if.end.i65, %dfg_DeleteFormulaPairList.exit40
+  %49 = load %struct.LIST_HELP** @dfg_AXIOMLIST, align 4
+  %cmp.i18.i67 = icmp eq %struct.LIST_HELP* %49, null
+  br i1 %cmp.i18.i67, label %dfg_DeleteFormulaPairList.exit92, label %for.body.i76
+
+for.body.i76:                                     ; preds = %dfg_DeleteFormulaPairList.exit66, %if.end.i91
+  %FormulaPairs.addr.019.i68 = phi %struct.LIST_HELP* [ %L.idx.val.i.i84, %if.end.i91 ], [ %49, %dfg_DeleteFormulaPairList.exit66 ]
+  %FormulaPairs.addr.0.idx.i69 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i68, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i70 = load i8** %FormulaPairs.addr.0.idx.i69, align 4
+  %.idx.i71 = bitcast i8* %FormulaPairs.addr.0.idx.val.i70 to %struct.LIST_HELP**
+  %.idx.val.i72 = load %struct.LIST_HELP** %.idx.i71, align 4
+  %50 = bitcast %struct.LIST_HELP* %.idx.val.i72 to %struct.term*
+  tail call void @term_Delete(%struct.term* %50) #1
+  %.idx12.i73 = getelementptr i8* %FormulaPairs.addr.0.idx.val.i70, i32 4
+  %51 = bitcast i8* %.idx12.i73 to i8**
+  %.idx12.val.i74 = load i8** %51, align 4
+  %cmp.i75 = icmp eq i8* %.idx12.val.i74, null
+  br i1 %cmp.i75, label %if.end.i91, label %if.then.i77
+
+if.then.i77:                                      ; preds = %for.body.i76
+  tail call void @string_StringFree(i8* %.idx12.val.i74) #1
+  br label %if.end.i91
+
+if.end.i91:                                       ; preds = %if.then.i77, %for.body.i76
+  %52 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i78 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %52, i32 0, i32 4
+  %53 = load i32* %total_size.i.i.i13.i78, align 4
+  %54 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i79 = add i32 %54, %53
+  store i32 %add24.i.i.i14.i79, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i80 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %52, i32 0, i32 0
+  %55 = load i8** %free.i.i.i15.i80, align 4
+  %.c.i.i16.i81 = bitcast i8* %55 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i81, %struct.LIST_HELP** %.idx.i71, align 4
+  %56 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i82 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %56, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i70, i8** %free27.i.i.i17.i82, align 4
+  %L.idx.i.i83 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i68, i32 0, i32 0
+  %L.idx.val.i.i84 = load %struct.LIST_HELP** %L.idx.i.i83, align 4
+  %57 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i68 to i8*
+  %58 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i85 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %58, i32 0, i32 4
+  %59 = load i32* %total_size.i.i.i.i85, align 4
+  %60 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i86 = add i32 %60, %59
+  store i32 %add24.i.i.i.i86, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i87 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %58, i32 0, i32 0
+  %61 = load i8** %free.i.i.i.i87, align 4
+  %.c.i.i.i88 = bitcast i8* %61 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i88, %struct.LIST_HELP** %L.idx.i.i83, align 4
+  %62 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i89 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %62, i32 0, i32 0
+  store i8* %57, i8** %free27.i.i.i.i89, align 4
+  %cmp.i.i90 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i84, null
+  br i1 %cmp.i.i90, label %dfg_DeleteFormulaPairList.exit92, label %for.body.i76
+
+dfg_DeleteFormulaPairList.exit92:                 ; preds = %if.end.i91, %dfg_DeleteFormulaPairList.exit66
+  %63 = load %struct.LIST_HELP** @dfg_CONJECLIST, align 4
+  %cmp.i18.i93 = icmp eq %struct.LIST_HELP* %63, null
+  br i1 %cmp.i18.i93, label %dfg_DeleteFormulaPairList.exit118, label %for.body.i102
+
+for.body.i102:                                    ; preds = %dfg_DeleteFormulaPairList.exit92, %if.end.i117
+  %FormulaPairs.addr.019.i94 = phi %struct.LIST_HELP* [ %L.idx.val.i.i110, %if.end.i117 ], [ %63, %dfg_DeleteFormulaPairList.exit92 ]
+  %FormulaPairs.addr.0.idx.i95 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i94, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i96 = load i8** %FormulaPairs.addr.0.idx.i95, align 4
+  %.idx.i97 = bitcast i8* %FormulaPairs.addr.0.idx.val.i96 to %struct.LIST_HELP**
+  %.idx.val.i98 = load %struct.LIST_HELP** %.idx.i97, align 4
+  %64 = bitcast %struct.LIST_HELP* %.idx.val.i98 to %struct.term*
+  tail call void @term_Delete(%struct.term* %64) #1
+  %.idx12.i99 = getelementptr i8* %FormulaPairs.addr.0.idx.val.i96, i32 4
+  %65 = bitcast i8* %.idx12.i99 to i8**
+  %.idx12.val.i100 = load i8** %65, align 4
+  %cmp.i101 = icmp eq i8* %.idx12.val.i100, null
+  br i1 %cmp.i101, label %if.end.i117, label %if.then.i103
+
+if.then.i103:                                     ; preds = %for.body.i102
+  tail call void @string_StringFree(i8* %.idx12.val.i100) #1
+  br label %if.end.i117
+
+if.end.i117:                                      ; preds = %if.then.i103, %for.body.i102
+  %66 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i104 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %66, i32 0, i32 4
+  %67 = load i32* %total_size.i.i.i13.i104, align 4
+  %68 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i105 = add i32 %68, %67
+  store i32 %add24.i.i.i14.i105, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i106 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %66, i32 0, i32 0
+  %69 = load i8** %free.i.i.i15.i106, align 4
+  %.c.i.i16.i107 = bitcast i8* %69 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i107, %struct.LIST_HELP** %.idx.i97, align 4
+  %70 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i108 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %70, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i96, i8** %free27.i.i.i17.i108, align 4
+  %L.idx.i.i109 = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i94, i32 0, i32 0
+  %L.idx.val.i.i110 = load %struct.LIST_HELP** %L.idx.i.i109, align 4
+  %71 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i94 to i8*
+  %72 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i111 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %72, i32 0, i32 4
+  %73 = load i32* %total_size.i.i.i.i111, align 4
+  %74 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i112 = add i32 %74, %73
+  store i32 %add24.i.i.i.i112, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i113 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %72, i32 0, i32 0
+  %75 = load i8** %free.i.i.i.i113, align 4
+  %.c.i.i.i114 = bitcast i8* %75 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i114, %struct.LIST_HELP** %L.idx.i.i109, align 4
+  %76 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i115 = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %76, i32 0, i32 0
+  store i8* %71, i8** %free27.i.i.i.i115, align 4
+  %cmp.i.i116 = icmp eq %struct.LIST_HELP* %L.idx.val.i.i110, null
+  br i1 %cmp.i.i116, label %dfg_DeleteFormulaPairList.exit118, label %for.body.i102
+
+dfg_DeleteFormulaPairList.exit118:                ; preds = %if.end.i117, %dfg_DeleteFormulaPairList.exit92
+  %77 = load %struct.LIST_HELP** @dfg_PROOFLIST, align 4
+  tail call void @dfg_DeleteProofList(%struct.LIST_HELP* %77)
+  %78 = load %struct.LIST_HELP** @dfg_SORTDECLLIST, align 4
+  %cmp.i18.i = icmp eq %struct.LIST_HELP* %78, null
+  br i1 %cmp.i18.i, label %dfg_DeleteFormulaPairList.exit, label %for.body.i
+
+for.body.i:                                       ; preds = %dfg_DeleteFormulaPairList.exit118, %if.end.i
+  %FormulaPairs.addr.019.i = phi %struct.LIST_HELP* [ %L.idx.val.i.i, %if.end.i ], [ %78, %dfg_DeleteFormulaPairList.exit118 ]
+  %FormulaPairs.addr.0.idx.i = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i, i32 0, i32 1
+  %FormulaPairs.addr.0.idx.val.i = load i8** %FormulaPairs.addr.0.idx.i, align 4
+  %.idx.i = bitcast i8* %FormulaPairs.addr.0.idx.val.i to %struct.LIST_HELP**
+  %.idx.val.i = load %struct.LIST_HELP** %.idx.i, align 4
+  %79 = bitcast %struct.LIST_HELP* %.idx.val.i to %struct.term*
+  tail call void @term_Delete(%struct.term* %79) #1
+  %.idx12.i = getelementptr i8* %FormulaPairs.addr.0.idx.val.i, i32 4
+  %80 = bitcast i8* %.idx12.i to i8**
+  %.idx12.val.i = load i8** %80, align 4
+  %cmp.i = icmp eq i8* %.idx12.val.i, null
+  br i1 %cmp.i, label %if.end.i, label %if.then.i
+
+if.then.i:                                        ; preds = %for.body.i
+  tail call void @string_StringFree(i8* %.idx12.val.i) #1
+  br label %if.end.i
+
+if.end.i:                                         ; preds = %if.then.i, %for.body.i
+  %81 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i13.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %81, i32 0, i32 4
+  %82 = load i32* %total_size.i.i.i13.i, align 4
+  %83 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i14.i = add i32 %83, %82
+  store i32 %add24.i.i.i14.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i15.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %81, i32 0, i32 0
+  %84 = load i8** %free.i.i.i15.i, align 4
+  %.c.i.i16.i = bitcast i8* %84 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i16.i, %struct.LIST_HELP** %.idx.i, align 4
+  %85 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i17.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %85, i32 0, i32 0
+  store i8* %FormulaPairs.addr.0.idx.val.i, i8** %free27.i.i.i17.i, align 4
+  %L.idx.i.i = getelementptr %struct.LIST_HELP* %FormulaPairs.addr.019.i, i32 0, i32 0
+  %L.idx.val.i.i = load %struct.LIST_HELP** %L.idx.i.i, align 4
+  %86 = bitcast %struct.LIST_HELP* %FormulaPairs.addr.019.i to i8*
+  %87 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %87, i32 0, i32 4
+  %88 = load i32* %total_size.i.i.i.i, align 4
+  %89 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i.i = add i32 %89, %88
+  store i32 %add24.i.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %87, i32 0, i32 0
+  %90 = load i8** %free.i.i.i.i, align 4
+  %.c.i.i.i = bitcast i8* %90 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i.i, %struct.LIST_HELP** %L.idx.i.i, align 4
+  %91 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %91, i32 0, i32 0
+  store i8* %86, i8** %free27.i.i.i.i, align 4
+  %cmp.i.i = icmp eq %struct.LIST_HELP* %L.idx.val.i.i, null
+  br i1 %cmp.i.i, label %dfg_DeleteFormulaPairList.exit, label %for.body.i
+
+dfg_DeleteFormulaPairList.exit:                   ; preds = %if.end.i, %dfg_DeleteFormulaPairList.exit118
+  %92 = load %struct.LIST_HELP** @dfg_TERMLIST, align 4
+  ret %struct.LIST_HELP* %92
+}
+
+; Function Attrs: nounwind
+define void @dfg_StripLabelsFromList(%struct.LIST_HELP* %FormulaPairs) #0 {
+entry:
+  %cmp.i15 = icmp eq %struct.LIST_HELP* %FormulaPairs, null
+  br i1 %cmp.i15, label %for.end, label %for.body
+
+for.body:                                         ; preds = %entry, %if.end
+  %scan.016 = phi %struct.LIST_HELP* [ %scan.0.idx12.val, %if.end ], [ %FormulaPairs, %entry ]
+  %scan.0.idx = getelementptr %struct.LIST_HELP* %scan.016, i32 0, i32 1
+  %scan.0.idx.val = load i8** %scan.0.idx, align 4
+  %.idx = bitcast i8* %scan.0.idx.val to %struct.LIST_HELP**
+  %.idx.val = load %struct.LIST_HELP** %.idx, align 4
+  %0 = bitcast %struct.LIST_HELP* %.idx.val to i8*
+  store i8* %0, i8** %scan.0.idx, align 4
+  %.idx14 = getelementptr i8* %scan.0.idx.val, i32 4
+  %1 = bitcast i8* %.idx14 to i8**
+  %.idx14.val = load i8** %1, align 4
+  %cmp = icmp eq i8* %.idx14.val, null
+  br i1 %cmp, label %if.end, label %if.then
+
+if.then:                                          ; preds = %for.body
+  tail call void @string_StringFree(i8* %.idx14.val) #1
+  br label %if.end
+
+if.end:                                           ; preds = %for.body, %if.then
+  %2 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %2, i32 0, i32 4
+  %3 = load i32* %total_size.i.i.i, align 4
+  %4 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i.i.i = add i32 %4, %3
+  store i32 %add24.i.i.i, i32* @memory_FREEDBYTES, align 4
+  %free.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %2, i32 0, i32 0
+  %5 = load i8** %free.i.i.i, align 4
+  %.c.i.i = bitcast i8* %5 to %struct.LIST_HELP*
+  store %struct.LIST_HELP* %.c.i.i, %struct.LIST_HELP** %.idx, align 4
+  %6 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i.i.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %6, i32 0, i32 0
+  store i8* %scan.0.idx.val, i8** %free27.i.i.i, align 4
+  %scan.0.idx12 = getelementptr %struct.LIST_HELP* %scan.016, i32 0, i32 0
+  %scan.0.idx12.val = load %struct.LIST_HELP** %scan.0.idx12, align 4
+  %cmp.i = icmp eq %struct.LIST_HELP* %scan.0.idx12.val, null
+  br i1 %cmp.i, label %for.end, label %for.body
+
+for.end:                                          ; preds = %if.end, %entry
+  ret void
+}
+
+declare %struct.LIST_HELP* @list_PointerDeleteDuplicates(%struct.LIST_HELP*) #2
+
+declare %struct.term* @fol_CreateQuantifier(i32, %struct.LIST_HELP*, %struct.LIST_HELP*) #2
+
+declare %struct.CLAUSE_HELP* @clause_CreateFromLiterals(%struct.LIST_HELP*, i32, i32, i32, i32*, i32*) #2
+
+declare void @list_DeleteWithElement(%struct.LIST_HELP*, void (i8*)*) #2
+
+; Function Attrs: nounwind
+define internal void @dfg_VarFree(%struct.DFG_VARENTRY* %Entry) #0 {
+entry:
+  %name = getelementptr inbounds %struct.DFG_VARENTRY* %Entry, i32 0, i32 0
+  %0 = load i8** %name, align 4
+  tail call void @string_StringFree(i8* %0) #1
+  %1 = bitcast %struct.DFG_VARENTRY* %Entry to i8*
+  %2 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %total_size.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %2, i32 0, i32 4
+  %3 = load i32* %total_size.i, align 4
+  %4 = load i32* @memory_FREEDBYTES, align 4
+  %add24.i = add i32 %4, %3
+  store i32 %add24.i, i32* @memory_FREEDBYTES, align 4
+  %free.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %2, i32 0, i32 0
+  %5 = load i8** %free.i, align 4
+  store i8* %5, i8** %name, align 4
+  %6 = load %struct.MEMORY_RESOURCEHELP** getelementptr inbounds ([0 x %struct.MEMORY_RESOURCEHELP*]* @memory_ARRAY, i32 0, i32 8), align 4
+  %free27.i = getelementptr inbounds %struct.MEMORY_RESOURCEHELP* %6, i32 0, i32 0
+  store i8* %1, i8** %free27.i, align 4
+  ret void
+}
+
+declare %struct.term* @term_Copy(%struct.term*) #2
+
+declare i8* @memory_Malloc(i32) #2
+
+declare i32 @symbol_CreateFunction(i8*, i32, i32, i32*) #2
+
+declare i32 @symbol_CreatePredicate(i8*, i32, i32, i32*) #2
+
+declare i32 @symbol_CreateJunctor(i8*, i32, i32, i32*) #2
+
+; Function Attrs: noreturn nounwind
+declare void @abort() #5
+
+declare i32 @symbol_GetIncreasedOrderingCounter() #2
+
+declare i32 @flag_Minimum(i32) #2
+
+declare i8* @flag_Name(i32) #2
+
+declare i32 @flag_Maximum(i32) #2
+
+; Function Attrs: nounwind readonly
+declare i32 @strcmp(i8* nocapture, i8* nocapture) #4
+
+declare i32 @list_Length(%struct.LIST_HELP*) #2
+
+; Function Attrs: noreturn nounwind
+declare void @exit(i32) #5
+
+; Function Attrs: nounwind
+declare i32 @fwrite(i8* nocapture, i32, i32, %struct._IO_FILE* nocapture) #1
+
+attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="true" }
+attributes #1 = { nounwind }
+attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="true" }
+attributes #3 = { inlinehint noreturn nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="true" }
+attributes #4 = { nounwind readonly "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="true" }
+attributes #5 = { noreturn nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="true" }
+attributes #6 = { nounwind readonly }
+attributes #7 = { noreturn nounwind }
+





More information about the llvm-commits mailing list