hanchenye-llvm-project/clang/lib/Sema
Leonard Chan a677942d8a [Fixed Point Arithmetic] Fixed Point Constant
This patch proposes an abstract type that represents fixed point numbers, similar to APInt or APSInt that was discussed in https://reviews.llvm.org/D48456#inline-425585. This type holds a value, scale, and saturation and is meant to perform intermediate calculations on constant fixed point values.

Currently this class is used as a way for handling the conversions between fixed point numbers with different sizes and radixes. For example, if I'm casting from a signed _Accum to a saturated unsigned short _Accum, I will need to check the value of the signed _Accum to see if it fits into the short _Accum which involves getting and comparing against the max/min values of the short _Accum. The FixedPointNumber class currently handles the radix shifting and extension when converting to a signed _Accum.

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

llvm-svn: 339028
2018-08-06 16:42:37 +00:00
..
AnalysisBasedWarnings.cpp Use Optional instead of unique_ptr; NFC 2018-08-05 01:37:07 +00:00
CMakeLists.txt Compile SemaTemplate.cpp with /bigobj on MSVC 2018-07-28 01:29:31 +00:00
CodeCompleteConsumer.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
CoroutineStmtBuilder.h Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
DeclSpec.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
DelayedDiagnostic.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
IdentifierResolver.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
JumpDiagnostics.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
MultiplexExternalSemaSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ParsedAttr.cpp [NFC] Rename clang::AttributeList to clang::ParsedAttr 2018-07-13 15:07:47 +00:00
Scope.cpp Revert r335019 "Update NRVO logic to support early return (Attempt 2)" 2018-06-19 05:35:30 +00:00
ScopeInfo.cpp [coroutines] Pass coro func args to promise ctor 2018-01-24 22:15:42 +00:00
Sema.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaAccess.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaAttr.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
SemaCUDA.cpp [NFC] Rename clang::AttributeList to clang::ParsedAttr 2018-07-13 15:07:47 +00:00
SemaCXXScopeSpec.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaCast.cpp Sema: Fix explicit address space cast involving void pointers 2018-08-03 03:18:56 +00:00
SemaChecking.cpp __c11_atomic_load's _Atomic can be const 2018-08-02 17:35:46 +00:00
SemaCodeComplete.cpp [CodeComplete] Fix the crash in code completion on access checking 2018-07-30 15:19:05 +00:00
SemaConsumer.cpp
SemaCoroutine.cpp Add caching when looking up coroutine_traits 2018-07-14 18:21:44 +00:00
SemaDecl.cpp Fold two cast plus a cast in a loop into a variable. 2018-08-03 01:24:52 +00:00
SemaDeclAttr.cpp [P0936R0] add [[clang::lifetimebound]] attribute 2018-08-01 00:33:25 +00:00
SemaDeclCXX.cpp Diagnose invalid cv-qualifiers for friend decls. 2018-08-03 22:09:44 +00:00
SemaDeclObjC.cpp [AST][4/4] Move the bit-fields from ObjCMethodDecl and ObjCContainerDecl into DeclContext 2018-08-01 21:31:08 +00:00
SemaExceptionSpec.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaExpr.cpp [Fixed Point Arithmetic] Fixed Point Constant 2018-08-06 16:42:37 +00:00
SemaExprCXX.cpp [Preprocessor] Allow libc++ to detect when aligned allocation is unavailable. 2018-08-03 23:12:37 +00:00
SemaExprMember.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaExprObjC.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaFixItUtils.cpp [Sema] Revert r329346 because of memory sanitizer failures. 2018-04-05 22:15:42 +00:00
SemaInit.cpp Work around more GCC miscompiles exposed by r338464. 2018-08-02 18:12:08 +00:00
SemaLambda.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaLookup.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaObjCProperty.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaOpenMP.cpp [OPENMP] Fix PR38256: Fix locations of the artificial conditional op. 2018-07-25 14:40:26 +00:00
SemaOverload.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
SemaPseudoObject.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaStmt.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaStmtAsm.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaStmtAttr.cpp [UnrollAndJam] Add unroll_and_jam pragma handling 2018-08-01 14:36:12 +00:00
SemaTemplate.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaTemplateDeduction.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaTemplateInstantiate.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaTemplateInstantiateDecl.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaTemplateVariadic.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SemaType.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
TreeTransform.h Remove trailing space 2018-07-30 19:24:48 +00:00
TypeLocBuilder.cpp
TypeLocBuilder.h Remove trailing space 2018-07-30 19:24:48 +00:00