Skip to content

Commit 9a12d92

Browse files
authored
Merge pull request #5386 from YosysHQ/emil/liberty-glob-all
Expand wildcards in Liberty file consumers
2 parents 89f32a4 + 4508676 commit 9a12d92

File tree

8 files changed

+14
-12
lines changed

8 files changed

+14
-12
lines changed

kernel/io.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,13 @@ std::string escape_filename_spaces(const std::string& filename)
384384
return out;
385385
}
386386

387+
void append_globbed(std::vector<std::string>& paths, std::string pattern)
388+
{
389+
rewrite_filename(pattern);
390+
std::vector<std::string> globbed = glob_filename(pattern);
391+
copy(globbed.begin(), globbed.end(), back_inserter(paths));
392+
}
393+
387394
void format_emit_unescaped(std::string &result, std::string_view fmt)
388395
{
389396
result.reserve(result.size() + fmt.size());

kernel/io.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,7 @@ bool is_absolute_path(std::string filename);
469469
void remove_directory(std::string dirname);
470470
bool create_directory(const std::string& dirname);
471471
std::string escape_filename_spaces(const std::string& filename);
472+
void append_globbed(std::vector<std::string>& paths, std::string pattern);
472473

473474
YOSYS_NAMESPACE_END
474475

passes/techmap/clockgate.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,7 @@ struct ClockgatePass : public Pass {
290290
continue;
291291
}
292292
if (args[argidx] == "-liberty" && argidx+1 < args.size()) {
293-
std::string liberty_file = args[++argidx];
294-
rewrite_filename(liberty_file);
295-
liberty_files.push_back(liberty_file);
293+
append_globbed(liberty_files, args[++argidx]);
296294
continue;
297295
}
298296
if (args[argidx] == "-dont_use" && argidx+1 < args.size()) {

passes/techmap/dfflibmap.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -609,9 +609,7 @@ struct DfflibmapPass : public Pass {
609609
{
610610
std::string arg = args[argidx];
611611
if (arg == "-liberty" && argidx+1 < args.size()) {
612-
std::string liberty_file = args[++argidx];
613-
rewrite_filename(liberty_file);
614-
liberty_files.push_back(liberty_file);
612+
append_globbed(liberty_files, args[++argidx]);
615613
continue;
616614
}
617615
if (arg == "-prepare") {

passes/techmap/libcache.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@
9696
quiet = true;
9797
continue;
9898
}
99-
std::string fname = args[argidx];
100-
rewrite_filename(fname);
101-
paths.push_back(fname);
99+
append_globbed(paths, args[argidx]);
102100
break;
103101
}
104102
int modes = enable + disable + purge + list + verbose + quiet;

tests/liberty/libcache.ys

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
libcache -verbose
2-
libcache -enable busdef.lib
2+
libcache -enable bus*f.lib
33

44
logger -expect log "Caching is disabled by default." 1
55
logger -expect log "Caching is enabled for `busdef.lib'." 1

tests/techmap/clockgate.ys

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ select -assert-count 1 t:\\pdk_icg
194194
#------------------------------------------------------------------------------
195195

196196
design -load before
197-
clockgate -liberty clockgate.lib
197+
clockgate -liberty c*ckgate.lib
198198

199199
# rising edge ICGs
200200
select -module dffe_00 -assert-count 0 t:\\pos_small

tests/techmap/dfflibmap.ys

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ read_liberty -lib dfflibmap.lib
2323
equiv_opt -map dfflibmap-sim.v -assert -multiclock dfflibmap -liberty dfflibmap.lib
2424
equiv_opt -map dfflibmap-sim.v -assert -multiclock dfflibmap -prepare -liberty dfflibmap.lib
2525

26-
dfflibmap -prepare -liberty dfflibmap.lib
26+
dfflibmap -prepare -liberty dffl*bmap.lib
2727
equiv_opt -map dfflibmap-sim.v -assert -multiclock dfflibmap -map-only -liberty dfflibmap.lib
2828

2929
design -load orig

0 commit comments

Comments
 (0)