+ { 0, OPTION_SHORT_IS_8BITS, NULL, "Make short 8 bits (for old times sake)" },
+
+ { 0, NULL, NULL, "Optimization options"},
+ { 0, "--nooverlay", &options.noOverlay, "Disable overlaying leaf function auto variables" },
+ { 0, OPTION_NO_GCSE, NULL, "Disable the GCSE optimisation" },
+ { 0, OPTION_NO_LABEL_OPT, NULL, "Disable label optimisation" },
+ { 0, OPTION_NO_LOOP_INV, NULL, "Disable optimisation of invariants" },
+ { 0, OPTION_NO_LOOP_IND, NULL, "Disable loop variable induction" },
+ { 0, "--nojtbound", &optimize.noJTabBoundary, "Don't generate boundary check for jump tables" },
+ { 0, "--noloopreverse", &optimize.noLoopReverse, "Disable the loop reverse optimisation" },
+ { 0, "--no-peep", &options.nopeep, "Disable the peephole assembly file optimisation" },
+ { 0, "--no-reg-params", &options.noRegParams, "On some ports, disable passing some parameters in registers" },
+ { 0, "--peep-asm", &options.asmpeep, "Enable peephole optimization on inline assembly" },
+ { 0, OPTION_PEEP_FILE, NULL, "<file> use this extra peephole file" },
+ { 0, OPTION_OPT_CODE_SPEED, NULL, "Optimize for code speed rather than size" },
+ { 0, OPTION_OPT_CODE_SIZE, NULL, "Optimize for code size rather than speed" },
+
+ { 0, NULL, NULL, "Internal debugging options"},
+ { 0, "--dumpraw", &options.dump_raw, "Dump the internal structure after the initial parse" },
+ { 0, "--dumpgcse", &options.dump_gcse, NULL },
+ { 0, "--dumploop", &options.dump_loop, NULL },
+ { 0, "--dumpdeadcode", &options.dump_kill, NULL },
+ { 0, "--dumpliverange", &options.dump_range, NULL },
+ { 0, "--dumpregpack", &options.dump_pack, NULL },
+ { 0, "--dumpregassign", &options.dump_rassgn, NULL },
+ { 0, "--dumptree", &options.dump_tree, "dump front-end AST before generating iCode" },
+ { 0, OPTION_DUMP_ALL, NULL, "Dump the internal structure at all stages" },
+ { 0, OPTION_ICODE_IN_ASM, &options.iCodeInAsm, "include i-code as comments in the asm file"},
+
+ { 0, NULL, NULL, "Linker options" },
+ { 'l', NULL, NULL, "Include the given library in the link" },
+ { 'L', NULL, NULL, "Add the next field to the library search path" },
+ { 0, OPTION_LIB_PATH, NULL, "<path> use this path to search for libraries" },
+ { 0, OPTION_OUT_FMT_IHX, NULL, "Output in Intel hex format" },
+ { 0, "--out-fmt-s19", &options.out_fmt, "Output in S19 hex format" },
+ { 0, OPTION_XRAM_LOC, NULL, "<nnnn> External Ram start location" },
+ { 0, OPTION_XRAM_SIZE, NULL, "<nnnn> External Ram size" },
+ { 0, OPTION_IRAM_SIZE, NULL, "<nnnn> Internal Ram size" },
+ { 0, OPTION_XSTACK_LOC, NULL, "<nnnn> External Ram start location" },
+ { 0, OPTION_CODE_LOC, NULL, "<nnnn> Code Segment Location" },
+ { 0, OPTION_CODE_SIZE, NULL, "<nnnn> Code Segment size" },
+ { 0, OPTION_STACK_LOC, NULL, "<nnnn> Stack pointer initial value" },
+ { 0, OPTION_DATA_LOC, NULL, "<nnnn> Direct data start location" },
+ { 0, OPTION_IDATA_LOC, NULL, NULL },
+#if !OPT_DISABLE_DS390 || !OPT_DISABLE_MCS51
+ { 0, OPTION_STACK_SIZE, NULL,"MCS51/DS390 - Tells the linker to allocate this space for stack"},
+ { 0, OPTION_PACK_IRAM, &options.pack_iram,"MCS51/DS390 - Tells the linker to pack variables in internal ram"},
+#endif
+