Andrew Kelley
2b99182e25
stage2: cleanups to --compress-debug-sections
...
* make the setting in the linker backend be non-optional; by this time
all defaults are supposed to be resolved.
* integrate with `zig cc`
* change the CLI parsing to match C compiler parsing, allowing
`--compress-debug-sections` alone to choose a default encoding of
zlib.
2022-07-11 14:18:56 -07:00
Motiejus Jakštys
1f410b500c
ELF: understand -Wl,--compress-debug-sections
...
This argument is both a compiler and a linker flag. The linker flag was
not understood; now it is. Go likes to use it as a linker flag.
Tested with sqlite3. The size difference is significant, and I confirmed
gdb understands both binaries.
zlib: 3.66MB
------------
CC="zig cc"
CFLAGS="-Wl,--compress-debug-sections=zlib -O2"
./configure --disable-tcl
make
FILE SIZE VM SIZE
-------------- --------------
39.1% 1.43Mi 88.4% 1.43Mi .text
19.6% 734Ki 0.0% 0 .debug_info
16.4% 613Ki 0.0% 0 .debug_loc
13.1% 492Ki 0.0% 0 .debug_line
4.2% 157Ki 9.5% 157Ki .rodata
2.3% 87.6Ki 0.0% 0 .debug_ranges
1.5% 56.2Ki 0.0% 0 .symtab
1.1% 40.2Ki 0.0% 0 .strtab
1.0% 38.2Ki 0.0% 0 .debug_str
0.7% 26.2Ki 0.0% 0 .debug_frame
0.4% 15.3Ki 0.9% 15.3Ki .data
0.1% 4.71Ki 0.3% 4.71Ki .dynsym
0.1% 3.65Ki 0.2% 3.26Ki [16 Others]
0.1% 2.55Ki 0.2% 2.55Ki .rela.plt
0.1% 2.12Ki 0.0% 0 [ELF Section Headers]
0.0% 0 0.1% 2.02Ki .bss
0.0% 1.84Ki 0.1% 1.84Ki .dynstr
0.0% 1.72Ki 0.1% 1.72Ki .plt
0.0% 1.58Ki 0.1% 1.58Ki .hash
0.0% 1.17Ki 0.0% 0 .debug_abbrev
0.0% 1.01Ki 0.1% 1.01Ki .rela.dyn
100.0% 3.66Mi 100.0% 1.62Mi TOTAL
none: 8.56MB
------------
CC="zig cc" CFLAGS="-O2" ./configure --disable-tcl
make
FILE SIZE VM SIZE
-------------- --------------
41.1% 3.52Mi 0.0% 0 .debug_loc
18.5% 1.59Mi 0.0% 0 .debug_info
16.7% 1.43Mi 88.4% 1.43Mi .text
11.8% 1.01Mi 0.0% 0 .debug_line
5.9% 515Ki 0.0% 0 .debug_ranges
1.8% 157Ki 9.5% 157Ki .rodata
1.3% 118Ki 0.0% 0 .debug_frame
1.3% 110Ki 0.0% 0 .debug_str
0.6% 56.2Ki 0.0% 0 .symtab
0.5% 40.2Ki 0.0% 0 .strtab
0.2% 15.3Ki 0.9% 15.3Ki .data
0.1% 4.71Ki 0.3% 4.71Ki .dynsym
0.0% 3.64Ki 0.2% 3.26Ki [16 Others]
0.0% 2.98Ki 0.0% 0 .debug_abbrev
0.0% 2.55Ki 0.2% 2.55Ki .rela.plt
0.0% 2.12Ki 0.0% 0 [ELF Section Headers]
0.0% 0 0.1% 2.02Ki .bss
0.0% 1.84Ki 0.1% 1.84Ki .dynstr
0.0% 1.72Ki 0.1% 1.72Ki .plt
0.0% 1.58Ki 0.1% 1.58Ki .hash
0.0% 1.01Ki 0.1% 1.01Ki .rela.dyn
100.0% 8.56Mi 100.0% 1.62Mi TOTAL
2022-07-11 13:55:29 -07:00
Ikko Ashimine
ade9bd9287
stage1: fix typo in analyze.cpp ( #12077 )
...
accomodate -> accommodate
2022-07-11 18:30:28 +02:00
frmdstryr
3e2e6c108a
std.math: add degreesToRadians
and radiansToDegrees
2022-07-11 16:40:05 +03:00
Mikko Kaihlavirta
6f55b294f6
use std.log for logging
2022-07-11 11:18:52 +03:00
Duncan Holm
4bbc95b219
std.fmt: clarify the description of placeholders in Format Strings
...
Those 6 sets of square brackets are just a typographical aid used in this doc-comment, and must not actually be written by the user in their own format string... except for in one case where they must
* Avoid the implication that the numeric index is 1-based rather than 0-based
2022-07-11 11:16:28 +03:00
Andrew Kelley
76c89a3de9
Merge pull request #12071 from topolarity/windows-abi-change
...
compiler_rt: Update Windows ABI for float<->int conversion routines
2022-07-10 23:53:14 -04:00
Cody Tapscott
2b5215436c
stage2: Lower libcalls on Windows x86-64 correctly
...
This change is the Zig counterpart to https://reviews.llvm.org/D110413
Same as the prior commit, but for stage2
2022-07-10 20:52:29 -07:00
Cody Tapscott
d182e2ebda
stage1: Lower libcalls on Windows x86-64 correctly
...
This change is the Zig counterpart to https://reviews.llvm.org/D110413
Since we lower some libcalls directly (just like clang does), we need to
make sure that the ABI we call with matches the ABI of the compiler-rt
we are providing (and also the ABI expected by LLVM).
While I was at it, I noticed some flawed vector handling in the binary
soft float ops in stage 1, so I shored up the logic a bit and expanded
an existing test to cover the missing functionality.
2022-07-10 20:52:28 -07:00
Cody Tapscott
bb8971150c
compiler_rt: Slightly re-factor exports for Windows x86-64
...
This is just a cosmetic change. The goal is to keep the export logic
relatively flat and centralized.
2022-07-10 20:51:34 -07:00
Cody Tapscott
680419c407
compiler_rt: Update Windows ABI for float<->int conversion routines
...
Starting with LLVM 14, the Libcalls to these functions are now lowered
using a Vec(2, u64) instead of the standard ABI for i128 integers, so
our compiler-rt implementation needs to be updated to expose the same
ABI on Windows.
2022-07-10 20:51:34 -07:00
Frank Denis
f3333a56e8
stage1/codegen: replace sprintf() with snprintf()
...
Calling sprintf() is now triggering an error on Xcode 14.
Using snprintf() is generally not a bad idea anyway.
2022-07-10 22:59:25 -04:00
BratishkaErik
b9ed072278
CMakeLists.txt: set LLVM minimal version to 14
2022-07-10 15:43:01 -04:00
Andrew Kelley
b88151e0e1
Merge pull request #12001 from ziglang/llvm14
...
Upgrade to LLVM 14
2022-07-10 03:06:05 -04:00
Andrew Kelley
f9bf488926
two more regressed test cases; same cause as last two commits
2022-07-09 17:35:14 -07:00
Andrew Kelley
31281a7d14
disable regressed math.sign test case
...
see #12012
2022-07-09 15:43:33 -07:00
Andrew Kelley
321fec1aa6
disable regressed float formatting test case
...
See #12063
2022-07-09 15:34:34 -07:00
Andrew Kelley
4d10fbef10
windows_com: add missing __CRT_UUID_DECL() for IEnumSetupInstances
...
This is intended to fix this error:
lld-link: error: undefined symbol: _GUID const& __mingw_uuidof<IEnumSetupInstances>()
>>> referenced by D:\a\1\s\src\windows_com.hpp:898
>>> D:\a\1\s\zig-cache\o\a5030d467932f0ce2f6511feb7d6af12\windows_sdk.obj:(__IEnumSetupInstances_IID_getter())
Thank you to Martin Storsjö for suggesting the fix.
2022-07-09 14:04:38 -07:00
Andrew Kelley
e0d5ae75af
these riscv64 behavior tests work for stage1 but not stage2
2022-07-09 12:48:59 -07:00
Veikka Tuominen
3f11d1d56d
Merge pull request #12050 from topolarity/anon-struct-init
...
stage2: Support initializing anonymous struct type
2022-07-09 18:30:07 +03:00
r00ster91
13d58258a8
std.log
: deduplicate switch
2022-07-09 15:19:03 +03:00
Veikka Tuominen
5b36b0ed0c
Sema: use tupleFieldIndex
2022-07-09 14:41:47 +03:00
Yusuke Tanaka
f1da93af3c
Remove outdated TODO comment ( #12053 )
2022-07-09 13:05:41 +02:00
Andrew Kelley
a1c56ffd5a
disable regressed translate-c test case on freebsd
...
see #12055
2022-07-08 23:17:41 -07:00
Andrew Kelley
f976758855
disable failing riscv64 tests from LLVM 14 upgrade
...
See #12054
2022-07-08 23:11:03 -07:00
Andrew Kelley
3e864c86da
CI: azure: update build.zig for LLVM 14
2022-07-08 23:02:38 -07:00
Andrew Kelley
aade8856ee
CI: update scripts to stage1 LLVM 14 tarballs
...
The previous tarballs were stage3 which is not quite ready for primetime
yet.
2022-07-08 21:28:06 -07:00
Cody Tapscott
c830606bbe
stage2: Support @fieldParentPtr
for tuples and anon structs
2022-07-08 19:52:23 -07:00
Cody Tapscott
51a8f52e6c
stage2: Support @offsetOf
for tuples and anon structs
2022-07-08 19:51:35 -07:00
Cody Tapscott
2fff25fd22
stage2: Support initializing anonymous struct type
...
This commit adds support for initializing `.anon_struct` types. There
is also some follow-up work to do for both tuples and structs regarding
comptime fields, so this also adds some tests to keep track of that
work.
2022-07-08 19:50:28 -07:00
Frank Denis
6f0807f50f
crypto.sign.ed25519: add support for blind key signatures ( #11868 )
...
Key blinding allows public keys to be augmented with a secret
scalar, making multiple signatures from the same signer unlinkable.
https://datatracker.ietf.org/doc/draft-dew-cfrg-signature-key-blinding/
This is required by privacy-preserving applications such as Tor
onion services and the PrivacyPass protocol.
2022-07-08 13:21:37 +02:00
Cody Tapscott
33a39c4b2b
stage2: Fix panic when printing AIR for tuple/anon struct types
2022-07-08 10:19:17 +03:00
Andrew Kelley
bdf3fa12fa
CI: update scripts to new LLVM 14 tarballs
2022-07-07 20:47:58 -07:00
Andrew Kelley
8e492f7d47
compiler_rt: enable __clear_cache for stage2
2022-07-07 20:47:43 -07:00
Andrew Kelley
6a3a0fe7ae
Merge remote-tracking branch 'origin/master' into llvm14
2022-07-07 18:25:01 -07:00
Andrew Kelley
3a03872af7
LLVM: more robust implementation of C ABI for multiple_llvm_ints
...
The previous code here was potentially more optimal for some cases,
however, I never tested the perf, so it might not actually matter. This
code handles more cases. We can go back and re-evaluate that other
implementation if it seems worthwhile in the future.
2022-07-07 18:24:34 -07:00
Andrew Kelley
8d6011361f
LLVM: handle byref combined with multiple_llvm_ints
2022-07-07 18:24:34 -07:00
Andrew Kelley
e5e9e5a7aa
std.builtin.returnError: disable runtime safety
2022-07-07 18:24:34 -07:00
Cody Tapscott
cbc85f4516
stage1: Fix seg-fault when slicing string literal with sentinel
2022-07-08 02:14:38 +03:00
VÖRÖSKŐI András
75c33ba85e
Sema: add a note about @setEvalBranchQuota() when branch quota is exceeded
...
closes #11996
2022-07-08 02:13:33 +03:00
Andrew Kelley
8e07b0c4b9
Merge remote-tracking branch 'origin/master' into llvm14
2022-07-07 14:01:54 -07:00
Andrew Kelley
e0b9200492
llvm c++ wrapper: fix argument index calculations
2022-07-07 13:56:46 -07:00
Andrew Kelley
1b9a9ee4ba
langref: disable an example that regressed from LLVM 14
2022-07-07 12:19:48 -07:00
Andrew Kelley
0c78ece1c9
Merge pull request #12016 from Vexu/stage2-compile-errors
...
Stage2 compile error improvements
2022-07-07 14:52:28 -04:00
r00ster91
6f17be063d
std.log: give friendly error to freestanding users
2022-07-07 21:40:31 +03:00
emma
81bbefe9b8
AstGen: fix catch payoad not checking for shadowing
2022-07-07 21:38:32 +03:00
Veikka Tuominen
5007f727e5
stage2: move C pointer allowzero error to AstGen
2022-07-07 10:50:06 +03:00
Veikka Tuominen
b5ac2b4330
Sema: improve array source location
2022-07-07 10:50:06 +03:00
Veikka Tuominen
27ee414159
Sema: improve slice source locations
2022-07-07 10:50:06 +03:00
Veikka Tuominen
2ca752ea1a
Module: add .node_offset_un_op
2022-07-07 10:50:06 +03:00