【LLVM】‘ffast-math’ and ‘ffp-contract’

2024-06-22 16:20
文章标签 math llvm contract ffast ffp

本文主要是介绍【LLVM】‘ffast-math’ and ‘ffp-contract’,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近看到一个issue,修改的核心代码部分并不多,可以参考此处的介绍以及此处的issue。
看起来关键就是判断-ffp-contract会将contract的值设为最后一个此选项的值,否则的话,如果只指定了-ffast-math但是没有通过-ffp-contract设置值,就会将FPContract设置成on
用伪代码表示:

if(option == -ffp-contract) {FPContract = val;LastValue = val;
}
//FPContract may be alter.
if(LastValue != NULL) {FPContract = LastValue;
} else if(option == -ffast-math) {FPContract = on;
}

这篇关于【LLVM】‘ffast-math’ and ‘ffp-contract’的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084793

相关文章

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

10400 -Game Show Math

这道题的话利用了暴力深搜,尽管给了20S,但是这样还会超时,所以就需要利用回溯进行减枝,因为是DFS,所以用一个数组vis[i][j]记录是否在状态i时候取到过j值,如果取到过的话,那么直接回溯(往后搜索已经没有意义了,之前到达这个状态的时候是无法得到结果的) 还有需要注意的地方就是题目的要求,每一步的结构都在(-32000,32000)之间,所以需要一步判断,如果在这个范围外直接回溯 最后一

LLVM IR指令VM混淆分析

未混淆编译  编写一个最简单的测试代码,对 test_add函数用于对两个数相加: int __attribute((__annotate__("vm"))) test_add(int a, int b) {int c = a + b;return c;}int main(void) {int c = test_add(1, 2);return c;} 编译成中间代码:  未加

Python的math库——常用数学函数全解析

文末赠免费精品编程资料~~ 一、math模块简介 math 是 Python 内置的一个标准库,它包含了许多执行复杂数学运算的函数,如三角函数、对数函数、指数函数等。 二、常用函数详解与示例 基本数学运算 math.sqrt(x): 计算平方根。 import math# 计算平方根result = math.sqrt(16)print(result) # 输出 4.0 mat

Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK

Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK 工具1、w64devkit2、ndk3、cmake 编译1、准备工作2、开始编译 集成1、替换文件2、使用 工具 1、w64devkit w64devkit 解压出来给个环境变量 验证一下 2、ndk 通过android studio安装 nd

Math - Uva 11300 Spreading the Wealth

Spreading the Wealth  Problem's Link  ---------------------------------------------------------------------------- Mean:  n个人围成一圈,每个人手里有Ai个金币,每个人可以给与他相邻的人一些金币,通过一系列的流转后,最后所有人的金币数相等。问整个过程最少需

Math 题目总结

Math的题目,其实全是数学知识,没有什么太多的算法可言。 Sparse Matrix Multiplication (矩阵相乘就是所有的k,A(i,k) * B(k,j) = C(i,j) ,稀疏矩阵就是 有很多0,为了提高速度也就是如果 A(i,k) 或者B(k,j), k 从0到length,如果有0,那么这个计算就不进行了) class Solution {public int[][]

VS2022使用指定的LLVM版本

LLVM下载地址:Releases · llvm/llvm-project · GitHub LLVM/Clang toolsets for Visual Studio 2022, 2019, 2017, 2015, 2013, 2012 and 2010. GitHub - zufuliu/llvm-utils: LLVM/Clang toolsets for Visual Studio 2

简述 LLVM 与 Clang 及其关系

随着 Android P 的逐步应用,越来越多的客户要求编译库时用 libc++ 来代替 libstdc++。libc++ 和 libstdc++ 这两个库有关系呢?它们两个都是 C++ 标准库,libc++ 是针对 Clang 编译器特别重写的 C++ 标准库,而 libstdc++ 则是 GCC 的对应 C++ 标准库了。从 Android 市场来说,Android NDK 已在具体应用中放弃

NYOJ-题目(Math)--151------------------------------------Biorhythms

http://acm.nyist.net/JudgeOnline/problem.php?pid=151 package org.acm.math;/** 详情参考:http://blog.csdn.net/lyy289065406/article/details/6648551* 先说下,题意:( n + d ) % 23 = a , ( n + d ) % 28 = b , ( n + d