João Silva patch for yapor copy+tabling
This commit is contained in:
parent
233c4ee903
commit
3d0bb05ef0
@ -3405,6 +3405,11 @@ Yap_cclause(volatile Term inp_clause, Int NOfArgs, Term mod, volatile Term src)
|
||||
/* may botch while doing a different module */
|
||||
/* first, initialise cglobs->cint.CompilerBotch to handle all cases of interruptions */
|
||||
compiler_struct cglobs;
|
||||
|
||||
#ifdef TABLING_INNER_CUTS
|
||||
PInstr cglobs_cut_mark;
|
||||
cglobs.cut_mark = &cglobs_cut_mark;
|
||||
#endif /* TABLING_INNER_CUTS */
|
||||
|
||||
/* make sure we know there was no error yet */
|
||||
LOCAL_ErrorMessage = NULL;
|
||||
|
@ -11,6 +11,9 @@
|
||||
** **
|
||||
************************************************************************/
|
||||
|
||||
#ifndef OR_MACROS_H
|
||||
#define OR_MACROS_H
|
||||
|
||||
/* -------------------- **
|
||||
** Prototypes **
|
||||
** -------------------- */
|
||||
@ -605,3 +608,5 @@ qg_sol_fr_ptr CUT_prune_solution_frames(qg_sol_fr_ptr solutions, int ltt) {
|
||||
}
|
||||
return solutions;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -162,8 +162,8 @@ void Yap_init_yapor_stacks_memory(UInt TrailStackArea, UInt HeapStackArea, UInt
|
||||
LOCAL_TrailBase = LOCAL_GlobalBase + GlobalLocalStackArea;
|
||||
LOCAL_LocalBase = LOCAL_TrailBase - CellSize;
|
||||
LOCAL_TrailTop = LOCAL_TrailBase + TrailStackArea;
|
||||
HeapLim = LOCAL_GlobalBase;
|
||||
Yap_InitHeap(Yap_HeapBase);
|
||||
HeapLim = LOCAL_GlobalBase;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,9 @@
|
||||
#include <string.h>
|
||||
#endif /* HAVE_STRING_H */
|
||||
#include "opt.mavar.h"
|
||||
#ifdef YAPOR
|
||||
#include "or.macros.h"
|
||||
#endif
|
||||
|
||||
#ifdef THREADS
|
||||
static inline void **__get_insert_thread_bucket(void **, lockvar * USES_REGS);
|
||||
|
39
configure
vendored
39
configure
vendored
@ -4546,6 +4546,21 @@ $as_echo "#define MinStackSpace (1024*SIZEOF_INT_P)" >>confdefs.h
|
||||
|
||||
$as_echo "#define MinTrailSpace (256*SIZEOF_INT_P)" >>confdefs.h
|
||||
|
||||
if test "$orparallelism" = threads
|
||||
then
|
||||
orparallelism="yes"
|
||||
threads="yes"
|
||||
fi
|
||||
|
||||
if "$orparallelism" = copy || "$orparallelism" = yes -a "$threads" = no
|
||||
then
|
||||
orparallelism="copy"
|
||||
use_malloc="no"
|
||||
elif "$orparallelism" != no
|
||||
then
|
||||
tabling="no"
|
||||
fi
|
||||
|
||||
if test "$orparallelism" != no
|
||||
then
|
||||
|
||||
@ -4553,14 +4568,6 @@ cat >>confdefs.h <<_ACEOF
|
||||
#define MAX_WORKERS $yap_cv_max_workers
|
||||
_ACEOF
|
||||
|
||||
if test "$orparallelism" = copy -o "$orparallelism" = yes
|
||||
then
|
||||
use_malloc="no"
|
||||
fi
|
||||
if test "$orparallelism" = threads
|
||||
then
|
||||
threads="yes"
|
||||
fi
|
||||
else
|
||||
$as_echo "#define MAX_WORKERS 1" >>confdefs.h
|
||||
|
||||
@ -7424,7 +7431,7 @@ fi
|
||||
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DCOROUTINING=1 -DRATIONAL_TREES=1"
|
||||
|
||||
if test "$orparallelism" = no
|
||||
if test "$tabling" = yes
|
||||
then
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DTABLING=1"
|
||||
fi
|
||||
@ -7476,7 +7483,7 @@ as_fn_error $? "--or-parallelism=$orparallelism incompatible with threads
|
||||
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
;;
|
||||
yes|threads)
|
||||
yes)
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_THREADS=1"
|
||||
;;
|
||||
esac
|
||||
@ -7488,7 +7495,7 @@ else
|
||||
a-cow)
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_COW=1"
|
||||
;;
|
||||
yes|copy)
|
||||
copy)
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_COPY=1"
|
||||
;;
|
||||
esac
|
||||
@ -9370,7 +9377,7 @@ $as_echo "#define USE_SYSTEM_MALLOC 1" >>confdefs.h
|
||||
fi
|
||||
else
|
||||
case "$orparallelism" in
|
||||
sba|yes|copy)
|
||||
sba|copy)
|
||||
if test x"$ac_cv_func_mmap" = x"yes"
|
||||
then
|
||||
|
||||
@ -12169,7 +12176,7 @@ else
|
||||
JAVA_TEST=Test.java
|
||||
CLASS_TEST=Test.class
|
||||
cat << \EOF > $JAVA_TEST
|
||||
/* #line 12172 "configure" */
|
||||
/* #line 12179 "configure" */
|
||||
public class Test {
|
||||
}
|
||||
EOF
|
||||
@ -12345,7 +12352,7 @@ EOF
|
||||
if uudecode$EXEEXT Test.uue; then
|
||||
ac_cv_prog_uudecode_base64=yes
|
||||
else
|
||||
echo "configure: 12348: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
|
||||
echo "configure: 12355: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
|
||||
echo "configure: failed file was:" >&5
|
||||
cat Test.uue >&5
|
||||
ac_cv_prog_uudecode_base64=no
|
||||
@ -12476,7 +12483,7 @@ else
|
||||
JAVA_TEST=Test.java
|
||||
CLASS_TEST=Test.class
|
||||
cat << \EOF > $JAVA_TEST
|
||||
/* #line 12479 "configure" */
|
||||
/* #line 12486 "configure" */
|
||||
public class Test {
|
||||
}
|
||||
EOF
|
||||
@ -12511,7 +12518,7 @@ JAVA_TEST=Test.java
|
||||
CLASS_TEST=Test.class
|
||||
TEST=Test
|
||||
cat << \EOF > $JAVA_TEST
|
||||
/* [#]line 12514 "configure" */
|
||||
/* [#]line 12521 "configure" */
|
||||
public class Test {
|
||||
public static void main (String args[]) {
|
||||
System.exit (0);
|
||||
|
31
configure.in
31
configure.in
@ -308,17 +308,24 @@ AC_ARG_WITH(max-threads,
|
||||
AC_DEFINE(MinHeapSpace, (2048*SIZEOF_INT_P), [at least 2M Cells for Heap])
|
||||
AC_DEFINE(MinStackSpace,(1024*SIZEOF_INT_P), [at least 1M Cells for Stack])
|
||||
AC_DEFINE(MinTrailSpace,(256*SIZEOF_INT_P), [at least 1/2M Cells for Trail])
|
||||
if test "$orparallelism" = threads
|
||||
then
|
||||
orparallelism="yes"
|
||||
threads="yes"
|
||||
fi
|
||||
|
||||
if [ "$orparallelism" = copy ] || [ "$orparallelism" = yes -a "$threads" = no ]
|
||||
then
|
||||
orparallelism="copy"
|
||||
use_malloc="no"
|
||||
elif [ "$orparallelism" != no ]
|
||||
then
|
||||
tabling="no"
|
||||
fi
|
||||
|
||||
if test "$orparallelism" != no
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(MAX_WORKERS,$yap_cv_max_workers,[maximum amount of or-parallelism])
|
||||
if test "$orparallelism" = copy -o "$orparallelism" = yes
|
||||
then
|
||||
use_malloc="no"
|
||||
fi
|
||||
if test "$orparallelism" = threads
|
||||
then
|
||||
threads="yes"
|
||||
fi
|
||||
else
|
||||
AC_DEFINE(MAX_WORKERS,1)
|
||||
fi
|
||||
@ -1110,7 +1117,7 @@ fi
|
||||
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DCOROUTINING=1 -DRATIONAL_TREES=1"
|
||||
|
||||
if test "$orparallelism" = no
|
||||
if test "$tabling" = yes
|
||||
then
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DTABLING=1"
|
||||
fi
|
||||
@ -1160,7 +1167,7 @@ if test "$threads" = "yes"
|
||||
[--or-parallelism=$orparallelism incompatible with threads]
|
||||
)
|
||||
;;
|
||||
yes|threads)
|
||||
yes)
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_THREADS=1"
|
||||
;;
|
||||
esac
|
||||
@ -1172,7 +1179,7 @@ else
|
||||
a-cow)
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_COW=1"
|
||||
;;
|
||||
yes|copy)
|
||||
copy)
|
||||
YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_COPY=1"
|
||||
;;
|
||||
esac
|
||||
@ -1682,7 +1689,7 @@ then
|
||||
fi
|
||||
else
|
||||
case "$orparallelism" in
|
||||
sba|yes|copy)
|
||||
sba|copy)
|
||||
if test x"$ac_cv_func_mmap" = x"yes"
|
||||
then
|
||||
AC_DEFINE(USE_SYSTEM_MMAP,1,[use mmap in or-parallel allocation])
|
||||
|
Reference in New Issue
Block a user