1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/lib
Stanislav Mekhanoshin c39b2b753b [AMDGPU] Always use rcp + mul with fast math
Regardless of relaxation options such as -cl-fast-relaxed-math
we are producing rather long code for fdiv via amdgcn_fdiv_fast
intrinsic. This intrinsic is used to replace fdiv with 2.5ulp
metadata and does not handle denormals, thus believed to be fast.

An fdiv instruction can also have fast math flag either by itself
or together with fpmath metadata. Clang used with a relaxation flag
always produces both metadata and fast flag:

%div = fdiv fast float %v, %0, !fpmath !12
!12 = !{float 2.500000e+00}

Current implementation ignores fast flag and favors metadata. An
instruction with just fast flag would be lowered to a fastest rcp +
mul, but that never happen on practice because of described mutual
clang and BE behavior.

This change allows an "fdiv fast" to be always lowered as rcp + mul.

Differential Revision: https://reviews.llvm.org/D34844

llvm-svn: 307308
2017-07-06 20:34:21 +00:00
..
Analysis [ValueTracking] Support icmps fed by 'and' and 'or'. 2017-07-06 20:00:25 +00:00
AsmParser Add dependency from AsmParser to BinaryFormat. 2017-06-07 04:24:33 +00:00
BinaryFormat Revert "Revert "Revert "Replace trivial use of external rc.exe by writing our own .res file.""" 2017-07-05 23:45:50 +00:00
Bitcode Bitcode: Include any strings added to the string table in the module hash. 2017-07-06 17:56:01 +00:00
CodeGen [MachineVerifier] Add check that tied physregs aren't different. 2017-07-06 13:18:21 +00:00
DebugInfo fix trivial typos in comments; NFC 2017-07-03 06:32:59 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine DebugInfo: Generalize LoadedObjectInfoHelper from RuntimeDyld 2017-07-05 15:23:56 +00:00
Fuzzer [libFuzzer] change the default max_len from 64 to 4096. This will affect cases where libFuzzer is run w/o initial corpus or with a corpus of very small items. 2017-06-15 22:43:40 +00:00
IR [Constants] Replace calls to ConstantInt::equalsInt(0)/equalsInt(1) with isZero and isOne. NFCI 2017-07-06 18:39:49 +00:00
IRReader
LineEditor
Linker Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
LTO [LTO] Fix the interaction between linker redefined symbols and ThinLTO 2017-07-06 19:58:26 +00:00
MC [WebAssembly] Fix types for address taken functions 2017-07-05 20:25:08 +00:00
Object Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library.""" 2017-07-05 23:46:06 +00:00
ObjectYAML [ObjectYAML] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-07-01 01:35:55 +00:00
Option [Bash-autocompletion] Show flags which has HelpText or GroupID 2017-07-05 02:36:32 +00:00
Passes Hook the sample PGO machinery in the new PM 2017-06-29 23:33:05 +00:00
ProfileData Prototype: Reduce llvm-profdata merge memory usage further 2017-07-06 19:00:12 +00:00
Support Fix ODR violations due to abuse of LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR 2017-06-30 20:56:57 +00:00
TableGen [BinaryFormat, Option, TableGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-16 00:43:26 +00:00
Target [AMDGPU] Always use rcp + mul with fast math 2017-07-06 20:34:21 +00:00
Testing Mark LLVMTestingSupport as not installed in LLVMBuild. 2017-06-19 22:01:50 +00:00
ToolDrivers [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
Transforms [lib/LTO] Add a comment to explain where we set the linkage in the summary. 2017-07-06 20:04:20 +00:00
XRay Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
CMakeLists.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00
LLVMBuild.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00