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


--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


--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 v13 8/8] Allow to print raw parse tree.
@ 2024-01-22 09:45  Tatsuo Ishii <[email protected]>
  0 siblings, 0 replies; 36+ messages in thread

From: Tatsuo Ishii @ 2024-01-22 09:45 UTC (permalink / raw)

---
 src/backend/tcop/postgres.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 1a34bd3715..68f5cf3667 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -652,6 +652,10 @@ pg_parse_query(const char *query_string)
 	}
 #endif
 
+	if (Debug_print_parse)
+		elog_node_display(LOG, "raw parse tree", raw_parsetree_list,
+						  Debug_pretty_print);
+
 	TRACE_POSTGRESQL_QUERY_PARSE_DONE(query_string);
 
 	return raw_parsetree_list;
-- 
2.25.1


----Next_Part(Mon_Jan_22_19_26_18_2024_011)----





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


end of thread, other threads:[~2024-01-22 09:45 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]>
2024-01-22 09:45 [PATCH v13 8/8] Allow to print raw parse tree. Tatsuo Ishii <[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