Lines Matching refs:builder
67 CircuitBuilder builder(&circuit);
68 Environment env(0, &builder);
70 builder.SetEnvironment(&env);
71 auto array = builder.Arguments(1);
73 DEFVALUE(index, (&builder), VariableType::INT32(), builder.Int32(0));
74 DEFVALUE(sum, (&builder), VariableType::INT32(), builder.Int32(0));
79 builder.Jump(&loopHead);
80 builder.LoopBegin(&loopHead);
81 auto loopBegin = builder.GetState();
83 auto loadLength = builder.LoadTypedArrayLength(array, ParamType::AnyType());
86 auto cmp = builder.TypedBinaryOp<TypedBinOp::TYPED_ADD>(*index, loadLength, ParamType::IntType());
88 builder.Branch(cmp, &loopBody, &loopExit);
89 builder.Bind(&loopBody);
90 auto loadElement = builder.LoadElement<ecmascript::kungfu::TypedLoadOp::INT32ARRAY_LOAD_ELEMENT>(array, *index);
93 auto sumAdd = builder.TypedBinaryOp<TypedBinOp::TYPED_ADD>(*sum, loadElement, ParamType::IntType());
96 auto indexInc = builder.TypedBinaryOp<TypedBinOp::TYPED_ADD>(*index, builder.Int32(1), ParamType::IntType());
99 builder.LoopEnd(&loopHead);
100 builder.Bind(&loopExit);
101 builder.LoopExit({&sum});
102 auto convert = builder.ConvertInt32ToTaggedInt(*sum);
103 builder.Return(convert);
141 CircuitBuilder builder(&circuit);
142 Environment env(0, &builder);
144 builder.SetEnvironment(&env);
145 auto arg = builder.Arguments(1);
147 DEFVALUE(index, (&builder), VariableType::INT32(), builder.Int32(0));
148 DEFVALUE(sum, (&builder), VariableType::INT32(), builder.Int32(0));
153 builder.Jump(&loopHead);
154 builder.LoopBegin(&loopHead);
155 auto loopBegin = builder.GetState();
157 auto invariant = builder.Int32Mul(arg, builder.Int32(5));
158 builder.Branch(builder.Int32LessThan(*index, invariant), &loopBody, &loopExit);
159 builder.Bind(&loopBody);
160 auto variant = builder.Int32Add(*sum, builder.Int32(2));
162 index = builder.Int32Add(*index, builder.Int32(1));
163 builder.LoopEnd(&loopHead);
164 builder.Bind(&loopExit);
165 builder.Return(builder.ConvertInt32ToTaggedInt(*sum));
186 CircuitBuilder builder(&circuit);
187 Environment env(0, &builder);
189 builder.SetEnvironment(&env);
190 auto arg1 = builder.Arguments(1);
192 auto arg2 = builder.Arguments(2);
198 DEFVALUE(index, (&builder), VariableType::INT32(), builder.Int32(0));
199 DEFVALUE(sum, (&builder), VariableType::INT32(), builder.Int32(0));
204 builder.Jump(&loopHead);
205 builder.LoopBegin(&loopHead);
206 auto loopBegin = builder.GetState();
209 builder.Branch(builder.Int32LessThan(*index, invariant), &loopBody, &loopExit);
210 builder.Bind(&loopBody);
211 auto variant = builder.Load(VariableType::INT32(), arg1, builder.PtrAdd(arg2, *index));
212 sum = builder.Int32Add(*sum, variant);
213 index = builder.Int32Add(*index, builder.Int32(1));
214 builder.LoopEnd(&loopHead);
215 builder.Bind(&loopExit);
216 builder.Return(builder.ConvertInt32ToTaggedInt(*sum));