Skip to content

Update install target to also install the /etc directory with the flu…#1

Closed
tspyrou wants to merge 1 commit into
developfrom
add_etc_to_install
Closed

Update install target to also install the /etc directory with the flu…#1
tspyrou wants to merge 1 commit into
developfrom
add_etc_to_install

Conversation

@tspyrou
Copy link
Copy Markdown
Contributor

@tspyrou tspyrou commented Nov 20, 2019

…te magic files. Its expected these will go away soon but installing the /etc directory is typically done.

…te magic files. Its expected these will go away soon but installing the /etc directory is typically done.
@tspyrou tspyrou requested a review from jjcherry56 November 20, 2019 14:53
Copy link
Copy Markdown
Contributor

@jjcherry56 jjcherry56 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it belongs in src/CMakeLists.txt alone with the other install specific target and should only copy the 2 specific files.

@tspyrou tspyrou closed this Nov 20, 2019
@tspyrou
Copy link
Copy Markdown
Contributor Author

tspyrou commented Nov 20, 2019

I will make that change. It will avoid etc becoming an install dumping ground.

eder-matheus added a commit that referenced this pull request Dec 18, 2019
tspyrou pushed a commit that referenced this pull request Sep 10, 2020
antonblanchard added a commit to antonblanchard/OpenROAD that referenced this pull request Jan 10, 2021
LLVM address sanitizer hits an array out of bounds access:

    #0 in fr::FlexGridGraph::getEdgeLength(int, int, int, fr::frDirEnum) const src/TritonRoute/src/dr/FlexGridGraph.h
    The-OpenROAD-Project#1 in fr::FlexDRWorker::initMazeCost_ap_planarGrid_helper(fr::FlexMazeIdx const&, fr::frDirEnum const&, int, bool) src/TritonRoute/src/dr/FlexDR_init.cpp
    The-OpenROAD-Project#2 in fr::FlexDRWorker::initMazeCost_ap_helper(fr::drNet*, bool) src/TritonRoute/src/dr/FlexDR_init.cpp:2314:11
    The-OpenROAD-Project#3 in fr::FlexDRWorker::mazeNetInit(fr::drNet*) src/TritonRoute/src/dr/FlexDR_maze.cpp:1767:3

There is already a call to isValid() to check the array indexes are
valid, but it is commented out. Add it back in.
@GuzTech GuzTech mentioned this pull request Jun 14, 2022
maliberty pushed a commit that referenced this pull request Jul 8, 2023
vvbandeira pushed a commit that referenced this pull request Aug 15, 2024
Signed-off-by: Lia Vardanyan <liav@vorak-solutions.com>
osamahammad21 pushed a commit to osamahammad21/OpenROAD that referenced this pull request Jan 19, 2025
…sform_fix

drt: fix transform applied to ap pathsegs
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
defect message:
CID 1587327: (The-OpenROAD-Project#1 of 1): Uninitialized scalar variable (UNINIT)
2. uninit_use_in_call: Using uninitialized value solver.m_error when calling error.

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
defect message:
CID 1444310: (The-OpenROAD-Project#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
1. member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize hpwl_gauge_.

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
defect message:  16. uninit_member: Non-static class member npVars_ is not initialized in this constructor nor in any functions that it calls.

CID 1512693: (The-OpenROAD-Project#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
18. uninit_member: Non-static class member reprint_iter_header is not initialized in this constructor nor in any functions that it calls.

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
defect message:
CID 1544660: (The-OpenROAD-Project#1 of 1): Structurally dead code (UNREACHABLE)
unreachable: Since the loop increment ++<anonymous>; is unreachable, the loop body will never execute more than once.

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
defect message:
CID 1559432: (The-OpenROAD-Project#1 of 1): Division or modulo by float zero (DIVIDE_BY_ZERO)
3. divide_by_zero: In expression tot / num_flops, division by expression num_flops which may be zero has undefined behavior.

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
defect message:  CID 1586137: (The-OpenROAD-Project#1 of 1): Explicit null dereferenced (FORWARD_NULL)
48. var_deref_model: Passing null pointer power to connect, which dereferences it.

it warned only about power->connect(), although I opted to also check at ground, since logic is similar

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh added a commit to gudeh/OpenROAD that referenced this pull request Jun 26, 2025
medium defect reported:
CID 1610083: (The-OpenROAD-Project#1 of 1): Explicit null dereferenced (FORWARD_NULL)
3. dereference: Attempting to access the managed object of an empty smart pointer this->nbc_.

Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
gudeh pushed a commit to gudeh/OpenROAD that referenced this pull request Sep 29, 2025
…rivate/dpl-pin-edge

dpl: disallow abutting pin edges
RamboJHB referenced this pull request in RamboJHB/OpenROAD May 8, 2026
Number every PG-DRC code change in the order data flows from the
user-facing Tcl flag down to the FlexGC checks, so a reader can grep
for [PG-DRC #1] .. [PG-DRC The-OpenROAD-Project#11] and walk the chain end to end:

  #1  TritonRoute.tcl          -- parse -check_pg_nets
  The-OpenROAD-Project#2  TritonRoute.i            -- SWIG bridge
  The-OpenROAD-Project#3  TritonRoute.h            -- public API param
  The-OpenROAD-Project#4  TritonRoute.cpp          -- write router_cfg_->CHECK_PG_NETS
  The-OpenROAD-Project#5  global.h                 -- RouterConfiguration field
  The-OpenROAD-Project#6  serialization.h          -- distributed-worker serialization
  The-OpenROAD-Project#7  frRegionQuery.cpp        -- feed PG snets to drObjs rtree
  The-OpenROAD-Project#8  FlexGC_init.cpp          -- skip PG in fixed-obstacle pass
  The-OpenROAD-Project#9  FlexGC_cut.cpp           -- gate via-table supply-skip
  The-OpenROAD-Project#10 drc_test_pg.tcl          -- end-to-end smoke regression
  The-OpenROAD-Project#11 CMakeLists.txt / BUILD   -- register test in both build systems

Also document why FlexGCWorker::Impl::checkCutSpacing_spc() is
deliberately left alone: that skip honors LEF SAMENETPGONLY and must
keep exempting same-PG-net cuts even when PG DRC is on.

Signed-off-by: Claude <noreply@anthropic.com>
RamboJHB referenced this pull request in RamboJHB/OpenROAD May 8, 2026
…cfg field

Previous version stashed CHECK_PG_NETS in RouterConfiguration so every
downstream stage could read it via router_cfg_. That made the flag a
hidden global: it lived for the lifetime of the router, would persist
across calls, and forced a serialization entry for distributed
workers. Refactor to plumb the bool as an explicit parameter end to
end so PG checking happens only when, and exactly where, the user
asks for it.

  - Drop RouterConfiguration::CHECK_PG_NETS and its serialize line.
  - frRegionQuery::initDRObj gains an include_pg_nets bool (default
    false). All routing/repair callers keep the default; only
    TritonRoute::checkDRC passes true when -check_pg_nets is set.
  - FlexGCWorker gets setCheckPgNets(bool) + Impl::checkPgNets_;
    FlexGC_init.cpp / FlexGC_cut.cpp read the worker member instead
    of router_cfg_.
  - TritonRoute::getDRCMarkers takes the bool and forwards it to
    each FlexGCWorker before init.
  - TritonRoute::checkDRC body re-runs initDRObj(true) only when the
    flag is on (idempotent rebuild) and forwards the bool to
    getDRCMarkers; default check_drc and the routing flow are
    bit-identical to before.

Renumber [PG-DRC #N] markers to follow the new linear chain (#1..The-OpenROAD-Project#10):
  #1  Tcl flag parse
  The-OpenROAD-Project#2  SWIG bridge
  The-OpenROAD-Project#3  TritonRoute::checkDRC declaration
  The-OpenROAD-Project#4  TritonRoute::checkDRC body -> initDRObj(true)
  The-OpenROAD-Project#5  frRegionQuery::Impl::initDRObj feeds PG to drObjs
  The-OpenROAD-Project#6  TritonRoute::getDRCMarkers + FlexGCWorker::setCheckPgNets / member
  The-OpenROAD-Project#7  FlexGCWorker::Impl::initDesign obstacle-pass skip
  The-OpenROAD-Project#8  FlexGCWorker::Impl::checkMetalWidthViaTable supply-skip gate
  The-OpenROAD-Project#9  drc_test_pg.tcl smoke regression
  The-OpenROAD-Project#10 CMakeLists.txt / BUILD registration

Signed-off-by: Claude <noreply@anthropic.com>
RamboJHB referenced this pull request in RamboJHB/OpenROAD May 9, 2026
When the user reports "same output with -check_pg_nets on", we have no
visibility into where the chain is failing. Wire a small set of gated
trace prints that fire only when -check_pg_nets is set, and drop a
per-rule comment block at every spec rule's check entry function so
the spec table maps 1:1 onto the source.

Trace points (chain order, all gated on CHECK_PG_NETS):

  #1 (TritonRoute.tcl)        Tcl proc parsed flag, forwarding to SWIG
  The-OpenROAD-Project#4 (TritonRoute.cpp)        checkDRC entered with the flag
  The-OpenROAD-Project#7 (frRegionQuery.cpp)      initDRObj summary: how many supply nets
                              ingested into drObjs, how many non-supply
                              specials skipped (left as obstacles), how
                              many signal nets skipped entirely
  The-OpenROAD-Project#8 (FlexGC_init.cpp)        FlexGC obstacle pass: how many shapes
                              loaded as fixed obstacles, how many
                              supply shapes deferred to the drObj pass
  The-OpenROAD-Project#10 (TritonRoute.cpp)       output filter: markers in / kept / dropped

  RULE-N (FlexGC.cpp addMarker)
                              every emitted marker is classified into
                              spec rule #1..The-OpenROAD-Project#4 by frConstraintTypeEnum
                              and printed with layer, bbox, and whether
                              any src is a supply owner

Per-rule comment annotations (no per-rect prints; addMarker handles
those centrally to avoid log spam):

  RULE-1 PG-PG spacing      checkMetalSpacing_main (FlexGC_main.cpp)
  RULE-2 Blockage / keepout checkMetalSpacing_short_obs (FlexGC_main),
                            checKeepOutZone_main (FlexGC_cut)
  RULE-3 Width / grid       checkMetalShape_minWidth,
                            checkMetalShape_offGrid (FlexGC_main.cpp)
  RULE-4 Via physical       checkMetalWidthViaTable,
                            checkLef58Enclosure_main (FlexGC_cut.cpp)

Default check_drc (no flag) emits zero new output and the routing
flow is byte-identical.

To diagnose "same result": rebuild and run check_drc -check_pg_nets;
the missing [PG-DRC #N] trace identifies the broken link.

Signed-off-by: Claude <noreply@anthropic.com>
Ava4wonder added a commit to Ava4wonder/OpenROAD that referenced this pull request May 11, 2026
…recursive routeNet)

The first commit that runs ACTUAL alternative-bias maze search
per net. When OPENROAD_DRT_REDESIGN_DRIVE_REAL_K > 1, for each
admitted net:

  1. Save variant 0 as drConnFig clones
  2. TEARDOWN drNet (V2.6.f.2 sub+remove+modEol cycle)
  3. For each k in 1..real_k-1:
       MazeBiasOverride RAII applies the k-th bias schedule
       FlexGridGraph::resetStatus() clears search-frame state
       g_v26f5_in_kbias_inner_ = true → recursive routeNet → false
       (the recursion guard from V2.6.f.5.a prevents inner re-entry)
       capture variant k's drConnFig count for logging
       TEARDOWN drNet again
       gcWorker_->clearPWires() to discard accumulated patches
  4. REBUILD variant 0 from saved clones (addRoute + addPathCost +
     modEol add + gcWorker setTargetNet/updateDRNet/resetTargetNet)
  5. Log per-net stats to stderr

Bias schedule (Khan-Rovinski-informed, DATE 2026 arXiv 2512.03594):
  variant 1: (4×, 1×, 1×)  — higher DRC penalty (their The-OpenROAD-Project#1 finding)
  variant 2: (1×, 4×, 1×)  — higher marker penalty (K≥3)
  variant 3: (1×, 1×, 4×)  — higher fixed-shape penalty (K≥4)

Baseline multipliers applied to upstream's ROUTESHAPECOST,
MARKERCOST, BLOCKCOST from router_cfg_. Khan-Rovinski's Fig 2
found OPTIMAL DRC weight is ~10-30× baseline; 4× is a
conservative midpoint chosen to avoid frUInt4 overflow.

V2.6.f.5.b SCOPE — SHADOW only. Always rebuilds variant 0 at the
end, so production routing is byte-identical to baseline. V2.6.f.5.c
will flip the rebuild to use the winning variant.

Integration gates (asap7_ibex, REAL_K=2, K=1):

  v26f5b_n10_gate (DRIVE_N=10):
    md5 = 769d9e675c8bec2eaff38434e6effd45 (baseline-identical)
    Wall 152s; convergence identical (5841→690→427→9→0)
    Per-net empirical signal: net 270 went 2→6 connFigs; net 456
    went 8→12. 2 of 10 admits show size differences.

  v26f5b_n100_gate (DRIVE_N=100):
    md5 = 769d9e675c8bec2eaff38434e6effd45 (baseline-identical)
    Wall 152s; convergence identical.
    Aggregate signal:
      total admits        = 100
      variant 1 failed    = 0   (4× DRC bias stays routable)
      drConnFig count differs from variant 0 = 14 / 100 (14%)
    86% have identical counts but may still differ in content
    (V2.6.f.5.c will add per-shape content-diff stats).

Empirical interpretation: 14% size-differing rate validates that
4× DRC bias reaches deeply enough into upstream's maze cost map
to change ~1 in 7 routes' topology. Higher bias multipliers (10×
or 20×, closer to Khan-Rovinski's empirical optima) would likely
push that fraction higher. This is the FIRST direct evidence on
asap7_ibex that Option 3's K-bias exploration produces real
multi-candidate diversity at per-net granularity.

V2.6.f.5.c (next) will flip the rebuild step to use the winning
variant. Then hash will diverge from baseline by construction —
and convergence + DRC count gates become the meaningful
quality checks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants