mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	gh-107901: compiler replaces POP_BLOCK instruction by NOPs before optimisations (#114530)
This commit is contained in:
		
							parent
							
								
									33ae9895d4
								
							
						
					
					
						commit
						ac5e53e150
					
				
					 1 changed files with 2 additions and 1 deletions
				
			
		|  | @ -903,6 +903,7 @@ label_exception_targets(basicblock *entryblock) { | ||||||
|             } |             } | ||||||
|             else if (instr->i_opcode == POP_BLOCK) { |             else if (instr->i_opcode == POP_BLOCK) { | ||||||
|                 handler = pop_except_block(except_stack); |                 handler = pop_except_block(except_stack); | ||||||
|  |                 INSTR_SET_OP0(instr, NOP); | ||||||
|             } |             } | ||||||
|             else if (is_jump(instr)) { |             else if (is_jump(instr)) { | ||||||
|                 instr->i_except = handler; |                 instr->i_except = handler; | ||||||
|  | @ -2313,7 +2314,7 @@ convert_pseudo_ops(cfg_builder *g) | ||||||
|     for (basicblock *b = entryblock; b != NULL; b = b->b_next) { |     for (basicblock *b = entryblock; b != NULL; b = b->b_next) { | ||||||
|         for (int i = 0; i < b->b_iused; i++) { |         for (int i = 0; i < b->b_iused; i++) { | ||||||
|             cfg_instr *instr = &b->b_instr[i]; |             cfg_instr *instr = &b->b_instr[i]; | ||||||
|             if (is_block_push(instr) || instr->i_opcode == POP_BLOCK) { |             if (is_block_push(instr)) { | ||||||
|                 INSTR_SET_OP0(instr, NOP); |                 INSTR_SET_OP0(instr, NOP); | ||||||
|             } |             } | ||||||
|             else if (instr->i_opcode == LOAD_CLOSURE) { |             else if (instr->i_opcode == LOAD_CLOSURE) { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Irit Katriel
						Irit Katriel