This commit is contained in:
Matthias Koefferlein 2022-06-26 01:33:49 +02:00
parent 43b63923a7
commit 91c85172e3
4 changed files with 15 additions and 10 deletions

View File

@ -1648,6 +1648,7 @@ DeepRegion::run_check (db::edge_relation_type rel, bool different_polygons, cons
bool other_is_merged = true;
bool needs_merged_primary = different_polygons || options.needs_merged ();
needs_merged_primary = true; // @@@
bool primary_is_merged = ! merged_semantics () || needs_merged_primary || is_merged ();
if (other == subject_regionptr ()) {

View File

@ -253,7 +253,8 @@ namespace std
h = hfunc_coord (o.end_ext (), h);
h = hfunc_coord (o.width (), h);
// NOTE: using too many points for the hash function just slows down the code.
unsigned int n = 20;
// @@@ unsigned int n = 20;
unsigned int n = std::numeric_limits<unsigned int>::max (); // @@@
for (typename db::path<C>::iterator p = o.begin (); p != o.end (); ++p) {
if (--n == 0) {
h = hfunc (o.points (), h);
@ -288,7 +289,8 @@ namespace std
size_t hfunc (const db::polygon_contour<C> &o, size_t h)
{
// NOTE: using too many points for the hash function just slows down the code.
unsigned int n = 20;
// @@@ unsigned int n = 20;
unsigned int n = std::numeric_limits<unsigned int>::max (); // @@@
for (typename db::polygon_contour<C>::simple_iterator i = o.begin (); i != o.end (); ++i) {
if (--n == 0) {
h = hfunc (o.size (), h);
@ -324,7 +326,8 @@ namespace std
{
h = hfunc (o.hull (), h);
// NOTE: using too many points for the hash function just slows down the code.
unsigned int n = 20;
// @@@ unsigned int n = 20;
unsigned int n = std::numeric_limits<unsigned int>::max (); // @@@
for (size_t i = 0; i < o.holes (); ++i) {
if (--n == 0) {
h = hfunc (o.holes (), h);

View File

@ -342,11 +342,11 @@ template <class TS, class TI, class TR>
local_processor_cell_context<TS, TI, TR> &
local_processor_cell_context<TS, TI, TR>::operator= (const local_processor_cell_context &other)
{
if (this != &other) {
m_propagated = other.m_propagated;
m_drops = other.m_drops;
}
return *this;
if (this != &other) {
m_propagated = other.m_propagated;
m_drops = other.m_drops;
}
return *this;
}
template <class TS, class TI, class TR>
@ -1221,6 +1221,7 @@ private:
db::box_convert <db::CellInst, true> inst_bc (*mp_subject_layout, m_subject_layer);
db::Box rbox = db::box_convert<TI> () (ref);
// @@@ make member of receiver?
db::shape_reference_translator_with_trans<TI, db::ICplxTrans> rt (mp_subject_layout);
for (db::CellInstArray::iterator n = inst->begin_touching (safe_box_enlarged (rbox, dist - 1, dist - 1), inst_bc); ! n.at_end (); ++n) {

View File

@ -250,7 +250,7 @@ check_local_operation<TS, TI>::do_compute_local (db::Layout *layout, const shape
size_t n = 0;
if (m_is_merged) {
if (m_is_merged || (interactions.size () == 1 && interactions.subject_shape (interactions.begin ()->first).is_box ())) {
for (typename shape_interactions<TS, TI>::iterator i = interactions.begin (); i != interactions.end (); ++i) {
const TS &subject = interactions.subject_shape (i->first);
@ -355,7 +355,7 @@ check_local_operation<TS, TI>::do_compute_local (db::Layout *layout, const shape
size_t n = 0;
if (m_is_merged) {
if (m_is_merged || (interactions.size () == 1 && ids.empty () && interactions.subject_shape (interactions.begin ()->first).is_box ())) {
for (typename shape_interactions<TS, TI>::iterator i = interactions.begin (); i != interactions.end (); ++i) {
// we can't directly insert because TS may be != TI