GithubHelp home page GithubHelp logo

the-openroad-project / replace Goto Github PK

View Code? Open in Web Editor NEW
202.0 13.0 75.0 95.1 MB

RePlAce global placement tool

License: BSD 3-Clause "New" or "Revised" License

C++ 3.37% Shell 0.01% Verilog 96.29% Dockerfile 0.02% CMake 0.05% Tcl 0.22% SWIG 0.03%

replace's Introduction

RePlAce

RePlAce: Advancing Solution Quality and Routability Validation in Global Placement

Features

  • Analytic and nonlinear placement algorithm. Solves electrostatic force equations using Nesterov's method. (link)
  • Verified with various commercial technologies using OpenDB (7/14/16/28/45/55/65nm).
  • Verified deterministic solution generation with various compilers and OS.
    • Compiler: gcc4.8-9.1/clang-7-9/apple-clang-11
    • OS: Ubuntu 16.04-18.04 / CentOS 6-8 / OSX
  • Cleanly rewritten as C++11.
  • Supports Mixed-size placement mode.
  • Supports fast image drawing modes with CImg library.
Visualized examples from ISPD 2006 contest; adaptec2.inf Real-world Design: Coyote (TSMC16 7.5T)

How to Download and Build?

  • If you want to use this as part of the OpenROAD project you should build it and use it from inside the integrated OpenROAD app. The standalone version is available as a legacy code in standalone branch.
  • For OpenROAD-flow users, manuals for released binaries are available in readthedocs. (Getting-Started)
  • For developers, manuals for building a binary is available in OpenROAD app repo. (OpenROAD app)
  • Note that RePlAce is a submodule of OpenROAD repo, and take a place as the "global_placement" command.

OpenROAD Tcl Usage (global_placement)

global_placement
    [-skip_initial_place]
    [-incremental]
    [-bin_grid_count grid_count]
    [-density density]
    [-init_density_penalty init_density_penalty]
    [-init_wirelength_coef init_wirelength_coef]
    [-min_phi_coef min_phi_coef]
    [-max_phi_coef max_phi_coef]
    [-overflow overflow]
    [-initial_place_max_iter max_iter]
    [-initial_place_max_fanout max_fanout]
    [-verbose_level verbose_level]

Flow Control

  • skip_initial_place : Skip the initial placement (BiCGSTAB solving) before Nesterov placement. IP improves HPWL by ~5% on large designs. Equal to '-initial_place_max_iter 0'
  • incremental : Enable the incremental global placement. Users would need to tune other parameters (e.g. init_density_penalty) with pre-placed solutions.

Tuning Parameters

  • bin_grid_count : Set bin grid's counts. Default: Defined by internal algorithm. [64,128,256,512,..., int]
  • density : Set target density. Default: 0.70 [0-1, float]
  • init_density_penalty : Set initial density penalty. Default: 8e-5 [1e-6 - 1e6, float]
  • init_wire_length__coef : Set initial wirelength coefficient. Default: 0.25 [unlimited, float]
  • min_phi_coef : Set pcof_min(µ_k Lower Bound). Default: 0.95 [0.95-1.05, float]
  • max_phi_coef : Set pcof_max(µ_k Upper Bound). Default: 1.05 [1.00-1.20, float]
  • overflow : Set target overflow for termination condition. Default: 0.1 [0-1, float]
  • initial_place_max_iter : Set maximum iterations in initial place. Default: 20 [0-, int]
  • initial_place_max_fanout : Set net escape condition in initial place when 'fanout >= initial_place_max_fanout'. Default: 200 [1-, int]

Other Options

  • verbose_level : Set verbose level for RePlAce. Default: 1 [0-10, int]

Note that all of the TCL commands are defined in the replace.tcl and replace.i.

Verified/supported Technologies

  • ASAP 7
  • GF 14
  • TSMC 16 (7.5T/9T)
  • ST FDSOI 28
  • TSMC 45
  • Fujitsu 55
  • TSMC 65

3rd Party Module List

License

  • BSD-3-clause License [Link]
  • Code found under the Modules directory (e.g., submodules CImg source files) have individual copyright and license declarations at each folder.

Authors

  • Paper reference: C.-K. Cheng, A. B. Kahng, I. Kang and L. Wang, "RePlAce: Advancing Solution Quality and Routability Validation in Global Placement", to appear in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018. (Digital Object Identifier: 10.1109/TCAD.2018.2859220)
  • Mingyu Woo rewrites the whole RePlAce with a clean C++11 structure.
  • The timing-Driven mode has been implemented by Mingyu Woo (only available in standalone branch.)
  • Timing-Driven and Routability-Driven mode are ongoing with the clean-code structure (in openroad branch.)

replace's People

Contributors

abdelrahmanhosny avatar abk-openroad avatar jjcherry56 avatar maliberty avatar mgwoo avatar taylor-bsg avatar tspyrou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

replace's Issues

installation problem on new machine

Hi
We tried to install RePlace on a different machine and it got stuck with below error. Log file attached. Anything missing?
https://1drv.ms/u/s!Ai4WW_jutenggas7vxLc-aKr2B46pA

Building... /home/kunalg/Desktop/work/tools/RePlAce/src/timingSta.o
g++ -std=c++0x -g -ggdb -m64 -O3 -fPIC -DNDEBUG -ffast-math -Dcimg_display=1 -I/home/kunalg/Desktop/work/tools/RePlAce/src -I/opt/intel/compilers_and_libraries/linux/mkl/include -I/opt/intel/compilers_and_libraries/linux/ipp/include -I../module/sparsehash/install-sp/include -I../module/eigen-git-mirror/ -I../module/CImg/ -I../module/lef/5.8-p027/include -I../module/def/5.8-p027/include -I../module/verilog-parser/include -I../module/flute/include -I../module/OpenSTA/install-sp//include -I../module/OpenSTA/ -c -o /home/kunalg/Desktop/work/tools/RePlAce/src/timingSta.o /home/kunalg/Desktop/work/tools/RePlAce/src/timingSta.cpp
In file included from /home/kunalg/Desktop/work/tools/RePlAce/src/timingSta.cpp:1:0:
/home/kunalg/Desktop/work/tools/RePlAce/src/timing.h:424:16: error: explicit specialization of ‘template struct std::hash’ outside its namespace must use a nested-name-specifier [-fpermissive]
struct hash< pair<DBU, DBU> > {
^~~~~~~~~~~~~~~~~~~~~~
/home/kunalg/Desktop/work/tools/RePlAce/src/timing.h:424:16: error: redefinition of ‘struct std::hash<std::pair<long int, long int> >’
/home/kunalg/Desktop/work/tools/RePlAce/src/timing.h:401:16: note: previous definition of ‘struct std::hash<std::pair<long int, long int> >’
struct hash< pair<DBU, DBU> > {
^~~~~~~~~~~~~~~~~~~~~~
/home/kunalg/Desktop/work/tools/RePlAce/src/timing.h:436:16: error: explicit specialization of ‘template struct std::hash’ outside its namespace must use a nested-name-specifier [-fpermissive]
struct hash< Timing::PinInfo > {
^~~~~~~~~~~~~~~~~~~~~~~
/home/kunalg/Desktop/work/tools/RePlAce/src/timing.h:436:16: error: redefinition of ‘struct std::hashTiming::PinInfo’
/home/kunalg/Desktop/work/tools/RePlAce/src/timing.h:413:16: note: previous definition of ‘struct std::hashTiming::PinInfo’
struct hash< Timing::PinInfo > {
^~~~~~~~~~~~~~~~~~~~~~~
Makefile:84: recipe for target '/home/kunalg/Desktop/work/tools/RePlAce/src/timingSta.o' failed
make[1]: *** [/home/kunalg/Desktop/work/tools/RePlAce/src/timingSta.o] Error 1
make[1]: Leaving directory '/home/kunalg/Desktop/work/tools/RePlAce/src'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
exit
Script done, file is output.log

segmentation violation

Hi, I have modified the gcd_nontd_test.tcl test script to point to the libraries I am using and a DEF design output from QFlow. I am getting the following on rep init_replace line:

** WARNING: Your Detail Placement Step must be skipped.
              (i.e. this program will be executed as -onlyGP)
     If you want to have DP after GP, please specify -dpflag and -dploc.

[INFO] TargetDensity = 1.000000
[INFO] ExperimentIndex = 27
[INFO] DirectoryPath = /home/[user]/Desktop/usb/scratch/etc/live/experiment027
child killed: segmentation violation

Segmentation Fault when running example lefdef script

When executing the execute_lefdef.py script, the RePlAce executable starts OK, but when the LEF parser starts (I think), a segmentation fault occurs.

Here's the output of the command:

./execute_lefdef.py 0
  ./RePlAce -bmflag etc -lef ../bench/lefdef/ispd18_test1/ispd18_test1.input.lef -def ../bench/lefdef/ispd18_test1/ispd18_test1.input.def  -output ../output -t 1 -dpflag NTU3 -dploc ../ntuplace/ntuplace3   | tee ../logdir/ispd18_test1_2018-11-15_12:39:05.log 
CMD :  ./RePlAce -bmflag etc -lef ../bench/lefdef/ispd18_test1/ispd18_test1.input.lef -def ../bench/lefdef/ispd18_test1/ispd18_test1.input.def -output ../output -t 1 -dpflag NTU3 -dploc ../ntuplace/ntuplace3 
INFO:  VERSION, Compiled at Nov 15 2018 12:23:31
INFO:  Now is Thu Nov 15 12:39:05 2018
INFO:  Target Density = 1.000000
INFO:  Experiment Index 0
INFO:  DIR_PATH = ../output/etc/ispd18_test1.input/experiment0

Segmentation fault (core dumped)

clang compile warnings

compiling with clang shows a bunch of issues in the code.
most notably, class != struct

In file included from /Users/cherry/import/RePlAce/src/argument.cpp:48:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/argument.cpp:49:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
8 warnings generated.
[ 84%] Building CXX object CMakeFiles/replace.dir/src/bin.cpp.o
In file included from /Users/cherry/import/RePlAce/src/bin.cpp:48:
In file included from /Users/cherry/import/RePlAce/src/bin.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/bin.cpp:53:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/bin.cpp:795:21: warning: unused parameter 'N'
[-Wunused-parameter]
void bin_update(int N) {
^
/Users/cherry/import/RePlAce/src/bin.cpp:869:20: warning: cast from 'const void *'
to 'float ' drops const qualifier [-Wcast-qual]
return (
(prec *)p2 - *(prec *)p1);
^
/Users/cherry/import/RePlAce/src/bin.cpp:869:34: warning: cast from 'const void *'
to 'float ' drops const qualifier [-Wcast-qual]
return (
(prec *)p2 - *(prec *)p1);
^
/Users/cherry/import/RePlAce/src/bin.cpp:970:26: warning: multi-line // comment
[-Wcomment]
//#pragma omp parallel
^
/Users/cherry/import/RePlAce/src/bin.cpp:971:19: warning: multi-line // comment
[-Wcomment]
default(none)
^
/Users/cherry/import/RePlAce/src/bin.cpp:972:18: warning: multi-line // comment
[-Wcomment]
shared(tier)
^
/Users/cherry/import/RePlAce/src/bin.cpp:1018:26: warning: multi-line // comment
[-Wcomment]
//#pragma omp parallel
^
/Users/cherry/import/RePlAce/src/bin.cpp:1019:19: warning: multi-line // comment
[-Wcomment]
default(none)
^
/Users/cherry/import/RePlAce/src/bin.cpp:1020:59: warning: multi-line // comment
[-Wcomment]
shared(tier, sum_ovf_area, gsum_phi, target_cell_den)
^
/Users/cherry/import/RePlAce/src/bin.cpp:1166:19: warning: unused variable 'max_z'
[-Wunused-variable]
prec min_z = 0, max_z = 0;
^
/Users/cherry/import/RePlAce/src/bin.cpp:1162:24: warning: unused variable 'z0'
[-Wunused-variable]
prec x0 = 0, y0 = 0, z0 = 0;
^
/Users/cherry/import/RePlAce/src/bin.cpp:1166:8: warning: unused variable 'min_z'
[-Wunused-variable]
prec min_z = 0, max_z = 0;
^
/Users/cherry/import/RePlAce/src/bin.cpp:1163:24: warning: unused variable 'z1'
[-Wunused-variable]
prec x1 = 0, y1 = 0, z1 = 0;
^
/Users/cherry/import/RePlAce/src/bin.cpp:1159:21: warning: unused variable 'z'
[-Wunused-variable]
int x = 0, y = 0, z = 0;
^
/Users/cherry/import/RePlAce/src/bin.cpp:1328:8: warning: unused variable 'eff_z'
[-Wunused-variable]
prec eff_z = 0;
^
/Users/cherry/import/RePlAce/src/bin.cpp:1483:8: warning: unused variable 'center'
[-Wunused-variable]
FPOS center = mac->center;
^
24 warnings generated.
[ 85%] Building CXX object CMakeFiles/replace.dir/src/bookShelfIO.cpp.o
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.cpp:41:
In file included from /Users/cherry/import/RePlAce/src/bin.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.cpp:45:
In file included from /Users/cherry/import/RePlAce/src/initPlacement.h:44:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/SparseCore:11:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/Core:403:
/Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/src/Core/util/IntegralConstant.h:57:36: warning:
unused parameter 'other' [-Wunused-parameter]
FixedInt( VariableAndFixedInt other) {
^
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.cpp:47:
/Users/cherry/import/RePlAce/src/gcell.h:52:1: warning: 'TILE' defined as a class
here but previously declared as a struct [-Wmismatched-tags]
class TILE {
^
/Users/cherry/import/RePlAce/src/global.h:760:3: note: did you mean class here?
struct TILE *tile_mat;
^~~~~~
class
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:97:7: warning: suggest braces
around initialization of subobject [-Wmissing-braces]
0,
^
{}
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:682:40: warning: more '%'
conversions than data arguments [-Wformat]
printf("INFO: PLACE.END = (%d, %d, %d)\n\n", (int)(place.end.x + 0.5),
~^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1166:27: warning: variable
'curShapeCount' is uninitialized when used here [-Wuninitialized]
tmpStor.reserve(curShapeCount);
^~~~~~~~~~~~~
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1144:24: note: initialize the
variable 'curShapeCount' to silence this warning
int curShapeCount;
^
= 0
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1437:10: warning: unused variable
'z' [-Wunused-variable]
prec z = TIER_DEP;
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1661:18: warning: struct 'NET' was
previously declared as a class [-Wmismatched-tags]
netInstance = (struct NET *)mkl_malloc(sizeof(struct NET) * netCNT, 64);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1661:18: note: did you mean class
here?
netInstance = (struct NET *)mkl_malloc(sizeof(struct NET) * netCNT, 64);
^~~~~~
class
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1661:49: warning: struct 'NET' was
previously declared as a class [-Wmismatched-tags]
netInstance = (struct NET *)mkl_malloc(sizeof(struct NET) * netCNT, 64);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1661:49: note: did you mean class
here?
netInstance = (struct NET *)mkl_malloc(sizeof(struct NET) * netCNT, 64);
^~~~~~
class
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:1995:53: warning: format specifies
type 'double' but the argument has type 'int' [-Wformat]
curModule->pmin.x, curModule->pmin.y, 0);
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2039:55: warning: format specifies
type 'double' but the argument has type 'int' [-Wformat]
curModule->pmin.x, curModule->pmin.y, 0);
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2091:53: warning: format specifies
type 'double' but the argument has type 'int' [-Wformat]
curModule->pmin.x, curModule->pmin.y, 0);
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2381:49: warning: format specifies
type 'int' but the argument has type 'prec' (aka 'float') [-Wformat]
fprintf(fp_scl, " Coordinate : %d\n", rwp->pmin.y);
~~ ^~~~~~~~~~~
%f
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2387:67: warning: format specifies
type 'int' but the argument has type 'prec' (aka 'float') [-Wformat]
fprintf(fp_scl, " SubrowOrigin : %d\tNumSites : %d\n", rwp->pmin.x,
~~ ^~~~~~~~~~~
%f
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2416:3: warning: struct 'NET' was
previously declared as a class [-Wmismatched-tags]
struct NET *curNet= NULL;
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2416:3: note: did you mean class
here?
struct NET *curNet= NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2410:8: warning: unused variable
'cmd' [-Wunused-variable]
char cmd[BUFFERSIZE];
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2405:30: warning: unused parameter
'dir' [-Wunused-parameter]
void read_routing_file(char *dir, string routeName ) {
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2681:8: warning: unused variable
'isRoutingLayer' [-Wunused-variable]
bool isRoutingLayer = false;
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:2900:32: warning: format specifies
type 'int' but the argument has type 'std::__1::vector<int,
std::__1::allocator >::size_type' (aka 'unsigned long') [-Wformat]
fprintf( fp_route, " %d ", layerIdx->size());
~~ ^~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3189:48: warning: unused parameter
'lab' [-Wunused-parameter]
void WritePl(char *dir_tier, int curLayer, int lab, bool isShapeDrawing,
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3276:40: warning: format specifies
type 'int' but the argument has type 'std::__1::vector<ROW,
std::__1::allocator >::size_type' (aka 'unsigned long') [-Wformat]
fprintf(fp_scl, "NumRows : \t%d\n", tmpRowStor.size() );
~~ ^~~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3552:18: warning: unused variable
'mac' [-Wunused-variable]
struct MODULE *mac = NULL;
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3554:15: warning: unused variable
'pin' [-Wunused-variable]
struct PIN *pin = NULL;
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3547:61: warning: unused parameter
'lab' [-Wunused-parameter]
void output_tier_pl_global_router(string plName, int z, int lab, bool isNam...
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3873:3: warning: struct 'NET' was
previously declared as a class [-Wmismatched-tags]
struct NET *net = NULL;
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/bookShelfIO.cpp:3873:3: note: did you mean class
here?
struct NET *net = NULL;
^~~~~~
class
25 warnings generated.
[ 85%] Building CXX object CMakeFiles/replace.dir/src/charge.cpp.o
In file included from /Users/cherry/import/RePlAce/src/charge.cpp:46:
In file included from /Users/cherry/import/RePlAce/src/bin.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/charge.cpp:51:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
8 warnings generated.
[ 85%] Building CXX object CMakeFiles/replace.dir/src/defParser.cpp.o
In file included from /Users/cherry/import/RePlAce/src/defParser.cpp:79:
In file included from /Users/cherry/import/RePlAce/src/lefdefIO.h:86:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
/Users/cherry/import/RePlAce/src/defParser.cpp:180:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"N");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:182:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"W");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:184:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"S");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:186:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"E");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:188:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FN");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:190:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FW");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:192:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FS");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:194:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FE");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:196:18: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"BOGUS");
^
/Users/cherry/import/RePlAce/src/defParser.cpp:1350:57: warning: flag ' ' results
in undefined behavior with 's' conversion specifier [-Wformat]
CIRCUIT_FPRINTF(fout, "\n + MASK %d + POLYGON % s ", net->polyMask(i),
^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:1672:18: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)in);
^
/Users/cherry/import/RePlAce/src/defParser.cpp:2004:56: warning: data argument not
used by format string [-Wformat-extra-args]
CIRCUIT_FPRINTF(fout, "NAMESCASESENSITIVE ON ;\n", d);
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:2007:57: warning: data argument not
used by format string [-Wformat-extra-args]
CIRCUIT_FPRINTF(fout, "NAMESCASESENSITIVE OFF ;\n", d);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:2738:25: warning: data argument not
used by format string [-Wformat-extra-args]
td->toInst(), td->toPin());
^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:2746:55: warning: more '%'
conversions than data arguments [-Wformat]
CIRCUIT_FPRINTF(fout, "- MACRO %s THRUPIN %s %s ", td->macroName(),
~^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:3293:41: warning: format specifies
type 'int' but the argument has type 'std::__1::vector<LefDefParser::defiVia,
std::__1::allocatorLefDefParser::defiVia >::size_type'
(aka 'unsigned long') [-Wformat]
CIRCUIT_FPRINTF(fout, "VIAS %d ; \n", defViaStor.size());
~~ ^~~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:3392:46: warning: format specifies
type 'int' but the argument has type
'std::__1::vector<LefDefParser::defiComponent,
std::__1::allocatorLefDefParser::defiComponent >::size_type'
(aka 'unsigned long') [-Wformat]
CIRCUIT_FPRINTF(fout, "COMPONENTS %d ;\n", defComponentStor.size());
~~ ^~~~~~~~~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:3508:45: warning: format specifies
type 'int' but the argument has type
'std::__1::vector<LefDefParser::defiBlockage,
std::__1::allocatorLefDefParser::defiBlockage >::size_type'
(aka 'unsigned long') [-Wformat]
CIRCUIT_FPRINTF(fout, "BLOCKAGES %d ;\n", defBlockageStor.size());
~~ ^~~~~~~~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:3571:40: warning: format specifies
type 'int' but the argument has type 'std::__1::vector<LefDefParser::defiPin,
std::__1::allocatorLefDefParser::defiPin >::size_type'
(aka 'unsigned long') [-Wformat]
CIRCUIT_FPRINTF(fout, "PINS %d ;\n", defPinStor.size());
~~ ^~~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:3951:61: warning: flag ' ' results
in undefined behavior with 's' conversion specifier [-Wformat]
CIRCUIT_FPRINTF(fout, "\n + MASK %d + POLYGON % s ",
^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:4521:40: warning: format specifies
type 'int' but the argument has type 'std::__1::vector<LefDefParser::defiNet,
std::__1::allocatorLefDefParser::defiNet >::size_type'
(aka 'unsigned long') [-Wformat]
CIRCUIT_FPRINTF(fout, "NETS %d ;\n", defNetStor.size());
~~ ^~~~~~~~~~~~~~~~~
%lu
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:5021:61: warning: data argument not
used by format string [-Wformat-extra-args]
CIRCUIT_FPRINTF(stderr, "Reader returns bad status.\n", inFile[fileCt]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
/Users/cherry/import/RePlAce/src/defParser.cpp:94:12: warning: unused variable
'isSessionless' [-Wunused-variable]
static int isSessionless = 0;
^
24 warnings generated.
[ 86%] Building CXX object CMakeFiles/replace.dir/src/detailPlace.cpp.o
In file included from /Users/cherry/import/RePlAce/src/detailPlace.cpp:48:
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/detailPlace.cpp:52:
In file included from /Users/cherry/import/RePlAce/src/initPlacement.h:44:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/SparseCore:11:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/Core:403:
/Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/src/Core/util/IntegralConstant.h:57:36: warning:
unused parameter 'other' [-Wunused-parameter]
FixedInt( VariableAndFixedInt other) {
^
In file included from /Users/cherry/import/RePlAce/src/detailPlace.cpp:54:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS st, struct NET net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS st, struct NET net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS st, struct NET net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/detailPlace.cpp:166:36: warning: '/
' within block
comment [-Wcomment]
sprintf( cmd, "ln -s %s/../router/
.dat %s/", realCurDir, tier_dir);
^
/Users/cherry/import/RePlAce/src/detailPlace.cpp:184:36: warning: '/
' within block
comment [-Wcomment]
sprintf( cmd, "ln -s %s/../router/
.pl %s/", realCurDir, tier_dir);
^
/Users/cherry/import/RePlAce/src/detailPlace.cpp:234:36: warning: '/
' within block
comment [-Wcomment]
sprintf( cmd, "ln -s %s/../router/
.dat %s/", realCurDir, tier_dir);
^
/Users/cherry/import/RePlAce/src/detailPlace.cpp:252:36: warning: '/
' within block
comment [-Wcomment]
sprintf( cmd, "ln -s %s/../router/
.pl %s/", realCurDir, tier_dir);
^
13 warnings generated.
[ 86%] Building CXX object CMakeFiles/replace.dir/src/fft.cpp.o
In file included from /Users/cherry/import/RePlAce/src/fft.cpp:46:
In file included from /Users/cherry/import/RePlAce/src/fft.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
/Users/cherry/import/RePlAce/src/fft.cpp:99:60: warning: unused parameter 'flg'
[-Wunused-parameter]
void charge_fft_init(struct POS nbin, struct FPOS stp, int flg) {
^
/Users/cherry/import/RePlAce/src/fft.cpp:217:26: warning: unused parameter 'flg'
[-Wunused-parameter]
void charge_fft_call(int flg) {
^
/Users/cherry/import/RePlAce/src/fft.cpp:730:28: warning: unused parameter 'flg'
[-Wunused-parameter]
void charge_fft_delete(int flg) {
^
4 warnings generated.
[ 86%] Building CXX object CMakeFiles/replace.dir/src/fftsg2d.cpp.o
In file included from /Users/cherry/import/RePlAce/src/fftsg2d.cpp:41:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
1 warning generated.
[ 86%] Building CXX object CMakeFiles/replace.dir/src/fftsg3d.cpp.o
In file included from /Users/cherry/import/RePlAce/src/fftsg3d.cpp:41:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
1 warning generated.
[ 87%] Building CXX object CMakeFiles/replace.dir/src/fftsg.cpp.o
In file included from /Users/cherry/import/RePlAce/src/fftsg.cpp:41:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
1 warning generated.
[ 87%] Building CXX object CMakeFiles/replace.dir/src/gcell.cpp.o
In file included from /Users/cherry/import/RePlAce/src/gcell.cpp:49:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/gcell.cpp:54:
In file included from /Users/cherry/import/RePlAce/src/wlen.h:45:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
In file included from /Users/cherry/import/RePlAce/src/gcell.cpp:57:
/Users/cherry/import/RePlAce/src/gcell.h:52:1: warning: 'TILE' defined as a class
here but previously declared as a struct [-Wmismatched-tags]
class TILE {
^
/Users/cherry/import/RePlAce/src/global.h:760:3: note: did you mean class here?
struct TILE *tile_mat;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:68:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bpx = NULL;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:68:3: note: did you mean class here?
struct TILE *bpx = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:69:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bpy = NULL;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:69:3: note: did you mean class here?
struct TILE *bpy = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:155:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bp = tier->tile_mat;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:155:3: note: did you mean class here?
struct TILE *bp = tier->tile_mat;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:256:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bp = NULL;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:256:3: note: did you mean class here?
struct TILE *bp = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:279:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bp = tier->tile_mat;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:279:3: note: did you mean class here?
struct TILE *bp = tier->tile_mat;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:315:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bp = NULL;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:315:3: note: did you mean class here?
struct TILE *bp = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:316:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bpx = NULL;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:316:3: note: did you mean class here?
struct TILE *bpx = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:317:3: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
struct TILE *bpy = NULL;
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:317:3: note: did you mean class here?
struct TILE *bpy = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:354:8: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
(struct TILE *)mkl_malloc(sizeof(struct TILE) * tier->tot_tile_cnt, 64);
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:354:8: note: did you mean class here?
(struct TILE *)mkl_malloc(sizeof(struct TILE) * tier->tot_tile_cnt, 64);
^~~~~~
class
/Users/cherry/import/RePlAce/src/gcell.cpp:354:40: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
(struct TILE *)mkl_malloc(sizeof(struct TILE) * tier->tot_tile_cnt, 64);
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/gcell.cpp:354:40: note: did you mean class here?
(struct TILE *)mkl_malloc(sizeof(struct TILE) * tier->tot_tile_cnt, 64);
^~~~~~
class
19 warnings generated.
[ 87%] Building CXX object CMakeFiles/replace.dir/src/initPlacement.cpp.o
In file included from /Users/cherry/import/RePlAce/src/initPlacement.cpp:48:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/initPlacement.cpp:49:
In file included from /Users/cherry/import/RePlAce/src/initPlacement.h:44:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/SparseCore:11:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/Core:403:
/Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/src/Core/util/IntegralConstant.h:57:36: warning:
unused parameter 'other' [-Wunused-parameter]
FixedInt( VariableAndFixedInt other) {
^
In file included from /Users/cherry/import/RePlAce/src/initPlacement.cpp:55:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/unsupported/Eigen/IterativeSolvers:36:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/unsupported/Eigen/src/IterativeSolvers/DGMRES.h:13:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/Eigenvalues:18:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/LU:44:
/Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/src/LU/arch/Inverse_SSE.h:142:45: warning:
cast from 'const unsigned int *' to 'float ' drops const qualifier
[-Wcast-qual]
rd = _mm_xor_ps(rd, _mm_load_ps((float
)_Sign_PNNP));
^
/Users/cherry/import/RePlAce/src/initPlacement.cpp:63:7: warning: unused variable
'x_iter' [-Wunused-variable]
int x_iter = 0, y_iter = 0;
^
/Users/cherry/import/RePlAce/src/initPlacement.cpp:65:8: warning: unused variable
'tol' [-Wunused-variable]
prec tol = 0.000001;
^
/Users/cherry/import/RePlAce/src/initPlacement.cpp:61:7: warning: unused variable
'itol' [-Wunused-variable]
int itol = 1;
^
/Users/cherry/import/RePlAce/src/initPlacement.cpp:63:19: warning: unused variable
'y_iter' [-Wunused-variable]
int x_iter = 0, y_iter = 0;
^
7 warnings generated.
[ 88%] Building CXX object CMakeFiles/replace.dir/src/lefdefIO.cpp.o
In file included from /Users/cherry/import/RePlAce/src/lefdefIO.cpp:49:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/lefdefIO.cpp:55:
/Users/cherry/import/RePlAce/src/timing.h:213:3: warning: control may reach end of
non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/timing.h:350:9: warning: field '_terms' will be
initialized after field '_nets' [-Wreorder]
_terms(terms),
^
/Users/cherry/import/RePlAce/src/timing.h:356:9: warning: field '_tPinName' will be
initialized after field '_unitX' [-Wreorder]
_tPinName(tPinName),
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:129:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"N");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:131:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"W");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:133:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"S");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:135:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"E");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:137:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FN");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:139:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FW");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:141:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FS");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:143:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FE");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:145:18: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"BOGUS");
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:169:1: warning: control may reach end
of non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:193:1: warning: control may reach end
of non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:212:1: warning: control may reach end
of non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:348:7: warning: unused variable
'siteSizeX' [-Wunused-variable]
int siteSizeX = INT_CONVERT( l2d * __ckt.lefSiteStor[sitePtr->second].sizeX() );
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:813:9: warning: unused variable
'macroIdx' [-Wunused-variable]
int macroIdx = macroPtr->second;
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:822:10: warning: unused variable
'shapeFound' [-Wunused-variable]
bool shapeFound =
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:1634:7: warning: unused variable
'cNetIdx' [-Wunused-variable]
int cNetIdx = 0;
^
/Users/cherry/import/RePlAce/src/lefdefIO.cpp:1991:13: warning: unused variable
'termIdx' [-Wunused-variable]
int termIdx = mtPtr->second.second;
^
21 warnings generated.
[ 88%] Building CXX object CMakeFiles/replace.dir/src/lefParser.cpp.o
In file included from /Users/cherry/import/RePlAce/src/lefParser.cpp:89:
In file included from /Users/cherry/import/RePlAce/src/lefdefIO.h:86:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:145:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"N");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:147:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"W");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:149:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"S");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:151:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"E");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:153:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FN");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:155:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FW");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:157:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FS");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:159:22: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"FE");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:161:18: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
return ((char
)"BOGUS");
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:1819:49: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
printf("%s : %s\n", lefrGetUserData(), (char
)msg);
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:1823:49: warning: cast from
'const char *' to 'char ' drops const qualifier [-Wcast-qual]
printf("%s : %s\n", lefrGetUserData(), (char
)msg);
^
/Users/cherry/import/RePlAce/src/lefParser.cpp:3221:63: warning: data argument not
used by format string [-Wformat-extra-args]
CIRCUIT_FPRINTF(stderr, "Reader returns bad status.\n", lefName.c_str());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/cherry/import/RePlAce/src/lefdefIO.h:59:22: note: expanded from macro
'CIRCUIT_FPRINTF'
fprintf(fmt, ##VA_ARGS);
^~~~~~~~~~~
13 warnings generated.
[ 88%] Building CXX object CMakeFiles/replace.dir/src/macro.cpp.o
In file included from /Users/cherry/import/RePlAce/src/macro.cpp:45:
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/macro.cpp:50:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/macro.cpp:132:18: warning: unused variable 'mac'
[-Wunused-variable]
struct MODULE *mac = NULL;
^
/Users/cherry/import/RePlAce/src/macro.cpp:193:48: warning: format specifies type
'double' but the argument has type 'int' [-Wformat]
total_hpwl.x, total_hpwl.y, tot_mac_den, tot_mac_ovlp,
^~~~~~~~~~~~
/Users/cherry/import/RePlAce/src/macro.cpp:194:7: warning: format specifies type
'double' but the argument has type 'int' [-Wformat]
tot_accept_cnt, tot_reject_cnt);
^~~~~~~~~~~~~~
/Users/cherry/import/RePlAce/src/macro.cpp:190:28: warning: more '%' conversions
than data arguments [-Wformat]
"\033[36m%d\033[0m, %d, %d \n",
~^
/Users/cherry/import/RePlAce/src/macro.cpp:183:18: warning: unused variable 'mac'
[-Wunused-variable]
struct MODULE *mac = NULL;
^
/Users/cherry/import/RePlAce/src/macro.cpp:180:21: warning: unused parameter 'iter'
[-Wunused-parameter]
void sa_mac_leg(int iter) {
^
/Users/cherry/import/RePlAce/src/macro.cpp:560:8: warning: unused variable
'mac_cnt_sum' [-Wunused-variable]
prec mac_cnt_sum = fp_sum(avg_mac_cnt_per_dim);
^
/Users/cherry/import/RePlAce/src/macro.cpp:660:36: warning: cast from
'const void *' to 'NODE *' drops const qualifier [-Wcast-qual]
struct NODE *aa = (struct NODE *)a;
^
/Users/cherry/import/RePlAce/src/macro.cpp:661:36: warning: cast from
'const void *' to 'NODE *' drops const qualifier [-Wcast-qual]
struct NODE *bb = (struct NODE *)b;
^
/Users/cherry/import/RePlAce/src/macro.cpp:667:20: warning: cast from
'const void *' to 'int *' drops const qualifier [-Wcast-qual]
int *aa = (int *)a;
^
/Users/cherry/import/RePlAce/src/macro.cpp:668:20: warning: cast from
'const void *' to 'int *' drops const qualifier [-Wcast-qual]
int *bb = (int *)b;
^
/Users/cherry/import/RePlAce/src/macro.cpp:924:42: warning: cast from
'const void *' to 'MODULE **' drops const qualifier [-Wcast-qual]
struct MODULE **aa = (struct MODULE **)a;
^
/Users/cherry/import/RePlAce/src/macro.cpp:925:42: warning: cast from
'const void *' to 'MODULE **' drops const qualifier [-Wcast-qual]
struct MODULE **bb = (struct MODULE **)b;
^
21 warnings generated.
[ 88%] Building CXX object CMakeFiles/replace.dir/src/main.cpp.o
In file included from /Users/cherry/import/RePlAce/src/main.cpp:52:
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/main.cpp:58:
In file included from /Users/cherry/import/RePlAce/src/initPlacement.h:44:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/SparseCore:11:
In file included from /Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/Core:403:
/Users/cherry/import/RePlAce/module/eigen-git-mirror/Eigen/src/Core/util/IntegralConstant.h:57:36: warning:
unused parameter 'other' [-Wunused-parameter]
FixedInt( VariableAndFixedInt other) {
^
In file included from /Users/cherry/import/RePlAce/src/main.cpp:60:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
In file included from /Users/cherry/import/RePlAce/src/main.cpp:63:
/Users/cherry/import/RePlAce/src/timing.h:213:3: warning: control may reach end of
non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/timing.h:350:9: warning: field '_terms' will be
initialized after field '_nets' [-Wreorder]
_terms(terms),
^
/Users/cherry/import/RePlAce/src/timing.h:356:9: warning: field '_tPinName' will be
initialized after field '_unitX' [-Wreorder]
_tPinName(tPinName),
^
12 warnings generated.
[ 89%] Building CXX object CMakeFiles/replace.dir/src/myFunctions.cpp.o
In file included from /Users/cherry/import/RePlAce/src/myFunctions.cpp:52:
In file included from /Users/cherry/import/RePlAce/src/bin.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/myFunctions.cpp:54:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/myFunctions.cpp:289:42: warning: cast from
'const void *' to 'MODULE **' drops const qualifier [-Wcast-qual]
struct MODULE **aa = (struct MODULE **)a;
^
/Users/cherry/import/RePlAce/src/myFunctions.cpp:290:42: warning: cast from
'const void *' to 'MODULE **' drops const qualifier [-Wcast-qual]
struct MODULE **bb = (struct MODULE **)b;
^
10 warnings generated.
[ 89%] Building CXX object CMakeFiles/replace.dir/src/ns.cpp.o
In file included from /Users/cherry/import/RePlAce/src/ns.cpp:51:
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/ns.cpp:56:
In file included from /Users/cherry/import/RePlAce/src/ns.h:45:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
In file included from /Users/cherry/import/RePlAce/src/ns.cpp:56:
In file included from /Users/cherry/import/RePlAce/src/ns.h:46:
/Users/cherry/import/RePlAce/src/timing.h:213:3: warning: control may reach end of
non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/timing.h:350:9: warning: field '_terms' will be
initialized after field '_nets' [-Wreorder]
_terms(terms),
^
/Users/cherry/import/RePlAce/src/timing.h:356:9: warning: field '_tPinName' will be
initialized after field '_unitX' [-Wreorder]
_tPinName(tPinName),
^
/Users/cherry/import/RePlAce/src/ns.cpp:1294:30: warning: unused variable 'zz'
[-Wunused-variable]
prec zx = 0.0f, zy = 0.0f, zz = 0.0f;
^
/Users/cherry/import/RePlAce/src/ns.cpp:1680:35: warning: unused parameter 'iter'
[-Wunused-parameter]
void myNesterov::PlotNesterov(int iter) {
^
In file included from /Users/cherry/import/RePlAce/src/ns.cpp:56:
/Users/cherry/import/RePlAce/src/ns.h:81:9: warning: private field 'alphaArrCD' is
not used [-Wunused-private-field]
prec *alphaArrCD;
^
/Users/cherry/import/RePlAce/src/ns.h:82:9: warning: private field 'deltaArrCD' is
not used [-Wunused-private-field]
prec *deltaArrCD;
^
/Users/cherry/import/RePlAce/src/ns.h:101:8: warning: private field
'before100iter_alpha' is not used [-Wunused-private-field]
prec before100iter_alpha;
^
/Users/cherry/import/RePlAce/src/ns.h:102:8: warning: private field
'before100iter_delta' is not used [-Wunused-private-field]
prec before100iter_delta;
^
17 warnings generated.
[ 89%] Building CXX object CMakeFiles/replace.dir/src/opt.cpp.o
In file included from /Users/cherry/import/RePlAce/src/opt.cpp:48:
In file included from /Users/cherry/import/RePlAce/src/bookShelfIO.h:44:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/opt.cpp:51:
/Users/cherry/import/RePlAce/src/gcell.h:52:1: warning: 'TILE' defined as a class
here but previously declared as a struct [-Wmismatched-tags]
class TILE {
^
/Users/cherry/import/RePlAce/src/global.h:760:3: note: did you mean class here?
struct TILE *tile_mat;
^~~~~~
class
In file included from /Users/cherry/import/RePlAce/src/opt.cpp:54:
In file included from /Users/cherry/import/RePlAce/src/ns.h:45:
/Users/cherry/import/RePlAce/src/opt.h:104:53: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
void cell_calc_new_area_per_Cell(struct CELL *cell, struct TILE *bp);
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/opt.h:104:53: note: did you mean class here?
void cell_calc_new_area_per_Cell(struct CELL *cell, struct TILE *bp);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:131:49: warning: struct 'TILE' was
previously declared as a class [-Wmismatched-tags]
void cell_inflation_per_Cell(struct CELL *cell, struct TILE *bp);
^
/Users/cherry/import/RePlAce/src/gcell.h:52:7: note: previous use is here
class TILE {
^
/Users/cherry/import/RePlAce/src/opt.h:131:49: note: did you mean class here?
void cell_inflation_per_Cell(struct CELL *cell, struct TILE *bp);
^~~~~~
class
In file included from /Users/cherry/import/RePlAce/src/opt.cpp:54:
In file included from /Users/cherry/import/RePlAce/src/ns.h:46:
/Users/cherry/import/RePlAce/src/timing.h:213:3: warning: control may reach end of
non-void function [-Wreturn-type]
}
^
/Users/cherry/import/RePlAce/src/timing.h:350:9: warning: field '_terms' will be
initialized after field '_nets' [-Wreorder]
_terms(terms),
^
/Users/cherry/import/RePlAce/src/timing.h:356:9: warning: field '_tPinName' will be
initialized after field '_unitX' [-Wreorder]
_tPinName(tPinName),
^
/Users/cherry/import/RePlAce/src/opt.cpp:375:9: warning: unused variable 'fp'
[-Wunused-variable]
FILE *fp = NULL;
^
/Users/cherry/import/RePlAce/src/opt.cpp:478:3: warning: struct 'NET' was
previously declared as a class [-Wmismatched-tags]
struct NET *net = NULL;
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.cpp:478:3: note: did you mean class here?
struct NET *net = NULL;
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.cpp:667:34: warning: cast from 'const void *'
to 'DST *' drops const qualifier [-Wcast-qual]
struct DST *aa = (struct DST *)a;
^
/Users/cherry/import/RePlAce/src/opt.cpp:668:34: warning: cast from 'const void *'
to 'DST *' drops const qualifier [-Wcast-qual]
struct DST *bb = (struct DST *)b;
^
/Users/cherry/import/RePlAce/src/opt.cpp:1143:22: warning: cast from 'const void *'
to 'float *' drops const qualifier [-Wcast-qual]
prec *aa = (prec *)a;
^
/Users/cherry/import/RePlAce/src/opt.cpp:1144:22: warning: cast from 'const void *'
to 'float *' drops const qualifier [-Wcast-qual]
prec *bb = (prec *)b;
^
/Users/cherry/import/RePlAce/src/opt.cpp:1149:34: warning: cast from 'const void *'
to 'ABC *' drops const qualifier [-Wcast-qual]
struct ABC *aa = (struct ABC *)a;
^
/Users/cherry/import/RePlAce/src/opt.cpp:1150:34: warning: cast from 'const void *'
to 'ABC *' drops const qualifier [-Wcast-qual]
struct ABC *bb = (struct ABC *)b;
^
22 warnings generated.
[ 90%] Building CXX object CMakeFiles/replace.dir/src/plot.cpp.o
In file included from /Users/cherry/import/RePlAce/src/plot.cpp:41:
In file included from /Users/cherry/import/RePlAce/src/plot.h:46:
/Users/cherry/import/RePlAce/src/global.h:198:42: warning: unused parameter '_z'
[-Wunused-parameter]
inline void Set(prec _x, prec _y, prec _z) {
^
In file included from /Users/cherry/import/RePlAce/src/plot.cpp:44:
/Users/cherry/import/RePlAce/src/opt.h:109:46: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:109:46: note: did you mean class here?
void buildRSMT_FLUTE_PerNet(struct FPOS *st, struct NET *net); // lutong
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:112:39: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:112:39: note: did you mean class here?
void buildRMSTPerNet(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:113:53: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:113:53: note: did you mean class here?
void buildRMSTPerNet_genTwoPinNets(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:114:30: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_genRMST(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:114:30: note: did you mean class here?
void buildRMSTPerNet_genRMST(struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:115:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:115:49: note: did you mean class here?
void buildRMSTPerNet_printRMST(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:119:49: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:119:49: note: did you mean class here?
void calcCongPerNet_prob_based(struct FPOS *st, struct NET *net);
^~~~~~
class
/Users/cherry/import/RePlAce/src/opt.h:120:35: warning: struct 'NET' was previously
declared as a class [-Wmismatched-tags]
void calcCongPerNet_grouter_based(struct NET *net);
^
/Users/cherry/import/RePlAce/src/global.h:640:7: note: previous use is here
class NET {
^
/Users/cherry/import/RePlAce/src/opt.h:120:35: note: did you mean class here?
void calcCongPerNet_grouter_based(struct NET *net);
^~~~~~
class
In file included from /Users/cherry/import/RePlAce/src/plot.cpp:46:
/Users/cherry/import/RePlAce/module/CImg/CImg.h:371:10: fatal error: 'X11/Xlib.h'
file not found

Compile issue for ppc64le.

While compiling RePlAce under ppc64le, I've met an issue that components 'intel-mkl-2018.2-046' and 'intel-ipp-2018.4-057' were not available for ppc64le.
Would you mind my asking what's the purpose of using Intel-math-kernel here? Are there any equivalent components suitable for ppc64le?
Thanks!

Revert verilog_parser.h last change

I couldn't open an issue in the corresponding repo ...
You should revert the last change in the verilog-parser repo, because it breaches linking for a 64-bit system for the RePlAce project:

--->> verilog_parser.h Following standard yy_scan_bytes(yy_size_t -> int) 4 months ago

pls revert back to yy_size_t

RePlace crashes while placing ISPD06 circuits

RePLace crashes while placing ISPD06 circuits.
The placer requires routing data which is not available in the 2006 ISPD circuits.
ERROR: RouteInst failed to get LAYER information from LEF

Please find the log as follows.

$ ./replace -bmflag ispd -aux adaptec1/adaptec1.aux -onlyGP -output placement -den 0.7
CMD : ./replace -bmflag ispd -aux adaptec1/adaptec1.aux -onlyGP -output placement -den 0.7
INFO: VERSION, Compiled at Aug 11 2019 09:40:45
INFO: Now is Sun Aug 11 10:35:36 2019

** WARNING: Your Detail Placement Step must be skipped.
(i.e. this program will be executed as -onlyGP)
If you want to have DP after GP, please specify -dpflag and -dploc.

INFO: Target Density = 0.700000
INFO: Experiment Index 2
INFO: DIR_PATH = placement/ispd/adaptec1/experiment002

PROC: BEGIN IMPORTING PLACEMENT INPUT
INFO: PLACEMENT INSTANCES INCLUDING STDCELL and MOVABLE MACRO
INFO: Instance MinX=3.00, MaxX=77.00
INFO: MinY=12.00, MaxY=12.00
INFO: AvgX=14.73, AvgY=12.00
INFO: Smallest Instance o39274 Size 36.00
INFO: Largest Instance o39112 Size 924.00
INFO: TERMINALS INCLUDING PAD and FIXED MACRO
INFO: Terminal MinX=72.00, MaxX=2304.00
INFO: MinY=24.00, MaxY=2856.00
INFO: AvgX=278.62, AvgY=436.29
INFO: #NET=221142
INFO: #PIN=944053
INFO: Maximum Net Degree is 2271
INFO: ASPECT RATIO=0.998878
INFO: ROW = (MinX=459.000000, MinY=459.000000)
INFO: ROW = (MaxX=11151.000000, MaxY=11139.000000)
INFO: TERM: (22.000000, 22.000000) - (11589.000000, 11589.000000)
INFO: NOTE: 0% Whitespace is Added to Each Tier.
INFO: LARGEST MACRO SIZE (X,Y) = (77, 12)
INFO: TIER DIMENSION (X,Y) = (10692, 10680)
INFO: #STDCELL=210904, #movableMACRO=0, #fixedMACRO=543
INFO: #ROW=890, ROW HEIGHT=12, TIER DEPTH=1
INFO: GLOBAL.SPACE.MIN = (22.000000, 22.000000)
INFO: GLOBAL.SPACE.MAX = (11589.000000, 11589.000000)
INFO: PLACE.ORIGIN = (459, 459)
INFO: PLACE.END = (11151, 11139)

PROC: END IMPORTING PLACEMENT INPUT

PROC: BEGIN INITIAL PLACEMENT (IP)
PROC: Conjugate Gradient (CG) method to obtain the IP
INFO: The Initial HPWL is 47895080.000000
INFO: The Matrix Size is 210904
INFO: IP 0, CG Error 0.000366, HPWL 46455352.000000, CPUtime 1.84
INFO: IP 1, CG Error 0.000236, HPWL 45368104.000000, CPUtime 1.90
INFO: IP 2, CG Error 0.000115, HPWL 44386312.000000, CPUtime 1.81
INFO: IP 3, CG Error 0.000118, HPWL 43533904.000000, CPUtime 1.83
INFO: IP 4, CG Error 0.000079, HPWL 42995104.000000, CPUtime 1.84
INFO: IP 5, CG Error 0.000045, HPWL 42599216.000000, CPUtime 1.83
INFO: IP 6, CG Error 0.000037, HPWL 42372400.000000, CPUtime 1.79
INFO: IP 7, CG Error 0.000034, HPWL 42159832.000000, CPUtime 1.80
INFO: IP 8, CG Error 0.000029, HPWL 42043056.000000, CPUtime 1.78
INFO: IP 9, CG Error 0.000024, HPWL 41911872.000000, CPUtime 1.82
INFO: IP 10, CG Error 0.000022, HPWL 41841832.000000, CPUtime 1.81
INFO: IP 11, CG Error 0.000020, HPWL 41742176.000000, CPUtime 1.79
INFO: IP 12, CG Error 0.000019, HPWL 41709708.000000, CPUtime 1.86
INFO: IP 13, CG Error 0.000019, HPWL 41644000.000000, CPUtime 1.87
INFO: IP 14, CG Error 0.000016, HPWL 41638240.000000, CPUtime 1.82
INFO: IP 15, CG Error 0.000014, HPWL 41597052.000000, CPUtime 1.79
INFO: IP 16, CG Error 0.000014, HPWL 41604900.000000, CPUtime 1.88
INFO: IP 17, CG Error 0.000013, HPWL 41571488.000000, CPUtime 1.92
INFO: IP 18, CG Error 0.000013, HPWL 41580864.000000, CPUtime 1.89
INFO: IP 19, CG Error 0.000013, HPWL 41551400.000000, CPUtime 1.86
INFO: IP 20, CG Error 0.000012, HPWL 41561672.000000, CPUtime 1.84
INFO: IP 21, CG Error 0.000011, HPWL 41535172.000000, CPUtime 1.80
INFO: IP 22, CG Error 0.000011, HPWL 41547376.000000, CPUtime 1.80
INFO: IP 23, CG Error 0.000011, HPWL 41522168.000000, CPUtime 1.83
INFO: IP 24, CG Error 0.000011, HPWL 41533984.000000, CPUtime 1.87
INFO: IP 25, CG Error 0.000011, HPWL 41510464.000000, CPUtime 1.82
INFO: IP 26, CG Error 0.000010, HPWL 41523896.000000, CPUtime 1.84
INFO: IP 27, CG Error 0.000012, HPWL 41499152.000000, CPUtime 2.22
INFO: IP 28, CG Error 0.000012, HPWL 41510872.000000, CPUtime 2.26
INFO: IP 29, CG Error 0.000013, HPWL 41487712.000000, CPUtime 2.05
RESULT:
HPWL(IP): 110794560.0000 (55961432.0000, 54833124.0000)

PROC: END INITIAL PLACEMENT (IP)

INFO: Chip Area: 10692 x 10680 = 114190560
INFO: Total_PL_Area = 114190560, %100.00 of chip
INFO: Total_TermPL_Area = 49164072, %43.05 of PL
INFO: Total_WS_Area = 65026488, %56.95 of PL
INFO: Total_Macro_Area = 0, %0.00 of WS
INFO: Total_StdCell_Area = 37286292, %57.34 of WS
INFO: Average 80pct Cell Area = 173.3035
INFO: FillerCell's Area = 173.303467
gFillerCount: 47502
filler_area: 173.303
total_filler_area: : 8.23225e+06
INFO: FillerCell's X = 14.441956 , FillerCell's Y = 12.000000
INFO: #CELL = 258406 = 210904 (#MODULE) + 47502 (#FILLER)
INFO: Average Module Width = 14.732727, Row Height = 12.000000
INFO: D_MSH = 1024
INFO: MSH(X, Y) = (32, 32)
PROC: Standard Cell 2D Global Placement (cGP2D)
INFO: Tier 0, Density is 0.326527
tier->modu_cnt:210904
gfiller_cnt: 47502
INFO: (tier 0) area: 114190560
INFO: (tier 0) virt_area: 0
INFO: (tier 0) term_area: 49164072
INFO: (tier 0) modu_area: 37286292
INFO: (tier 0) filler_area: 8232248
min_idx: 210904
max_idx: 258406
gcell_cnt: 258406
tier->filler_cnt: 47502
INFO: dim_bin_cGP2D.(x,y) = (512, 512)
tier->pmin: (459 459)
ERROR: RouteInst failed to get LAYER information from LEF

Routability option in the latest version(tcl command)

In previous versions there was '-routability' option. routability-driven placement could be called by this option, after put the NCTUgr in './router'. However, I can not find the tcl command about routability in the command list of the latest RePlAce. I want to ask if the current version does not support this feature?
thanks for your answer!

RePlAce + OpenDP has several placement violations

Running OpenDP after Replace yeilds several

## Total instances with placement violations: 1393
## Insts placed overlapping with other insts (671) ##
### 722 Orientation Violation>
## Number of Placed Instances = 9694
## Number of Unplaced Instances = 0
## Placement Density:39.99%(29849/74650)

I've added t9_opendp_2019-06-19_15-22.tar.gz to the attachments

Density constraint in tier.cpp

I am finding that I can get errors with RePlAce stopping with the error message "no more tier to assign!". This happens because I am calculating row sites based on the number of standard cells and the target density. Slight differences in the calculation between my script and RePlAce, however, mean that RePlAce thinks there are not enough sites for the cells. But density does not need to be exact. RePlAce should not care if the density is slightly off, certainly not if the difference is small enough to be round-off error.

I suggest that tier.cpp around line 239:

  if((tier->modu_area + modu_area) / tier->ws_area <=
     target_cell_den - dp_margin_per_tier) {

should instead fail only if tier->modu_area + modu_area) > tier->ws_area (strong constraint). Otherwise, if the existing expression (above) fails (preferably with a small positive value for dp_margin_per_tier to account for round-off error) (weak constraint), it should flag a warning that the density cannot be met due to lack of sites, but it should not exit. This is not a fatal condition.

---Tim

fastExp function

I am wondering what is the motivation behind the fastExp function used in net_update_wa. I cannot see that it is faster or more numerically stable than the exp function from std in any meaningful way. And I am interested as to where the expression was found:

inline prec fastExp(prec a) {
    a = 1.0 + a / 1024.0;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    a *= a;
    return a;
}

Support for non-rectangular standard-cell area - Need clarification

Hello,

I have a design with a non-rectangular standard-cell area (The initial DEF has several macros placed and the std cells rows do no overlap with the macros) - It crashes with a free() invalid pointer/core dump when running the rep init_replace command
When looking at the readme it mentions:
RePlAce does not support rectilinear layout regions
but the GIFs clearly show non-rectangular standard cell area (which is the definition of a rectilinear region for me) .
So I'm wondering if I should investigate more in debugging the issue or if Replace simply does not support non-rectangular area

RePlAce fails to place all Insts on grid for Coyote

After running RePlAce on Coyote and loading into innovus, checkplace reports several cells not placed on the manufacturing grid

Insts not on placement grid, or blocks not on manufacturing grid (279)

See attachment: t9_place_2019-06-04_10-19.tar.gz

Great Work!

Thanks for opening the source of a global placer! This is a great work!

Compilation issue

I am attaching the log file created by script during make.

If you run cat make_result.log you can see the terminal output in color.

The error I get is:
/usr/bin/ld: cannot find -lc++

make_result.log

Pin constraints and placement?

I can't find any way to specify pin constraints, and RePlAce appears to leave any pins in the PLACED position they started in. If they are in the DEF file but do not have a PLACED position, they don't show up in the layout at all. Pin constraints in, say, Cadence Encounter are passed through a Tcl setup file, but I can't find anything similar for RePlAce.

Is RePlAce able to optimize pin positions? If so, what do I need to do to enable that?

---Tim

negative HPWL

The following design crashes replace (I just copied it in place of the gcd demo; I know that some other tool is going to choke on the missing clk signal later in the toolchain, but replace seems to have another problem):

module gcd(
input[3:0] encoded,
output reg[6:0] decoded
);
always @(*) begin
case (encoded)
4'd0: decoded <= 7'b1110111;
4'd1: decoded <= 7'b0100100;
4'd2: decoded <= 7'b1011101;
4'd3: decoded <= 7'b1101101;
4'd4: decoded <= 7'b0101110;
4'd5: decoded <= 7'b1101011;
4'd6: decoded <= 7'b1111011;
4'd7: decoded <= 7'b0100101;
4'd8: decoded <= 7'b1111111;
4'd9: decoded <= 7'b1101111;
4'd10: decoded <= 7'b0111111;
4'd11: decoded <= 7'b1111010;
4'd12: decoded <= 7'b1010011;
4'd13: decoded <= 7'b1111100;
4'd14: decoded <= 7'b1011011;
4'd15: decoded <= 7'b0011011;
default: decoded <= 0;
endcase
end
endmodule

At some point, this outputs:

[INFO] Nesterov: 10 OverFlow: 0.5945 ScaledHpwl: 5583.1606
... (repeated many times, but the OverFlow and ScaledHpwl values don't change)
[INFO] Nesterov: 2100 OverFlow: 0.5945 ScaledHpwl: 5583.1606
[INFO] Timing: WNS = 1e+30
[INFO] Timing: TNS = 0
[INFO] Nesterov: 2110 OverFlow: 0.4528 ScaledHpwl: -40109.2656
... (repeated many times, but the OverFlow and ScaledHpwl values don't change)
[INFO] Nesterov: 2500 OverFlow: 0.4528 ScaledHpwl: -40109.2656
[INFO] Timing: WNS = 1e+30
[INFO] Timing: TNS = 0
NEGATIVE HPWL ERROR! 00 72.0000 587.4428
NEGATIVE HPWL ERROR! 00 79.2643 592.2643
NEGATIVE HPWL ERROR!
00-80.1800 -79.8000

I have seen a commit that mentions the "negative HPWL" error, but the commit is stuck in the alpha2.1 branch. Is that commit relevant to the error I'm getting, and is the commit planned to be merged at some point in the future?

Cannot find SITE in lef - error

Hi

I am trying to do hierarchical placement and hence pointing to memory lef, pad lef, std cell lef and tech lef.

anaghavsd@rise:~/Desktop/work/tools/RePlAce/src$ ./execute_lefdef.py mkSoc_wrapper
./RePlAce -bmflag etc -lef ../bench/lefdef/mkSoc_wrapper/tsl18cio150_4lm.lef -lef ../bench/lefdef/mkSoc_wrapper/DPRAM_32x8.lef -lef ../bench/lefdef/mkSoc_wrapper/tsl180l4.lef -lef ../bench/lefdef/mkSoc_wrapper/DPRAM_4096x36.lef -lef ../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x32.lef -lef ../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x8.lef -lef ../bench/lefdef/mkSoc_wrapper/tsl18fs120_scl.lef -def ../bench/lefdef/mkSoc_wrapper/mkSoc_wrapper.input.def -output ../output -t 1 -dpflag NTU3 -dploc /home/anaghavsd/Desktop/work/tools/RePlAce/ntuplace/ntuplace3 | tee ../logdir/mkSoc_wrapper_2018-11-30_14:37:33.log
CMD : ./RePlAce -bmflag etc -lef ../bench/lefdef/mkSoc_wrapper/tsl18cio150_4lm.lef -lef ../bench/lefdef/mkSoc_wrapper/DPRAM_32x8.lef -lef ../bench/lefdef/mkSoc_wrapper/tsl180l4.lef -lef ../bench/lefdef/mkSoc_wrapper/DPRAM_4096x36.lef -lef ../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x32.lef -lef ../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x8.lef -lef ../bench/lefdef/mkSoc_wrapper/tsl18fs120_scl.lef -def ../bench/lefdef/mkSoc_wrapper/mkSoc_wrapper.input.def -output ../output -t 1 -dpflag NTU3 -dploc /home/anaghavsd/Desktop/work/tools/RePlAce/ntuplace/ntuplace3
INFO: VERSION, Compiled at Nov 29 2018 12:22:24
INFO: Now is Fri Nov 30 14:37:33 2018
INFO: Target Density = 1.000000
INFO: Experiment Index 2
INFO: DIR_PATH = ../output/etc/mkSoc_wrapper.input/experiment002

PROC: BEGIN IMPORTING PLACEMENT INPUT
WARNING (LEFPARS-2001): No VERSION statement found, using the default value 5.8. See file ../bench/lefdef/mkSoc_wrapper/DPRAM_4096x36.lef at line 23245.

** WARNING : LEF unit Info is missing..! (UNITS/DATABASE)
INFO: DEF SCALE UNIT: 1000
INFO: METAL1 NAME IN LEF: M1
INFO: SCALE DOWN UNIT: ( 560, 560 )
INFO: OFFSET COORDINATE: ( 160, 160 )

INFO: #MODULE: 228718, #TERMINAL: 937

ERROR: Cannot find SITE in lef files: unit

But when I grep for SITE, I am seeing the below:
Am I missing anything?

grep SITE ../bench/lefdef/mkSoc_wrapper/*.lef | sort -u
../bench/lefdef/mkSoc_wrapper/DPRAM_32x8.lef:SITE CoreSite
../bench/lefdef/mkSoc_wrapper/DPRAM_32x8.lef:SITE IOSite_c
../bench/lefdef/mkSoc_wrapper/DPRAM_4096x36.lef:SITE CoreSite
../bench/lefdef/mkSoc_wrapper/DPRAM_4096x36.lef:SITE IOSite_c
../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x32.lef:SITE CoreSite
../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x32.lef:SITE IOSite_c
../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x8.lef:SITE CoreSite
../bench/lefdef/mkSoc_wrapper/obc11_dpram_256x8.lef:SITE IOSite_c
../bench/lefdef/mkSoc_wrapper/tsl18cio150_4lm.lef: SITE CO_MSTR_c ;
../bench/lefdef/mkSoc_wrapper/tsl18cio150_4lm.lef:SITE CO_MSTR_c
../bench/lefdef/mkSoc_wrapper/tsl18cio150_4lm.lef: SITE IOSite_c ;
../bench/lefdef/mkSoc_wrapper/tsl18cio150_4lm.lef:SITE IOSite_c
../bench/lefdef/mkSoc_wrapper/tsl18fs120_scl.lef: SITE CoreSite ;
../bench/lefdef/mkSoc_wrapper/tsl18fs120_scl.lef:SITE CoreSite

/usr/bin/ld: cannot find -lverilog_parser

Hi
After cloning the latest build, I ma seeing below error

Linking...
Intel Math Kernel Library (MKL 11.3.3) and
Intel Integrated Performance Primitives (IPP 9.0.3) have been included
with static libs...
If you want to replace them into shared libs, do '-L PATH -lippi,' etc.

g++ -o RePlAce
-std=c++0x -g -ggdb -m64 -O3 -fPIC -DNDEBUG -ffast-math -Dcimg_display=1
/home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/charge.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/initPlacement.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/fftsg2d.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/bin.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/intelLibFs.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/timing.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/trial.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/lefdefIO.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/timingSta.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/plot.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/opt.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/myFunctions.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/detailPlace.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/tier.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/wlen.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/routeOpt.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/fftsg.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/ns.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/macro.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/fftsg3d.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/argument.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/fft.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/main.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/bookShelfIO.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/lefParser.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/defParser.o /home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src/gcell.o ../module/OpenSTA//app/StaApp_wrap.o ../module/OpenSTA//app/StaMain.o ../module/OpenSTA//app/TclInitVar.o
-Wl,--start-group /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_gnu_thread.a /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_core.a /opt/intel/compilers_and_libraries/linux/ipp/lib/intel64/libippi.a /opt/intel/compilers_and_libraries/linux/ipp/lib/intel64/libipps.a /opt/intel/compilers_and_libraries/linux/ipp/lib/intel64/libippcore.a /opt/intel/compilers_and_libraries/linux/ipp/lib/intel64/libippvm.a ../module/OpenSTA/install-sp//lib/libliberty.a ../module/OpenSTA/install-sp//lib/libutil.a ../module/OpenSTA/install-sp//lib/libsearch.a ../module/OpenSTA/install-sp//lib/libdcalc.a ../module/OpenSTA/install-sp//lib/libgraph.a ../module/OpenSTA/install-sp//lib/libnetwork.a ../module/OpenSTA/install-sp//lib/libparasitics.a ../module/OpenSTA/install-sp//lib/libsdc.a ../module/OpenSTA/install-sp//lib/libsdf.a ../module/OpenSTA/install-sp//lib/libverilog.a -Wl,--end-group
-lgomp -lpthread -lm -ldl -lX11 -ltcl8.6 -lz
-L../module/lef/5.8-p027/lib -llef -llefzlib -lclef -lclefzlib -L../module/def/5.8-p027/lib -ldef -ldefzlib -lcdef -lcdefzlib -L../module/verilog-parser/lib -lverilog_parser -L../module/flute/lib -lflute -static-libstdc++
/usr/bin/ld: cannot find -lverilog_parser
collect2: error: ld returned 1 exit status
Makefile:92: recipe for target 'RePlAce' failed
make[1]: *** [RePlAce] Error 1
make[1]: Leaving directory '/home/kunalg/vsdflow/work/tools/RePlAce/RePlAce/src'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2

Runtime errors

Bear with me here, because I am trying to get RePlAce to work (1) in the context of qflow, and (2) as an executable installed in a standard install target, not with the executables contained within its own source directory tree. So I have skipped right over the examples and plunged into running it on a pre-placement DEF file of my own creation (which is ongoing work, because I am still discovering what information RePlAce needs to see in the input DEF file).

So for a first run, I have managed to get through the first global placement phase. I created an input DEF file and ran RePlAce with the following options (some of which I have very little understanding of, such as -bmflag and -dpflag):

RePlAce -bmflag ispd -lef /usr/local/share/qflow/tech/osu035/osu35_stdcells.lef -def map9v3.def -output output -dpflag NTU3 -dploc output

Running this, it got all the way to "Call NtuPlacer3". Just before it printed "Call NtuPlacer3", it output:

ln -s output output/ispd/map9v3/experiment000/tiers/0/

I don't get that at all, as that appears to make a recursive symbolic link to itself. Then the next thing it does is to do:

cd output/ispd/map9v3/experiment000/tiers/0 && ./ntuplace3 -aux map9v3.aux -loadpl map9v3.pl -util 1.00 -noglobal

Which fails immediately, as there is no "ntuplace3" in that directory. The indended "ntuplace3" is presumably the executable in the RePlAce source directory in ntuplace/ntuplace3. What was the intention of this command?

sparsehash doesn't install on case-insensitive filesystems

The sparsehash module is currently compiled with the following command:

cd $(HASHDIR) && mkdir -p install && ./configure --prefix=$(CURDIR)/$(HASHDIR)/install && $(MAKE)

However, this does not work on filesystems that are case-insensitive because autoconf creates a file called INSTALL, which conflicts with the mkdir -p install command.

A solution would be to install in a separate directory (such as install-sp) or put it into a neighbouring build directory.

Changes need to be made in the root Makefile as well as the definition of HASHROOT in src/Makefile

Build error on ubuntu 18.04

What is the preferred branch for beta testers?

Following README, I get the following cmake error on build. (pre-requisites installed.)

=====================================================================

CMake Error at CMakeLists.txt:40 (add_subdirectory):
The source directory

/home/aolofsson/work/darpa/IDEA/ucsd-openroad/RePlAce/module/def

does not contain a CMakeLists.txt file.

CMake Error at CMakeLists.txt:41 (add_subdirectory):
The source directory

/home/aolofsson/work/darpa/IDEA/ucsd-openroad/RePlAce/module/lef

does not contain a CMakeLists.txt file.

CMake Error at CMakeLists.txt:43 (add_subdirectory):
The source directory

/home/aolofsson/work/darpa/IDEA/ucsd-openroad/RePlAce/module/OpenSTA

does not contain a CMakeLists.txt file.

-- Could NOT find GOOGLEHASH (missing: GOOGLEHASH_INCLUDES GOOGLEHASH_COMPILE)
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find TCLTK (missing: TK_INCLUDE_PATH)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.10/Modules/FindTCL.cmake:213 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:52 (find_package)

Typo in readme

As of c77d24f, the download instructions for the lefdef benchmarks contains a typo:

// download lefdef benchmarks
$ cd ~/RePlAce/becnh/lefdef

Installation issue

Hello and thank you for sharing such a great project !
A couple of installation issues:

  1. Intel MKL and IPP should be pre-installed. Both should have same versions
  2. The issue with TCL8.6 was not fixed. I still need to do
    anaghavsd@rise:~/Desktop/work/tools/RePlAce/src$ sudo ln -s /usr/include/tcl/*.h .
    which was in issue #7
  3. As a new bug, verilog-parser stops compiling. I tried to checkout v0.2.31 and built it manually with cmake in the models/verilog-parser/build directory.

That workaround failed at the link stage with the message:
/usr/bin/ld: cannot find -lverilog_parser

Please help to resolve this

Thanks for a great job and support !

CImg reports missing header

As of commit c77d24f, the CImg tool will break without the Xlib.h header. The GCC compiler reports: ../module/CImg/CImg.h:371:22: fatal error: X11/Xlib.h: No such file or directory #include <X11/Xlib.h>.

CentOS users may mitigate this by installing the X11 devel package (libX11-devel-1.6.5-1.el7.x86_64). It would be helpful to offer a yum install line for the prerequisites for the tool.

Bookshelf Format Support

Thanks for open sourcing this guys! Really helpful work.
Can someone help me get moving with the bookshelf format of the DAC2012 superblue benchmarks?
c02698e
It looks like support was removed for these benchmarks and I'd love to play around with the routability driven placement portion of this work.

installation issue

Hi
Getting below issue while installing RePlace.

g++ -o RePlAce
-std=c++0x -g -ggdb -m64 -O3 -fPIC -DNDEBUG -ffast-math -Dcimg_display=1
/home/anaghavsd/Desktop/work/tools/RePlAce/src/timingSta.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/initPlacement.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/intelLibFs.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/bin.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/charge.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/fftsg2d.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/trial.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/lefdefIO.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/gcell.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/plot.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/opt.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/myFunctions.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/tier.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/wlen.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/routeOpt.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/timing.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/fftsg.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/ns.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/macro.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/fftsg3d.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/detailPlace.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/fft.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/argument.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/main.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/bookShelfIO.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/defParser.o /home/anaghavsd/Desktop/work/tools/RePlAce/src/lefParser.o ../module/OpenSTA//app/StaApp_wrap.o ../module/OpenSTA//app/StaMain.o ../module/OpenSTA//app/TclInitVar.o
-Wl,--start-group /opt/intel/compilers_and_libraries_2018.5.274/linux/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/compilers_and_libraries_2018.5.274/linux/mkl/lib/intel64/libmkl_gnu_thread.a /opt/intel/compilers_and_libraries_2018.5.274/linux/mkl/lib/intel64/libmkl_core.a /opt/intel/compilers_and_libraries_2018.5.274/linux/ipp/lib/intel64/libippi.a /opt/intel/compilers_and_libraries_2018.5.274/linux/ipp/lib/intel64/libipps.a /opt/intel/compilers_and_libraries_2018.5.274/linux/ipp/lib/intel64/libippcore.a /opt/intel/compilers_and_libraries_2018.5.274/linux/ipp/lib/intel64/libippvm.a ../module/OpenSTA/install-sp//lib/libliberty.a ../module/OpenSTA/install-sp//lib/libutil.a ../module/OpenSTA/install-sp//lib/libsearch.a ../module/OpenSTA/install-sp//lib/libdcalc.a ../module/OpenSTA/install-sp//lib/libgraph.a ../module/OpenSTA/install-sp//lib/libnetwork.a ../module/OpenSTA/install-sp//lib/libparasitics.a ../module/OpenSTA/install-sp//lib/libsdc.a ../module/OpenSTA/install-sp//lib/libsdf.a ../module/OpenSTA/install-sp//lib/libverilog.a -Wl,--end-group
-lgomp -lpthread -lm -ldl -lX11 -ltcl8.5 -lz
-L../module/lef/5.8-p027/lib -llef -llefzlib -lclef -lclefzlib -L../module/def/5.8-p027/lib -ldef -ldefzlib -lcdef -lcdefzlib -L../module/verilog-parser/lib -lverilog_parser -L../module/flute/lib -lflute -static-libstdc++
/usr/bin/ld: cannot find -lverilog_parser
collect2: error: ld returned 1 exit status
Makefile:92: recipe for target 'RePlAce' failed
make[1]: *** [RePlAce] Error 1
make[1]: Leaving directory '/home/anaghavsd/Desktop/work/tools/RePlAce/src'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2

There are other missing dependencies which I was able to resolve manually, like tcl.h not found OR verilog_writer.h not found. But the above one, not sure how to proceed.
Can you please help?

Add `swig` as a dependency

Latest commit compilation failed because of missing dependency. After installing swig using apt (I'm on Ubuntu), compilation proceeded but failed at later stage, for which I'll open another issue.

Anyway, you should add swig add the Ubuntu dependencies.

tcl.h not found (Debian)

In order to get the tool to build on Debian I needed to replace all references of "#include <tcl.h>" to "#include <tcl/tcl.h>". This includes references within the modified OpenSTA repository.

I realise Debian is not a supported distro but thought it might be useful that this is noted.

Source changes needed for build on Fedora

I have a Fedora system, and I needed to make the following changes to RePlaCe to get it to compile (more or less) cleanly. I do not know if these changes are Fedora-specific or not.

(1) src/global.h: in structures MODULE, TERM, and NET, each declares a field "char name[255]" and initializes it with 'name("")'. This causes my compiler to flag an error complaining about the difference between const char width 1 and const char width 255. I corrected it by replacing the initialization with "name({'\0'})".

(2) src/timingSta.cpp: My version of gcc did not recognize "std::defaultfloat" (line 312), and as far as I can tell, removing this line ("cout << std::defaultfloat;") has no impact on the output.

I believe that I have reported these before in another thread. As simple changes that make the code compile on a larger number of systems, I recommend them.

---Tim

Floating point exception (core dumped)

Hi
I was running RePlACe for designs which we had uploaded. This time I am getting Segmentation fault. I did quick valgrind and below is what I get. Anything missing?

anaghavsd@rise:/scratch/work/my_tools/RePlAce/src$ valgrind /usr/local/bin/RePlAce -bmflag etc -lef ../bench/lefdef/mksoc_wrapper/DPRAM_32x8.lef -lef ../bench/lefdef/mksoc_wrapper/obc11_dpram_256x8.lef -lef ../bench/lefdef/mksoc_wrapper/tsl18cio150_4lm.lef -lef ../bench/lefdef/mksoc_wrapper/tsl18fs120_scl.lef -lef ../bench/lefdef/mksoc_wrapper/tsl180l4.lef -lef ../bench/lefdef/mksoc_wrapper/obc11_dpram_256x32.lef -lef ../bench/lefdef/mksoc_wrapper/DPRAM_4096x36.lef -def ../bench/lefdef/mksoc_wrapper/mkSoc_wrapper.floorplan.def -output ../output -t 1 -dpflag NTU3 -dploc /scratch/work/my_tools/RePlAce/ntuplace/ntuplace3
==15572== Memcheck, a memory error detector
==15572== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==15572== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==15572== Command: /usr/local/bin/RePlAce -bmflag etc -lef ../bench/lefdef/mksoc_wrapper/DPRAM_32x8.lef -lef ../bench/lefdef/mksoc_wrapper/obc11_dpram_256x8.lef -lef ../bench/lefdef/mksoc_wrapper/tsl18cio150_4lm.lef -lef ../bench/lefdef/mksoc_wrapper/tsl18fs120_scl.lef -lef ../bench/lefdef/mksoc_wrapper/tsl180l4.lef -lef ../bench/lefdef/mksoc_wrapper/obc11_dpram_256x32.lef -lef ../bench/lefdef/mksoc_wrapper/DPRAM_4096x36.lef -def ../bench/lefdef/mksoc_wrapper/mkSoc_wrapper.floorplan.def -output ../output -t 1 -dpflag NTU3 -dploc /scratch/work/my_tools/RePlAce/ntuplace/ntuplace3
==15572==
CMD : /usr/local/bin/RePlAce -bmflag etc -lef ../bench/lefdef/mksoc_wrapper/DPRAM_32x8.lef -lef ../bench/lefdef/mksoc_wrapper/obc11_dpram_256x8.lef -lef ../bench/lefdef/mksoc_wrapper/tsl18cio150_4lm.lef -lef ../bench/lefdef/mksoc_wrapper/tsl18fs120_scl.lef -lef ../bench/lefdef/mksoc_wrapper/tsl180l4.lef -lef ../bench/lefdef/mksoc_wrapper/obc11_dpram_256x32.lef -lef ../bench/lefdef/mksoc_wrapper/DPRAM_4096x36.lef -def ../bench/lefdef/mksoc_wrapper/mkSoc_wrapper.floorplan.def -output ../output -t 1 -dpflag NTU3 -dploc /scratch/work/my_tools/RePlAce/ntuplace/ntuplace3
INFO: VERSION, Compiled at Apr 11 2019 10:20:31
INFO: Now is Thu Apr 11 11:48:24 2019
INFO: Target Density = 1.000000
INFO: Experiment Index 5
INFO: DIR_PATH = ../output/etc/mkSoc_wrapper.floorplan/experiment005

PROC: BEGIN IMPORTING PLACEMENT INPUT
INFO: DEF SCALE UNIT: 1000
INFO: METAL1 NAME IN LEF: M1
==15572== Invalid read of size 4
==15572== at 0x1BF9AE: SetParameter() (in /usr/local/bin/RePlAce)
==15572== by 0x1C17E1: ParseLefDef() (in /usr/local/bin/RePlAce)
==15572== by 0x1C1AAC: ParseInput() (in /usr/local/bin/RePlAce)
==15572== by 0x18E2DF: main (in /usr/local/bin/RePlAce)
==15572== Address 0x71935e0 is 32 bytes before a block of size 32 in arena "client"
==15572==
==15572== Invalid read of size 8
==15572== at 0x2AD7AB0: LefDefParser::lefiSite::sizeY() const (lefiMisc.cpp:1365)
==15572== by 0x1BF9D3: SetParameter() (in /usr/local/bin/RePlAce)
==15572== by 0x1C17E1: ParseLefDef() (in /usr/local/bin/RePlAce)
==15572== by 0x1C1AAC: ParseInput() (in /usr/local/bin/RePlAce)
==15572== by 0x18E2DF: main (in /usr/local/bin/RePlAce)
==15572== Address 0x84142d8 is 24 bytes before a block of size 8 alloc'd
==15572== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==15572== by 0x2AC9273: LefDefParser::lefiPin::Init() (lefiMacro.cpp:788)
==15572== by 0x2AC9560: LefDefParser::lefiPin::lefiPin(LefDefParser::lefiPin const&) (lefiMacro.cpp:931)
==15572== by 0x29A0EE: void std::vector<LefDefParser::lefiPin, std::allocatorLefDefParser::lefiPin >::_M_realloc_insert<LefDefParser::lefiPin const&>(__gnu_cxx::__normal_iterator<LefDefParser::lefiPin*, std::vector<LefDefParser::lefiPin, std::allocatorLefDefParser::lefiPin > >, LefDefParser::lefiPin const&) (in /usr/local/bin/RePlAce)
==15572== by 0x2983E5: pinCB(LefDefParser::lefrCallbackType_e, LefDefParser::lefiPin*, void*) (in /usr/local/bin/RePlAce)
==15572== by 0x2B1669A: LefDefParser::lefyyparse() (lef.y:4685)
==15572== by 0x295A48: Circuit::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >&, bool) (in /usr/local/bin/RePlAce)
==15572== by 0x1C1785: ParseLefDef() (in /usr/local/bin/RePlAce)
==15572== by 0x1C1AAC: ParseInput() (in /usr/local/bin/RePlAce)
==15572== by 0x18E2DF: main (in /usr/local/bin/RePlAce)
==15572==
INFO: SCALE DOWN UNIT: ( 0, 0 )
==15572==
==15572== Process terminating with default action of signal 8 (SIGFPE)
==15572== Integer divide by zero at address 0x1004096A32
==15572== at 0x1BFB02: SetParameter() (in /usr/local/bin/RePlAce)
==15572== by 0x1C17E1: ParseLefDef() (in /usr/local/bin/RePlAce)
==15572== by 0x1C1AAC: ParseInput() (in /usr/local/bin/RePlAce)
==15572== by 0x18E2DF: main (in /usr/local/bin/RePlAce)
==15572==
==15572== HEAP SUMMARY:
==15572== in use at exit: 1,020,189,688 bytes in 18,419,090 blocks
==15572== total heap usage: 44,575,167 allocs, 26,156,077 frees, 76,521,484,891 bytes allocated
==15572==
==15572== LEAK SUMMARY:
==15572== definitely lost: 272,998,198 bytes in 7,471,471 blocks
==15572== indirectly lost: 7,429,786 bytes in 705,319 blocks
==15572== possibly lost: 548 bytes in 7 blocks
==15572== still reachable: 739,761,156 bytes in 10,242,293 blocks
==15572== suppressed: 0 bytes in 0 blocks
==15572== Rerun with --leak-check=full to see details of leaked memory
==15572==
==15572== For counts of detected and suppressed errors, rerun with: -v
==15572== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)

Floating point exception (core dumped)

RePlAce portability for OpenROAD

I have a few suggestions to make RePlAce a little more portable, at least for OpenROAD project.
I like the new cmake system but it is statically linking even less things..

  1. Can you please update the cmake process to statically link more libraries. At least the following were staticallly linked before: libICE.so.6, libmkl_core.so, libmkl_gnu_thread.so, libmkl_intel_lp64.so, libSM.so.6, libstdc++.so.6, libuuid.so.1, libXext.so.6

  2. Can you also add "cimg_use_jpeg" to the CImg and statically link libjpeg? I don't use the "-plot" options in my test because it crashes looking for libjpeg (not installed on our servers)

Thanks

placement fails, and final def not created

Hi
I did what you suggested i.e. replace "unit" by "CoreSite" and RePlace now does takes these inputs and runs successfully. But at the output folder, I am not seeing final.def

Can you please check if placement ran correctly or not? Attaching log
mkSoc_wrapper_2018-12-02_09:12:17.log

anaghavsd@rise:~/Desktop/work/tools/RePlAce/src$ ls -ltr ../output/etc/mkSoc_wrapper.input/experiment005/
total 13104
drwxrwxr-x 2 anaghavsd anaghavsd 4096 Dec 2 09:12 initPlace
drwxrwxr-x 2 anaghavsd anaghavsd 4096 Dec 2 09:12 cell
drwxrwxr-x 2 anaghavsd anaghavsd 4096 Dec 2 09:12 bin
drwxrwxr-x 2 anaghavsd anaghavsd 4096 Dec 2 09:12 arrow
-rw-rw-r-- 1 anaghavsd anaghavsd 288 Dec 2 11:36 mkSoc_wrapper.input_gp.spef
-rw-rw-r-- 1 anaghavsd anaghavsd 13396305 Dec 2 11:36 mkSoc_wrapper.input.eplace-mGP2D.pl

RePlAce crashes for a small (less than 200) instance count design

Hi
I created a very small testcase (using all opensource libraries) , about 200 instances, and ReplAce crashes. I am attaching testcase below (def and lef's all are opensource-
map9v3_osu.tar.gz

Can you please take a look? I am passing floor-plan def which has all UNPLACED cells, whereas the testcase which is there in the RePlAce package has an input def which has PLACED cells. Am I missing anything?

[Compile Error] src/timing.h:431:27: error: ‘DBU’ was not declared in this scope

Hi, I'm getting the following error while compiling with GCC-4.8.5 and GCC-8.3.0 on Centos7.

> In file included from /opt/intel/mkl/include/mkl.h:31:0,
>                  from /home/user/Downloads/openflow/RePlAce/src/lefdefIO.cpp:53:
> /opt/intel/mkl/include/mkl_cblas.h:916:46: warning: redundant redeclaration of ‘mkl_jit_status_t mkl_jit_destroy(void*)’ in same scope [-Wredundant-decls]
>  mkl_jit_status_t mkl_jit_destroy(void* jitter);
>                                               ^
> In file included from /opt/intel/mkl/include/mkl.h:29:0,
>                  from /home/user/Downloads/openflow/RePlAce/src/lefdefIO.cpp:53:
> /opt/intel/mkl/include/mkl_blas.h:1059:18: warning: previous declaration of ‘mkl_jit_status_t mkl_jit_destroy(void*)’ [-Wredundant-decls]
>  mkl_jit_status_t mkl_jit_destroy(void* jitter);
>                   ^
> In file included from /home/user/Downloads/openflow/RePlAce/src/lefdefIO.cpp:55:0:
> /home/user/Downloads/openflow/RePlAce/src/timing.h:431:27: error: ‘DBU’ was not declared in this scope
>  struct MyHash< std::pair< DBU, DBU > > {
>                            ^
> /home/user/Downloads/openflow/RePlAce/src/timing.h:431:32: error: ‘DBU’ was not declared in this scope
>  struct MyHash< std::pair< DBU, DBU > > {
>                                 ^
> /home/user/Downloads/openflow/RePlAce/src/timing.h:431:36: error: template argument 1 is invalid
>  struct MyHash< std::pair< DBU, DBU > > {
>                                     ^
> /home/user/Downloads/openflow/RePlAce/src/timing.h:431:36: error: template argument 2 is invalid
> /home/user/Downloads/openflow/RePlAce/src/timing.h:431:38: error: template argument 1 is invalid
>  struct MyHash< std::pair< DBU, DBU > > {

I did not run the prerequisites/install script as I already installed the dependencies. I did run yum install libstdc++-devel and libstdc++-static.

Here's the output for cmake .. in build directory.

-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found BISON: /usr/bin/bison (found version "3.0.4")
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.7")
-- leflib_home: /home/user/Downloads/openflow/RePlAce/module/lef
-- Flute version: 3.3
-- System name: Linux
-- Compiler: GNU 4.8.5
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3
-- CXX_FLAGS:
-- Install prefix: /usr/local
-- STA version: 2.0.16
-- STA git sha: 73fef1117e973efde68b1d39c6adabf5c83f6417
-- System name: Linux
-- Compiler: GNU 4.8.5
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3
-- STA CXX_FLAGS: -Wall;-Wcast-qual;-Wunused-parameter;-Wredundant-decls
-- Install prefix: /usr/local
-- CUDD library: not found
-- SSTA: 0
-- TCL lib: /usr/lib64/libtcl.so
-- TCL header: /usr/include/tcl.h
-- Found FLEX: /usr/bin/flex (found version "2.5.37")
-- Found SWIG: /usr/bin/swig (found version "2.0.10")
-- STA executable: /home/user/Downloads/openflow/RePlAce/module/OpenSTA/app/sta
-- Could NOT find GOOGLEHASH (missing: GOOGLEHASH_INCLUDES GOOGLEHASH_COMPILE)
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of void*
-- Check size of void* - done
-- Checking for [mkl_intel_lp64 - mkl_gnu_thread - mkl_core - gomp - pthread - m - dl]
-- Library mkl_intel_lp64: /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a
-- Library mkl_gnu_thread: /opt/intel/mkl/lib/intel64/libmkl_gnu_thread.a
-- Library mkl_core: /opt/intel/mkl/lib/intel64/libmkl_core.a
-- Library gomp: -fopenmp
-- Library pthread: /usr/lib64/libpthread.so
-- Library m: /usr/lib64/libm.so
-- Library dl: /usr/lib64/libdl.so
-- Looking for cblas_sgemm
-- Looking for cblas_sgemm - found
-- MKL library found
-- Found Tclsh: /bin/tclsh (found version "8.5")
-- Found TCL: /usr/lib64/libtcl.so
-- Found TCLTK: /usr/lib64/libtcl.so
-- Found TK: /usr/lib64/libtk.so
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found JPEG: /usr/lib64/libjpeg.so (found version "62")
-- Found Boost 1.70.0 at /usr/local/lib/cmake/Boost-1.70.0
-- Requested configuration: QUIET REQUIRED
-- Found boost_headers 1.70.0 at /usr/local/lib/cmake/boost_headers-1.70.0
-- Found Boost: /usr/local/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found version "1.70.0")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/Downloads/openflow/RePlAce/build

username on machine is different than 'user'

OpenDP invalidates physical-only instances

I noticed innovus reporting a reduced cell count when comparing the results. I then noticed the following warning when loading the def

**WARN: (IMPDF-200):	Instance ENDCAP_CORE_20 is not found in db and ignored.
If this is a physical-only instance, it should have '+ SOURCE DIST' attribute.

Comparing the input lef to the output lef, i noticed that + SOURCE DIST was missing from the output of OpenDP.

Segfaults on examples

There is a problem with the lef parser.

==8425== Memcheck, a memory error detector
==8425== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==8425== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==8425== Command: replace -bmflag etc -lef ispd18_test1/ispd18_test1.input.lef -def ispd18_test1/ispd18_test1.input.def -output . -dpflag NTU3 -dploc ../../ntuplace/
==8425== 
CMD :  replace -bmflag etc -lef ispd18_test1/ispd18_test1.input.lef -def ispd18_test1/ispd18_test1.input.def -output . -dpflag NTU3 -dploc ../../ntuplace/ 

[INFO] CompileDate = Oct 12 2019
[INFO] CompileTime = 16:45:42
[INFO] StartingTime = Sat Oct 12 16:47:49 2019

[INFO] TargetDensity = 1.000000
[INFO] ExperimentIndex = 10
[INFO] DirectoryPath = ./etc/ispd18_test1.input/experiment010
[PROC] Begin Importing Placement Input ...
==8425== Invalid read of size 8
==8425==    at 0x5048FC3: _Unwind_Resume (unwind.inc:240)
==8425==    by 0x325405: LefDefParser::lefiViaRule::lefiViaRule() [clone .cold] (lefiViaRule.cpp:404)
==8425==    by 0x38EDFD: unitsCB(LefDefParser::lefrCallbackType_e, LefDefParser::lefiUnits*, void*) (lefParser.cpp:1670)
==8425==    by 0x6A2D23: LefDefParser::lefyyparse() (lef.y:579)
==8425==    by 0x397B68: Replace::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) (lefParser.cpp:3218)
==8425==    by 0x38B815: Init (lefdefIO.h:134)
==8425==    by 0x38B815: ParseLefDef() (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425==  Address 0x52d81d0 is 8 bytes after a block of size 8 alloc'd
==8425==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==8425==    by 0x686964: LefDefParser::lefiUnits::setDatabase(char const*, double) (lefiUnits.cpp:129)
==8425==    by 0x6ABEFA: LefDefParser::lefyyparse() (lef.y:625)
==8425==    by 0x397B68: Replace::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) (lefParser.cpp:3218)
==8425==    by 0x38B815: Init (lefdefIO.h:134)
==8425==    by 0x38B815: ParseLefDef() (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425== 
==8425== Invalid read of size 8
==8425==    at 0x5048767: _Unwind_RaiseException_Phase2 (unwind.inc:54)
==8425==    by 0x504901D: _Unwind_Resume (unwind.inc:241)
==8425==    by 0x325405: LefDefParser::lefiViaRule::lefiViaRule() [clone .cold] (lefiViaRule.cpp:404)
==8425==    by 0x38EDFD: unitsCB(LefDefParser::lefrCallbackType_e, LefDefParser::lefiUnits*, void*) (lefParser.cpp:1670)
==8425==    by 0x6A2D23: LefDefParser::lefyyparse() (lef.y:579)
==8425==    by 0x397B68: Replace::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) (lefParser.cpp:3218)
==8425==    by 0x38B815: Init (lefdefIO.h:134)
==8425==    by 0x38B815: ParseLefDef() (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425==  Address 0x52d81d8 is 16 bytes after a block of size 8 alloc'd
==8425==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==8425==    by 0x686964: LefDefParser::lefiUnits::setDatabase(char const*, double) (lefiUnits.cpp:129)
==8425==    by 0x6ABEFA: LefDefParser::lefyyparse() (lef.y:625)
==8425==    by 0x397B68: Replace::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) (lefParser.cpp:3218)
==8425==    by 0x38B815: Init (lefdefIO.h:134)
==8425==    by 0x38B815: ParseLefDef() (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425== 
==8425== Invalid read of size 8
==8425==    at 0x5048FC3: _Unwind_Resume (unwind.inc:240)
==8425==    by 0x305F41: ~new_allocator (new_allocator.h:89)
==8425==    by 0x305F41: ~allocator (allocator.h:153)
==8425==    by 0x305F41: ~_Alloc_hider (basic_string.h:150)
==8425==    by 0x305F41: ~basic_string (basic_string.h:658)
==8425==    by 0x305F41: ParseLefDef() [clone .cold] (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425==  Address 0x52d81d0 is 8 bytes after a block of size 8 alloc'd
==8425==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==8425==    by 0x686964: LefDefParser::lefiUnits::setDatabase(char const*, double) (lefiUnits.cpp:129)
==8425==    by 0x6ABEFA: LefDefParser::lefyyparse() (lef.y:625)
==8425==    by 0x397B68: Replace::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) (lefParser.cpp:3218)
==8425==    by 0x38B815: Init (lefdefIO.h:134)
==8425==    by 0x38B815: ParseLefDef() (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425== 
==8425== Invalid read of size 8
==8425==    at 0x5048767: _Unwind_RaiseException_Phase2 (unwind.inc:54)
==8425==    by 0x504901D: _Unwind_Resume (unwind.inc:241)
==8425==    by 0x305F41: ~new_allocator (new_allocator.h:89)
==8425==    by 0x305F41: ~allocator (allocator.h:153)
==8425==    by 0x305F41: ~_Alloc_hider (basic_string.h:150)
==8425==    by 0x305F41: ~basic_string (basic_string.h:658)
==8425==    by 0x305F41: ParseLefDef() [clone .cold] (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425==  Address 0x52d81d8 is 16 bytes after a block of size 8 alloc'd
==8425==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==8425==    by 0x686964: LefDefParser::lefiUnits::setDatabase(char const*, double) (lefiUnits.cpp:129)
==8425==    by 0x6ABEFA: LefDefParser::lefyyparse() (lef.y:625)
==8425==    by 0x397B68: Replace::Circuit::ParseLef(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) (lefParser.cpp:3218)
==8425==    by 0x38B815: Init (lefdefIO.h:134)
==8425==    by 0x38B815: ParseLefDef() (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425== 
==8425== 
==8425== Process terminating with default action of signal 6 (SIGABRT): dumping core
==8425==    at 0x508DF25: raise (in /usr/lib/libc-2.30.so)
==8425==    by 0x5077896: abort (in /usr/lib/libc-2.30.so)
==8425==    by 0x503B0D3: _Unwind_Resume.cold (unwind.inc:245)
==8425==    by 0x305F41: ~new_allocator (new_allocator.h:89)
==8425==    by 0x305F41: ~allocator (allocator.h:153)
==8425==    by 0x305F41: ~_Alloc_hider (basic_string.h:150)
==8425==    by 0x305F41: ~basic_string (basic_string.h:658)
==8425==    by 0x305F41: ParseLefDef() [clone .cold] (lefdefIO.cpp:404)
==8425==    by 0x38BB41: ParseInput() (lefdefIO.cpp:239)
==8425==    by 0x329349: main (main.cpp:442)
==8425== 
==8425== HEAP SUMMARY:
==8425==     in use at exit: 174,738 bytes in 805 blocks
==8425==   total heap usage: 915 allocs, 110 frees, 459,211 bytes allocated
==8425== 
==8425== LEAK SUMMARY:
==8425==    definitely lost: 0 bytes in 0 blocks
==8425==    indirectly lost: 0 bytes in 0 blocks
==8425==      possibly lost: 0 bytes in 0 blocks
==8425==    still reachable: 174,738 bytes in 805 blocks
==8425==         suppressed: 0 bytes in 0 blocks
==8425== Rerun with --leak-check=full to see details of leaked memory
==8425== 
==8425== For lists of detected and suppressed errors, rerun with: -s
==8425== ERROR SUMMARY: 13 errors from 4 contexts (suppressed: 0 from 0)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.