Skip to content

Commit

Permalink
pythongh-91276: remove unused _PyOpcode_RelativeJump
Browse files Browse the repository at this point in the history
  • Loading branch information
iritkatriel committed Mar 31, 2023
1 parent 80163e1 commit 5633b95
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 42 deletions.
13 changes: 0 additions & 13 deletions Include/internal/pycore_opcode.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 1 addition & 4 deletions Include/internal/pycore_opcode_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ extern "C" {
# error "this header requires Py_BUILD_CORE define"
#endif

#include "pycore_opcode.h" // _PyOpcode_RelativeJump
#include "pycore_opcode.h" // _PyOpcode_Jump


#define MAX_REAL_OPCODE 254
Expand Down Expand Up @@ -85,9 +85,6 @@ is_bit_set_in_table(const uint32_t *table, int bitindex) {
#undef LOG_BITS_PER_INT
#undef MASK_LOW_LOG_BITS

#define IS_RELATIVE_JUMP(opcode) (is_bit_set_in_table(_PyOpcode_RelativeJump, opcode))



#ifdef __cplusplus
}
Expand Down
34 changes: 11 additions & 23 deletions Python/flowgraph.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,6 @@ is_block_push(cfg_instr *i)
return IS_BLOCK_PUSH_OPCODE(i->i_opcode);
}

static inline int
is_relative_jump(cfg_instr *i)
{
return IS_RELATIVE_JUMP(i->i_opcode);
}

static inline int
is_jump(cfg_instr *i)
{
Expand Down Expand Up @@ -199,8 +193,7 @@ blocksize(basicblock *b)
static void
dump_instr(cfg_instr *i)
{
const char *jrel = (is_relative_jump(i)) ? "jrel " : "";
const char *jabs = (is_jump(i) && !is_relative_jump(i))? "jabs " : "";
const char *jump = is_jump(i) ? "jump " : "";

char arg[128];

Expand All @@ -211,8 +204,8 @@ dump_instr(cfg_instr *i)
if (HAS_TARGET(i->i_opcode)) {
sprintf(arg, "target: %p [%d] ", i->i_target, i->i_oparg);
}
fprintf(stderr, "line: %d, opcode: %d %s%s%s\n",
i->i_loc.lineno, i->i_opcode, arg, jabs, jrel);
fprintf(stderr, "line: %d, opcode: %d %s%s\n",
i->i_loc.lineno, i->i_opcode, arg, jump);
}

static inline int
Expand Down Expand Up @@ -500,25 +493,20 @@ resolve_jump_offsets(basicblock *entryblock)
for (int i = 0; i < b->b_iused; i++) {
cfg_instr *instr = &b->b_instr[i];
int isize = _PyCfg_InstrSize(instr);
/* Relative jumps are computed relative to
the instruction pointer after fetching
the jump instruction.
*/
/* jump offsets are computed relative to
* the instruction pointer after fetching
* the jump instruction.
*/
bsize += isize;
if (is_jump(instr)) {
instr->i_oparg = instr->i_target->b_offset;
if (is_relative_jump(instr)) {
if (instr->i_oparg < bsize) {
assert(IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode));
instr->i_oparg = bsize - instr->i_oparg;
}
else {
assert(!IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode));
instr->i_oparg -= bsize;
}
if (instr->i_oparg < bsize) {
assert(IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode));
instr->i_oparg = bsize - instr->i_oparg;
}
else {
assert(!IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode));
instr->i_oparg -= bsize;
}
if (_PyCfg_InstrSize(instr) != isize) {
extended_arg_recompile = 1;
Expand Down
2 changes: 0 additions & 2 deletions Tools/build/generate_opcode_h.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,10 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna
for name, op in specialized_opmap.items():
fobj.write(DEFINE.format(name, op))

iobj.write("\nextern const uint32_t _PyOpcode_RelativeJump[9];\n")
iobj.write("\nextern const uint32_t _PyOpcode_Jump[9];\n")
iobj.write("\nextern const uint8_t _PyOpcode_Caches[256];\n")
iobj.write("\nextern const uint8_t _PyOpcode_Deopt[256];\n")
iobj.write("\n#ifdef NEED_OPCODE_TABLES\n")
write_int_array_from_ops("_PyOpcode_RelativeJump", opcode['hasjrel'], iobj)
write_int_array_from_ops("_PyOpcode_Jump", opcode['hasjrel'] + opcode['hasjabs'], iobj)

iobj.write("\nconst uint8_t _PyOpcode_Caches[256] = {\n")
Expand Down

0 comments on commit 5633b95

Please sign in to comment.