Search.setIndex({"docnames": ["api/Lib", "api/Lib.Allocator", "api/Lib.CFG", "api/Lib.Dominators", "api/Lib.Errors", "api/Lib.FunctionData", "api/Lib.Graphes", "api/Lib.LinearCode", "api/Lib.Operands", "api/Lib.PhiNode", "api/Lib.RiscV", "api/Lib.Statement", "api/Lib.Terminator", "api/modules", "index"], "filenames": ["api/Lib.rst", "api/Lib.Allocator.rst", "api/Lib.CFG.rst", "api/Lib.Dominators.rst", "api/Lib.Errors.rst", "api/Lib.FunctionData.rst", "api/Lib.Graphes.rst", "api/Lib.LinearCode.rst", "api/Lib.Operands.rst", "api/Lib.PhiNode.rst", "api/Lib.RiscV.rst", "api/Lib.Statement.rst", "api/Lib.Terminator.rst", "api/modules.rst", "index.rst"], "titles": ["Lib package", "Lib.Allocator module", "Lib.CFG module", "Lib.Dominators module", "Lib.Errors module", "Lib.FunctionData module", "Lib.Graphes module", "Lib.LinearCode module", "Lib.Operands module", "Lib.PhiNode module", "Lib.RiscV module", "Lib.Statement module", "Lib.Terminator module", "MiniC", "Welcome to MiniC\u2019s documentation!"], "terms": {"alloc": [0, 7, 8, 13], "prepar": [0, 1, 14], "replac": [0, 1, 2, 7, 8, 11, 12, 14], "rewritecod": [0, 1, 14], "naivealloc": [0, 1, 13, 14], "cfg": [0, 3, 9, 12, 13, 14], "block": [0, 2, 3, 9, 12, 13, 14], "to_dot": [0, 2, 14], "get_bodi": [0, 2, 14], "get_all_stat": [0, 2, 14], "get_body_and_termin": [0, 2, 14], "get_label": [0, 2, 14], "get_in": [0, 2, 14], "get_termin": [0, 2, 14], "set_termin": [0, 2, 14], "get_phi": [0, 2, 14], "add_phi": [0, 2, 14], "set_phi": [0, 2, 14], "remove_all_phi": [0, 2, 14], "iter_stat": [0, 1, 2, 7, 14], "add_instruct": [0, 2, 7, 14], "fdata": [0, 1, 2, 5, 7, 14], "get_start": [0, 2, 14], "set_start": [0, 2, 14], "get_end": [0, 2, 14], "add_block": [0, 2, 14], "get_block": [0, 2, 14], "get_entri": [0, 2, 14], "add_edg": [0, 2, 6, 14], "remove_edg": [0, 2, 14], "out_block": [0, 2, 14], "gather_def": [0, 2, 14], "linearize_na": [0, 2, 14], "print_cod": [0, 2, 7, 14], "print_dot": [0, 2, 6, 7, 14], "domin": [0, 13, 14], "computedom": [0, 3, 13, 14], "printdt": [0, 3, 13, 14], "computedt": [0, 3, 13, 14], "computedf": [0, 3, 13, 14], "error": [0, 13, 14], "minicruntimeerror": [0, 4, 13, 14], "minicinternalerror": [0, 4, 13, 14], "minicunsupportederror": [0, 4, 13, 14], "minictypeerror": [0, 4, 13, 14], "allocationerror": [0, 4, 13, 14], "functiondata": [0, 1, 2, 7, 13, 14], "get_nam": [0, 5, 14], "fresh_tmp": [0, 5, 8, 14], "fresh_offset": [0, 5, 14], "get_offset": [0, 5, 8, 14], "fresh_label": [0, 5, 14], "get_label_div_by_zero": [0, 5, 14], "graph": [0, 2, 3, 7, 13], "grapherror": [0, 6, 13, 14], "messag": [0, 6, 14], "generalgraph": [0, 6, 13, 14], "graph_dict": [0, 6, 14], "vertic": [0, 6, 14], "add_vertex": [0, 6, 14], "edg": [0, 2, 6, 14], "dfs_travers": [0, 6, 14], "is_reachable_from": [0, 6, 14], "connected_compon": [0, 6, 14], "bfs_travers": [0, 6, 14], "delete_vertex": [0, 6, 14], "delete_edg": [0, 6, 14], "color": [0, 6, 14], "color_with_k_color": [0, 6, 14], "digraph": [0, 6, 13, 14], "pred": [0, 6, 14], "neighbourhood": [0, 6, 14], "linearcod": [0, 1, 5, 12, 13, 14], "get_instruct": [0, 7, 14], "add_label": [0, 7, 14], "add_com": [0, 7, 14], "add_instruction_println_int": [0, 7, 14], "operand": [0, 1, 5, 9, 10, 11, 12, 13, 14], "condit": [0, 8, 10, 11, 12, 13, 14], "negat": [0, 8, 14], "function": [0, 2, 3, 5, 7, 8, 10, 11, 12, 13, 14], "dataloc": [0, 7, 8, 9, 13, 14], "regist": [0, 1, 8, 13, 14], "zero": [0, 8, 13, 14], "ra": [0, 8, 13, 14], "sp": [0, 8, 13, 14], "gp": [0, 8, 13, 14], "tp": [0, 8, 13, 14], "A": [0, 2, 6, 8, 9, 11, 12, 13, 14], "": [0, 7, 8, 13], "t": [0, 8, 13, 14], "a0": [0, 8, 13, 14], "a1": [0, 8, 13, 14], "fp": [0, 5, 8, 13, 14], "gp_reg": [0, 8, 13, 14], "offset": [0, 5, 8, 13, 14], "immedi": [0, 8, 10, 13, 14], "temporari": [0, 1, 5, 7, 8, 13], "get_alloced_loc": [0, 8, 14], "temporarypool": [0, 1, 5, 8, 13, 14], "get_all_temp": [0, 8, 14], "add_tmp": [0, 8, 14], "set_temp_alloc": [0, 1, 8, 14], "renam": [0, 8, 9, 11, 12, 13, 14], "fresh": [0, 5, 8, 9, 14], "defin": [0, 1, 5, 8, 9, 10, 11, 14], "copi": [0, 8, 14], "phinod": [0, 13, 14], "var": [0, 9, 14], "src": [0, 2, 9, 14], "get_src": [0, 9, 14], "us": [0, 3, 5, 6, 8, 9, 11, 12, 14], "rename_from": [0, 9, 14], "printin": [0, 9, 11, 12, 14], "riscv": [0, 2, 5, 7, 8, 9, 11, 13, 14], "call": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "jump": [0, 2, 10, 11, 12, 13, 14], "conditional_jump": [0, 10, 13, 14], "add": [0, 1, 2, 6, 7, 8, 10, 13, 14], "mul": [0, 10, 13, 14], "div": [0, 10, 13, 14], "rem": [0, 10, 13, 14], "sub": [0, 10, 13, 14], "land": [0, 10, 13, 14], "lor": [0, 10, 13, 14], "xor": [0, 10, 13, 14], "li": [0, 10, 13, 14], "mv": [0, 10, 13, 14], "ld": [0, 10, 13, 14], "sd": [0, 10, 13, 14], "statement": [0, 2, 9, 12, 13, 14], "regset_to_str": [0, 11, 13, 14], "substitut": [0, 11, 12, 14], "with_arg": [0, 11, 12, 14], "comment": [0, 2, 7, 11, 13, 14], "label": [0, 2, 5, 7, 9, 10, 11, 12, 13, 14], "name": [0, 2, 5, 6, 7, 8, 9, 11, 14], "instruct": [0, 1, 2, 7, 10, 11, 12, 13, 14], "ins": [0, 11, 14], "is_read_onli": [0, 11, 12, 14], "arg": [0, 11, 12, 14], "instru3a": [0, 2, 7, 10, 11, 13, 14], "absolutejump": [0, 2, 7, 10, 11, 12, 13, 14], "target": [0, 2, 11, 12, 14], "conditionaljump": [0, 7, 11, 12, 13, 14], "cond": [0, 10, 11, 12, 14], "op1": [0, 10, 11, 12, 14], "op2": [0, 10, 11, 12, 14], "termin": [0, 2, 13, 14], "return": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14], "branchingtermin": [0, 2, 12, 13, 14], "label_then": [0, 12, 14], "label_els": [0, 12, 14], "jump2termin": [0, 12, 13, 14], "thi": [1, 2, 3, 5, 8, 10, 11, 12], "file": [1, 5, 7, 8], "base": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12], "class": [1, 2, 5, 6, 7, 8, 9, 11, 12, 14], "na\u00efv": 1, "implement": [1, 14], "sourc": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14], "object": [1, 2, 5, 6, 7, 8, 11, 14], "gener": [1, 6, 7, 8], "naiv": [1, 2, 14], "allinmem": 1, "smart": 1, "all": [1, 2, 6, 8, 14], "code": [1, 2, 7, 10, 14], "actual": [1, 6, 8], "data": [1, 8, 14], "locat": [1, 8, 11], "i": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12], "done": [1, 6], "two": [1, 6, 12], "step": 1, "first": [1, 6, 11, 12], "respons": 1, "map": [1, 8], "from": [1, 6, 8, 11, 12], "where": [1, 6, 11, 12], "thei": [1, 6], "should": [1, 6, 9, 11, 12, 14], "store": [1, 5], "memori": [1, 5, 8, 14], "Then": 1, "each": [1, 2, 6, 7, 9, 12, 14], "order": 1, "previous": [1, 3], "assign": 1, "possibli": 1, "some": [1, 5, 7, 14], "befor": [1, 14], "after": 1, "concret": 1, "list": [1, 2, 6, 7, 8, 9, 11, 12, 14], "origin": 1, "The": [1, 6, 7, 8, 9, 11, 12, 14], "iter": [1, 2, 7], "over": [1, 2, 7], "handl": 1, "transpar": 1, "none": [1, 2, 3, 6, 7, 8, 9, 11, 12], "old_instr": 1, "transform": 1, "an": [1, 2, 3, 6, 7, 11], "listcod": 1, "modifi": 1, "try": 1, "fail": [1, 6], "ar": [1, 5, 6, 8, 9, 11, 12, 14], "more": 1, "than": [1, 8], "correspond": [1, 9], "too": 1, "mani": 1, "itself": [2, 8], "its": [2, 3, 8, 9, 11, 14], "basic": [2, 14], "inst": 2, "made": 2, "three": [2, 12], "main": 2, "part": 2, "start": 2, "uniqu": [2, 5], "identifi": [2, 9], "bodi": 2, "exclud": 2, "branch": [2, 8, 11, 12], "repres": [2, 14], "final": 2, "point": [2, 14], "successor": [2, 12], "see": [2, 7], "document": 2, "further": 2, "explan": 2, "str": [2, 3, 5, 6, 7, 8, 11], "output": [2, 7, 9, 11, 12], "string": [2, 5, 8], "phi": [2, 14], "node": [2, 6, 9, 14], "nor": 2, "includ": 2, "except": [2, 4, 6], "consid": [2, 11], "term": 2, "set": [2, 3, 6, 11], "\u03c6": [2, 9], "given": [2, 3, 5, 7, 9, 11, 12], "remov": 2, "f": [2, 7], "For": [2, 7], "real": [2, 7], "assum": 2, "instr": 2, "complet": [2, 7], "control": 2, "flow": 2, "mainli": 2, "indic": 2, "entri": [2, 3], "exit": 2, "As": 2, "linear": [2, 7], "metadata": [2, 5], "about": [2, 14], "can": 2, "found": 2, "member": [2, 7], "variabl": [2, 5, 7, 9], "blk": 2, "new": [2, 5, 7, 8, 11, 12], "predecessor": [2, 6, 9], "dest": 2, "dict": [2, 3, 6, 8, 9, 11, 12], "ani": [2, 6], "dictionari": [2, 3, 6], "associ": [2, 3, 9, 12], "contain": [2, 5, 7, 9], "one": [2, 8, 11, 12], "definit": 2, "appli": 2, "procedur": 2, "everywher": 2, "lambda": 2, "print": [2, 6, 7, 9, 11, 12], "filenam": [2, 3, 7], "df": [2, 3, 7], "view": [2, 7], "fals": [2, 7, 12], "util": [3, 5, 7, 11], "work": [3, 5, 14], "do": [3, 6], "hesit": 3, "look": 3, "get": [3, 8], "better": 3, "understand": [3, 14], "algorithm": 3, "comput": [3, 6, 8], "tabl": 3, "It": [3, 8, 11], "solv": 3, "equat": 3, "system": 3, "helper": 3, "dure": [3, 12], "ssa": [3, 9], "displai": 3, "graphic": 3, "render": 3, "tree": 3, "dom_graph": 3, "bool": [3, 6, 8, 12], "basenam": 3, "dt": 3, "which": [3, 5, 8, 11], "children": 3, "frontier": [3, 14], "well": 5, "common": 5, "differ": [5, 6, 8], "intermedi": 5, "represent": [5, 7], "div_by_zero": 5, "usual": 5, "indirectli": 5, "through": 5, "we": [5, 6, 8, 14], "ad": [5, 6], "pool": [5, 8], "stack": 5, "decreas": 5, "rel": 5, "int": [5, 6, 8], "current": 5, "python": [6, 10, 14], "orient": [6, 14], "non": [6, 11, 12, 14], "rais": 6, "self": 6, "loop": 6, "regroup": 6, "similar": 6, "between": 6, "direct": 6, "onli": [6, 11], "how": 6, "delet": 6, "vertex": 6, "undirect": 6, "If": 6, "kei": [6, 8, 11, 12], "empti": 6, "valu": [6, 7, 8, 11, 12], "otherwis": [6, 11], "noth": 6, "ha": [6, 8], "root": 6, "depth": 6, "search": [6, 14], "v1": 6, "v2": 6, "true": [6, 8, 11, 12], "path": [6, 7], "connect": 6, "compon": 6, "being": 6, "vetic": 6, "breadth": 6, "static": 6, "method": [6, 8], "appear": [6, 11, 12, 14], "twice": 6, "dictionnari": [6, 9], "tupl": 6, "pair": 6, "c": [6, 10], "g": 6, "adjac": 6, "unlimit": 6, "number": [6, 8], "integ": [6, 7, 8], "0": [6, 8], "1": 6, "k": 6, "avoidingnod": 6, "unspecifi": 6, "3": [6, 11, 14], "boolean": 6, "succeed": 6, "belong": 6, "continu": 6, "even": 6, "algo": 6, "v": [6, 14], "cap": [7, 10, 12], "codegener": [7, 10], "api": [7, 10], "program": 7, "repeatedli": 7, "codegen": 7, "visitor": 7, "build": [7, 8, 12], "meta": 7, "inform": 7, "instanc": 7, "debug": 7, "purpos": [7, 8], "allow": [7, 8, 14], "also": [7, 8], "relev": 7, "reg": 7, "newlin": 7, "expand": 7, "text": 7, "subclass": 8, "address": [8, 11, 14], "constant": 8, "yet": 8, "shortcut": 8, "optyp": 8, "e": 8, "comparison": 8, "condjump": 8, "exampl": 8, "usag": 8, "beq": [8, 10], "equal": 8, "minicpars": [8, 10], "lt": 8, "lower": 8, "constructor": 8, "argument": [8, 14], "shall": 8, "all_op": 8, "oper": 8, "gt": 8, "opdict": 8, "opposit": 8, "either": 8, "place": 8, "physic": 8, "cours": 8, "a2": 8, "a3": 8, "a4": 8, "a5": 8, "a6": 8, "a7": 8, "s1": 8, "s2": 8, "s3": 8, "s4": 8, "s5": 8, "s6": 8, "s7": 8, "s8": 8, "s9": 8, "s10": 8, "s11": 8, "t0": 8, "t1": 8, "t2": 8, "t3": 8, "t4": 8, "t5": 8, "t6": 8, "frame": 8, "pointer": 8, "save": 8, "usabl": 8, "basereg": 8, "val": 8, "been": [8, 11, 12], "later": 8, "manag": 8, "give": [8, 14], "must": 8, "other": [8, 11], "typic": 8, "type": [8, 12], "enforc": 8, "check": 8, "inde": 8, "under": 9, "form": 9, "temp_x": 9, "temp_0": 9, "temp_n": 9, "These": [9, 14], "particular": 9, "kind": [9, 11, 12, 14], "expect": 9, "field": 9, "b": 9, "_phi": 9, "link": 9, "temp_i": 9, "previou": 9, "stream": [9, 11, 12], "never": [9, 11, 12], "mif08": [10, 12], "uncondit": 10, "wrapper": 10, "around": 10, "bge": 10, "bgt": 10, "like": 10, "eq": 10, "dr": 10, "sr1": 10, "sr2orimm7": 10, "And": 10, "cannot": 10, "due": 10, "Or": 10, "imm7": 10, "sr": 10, "mem": 10, "asm": 11, "inherit": 11, "In": 11, "turn": 11, "regular": 11, "registerset": 11, "pretti": 11, "written": 11, "read": 11, "subst": [11, 12], "tstatement": 11, "clone": [11, 12], "new_arg": [11, 12], "have": [11, 12, 14], "both": [11, 12], "destin": [11, 12], "take": [11, 12, 14], "absolut": 11, "specif": 11, "j": [11, 12], "librari": 12, "end": [12, 14], "There": 12, "anoth": 12, "unlik": 12, "wa": 12, "specifi": 12, "mark": 12, "construct": 12, "extract": 12, "chunk": 12, "second": 12, "alia": 12, "next_label": 12, "potenti": 12, "lib": [13, 14], "packag": 13, "submodul": 13, "modul": [13, 14], "content": 13, "risc": 14, "page": 14, "variou": 14, "folder": 14, "you": 14, "edit": 14, "them": 14, "assembli": 14, "won": 14, "creat": 14, "directli": 14, "veri": 14, "often": 14, "instead": 14, "easili": 14, "standard": 14, "pseudo": 14, "At": 14, "need": 14, "those": 14, "present": 14, "model": 14, "lab": 14, "4a": 14, "translat": 14, "make": 14, "special": 14, "index": 14}, "objects": {"": [[0, 0, 0, "-", "Lib"]], "Lib": [[1, 0, 0, "-", "Allocator"], [2, 0, 0, "-", "CFG"], [3, 0, 0, "-", "Dominators"], [4, 0, 0, "-", "Errors"], [5, 0, 0, "-", "FunctionData"], [6, 0, 0, "-", "Graphes"], [7, 0, 0, "-", "LinearCode"], [8, 0, 0, "-", "Operands"], [9, 0, 0, "-", "PhiNode"], [10, 0, 0, "-", "RiscV"], [11, 0, 0, "-", "Statement"], [12, 0, 0, "-", "Terminator"]], "Lib.Allocator": [[1, 1, 1, "", "Allocator"], [1, 1, 1, "", "NaiveAllocator"]], "Lib.Allocator.Allocator": [[1, 2, 1, "", "prepare"], [1, 2, 1, "", "replace"], [1, 2, 1, "", "rewriteCode"]], "Lib.Allocator.NaiveAllocator": [[1, 2, 1, "", "prepare"], [1, 2, 1, "", "replace"]], "Lib.CFG": [[2, 1, 1, "", "Block"], [2, 1, 1, "", "CFG"]], "Lib.CFG.Block": [[2, 2, 1, "", "add_instruction"], [2, 2, 1, "", "add_phi"], [2, 2, 1, "", "get_all_statements"], [2, 2, 1, "", "get_body"], [2, 2, 1, "", "get_body_and_terminator"], [2, 2, 1, "", "get_in"], [2, 2, 1, "", "get_label"], [2, 2, 1, "", "get_phis"], [2, 2, 1, "", "get_terminator"], [2, 2, 1, "", "iter_statements"], [2, 2, 1, "", "remove_all_phis"], [2, 2, 1, "", "set_phis"], [2, 2, 1, "", "set_terminator"], [2, 2, 1, "", "to_dot"]], "Lib.CFG.CFG": [[2, 2, 1, "", "add_block"], [2, 2, 1, "", "add_edge"], [2, 3, 1, "", "fdata"], [2, 2, 1, "", "gather_defs"], [2, 2, 1, "", "get_block"], [2, 2, 1, "", "get_blocks"], [2, 2, 1, "", "get_end"], [2, 2, 1, "", "get_entries"], [2, 2, 1, "", "get_start"], [2, 2, 1, "", "iter_statements"], [2, 2, 1, "", "linearize_naive"], [2, 2, 1, "", "out_blocks"], [2, 2, 1, "", "print_code"], [2, 2, 1, "", "print_dot"], [2, 2, 1, "", "remove_edge"], [2, 2, 1, "", "set_start"]], "Lib.Dominators": [[3, 4, 1, "", "computeDF"], [3, 4, 1, "", "computeDT"], [3, 4, 1, "", "computeDom"], [3, 4, 1, "", "printDT"]], "Lib.Errors": [[4, 5, 1, "", "AllocationError"], [4, 5, 1, "", "MiniCInternalError"], [4, 5, 1, "", "MiniCRuntimeError"], [4, 5, 1, "", "MiniCTypeError"], [4, 5, 1, "", "MiniCUnsupportedError"]], "Lib.FunctionData": [[5, 1, 1, "", "FunctionData"]], "Lib.FunctionData.FunctionData": [[5, 2, 1, "", "fresh_label"], [5, 2, 1, "", "fresh_offset"], [5, 2, 1, "", "fresh_tmp"], [5, 2, 1, "", "get_label_div_by_zero"], [5, 2, 1, "", "get_name"], [5, 2, 1, "", "get_offset"]], "Lib.Graphes": [[6, 1, 1, "", "DiGraph"], [6, 1, 1, "", "GeneralGraph"], [6, 1, 1, "", "Graph"], [6, 5, 1, "", "GraphError"]], "Lib.Graphes.DiGraph": [[6, 2, 1, "", "add_edge"], [6, 2, 1, "", "delete_edge"], [6, 2, 1, "", "delete_vertex"], [6, 2, 1, "", "edges"], [6, 2, 1, "", "neighbourhoods"], [6, 2, 1, "", "pred"], [6, 2, 1, "", "print_dot"]], "Lib.Graphes.GeneralGraph": [[6, 2, 1, "", "add_vertex"], [6, 2, 1, "", "bfs_traversal"], [6, 2, 1, "", "connected_components"], [6, 2, 1, "", "dfs_traversal"], [6, 2, 1, "", "edges"], [6, 3, 1, "", "graph_dict"], [6, 2, 1, "", "is_reachable_from"], [6, 2, 1, "", "vertices"]], "Lib.Graphes.Graph": [[6, 2, 1, "", "add_edge"], [6, 2, 1, "", "color"], [6, 2, 1, "", "color_with_k_colors"], [6, 2, 1, "", "delete_edge"], [6, 2, 1, "", "delete_vertex"], [6, 2, 1, "", "edges"], [6, 2, 1, "", "print_dot"]], "Lib.Graphes.GraphError": [[6, 3, 1, "", "message"]], "Lib.LinearCode": [[7, 1, 1, "", "LinearCode"]], "Lib.LinearCode.LinearCode": [[7, 2, 1, "", "add_comment"], [7, 2, 1, "", "add_instruction"], [7, 2, 1, "", "add_instruction_PRINTLN_INT"], [7, 2, 1, "", "add_label"], [7, 3, 1, "", "fdata"], [7, 2, 1, "", "get_instructions"], [7, 2, 1, "", "iter_statements"], [7, 2, 1, "", "print_code"], [7, 2, 1, "", "print_dot"]], "Lib.Operands": [[8, 6, 1, "", "A"], [8, 6, 1, "", "A0"], [8, 6, 1, "", "A1"], [8, 1, 1, "", "Condition"], [8, 1, 1, "", "DataLocation"], [8, 6, 1, "", "FP"], [8, 1, 1, "", "Function"], [8, 6, 1, "", "GP"], [8, 6, 1, "", "GP_REGS"], [8, 1, 1, "", "Immediate"], [8, 1, 1, "", "Offset"], [8, 1, 1, "", "Operand"], [8, 6, 1, "", "RA"], [8, 1, 1, "", "Register"], [8, 1, 1, "", "Renamer"], [8, 6, 1, "", "S"], [8, 6, 1, "", "SP"], [8, 6, 1, "", "T"], [8, 6, 1, "", "TP"], [8, 1, 1, "", "Temporary"], [8, 1, 1, "", "TemporaryPool"], [8, 6, 1, "", "ZERO"]], "Lib.Operands.Condition": [[8, 2, 1, "", "negate"]], "Lib.Operands.Offset": [[8, 2, 1, "", "get_offset"]], "Lib.Operands.Renamer": [[8, 2, 1, "", "copy"], [8, 2, 1, "", "defined"], [8, 2, 1, "", "fresh"], [8, 2, 1, "", "replace"]], "Lib.Operands.Temporary": [[8, 2, 1, "", "get_alloced_loc"]], "Lib.Operands.TemporaryPool": [[8, 2, 1, "", "add_tmp"], [8, 2, 1, "", "fresh_tmp"], [8, 2, 1, "", "get_all_temps"], [8, 2, 1, "", "get_alloced_loc"], [8, 2, 1, "", "set_temp_allocation"]], "Lib.PhiNode": [[9, 1, 1, "", "PhiNode"]], "Lib.PhiNode.PhiNode": [[9, 2, 1, "", "defined"], [9, 2, 1, "", "get_srcs"], [9, 2, 1, "", "printIns"], [9, 2, 1, "", "rename"], [9, 2, 1, "", "rename_from"], [9, 3, 1, "", "srcs"], [9, 2, 1, "", "used"], [9, 3, 1, "", "var"]], "Lib.RiscV": [[10, 4, 1, "", "add"], [10, 4, 1, "", "call"], [10, 4, 1, "", "conditional_jump"], [10, 4, 1, "", "div"], [10, 4, 1, "", "jump"], [10, 4, 1, "", "land"], [10, 4, 1, "", "ld"], [10, 4, 1, "", "li"], [10, 4, 1, "", "lor"], [10, 4, 1, "", "mul"], [10, 4, 1, "", "mv"], [10, 4, 1, "", "rem"], [10, 4, 1, "", "sd"], [10, 4, 1, "", "sub"], [10, 4, 1, "", "xor"]], "Lib.Statement": [[11, 1, 1, "", "AbsoluteJump"], [11, 1, 1, "", "Comment"], [11, 1, 1, "", "ConditionalJump"], [11, 1, 1, "", "Instru3A"], [11, 1, 1, "", "Instruction"], [11, 1, 1, "", "Label"], [11, 1, 1, "", "Statement"], [11, 4, 1, "", "regset_to_string"]], "Lib.Statement.AbsoluteJump": [[11, 2, 1, "", "args"], [11, 3, 1, "", "ins"], [11, 3, 1, "", "label"], [11, 2, 1, "", "rename"], [11, 2, 1, "", "substitute"], [11, 2, 1, "", "targets"], [11, 2, 1, "", "with_args"]], "Lib.Statement.Comment": [[11, 3, 1, "", "comment"], [11, 2, 1, "", "printIns"]], "Lib.Statement.ConditionalJump": [[11, 2, 1, "", "args"], [11, 3, 1, "", "cond"], [11, 3, 1, "", "label"], [11, 3, 1, "", "op1"], [11, 3, 1, "", "op2"], [11, 2, 1, "", "rename"], [11, 2, 1, "", "substitute"], [11, 2, 1, "", "with_args"]], "Lib.Statement.Instru3A": [[11, 2, 1, "", "args"], [11, 2, 1, "", "rename"], [11, 2, 1, "", "substitute"], [11, 2, 1, "", "with_args"]], "Lib.Statement.Instruction": [[11, 2, 1, "", "args"], [11, 2, 1, "", "defined"], [11, 3, 1, "", "ins"], [11, 2, 1, "", "is_read_only"], [11, 2, 1, "", "printIns"], [11, 2, 1, "", "rename"], [11, 2, 1, "", "used"]], "Lib.Statement.Label": [[11, 3, 1, "", "name"], [11, 2, 1, "", "printIns"]], "Lib.Statement.Statement": [[11, 2, 1, "", "defined"], [11, 2, 1, "", "printIns"], [11, 2, 1, "", "substitute"], [11, 2, 1, "", "used"], [11, 2, 1, "", "with_args"]], "Lib.Terminator": [[12, 1, 1, "", "BranchingTerminator"], [12, 1, 1, "", "Return"], [12, 6, 1, "", "Terminator"], [12, 4, 1, "", "jump2terminator"]], "Lib.Terminator.BranchingTerminator": [[12, 2, 1, "", "args"], [12, 3, 1, "", "cond"], [12, 3, 1, "", "label_else"], [12, 3, 1, "", "label_then"], [12, 3, 1, "", "op1"], [12, 3, 1, "", "op2"], [12, 2, 1, "", "rename"], [12, 2, 1, "", "substitute"], [12, 2, 1, "", "targets"], [12, 2, 1, "", "with_args"]], "Lib.Terminator.Return": [[12, 2, 1, "", "args"], [12, 2, 1, "", "is_read_only"], [12, 2, 1, "", "printIns"], [12, 2, 1, "", "rename"], [12, 2, 1, "", "substitute"], [12, 2, 1, "", "targets"], [12, 2, 1, "", "with_args"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:exception", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "exception", "Python exception"], "6": ["py", "data", "Python data"]}, "titleterms": {"lib": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "packag": 0, "submodul": 0, "modul": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "content": [0, 14], "alloc": [1, 14], "cfg": 2, "domin": 3, "error": 4, "functiondata": 5, "graph": [6, 14], "linearcod": 7, "operand": 8, "phinod": 9, "riscv": 10, "statement": 11, "termin": 12, "minic": [13, 14], "welcom": 14, "": 14, "document": 14, "base": 14, "librari": 14, "linear": 14, "intermedi": 14, "represent": 14, "temporari": 14, "control": 14, "flow": 14, "ssa": 14, "form": 14, "indic": 14, "tabl": 14}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Lib package": [[0, "lib-package"]], "Submodules": [[0, "submodules"]], "Module contents": [[0, "module-Lib"]], "Lib.Allocator module": [[1, "module-Lib.Allocator"]], "Lib.CFG module": [[2, "module-Lib.CFG"]], "Lib.Dominators module": [[3, "module-Lib.Dominators"]], "Lib.Errors module": [[4, "module-Lib.Errors"]], "Lib.FunctionData module": [[5, "module-Lib.FunctionData"]], "Lib.Graphes module": [[6, "module-Lib.Graphes"]], "Lib.LinearCode module": [[7, "module-Lib.LinearCode"]], "Lib.Operands module": [[8, "module-Lib.Operands"]], "Lib.PhiNode module": [[9, "module-Lib.PhiNode"]], "Lib.RiscV module": [[10, "module-Lib.RiscV"]], "Lib.Statement module": [[11, "module-Lib.Statement"]], "Lib.Terminator module": [[12, "module-Lib.Terminator"]], "MiniC": [[13, "minic"]], "Welcome to MiniC\u2019s documentation!": [[14, "welcome-to-minic-s-documentation"]], "Contents:": [[14, null]], "Base library": [[14, "base-library"]], "Linear Intermediate representation": [[14, "linear-intermediate-representation"]], "Temporary allocation": [[14, "temporary-allocation"]], "Control Flow Graph Intermediate representation": [[14, "control-flow-graph-intermediate-representation"]], "SSA form": [[14, "ssa-form"]], "Indices and tables": [[14, "indices-and-tables"]]}, "indexentries": {"lib": [[0, "module-Lib"]], "module": [[0, "module-Lib"], [1, "module-Lib.Allocator"], [2, "module-Lib.CFG"], [3, "module-Lib.Dominators"], [4, "module-Lib.Errors"], [5, "module-Lib.FunctionData"], [6, "module-Lib.Graphes"], [7, "module-Lib.LinearCode"], [8, "module-Lib.Operands"], [9, "module-Lib.PhiNode"], [10, "module-Lib.RiscV"], [11, "module-Lib.Statement"], [12, "module-Lib.Terminator"]], "allocator (class in lib.allocator)": [[1, "Lib.Allocator.Allocator"]], "lib.allocator": [[1, "module-Lib.Allocator"]], "naiveallocator (class in lib.allocator)": [[1, "Lib.Allocator.NaiveAllocator"]], "prepare() (lib.allocator.allocator method)": [[1, "Lib.Allocator.Allocator.prepare"]], "prepare() (lib.allocator.naiveallocator method)": [[1, "Lib.Allocator.NaiveAllocator.prepare"]], "replace() (lib.allocator.allocator method)": [[1, "Lib.Allocator.Allocator.replace"]], "replace() (lib.allocator.naiveallocator method)": [[1, "Lib.Allocator.NaiveAllocator.replace"]], "rewritecode() (lib.allocator.allocator method)": [[1, "Lib.Allocator.Allocator.rewriteCode"]], "block (class in lib.cfg)": [[2, "Lib.CFG.Block"]], "cfg (class in lib.cfg)": [[2, "Lib.CFG.CFG"]], "lib.cfg": [[2, "module-Lib.CFG"]], "add_block() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.add_block"]], "add_edge() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.add_edge"]], "add_instruction() (lib.cfg.block method)": [[2, "Lib.CFG.Block.add_instruction"]], "add_phi() (lib.cfg.block method)": [[2, "Lib.CFG.Block.add_phi"]], "fdata (lib.cfg.cfg attribute)": [[2, "Lib.CFG.CFG.fdata"]], "gather_defs() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.gather_defs"]], "get_all_statements() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_all_statements"]], "get_block() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.get_block"]], "get_blocks() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.get_blocks"]], "get_body() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_body"]], "get_body_and_terminator() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_body_and_terminator"]], "get_end() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.get_end"]], "get_entries() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.get_entries"]], "get_in() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_in"]], "get_label() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_label"]], "get_phis() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_phis"]], "get_start() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.get_start"]], "get_terminator() (lib.cfg.block method)": [[2, "Lib.CFG.Block.get_terminator"]], "iter_statements() (lib.cfg.block method)": [[2, "Lib.CFG.Block.iter_statements"]], "iter_statements() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.iter_statements"]], "linearize_naive() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.linearize_naive"]], "out_blocks() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.out_blocks"]], "print_code() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.print_code"]], "print_dot() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.print_dot"]], "remove_all_phis() (lib.cfg.block method)": [[2, "Lib.CFG.Block.remove_all_phis"]], "remove_edge() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.remove_edge"]], "set_phis() (lib.cfg.block method)": [[2, "Lib.CFG.Block.set_phis"]], "set_start() (lib.cfg.cfg method)": [[2, "Lib.CFG.CFG.set_start"]], "set_terminator() (lib.cfg.block method)": [[2, "Lib.CFG.Block.set_terminator"]], "to_dot() (lib.cfg.block method)": [[2, "Lib.CFG.Block.to_dot"]], "lib.dominators": [[3, "module-Lib.Dominators"]], "computedf() (in module lib.dominators)": [[3, "Lib.Dominators.computeDF"]], "computedt() (in module lib.dominators)": [[3, "Lib.Dominators.computeDT"]], "computedom() (in module lib.dominators)": [[3, "Lib.Dominators.computeDom"]], "printdt() (in module lib.dominators)": [[3, "Lib.Dominators.printDT"]], "allocationerror": [[4, "Lib.Errors.AllocationError"]], "lib.errors": [[4, "module-Lib.Errors"]], "minicinternalerror": [[4, "Lib.Errors.MiniCInternalError"]], "minicruntimeerror": [[4, "Lib.Errors.MiniCRuntimeError"]], "minictypeerror": [[4, "Lib.Errors.MiniCTypeError"]], "minicunsupportederror": [[4, "Lib.Errors.MiniCUnsupportedError"]], "functiondata (class in lib.functiondata)": [[5, "Lib.FunctionData.FunctionData"]], "lib.functiondata": [[5, "module-Lib.FunctionData"]], "fresh_label() (lib.functiondata.functiondata method)": [[5, "Lib.FunctionData.FunctionData.fresh_label"]], "fresh_offset() (lib.functiondata.functiondata method)": [[5, "Lib.FunctionData.FunctionData.fresh_offset"]], "fresh_tmp() (lib.functiondata.functiondata method)": [[5, "Lib.FunctionData.FunctionData.fresh_tmp"]], "get_label_div_by_zero() (lib.functiondata.functiondata method)": [[5, "Lib.FunctionData.FunctionData.get_label_div_by_zero"]], "get_name() (lib.functiondata.functiondata method)": [[5, "Lib.FunctionData.FunctionData.get_name"]], "get_offset() (lib.functiondata.functiondata method)": [[5, "Lib.FunctionData.FunctionData.get_offset"]], "digraph (class in lib.graphes)": [[6, "Lib.Graphes.DiGraph"]], "generalgraph (class in lib.graphes)": [[6, "Lib.Graphes.GeneralGraph"]], "graph (class in lib.graphes)": [[6, "Lib.Graphes.Graph"]], "grapherror": [[6, "Lib.Graphes.GraphError"]], "lib.graphes": [[6, "module-Lib.Graphes"]], "add_edge() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.add_edge"]], "add_edge() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.add_edge"]], "add_vertex() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.add_vertex"]], "bfs_traversal() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.bfs_traversal"]], "color() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.color"]], "color_with_k_colors() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.color_with_k_colors"]], "connected_components() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.connected_components"]], "delete_edge() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.delete_edge"]], "delete_edge() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.delete_edge"]], "delete_vertex() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.delete_vertex"]], "delete_vertex() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.delete_vertex"]], "dfs_traversal() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.dfs_traversal"]], "edges() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.edges"]], "edges() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.edges"]], "edges() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.edges"]], "graph_dict (lib.graphes.generalgraph attribute)": [[6, "Lib.Graphes.GeneralGraph.graph_dict"]], "is_reachable_from() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.is_reachable_from"]], "message (lib.graphes.grapherror attribute)": [[6, "Lib.Graphes.GraphError.message"]], "neighbourhoods() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.neighbourhoods"]], "pred() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.pred"]], "print_dot() (lib.graphes.digraph method)": [[6, "Lib.Graphes.DiGraph.print_dot"]], "print_dot() (lib.graphes.graph method)": [[6, "Lib.Graphes.Graph.print_dot"]], "vertices() (lib.graphes.generalgraph method)": [[6, "Lib.Graphes.GeneralGraph.vertices"]], "lib.linearcode": [[7, "module-Lib.LinearCode"]], "linearcode (class in lib.linearcode)": [[7, "Lib.LinearCode.LinearCode"]], "add_comment() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.add_comment"]], "add_instruction() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.add_instruction"]], "add_instruction_println_int() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.add_instruction_PRINTLN_INT"]], "add_label() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.add_label"]], "fdata (lib.linearcode.linearcode attribute)": [[7, "Lib.LinearCode.LinearCode.fdata"]], "get_instructions() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.get_instructions"]], "iter_statements() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.iter_statements"]], "print_code() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.print_code"]], "print_dot() (lib.linearcode.linearcode method)": [[7, "Lib.LinearCode.LinearCode.print_dot"]], "a (in module lib.operands)": [[8, "Lib.Operands.A"]], "a0 (in module lib.operands)": [[8, "Lib.Operands.A0"]], "a1 (in module lib.operands)": [[8, "Lib.Operands.A1"]], "condition (class in lib.operands)": [[8, "Lib.Operands.Condition"]], "datalocation (class in lib.operands)": [[8, "Lib.Operands.DataLocation"]], "fp (in module lib.operands)": [[8, "Lib.Operands.FP"]], "function (class in lib.operands)": [[8, "Lib.Operands.Function"]], "gp (in module lib.operands)": [[8, "Lib.Operands.GP"]], "gp_regs (in module lib.operands)": [[8, "Lib.Operands.GP_REGS"]], "immediate (class in lib.operands)": [[8, "Lib.Operands.Immediate"]], "lib.operands": [[8, "module-Lib.Operands"]], "offset (class in lib.operands)": [[8, "Lib.Operands.Offset"]], "operand (class in lib.operands)": [[8, "Lib.Operands.Operand"]], "ra (in module lib.operands)": [[8, "Lib.Operands.RA"]], "register (class in lib.operands)": [[8, "Lib.Operands.Register"]], "renamer (class in lib.operands)": [[8, "Lib.Operands.Renamer"]], "s (in module lib.operands)": [[8, "Lib.Operands.S"]], "sp (in module lib.operands)": [[8, "Lib.Operands.SP"]], "t (in module lib.operands)": [[8, "Lib.Operands.T"]], "tp (in module lib.operands)": [[8, "Lib.Operands.TP"]], "temporary (class in lib.operands)": [[8, "Lib.Operands.Temporary"]], "temporarypool (class in lib.operands)": [[8, "Lib.Operands.TemporaryPool"]], "zero (in module lib.operands)": [[8, "Lib.Operands.ZERO"]], "add_tmp() (lib.operands.temporarypool method)": [[8, "Lib.Operands.TemporaryPool.add_tmp"]], "copy() (lib.operands.renamer method)": [[8, "Lib.Operands.Renamer.copy"]], "defined() (lib.operands.renamer method)": [[8, "Lib.Operands.Renamer.defined"]], "fresh() (lib.operands.renamer method)": [[8, "Lib.Operands.Renamer.fresh"]], "fresh_tmp() (lib.operands.temporarypool method)": [[8, "Lib.Operands.TemporaryPool.fresh_tmp"]], "get_all_temps() (lib.operands.temporarypool method)": [[8, "Lib.Operands.TemporaryPool.get_all_temps"]], "get_alloced_loc() (lib.operands.temporary method)": [[8, "Lib.Operands.Temporary.get_alloced_loc"]], "get_alloced_loc() (lib.operands.temporarypool method)": [[8, "Lib.Operands.TemporaryPool.get_alloced_loc"]], "get_offset() (lib.operands.offset method)": [[8, "Lib.Operands.Offset.get_offset"]], "negate() (lib.operands.condition method)": [[8, "Lib.Operands.Condition.negate"]], "replace() (lib.operands.renamer method)": [[8, "Lib.Operands.Renamer.replace"]], "set_temp_allocation() (lib.operands.temporarypool method)": [[8, "Lib.Operands.TemporaryPool.set_temp_allocation"]], "lib.phinode": [[9, "module-Lib.PhiNode"]], "phinode (class in lib.phinode)": [[9, "Lib.PhiNode.PhiNode"]], "defined() (lib.phinode.phinode method)": [[9, "Lib.PhiNode.PhiNode.defined"]], "get_srcs() (lib.phinode.phinode method)": [[9, "Lib.PhiNode.PhiNode.get_srcs"]], "printins() (lib.phinode.phinode method)": [[9, "Lib.PhiNode.PhiNode.printIns"]], "rename() (lib.phinode.phinode method)": [[9, "Lib.PhiNode.PhiNode.rename"]], "rename_from() (lib.phinode.phinode method)": [[9, "Lib.PhiNode.PhiNode.rename_from"]], "srcs (lib.phinode.phinode attribute)": [[9, "Lib.PhiNode.PhiNode.srcs"]], "used() (lib.phinode.phinode method)": [[9, "Lib.PhiNode.PhiNode.used"]], "var (lib.phinode.phinode attribute)": [[9, "Lib.PhiNode.PhiNode.var"]], "lib.riscv": [[10, "module-Lib.RiscV"]], "add() (in module lib.riscv)": [[10, "Lib.RiscV.add"]], "call() (in module lib.riscv)": [[10, "Lib.RiscV.call"]], "conditional_jump() (in module lib.riscv)": [[10, "Lib.RiscV.conditional_jump"]], "div() (in module lib.riscv)": [[10, "Lib.RiscV.div"]], "jump() (in module lib.riscv)": [[10, "Lib.RiscV.jump"]], "land() (in module lib.riscv)": [[10, "Lib.RiscV.land"]], "ld() (in module lib.riscv)": [[10, "Lib.RiscV.ld"]], "li() (in module lib.riscv)": [[10, "Lib.RiscV.li"]], "lor() (in module lib.riscv)": [[10, "Lib.RiscV.lor"]], "mul() (in module lib.riscv)": [[10, "Lib.RiscV.mul"]], "mv() (in module lib.riscv)": [[10, "Lib.RiscV.mv"]], "rem() (in module lib.riscv)": [[10, "Lib.RiscV.rem"]], "sd() (in module lib.riscv)": [[10, "Lib.RiscV.sd"]], "sub() (in module lib.riscv)": [[10, "Lib.RiscV.sub"]], "xor() (in module lib.riscv)": [[10, "Lib.RiscV.xor"]], "absolutejump (class in lib.statement)": [[11, "Lib.Statement.AbsoluteJump"]], "comment (class in lib.statement)": [[11, "Lib.Statement.Comment"]], "conditionaljump (class in lib.statement)": [[11, "Lib.Statement.ConditionalJump"]], "instru3a (class in lib.statement)": [[11, "Lib.Statement.Instru3A"]], "instruction (class in lib.statement)": [[11, "Lib.Statement.Instruction"]], "label (class in lib.statement)": [[11, "Lib.Statement.Label"]], "lib.statement": [[11, "module-Lib.Statement"]], "statement (class in lib.statement)": [[11, "Lib.Statement.Statement"]], "args() (lib.statement.absolutejump method)": [[11, "Lib.Statement.AbsoluteJump.args"]], "args() (lib.statement.conditionaljump method)": [[11, "Lib.Statement.ConditionalJump.args"]], "args() (lib.statement.instru3a method)": [[11, "Lib.Statement.Instru3A.args"]], "args() (lib.statement.instruction method)": [[11, "Lib.Statement.Instruction.args"]], "comment (lib.statement.comment attribute)": [[11, "Lib.Statement.Comment.comment"]], "cond (lib.statement.conditionaljump attribute)": [[11, "Lib.Statement.ConditionalJump.cond"]], "defined() (lib.statement.instruction method)": [[11, "Lib.Statement.Instruction.defined"]], "defined() (lib.statement.statement method)": [[11, "Lib.Statement.Statement.defined"]], "ins (lib.statement.absolutejump attribute)": [[11, "Lib.Statement.AbsoluteJump.ins"]], "ins (lib.statement.instruction attribute)": [[11, "Lib.Statement.Instruction.ins"]], "is_read_only() (lib.statement.instruction method)": [[11, "Lib.Statement.Instruction.is_read_only"]], "label (lib.statement.absolutejump attribute)": [[11, "Lib.Statement.AbsoluteJump.label"]], "label (lib.statement.conditionaljump attribute)": [[11, "Lib.Statement.ConditionalJump.label"]], "name (lib.statement.label attribute)": [[11, "Lib.Statement.Label.name"]], "op1 (lib.statement.conditionaljump attribute)": [[11, "Lib.Statement.ConditionalJump.op1"]], "op2 (lib.statement.conditionaljump attribute)": [[11, "Lib.Statement.ConditionalJump.op2"]], "printins() (lib.statement.comment method)": [[11, "Lib.Statement.Comment.printIns"]], "printins() (lib.statement.instruction method)": [[11, "Lib.Statement.Instruction.printIns"]], "printins() (lib.statement.label method)": [[11, "Lib.Statement.Label.printIns"]], "printins() (lib.statement.statement method)": [[11, "Lib.Statement.Statement.printIns"]], "regset_to_string() (in module lib.statement)": [[11, "Lib.Statement.regset_to_string"]], "rename() (lib.statement.absolutejump method)": [[11, "Lib.Statement.AbsoluteJump.rename"]], "rename() (lib.statement.conditionaljump method)": [[11, "Lib.Statement.ConditionalJump.rename"]], "rename() (lib.statement.instru3a method)": [[11, "Lib.Statement.Instru3A.rename"]], "rename() (lib.statement.instruction method)": [[11, "Lib.Statement.Instruction.rename"]], "substitute() (lib.statement.absolutejump method)": [[11, "Lib.Statement.AbsoluteJump.substitute"]], "substitute() (lib.statement.conditionaljump method)": [[11, "Lib.Statement.ConditionalJump.substitute"]], "substitute() (lib.statement.instru3a method)": [[11, "Lib.Statement.Instru3A.substitute"]], "substitute() (lib.statement.statement method)": [[11, "Lib.Statement.Statement.substitute"]], "targets() (lib.statement.absolutejump method)": [[11, "Lib.Statement.AbsoluteJump.targets"]], "used() (lib.statement.instruction method)": [[11, "Lib.Statement.Instruction.used"]], "used() (lib.statement.statement method)": [[11, "Lib.Statement.Statement.used"]], "with_args() (lib.statement.absolutejump method)": [[11, "Lib.Statement.AbsoluteJump.with_args"]], "with_args() (lib.statement.conditionaljump method)": [[11, "Lib.Statement.ConditionalJump.with_args"]], "with_args() (lib.statement.instru3a method)": [[11, "Lib.Statement.Instru3A.with_args"]], "with_args() (lib.statement.statement method)": [[11, "Lib.Statement.Statement.with_args"]], "branchingterminator (class in lib.terminator)": [[12, "Lib.Terminator.BranchingTerminator"]], "lib.terminator": [[12, "module-Lib.Terminator"]], "return (class in lib.terminator)": [[12, "Lib.Terminator.Return"]], "terminator (in module lib.terminator)": [[12, "Lib.Terminator.Terminator"]], "args() (lib.terminator.branchingterminator method)": [[12, "Lib.Terminator.BranchingTerminator.args"]], "args() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.args"]], "cond (lib.terminator.branchingterminator attribute)": [[12, "Lib.Terminator.BranchingTerminator.cond"]], "is_read_only() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.is_read_only"]], "jump2terminator() (in module lib.terminator)": [[12, "Lib.Terminator.jump2terminator"]], "label_else (lib.terminator.branchingterminator attribute)": [[12, "Lib.Terminator.BranchingTerminator.label_else"]], "label_then (lib.terminator.branchingterminator attribute)": [[12, "Lib.Terminator.BranchingTerminator.label_then"]], "op1 (lib.terminator.branchingterminator attribute)": [[12, "Lib.Terminator.BranchingTerminator.op1"]], "op2 (lib.terminator.branchingterminator attribute)": [[12, "Lib.Terminator.BranchingTerminator.op2"]], "printins() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.printIns"]], "rename() (lib.terminator.branchingterminator method)": [[12, "Lib.Terminator.BranchingTerminator.rename"]], "rename() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.rename"]], "substitute() (lib.terminator.branchingterminator method)": [[12, "Lib.Terminator.BranchingTerminator.substitute"]], "substitute() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.substitute"]], "targets() (lib.terminator.branchingterminator method)": [[12, "Lib.Terminator.BranchingTerminator.targets"]], "targets() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.targets"]], "with_args() (lib.terminator.branchingterminator method)": [[12, "Lib.Terminator.BranchingTerminator.with_args"]], "with_args() (lib.terminator.return method)": [[12, "Lib.Terminator.Return.with_args"]]}})