Lines Matching full:block
80 validate: nil, enable_builder: false, lang: 'PANDA_ASSEMBLY', &block) argument
99 @body = block
122 # Return true if graph doesn't contain conditional basic block, i.e. with more than one successor.
142 raise "Invalid `While` block" if @cf_stack[-1].head_bb.nil?
143 block = @cf_stack[-1].head_bb
145 block = @current_block
147 inst = IRInstruction.new(opcode, inst_index(), block)
152 block.append inst unless inst.global?
184 def method_missing(method, *args, &block) argument
185 if Options.compiling && args.empty? && block.nil?
281 define_method(name) do |*inputs, &block|
282 raise "Current basic block is nil" if @current_block.nil?
285 process_inst(inst, &block)
353 @cf_stack.reverse.each do |block|
354 return block if block.depth == else_depth && block.kind == CfBlock::Kind::IfThen
356 raise "`If` block not found"
359 def process_inst(inst, &block) argument
360 if !block.nil?
373 instance_eval &block
382 @cf_stack.delete_if do |block|
383 next if block.depth <= @current_depth
385 if block.bb.true_succ.nil?
386 if block.kind == CfBlock::Kind::While
387 block.bb.set_true_succ(block.head_bb)
389 …# If last instruction in the block is a terminator(e.g. Return), then don't set true successor, he…
390 # will point to the end block, that is required by IR design.
391 …block.bb.set_true_succ(@current_block) unless !block.bb.empty? && block.bb.last_instruction.termin…
396 …if block.head_bb.false_succ.nil? && (block.kind == CfBlock::Kind::IfThen || block.kind == CfBlock:…
397 block.head_bb.set_false_succ(@current_block)