ladybird/Meta/CMake
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
..
Superbuild Meta: Promote SERENITY_CACHE_DIR to a real option 2023-08-10 20:10:05 -06:00
accelerated_graphics.cmake LibAccelGfx+WebContent: Add GPU painter support on macOS 2023-11-16 15:13:16 +01:00
all_the_debug_macros.cmake AK+LibIDL: Put IDL dbgln statement behind a debug flag 2023-11-15 23:42:53 +01:00
ca_certificates_data.cmake Meta: Update CA certificate to 2023-08-22 2023-10-31 00:36:51 +03:30
check_for_dependencies.cmake Meta: Do not log CMake version on each CMake invocation 2022-09-11 21:40:15 +01:00
cmake-version.cmake Toolchain+Meta: Add script to build CMake from source 2022-12-13 11:36:14 +01:00
code_generators.cmake Meta: Use embed_as_string_view() for stringify_gml() 2023-08-24 07:42:12 +01:00
common_compile_options.cmake Meta: Globally disable floating point contraction 2023-11-16 19:05:13 -05:00
common_options.cmake CMake: Use a helper file to find GL and EGL in a platform agnostic way 2023-10-31 02:32:58 -06:00
commonmark_spec.cmake Meta: Download commonmark.spec.json to the cache directory 2023-09-14 08:05:00 +01:00
flac_spec_tests.cmake Meta: Refactor FLAC spec test extraction with extract_tar_path 2023-03-19 14:15:35 +00:00
jakt.cmake Meta: Update jakt build support for fully bootstrapped compiler 2022-09-09 11:23:42 +02:00
lagom_compile_options.cmake CMake: Link with -Bsymbolic-non-weak-functions if supported 2023-09-18 10:26:42 +02:00
lagom_install_options.cmake Meta: Include RPATH rules at top level to share them with Ladybird 2023-08-13 23:31:00 -06:00
lagom_options.cmake Meta: Link Lagom with LLD by default and allow configuring the linker 2023-09-05 14:50:36 +02:00
lagom-install-config.cmake Meta: Update jakt build support for fully bootstrapped compiler 2022-09-09 11:23:42 +02:00
libgl_generators.cmake CMake: Don't require to install glapi.h to system 2023-02-04 15:53:07 -07:00
libweb_generators.cmake LibWeb: Install generated CSS/PseudoClass.h file the same as the others 2023-10-11 12:35:35 -04:00
locale_data.cmake LibLocale: Update to CLDR version 44.0.1 2023-11-06 08:31:56 -05:00
pnp_ids.cmake LibEDID: Replace the HTML-based PNP ID parser with a CSV-based parser 2023-11-08 08:19:04 +01:00
processor-count.cmake Meta: Print error if cmake does not exist 2022-10-16 17:49:18 +02:00
public_suffix.cmake LibPublicSuffix: Add Library and Generators 2023-08-17 15:30:23 +01:00
serenity_compile_options.cmake CMake: Link with -Bsymbolic-non-weak-functions if supported 2023-09-18 10:26:42 +02:00
serenity_components.cmake Meta: Properly ignore targets which don't have a component name 2022-10-15 13:12:42 +02:00
serenity_options.cmake CMake: Pass NO_POLICY_SCOPE to options cmake helpers 2022-12-14 12:43:12 +01:00
setup_ccache.cmake Meta: Detect ccache being passed as the compiler 2022-12-12 21:34:09 -07:00
time_zone_data.cmake Meta: Assume files already extracted for ENABLE_NETWORK_DOWNLOADS=OFF 2023-08-10 20:10:05 -06:00
unicode_data.cmake LibUnicode: Update to Unicode version 15.1.0 2023-09-15 18:30:26 +02:00
use_linker.cmake CMake: Actually set the LAGOM_USE_LINKER option automatically 2023-10-11 15:02:42 -04:00
utils.cmake CMake: Always build LibC with -ftls-model=initial-exec 2023-08-18 16:20:13 +02:00
wasm_spec_tests.cmake LibWasm: Implement a few SIMD instructions 2023-08-21 13:39:32 +03:30