2017-06-07 04:48:45 +00:00
|
|
|
set(LLVM_LINK_COMPONENTS
|
2017-06-07 04:48:49 +00:00
|
|
|
BinaryFormat
|
2019-06-19 20:51:35 +00:00
|
|
|
Core
|
[OpenMP][NFCI] Introduce llvm/IR/OpenMPConstants.h
Summary:
The new OpenMPConstants.h is a location for all OpenMP related constants
(and helpers) to live.
This patch moves the directives there (the enum OpenMPDirectiveKind) and
rewires Clang to use the new location.
Initially part of D69785.
Reviewers: kiranchandramohan, ABataev, RaviNarayanaswamy, gtbercea, grokos, sdmitriev, JonChesterfield, hfinkel, fghanim
Subscribers: jholewinski, ppenzin, penzn, llvm-commits, cfe-commits, jfb, guansong, bollu, hiraditya, mgorny
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D69853
2019-11-04 22:00:49 -06:00
|
|
|
FrontendOpenMP
|
2017-06-07 04:48:45 +00:00
|
|
|
Support
|
[Support] Move TargetParsers to new component
This is a fairly large changeset, but it can be broken into a few
pieces:
- `llvm/Support/*TargetParser*` are all moved from the LLVM Support
component into a new LLVM Component called "TargetParser". This
potentially enables using tablegen to maintain this information, as
is shown in https://reviews.llvm.org/D137517. This cannot currently
be done, as llvm-tblgen relies on LLVM's Support component.
- This also moves two files from Support which use and depend on
information in the TargetParser:
- `llvm/Support/Host.{h,cpp}` which contains functions for inspecting
the current Host machine for info about it, primarily to support
getting the host triple, but also for `-mcpu=native` support in e.g.
Clang. This is fairly tightly intertwined with the information in
`X86TargetParser.h`, so keeping them in the same component makes
sense.
- `llvm/ADT/Triple.h` and `llvm/Support/Triple.cpp`, which contains
the target triple parser and representation. This is very intertwined
with the Arm target parser, because the arm architecture version
appears in canonical triples on arm platforms.
- I moved the relevant unittests to their own directory.
And so, we end up with a single component that has all the information
about the following, which to me seems like a unified component:
- Triples that LLVM Knows about
- Architecture names and CPUs that LLVM knows about
- CPU detection logic for LLVM
Given this, I have also moved `RISCVISAInfo.h` into this component, as
it seems to me to be part of that same set of functionality.
If you get link errors in your components after this patch, you likely
need to add TargetParser into LLVM_LINK_COMPONENTS in CMake.
Differential Revision: https://reviews.llvm.org/D137838
2022-12-20 10:24:02 +00:00
|
|
|
TargetParser
|
2017-06-07 04:48:45 +00:00
|
|
|
)
|
2011-02-11 23:46:38 +00:00
|
|
|
|
[Clang Interpreter] Initial patch for the constexpr interpreter
Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.
Reviewers: Bigcheese, jfb, rsmith
Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64146
llvm-svn: 371834
2019-09-13 09:46:16 +00:00
|
|
|
# FIXME: the entry points to the interpreter should be moved out of clangAST
|
|
|
|
# into the parser or Sema in order to allow the interpreter to be moved to
|
|
|
|
# another library which depends on clangAST.
|
|
|
|
clang_tablegen(Opcodes.inc
|
|
|
|
-gen-clang-opcodes
|
2024-08-16 17:13:12 +02:00
|
|
|
SOURCE ByteCode/Opcodes.td
|
[Clang Interpreter] Initial patch for the constexpr interpreter
Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.
Reviewers: Bigcheese, jfb, rsmith
Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64146
llvm-svn: 371834
2019-09-13 09:46:16 +00:00
|
|
|
TARGET Opcodes)
|
|
|
|
|
2021-08-12 21:29:12 -04:00
|
|
|
clang_tablegen(AttrDocTable.inc -gen-clang-attr-doc-table
|
2021-08-08 00:41:40 +02:00
|
|
|
-I ${CMAKE_CURRENT_SOURCE_DIR}/../../include/
|
|
|
|
SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../include/clang/Basic/Attr.td
|
|
|
|
TARGET ClangAttrDocTable)
|
|
|
|
|
2008-10-26 00:56:18 +00:00
|
|
|
add_clang_library(clangAST
|
2008-11-19 18:46:39 +00:00
|
|
|
APValue.cpp
|
2019-12-06 01:30:21 +02:00
|
|
|
ASTConcept.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
ASTConsumer.cpp
|
|
|
|
ASTContext.cpp
|
2010-02-09 22:26:47 +00:00
|
|
|
ASTDiagnostic.cpp
|
2012-12-13 13:59:55 +00:00
|
|
|
ASTDumper.cpp
|
2010-03-08 20:56:29 +00:00
|
|
|
ASTImporter.cpp
|
2018-12-17 13:53:12 +00:00
|
|
|
ASTImporterLookupTable.cpp
|
2017-04-28 00:31:30 +00:00
|
|
|
ASTStructuralEquivalence.cpp
|
2013-06-19 18:45:24 +00:00
|
|
|
ASTTypeTraits.cpp
|
2021-08-08 00:41:40 +02:00
|
|
|
AttrDocTable.cpp
|
2010-01-10 14:38:13 +00:00
|
|
|
AttrImpl.cpp
|
2024-02-15 17:14:54 -08:00
|
|
|
Availability.cpp
|
2012-07-06 00:28:32 +00:00
|
|
|
Comment.cpp
|
2012-06-26 20:39:18 +00:00
|
|
|
CommentBriefParser.cpp
|
2012-08-09 00:16:26 +00:00
|
|
|
CommentCommandTraits.cpp
|
2012-06-26 20:39:18 +00:00
|
|
|
CommentLexer.cpp
|
2012-07-06 00:28:32 +00:00
|
|
|
CommentParser.cpp
|
|
|
|
CommentSema.cpp
|
[C++2a] Implement operator<=> CodeGen and ExprConstant
Summary:
This patch tackles long hanging fruit for the builtin operator<=> expressions. It is currently needs some cleanup before landing, but I want to get some initial feedback.
The main changes are:
* Lookup, build, and store the required standard library types and expressions in `ASTContext`. By storing them in ASTContext we don't need to store (and duplicate) the required expressions in the BinaryOperator AST nodes.
* Implement [expr.spaceship] checking, including diagnosing narrowing conversions.
* Implement `ExprConstant` for builtin spaceship operators.
* Implement builitin operator<=> support in `CodeGenAgg`. Initially I emitted the required comparisons using `ScalarExprEmitter::VisitBinaryOperator`, but this caused the operand expressions to be emitted once for every required cmp.
* Implement [builtin.over] with modifications to support the intent of P0946R0. See the note on `BuiltinOperatorOverloadBuilder::addThreeWayArithmeticOverloads` for more information about the workaround.
Reviewers: rsmith, aaron.ballman, majnemer, rnk, compnerd, rjmccall
Reviewed By: rjmccall
Subscribers: rjmccall, rsmith, aaron.ballman, junbuml, mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D45476
llvm-svn: 331677
2018-05-07 21:07:10 +00:00
|
|
|
ComparisonCategories.cpp
|
2020-03-17 08:33:37 +01:00
|
|
|
ComputeDependence.cpp
|
[Clang Interpreter] Initial patch for the constexpr interpreter
Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.
Reviewers: Bigcheese, jfb, rsmith
Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64146
llvm-svn: 371834
2019-09-13 09:46:16 +00:00
|
|
|
CXXInheritance.cpp
|
2017-08-23 16:28:26 +00:00
|
|
|
DataCollection.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
Decl.cpp
|
2010-03-22 18:16:06 +00:00
|
|
|
DeclarationName.cpp
|
2009-07-15 21:08:41 +00:00
|
|
|
DeclBase.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
DeclCXX.cpp
|
2010-03-11 07:50:04 +00:00
|
|
|
DeclFriend.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
DeclGroup.cpp
|
|
|
|
DeclObjC.cpp
|
2025-01-21 11:27:23 -08:00
|
|
|
DeclOpenACC.cpp
|
2013-03-22 06:34:35 +00:00
|
|
|
DeclOpenMP.cpp
|
2009-05-30 00:08:05 +00:00
|
|
|
DeclPrinter.cpp
|
2009-02-04 19:02:06 +00:00
|
|
|
DeclTemplate.cpp
|
2024-11-05 19:23:44 +01:00
|
|
|
DynamicRecursiveASTVisitor.cpp
|
2019-12-09 17:03:47 -08:00
|
|
|
ParentMapContext.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
Expr.cpp
|
2010-06-28 15:09:07 +00:00
|
|
|
ExprClassification.cpp
|
2020-01-18 09:11:43 +02:00
|
|
|
ExprConcepts.cpp
|
2009-07-15 21:08:41 +00:00
|
|
|
ExprConstant.cpp
|
2010-03-22 18:16:06 +00:00
|
|
|
ExprCXX.cpp
|
2015-09-29 22:28:44 +00:00
|
|
|
ExprObjC.cpp
|
2017-04-11 19:33:35 +00:00
|
|
|
ExternalASTMerger.cpp
|
2011-02-28 14:32:11 +00:00
|
|
|
ExternalASTSource.cpp
|
2018-11-02 13:14:11 +00:00
|
|
|
FormatString.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
InheritViz.cpp
|
2024-12-04 11:44:46 +01:00
|
|
|
ByteCode/BitcastBuffer.cpp
|
2024-08-16 17:13:12 +02:00
|
|
|
ByteCode/ByteCodeEmitter.cpp
|
|
|
|
ByteCode/Compiler.cpp
|
|
|
|
ByteCode/Context.cpp
|
|
|
|
ByteCode/Descriptor.cpp
|
|
|
|
ByteCode/Disasm.cpp
|
|
|
|
ByteCode/EvalEmitter.cpp
|
|
|
|
ByteCode/Frame.cpp
|
|
|
|
ByteCode/Function.cpp
|
2024-08-22 15:23:50 +02:00
|
|
|
ByteCode/FunctionPointer.cpp
|
2024-08-16 17:13:12 +02:00
|
|
|
ByteCode/InterpBuiltin.cpp
|
2024-10-31 18:09:40 +01:00
|
|
|
ByteCode/InterpBuiltinBitCast.cpp
|
2024-08-16 17:13:12 +02:00
|
|
|
ByteCode/Floating.cpp
|
|
|
|
ByteCode/EvaluationResult.cpp
|
|
|
|
ByteCode/DynamicAllocator.cpp
|
|
|
|
ByteCode/Interp.cpp
|
|
|
|
ByteCode/InterpBlock.cpp
|
|
|
|
ByteCode/InterpFrame.cpp
|
|
|
|
ByteCode/InterpStack.cpp
|
|
|
|
ByteCode/InterpState.cpp
|
|
|
|
ByteCode/Pointer.cpp
|
|
|
|
ByteCode/PrimType.cpp
|
|
|
|
ByteCode/Program.cpp
|
|
|
|
ByteCode/Record.cpp
|
|
|
|
ByteCode/Source.cpp
|
|
|
|
ByteCode/State.cpp
|
|
|
|
ByteCode/MemberPointer.cpp
|
|
|
|
ByteCode/InterpShared.cpp
|
2010-08-16 03:33:14 +00:00
|
|
|
ItaniumCXXABI.cpp
|
2011-01-13 18:57:25 +00:00
|
|
|
ItaniumMangle.cpp
|
2019-05-13 21:39:55 +00:00
|
|
|
JSONNodeDumper.cpp
|
2011-01-13 18:57:25 +00:00
|
|
|
Mangle.cpp
|
2010-08-16 03:33:14 +00:00
|
|
|
MicrosoftCXXABI.cpp
|
2011-01-13 18:57:25 +00:00
|
|
|
MicrosoftMangle.cpp
|
Introduce a representation for types that we referred to via a
qualified name, e.g.,
foo::x
so that we retain the nested-name-specifier as written in the source
code and can reproduce that qualified name when printing the types
back (e.g., in diagnostics). This is PR3493, which won't be complete
until finished the other tasks mentioned near the end of this commit.
The parser's representation of nested-name-specifiers, CXXScopeSpec,
is now a bit fatter, because it needs to contain the scopes that
precede each '::' and keep track of whether the global scoping
operator '::' was at the beginning. For example, we need to keep track
of the leading '::', 'foo', and 'bar' in
::foo::bar::x
The Action's CXXScopeTy * is no longer a DeclContext *. It's now the
opaque version of the new NestedNameSpecifier, which contains a single
component of a nested-name-specifier (either a DeclContext * or a Type
*, bitmangled).
The new sugar type QualifiedNameType composes a sequence of
NestedNameSpecifiers with a representation of the type we're actually
referring to. At present, we only build QualifiedNameType nodes within
Sema::getTypeName. This will be extended to other type-constructing
actions (e.g., ActOnClassTemplateId).
Also on the way: QualifiedDeclRefExprs will also store a sequence of
NestedNameSpecifiers, so that we can print out the property
nested-name-specifier. I expect to also use this for handling
dependent names like Fibonacci<I - 1>::value.
llvm-svn: 67265
2009-03-19 00:18:19 +00:00
|
|
|
NestedNameSpecifier.cpp
|
2012-03-06 20:05:56 +00:00
|
|
|
NSAPI.cpp
|
2022-06-27 20:06:07 -07:00
|
|
|
ODRDiagsEmitter.cpp
|
2017-02-22 01:11:25 +00:00
|
|
|
ODRHash.cpp
|
2024-04-05 10:06:44 -07:00
|
|
|
OpenACCClause.cpp
|
2015-10-02 13:41:04 +00:00
|
|
|
OpenMPClause.cpp
|
[Clang Interpreter] Initial patch for the constexpr interpreter
Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.
Reviewers: Bigcheese, jfb, rsmith
Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64146
llvm-svn: 371834
2019-09-13 09:46:16 +00:00
|
|
|
OSLog.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
ParentMap.cpp
|
2018-11-02 13:14:11 +00:00
|
|
|
PrintfFormatString.cpp
|
2017-11-08 10:39:03 +00:00
|
|
|
QualTypeNames.cpp
|
2022-04-08 23:36:51 -07:00
|
|
|
Randstruct.cpp
|
2012-06-20 09:53:52 +00:00
|
|
|
RawCommentList.cpp
|
2010-03-08 20:56:29 +00:00
|
|
|
RecordLayout.cpp
|
2009-07-19 00:40:45 +00:00
|
|
|
RecordLayoutBuilder.cpp
|
2018-11-02 13:14:11 +00:00
|
|
|
ScanfFormatString.cpp
|
2011-10-03 06:36:51 +00:00
|
|
|
SelectorLocationsKind.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
Stmt.cpp
|
2015-10-02 13:41:04 +00:00
|
|
|
StmtCXX.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
StmtIterator.cpp
|
2015-10-02 13:41:04 +00:00
|
|
|
StmtObjC.cpp
|
[OpenACC] Implement AST for OpenACC Compute Constructs (#81188)
'serial', 'parallel', and 'kernel' constructs are all considered
'Compute' constructs. This patch creates the AST type, plus the required
infrastructure for such a type, plus some base types that will be useful
in the future for breaking this up.
The only difference between the three is the 'kind'( plus some minor
clause legalization rules, but those can be differentiated easily
enough), so rather than representing them as separate AST nodes, it
seems
to make sense to make them the same.
Additionally, no clause AST functionality is being implemented yet, as
that fits better in a separate patch, and this is enough to get the
'naked' constructs implemented.
This is otherwise an 'NFC' patch, as it doesn't alter execution at all,
so there aren't any tests. I did this to break up the review workload
and to get feedback on the layout.
2024-02-13 06:02:13 -08:00
|
|
|
StmtOpenACC.cpp
|
2015-10-02 13:41:04 +00:00
|
|
|
StmtOpenMP.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
StmtPrinter.cpp
|
2009-07-28 00:33:38 +00:00
|
|
|
StmtProfile.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
StmtViz.cpp
|
2009-10-29 07:48:15 +00:00
|
|
|
TemplateBase.cpp
|
2009-04-01 19:11:05 +00:00
|
|
|
TemplateName.cpp
|
2018-12-05 21:12:39 +00:00
|
|
|
TextNodeDumper.cpp
|
2008-10-26 00:56:18 +00:00
|
|
|
Type.cpp
|
2009-08-19 12:02:15 +00:00
|
|
|
TypeLoc.cpp
|
2009-11-10 00:39:07 +00:00
|
|
|
TypePrinter.cpp
|
2011-09-26 01:57:12 +00:00
|
|
|
VTableBuilder.cpp
|
2011-09-26 01:56:24 +00:00
|
|
|
VTTBuilder.cpp
|
2009-03-16 23:06:59 +00:00
|
|
|
|
2014-02-26 06:41:29 +00:00
|
|
|
LINK_LIBS
|
2012-06-21 01:30:21 +00:00
|
|
|
clangBasic
|
|
|
|
clangLex
|
[Clang Interpreter] Initial patch for the constexpr interpreter
Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.
Reviewers: Bigcheese, jfb, rsmith
Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64146
llvm-svn: 371834
2019-09-13 09:46:16 +00:00
|
|
|
|
|
|
|
DEPENDS
|
2021-08-12 21:29:12 -04:00
|
|
|
ClangAttrDocTable
|
[Clang Interpreter] Initial patch for the constexpr interpreter
Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.
Reviewers: Bigcheese, jfb, rsmith
Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64146
llvm-svn: 371834
2019-09-13 09:46:16 +00:00
|
|
|
Opcodes
|
[openmp] Base of tablegen generated OpenMP common declaration
Summary:
As discussed previously when landing patch for OpenMP in Flang, the idea is
to share common part of the OpenMP declaration between the different Frontend.
While doing this it was thought that moving to tablegen instead of Macros will also
give a cleaner and more powerful way of generating these declaration.
This first part of a future series of patches is setting up the base .td file for
DirectiveLanguage as well as the OpenMP version of it. The base file is meant to
be used by other directive language such as OpenACC.
In this first patch, the Directive and Clause enums are generated with tablegen
instead of the macros on OMPConstants.h. The next pacth will extend this
to other enum and move the Flang frontend to use it.
Reviewers: jdoerfert, DavidTruby, fghanim, ABataev, jdenny, hfinkel, jhuber6, kiranchandramohan, kiranktp
Reviewed By: jdoerfert, jdenny
Subscribers: arphaman, martong, cfe-commits, mgorny, yaxunl, hiraditya, guansong, jfb, sstefan1, aaron.ballman, llvm-commits
Tags: #llvm, #openmp, #clang
Differential Revision: https://reviews.llvm.org/D81736
2020-06-23 09:29:50 -04:00
|
|
|
omp_gen
|
2023-05-10 11:48:11 -07:00
|
|
|
ClangDriverOptions
|
2023-01-17 03:51:48 -06:00
|
|
|
intrinsics_gen
|
2024-06-18 21:28:34 +01:00
|
|
|
# These generated headers are included transitively.
|
|
|
|
AArch64TargetParserTableGen
|
2012-06-21 01:30:21 +00:00
|
|
|
)
|