llvm-capstone/llvm/utils/TableGen
Matt Arsenault bc37be1855 LangRef: Add "dynamic" option to "denormal-fp-math"
This is stricter than the default "ieee", and should probably be the
default. This patch leaves the default alone. I can change this in a
future patch.

There are non-reversible transforms I would like to perform which are
legal under IEEE denormal handling, but illegal with flushing zero
behavior. Namely, conversions between llvm.is.fpclass and fcmp with
zeroes.

Under "ieee" handling, it is legal to translate between
llvm.is.fpclass(x, fcZero) and fcmp x, 0.

Under "preserve-sign" handling, it is legal to translate between
llvm.is.fpclass(x, fcSubnormal|fcZero) and fcmp x, 0.

I would like to compile and distribute some math library functions in
a mode where it's callable from code with and without denormals
enabled, which requires not changing the compares with denormals or
zeroes.

If an IEEE function transforms an llvm.is.fpclass call into an fcmp 0,
it is no longer possible to call the function from code with denormals
enabled, or write an optimization to move the function into a denormal
flushing mode. For the original function, if x was a denormal, the
class would evaluate to false. If the function compiled with denormal
handling was converted to or called from a preserve-sign function, the
fcmp now evaluates to true.

This could also be of use for strictfp handling, where code may be
changing the denormal mode.

Alternative name could be "unknown".

Replaces the old AMDGPU custom inlining logic with more conservative
logic which tries to permit inlining for callees with dynamic handling
and avoids inlining other mismatched modes.
2023-04-29 08:44:59 -04:00
..
GlobalISel [CMake] Reorder deps and reformat 2023-04-23 11:29:44 +09:00
jupyter [llvm][TableGen][Jupyter] Correct notebook name in example command 2023-03-09 09:14:13 +00:00
AsmMatcherEmitter.cpp [Coverity] Fix uninitialized scalar members in TableGen 2023-04-21 17:42:33 +08:00
AsmWriterEmitter.cpp Change dyn_cast to cast 2023-04-11 00:14:39 +08:00
AsmWriterInst.cpp
AsmWriterInst.h
Attributes.cpp LangRef: Add "dynamic" option to "denormal-fp-math" 2023-04-29 08:44:59 -04:00
CallingConvEmitter.cpp [Coverity] Fix uninitialized scalar members in TableGen 2023-04-21 17:42:33 +08:00
CMakeLists.txt Generate staging MachineValueType.h (partially) from ValueTypes.td 2023-04-14 08:41:44 +09:00
CodeEmitterGen.cpp [Coverity] Fix uninitialized scalar members in TableGen 2023-04-21 17:42:33 +08:00
CodeGenDAGPatterns.cpp TableGen: Replace IntrinsicEmitter::ComputeFixedEncoding() and cleanup 2023-04-26 23:49:08 +09:00
CodeGenDAGPatterns.h [TableGen] Remove unused ForceMode and CodeGen fields from TypeInfer. NFC 2023-04-23 20:32:14 -07:00
CodeGenHwModes.cpp [TableGen] Change push_back back to emplace_back. 2023-03-22 23:17:36 -07:00
CodeGenHwModes.h [TableGen][RISCV][Hexagon][LoongArch] Add a list of Predicates to HwMode. 2023-03-14 13:00:38 -07:00
CodeGenInstAlias.cpp
CodeGenInstAlias.h
CodeGenInstruction.cpp
CodeGenInstruction.h
CodeGenIntrinsics.cpp TableGen: Replace IntrinsicEmitter::ComputeFixedEncoding() and cleanup 2023-04-26 23:49:08 +09:00
CodeGenIntrinsics.h TableGen: Replace IntrinsicEmitter::ComputeFixedEncoding() and cleanup 2023-04-26 23:49:08 +09:00
CodeGenMapTable.cpp
CodeGenRegisters.cpp [RISCV] Replace RISCV -> RISC-V in comments. NFC 2023-03-27 09:50:17 -07:00
CodeGenRegisters.h [Coverity] Fix uninitialized scalar members in TableGen 2023-04-21 17:42:33 +08:00
CodeGenSchedule.cpp [llvm] Use *{Set,Map}::contains (NFC) 2023-03-14 18:56:07 -07:00
CodeGenSchedule.h
CodeGenTarget.cpp llvm-tblgen: Split out CodeGenIntrinsics.cpp from CodeGenTarget.cpp 2023-03-15 08:09:35 +09:00
CodeGenTarget.h
CompressInstEmitter.cpp [RISCV] Replace RISCV->RISC-V in strings. 2023-03-27 09:50:17 -07:00
CTagsEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
DAGISelEmitter.cpp [TableGen] Move some vectors into place instead of copying them. 2023-04-01 15:41:29 -07:00
DAGISelMatcher.cpp [TableGen] Store CodeGenInstruction reference in EmitNodeMatcherCommon. NFC 2023-04-12 20:44:36 -07:00
DAGISelMatcher.h [TableGen] Remove unused method form ScopeMatcher. NFC 2023-04-23 00:44:50 -07:00
DAGISelMatcherEmitter.cpp [TableGen] Intialize vector with constructor instead of assign. NFC 2023-04-22 22:37:57 -07:00
DAGISelMatcherGen.cpp [TableGen] Make getRegisterValueType stricter about HwModes. 2023-04-23 23:28:23 -07:00
DAGISelMatcherOpt.cpp [TableGen] Re-work FactorNodes to avoid an extra temporary vector. 2023-04-22 21:04:55 -07:00
DecoderEmitter.cpp llvm-tblgen: Move decl of EmitDecoder()to TableGenBackends.h 2023-03-21 16:21:27 +09:00
DFAEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
DFAEmitter.h
DFAPacketizerEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
DirectiveEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
DisassemblerEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
DXILEmitter.cpp [Coverity] Fix uninitialized scalar members in TableGen 2023-04-21 17:42:33 +08:00
ExegesisEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
FastISelEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
GICombinerEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
GlobalISelEmitter.cpp Revert "[Coverity] Fix explicit null dereferences" 2023-04-24 11:14:10 +01:00
InfoByHwMode.cpp [TableGen] Slightly improve the efficiency of InfoByHwMode::get. 2023-04-08 18:54:56 -07:00
InfoByHwMode.h [TableGen] Fix compile fail when compiling llvm with MSVC due to typo in 9314186670 2023-04-10 20:23:37 +08:00
InstrDocsEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
InstrInfoEmitter.cpp [MC] Store operand info immediately after the TargetInsts table. NFC. 2023-03-27 11:39:18 +01:00
IntrinsicEmitter.cpp TableGen: Replace IntrinsicEmitter::ComputeFixedEncoding() and cleanup 2023-04-26 23:49:08 +09:00
OptEmitter.cpp
OptEmitter.h
OptParserEmitter.cpp [Coverity] Fix uninitialized scalar members in TableGen 2023-04-21 17:42:33 +08:00
OptRSTEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
PredicateExpander.cpp
PredicateExpander.h
PseudoLoweringEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
RegisterBankEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
RegisterInfoEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
RISCVTargetDefEmitter.cpp [RISCV] Replace RISCV -> RISC-V in comments. NFC 2023-03-27 09:50:17 -07:00
SDNodeProperties.cpp
SDNodeProperties.h
SearchableTableEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
SequenceToOffsetTable.h
SubtargetEmitter.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
SubtargetFeatureInfo.cpp [TableGen] Minor tweak to AssemblerCondDag evaluation to be more consistent with other dags. NFC 2023-02-28 21:26:57 -08:00
SubtargetFeatureInfo.h
TableGen.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
TableGenBackends.h llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
tdtags
Types.cpp
Types.h
VarLenCodeEmitterGen.cpp
VarLenCodeEmitterGen.h
VTEmitter.cpp Fully generate MachineValueType.h 2023-04-25 08:53:18 +09:00
WebAssemblyDisassemblerEmitter.cpp
WebAssemblyDisassemblerEmitter.h
X86DisassemblerShared.h
X86DisassemblerTables.cpp [X86][Tablgen] Rename IgnoresVEX_W to IgnoresW, VEX_WIG to WIG, NFCI 2023-04-20 11:15:09 +08:00
X86DisassemblerTables.h
X86EVEX2VEXTablesEmitter.cpp [X86][Tablgen] Rename IgnoresVEX_W to IgnoresW, VEX_WIG to WIG, NFCI 2023-04-20 11:15:09 +08:00
X86FoldTablesEmitter.cpp [X86][Tablgen] Rename IgnoresVEX_W to IgnoresW, VEX_WIG to WIG, NFCI 2023-04-20 11:15:09 +08:00
X86ManualFoldTables.def [X86][mem-fold] Remove the logic for TB_NO_FORWARD | TB_NO_REVERSE, NFCI 2023-04-05 22:17:57 +08:00
X86MnemonicTables.cpp llvm-tblgen: Rewrite emitters to use TableGen::Emitter 2023-03-21 16:21:27 +09:00
X86ModRMFilters.cpp
X86ModRMFilters.h
X86RecognizableInstr.cpp [X86][tablgen] Fix typo in comments, NFC 2023-04-24 13:57:00 +08:00
X86RecognizableInstr.h [X86][Tablgen] Rename IgnoresVEX_W to IgnoresW, VEX_WIG to WIG, NFCI 2023-04-20 11:15:09 +08:00