> Isn't the gimple cfg-cleanup we run post optimization (right before
> expansion) not enough?  Or the cfg-cleanup we perform right after expansion
> now? At least if the branches are really caused by the gimplification
> process I would expect things to be cleaned up at this point, no?

At least the patch has a non-null (albeit minor) effect, which pertains mainly 
to jump threading (typical diff attached, Ada code at -O0 on x86-64).

Eric Botcazou
@@ -648,7 +648,6 @@
 	jmp	.L70
 	leaq	-768(%rbp), %rax
 	addq	$448, %rax
 	movq	%rax, %rdi
@@ -1107,7 +1106,6 @@
 	cmpl	$1, %ebx
 	jne	.L197
 	movq	16(%rbp), %rax
 	movzbl	186(%rax), %eax
 	testb	%al, %al
@@ -1398,7 +1396,6 @@
 	call	prime__worlds_secondary_greeks__compute_secondary_greeks__B68b___finalizer.3706
 	cmpl	$1, %ebx
 	jne	.L198
 	cmpb	$0, -3925(%rbp)
 	je	.L113
 	movq	16(%rbp), %rax
@@ -1672,14 +1669,14 @@
 	movq	-4000(%rbp), %rax
 	movq	-4008(%rbp), %rdx
-	jmp	.L151
+	jmp	.L156
 	movq	%rax, %rcx
 	movq	%rdx, %rax
 	cmpq	$6, %rax
 	je	.L154
 	movq	%rcx, %rax
-	jmp	.L151
+	jmp	.L156
 	movq	%rcx, -96(%rbp)
 	movq	-96(%rbp), %rax
@@ -1712,7 +1709,6 @@
 	je	.L67
 	jmp	.L204
 	jmp	.L156
 	movq	%rax, -4024(%rbp)
@@ -1773,9 +1769,8 @@
 	movq	-4016(%rbp), %rax
 	movq	-4032(%rbp), %rdx
-	jmp	.L166
+	jmp	.L156
 	jmp	.L156
 	movq	%rax, -4048(%rbp)
@@ -1838,9 +1833,8 @@
 	jmp	.L70
 	movq	%r15, %rax
-	jmp	.L173
+	jmp	.L174
 	jmp	.L174
@@ -2510,7 +2504,6 @@
 	jmp	.L253
 	movq	24(%rbp), %rax
 	movzbl	101(%rax), %eax
 	testb	%al, %al
@@ -2578,12 +2571,12 @@
 	movq	%r14, %rax
 	movq	%r15, %rdx
-	jmp	.L264
+	jmp	.L269
 	movq	%rdx, %rcx
 	cmpq	$2, %rcx
 	je	.L267
-	jmp	.L264
+	jmp	.L269
 	movq	%rax, -56(%rbp)
 	movq	-56(%rbp), %rax
@@ -2617,7 +2610,6 @@
 	je	.L250
 	jmp	.L285
 	jmp	.L269
 	movq	%rax, %rbx

Reply via email to