From b9cc24b14b237c373395d146ae37e3b7faec556d Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Tue, 19 Jun 2012 09:11:45 +0200 Subject: [PATCH] Remove the never read flag irop_flag_labeled. --- include/libfirm/irop.h | 29 ++++++++------- ir/be/TEMPLATE/TEMPLATE_spec.pl | 8 ++--- ir/be/amd64/amd64_spec.pl | 6 ++-- ir/be/arm/arm_spec.pl | 16 ++++----- ir/be/ia32/ia32_spec.pl | 51 ++++++++++++--------------- ir/be/scripts/generate_new_opcodes.pl | 2 +- ir/be/sparc/sparc_spec.pl | 14 ++++---- scripts/ir_spec.py | 4 +-- 8 files changed, 62 insertions(+), 68 deletions(-) diff --git a/include/libfirm/irop.h b/include/libfirm/irop.h index 4eaed6a25..9d2f94a29 100644 --- a/include/libfirm/irop.h +++ b/include/libfirm/irop.h @@ -62,28 +62,27 @@ typedef enum { /** The irop flags */ typedef enum { irop_flag_none = 0, /**< Nothing. */ - irop_flag_labeled = 1U << 0, /**< If set, output edge labels on in-edges in vcg graph. */ - irop_flag_commutative = 1U << 1, /**< This operation is commutative. */ - irop_flag_cfopcode = 1U << 2, /**< This operation is a control flow operation. */ - irop_flag_fragile = 1U << 3, /**< Set if the operation can change the + irop_flag_commutative = 1U << 0, /**< This operation is commutative. */ + irop_flag_cfopcode = 1U << 1, /**< This operation is a control flow operation. */ + irop_flag_fragile = 1U << 2, /**< Set if the operation can change the control flow because of an exception. */ - irop_flag_forking = 1U << 4, /**< Forking control flow at this operation. */ - irop_flag_highlevel = 1U << 5, /**< This operation is a pure high-level one and can be + irop_flag_forking = 1U << 3, /**< Forking control flow at this operation. */ + irop_flag_highlevel = 1U << 4, /**< This operation is a pure high-level one and can be skipped in low-level optimizations. */ - irop_flag_constlike = 1U << 6, /**< This operation has no arguments and is some + irop_flag_constlike = 1U << 5, /**< This operation has no arguments and is some kind of a constant. */ - irop_flag_always_opt = 1U << 7, /**< This operation must always be optimized .*/ - irop_flag_keep = 1U << 8, /**< This operation can be kept in End's keep-alive list. */ - irop_flag_start_block = 1U << 9, /**< This operation is always placed in the Start block. */ - irop_flag_uses_memory = 1U << 10, /**< This operation has a memory input and may change the memory state. */ - irop_flag_dump_noblock = 1U << 11, /**< node should be dumped outside any blocks */ - irop_flag_dump_noinput = 1U << 12, /**< node is a placeholder for "no input" */ - irop_flag_cse_neutral = 1U << 13, /**< This operation is CSE neutral to its users. */ + irop_flag_always_opt = 1U << 6, /**< This operation must always be optimized .*/ + irop_flag_keep = 1U << 7, /**< This operation can be kept in End's keep-alive list. */ + irop_flag_start_block = 1U << 8, /**< This operation is always placed in the Start block. */ + irop_flag_uses_memory = 1U << 9, /**< This operation has a memory input and may change the memory state. */ + irop_flag_dump_noblock = 1U << 10, /**< node should be dumped outside any blocks */ + irop_flag_dump_noinput = 1U << 11, /**< node is a placeholder for "no input" */ + irop_flag_cse_neutral = 1U << 12, /**< This operation is CSE neutral to its users. */ /** This operation jumps to an unknown destination. The CFG is a * conservative aproximation in this case. You cannot change the destination * of an unknown_jump */ - irop_flag_unknown_jump = 1U << 14, + irop_flag_unknown_jump = 1U << 13, } irop_flags; /** Returns the ident for the opcode name */ diff --git a/ir/be/TEMPLATE/TEMPLATE_spec.pl b/ir/be/TEMPLATE/TEMPLATE_spec.pl index eec091e7d..35f66d1f3 100644 --- a/ir/be/TEMPLATE/TEMPLATE_spec.pl +++ b/ir/be/TEMPLATE/TEMPLATE_spec.pl @@ -230,7 +230,7 @@ Jmp => { # Load / Store Load => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], irn_flags => [ "rematerializable" ], state => "exc_pinned", reg_req => { in => [ "gp", "none" ], out => [ "gp" ] }, @@ -238,7 +238,7 @@ Load => { }, Store => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], irn_flags => [ "rematerializable" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ] }, @@ -298,7 +298,7 @@ fConst => { # Load / Store fLoad => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], irn_flags => [ "rematerializable" ], state => "exc_pinned", reg_req => { in => [ "gp", "none" ], out => [ "fp" ] }, @@ -306,7 +306,7 @@ fLoad => { }, fStore => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], irn_flags => [ "rematerializable" ], state => "exc_pinned", reg_req => { in => [ "gp", "fp", "none" ] }, diff --git a/ir/be/amd64/amd64_spec.pl b/ir/be/amd64/amd64_spec.pl index 1effcd434..c6f495181 100644 --- a/ir/be/amd64/amd64_spec.pl +++ b/ir/be/amd64/amd64_spec.pl @@ -268,7 +268,7 @@ Cmp => { Jcc => { state => "pinned", - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], reg_req => { in => [ "eflags" ], out => [ "none", "none" ] }, ins => [ "eflags" ], outs => [ "false", "true" ], @@ -278,7 +278,7 @@ Jcc => { }, Load => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "none" ], out => [ "gp", "none" ] }, @@ -300,7 +300,7 @@ FrameAddr => { }, Store => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "ptr", "val", "mem" ], diff --git a/ir/be/arm/arm_spec.pl b/ir/be/arm/arm_spec.pl index 8a5a6a4d0..1956d3ebd 100644 --- a/ir/be/arm/arm_spec.pl +++ b/ir/be/arm/arm_spec.pl @@ -392,7 +392,7 @@ Tst => { }, B => { - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], state => "pinned", mode => "mode_T", reg_req => { in => [ "flags" ], out => [ "none", "none" ] }, @@ -410,7 +410,7 @@ Jmp => { }, SwitchJmp => { - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], state => "pinned", mode => "mode_T", attr => "const ir_switch_table *table", @@ -421,7 +421,7 @@ SwitchJmp => { }, Ldr => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", ins => [ "ptr", "mem" ], outs => [ "res", "M" ], @@ -432,7 +432,7 @@ Ldr => { }, Str => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", ins => [ "ptr", "val", "mem" ], outs => [ "M" ], @@ -444,7 +444,7 @@ Str => { }, StoreStackM4Inc => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], irn_flags => [ "rematerializable" ], state => "exc_pinned", reg_req => { in => [ "sp", "gp", "gp", "gp", "gp", "none" ], out => [ "sp:I|S", "none" ] }, @@ -453,7 +453,7 @@ StoreStackM4Inc => { }, LoadStackM3Epilogue => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], irn_flags => [ "rematerializable" ], state => "exc_pinned", reg_req => { in => [ "sp", "none" ], out => [ "r11:I", "sp:I|S", "pc:I", "none" ] }, @@ -528,7 +528,7 @@ Cmfe => { }, Ldf => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", ins => [ "ptr", "mem" ], outs => [ "res", "M" ], @@ -539,7 +539,7 @@ Ldf => { }, Stf => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", ins => [ "ptr", "val", "mem" ], outs => [ "M" ], diff --git a/ir/be/ia32/ia32_spec.pl b/ir/be/ia32/ia32_spec.pl index 8cda2d229..6a971683d 100644 --- a/ir/be/ia32/ia32_spec.pl +++ b/ir/be/ia32/ia32_spec.pl @@ -587,7 +587,7 @@ l_Sbb => { }, IDiv => { - op_flags => [ "fragile", "uses_memory", "labeled" ], + op_flags => [ "fragile", "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "gp", "eax", "edx" ], out => [ "eax", "flags", "none", "edx", "none", "none" ] }, @@ -601,7 +601,7 @@ IDiv => { }, Div => { - op_flags => [ "fragile", "uses_memory", "labeled" ], + op_flags => [ "fragile", "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "gp", "eax", "edx" ], out => [ "eax", "flags", "none", "edx", "none", "none" ] }, @@ -1027,7 +1027,7 @@ CMovcc => { Jcc => { state => "pinned", - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], reg_req => { in => [ "eflags" ], out => [ "none", "none" ] }, ins => [ "eflags" ], outs => [ "false", "true" ], @@ -1039,7 +1039,7 @@ Jcc => { SwitchJmp => { state => "pinned", - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], reg_req => { in => [ "gp", "gp" ] }, ins => [ "base", "index" ], out_arity => "variable", @@ -1147,7 +1147,7 @@ ChangeCW => { }, FldCW => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "fpcw:I" ] }, ins => [ "base", "index", "mem" ], @@ -1159,7 +1159,7 @@ FldCW => { }, FnstCW => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "pinned", reg_req => { in => [ "gp", "gp", "none", "fp_cw" ], out => [ "none" ] }, ins => [ "base", "index", "mem", "fpcw" ], @@ -1170,7 +1170,7 @@ FnstCW => { }, FnstCWNOP => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "pinned", reg_req => { in => [ "fp_cw" ], out => [ "none" ] }, ins => [ "fpcw" ], @@ -1195,7 +1195,7 @@ Cltd => { # lateny of 0 for load is correct Load => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "gp", "none", "none", "none", "none" ] }, @@ -1207,7 +1207,7 @@ Load => { }, Store => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "gp" ], out => [ "none", "none", "none" ] }, @@ -1219,7 +1219,7 @@ Store => { }, Store8Bit => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "eax ebx ecx edx" ], out => ["none", "none", "none" ] }, @@ -1550,7 +1550,7 @@ Inport => { # Intel style prefetching # Prefetch0 => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "base", "index", "mem" ], @@ -1561,7 +1561,7 @@ Prefetch0 => { }, Prefetch1 => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "base", "index", "mem" ], @@ -1572,7 +1572,7 @@ Prefetch1 => { }, Prefetch2 => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "base", "index", "mem" ], @@ -1583,7 +1583,7 @@ Prefetch2 => { }, PrefetchNTA => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "base", "index", "mem" ], @@ -1597,7 +1597,7 @@ PrefetchNTA => { # 3DNow! prefetch instructions # Prefetch => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "base", "index", "mem" ], @@ -1608,7 +1608,7 @@ Prefetch => { }, PrefetchW => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "none" ] }, ins => [ "base", "index", "mem" ], @@ -1853,7 +1853,7 @@ Ucomi => { }, xLoad => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "xmm", "none", "none", "none", "none" ] }, @@ -1867,7 +1867,7 @@ xLoad => { }, xStore => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "xmm" ], out => [ "none", "none", "none" ] }, @@ -1879,7 +1879,7 @@ xStore => { }, xStoreSimple => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "xmm" ], out => [ "none", "none", "none" ] }, @@ -1891,7 +1891,6 @@ xStoreSimple => { }, CvtSI2SS => { - op_flags => [ "labeled" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "gp" ], out => [ "xmm" ] }, ins => [ "base", "index", "mem", "val" ], @@ -1903,7 +1902,6 @@ CvtSI2SS => { }, CvtSI2SD => { - op_flags => [ "labeled" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "gp" ], out => [ "xmm" ] }, ins => [ "base", "index", "mem", "val" ], @@ -2117,7 +2115,7 @@ vfchs => { vfld => { irn_flags => [ "rematerializable" ], - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "vfp", "none", "none", "none", "none" ] }, @@ -2132,7 +2130,7 @@ vfld => { vfst => { irn_flags => [ "rematerializable" ], - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "vfp" ], out => [ "none", "none", "none" ] }, @@ -2443,7 +2441,6 @@ fchs => { fld => { irn_flags => [ "rematerializable" ], - op_flags => [ "labeled" ], state => "exc_pinned", emit => '. fld%XM %AM', attr_type => "ia32_x87_attr_t", @@ -2453,7 +2450,6 @@ fld => { fst => { irn_flags => [ "rematerializable" ], - op_flags => [ "labeled" ], state => "exc_pinned", emit => '. fst%XM %AM', mode => "mode_M", @@ -2464,7 +2460,6 @@ fst => { fstp => { irn_flags => [ "rematerializable" ], - op_flags => [ "labeled" ], state => "exc_pinned", emit => '. fstp%XM %AM', mode => "mode_M", @@ -2693,7 +2688,7 @@ FtstFnstsw => { # Spilling and reloading of SSE registers, hardcoded, not generated # xxLoad => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none" ], out => [ "xmm", "none", "none", "none" ] }, @@ -2705,7 +2700,7 @@ xxLoad => { }, xxStore => { - op_flags => [ "uses_memory", "fragile", "labeled" ], + op_flags => [ "uses_memory", "fragile" ], state => "exc_pinned", reg_req => { in => [ "gp", "gp", "none", "xmm" ], out => [ "none", "none", "none" ] }, diff --git a/ir/be/scripts/generate_new_opcodes.pl b/ir/be/scripts/generate_new_opcodes.pl index 0c45138ff..d703097e7 100755 --- a/ir/be/scripts/generate_new_opcodes.pl +++ b/ir/be/scripts/generate_new_opcodes.pl @@ -675,7 +675,7 @@ EOF } my %known_flags = map { $_ => 1 } ( - "none", "labeled", "commutative", "cfopcode", "unknown_jump", "fragile", + "none", "commutative", "cfopcode", "unknown_jump", "fragile", "forking", "highlevel", "constlike", "always_opt", "keep", "start_block", "uses_memory", "dump_noblock", "dump_noinput", "cse_neutral" diff --git a/ir/be/sparc/sparc_spec.pl b/ir/be/sparc/sparc_spec.pl index 6d74e131f..7484d822f 100644 --- a/ir/be/sparc/sparc_spec.pl +++ b/ir/be/sparc/sparc_spec.pl @@ -347,7 +347,7 @@ SubX_t => { # Load / Store Ld => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", constructors => { imm => { @@ -380,7 +380,7 @@ SetHi => { }, St => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], mode => "mode_M", state => "exc_pinned", constructors => { @@ -474,7 +474,7 @@ FrameAddr => { }, Bicc => { - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], irn_flags => [ "has_delay_slot" ], state => "pinned", mode => "mode_T", @@ -487,7 +487,7 @@ Bicc => { }, fbfcc => { - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], irn_flags => [ "has_delay_slot" ], state => "pinned", mode => "mode_T", @@ -569,7 +569,7 @@ Cmp => { # aka SubccZero }, SwitchJmp => { - op_flags => [ "labeled", "cfopcode", "forking" ], + op_flags => [ "cfopcode", "forking" ], irn_flags => [ "has_delay_slot" ], state => "pinned", mode => "mode_T", @@ -889,7 +889,7 @@ fftoi => { }, Ldf => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", constructors => { s => { @@ -911,7 +911,7 @@ Ldf => { }, Stf => { - op_flags => [ "uses_memory", "labeled" ], + op_flags => [ "uses_memory" ], state => "exc_pinned", constructors => { s => { diff --git a/scripts/ir_spec.py b/scripts/ir_spec.py index c998ebed7..ec9043c04 100755 --- a/scripts/ir_spec.py +++ b/scripts/ir_spec.py @@ -178,7 +178,7 @@ class Block(Op): block = "NULL" pinned = "yes" arity = "variable" - flags = [ "labeled" ] + flags = [] attr_struct = "block_attr" attrs = [ dict( @@ -953,7 +953,7 @@ class Tuple(Op): arity = "variable" mode = "mode_T" pinned = "no" - flags = [ "labeled" ] + flags = [] class Unknown(Op): """Returns an unknown (at compile- and runtime) value. It is a valid -- 2.20.1