Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-01 | decl: Disallow members with incomplete types | Michael Forney | |
Make an exception for flexible array members, though we should also check that the flexible array member, if any, is last. | |||
2021-07-01 | decl: Check that struct/union has at least one member | Michael Forney | |
2021-07-01 | qbe: Reorganize struct value to reduce size to 8 bytes | Michael Forney | |
Make the ID an unsigned int. This will make it small enough to efficiently pass struct value by value. It also simplifies things slightly. | |||
2021-06-30 | stmt: Check that controlling expression is a scalar, and drop unneeded ↵ | Michael Forney | |
conversion The conversion is only needed for floating types. QBE isn't able to optimize it away for integer types yet, so removing this unnecessary conversion has a substantial performance benefit. | |||
2021-06-30 | qbe: Move aggregate copying to separate function | Michael Forney | |
2021-06-30 | qbe: Remove before unnecessary adds during copy | Michael Forney | |
2021-06-28 | Add stringconcat function to concatenate adjacent string literals | Michael Forney | |
This function also ensures that the string prefixes (if any) are compatible. It should make it easier to implement wide string support. | |||
2021-06-16 | Add initial NetBSD support | Michael Forney | |
2021-05-02 | expr: Include NUL-terminator in string expression data | Michael Forney | |
This will facilitate the support of wide-string literals. Based on patch from Nihal Jere. | |||
2021-05-02 | qbe: Use fixed precision of 17 when printing floating point constants | Michael Forney | |
It appears that some operating systems don't yet support the C11 DBL_DECIMAL_DIG. In order to ensure consistent output no matter the precision of long double (which varies from arch to arch), just use a fixed 17, which is sufficient for IEEE 754 binary64. | |||
2021-04-23 | Make some static data const | Michael Forney | |
2021-04-23 | targ: Use correct char signedness for aarch64 and riscv64 | Michael Forney | |
2021-04-22 | Update test for DBL_DECIMAL_DIG | Michael Forney | |
2021-04-21 | qbe: Print floating point with DBL_DECIMAL_DIG precision | Michael Forney | |
DECIMAL_DIG may vary from system to system depending on the width of long double, causing one of the tests to fail. | |||
2021-04-21 | CI: Pin FreeBSD to 12.x for now | Michael Forney | |
FreeBSD 13 no longer contains a standalone assembler in the base install, and also added a hard-requirement on _Thread_local. | |||
2021-04-21 | Add support for riscv64 target | Michael Forney | |
QBE support isn't quite there yet, but is progressing smoothly. | |||
2021-04-11 | Check in static-assert-struct test expected output | Michael Forney | |
2021-04-11 | decl: Allow _Static_assert in struct declaration | Michael Forney | |
2021-04-11 | decl: Allow _Alignas(0) | Michael Forney | |
C11 6.7.5p6 says "An alignment specification of zero has no effect". | |||
2021-04-08 | qbe: Remove unnecessary value copy for struct/union types | Michael Forney | |
Previously, this was needed so that an aggregate type value was updated to be an 'l' type value. However, since 5ff1d2fa the aggregate type name is stored in a separate parameter in IARG/ICALL instructions, so we can just re-use the same pointer value. | |||
2021-04-08 | Remove unused mkswitch declaration | Michael Forney | |
2021-04-08 | CI: Fix debian-aarch64 dependency packages | Michael Forney | |
It appears that these packages recommended by gcc-aarch64-linux-gnu and qemu-user are no longer installed automatically, so list them explicitly. | |||
2021-04-08 | qbe: Remove unnecessary extension for relational operands | Michael Forney | |
The operands are already promoted, so never need to be extended. These extend()s were added in 7d746860 in an attempt to fix a bug related to the comparison of values with type smaller than int. However, the real bug was that the operands should have been promoted to int by usual arithmetic conversions, which was fixed later in a8131372. | |||
2021-04-07 | qbe: Remove __PRETTY_FUNCTION__ declaration | Michael Forney | |
We no longer define __GNUC__ so we don't have to work around glibc's assert definition anymore. | |||
2021-04-06 | qbe: Shorten a few overly long lines | Michael Forney | |
2021-03-31 | qbe: Slight simplification | Michael Forney | |
2021-03-31 | qbe: Use second argument of call/arg to store type name | Michael Forney | |
2021-03-31 | qbe: Use separate type for block/label | Michael Forney | |
Labels are no longer used as instruction arguments. | |||
2021-03-31 | qbe: Switch to fixed-size instruction struct | Michael Forney | |
Move jump and phi instructions to struct block, and function arguments to their own instruction. This will facilitate allocating instructions as an array. | |||
2021-03-30 | Add struct passing call test | Michael Forney | |
The struct-passing test checks for function definitions with struct arguments, but we were missing a test for function calls with struct arguments. | |||
2021-03-27 | qbe: Change value kind naming scheme | Michael Forney | |
2020-12-07 | CI: Drop obsolete OpenBSD patch | Michael Forney | |
2020-12-07 | Support -pthread compiler flag. | Érico Rolim | |
POSIX requires -lpthread, but most Linux manual pages recommend using -pthread, and a lot of projects use it. | |||
2020-10-21 | Update qbe submodule | Michael Forney | |
2020-09-12 | Update qbe submodule | Michael Forney | |
2020-09-05 | Add a patch to fix OpenBSD bootstrap on 6.7 | Michael Forney | |
This issue is already fixed in -current. | |||
2020-09-05 | Add -nopie to linker flags on OpenBSD | Michael Forney | |
The OpenBSD linker defaults to PIE, but QBE does not yet support generating position-independent code. | |||
2020-06-29 | .builds/alpine: remove annotations | Drew DeVault | |
This feature is being removed from git.sr.ht | |||
2020-06-05 | Help gcc see that variables are not used uninitialized | Michael Forney | |
2020-06-03 | Revert "decl: Allow out-of-range enum constants when they don't change type" | Michael Forney | |
This reverts commit 6229709b8ae21d7722fef48ad8a9f2f10b900030. I still don't understand how out-of-range enum constants are supposed to work. | |||
2020-06-03 | Disable bootstrap in OpenBSD continuous build | Michael Forney | |
2020-06-03 | decl: Allow out-of-range enum constants when they don't change type | Michael Forney | |
gcc and clang allow enum constants out of range of int, but this means that the type of enumerator may differ inside and outside the enum specifier. Instead, only allow out-of-range enum constants when their types are compatible with the final enum type. | |||
2020-06-02 | decl: Improve error message for out-of-range enum constants | Michael Forney | |
2020-05-24 | qbe: Omit unnecessary add to help QBE's memopt pass | Michael Forney | |
2020-04-21 | driver: Print unknown option before usage message | Michael Forney | |
2020-04-19 | Add install target to Makefile | Michael Forney | |
2020-04-19 | Update qbe submodule | Michael Forney | |
2020-04-14 | doc/software: Remove unnotable sections | Michael Forney | |
2020-04-14 | Refer to github issue for oasis porting effort | Michael Forney | |
2020-04-05 | expr: Just ignore decayed operand in unary `&` operator | Michael Forney | |
Reusing the decayed expression is more complicated, and only saved one malloc. |