Skip to content

Commit 41c28e5

Browse files
committed
Merge remote-tracking branch 'upstream/master' into yosys-experimental
2 parents c18b835 + 4e5c5e6 commit 41c28e5

31 files changed

+1225
-158
lines changed

.github/scripts/abcexe.vcxproj

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Release|Win32">
5+
<Configuration>Release</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
</ItemGroup>
9+
<PropertyGroup Label="Globals">
10+
<VCProjectVersion>17.0</VCProjectVersion>
11+
<ProjectGuid>{6B6D7E0F-1234-4567-89AB-CDEF01234568}</ProjectGuid>
12+
<Keyword>Win32Proj</Keyword>
13+
<RootNamespace>abcexe</RootNamespace>
14+
<TargetName>abc</TargetName>
15+
</PropertyGroup>
16+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
17+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
18+
<ConfigurationType>Application</ConfigurationType>
19+
<UseDebugLibraries>false</UseDebugLibraries>
20+
<PlatformToolset>v143</PlatformToolset>
21+
<WholeProgramOptimization>true</WholeProgramOptimization>
22+
<CharacterSet>MultiByte</CharacterSet>
23+
</PropertyGroup>
24+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
25+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
26+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
27+
</ImportGroup>
28+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
29+
<OutDir>_TEST\</OutDir>
30+
<IntDir>ReleaseExe\</IntDir>
31+
</PropertyGroup>
32+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
33+
<ClCompile>
34+
<WarningLevel>Level3</WarningLevel>
35+
<DisableSpecificWarnings>4146;4334;4996;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
36+
<FunctionLevelLinking>true</FunctionLevelLinking>
37+
<IntrinsicFunctions>true</IntrinsicFunctions>
38+
<SDLCheck>true</SDLCheck>
39+
<PreprocessorDefinitions>WIN32;WINDOWS;NDEBUG;_CONSOLE;ABC_DLL=ABC_DLLEXPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ABC_USE_PTHREADS;ABC_USE_CUDD;HAVE_STRUCT_TIMESPEC;_WINSOCKAPI_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
40+
<ConformanceMode>true</ConformanceMode>
41+
<LanguageStandard>stdcpp17</LanguageStandard>
42+
<AdditionalIncludeDirectories>src</AdditionalIncludeDirectories>
43+
<AdditionalOptions>/Zc:strictStrings- %(AdditionalOptions)</AdditionalOptions>
44+
</ClCompile>
45+
<Link>
46+
<SubSystem>Console</SubSystem>
47+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
48+
<OptimizeReferences>true</OptimizeReferences>
49+
<GenerateDebugInformation>true</GenerateDebugInformation>
50+
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;lib\x86\pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
51+
</Link>
52+
</ItemDefinitionGroup>
53+
<ItemGroup>
54+
<ClCompile Include="src\base\main\main.c" />
55+
</ItemGroup>
56+
<ItemGroup>
57+
<ProjectReference Include="abclib.vcxproj">
58+
<Project>{6B6D7E0F-1234-4567-89AB-CDEF01234567}</Project>
59+
</ProjectReference>
60+
</ItemGroup>
61+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
62+
</Project>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Release|Win32">
5+
<Configuration>Release</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
</ItemGroup>
9+
<PropertyGroup Label="Globals">
10+
<VCProjectVersion>17.0</VCProjectVersion>
11+
<ProjectGuid>{6B6D7E0F-1234-4567-89AB-CDEF01234567}</ProjectGuid>
12+
<Keyword>Win32Proj</Keyword>
13+
<RootNamespace>abclib</RootNamespace>
14+
</PropertyGroup>
15+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
16+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
17+
<ConfigurationType>StaticLibrary</ConfigurationType>
18+
<UseDebugLibraries>false</UseDebugLibraries>
19+
<PlatformToolset>v143</PlatformToolset>
20+
<WholeProgramOptimization>true</WholeProgramOptimization>
21+
<CharacterSet>MultiByte</CharacterSet>
22+
</PropertyGroup>
23+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
24+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
25+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
26+
</ImportGroup>
27+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
28+
<OutDir>lib\</OutDir>
29+
<IntDir>ReleaseLib\</IntDir>
30+
</PropertyGroup>
31+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
32+
<ClCompile>
33+
<WarningLevel>Level3</WarningLevel>
34+
<DisableSpecificWarnings>4146;4334;4996;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
35+
<FunctionLevelLinking>true</FunctionLevelLinking>
36+
<IntrinsicFunctions>true</IntrinsicFunctions>
37+
<SDLCheck>true</SDLCheck>
38+
<PreprocessorDefinitions>WIN32;WINDOWS;NDEBUG;_LIB;ABC_DLL=ABC_DLLEXPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ABC_USE_PTHREADS;ABC_USE_CUDD;HAVE_STRUCT_TIMESPEC;_WINSOCKAPI_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
39+
<ConformanceMode>true</ConformanceMode>
40+
<LanguageStandard>stdcpp17</LanguageStandard>
41+
<AdditionalIncludeDirectories>src</AdditionalIncludeDirectories>
42+
<AdditionalOptions>/Zc:strictStrings- %(AdditionalOptions)</AdditionalOptions>
43+
</ClCompile>
44+
<Lib>
45+
<OutputFile>$(OutDir)abcr.lib</OutputFile>
46+
</Lib>
47+
</ItemDefinitionGroup>
48+
<ItemGroup>
49+
{{SOURCE_FILES}}
50+
</ItemGroup>
51+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
52+
</Project>

.github/scripts/abcspace.sln

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio Version 17
3+
VisualStudioVersion = 17.0.31903.59
4+
MinimumVisualStudioVersion = 10.0.40219.1
5+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abclib", "abclib.vcxproj", "{6B6D7E0F-1234-4567-89AB-CDEF01234567}"
6+
EndProject
7+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abcexe", "abcexe.vcxproj", "{6B6D7E0F-1234-4567-89AB-CDEF01234568}"
8+
ProjectSection(ProjectDependencies) = postProject
9+
{6B6D7E0F-1234-4567-89AB-CDEF01234567} = {6B6D7E0F-1234-4567-89AB-CDEF01234567}
10+
EndProjectSection
11+
EndProject
12+
Global
13+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
14+
Release|Win32 = Release|Win32
15+
EndGlobalSection
16+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
17+
{6B6D7E0F-1234-4567-89AB-CDEF01234567}.Release|Win32.ActiveCfg = Release|Win32
18+
{6B6D7E0F-1234-4567-89AB-CDEF01234567}.Release|Win32.Build.0 = Release|Win32
19+
{6B6D7E0F-1234-4567-89AB-CDEF01234568}.Release|Win32.ActiveCfg = Release|Win32
20+
{6B6D7E0F-1234-4567-89AB-CDEF01234568}.Release|Win32.Build.0 = Release|Win32
21+
EndGlobalSection
22+
EndGlobal

.github/workflows/build-windows.yml

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88

99
build-windows:
1010

11-
runs-on: windows-2019
11+
runs-on: windows-2025
1212

1313
steps:
1414

@@ -17,36 +17,47 @@ jobs:
1717
with:
1818
submodules: recursive
1919

20-
- name: Prepare MSVC
21-
uses: bus1/cabuild/action/msdevshell@v1
20+
- name: Setup MSVC
21+
uses: ilammy/msvc-dev-cmd@v1
2222
with:
23-
architecture: x86
23+
arch: x86
2424

25-
- name: Upgrade project files to latest Visual Studio, ignoring upgrade errors, and build
25+
- name: Copy project files from scripts
2626
run: |
27-
devenv abcspace.dsw /upgrade
28-
# Fix the upgraded vcxproj files to use C++17
29-
if (Test-Path abclib.vcxproj) {
30-
$content = Get-Content abclib.vcxproj -Raw
31-
if ($content -match '<LanguageStandard>') {
32-
$content = $content -replace '<LanguageStandard>Default</LanguageStandard>', '<LanguageStandard>stdcpp17</LanguageStandard>'
33-
} else {
34-
# Add LanguageStandard if it doesn't exist
35-
$content = $content -replace '(<ClCompile>)', '$1<LanguageStandard>stdcpp17</LanguageStandard>'
36-
}
37-
Set-Content abclib.vcxproj -NoNewline $content
38-
}
39-
if (Test-Path abcexe.vcxproj) {
40-
$content = Get-Content abcexe.vcxproj -Raw
41-
if ($content -match '<LanguageStandard>') {
42-
$content = $content -replace '<LanguageStandard>Default</LanguageStandard>', '<LanguageStandard>stdcpp17</LanguageStandard>'
43-
} else {
44-
# Add LanguageStandard if it doesn't exist
45-
$content = $content -replace '(<ClCompile>)', '$1<LanguageStandard>stdcpp17</LanguageStandard>'
27+
copy .github\scripts\abcspace.sln .
28+
copy .github\scripts\abcexe.vcxproj .
29+
30+
- name: Generate abclib.vcxproj from dsp
31+
shell: powershell
32+
run: |
33+
# Parse source files from abclib.dsp
34+
$dspContent = Get-Content "abclib.dsp" -Raw
35+
$sourceFiles = [regex]::Matches($dspContent, 'SOURCE=\.\\([^\r\n]+)') | ForEach-Object { $_.Groups[1].Value } | Sort-Object -Unique
36+
37+
Write-Host "Found $($sourceFiles.Count) source files"
38+
39+
# Build source file items
40+
$sourceItems = ""
41+
foreach ($src in $sourceFiles) {
42+
if ($src -match '\.c$') {
43+
$sourceItems += " <ClCompile Include=`"$src`" />`r`n"
44+
} elseif ($src -match '\.(cpp|cc)$') {
45+
$sourceItems += " <ClCompile Include=`"$src`" />`r`n"
46+
} elseif ($src -match '\.h$') {
47+
$sourceItems += " <ClInclude Include=`"$src`" />`r`n"
4648
}
47-
Set-Content abcexe.vcxproj -NoNewline $content
4849
}
49-
msbuild abcspace.sln /m /nologo /v:m /p:Configuration=Release /p:UseMultiToolTask=true /p:PlatformToolset=v142 /p:PreprocessorDefinitions="_WINSOCKAPI_"
50+
51+
# Read template and replace placeholder
52+
$template = Get-Content ".github\scripts\abclib.vcxproj.template" -Raw
53+
$vcxproj = $template -replace '\{\{SOURCE_FILES\}\}', $sourceItems
54+
Set-Content "abclib.vcxproj" $vcxproj -NoNewline
55+
56+
Write-Host "abclib.vcxproj generated successfully"
57+
58+
- name: Build
59+
run: |
60+
msbuild abcspace.sln /m /nologo /v:m /p:Configuration=Release /p:Platform=Win32 /p:UseMultiToolTask=true
5061
if ($LASTEXITCODE -ne 0) { throw "Build failed with exit code $LASTEXITCODE" }
5162
5263
- name: Test Executable
@@ -64,4 +75,4 @@ jobs:
6475
uses: actions/upload-artifact@v4
6576
with:
6677
name: package-windows
67-
path: staging/
78+
path: staging/

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ abcext.dsp
3737

3838
abcexe.vcproj*
3939
abclib.vcproj*
40-
abcspace.sln
40+
/abcspace.sln
4141
abcspace.suo
4242

4343
*.pyc
@@ -62,4 +62,4 @@ tags
6262

6363
/cmake
6464
/cscope
65-
abc.history
65+
abc.history

Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ CXX := g++
44
AR := ar
55
LD := $(CXX)
66

7+
# Auto-enable ccache if available
8+
CCACHE := $(shell command -v ccache 2>/dev/null)
9+
ifneq ($(CCACHE),)
10+
CC := $(CCACHE) $(CC)
11+
CXX := $(CCACHE) $(CXX)
12+
endif
13+
714
MSG_PREFIX ?=
815
ABCSRC ?= .
916
VPATH = $(ABCSRC)
@@ -219,6 +226,7 @@ clean:
219226
$(VERBOSE)rm -rvf $(OBJ)
220227
$(VERBOSE)rm -rvf $(GARBAGE)
221228
$(VERBOSE)rm -rvf $(OBJ:.o=.d)
229+
@if [ -n "$(CCACHE)" ]; then echo "$(MSG_PREFIX)ccache available: $(CCACHE)"; fi
222230

223231
tags:
224232
etags `find . -type f -regex '.*\.\(c\|h\)'`

src/aig/gia/giaAiger.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,14 @@ Gia_Man_t * Gia_AigerReadFromMemory( char * pContents, int nFileSize, int fGiaSi
677677
}
678678
pNew->vOutReqs = Vec_FltStart( nOutputs );
679679
memcpy( Vec_FltArray(pNew->vOutReqs), pCur, (size_t)4*nOutputs ); pCur += 4*nOutputs;
680+
// Convert -1.0 back to TIM_ETERNITY for internal use
681+
{
682+
float * pArr = Vec_FltArray(pNew->vOutReqs);
683+
int i;
684+
for ( i = 0; i < nOutputs; i++ )
685+
if ( pArr[i] < 0 )
686+
pArr[i] = TIM_ETERNITY;
687+
}
680688
if ( fVerbose ) printf( "Finished reading extension \"o\".\n" );
681689
}
682690
// read equivalence classes
@@ -1562,6 +1570,13 @@ void Gia_AigerWriteS( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, in
15621570
{
15631571
int nPos = Tim_ManPoNum((Tim_Man_t *)p->pManTime);
15641572
int nFlops = Gia_ManRegNum(p);
1573+
// Convert TIM_ETERNITY sentinel to -1.0 per XAIG spec
1574+
{
1575+
int i;
1576+
for ( i = 0; i < nPos + nFlops; i++ )
1577+
if ( pTimes[i] >= TIM_ETERNITY )
1578+
pTimes[i] = -1.0;
1579+
}
15651580
fprintf( pFile, "o" );
15661581
Gia_FileWriteBufferSize( pFile, 4*(nPos + nFlops) );
15671582
fwrite( pTimes, 1, 4*(nPos + nFlops), pFile );

0 commit comments

Comments
 (0)