agora inbox for [email protected]  
help / color / mirror / Atom feed
[PATCH 3/4] Add autoconf test for computed goto support.
36+ messages / 2 participants
[nested] [flat]

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--2644zxlc6bgs5acp
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH 3/4] Add autoconf test for computed goto support.
@ 2017-02-07 22:16  Andres Freund <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Andres Freund @ 2017-02-07 22:16 UTC (permalink / raw)

Author: Andres Freund
---
 config/c-compiler.m4          | 24 ++++++++++++++++++++++++
 configure                     | 34 ++++++++++++++++++++++++++++++++++
 configure.in                  |  1 +
 src/include/pg_config.h.in    |  3 +++
 src/include/pg_config.h.win32 |  3 +++
 5 files changed, 65 insertions(+)

diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 7d901e1f1a..f56d8852f0 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -491,3 +491,27 @@ if test x"$Ac_cachevar" = x"yes"; then
 fi
 undefine([Ac_cachevar])dnl
 ])# PGAC_SSE42_CRC32_INTRINSICS
+
+
+
+# PGAC_C_COMPUTED_GOTO
+# -----------------------
+# Check if the C compiler knows computed gotos (gcc extension, also
+# available in at least clang).  If so define HAVE_COMPUTED_GOTO
+#
+# Checking whether computed gotos are supported syntax-wise ought to
+# be enough, as the syntax is otherwise illegal.
+AC_DEFUN([PGAC_C_COMPUTED_GOTO],
+[AC_CACHE_CHECK(for computed goto support, pgac_cv__computed_goto,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+[[void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+]])],
+[pgac_cv__computed_goto=yes],
+[pgac_cv__computed_goto=no])])
+if test x"$pgac_cv__computed_goto" = xyes ; then
+AC_DEFINE(HAVE__COMPUTED_GOTO, 1,
+  [Define to 1 if your compiler handles computed gotos.])
+fi])# PGAC_C_COMPUTED_GOTO
diff --git a/configure b/configure
index b5cdebb510..fafef4638e 100755
--- a/configure
+++ b/configure
@@ -11564,6 +11564,40 @@ if test x"$pgac_cv__va_args" = xyes ; then
 $as_echo "#define HAVE__VA_ARGS 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for computed goto support" >&5
+$as_echo_n "checking for computed goto support... " >&6; }
+if ${pgac_cv__computed_goto+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+void *labeladdrs[] = {&&my_label};
+  goto *labeladdrs[0];
+  my_label:
+  return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv__computed_goto=yes
+else
+  pgac_cv__computed_goto=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__computed_goto" >&5
+$as_echo "$pgac_cv__computed_goto" >&6; }
+if test x"$pgac_cv__computed_goto" = xyes ; then
+
+$as_echo "#define HAVE__COMPUTED_GOTO 1" >>confdefs.h
+
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.in b/configure.in
index 1d99cda1d8..9aa9203c40 100644
--- a/configure.in
+++ b/configure.in
@@ -1323,6 +1323,7 @@ PGAC_C_BUILTIN_BSWAP64
 PGAC_C_BUILTIN_CONSTANT_P
 PGAC_C_BUILTIN_UNREACHABLE
 PGAC_C_VA_ARGS
+PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 5bcd8a1160..94de1a75a2 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -687,6 +687,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 #undef HAVE__BUILTIN_UNREACHABLE
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #undef HAVE__CPUID
 
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 3e4132cd82..c5441855bd 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -514,6 +514,9 @@
 /* Define to 1 if your compiler understands __builtin_unreachable. */
 /* #undef HAVE__BUILTIN_UNREACHABLE */
 
+/* Define to 1 if your compiler handles computed gotos. */
+#undef HAVE__COMPUTED_GOTO
+
 /* Define to 1 if you have __cpuid. */
 #define HAVE__CPUID 1
 
-- 
2.11.0.22.g8d7a455.dirty


--y7hr4yk6lkjgumip
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
 filename="0004-WIP-Faster-expression-evaluation-and-targetlist-proj.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread

* [PATCH v43 5/7] Fix crash caused by involuntary decoding of unrelated relations
@ 2026-03-19 18:48  Álvaro Herrera <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Álvaro Herrera @ 2026-03-19 18:48 UTC (permalink / raw)

Author: Srinath Reddy Sadipiralla <[email protected]>
---
 src/backend/commands/cluster.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index b0ecc769ee4..36950aea780 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -2666,6 +2666,21 @@ repack_setup_logical_decoding(Oid relid)
 	 */
 	Assert(!ctx->fast_forward);
 
+	/* Avoid logical decoding of other relations. */
+	rel = table_open(relid, AccessShareLock);
+	repacked_rel_locator = rel->rd_locator;
+	toastrelid = rel->rd_rel->reltoastrelid;
+	if (OidIsValid(toastrelid))
+	{
+		Relation	toastrel;
+
+		/* Avoid logical decoding of other TOAST relations. */
+		toastrel = table_open(toastrelid, AccessShareLock);
+		repacked_rel_toast_locator = toastrel->rd_locator;
+		table_close(toastrel, AccessShareLock);
+	}
+	table_close(rel, AccessShareLock);
+
 	DecodingContextFindStartpoint(ctx);
 
 	/*
@@ -2702,21 +2717,6 @@ repack_setup_logical_decoding(Oid relid)
 											   "REPACK - change",
 											   ALLOCSET_DEFAULT_SIZES);
 
-	/* Avoid logical decoding of other relations. */
-	rel = table_open(relid, AccessShareLock);
-	repacked_rel_locator = rel->rd_locator;
-	toastrelid = rel->rd_rel->reltoastrelid;
-	if (OidIsValid(toastrelid))
-	{
-		Relation	toastrel;
-
-		/* Avoid logical decoding of other TOAST relations. */
-		toastrel = table_open(toastrelid, AccessShareLock);
-		repacked_rel_toast_locator = toastrel->rd_locator;
-		table_close(toastrel, AccessShareLock);
-	}
-	table_close(rel, AccessShareLock);
-
 	/* The file will be set as soon as we have it opened. */
 	dstate->file = NULL;
 
-- 
2.47.3


--nzintiedl6o4kcyp
Content-Type: text/x-diff; charset=utf-8
Content-Disposition: attachment;
	filename="v43-0006-Fix-a-few-problems-in-index-build-progress-repor.patch"



^ permalink  raw  reply  [nested|flat] 36+ messages in thread


end of thread, other threads:[~2026-03-19 18:48 UTC | newest]

Thread overview: 36+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2017-02-07 22:16 [PATCH 3/4] Add autoconf test for computed goto support. Andres Freund <[email protected]>
2026-03-19 18:48 [PATCH v43 5/7] Fix crash caused by involuntary decoding of unrelated relations Álvaro Herrera <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox