Skip to content

Commit 61d5b48

Browse files
committed
Merge branch 'master' into gui-python
Signed-off-by: Matt Liberty <[email protected]>
2 parents 8010ea5 + 5ba8849 commit 61d5b48

File tree

6,916 files changed

+9717661
-3011911
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

6,916 files changed

+9717661
-3011911
lines changed

.bazelignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
build/
2+
debug/
3+
src/sta/build/
4+
src/sta/debug/

.bazelrc

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
common --enable_bzlmod
2+
common --enable_workspace # explicitly currently still needing this
3+
4+
# suppress distracting warning about newer module
5+
# versions found in dependency graph.
6+
common --check_direct_dependencies=off
7+
8+
# Test timeouts for various levels.
9+
test --test_timeout=300,1800,1800,9600
10+
11+
# bazel 7 is somewhat forgiving for glob patterns that don't
12+
# match, but bazel 8 will be strict. So start now.
13+
common --incompatible_disallow_empty_glob
14+
15+
build --cxxopt "-std=c++17" --host_cxxopt "-std=c++17"
16+
build --cxxopt "-xc++" --host_cxxopt "-xc++"
17+
build --cxxopt "-DBAZEL_BUILD" --host_cxxopt "-DBAZEL_BUILD"
18+
19+
# Needed for floating point stability in FFT (fft_test will check this).
20+
# See also https://kristerw.github.io/2021/11/09/fp-contract/
21+
build --cxxopt "-ffp-contract=off" --host_cxxopt "-ffp-contract=off"
22+
23+
# allow exceptions.
24+
build --cxxopt=-fexceptions --host_cxxopt=-fexceptions
25+
26+
# Turn warnings on...
27+
build --copt "-Wall" --host_copt "-Wall"
28+
build --copt "-Wextra" --host_copt "-Wextra"
29+
30+
# ... and disable the warnings we're not interested in.
31+
build --copt "-Wno-sign-compare" --host_copt "-Wno-sign-compare"
32+
build --copt "-Wno-unused-parameter" --host_copt "-Wno-unused-parameter"
33+
build --copt "-Wno-c++20-designator" --host_copt "-Wno-c++20-designator"
34+
build --copt "-Wno-gcc-compat" --host_copt "-Wno-gcc-compat"
35+
build --copt "-Wno-nullability-extension" --host_copt "-Wno-nullability-extension"
36+
37+
# The warning acceptance bar in CI for PRs is set by -Werror of a specific
38+
# version of some chosen compiler. Disable warnings from other compilers until
39+
# they are fixed and under CI -Werror acceptance critera as there is nothing the
40+
# developers can(they can't be reproduced locally or in CI) or should do about
41+
# these warnings in code they are not working on.
42+
build --copt "-Wno-unused-private-field" --host_copt "-Wno-unused-private-field"
43+
build --copt "-Wno-cast-function-type-mismatch" --host_copt "-Wno-cast-function-type-mismatch"
44+
build --copt "-Wno-unused-but-set-variable" --host_copt "-Wno-unused-but-set-variable"
45+
build --copt "-Wno-deprecated-copy" --host_copt "-Wno-deprecated-copy"
46+
build --copt "-Wno-deprecated-copy-with-user-provided-copy" --host_copt "-Wno-deprecated-copy-with-user-provided-copy"
47+
build --copt "-Wno-dangling" --host_copt "-Wno-dangling"
48+
49+
# For 3rd party code: Disable warnings entirely.
50+
# They are not actionable and just create noise.
51+
build --per_file_copt=external/.*@-w
52+
build --host_per_file_copt=external/.*@-w
53+
54+
# Settings for --config=asan address sanitizer build
55+
build:asan --strip=never
56+
build:asan --copt -fsanitize=address --host_copt -fsanitize=address
57+
build:asan --copt -DADDRESS_SANITIZER --host_copt -DADDRESS_SANITIZER
58+
build:asan --copt -O1 --host_copt -O1
59+
build:asan --copt -g --host_copt -g
60+
build:asan --copt -fno-omit-frame-pointer --host_copt -fno-omit-frame-pointer
61+
build:asan --linkopt -fsanitize=address --host_linkopt -fsanitize=address
62+
63+
# Flags with enough debug symbols to get useful outputs with Linux `perf`
64+
build:profile --strip=never
65+
build:profile --copt -g --host_copt -g
66+
build:profile --copt -gmlt --host_copt -gmlt
67+
build:profile --copt -fno-omit-frame-pointer --host_copt -fno-omit-frame-pointer
68+
69+
# TODO: document
70+
build --incompatible_strict_action_env
71+
72+
test --build_tests_only
73+
74+
# --- Performance Optimizations ---
75+
# Use a high number of jobs and let the scheduler manage concurrency
76+
build --jobs=200
77+
78+
# Enable local disk caching to supplement the remote cache.
79+
build --disk_cache=~/.cache/bazel-disk-cache
80+
build --repository_cache=~/.cache/bazel-repository-cache
81+
82+
# CI only needs to know if the build succeeded, not the artifacts themselves.
83+
build:ci --remote_download_minimal
84+
build:ci --remote_upload_local_results=true
85+
# Disable disk cache for CI builds
86+
build:ci --disk_cache=
87+
88+
# Setup remote cache
89+
build --remote_cache=https://bazel.precisioninno.com
90+
build --remote_cache_compression=true
91+
build --remote_upload_local_results=false
92+
93+
# Without this, bazelisk build ... builds the bazel-orfs tests
94+
build --build_tag_filters=-orfs
95+
96+
try-import %workspace%/user.bazelrc

.bazelversion

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8.3.1

.buildifier.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "auto",
3+
"mode": "fix",
4+
"lint": "fix",
5+
"warnings": "all"
6+
}

.clang-format

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ BraceWrapping:
2626
SplitEmptyNamespace: true
2727
BreakBeforeBinaryOperators: All
2828
BreakBeforeBraces: Custom
29+
InsertBraces: true
30+
LineEnding: LF
2931
DerivePointerAlignment: false
3032
SpaceAfterCStyleCast: true
3133
Standard: c++17

.clang-tidy

Lines changed: 119 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,122 @@
1-
Checks: >
2-
-*,
3-
readability-identifier-naming
41

5-
WarningsAsErrors: "*"
2+
Checks: >
3+
clang-diagnostic-*,
4+
clang-analyzer-*,
5+
-clang-analyzer-core.NonNullParamChecker,
6+
-clang-analyzer-core.CallAndMessage,
7+
-clang-analyzer-core.uninitialized.UndefReturn,
8+
-clang-analyzer-cplusplus.NewDeleteLeaks,
9+
-clang-analyzer-optin.performance.Padding,
10+
readability-*,
11+
-readability-identifier-naming,
12+
-readability-braces-around-statements,
13+
-readability-convert-member-functions-to-static,
14+
-readability-function-cognitive-complexity,
15+
-readability-identifier-length,
16+
-readability-implicit-bool-conversion,
17+
-readability-isolate-declaration,
18+
-readability-magic-numbers,
19+
-readability-make-member-function-const,
20+
-readability-named-parameter,
21+
-readability-qualified-auto,
22+
-readability-redundant-access-specifiers,
23+
-readability-simplify-boolean-expr,
24+
-readability-static-definition-in-anonymous-namespace,
25+
-readability-uppercase-literal-suffix,
26+
-readability-use-anyofallof,
27+
google-*,
28+
-google-readability-avoid-underscore-in-googletest-name,
29+
-google-readability-casting,
30+
-google-readability-todo,
31+
-google-runtime-references,
32+
-google-explicit-constructor,
33+
performance-*,
34+
-performance-enum-size,
35+
bugprone-*,
36+
-bugprone-branch-clone,
37+
-bugprone-easily-swappable-parameters,
38+
-bugprone-exception-escape,
39+
-bugprone-macro-parentheses,
40+
-bugprone-move-forwarding-reference,
41+
-bugprone-narrowing-conversions,
42+
-bugprone-suspicious-missing-comma,
43+
modernize-*,
44+
-modernize-avoid-bind,
45+
-modernize-avoid-c-arrays,
46+
-modernize-concat-nested-namespaces,
47+
-modernize-pass-by-value,
48+
-modernize-raw-string-literal,
49+
-modernize-return-braced-init-list,
50+
-modernize-use-auto,
51+
-modernize-use-nodiscard,
52+
-modernize-use-trailing-return-type,
53+
-modernize-use-transparent-functors,
54+
misc-*,
55+
-misc-const-correctness,
56+
-misc-no-recursion,
57+
-misc-non-private-member-variables-in-classes,
58+
-misc-redundant-expression,
59+
-misc-unused-parameters,
60+
-misc-use-anonymous-namespace,
661
762
CheckOptions:
8-
- { key: readability-identifier-naming.ClassCase, value: CamelCase }
9-
- { key: readability-identifier-naming.EnumCase, value: CamelCase }
10-
- { key: readability-identifier-naming.UnionCase, value: CamelCase }
11-
- { key: readability-identifier-naming.TemplateParameterCase, value: CamelCase }
12-
- { key: readability-identifier-naming.TypedefCase, value: CamelCase }
13-
- { key: readability-identifier-naming.TypeAliasCase, value: CamelCase }
14-
- { key: readability-identifier-naming.FunctionCase, value: camelBack }
15-
- { key: readability-identifier-naming.ClassMethodCase, value: camelBack }
16-
- { key: readability-identifier-naming.VariableCase, value: lower_case }
17-
- { key: readability-identifier-naming.ClassMemberCase, value: lower_case }
18-
- { key: readability-identifier-naming.ClassMemberSuffix, value: _ }
19-
- { key: readability-identifier-naming.MemberCase, value: lower_case }
20-
- { key: readability-identifier-naming.PrivateMemberSuffix, value: '_' }
21-
- { key: readability-identifier-naming.ProtectedMemberSuffix, value: '_' }
22-
- { key: readability-identifier-naming.PrivateMemberCase, value: lower_case }
23-
- { key: readability-identifier-naming.ProtectedMemberCase, value: lower_case }
24-
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
25-
- { key: readability-identifier-naming.ConstantCase, value: lower_case }
26-
- { key: readability-identifier-naming.ParameterCase, value: lower_case }
27-
- { key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }
63+
- key: google-runtime-int.TypeSuffix
64+
value: _t
65+
66+
# All modules but sta
67+
# Exclude build as there is too much noise from swig generated code
68+
HeaderFilterRegex: "(?!build/.*)/(ant|cgt|cts|cut|dbSta|dft|dpl|drt|dst|est|exa|fin|gpl|grt|gui|ifp|mpl|odb|ord|pad|par|pdn|ppl|psm|rcx|ram|rmp|rsz|stt|tap|upf|utl)/.*"
69+
70+
# Not currently handling identifier naming
71+
# WarningsAsErrors: "*"
72+
73+
# Google Style Guide Identifier naming
74+
# CheckOptions:
75+
# - key: readability-identifier-naming.ClassCase
76+
# value: CamelCase
77+
# - key: readability-identifier-naming.ClassMemberCase
78+
# value: lower_case
79+
# - key: readability-identifier-naming.ConstexprVariableCase
80+
# value: CamelCase
81+
# - key: readability-identifier-naming.ConstexprVariablePrefix
82+
# value: k
83+
# - key: readability-identifier-naming.EnumCase
84+
# value: CamelCase
85+
# - key: readability-identifier-naming.EnumConstantCase
86+
# value: CamelCase
87+
# - key: readability-identifier-naming.EnumConstantPrefix
88+
# value: k
89+
# - key: readability-identifier-naming.FunctionCase
90+
# value: CamelCase
91+
# - key: readability-identifier-naming.GlobalConstantCase
92+
# value: CamelCase
93+
# - key: readability-identifier-naming.GlobalConstantPrefix
94+
# value: k
95+
# - key: readability-identifier-naming.StaticConstantCase
96+
# value: CamelCase
97+
# - key: readability-identifier-naming.StaticConstantPrefix
98+
# value: k
99+
# - key: readability-identifier-naming.StaticVariableCase
100+
# value: lower_case
101+
# - key: readability-identifier-naming.MacroDefinitionCase
102+
# value: UPPER_CASE
103+
# - key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
104+
# value: '^[A-Z]+(_[A-Z]+)*_$'
105+
# - key: readability-identifier-naming.MemberCase
106+
# value: lower_case
107+
# - key: readability-identifier-naming.PrivateMemberSuffix
108+
# value: _
109+
# - key: readability-identifier-naming.PublicMemberSuffix
110+
# value: ''
111+
# - key: readability-identifier-naming.NamespaceCase
112+
# value: lower_case
113+
# - key: readability-identifier-naming.ParameterCase
114+
# value: lower_case
115+
# - key: readability-identifier-naming.TypeAliasCase
116+
# value: CamelCase
117+
# - key: readability-identifier-naming.TypedefCase
118+
# value: CamelCase
119+
# - key: readability-identifier-naming.VariableCase
120+
# value: lower_case
121+
# - key: readability-identifier-naming.IgnoreMainLikeFunctions
122+
# value: 1

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.git
22
build*
33
Dockerfile
4+
etc/openroad_deps_prefixes.txt

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ body:
3030
```
3131
./etc/Env.sh
3232
```
33-
Then copy and paste the ENTIRE output in the text field below.
33+
Then upload the build/openroad-env.log file or copy and paste the ENTIRE output in the text field below.
3434
35-
*If the command **does not succeed**, you are using an out-of-date version of OpenROAD, and it is recommended that you update.*
3635
- type: textarea
3736
id: environment
3837
attributes:
@@ -45,7 +44,7 @@ body:
4544
attributes:
4645
value: |
4746
---
48-
#### To reproduce the bug:
47+
#### To reproduce the bug:
4948
5049
##### Upload relevant files
5150
@@ -65,7 +64,9 @@ body:
6564
id: logs
6665
attributes:
6766
label: Relevant log output
68-
description: Feel free to add any relevant log snippets to this section. This will be automatically formatted into code, so no need for backticks.
67+
description: |
68+
You can upload `openroad_build.log` file found in the build directory by dragging and dropping it below.
69+
Feel free to add any relevant log snippets to this section. This will be automatically formatted into code, so no need for backticks.
6970
render: shell
7071
validations:
7172
required: false
@@ -82,4 +83,4 @@ body:
8283
label: Additional Context
8384
description: Add any other context about the problem here.
8485
validations:
85-
required: false
86+
required: false

.github/ISSUE_TEMPLATE/bug_report_with_ol.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ body:
3636
```
3737
Then copy and paste the ENTIRE output in the corresponding text fields below.
3838
39-
*If the command **does not succeed**, you are using an out-of-date version of OpenROAD, and it is recommended that you update.*
4039
- type: textarea
4140
id: or-environment
4241
attributes:
@@ -57,7 +56,7 @@ body:
5756
attributes:
5857
value: |
5958
---
60-
#### To reproduce the bug:
59+
#### To reproduce the bug:
6160
##### Please run the following shell command in the OpenLane root folder:
6261
```
6362
python3 ./scripts/or_issue.py\
@@ -86,7 +85,9 @@ body:
8685
id: logs
8786
attributes:
8887
label: Relevant log output
89-
description: Feel free to add any relevant log snippets to this section. This will be automatically formatted into code, so no need for backticks.
88+
description: |
89+
You can upload `openroad_build.log` file found in the build directory by dragging and dropping it below.
90+
Feel free to add any relevant log snippets to this section. This will be automatically formatted into code, so no need for backticks.
9091
render: shell
9192
validations:
9293
required: false
@@ -103,4 +104,4 @@ body:
103104
label: Additional Context
104105
description: Add any other context about the problem here.
105106
validations:
106-
required: false
107+
required: false

.github/ISSUE_TEMPLATE/bug_report_with_orfs.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: OpenROAD Bug report with OpenROAD Flow Scripts
1+
name: OpenROAD Bug report with OpenROAD Flow Scripts
22
description: File a bug report if you are running from OpenROAD Flow Scripts
33

44
body:
@@ -30,9 +30,8 @@ body:
3030
```
3131
./etc/Env.sh
3232
```
33-
Then copy and paste the ENTIRE output in the text field below.
33+
Then upload the build/openroad-env.log file or copy and paste the ENTIRE output in the text field below.
3434
35-
*If the command **does not succeed**, you are using an out-of-date version of OpenROAD, and it is recommended that you update.*
3635
- type: textarea
3736
id: environment
3837
attributes:
@@ -45,7 +44,7 @@ body:
4544
attributes:
4645
value: |
4746
---
48-
#### To reproduce the bug:
47+
#### To reproduce the bug:
4948
##### You have two options here:
5049
5150
A. Use `make <SCRIPT_NAME>_issue` to create a tar file with all the files to reproduce the bug(s).
@@ -57,7 +56,7 @@ body:
5756
&nbsp;&nbsp;&nbsp;&nbsp;2. Set the ISSUE_TAG variable to rename the generated tar file
5857
5958
&nbsp;&nbsp;&nbsp;&nbsp;3. Run `make {script}_issue` in the directory "OpenROAD-flow-scripts/flow" where script is wildcarded from the "OpenROAD-flow-scripts/scripts" directory e.g `make cts_issue`
60-
59+
6160
&nbsp;&nbsp;&nbsp;&nbsp;4. Upload the generated tar file
6261
6362
B. Upload relevant files
@@ -78,7 +77,9 @@ body:
7877
id: logs
7978
attributes:
8079
label: Relevant log output
81-
description: Feel free to add any relevant log snippets to this section. This will be automatically formatted into code, so no need for backticks.
80+
description: |
81+
You can upload `openroad_build.log` file found in the build directory by dragging and dropping it below.
82+
Feel free to add any relevant log snippets to this section. This will be automatically formatted into code, so no need for backticks.
8283
render: shell
8384
validations:
8485
required: false
@@ -95,4 +96,4 @@ body:
9596
label: Additional Context
9697
description: Add any other context about the problem here.
9798
validations:
98-
required: false
99+
required: false

0 commit comments

Comments
 (0)