1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/include/llvm/ADT
Gauthier Harnisch ed940af216 [clang] Add storage for APValue in ConstantExpr
Summary:
When using ConstantExpr we often need the result of the expression to be kept in the AST. Currently this is done on a by the node that needs the result and has been done multiple times for enumerator, for constexpr variables... . This patch adds to ConstantExpr the ability to store the result of evaluating the expression. no functional changes expected.

Changes:
 - Add trailling object to ConstantExpr that can hold an APValue or an uint64_t. the uint64_t is here because most ConstantExpr yield integral values so there is an optimized layout for integral values.
 - Add basic* serialization support for the trailing result.
 - Move conversion functions from an enum to a fltSemantics from clang::FloatingLiteral to llvm::APFloatBase. this change is to make it usable for serializing APValues.
 - Add basic* Import support for the trailing result.
 - ConstantExpr created in CheckConvertedConstantExpression now stores the result in the ConstantExpr Node.
 - Adapt AST dump to print the result when present.

basic* : None, Indeterminate, Int, Float, FixedPoint, ComplexInt, ComplexFloat,
the result is not yet used anywhere but for -ast-dump.

Reviewers: rsmith, martong, shafik

Reviewed By: rsmith

Subscribers: rnkovacs, hiraditya, dexonsmith, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

llvm-svn: 363493
2019-06-15 10:24:47 +00:00
..
AllocatorList.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Any.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
APFloat.h [clang] Add storage for APValue in ConstantExpr 2019-06-15 10:24:47 +00:00
APInt.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
APSInt.h [APSInt][OpenMP] Fix isNegative, etc. for unsigned types 2019-04-23 17:04:15 +00:00
ArrayRef.h [ADT] Fix OwningArrayRef's move ctor 2019-04-13 13:52:11 +00:00
bit.h Replace llvm::isPodLike<...> by llvm::is_trivially_copyable<...> 2019-01-20 21:19:56 +00:00
BitmaskEnum.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
BitVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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
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 [lldb] NFC modernize codebase with modernize-use-nullptr 2019-05-23 11:14:47 +00:00
DenseMapInfo.h Revert r361953 "[SVE][IR] Scalable Vector IR Type" 2019-06-09 19:27:50 +00: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
edit_distance.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 [ADT] Add a fallible_iterator wrapper. 2019-02-05 23:17:11 +00:00
FoldingSet.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FunctionExtras.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 [ADT] Notify ilist traits about in-list transfers 2019-01-23 22:59:52 +00:00
ImmutableList.h Replace llvm::isPodLike<...> by llvm::is_trivially_copyable<...> 2019-01-20 21:19:56 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Revert rL361944 from llvm/trunk : 2019-05-29 14:39:37 +00:00
iterator.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Speculative buildfix for Mac 2019-02-20 14:56:31 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PointerIntPair.h Fix llvm::is_trivially_copyable portability issues 2019-01-22 13:48:55 +00: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 Convert PointerUnion to a variadic template. 2019-05-17 00:39:38 +00:00
PostOrderIterator.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SCCIterator.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ScopedHashTable.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ScopeExit.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SmallPtrSet.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SmallSet.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SmallString.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SmallVector.h [NFC] Fix SmallVector::append comments 2019-05-30 17:54:26 +00: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Statistic.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
STLExtras.h Add a map_range function for applying map_iterator to a range. 2019-06-14 23:56:40 +00:00
StringExtras.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StringMap.h [ADT] Enable set_difference() to be used on StringSet 2019-06-07 20:23:03 +00:00
StringRef.h [ADT] Move away from __attribute__((always_inline)). 2019-01-22 22:40:35 +00:00
StringSet.h [ADT] Enable set_difference() to be used on StringSet 2019-06-07 20:23:03 +00:00
StringSwitch.h [ADT] Move away from __attribute__((always_inline)). 2019-01-22 22:40:35 +00:00
TinyPtrVector.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Triple.h [ARM] add target arch definitions for 8.1-M and MVE 2019-05-30 12:57:04 +00:00
Twine.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +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
VariadicFunction.h Fix misspelled filenames in file headers 2019-02-07 14:38:25 +00:00