1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/include/llvm/ADT
Serge Pavlov 4088931555 [FPEnv] Use single enum to represent rounding mode
Now compiler defines 5 sets of constants to represent rounding mode.
These are:

1. `llvm::APFloatBase::roundingMode`. It specifies all 5 rounding modes
defined by IEEE-754 and is used in `APFloat` implementation.

2. `clang::LangOptions::FPRoundingModeKind`. It specifies 4 of 5 IEEE-754
rounding modes and a special value for dynamic rounding mode. It is used
in clang frontend.

3. `llvm::fp::RoundingMode`. Defines the same values as
`clang::LangOptions::FPRoundingModeKind` but in different order. It is
used to specify rounding mode in in IR and functions that operate IR.

4. Rounding mode representation used by `FLT_ROUNDS` (C11, 5.2.4.2.2p7).
Besides constants for rounding mode it also uses a special value to
indicate error. It is convenient to use in intrinsic functions, as it
represents platform-independent representation for rounding mode. In this
role it is used in some pending patches.

5. Values like `FE_DOWNWARD` and other, which specify rounding mode in
library calls `fesetround` and `fegetround`. Often they represent bits
of some control register, so they are target-dependent. The same names
(not values) and a special name `FE_DYNAMIC` are used in
`#pragma STDC FENV_ROUND`.

The first 4 sets of constants are target independent and could have the
same numerical representation. It would simplify conversion between the
representations. Also now `clang::LangOptions::FPRoundingModeKind` and
`llvm::fp::RoundingMode` do not contain the value for IEEE-754 rounding
direction `roundTiesToAway`, although it is supported natively on
some targets.

This change defines all the rounding mode type via one `llvm::RoundingMode`,
which also contains rounding mode for IEEE rounding direction `roundTiesToAway`.

Differential Revision: https://reviews.llvm.org/D77379
2020-04-09 13:26:47 +07:00
..
AllocatorList.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
Any.h Fix compilation of Any.h header. 2020-02-12 08:25:14 -08:00
APFloat.h [FPEnv] Use single enum to represent rounding mode 2020-04-09 13:26:47 +07:00
APInt.h [APInt][PatternMatch] Add 'is non-positive' predicate 2019-12-03 21:34:12 +03:00
APSInt.h [APSInt][OpenMP] Fix isNegative, etc. for unsigned types 2019-04-23 17:04:15 +00:00
ArrayRef.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
bit.h Fix SFINAE in llvm::bit_cast. 2020-02-12 08:26:10 -08:00
BitmaskEnum.h Add BitWidth trait to BitmaskEnum, and use for clang DependenceFlags. NFC 2020-03-27 22:40:21 +01:00
BitVector.h [ADT] Support BitVector as a key in DenseSet/Map 2020-02-14 10:24:22 -05:00
BreadthFirstIterator.h [NFC] Fix typo in comment. 2019-04-06 22:05:24 +00:00
CachedHashString.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CoalescingBitVector.h [ADT] CoalescingBitVector: Add advanceToLowerBound iterator operation 2020-03-20 12:18:26 -07:00
DAGDeltaAlgorithm.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DeltaAlgorithm.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DenseMap.h Revert "Replace std::foo with std::foo_t in LLVM." 2020-02-12 20:54:21 -08:00
DenseMapInfo.h [ADT] Allow K to be incomplete during DenseMap<K*, V> instantiation 2020-02-28 14:24:04 -08:00
DenseSet.h NFC: Change usage of 'DenseSet' to 'DenseSetImpl' in DenseSetImpl::ConstIterator. 2019-05-27 17:38:41 +00:00
DepthFirstIterator.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DirectedGraph.h [DirectedGraph]: Add setTargetNode member function 2019-11-11 03:36:23 +00:00
edit_distance.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
EnumeratedArray.h [DDG] Data Dependence Graph - Pi Block 2019-11-08 15:46:08 -05:00
EpochTracker.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
EquivalenceClasses.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
fallible_iterator.h Use C++14-style return type deduction in LLVM. 2020-02-11 07:38:42 -08:00
FloatingPointMode.h [FPEnv] Use single enum to represent rounding mode 2020-04-09 13:26:47 +07:00
FoldingSet.h Revert rGd5d8569df14e95e2c53d167bd1b37995bcbec565 "Fix static analysis warnings about classes with virtual methods not having virtual destructors" 2020-03-21 11:39:34 +00:00
FunctionExtras.h Revert "Replace std::foo with std::foo_t in LLVM." 2020-02-12 20:54:21 -08:00
GraphTraits.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Hashing.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ilist_base.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ilist_iterator.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ilist_node_base.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ilist_node_options.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ilist_node.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ilist.h Try to fix ilist.h after 529e6f8791b6 2020-02-06 12:33:44 +01:00
ImmutableList.h Revert "Replace std::foo with std::foo_t in LLVM." 2020-02-12 20:54:21 -08:00
ImmutableMap.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ImmutableSet.h ImutAVLTree::validateTree - fix null dereference typo warning. NFCI. 2019-11-07 18:42:01 +00:00
IndexedMap.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IntEqClasses.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IntervalMap.h PointerLikeTypeTraits: Standardize NumLowBitsAvailable on static constexpr rather than anonymous enum 2020-01-16 15:30:50 -08:00
IntrusiveRefCntPtr.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
iterator_range.h [ADT] Move drop_begin from iterator_range.h into STLExtras. 2019-11-14 08:10:59 -08:00
iterator.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
MapVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
None.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Optional.h Add LLVM_VALUE_FUNCTION to Optional::map(); NFC 2020-01-22 14:21:08 -05:00
PackedVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PointerEmbeddedInt.h PointerLikeTypeTraits: Standardize NumLowBitsAvailable on static constexpr rather than anonymous enum 2020-01-16 15:30:50 -08:00
PointerIntPair.h Add pretty printers for llvm::PointerIntPair and llvm::PointerUnion. 2020-01-27 17:23:59 +01:00
PointerSumType.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PointerUnion.h [ADT] 'PointerUnion::is' returns 'bool' 2020-02-01 16:50:20 -05:00
PostOrderIterator.h [PostOrderIterator] Use SmallVector to store stack; NFC 2020-03-29 14:29:02 +02:00
PriorityQueue.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PriorityWorklist.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
SCCIterator.h [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle() 2020-03-01 19:17:21 +02:00
ScopedHashTable.h [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
ScopeExit.h Revert "Replace std::foo with std::foo_t in LLVM." 2020-02-12 20:54:21 -08:00
Sequence.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SetOperations.h [OpenMP][Part 1] Reusable OpenMP context/traits handling 2020-02-02 23:18:25 -06:00
SetVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
simple_ilist.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SmallBitVector.h [ADT] Support BitVector as a key in DenseSet/Map 2020-02-14 10:24:22 -05:00
SmallPtrSet.h [ADT] Use inherited ctors to forward to base. NFCI. 2020-02-17 14:39:15 +01:00
SmallSet.h [ADT] add equality operator for SmallSet 2019-10-29 17:33:57 -07:00
SmallString.h [SmallString] Use data() instead of begin() (NFC) 2020-01-30 20:15:38 -08:00
SmallVector.h Revert "Replace std::foo with std::foo_t in LLVM." 2020-02-12 20:54:21 -08:00
SparseBitVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SparseMultiSet.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SparseSet.h [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
Statistic.h Statistic - Fix MSVC shadow warning against global PrintOnExit static variable. NFC. 2019-11-21 12:08:01 +00:00
STLExtras.h [ADT] Automatically forward llvm::sort to array_pod_sort if safe 2020-03-28 20:20:14 +01:00
StringExtras.h Fix MSVC unreferenced formal parameter warning. NFCI. 2019-09-01 16:04:38 +00:00
StringMap.h [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
StringRef.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
StringSet.h [ADT] Allow empty string in StringSet 2020-03-30 12:59:34 -07:00
StringSwitch.h Revert "Forward declare Optional<T> in STLExtras.h" 2019-11-13 16:36:21 -08:00
TinyPtrVector.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
Triple.h [PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support 2020-03-26 09:17:20 +00:00
Twine.h Revert rGa3c715e9788d829031989b0a5ea4eb43c7288be9 "Twine - fix uninitialized variable warnings. NFCI." 2020-03-27 11:44:04 +00:00
UniqueVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Waymarking.h [ADT] Implement the Waymarking as an independent utility 2020-03-31 17:08:24 +03:00