Search.setIndex({docnames:["index","topics/compilation","topics/contexts","topics/expressions","topics/functions","topics/index","topics/locations","topics/types","tutorial/bf","tutorial/index","tutorial/loops","tutorial/trivial-example"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"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:56},filenames:["index.rst","topics/compilation.rst","topics/contexts.rst","topics/expressions.rst","topics/functions.rst","topics/index.rst","topics/locations.rst","topics/types.rst","tutorial/bf.rst","tutorial/index.rst","tutorial/loops.rst","tutorial/trivial-example.rst"],objects:{"gccjit.BinaryOp":[[3,1,1,"","BITWISE_AND"],[3,1,1,"","BITWISE_OR"],[3,1,1,"","BITWISE_XOR"],[3,1,1,"","DIVIDE"],[3,1,1,"","LOGICAL_AND"],[3,1,1,"","LOGICAL_OR"],[3,1,1,"","MINUS"],[3,1,1,"","MODULO"],[3,1,1,"","MULT"],[3,1,1,"","PLUS"]],"gccjit.Block":[[4,2,1,"","add_assignment"],[4,2,1,"","add_assignment_op"],[4,2,1,"","add_comment"],[4,2,1,"","add_eval"],[4,2,1,"","end_with_conditional"],[4,2,1,"","end_with_jump"],[4,2,1,"","end_with_return"],[4,2,1,"","end_with_void_return"],[4,2,1,"","get_function"]],"gccjit.BoolOption":[[2,1,1,"","DEBUGINFO"],[2,1,1,"","DUMP_EVERYTHING"],[2,1,1,"","DUMP_GENERATED_CODE"],[2,1,1,"","DUMP_INITIAL_GIMPLE"],[2,1,1,"","DUMP_INITIAL_TREE"],[2,1,1,"","DUMP_SUMMARY"],[2,1,1,"","KEEP_INTERMEDIATES"],[2,1,1,"","SELFCHECK_GC"]],"gccjit.Comparison":[[3,1,1,"","EQ"],[3,1,1,"","GE"],[3,1,1,"","GT"],[3,1,1,"","LE"],[3,1,1,"","LT"],[3,1,1,"","NE"]],"gccjit.Context":[[1,2,1,"","compile"],[1,2,1,"","compile_to_file"],[2,2,1,"","dump_reproducer_to_file"],[2,2,1,"","dump_to_file"],[2,2,1,"","get_builtin_function"],[2,2,1,"","get_first_error"],[7,2,1,"","get_int_type"],[7,2,1,"","get_type"],[2,2,1,"","new_array_access"],[2,2,1,"","new_array_type"],[2,2,1,"","new_binary_op"],[2,2,1,"","new_call"],[2,2,1,"","new_call_through_ptr"],[2,2,1,"","new_cast"],[2,2,1,"","new_child_context"],[2,2,1,"","new_comparison"],[2,2,1,"","new_field"],[2,2,1,"","new_function"],[2,2,1,"","new_function_ptr_type"],[2,2,1,"","new_global"],[2,2,1,"","new_location"],[2,2,1,"","new_param"],[2,2,1,"","new_rvalue_from_double"],[2,2,1,"","new_rvalue_from_int"],[2,2,1,"","new_rvalue_from_ptr"],[2,2,1,"","new_string_literal"],[2,2,1,"","new_struct"],[2,2,1,"","new_unary_op"],[2,2,1,"","new_union"],[2,2,1,"","null"],[2,2,1,"","one"],[2,2,1,"","set_bool_option"],[2,2,1,"","set_int_option"],[2,2,1,"","set_logfile"],[2,2,1,"","set_str_option"],[2,2,1,"","zero"]],"gccjit.Function":[[4,2,1,"","dump_to_dot"],[4,2,1,"","get_param"],[4,2,1,"","new_block"],[4,2,1,"","new_local"]],"gccjit.FunctionKind":[[4,1,1,"","ALWAYS_INLINE"],[4,1,1,"","EXPORTED"],[4,1,1,"","IMPORTED"],[4,1,1,"","INTERNAL"]],"gccjit.IntOption":[[2,1,1,"","OPTIMIZATION_LEVEL"]],"gccjit.LValue":[[3,2,1,"","get_address"]],"gccjit.OutputKind":[[1,1,1,"","ASSEMBLER"],[1,1,1,"","DYNAMIC_LIBRARY"],[1,1,1,"","EXECUTABLE"],[1,1,1,"","OBJECT_FILE"]],"gccjit.RValue":[[3,2,1,"","dereference"],[3,2,1,"","dereference_field"],[3,2,1,"","get_type"]],"gccjit.Result":[[1,2,1,"","get_code"]],"gccjit.StrOption":[[2,1,1,"","PROGNAME"]],"gccjit.Struct":[[7,2,1,"","set_fields"]],"gccjit.Type":[[7,2,1,"","get_const"],[7,2,1,"","get_pointer"],[7,2,1,"","get_volatile"]],"gccjit.TypeKind":[[7,1,1,"","BOOL"],[7,1,1,"","CHAR"],[7,1,1,"","CONST_CHAR_PTR"],[7,1,1,"","DOUBLE"],[7,1,1,"","FILE_PTR"],[7,1,1,"","FLOAT"],[7,1,1,"","INT"],[7,1,1,"","LONG"],[7,1,1,"","LONG_DOUBLE"],[7,1,1,"","LONG_LONG"],[7,1,1,"","SHORT"],[7,1,1,"","SIGNED_CHAR"],[7,1,1,"","SIZE_T"],[7,1,1,"","UNSIGNED_CHAR"],[7,1,1,"","UNSIGNED_INT"],[7,1,1,"","UNSIGNED_LONG"],[7,1,1,"","UNSIGNED_LONG_LONG"],[7,1,1,"","UNSIGNED_SHORT"],[7,1,1,"","VOID"],[7,1,1,"","VOID_PTR"]],"gccjit.UnaryOp":[[3,1,1,"","BITWISE_NEGATE"],[3,1,1,"","LOGICAL_NEGATE"],[3,1,1,"","MINUS"]],gccjit:[[3,0,1,"","BinaryOp"],[4,0,1,"","Block"],[2,0,1,"","BoolOption"],[3,0,1,"","Comparison"],[2,0,1,"","Context"],[7,0,1,"","Field"],[4,0,1,"","Function"],[4,0,1,"","FunctionKind"],[2,0,1,"","IntOption"],[3,0,1,"","LValue"],[6,0,1,"","Location"],[1,0,1,"","OutputKind"],[4,0,1,"","Param"],[3,0,1,"","RValue"],[1,0,1,"","Result"],[2,0,1,"","StrOption"],[7,0,1,"","Struct"],[7,0,1,"","Type"],[7,0,1,"","TypeKind"],[3,0,1,"","UnaryOp"]]},objnames:{"0":["py","class","Python class"],"1":["py","data","Python data"],"2":["py","method","Python method"]},objtypes:{"0":"py:class","1":"py:data","2":"py:method"},terms:{"0":[2,4,8,10,11],"00":8,"000":8,"0000000000400620":8,"01":8,"032":8,"05":8,"07":8,"08":8,"09":8,"0a":8,"0f":8,"0x0":8,"0x0000000000400790":8,"0x0000000000400797":8,"0x00000000004007a0":8,"0x1":8,"0x1a":8,"0x2009f0":8,"0x2009f9":8,"0x200a01":8,"0x200a15":8,"0x200a1e":8,"0x200a26":8,"0x200a39":8,"0x30":8,"0x400790":8,"0x41":8,"0x7f4875a62340":2,"0x7f4875a62360":2,"0x7f4875a623a0":2,"0x7f4875a623c0":2,"0x7f4875a62cc0":2,"0x7f4875a62d00":2,"0x7f4875a62d20":2,"0x7f4875a645e8":2,"0x7f4875a64bd0":2,"0x7f4875a64c78":2,"0x7f4875a6b348":2,"0x7f4875a72a50":2,"0x7f4875a72a78":2,"0x7f4875a761e0":2,"0x7f4875a761f8":2,"0x7f4875a77500":2,"0x7f4875a79000":2,"0x7f4875a79080":2,"0x7f4875a7a000":2,"0x7fffffffe448":8,"0x8":8,"0x9":8,"0xdeadbeef":2,"1":[2,8,10],"10":[8,10],"11":8,"12":8,"13":8,"15":[8,11],"16":[2,11],"1920c315ff984892399893b380305ab36e07b455":11,"1a":8,"1e":8,"1f":8,"2":[0,8,11],"20":8,"20131023":[2,11],"2147483647":2,"2147483648":2,"25":[1,11],"26":8,"260":11,"285":10,"29998":8,"2d":8,"3":[0,2,8,10,11],"30000":8,"31":8,"32":2,"39":8,"3d":8,"4":[2,7,8,10,11],"40":8,"4004e0":8,"400620":8,"400627":8,"400629":8,"40062b":8,"400630":8,"400634":8,"40063b":8,"400642":8,"400645":8,"40064c":8,"400650":8,"400654":8,"400659":8,"400660":8,"400667":8,"40066a":8,"400671":8,"400673":8,"400675":8,"400679":8,"40067a":8,"41":8,"44":8,"48":8,"5":[1,2,8,11],"54":2,"56":2,"6":[2,8,11],"601060":8,"601061":8,"65":8,"66":8,"7":[2,8,11],"74":8,"75":8,"78":8,"8":[2,8,11],"80":8,"83":8,"87":8,"88":8,"8d":8,"9":[2,8,11],"boolean":[3,8,10],"break":[8,10],"byte":[2,7,8],"case":[8,10,11],"char":[7,8],"class":[1,2,3,4,6,7,8,10],"const":7,"default":[2,6,11],"do":[1,2,8,11],"export":[1,4,8,10,11],"final":[2,8,10],"float":[2,3,7],"function":[0,1,2,5,6,8,9,10],"goto":[4,10],"import":[1,4,8,10,11],"int":[1,2,7,8,10,11],"long":7,"new":[2,4,10],"null":2,"public":2,"return":[1,2,4,7,8,10,11],"short":7,"static":11,"true":[2,6,7,10,11],"try":[8,11],"void":[2,4,7,8],"while":[4,8,10],A:[1,2,4,6,8,10],AND:3,As:10,At:10,By:11,For:[1,2,3,4,7],If:[2,6],In:[5,8,10,11],Is:2,It:[2,4,8,10,11],No:8,OR:3,The:[0,1,2,3,4,7,9,10,11],There:[1,2],These:10,To:[2,8,10,11],__init__:8,__main__:[8,10,11],__name__:[8,10,11],__str__:[8,11],_bool:7,abcdefghijklmnopqrstuvwxyz:8,abl:2,abov:[8,10,11],accept:[2,6],access:7,action:2,activ:2,actual:[1,2,6],ad:[4,10],add:[2,4,8,10,11],add_assign:[4,8,10],add_assignment_op:[4,8,10],add_com:[4,8],add_ev:[2,4,8],add_opt:8,addit:3,address:[1,2,3],adjust:11,affect:3,after:10,after_loop:10,after_loop_block:[4,10],against:1,aggress:2,ahead:[5,9],aim:1,aka:7,alia:2,align:2,all:[2,10,11],allow:[6,7],alpha:0,alphabet:8,also:[1,6,7,8],although:1,always_inlin:4,amount:2,an:[1,2,3,4,7,8,10,11],analog:[3,4],ani:[1,2],anoth:[10,11],anyth:[8,11],api:[0,1,2,6,8,11],append:8,appropri:4,ar:[0,1,2,3,6,8,10,11],area:10,arg:[2,4,8],argc:8,argument:[2,6],argv:8,arithmet:3,arrai:[2,8],array_typ:8,as_float:2,as_int:2,assembl:[1,2,11],assert:[1,10,11],assign:[2,4,10],associ:[6,11],attach:2,attempt:2,avail:[1,7],awai:4,b6:8,b:[1,2,4,6,7,8,10,11],b_after:8,b_bodi:8,b_test:8,back:[10,11],base:[3,10],basic:[4,10,11],becom:[1,8],been:[1,2,8],befor:[2,10,11],begin:10,below:[2,7],bf:8,binari:[2,5,8],binaryop:[2,3,4,8,10,11],bind:[10,11],bitwis:3,bitwise_and:3,bitwise_neg:3,bitwise_or:3,bitwise_xor:3,block:[2,4,8,10,11],bodi:10,bool:[2,7],boolopt:[2,4,6,8,10,11],boolval:4,both:[0,10],brainf:[0,9],branch:4,breakpoint:8,bug:2,build:[1,10,11],built:[1,3],byte_on:8,byte_typ:8,byte_zero:8,c0:8,c3:8,c4:8,c6:8,c99:7,c:[2,3,4,6,7,8,10,11],c_int:[1,10,11],call:[1,2,4,7,8,10,11],callabl:[1,10,11],callq:8,can:[1,2,4,6,7,8,10,11],canon:2,cell:8,cfi_def_cfa:[2,11],cfi_def_cfa_offset:[2,11],cfi_def_cfa_regist:[2,11],cfi_endproc:[2,11],cfi_offset:[2,11],cfi_startproc:[2,11],cfunctyp:[1,8,10,11],ch:8,chang:2,char_ptr_ptr_typ:8,charact:8,child:2,classic:8,clean:[1,2],clearer:10,client:2,cmpb:8,code:[0,1,2,4,6,8,9,10],col:2,collector:2,column:[2,8],com:10,command:2,comment:[4,8],compar:10,comparison:[2,4,5,8,10],compil:[0,5,6,9,10,11],compile_char:8,compile_to_fil:[1,8],compileerror:8,complement:3,complet:[10,11],complic:2,comput:10,cond:10,cond_block:[4,10],condit:[4,10],consid:[10,11],consist:10,const_char_p:7,const_char_ptr:7,const_int_star:7,constant:[2,8,10],construct:[2,6,8,10,11],contain:[2,8,10,11],content:0,context:[0,3,5,6,7,9,10,11],control:[9,11],convert:[4,9,10],coord:7,copiou:2,correspond:2,cost:2,could:[7,8,10],coupl:10,cpython:0,creat:[0,1,2,4,7,9,10],create_fn:[10,11],creation:10,ctxt:[1,2,4,6,7,8,10,11],ctype:[1,8,10,11],curblock:8,current:[1,10],current_data_is_zero:8,cython:0,d:[2,8,11],data:[2,8],data_cel:8,dd:8,debug:[4,5,6,8,11],debugg:[2,6],debuginfo:[2,6,8],decid:1,decrement:8,def:[8,10,11],defin:11,demonstr:[8,10],depend:[2,10],derefer:3,dereference_field:3,deriv:7,describ:0,dest:8,destin:10,determin:1,develop:2,differ:1,dil:8,directli:8,directori:2,discard:4,disk:1,displai:2,divid:3,divis:3,dll:1,document:[0,8],doe:1,doesn:11,don:6,dot:10,doubl:[7,10],double_typ:7,down:[2,10],dump:[2,4,6,11],dump_everyth:[2,8,10],dump_generated_cod:[2,8,11],dump_initial_gimpl:[2,4,8,10,11],dump_initial_tre:[2,4,10,11],dump_reproducer_to_fil:2,dump_summari:2,dump_to_dot:[4,10],dump_to_fil:[2,6],dynam:[1,8],dynamic_librari:1,e8:8,e:[2,4,11],each:[2,4,8,10],easi:8,easier:10,eax:[2,8,11],eb:8,ec:8,edi:[2,8,11],effect:[2,11],either:[1,4,7,8,11],element_typ:2,elif:8,elimin:2,els:[4,8],emit:8,enabl:[2,6],encapsul:[1,2,6],end:8,end_with_condit:[4,8,10],end_with_jump:[4,8,10],end_with_return:[4,8,10,11],end_with_void_return:[4,8],entri:[2,4,10,11],entry_block:[4,10],entrypoint:[1,4,6],eq:[3,8],equal:10,equival:[2,3,4,10,11],error:[1,2,4],esoter:8,etc:4,evalu:4,eventu:11,everi:[10,11],ex:1,exact:2,exampl:[2,4,7,8,9],exc:8,except:8,exclus:3,execut:[1,2,8],exist:7,exit:[4,8],expr:[3,11],expr_a:3,expr_b:3,express:[0,2,4,5,10,11],f0:8,f9:8,f:2,f_in:8,fake:[2,5,11],fals:[2,10],far:10,fc20:11,fe:8,featur:10,fedora:10,ff:8,field:[2,3,7],field_hash:7,field_i:7,field_next:7,field_x:7,file:[1,2,6,7,9,10,11],file_ptr:7,filenam:[2,8],filesystem:2,find:10,finish:10,first:[2,4,11],fix:11,flag:11,float_typ:2,flow:[9,11],fn:[4,10,11],fn_ptr:2,fn_ptr_type:2,follow:[2,3,10],form:[1,2,9,10,11],format:[2,4,10],formerli:7,friend:4,from:[1,2,3,8,10,11],full:9,func:[2,8],func_getchar:8,func_main:8,func_putchar:8,funcnam:1,function_decl:2,functionkind:[1,4,8,10,11],functyp:1,fundament:7,futur:1,g:[4,11],garbag:2,gcc:[1,2,11],gcc_releas:2,gccjit:[1,2,3,4,6,7,8,10,11],gdb:8,ge:3,gener:[2,6,8,10,11],get:[2,3,4,7,8,10,11],get_address:3,get_builtin_funct:2,get_cod:[1,8,10,11],get_const:7,get_current_data:8,get_first_error:2,get_funct:4,get_int_typ:7,get_param:4,get_point:[7,8],get_typ:[2,3,7,8,10,11],get_volatil:7,getchar:8,gimpl:[2,11],github:10,give:[2,4,6,10,11],given:[1,2,4,6,7,8,10],global:1,globalkind:8,globl:[2,11],gnu:[2,11],go:11,graph:9,graphviz:[4,10],greatli:2,gt:3,guard:10,h:7,ha:[1,8,10,11],hand:10,handl:10,hard:8,hat:[2,11],have:[1,2,4,6,8,10,11],head:2,hello:2,help:[2,8],helper:8,here:[2,8,10,11],how:[2,4,11],http:10,human:[2,8],i:[2,4,8,10,11],ident:[2,11],idx:8,ignor:[1,8],imag:10,immedi:11,implement:[0,1,9],impli:10,imul:[2,11],includ:[2,10],inclus:3,increment:8,independ:8,index:[0,2,4],indic:3,inform:[2,6,8,11],initi:[2,8,10],inject:8,input:[2,8],inputfil:8,inspect:[2,8],instal:10,instanc:[1,2,3,6,7,10],instead:[1,10],int_const_star:7,int_int_func_typ:[1,10,11],int_on:8,int_star:2,int_typ:[2,4,7,8,10,11],int_zero:8,integ:[3,8],integer_cst:2,integer_typ:2,integet:7,intend:2,interest:2,intermedi:2,intermingl:10,intern:[4,6,8],intopt:[2,8,10,11],invalid:1,invok:2,involv:2,ir:[4,9],is_sign:7,is_variad:2,isinst:11,its:[2,11],itself:11,je:8,jit:[6,8,11],jit_result:[1,10,11],jmp:8,jne:8,jrfonseca:10,js:2,jump:[4,10,11],just:[1,8,10,11],keep_intermedi:[2,8,10],kind:[1,2,3,11],l14:11,l16:11,l2:2,label_decl:2,label_expr:2,languag:[2,6,9],le:3,lea:8,leak:2,left:10,legal:4,legibl:8,len:8,less:8,let:[10,11],level:[2,8,10,11],lex:8,lfb0:2,lfb6:11,lfb7:11,lfe0:2,lfe6:11,lfe7:11,libgccjit:[1,2,4,9,10,11],librari:[1,2,8,11],lifetim:1,like:[2,6,7,8,10,11],line:[2,8,10],link:1,list:[8,11],liter:2,ll:8,loc:[2,3,4,7,8],local:[4,10],local_i:[4,10],local_sum:[4,10],locat:[0,1,2,3,4,5],log:2,logic:3,logical_and:3,logical_neg:3,logical_or:3,long_doubl:7,long_long:7,look:[1,7,8,10,11],lookup:7,loop:[0,8,9],loop_block:[4,10],loop_test:[8,10],lt:[3,4,10],lvalu:[2,3,4,8,10],lvalue_a:10,lvalue_b:10,m_hash:7,m_next:7,machin:[0,1,8,9,10],made:2,mai:[2,4],main:8,mainfunc:8,make:[1,2,8,10],make_main:8,manag:8,match:1,max:2,mean:[2,8],meaning:4,memori:[2,5],messag:[2,4],metavar:8,method:[7,11],min:2,minu:[3,8],mismatch:8,model:7,modifi:[4,10],modify_expr:2,modul:0,modulo:3,more:[1,8,10,11],most:6,mov:8,movb:8,movl:[2,11],movq:[2,11],movzbl:8,msg:[2,8],much:2,mult:[3,10,11],mult_expr:2,multipl:[1,3,4],must:[1,2,4,11],my:10,n:[2,4,8,10],name:[1,2,4,10,11],natur:11,ne:3,necessarili:2,need:[1,2,6,8,10,11],negat:3,new_array_access:[2,3,8],new_array_typ:[2,8],new_binary_op:[2,3,10,11],new_block:[4,8,10,11],new_cal:[2,4,8],new_call_through_ptr:2,new_cast:[2,8],new_child_context:2,new_comparison:[2,3,4,8,10],new_field:[2,7],new_funct:[1,2,8,10,11],new_function_ptr_typ:2,new_glob:[2,8],new_loc:[2,4,6,8,10],new_param:[2,8,10,11],new_rvalue_from_doubl:2,new_rvalue_from_int:[2,8],new_rvalue_from_ptr:2,new_string_liter:2,new_struct:[2,7],new_unary_op:[2,3],new_union:2,next:10,node:7,node_ptr:7,none:[1,2,3,4,6,7,8],nopl:8,nopw:8,note:[0,2,10,11],notion:8,now:[10,11],num_byt:7,num_el:2,number:2,numer:2,numeric_typ:2,o0:[2,11],o3:[2,11],o:[1,8,10],objdump:8,object:[1,2,8,11],object_fil:1,obtain:11,occur:1,ok:11,on_fals:4,on_non_zero:8,on_tru:4,on_zero:8,onc:[1,7],one:[2,3,4,6,7,8,10,11],ongo:2,onli:[2,7,10,11],op:[2,4],opaqu:7,open:8,open_paren:8,oper:[2,5,8,10],opt:2,optim:[2,4,8,11],optimization_level:[2,8,10,11],option:[5,6,8,9],optionpars:8,optpars:8,order:7,other:[1,9,10],our:[10,11],out:[1,2,8],output:[1,2,8],output_path:8,outputfil:8,outputkind:[1,8],overal:8,p2align:11,p:8,page:0,pair:3,param:[2,4,10,11],param_argc:8,param_argv:8,param_i:[10,11],param_n:[4,10],param_typ:2,paramet:[2,7,10,11],paren:8,parent:1,parm_decl:2,pars:8,parse_arg:8,parse_into_ctxt:8,parser:8,particularli:8,pass:2,path:[1,2,4,6],perform:[2,11],phase:2,place:10,plt:8,plu:[3,4,8,10],png:10,point:[2,3,4,6,7],pointer:[1,2,3,8],pointer_to_thi:2,pointer_typ:2,pop:8,popq:[2,11],popul:[1,7,8,10,11],populate_ctxt:10,possibl:[8,11],precan:10,precis:2,prefer:10,prefix:2,prevent:1,previou:8,primarili:1,print:[2,8,10,11],process:[1,2,8],product:0,profil:2,progbit:[2,11],prognam:2,program:[1,2,8,10,11],project:4,provid:8,ptr:2,pushq:[2,11],putchar:8,py:[8,10],py_func:8,py_func_typ:8,python:[2,8,10,11],pythonpath:8,qualiti:0,quotient:3,rais:8,ran:8,rax:8,rbp:[2,11],reach:10,read:[8,10],readabl:2,reason:11,recip:2,red:[2,11],reduc:2,refer:[0,8,10],referenti:7,rel:11,relev:10,remaind:3,repeat:8,replai:2,repres:[2,10],represent:[2,4,6,11],reproduc:2,resembl:2,result:[1,2,3,4,8,11],result_decl:2,result_typ:2,ret:[2,11],retq:8,return_expr:2,return_typ:[2,10],reword:10,right:[2,10],rip:8,roughli:4,routin:11,rsp:[2,8,11],rtype:1,run:[2,8,11],rvalu:[2,3,4,8,10],s:[1,2,3,4,7,8,10,11],sai:10,same:1,sampl:2,script:9,search:0,second:2,section:[2,11],see:[2,7,8,10,11],seen:[4,10],seld:2,self:[1,2,7,8],selfcheck_gc:2,selftest:2,separ:10,sequenc:[2,4],set:[0,2,6,8,11],set_bool_opt:[2,6,8,10,11],set_field:7,set_int_opt:[2,8,10,11],set_logfil:2,set_str_opt:2,sever:7,shake:2,shall:8,should:11,shouldn:0,show:[2,4,8],si:2,side:[2,10],sign:[2,7,11],signed:7,signed_char:7,similar:10,simpl:[8,11],simpler:2,simpli:10,sinc:2,singl:[4,6,8,10,11],singlestep:8,size:[2,7,11],size_t:7,slow:2,small:11,so:[1,2,6,8,10,11],sole:10,some:[2,7,10],some_fn:4,somehow:10,someth:[6,10,11],somewhat:8,sourc:[0,2,5,8],space:1,specif:[7,10,11],specifi:[1,7,11],squar:[1,2,10,11],stack:[2,11],standard:[5,8],start:8,state:[2,8,11],statement:[4,6,10,11],statement_list:2,stdbool:7,stderr:[2,11],step:[2,6],stepi:8,stmt:2,stone:0,storag:10,str:[2,10],stream:8,stroption:2,struct:[2,7],structur:5,sub:8,subb:8,subclass:10,subject:2,subtract:3,succe:1,success:8,successor:4,suffix:1,suit:2,suitabl:8,sum:[4,10],suppli:[2,10],support:[0,1],sy:[2,8],symtab:2,system:11,t:[0,2,3,6,7,11],tail:2,taken:2,target:4,temporari:2,term:10,termin:[4,10,11],test:8,test_calling_fn:[10,11],text:[2,4,11],textual:4,the_typ:[4,10],thei:[0,10],them:[6,8,10],thi:[0,1,2,3,4,6,7,8,10,11],thing:[2,11],though:[8,10],thought:10,through:[2,6,8],throughout:6,thu:[4,8,10],time:[2,5,9,11],tmp:[6,10],tool:8,top:[2,8,10],topic:0,toward:3,tpng:10,trace:8,tradit:1,tree:2,trivial:[0,8,9],truncat:3,turn:[8,10,11],tutori:0,two:10,type:[0,2,3,4,5,10,11],type_:[2,4],type_enum:7,typedef:2,typekind:[2,7,8,10,11],typic:[1,2,7],u:2,unari:[2,5],unaryop:[2,3],underli:2,unfortun:2,union:2,uniqu:2,unit:2,unless:2,unlik:8,unoptim:2,unsign:[7,8],unsigned_char:[7,8],unsigned_int:7,unsigned_long:7,unsigned_long_long:7,unsigned_short:7,until:8,unus:2,up:[1,2,4,6,7,8,11],update_loc:[2,6],uppercas:8,us:[0,1,2,3,4,6,7,8,10,11],usabl:[2,6],usag:2,usual:10,val:2,valid:2,valu:[1,2,3,4,10,11],valueerror:8,valueless:4,variabl:[0,2,4,9],variad:2,variant:7,variou:[2,10,11],ve:[10,11],via:[1,4,8,10],viewer:10,visibl:4,visual:9,void_ptr:[7,10,11],void_typ:[2,8],volatil:7,wai:[7,8,10],we:[8,10,11],web:2,well:10,were:6,what:[1,2,8,10,11],when:[1,2,4,10,11],where:[7,10],wherea:3,which:[1,2,4,7,8,10,11],whitespac:8,within:[1,2,4,8,10,11],wno:2,word:10,work:10,world:2,would:8,wrap:[1,8],write:[2,4,8,10],writer:8,written:[2,8,10],x:[3,7],xdot:10,xor:8,y:[3,7],yet:0,you:[1,2,4,6,7,10,11],your:[2,4,6],yum:10,zero:[2,3,4,8,10]},titles:["Python bindings for libgccjit","Compiling a context","Compilation contexts","Expressions","Functions","Topic Reference","Source Locations","Types","Implementing a \u201cbrainf\u201d compiler","Tutorial","Loops and variables","Creating a trivial machine code function"],titleterms:{"boolean":2,"function":[4,11],In:1,The:8,ahead:[1,8],binari:3,bind:0,brainf:8,code:11,comparison:3,compil:[1,2,8],context:[1,2,8],control:10,convert:8,creat:11,debug:2,exampl:[10,11],express:3,fake:6,file:8,flow:10,form:8,full:[10,11],graph:10,implement:8,indic:0,integ:2,ir:8,languag:8,libgccjit:[0,8],locat:6,loop:10,machin:11,memori:1,oper:3,option:[2,11],other:8,python:0,refer:5,script:8,sourc:6,standard:7,string:2,structur:7,tabl:0,time:[1,8],topic:5,trivial:11,tutori:9,type:7,unari:3,variabl:10,visual:10}})