aboutsummaryrefslogtreecommitdiffstats
path: root/cse.c
diff options
context:
space:
mode:
Diffstat (limited to 'cse.c')
-rw-r--r--cse.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/cse.c b/cse.c
index 4c91e56..a35177e 100644
--- a/cse.c
+++ b/cse.c
@@ -22,7 +22,7 @@ static struct instruction_list *insn_hash_table[INSN_HASH_SIZE];
#define hashval(x) ((unsigned long)(x))
-int repeat_phase;
+int repeat_phase, merge_phi_sources;
static int phi_compare(pseudo_t phi1, pseudo_t phi2)
{
@@ -209,6 +209,10 @@ static int insn_compare(const void *_i1, const void *_i2)
return i1->src1 < i2->src1 ? -1 : 1;
if (i1->bb != i2->bb)
return i1->bb < i2->bb ? -1 : 1;
+ if (!merge_phi_sources) {
+ if (i1 != i2)
+ return i1 < i2 ? -1 : 1;
+ }
break;
default: