Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9db7d47

Browse files
committed
#ifdef out assorted unused GEQO code.
I'd always assumed that backend/optimizer/geqo/'s remarkably poorshowing on code coverage metrics was because we weren't exercisingit much in the regression tests. But it turns out that a good chunkof the problem is that there's a bunch of code that is physicallyunreachable (because the calls to it are #ifdef'd out in geqo_main.c)but is being built anyway. Making the called code have #if guardssimilar to the calling code saves a couple of kilobytes of executablesize and should make the coverage numbers more reflective of reality.It's arguable that we should just delete all the unused recombinationmechanisms altogether, but I didn't feel a need to go that far today.
1 parent0d18852 commit9db7d47

File tree

10 files changed

+30
-3
lines changed

10 files changed

+30
-3
lines changed

‎src/backend/optimizer/geqo/geqo_cx.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include"optimizer/geqo_recombination.h"
3939
#include"optimizer/geqo_random.h"
4040

41+
#if defined(CX)
4142

4243
/* cx
4344
*
@@ -119,3 +120,5 @@ cx(PlannerInfo *root, Gene *tour1, Gene *tour2, Gene *offspring,
119120

120121
returnnum_diffs;
121122
}
123+
124+
#endif/* defined(CX) */

‎src/backend/optimizer/geqo/geqo_erx.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include"optimizer/geqo_recombination.h"
3636
#include"optimizer/geqo_random.h"
3737

38+
#if defined(ERX)
3839

3940
staticintgimme_edge(PlannerInfo*root,Genegene1,Genegene2,Edge*edge_table);
4041
staticvoidremove_gene(PlannerInfo*root,Genegene,Edgeedge,Edge*edge_table);
@@ -466,3 +467,5 @@ edge_failure(PlannerInfo *root, Gene *gene, int index, Edge *edge_table, int num
466467
elog(ERROR,"no edge found");
467468
return0;/* to keep the compiler quiet */
468469
}
470+
471+
#endif/* defined(ERX) */

‎src/backend/optimizer/geqo/geqo_main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ doubleGeqo_seed;
4646
staticintgimme_pool_size(intnr_rel);
4747
staticintgimme_number_generations(intpool_size);
4848

49-
/*define edgerecombinationcrossover [ERX] per default */
49+
/*complain if norecombinationmechanism is #define'd */
5050
#if !defined(ERX)&& \
5151
!defined(PMX)&& \
5252
!defined(CX)&& \
5353
!defined(PX)&& \
5454
!defined(OX1)&& \
5555
!defined(OX2)
56-
#defineERX
56+
#error "must choose one GEQO recombination mechanism in geqo.h"
5757
#endif
5858

5959

‎src/backend/optimizer/geqo/geqo_mutation.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
#include"optimizer/geqo_mutation.h"
3636
#include"optimizer/geqo_random.h"
3737

38+
#if defined(CX)/* currently used only in CX mode */
39+
3840
void
3941
geqo_mutation(PlannerInfo*root,Gene*tour,intnum_gene)
4042
{
@@ -60,3 +62,5 @@ geqo_mutation(PlannerInfo *root, Gene *tour, int num_gene)
6062
num_swaps-=1;
6163
}
6264
}
65+
66+
#endif/* defined(CX) */

‎src/backend/optimizer/geqo/geqo_ox1.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include"optimizer/geqo_random.h"
3838
#include"optimizer/geqo_recombination.h"
3939

40+
#if defined(OX1)
4041

4142
/* ox1
4243
*
@@ -90,3 +91,5 @@ ox1(PlannerInfo *root, Gene *tour1, Gene *tour2, Gene *offspring, int num_gene,
9091
}
9192

9293
}
94+
95+
#endif/* defined(OX1) */

‎src/backend/optimizer/geqo/geqo_ox2.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include"optimizer/geqo_random.h"
3838
#include"optimizer/geqo_recombination.h"
3939

40+
#if defined(OX2)
4041

4142
/* ox2
4243
*
@@ -107,3 +108,5 @@ ox2(PlannerInfo *root, Gene *tour1, Gene *tour2, Gene *offspring, int num_gene,
107108
}
108109

109110
}
111+
112+
#endif/* defined(OX2) */

‎src/backend/optimizer/geqo/geqo_pmx.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include"optimizer/geqo_random.h"
3838
#include"optimizer/geqo_recombination.h"
3939

40+
#if defined(PMX)
4041

4142
/* pmx
4243
*
@@ -219,3 +220,5 @@ pmx(PlannerInfo *root, Gene *tour1, Gene *tour2, Gene *offspring, int num_gene)
219220
pfree(indx);
220221
pfree(check_list);
221222
}
223+
224+
#endif/* defined(PMX) */

‎src/backend/optimizer/geqo/geqo_px.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include"optimizer/geqo_random.h"
3838
#include"optimizer/geqo_recombination.h"
3939

40+
#if defined(PX)
4041

4142
/* px
4243
*
@@ -105,3 +106,5 @@ px(PlannerInfo *root, Gene *tour1, Gene *tour2, Gene *offspring, int num_gene,
105106
}
106107

107108
}
109+
110+
#endif/* defined(PX) */

‎src/backend/optimizer/geqo/geqo_recombination.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ init_tour(PlannerInfo *root, Gene *tour, int num_gene)
5858
}
5959
}
6060

61+
/* city table is used in these recombination methods: */
62+
#if defined(CX)|| defined(PX)|| defined(OX1)|| defined(OX2)
63+
6164
/* alloc_city_table
6265
*
6366
* allocate memory for city table
@@ -85,3 +88,5 @@ free_city_table(PlannerInfo *root, City *city_table)
8588
{
8689
pfree(city_table);
8790
}
91+
92+
#endif/* CX || PX || OX1 || OX2 */

‎src/include/optimizer/geqo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
#define GEQO_DEBUG
3232
*/
3333

34-
/* recombination mechanism */
34+
/*choose onerecombination mechanism here */
3535
/*
3636
#define ERX
3737
#define PMX

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp