mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
create special case for osx arm
shortcut when store/select are distinct Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
42f5047463
commit
774ce3d7ab
|
@ -1830,8 +1830,11 @@ class JavaDLLComponent(Component):
|
||||||
if IS_WINDOWS: # On Windows, CL creates a .lib file to link against.
|
if IS_WINDOWS: # On Windows, CL creates a .lib file to link against.
|
||||||
out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) %s$(OBJ_EXT) libz3$(LIB_EXT)\n' %
|
out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) %s$(OBJ_EXT) libz3$(LIB_EXT)\n' %
|
||||||
os.path.join('api', 'java', 'Native'))
|
os.path.join('api', 'java', 'Native'))
|
||||||
|
elif IS_OSX and IS_ARCH_ARM64:
|
||||||
|
out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) -arch arm64 %s$(OBJ_EXT) libz3$(SO_EXT)\n' %
|
||||||
|
os.path.join('api', 'java', 'Native'))
|
||||||
else:
|
else:
|
||||||
out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) $(SLINK_EXTRA_FLAGS) %s$(OBJ_EXT) libz3$(SO_EXT)\n' %
|
out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) %s$(OBJ_EXT) libz3$(SO_EXT)\n' %
|
||||||
os.path.join('api', 'java', 'Native'))
|
os.path.join('api', 'java', 'Native'))
|
||||||
out.write('%s.jar: libz3java$(SO_EXT) ' % self.package_name)
|
out.write('%s.jar: libz3java$(SO_EXT) ' % self.package_name)
|
||||||
deps = ''
|
deps = ''
|
||||||
|
|
|
@ -91,9 +91,9 @@ namespace smt {
|
||||||
d->m_parent_selects.push_back(s);
|
d->m_parent_selects.push_back(s);
|
||||||
TRACE("array", tout << v << " " << mk_pp(s->get_expr(), m) << " " << mk_pp(get_enode(v)->get_expr(), m) << "\n";);
|
TRACE("array", tout << v << " " << mk_pp(s->get_expr(), m) << " " << mk_pp(get_enode(v)->get_expr(), m) << "\n";);
|
||||||
m_trail_stack.push(push_back_trail<enode *, false>(d->m_parent_selects));
|
m_trail_stack.push(push_back_trail<enode *, false>(d->m_parent_selects));
|
||||||
for (enode* n : d->m_stores) {
|
for (enode* n : d->m_stores)
|
||||||
instantiate_axiom2a(s, n);
|
instantiate_axiom2a(s, n);
|
||||||
}
|
|
||||||
if (!m_params.m_array_delay_exp_axiom && d->m_prop_upward) {
|
if (!m_params.m_array_delay_exp_axiom && d->m_prop_upward) {
|
||||||
for (enode* store : d->m_parent_stores) {
|
for (enode* store : d->m_parent_stores) {
|
||||||
SASSERT(is_store(store));
|
SASSERT(is_store(store));
|
||||||
|
|
|
@ -179,6 +179,12 @@ namespace smt {
|
||||||
conseq_expr = ctx.bool_var2expr(conseq.var());
|
conseq_expr = ctx.bool_var2expr(conseq.var());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m.are_distinct(idx1->get_expr(), idx2->get_expr())) {
|
||||||
|
ctx.mark_as_relevant(conseq);
|
||||||
|
assert_axiom(conseq);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
literal ante = mk_eq(idx1->get_expr(), idx2->get_expr(), true);
|
literal ante = mk_eq(idx1->get_expr(), idx2->get_expr(), true);
|
||||||
ctx.mark_as_relevant(ante);
|
ctx.mark_as_relevant(ante);
|
||||||
// ctx.force_phase(ante);
|
// ctx.force_phase(ante);
|
||||||
|
|
Loading…
Reference in a new issue