ladybird/Meta
Dan Klishch 2dba79bc6b Meta: Globally disable floating point contraction
FP contraction is a standard-conforming behavior which allows the
compiler to calculate intermediate results of expressions containing
floating point numbers with a greater precision than the expression type
allows. And in theory, it enables additional optimizations, such as
replacing `a * b + c` with fma(a, b, c).

Unfortunately, it is extremely hard to predict when the contraction will
happen. For example, Clang 17 on x86_64 with the default options will
use FMA only for constant-folded non-constexpr expressions. So, in
practice, FP contraction leads to hard-to-find bugs and inconsistencies
between executables compiled with different toolchains or for different
OSes. And we had two instances of this happening last week.

Since we did not ever used -mfma on x86_64, this patch can only possibly
regress performance on Apple ARM devices, where FMA is enabled by
default. However, this regression will likely be negligible since the
difference would be one additional add instruction, which would be then
likely executed in parallel with something else.
2023-11-16 19:05:13 -05:00
..
Azure CI: Add a step to ensure the Qt chrome can compile on macOS 2023-11-04 08:36:34 -04:00
CMake Meta: Globally disable floating point contraction 2023-11-16 19:05:13 -05:00
gn Meta: Globally disable floating point contraction 2023-11-16 19:05:13 -05:00
HeaderCheck HeaderCheck: Also check AK for broken headers 2022-09-18 13:27:24 -04:00
Lagom LibDNS: Make DNS packet parsing fallible 2023-11-14 10:12:44 +01:00
Screenshots README+Meta: Update the screenshot :^) 2023-07-14 23:40:58 +02:00
ShellCompletions/zsh Everywhere: Add RISC-V 64 target to the build system 2023-08-18 08:37:43 -06:00
Websites Meta: Add anchors to headings of man pages 2023-10-30 10:26:21 +00:00
analyze-qemu-coverage.sh Meta: Use absolute paths in Meta/analyze-qemu-coverage.sh 2022-12-10 11:51:16 +00:00
bochsrc Meta: Add SSE3, SMAP and SMEP to our bochsrc 2021-12-28 11:51:50 +01:00
build-image-extlinux.sh Meta: Pass -- to sudo instead of '$SHELL -c' in build scripts 2023-07-16 16:28:18 +01:00
build-image-grub.sh Meta: Pass -- to sudo instead of '$SHELL -c' in build scripts 2023-07-16 16:28:18 +01:00
build-image-limine.sh Meta: Pass -- to sudo instead of '$SHELL -c' in build scripts 2023-07-16 16:28:18 +01:00
build-image-qemu.sh Meta: Pass -- to sudo instead of '$SHELL -c' in build scripts 2023-07-16 16:28:18 +01:00
build-manpages-website.sh Meta: Add anchors to headings of man pages 2023-10-30 10:26:21 +00:00
build-native-partition.sh Meta: Pass -- to sudo instead of '$SHELL -c' in build scripts 2023-07-16 16:28:18 +01:00
build-root-filesystem.sh Kernel/Ext2: Avoid overflow when updating UID and GID values 2023-10-24 07:21:11 +02:00
check-ak-test-files.sh Meta: Fix check for AK test inclusion 2022-09-13 08:29:09 +00:00
check-debug-flags.sh Meta: Fix typos in shell script comments 2023-10-26 15:45:31 -06:00
check-emoji.py Meta: Disallow emoji images with invalid code points in their file name 2022-10-26 18:40:20 +01:00
check-markdown.sh markdown-check: Allow generating a manpage link graph 2023-07-05 16:15:42 +01:00
check-newlines-at-eof.py Meta: Don't check for newlines at EOF in Tests/LibWeb/Layout/ 2023-03-11 13:05:35 +01:00
check-png-sizes.sh Meta: Add a PNG size check to CI and pre-commit checks 2022-06-18 21:58:43 +04:30
check-style.py Meta: Allow overriding root for local includes 2023-08-31 11:00:31 +02:00
check-symbols.sh Meta: Make x86-64 target the default 2022-10-03 11:14:53 +02:00
convert-markdown-links.lua Meta/build-manpages-website: Use absolute paths for all links 2023-01-08 13:35:29 +01:00
debug-kernel.sh Revert "Kernel/x86: Bake the Prekernel and the Kernel into one image" 2023-04-28 23:24:19 +02:00
embed_as_string_view.py Meta: Make embed_as_string_view.py usable by CMake builds :^) 2023-08-24 07:42:12 +01:00
export-argsparser-manpages.sh CI: Ensure the manpage generation step shuts down the VM on failure 2022-10-31 22:10:14 +00:00
extlinux.conf Everywhere: Get rid of the fbdev kernel boot argument remainders 2022-08-14 01:03:23 +01:00
find_compiler.sh Meta: Do not spam "<compiler-name>: command not found" 2023-09-09 13:38:06 -06:00
generate-embedded-resource-assembly.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
generate-libwasm-spec-test.py LibWasm: Implement a few SIMD instructions 2023-08-21 13:39:32 +03:30
generate-libwasm-spec-test.sh Meta: Run the Wasm spec tests in CI 2021-05-27 17:28:41 +04:30
grub-ebr.cfg Meta: Use correct boot device selections when using GRUB images 2022-09-02 23:36:08 +01:00
grub-gpt.cfg Meta: Use correct boot device selections when using GRUB images 2022-09-02 23:36:08 +01:00
grub-mbr.cfg Meta: Use correct boot device selections when using GRUB images 2022-09-02 23:36:08 +01:00
install-ports-tree.sh Everywhere: Replace SERENITY_ROOT with SERENITY_SOURCE_DIR 2021-04-20 15:27:52 +02:00
label-pull-requests.js CI: Automatically apply pull request labels for generic PR actions 2023-01-06 15:25:30 +01:00
limine.cfg Everywhere: Get rid of the fbdev kernel boot argument remainders 2022-08-14 01:03:23 +01:00
lint-ci.sh Meta+Utilities: Make pre-commit checks significantly less verbose 2023-07-26 06:21:39 -04:00
lint-clang-format.sh Meta: Lint .mm files with lint-clang-format.sh 2023-09-19 11:37:48 -06:00
lint-commit.sh CI: Add a check to report git merge commit 2022-12-10 12:07:06 +00:00
lint-executable-resources.sh Meta: Add special case for macOS 2021-11-02 12:23:30 +01:00
lint-gml-format.sh Meta: Fix typos in shell script comments 2023-10-26 15:45:31 -06:00
lint-gn.sh Meta: Add gn linter 2023-07-13 14:07:25 -06:00
lint-keymaps.py Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
lint-ports.py Meta: Dont finish lines with only one character in lint-ports.py 2023-07-18 00:17:34 +02:00
lint-prettier.sh LibJS: Implement ImportCall and HostImportModuleDynamically 2022-01-22 01:21:18 +00:00
lint-python.sh Meta: Get building on NixOS (#5005) 2021-01-22 17:44:05 +01:00
lint-shell-scripts.sh Meta: Allow shellcheck to search sourced files in the script directory 2022-10-16 23:39:45 +02:00
new-project.sh Meta: Add new-project.sh :^) 2021-08-13 21:12:17 +04:30
refresh-serenity-qtcreator.sh Meta: Make *.in files accessible to QtCreator 2023-05-14 16:01:57 -06:00
run.sh Meta: Don't pass ^C through the serial console on CI 2023-10-24 13:45:55 +02:00
serenity.sh Ladybird+Meta: Make the AppKit chrome the default on macOS 2023-10-26 11:00:56 +02:00
serenity_gdb.py Meta: Pretty-print strings in gdb as a single object, not by character 2023-08-05 02:16:55 +03:30
shell_include.sh Meta: Fix typos in shell script comments 2023-10-26 15:45:31 -06:00
test_pdf.py test_pdf.py: Output tweaks 2023-11-10 14:46:06 +01:00
toot-commits.js CI: Add script to post mastodon toots for commits on master 2023-02-10 13:54:07 +00:00
tweet-commits.js Meta: Ensure long messages fit in commit tweet 2021-06-18 13:34:17 +01:00