ef8225444452a1486bd721f3285301fe84643b00 |
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
langAttrEmitter.cpp
langDiagnosticsEmitter.cpp
eonEmitter.cpp
ableGenBackends.h
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
langASTNodesEmitter.cpp
langAttrEmitter.cpp
langCommentHTMLTagsEmitter.cpp
langDiagnosticsEmitter.cpp
langSACheckersEmitter.cpp
eonEmitter.cpp
|
651f13cea278ec967336033dd032faef0e9fc2ec |
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
langAttrEmitter.cpp
langDiagnosticsEmitter.cpp
eonEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
1fab7c3e3bd97a909a80b1bfea1909c6e7347fc0 |
12-Feb-2014 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/release_34' into merge-20140211 Conflicts: lib/Basic/Targets.cpp lib/Sema/SemaDeclAttr.cpp Change-Id: I17ca7161f32007272ee82036d237d051847dd02e
|
696e2d735c38eb73f1628d9b6166565fec4b9f1b |
08-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r196535: ------------------------------------------------------------------------ r196535 | apazos | 2013-12-05 13:13:24 -0800 (Thu, 05 Dec 2013) | 1 line Implemented vget/vset_lane_f16 intrinsics ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196686 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
917b328a7f565f9f3f0ae2067a8b97732efaa9f8 |
08-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r196211: ------------------------------------------------------------------------ r196211 | haoliu | 2013-12-02 22:07:13 -0800 (Mon, 02 Dec 2013) | 3 lines [AArch64]Add missing floating point convert, round and misc intrinsics. E.g. int64x1_t vcvt_s64_f64(float64x1_t a) -> FCVTZS Dd, Dn ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196679 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
26476230652928491dd8b3eead189f928b48363c |
08-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r196189: ------------------------------------------------------------------------ r196189 | jiangning | 2013-12-02 17:28:55 -0800 (Mon, 02 Dec 2013) | 2 lines Add some missing AArch64 Neon intrinsics like vmull_high_n_s16 and friends. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196671 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
e3b558de86b927e187f62cd2c6c17a966852255f |
01-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195943: ------------------------------------------------------------------------ r195943 | haoliu | 2013-11-28 18:31:42 -0800 (Thu, 28 Nov 2013) | 2 lines AArch64: Two intrinsics are expected to return float64 not float32 in arm_neon.h ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196023 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
08efe365cc491ad289132cb9e286382eb0493753 |
01-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195942: ------------------------------------------------------------------------ r195942 | haoliu | 2013-11-28 18:13:17 -0800 (Thu, 28 Nov 2013) | 3 lines Fix the problem that the range check for scalar narrow shift is too wide. E.g. the immediate value of vshrns_n_s16 is [1,16], which should be [1,8]. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196022 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
51d85463d5debc70d034c257c60b245591495367 |
01-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195844: ------------------------------------------------------------------------ r195844 | jiangning | 2013-11-27 06:02:55 -0800 (Wed, 27 Nov 2013) | 2 lines Fix the AArch64 NEON bug exposed by checking constant integer argument range of ACLE intrinsics. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196012 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
f27429d06ab3cea0e97ad9878c4440dfb06d2fe7 |
25-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195326: ------------------------------------------------------------------------ r195326 | apazos | 2013-11-20 23:36:33 -0800 (Wed, 20 Nov 2013) | 6 lines Implemented Neon scalar by element intrinsics. Intrinsics implemented: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane, vqdmlal_lane, vqdmlsl_lane scalar Neon intrinsics. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@195613 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
315007b1d459846fcc8fd842a63fbcaad6008ec2 |
19-Nov-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Add predicate for AArch64 crypto instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195069 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
769187a95a608f5aafdf438a67f335324a7b155e |
19-Nov-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Clean up predefined macros for AArch64 to follow ACLE 2.0. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195068 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
dd12780e86575795fa912529a911b01e2abc4677 |
18-Nov-2013 |
Hao Liu <Hao.Liu@arm.com> |
Implement the newly added AArch64 ACLE functions for ld1/st1 with 2/3/4 vectors. The functions are like: vst1_s8_x2 ... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194991 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
51cc0172a173599b769968696e20638754d1dcd6 |
16-Nov-2013 |
Ana Pazos <apazos@codeaurora.org> |
Implemented aarch64 Neon scalar vmulx_lane intrinsics Implemented aarch64 Neon scalar vfma_lane intrinsics Implemented aarch64 Neon scalar vfms_lane intrinsics Implemented legacy vmul_n_f64, vmul_lane_f64, vmul_laneq_f64 intrinsics (v1f64 parameter type) using Neon scalar instructions. Implemented legacy vfma_lane_f64, vfms_lane_f64, vfma_laneq_f64, vfms_laneq_f64 intrinsics (v1f64 parameter type) using Neon scalar instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194889 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
624bb5e59dbcc24efeee7dff12c9b48d2b5077e9 |
14-Nov-2013 |
Kevin Qin <Kevin.Qin@arm.com> |
[AArch64 neon] support poly64 and relevant intrinsic functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194660 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
8137a607eebe799d95fd05226fb91119a5b054b0 |
14-Nov-2013 |
Kevin Qin <Kevin.Qin@arm.com> |
Implement aarch64 neon instruction class misc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194657 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
2e22f29b92768ea65ac5c26d354226ecc7509311 |
14-Nov-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Implement AArch64 NEON instruction set AdvSIMD (table). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194649 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
f6785e3117c0ce447e4d70065e069a9dc031f14c |
12-Nov-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Documentation parsing: add support for \throws \throw \exception commands git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194521 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
3347b497157d36cf280d1d9f52956faa6e702f34 |
12-Nov-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Rather than duplicating extension diagnostics to allow them to cause a substitution failure, allow a flag to be set on the Diagnostic object, to mark it as 'causes substitution failure'. Refactor Diagnostic.td and the tablegen to use an enum for SFINAE behavior rather than a bunch of flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194444 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
9473c1945f9f1dfa143e172622f16e4264e2628b |
11-Nov-2013 |
Chad Rosier <mcrosier@codeaurora.org> |
[AArch64] Add support for NEON scalar floating-point convert to fixed-point instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194395 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
bf3bc5d37eff88b578d5990f507a87db33f30a6e |
06-Nov-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Implement AArch64 Neon instruction set Perm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194124 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
22229d6822324a42913d25f256045dbf348a53e9 |
05-Nov-2013 |
Kevin Qin <Kevin.Qin@arm.com> |
Implemented aarch64 neon intrinsic vcopy_lane with float type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194042 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
9feedb862e46f46d302f250ade1cac7108ba880b |
04-Nov-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Attributes which accept a type as their sole argument are no longer hard coded into the parser. Instead, they are automatically listed through tablegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193989 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
ddc2a53584f91b1fdcc466f1ea1345d97c428802 |
31-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Store a TypeArgument on an attribute as a TypeSourceInfo*, rather than as a QualType with a SourceLocation stashed alongside. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193803 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
f42727215f9fa38175d2e84a938c84122cd1e811 |
31-Oct-2013 |
Chad Rosier <mcrosier@codeaurora.org> |
[AArch64] Add support for NEON scalar shift immediate instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193791 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
564020954e9eb01293d90802c89a02f87301e095 |
30-Oct-2013 |
Chad Rosier <mcrosier@codeaurora.org> |
[AArch64] Add support for NEON scalar floating-point compare instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193692 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
d92aa2d2880d1c30baff996cb4c4f0836dbc355e |
24-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR17666: Instead of allowing an initial identifier argument in any attribute which we don't think can't have one, only allow it in the tiny number of attributes which opts into this weird parse rule. I've manually checked that the handlers for all these attributes can in fact cope with an identifier as the argument. This is still somewhat terrible; we should move more fully towards picking the parsing rules based on the attribute, and make the Parse -> Sema interface more type-safe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193295 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
4553a858e46299955333babfa052a512682869fd |
18-Oct-2013 |
Chad Rosier <mcrosier@codeaurora.org> |
[AArch64] Add support for NEON scalar extract narrow instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192971 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
2102a1dba460c99f97a0fdf1e5aee8c685e29ff8 |
11-Oct-2013 |
Kevin Qin <Kevin.Qin@arm.com> |
Implemented aarch64 SIMD copy related ACLE intrinsic : vget_lane, vset_lane, vcopy_lane, vcreate, vdup_n, vdup_lane, vmov_n. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192411 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
6d048e1a9768b594513e2ec7a6d3579787eb2505 |
08-Oct-2013 |
Chad Rosier <mcrosier@codeaurora.org> |
[AArch64] Add support for NEON scalar signed/unsigned integer to floating-point convert instructions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192232 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
0391691f86fd2a75ef2413d0272bfaf920d0e2b5 |
05-Oct-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Implement aarch64 neon instruction set AdvSIMD (Across). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192029 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
66540857c08de7f1be9bea48381548d3942cf9d1 |
04-Oct-2013 |
DeLesley Hutchins <delesley@google.com> |
Consumed Analysis: Change callable_when so that it can take a list of states that a function can be called in. This reduced the total number of annotations needed and makes writing more complicated behaviour less burdensome. Patch by chriswails@gmail.com. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191983 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
0aa1a88e19235574481e46e9e6e9ce66a9e6624f |
04-Oct-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Implement aarch64 neon instruction set AdvSIMD (3V elem). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191945 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
d068607c136298bec0891d750389a55bac9f5c98 |
11-Sep-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Tablegen now generates a StringSwitch for attributes containing enumeration arguments to map strings to the proper enumeration value. This makes error checking more consistent and reduces the amount of hand-written code required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190545 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
ebaee6b74e56f28c088225b11a512e6e7d1fb9d8 |
11-Sep-2013 |
Aaron Ballman <aaron@aaronballman.com> |
The cleanup attribute no longer uses an unresolved, simple identifier as its argument. Instead, it takes an expression that is fully resolved. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190476 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
bbb3b3237df2284f6f3c34798944fcfa4b43fd34 |
10-Sep-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Attribute tablegen now understands that attribute arguments can be optional. This allows for automated checking of the number of arguments expected vs number of arguments given for attributes. Greatly reduces the amount of manual checking required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190368 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
097a4b487897ca29f0f371c81b6a8b6c1ca599e4 |
09-Sep-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions, SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190289 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
912502b4996b14db31b498cb1eef2b17d7d66d57 |
04-Sep-2013 |
Hao Liu <Hao.Liu@arm.com> |
Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions: sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshr$ and 4 convert instructions: scvtf,ucvtf,fcvtzs,fcvtzu git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189926 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
caa5ab264ddea332e8423af1ebcea50d0cb37206 |
03-Sep-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Switched FormatAttr to using an IdentifierArgument instead of a StringArgument since that is a more accurate modeling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189851 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
944f09ff9b33637465906e1aeadcfa405d66331d |
29-Aug-2013 |
Kevin Qin <Kevin.Qin@arm.com> |
mangle aarch64 Neon ACLE scalar instrinsic name with BHSD suffix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189574 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
354f20a8720732aa1745d1ff9595382cee324ee2 |
29-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Move individual group name strings from the OptionTable into one big char array. Then only store offsets into it in the OptionTable. Saves about 4K from the clang binary and removes 400 relocation entries from DiagnosticIDs.o. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189568 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
0e28a257727f092fbb2d544fd9aaf3b20a323456 |
28-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Reorder and shrink size of NameLen field in diagnostic group table. Shaves ~4K from clang binary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189445 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
b1aa16a18563ebb6824fbe7267420942c802a8ca |
28-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Merge diagnostic group tables to reduce data size and relocation entries. The individual group and subgroups tables are now two large tables. The option table stores an index into these two tables instead of pointers. This reduces the size of the options tabe since it doesn't need to store pointers. It also reduces the number of relocations needed. My build shows this reducing DiagnosticsIDs.o and the clang binary by ~20.5K. It also removes ~400 relocation entries from DiagnosticIDs.o. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189438 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
83b154843c57f52422c62139df0bf9a4a1418e5f |
16-Aug-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
clang-format utils/TableGen/TableGen.cpp. I have a patch that edits the file. Running clang-format first makes the patch a lot easier to review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188562 91177308-0d34-0410-b5e6-96231b3b80d8
ableGen.cpp
|
12cd6a83f280bcab0e80230e8c7b1f989f3b4889 |
15-Aug-2013 |
Hao Liu <Hao.Liu@arm.com> |
Clang and AArch64 backend patches to support shll/shl and vmovl instructions and ACLE functions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188452 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
a902511dd22624b15cc61e36d167d1cf3549bc74 |
08-Aug-2013 |
Stephen Hines <srhines@google.com> |
Update Clang for merge to r187914. Fixups related to OptParser.td moving into LLVM (from Clang). Add libLLVMOption dependency. Android.mk changes: - Arg.cpp - ArgList.cpp - Option.cpp - OptTable.cpp - OptParserEmitter.cpp - LambdaMangleContext.cpp + ASTTypeTraits.cpp + MangleNumberingContext.cpp + MicrosoftVBTables.cpp Change-Id: I0aef80d90be9297cd1d5b5a08134cb6de2af4d2e
ndroid.mk
|
4ac73c7514f9e836b4d9781738f333c5cb91cb63 |
08-Aug-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '51e75aecf4fb303b91c9e54fd88e3509e5acc7a6' into merge-20130807 Conflicts: lib/Basic/Targets.cpp lib/Sema/SemaDeclAttr.cpp Change-Id: If457223ecbee9e43c73d15333bf10d36590d05c4
|
b793f0d3448a15277cd6b6cc4ba558ded39a8084 |
01-Aug-2013 |
Tim Northover <tnorthover@apple.com> |
AArch64: initial NEON support Patch by Ana Pazos - Completed implementation of instruction formats: AdvSIMD three same AdvSIMD modified immediate AdvSIMD scalar pairwise - Completed implementation of instruction classes (some of the instructions in these classes belong to yet unfinished instruction formats): Vector Arithmetic Vector Immediate Vector Pairwise Arithmetic - Initial implementation of instruction formats: AdvSIMD scalar two-reg misc AdvSIMD scalar three same - Intial implementation of instruction class: Scalar Arithmetic - Initial clang changes to support arm v8 intrinsics. Note: no clang changes for scalar intrinsics function name mangling yet. - Comprehensive test cases for added instructions To verify auto codegen, encoding, decoding, diagnosis, intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187568 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
ce7565213b315fe12074b66ac12c530ff4a95fc9 |
31-Jul-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Fixing an unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187474 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
201bddcfeb53db9f0c84df46ec4afccc65286e5c |
30-Jul-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Added the notion of Type and TargetSpecific attributes to the clang tablegen. In turn, this fixes a mistake with Ptr32, Ptr64, UPtr and SPtr attribtues generating AST nodes that are never actually used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187401 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
85c48510a6fbbdad61cae381b4d788d388d62458 |
22-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Const-correct some iterators. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186797 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
519f26bd78c4743bb56e6fb74d9c5163f73d859c |
19-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186722 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
fdeee9da9e497ef0bbebbf375c32360e9a21376b |
24-Jun-2013 |
Michael Gottesman <mgottesman@apple.com> |
[NeonIntrinsicTestEmitter] vld1/vst1 do not require the :64 hint. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184786 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
410c3f73cb0c78f72335dc712a9d887d77b8e7ce |
24-Jun-2013 |
Michael Gottesman <mgottesman@apple.com> |
[NeonIntrinsicTestEmitter] Fix incorrect FileCheck pattern where we were expecting a ',' prefix to alignment hints. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184785 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
bb5595ddf52f1be7988486630a2999d6e738db64 |
24-Jun-2013 |
Michael Gottesman <mgottesman@apple.com> |
[NeonIntrinsicTestEmitter] Add requirement to arm neon intrinsic tests for the feature long_tests. This will prevent the tests from running on normal make check. You will need to actually pass in --param run_long_tests=true to LIT in order to run these. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184784 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
15f03ea2e223631e71d4ae75db986e2951d4e092 |
18-Jun-2013 |
Reid Kleckner <reid@kleckner.net> |
Remove option emitter from clang-tblgen The CMake build was still using it because I forgot to s/CLANG/LLVM/ in the tablegen() call. The Makefile build is already using llvm-tblgen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184192 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ptParserEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
2049840b0ffe8ee4bf39051cfa8ca08440c8f667 |
12-Jun-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '1342a4ef62dd7b839c6f09348b246a4f00282f29' into merge_20130612
|
cd76539274cdc3907a61de28ba81a9e90f270a41 |
15-May-2013 |
Jim Grosbach <grosbach@apple.com> |
ARM: Improve codegen for vget_low_* and vget_high_ intrinsics. These intrinsics use the __builtin_shuffle() function to extract the low and high half, respectively, of a 128-bit NEON vector. Currently, they're defined to use bitcasts to simplify the emitter, so we get code like: uint16x4_t vget_low_u32(uint16x8_t __a) { return (uint32x2_t) __builtin_shufflevector((int64x2_t) __a, (int64x2_t) __a, 0); } While this works, it results in those bitcasts going all the way through to the IR, resulting in code like: %1 = bitcast <8 x i16> %in to <2 x i64> %2 = shufflevector <2 x i64> %1, <2 x i64> undef, <1 x i32> %zeroinitializer %3 = bitcast <1 x i64> %2 to <4 x i16> We can instead easily perform the operation directly on the input vector like: uint16x4_t vget_low_u16(uint16x8_t __a) { return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); } Not only is that much easier to read on its own, it also results in cleaner IR like: %1 = shufflevector <8 x i16> %in, <8 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3> This is both easier to read and easier for the back end to reason about effectively since the operation is obfuscating the source with bitcasts. rdar://13894163 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181865 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
a3d813a8c292bee8349ef43065dab9b344650351 |
14-May-2013 |
Reid Kleckner <reid@kleckner.net> |
Fix copy-pasto in naming of LAST_MS_INHERITANCE[_ATTR] Richard Smith pointed this out over a month ago. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181830 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
566bf620e1b52860b641e0feae910d40ce883afc |
05-May-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
ArrayRef<T>() -> None cleanup git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181140 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
83eba02c2ea333015335e2f74c4d11c5315b655d |
03-May-2013 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/master' into merge-20130502
|
4761b102de0defef110d760ff77bfc367eac93c9 |
03-May-2013 |
Douglas Gregor <dgregor@apple.com> |
Restore Richard's belief in me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181042 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
92eb7d847cb1273a63d5e3b7dc98a7c97a81b703 |
03-May-2013 |
Douglas Gregor <dgregor@apple.com> |
Use attribute argument information to determine when to parse attribute arguments as expressions. This change partly addresses a heinous problem we have with the parsing of attribute arguments that are a lone identifier. Previously, we would end up parsing the 'align' attribute of this as an expression "(Align)": template<unsigned Size, unsigned Align> class my_aligned_storage { __attribute__((align((Align)))) char storage[Size]; }; while this would parse as a "parameter name" 'Align': template<unsigned Size, unsigned Align> class my_aligned_storage { __attribute__((align(Align))) char storage[Size]; }; The code that handles the alignment attribute would completely ignore the parameter name, so the while the first of these would do what's expected, the second would silently be equivalent to template<unsigned Size, unsigned Align> class my_aligned_storage { __attribute__((align)) char storage[Size]; }; i.e., use the maximal alignment rather than the specified alignment. Address this by sniffing the "Args" provided in the TableGen description of attributes. If the first argument is "obviously" something that should be treated as an expression (rather than an identifier to be matched later), parse it as an expression. Fixes <rdar://problem/13700933>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180973 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
fa5f03052bc39d9c8f2fa8b4002597a8219760a4 |
03-May-2013 |
Douglas Gregor <dgregor@apple.com> |
Revert r180970; it's causing breakage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180972 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
3796d1539a39b999fd50bed7aea726ef6f845e17 |
03-May-2013 |
Douglas Gregor <dgregor@apple.com> |
Use attribute argument information to determine when to parse attribute arguments as expressions. This change partly addresses a heinous problem we have with the parsing of attribute arguments that are a lone identifier. Previously, we would end up parsing the 'align' attribute of this as an expression "(Align)": template<unsigned Size, unsigned Align> class my_aligned_storage { __attribute__((align((Align)))) char storage[Size]; }; while this would parse as a "parameter name" 'Align': template<unsigned Size, unsigned Align> class my_aligned_storage { __attribute__((align(Align))) char storage[Size]; }; The code that handles the alignment attribute would completely ignore the parameter name, so the while the first of these would do what's expected, the second would silently be equivalent to template<unsigned Size, unsigned Align> class my_aligned_storage { __attribute__((align)) char storage[Size]; }; i.e., use the maximal alignment rather than the specified alignment. Address this by sniffing the "Args" provided in the TableGen description of attributes. If the first argument is "obviously" something that should be treated as an expression (rather than an identifier to be matched later), parse it as an expression. Fixes <rdar://problem/13700933>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180970 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
c873b51aea82cb7232c86c0012b9f493a62ef003 |
25-Apr-2013 |
Michael Gottesman <mgottesman@apple.com> |
[neonemitter tests] Change triple of emitted tests to thumbv7s to match the target cpu being swift. Also specify the target-abi to apcs-gnu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180233 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
c327f8705ecb8753555822d479f899bd2234386d |
17-Apr-2013 |
Michael Gottesman <mgottesman@apple.com> |
[6/6] ARM Neon Intrinsic Tablegen Test Generator. Added GenerateChecksForIntrinsic method to generate FileCheck patterns for generated arm neon tests. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179644 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
fb9929ee2a0ed47d473a58b0ba5c7a7a7a095b73 |
17-Apr-2013 |
Michael Gottesman <mgottesman@apple.com> |
[5/6] ARM Neon Intrinsic Tablegen Test Generator. Changed the test generation target cpu type from cortex-a9 to swift. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179642 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
7200bd673af6b58d7d2f0c5d048050abe5b8858c |
17-Apr-2013 |
Michael Gottesman <mgottesman@apple.com> |
[4/6] ARM Neon Intrinsic Tablegen Test Generator. Added code to NeonEmitter::runTests so that GenTest gets all of the needed arguments to invoke the neon test generation methods. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179640 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
fb599a4cc5665afe8da11d438ae021a5cd8cfdbd |
17-Apr-2013 |
Michael Gottesman <mgottesman@apple.com> |
[3/6] ARM Neon Intrinsic Tablegen Test Generator. Refactored out the method InstructionTypeCode from MangleName for use in further patches which perform neon tablegen test generation. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179636 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
21e4e940ed3ad172f344a3aa3faf1d8437441313 |
16-Apr-2013 |
Michael Gottesman <mgottesman@apple.com> |
[2/6] ARM Neon Intrinsic Tablegen Test Generator. This patch causes OpInst records to be silently identified with their Non-Op inst counterparts so that the same test generation infrastructure can be used to generate tests. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179628 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
1e8058f8d90fab1b9011adf62caa52e19e61382c |
12-Apr-2013 |
Bob Wilson <bob.wilson@apple.com> |
Define Neon intrinsics as "static inline" to avoid warning. rdar://13108414 We had been defining Neon intrinsics as "static" with always_inline attributes. If you use them from an extern inline function, you get a warning, e.g.: static function 'vadd_u8' is used in an inline function with external linkage This change simply adds the inline keyword to avoid that warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179406 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
5238e40f6ea6346b6bc1505e4975c2c4ab7fde09 |
05-Apr-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
doce parsing: adding few more headerdoc tags. // rdar://12379114 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178903 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
852e3d7143cda1cdf6771c17559d38822cc296b3 |
26-Mar-2013 |
Reid Kleckner <reid@kleckner.net> |
[ms-cxxabi] Give the MS inheritance attributes a base class Required making a handful of changes to the table generator. Also adds an unspecified inheritance attribute. This opens the path for us to apply these attributes to C++ records implicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178054 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
15d68882f5fa4afae8333e75b2bfd5e2834c8aaf |
19-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2013_03_18 Conflicts: lib/Sema/SemaDeclAttr.cpp Change-Id: I05e70941163ec5a461eba43ef78f6738cd5a1e69
|
b421b56d5a83c5bcae576b714ebd9df7b745368d |
09-Mar-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
Documentation parsing. Some refactoring and code improvements per Dmtiri's comments. // rdar://12379114 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176739 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
28c1cd2138f700742235e1e720c1f7e6dc75a11a |
08-Mar-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
HeaderDoc: Support more of HeaderDoc documentation commands; top level tags such as @interface and their 2nd level tags such as @coclass, etc. // rdar://12379114 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176667 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
bd3aca04d304b9f31240b94af0aad818f6f932ab |
06-Mar-2013 |
Stephen Hines <srhines@google.com> |
Update build rules for Clang merge to version 176138. Change-Id: Ib028329a591e6175998d969f11b5404bf3f19e81
ndroid.mk
|
450b86c0c9ff8307f5145ced621914600196c500 |
06-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge commit 'b58f810669d9c17bcc025b7560de01d162856f34' into merge_20130226 Conflicts: include/clang/Basic/LangOptions.def lib/Sema/SemaDeclAttr.cpp Change-Id: Ia10b4d3b2c949a72d328cb58b113f90237d4a5d5
|
2a268f2629b49958427e8eb02f2c3d565be71acc |
05-Mar-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
doc parsing. We want to issue a strong warning when an @function comment is not followed by a function decl. // rdar://13094352 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176468 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
943f909ba72a1c9351dd421cac1413d303a719f1 |
21-Feb-2013 |
Ted Kremenek <kremenek@apple.com> |
Strip 'llvm' from 'llvm::Optional' uses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175701 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
af01bed59b2fe18fa483f5dbb86584b31eda6f98 |
01-Feb-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Comment parsing: improve the fidelity of XML output for many block commands This change introduces a 'kind' attribute for the <Para> tag, that captures the kind of the parent block command. For example: \todo Meow. used to be just <Para>Meow.</Para>, but now it is <Para kind="todo">Meow.</Para> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174216 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
a31f65b10e61ca8f2f427b1df176c10ea8a0efa2 |
01-Feb-2013 |
Michael Han <fragmentshaders@gmail.com> |
[Sema][Attr]Fix alignment attribute printing. Remove "IsMSDeclspec" argument from Align attribute since the arguments in Attr.td should only model those appear in source code. Introduce attribute Accessor, and teach TableGen to generate syntax kind accessors for Align attribute, and use those accessors to decide if an alignment attribute is a declspec attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174133 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
f843a580c4a54ca147f22422ee8ccfd2347784fc |
01-Feb-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
[Comment parsing] Add support for recognizing \headerfile command and representing it in an xml document. Patch reviewed by Dmitri Gribenko. // rdar://12397511 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174109 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
e8d411997899a87e1a9f63ad3f52b38e7931687c |
31-Jan-2013 |
Richard Trieu <rtrieu@google.com> |
Add indents to AST dumping and removed parenthesis from AST nodes. Indents were given the color blue when outputting with color. AST dumping now looks like this: Node |-Node | `-Node `-Node `-Node Compared to the previous: (Node (Node (Node)) (Node (Node))) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174022 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
8f1fa25a9e9f3fa4f2d7ecc0a08ebb08c0c4e642 |
30-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
TableGen backends: use emitSourceFileHeader() to emit the warning about file contents being autogenerated git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173979 91177308-0d34-0410-b5e6-96231b3b80d8
langASTNodesEmitter.cpp
langAttrEmitter.cpp
langCommentCommandInfoEmitter.cpp
langCommentHTMLNamedCharacterReferenceEmitter.cpp
langCommentHTMLTagsEmitter.cpp
|
5bd1e5ba000023910ad986a16dd16d7ca914750a |
30-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Comment parsing: resolve more named character references This reimplements r173850 with a better approach: (1) use a TableGen-generated matcher instead of doing a linear search; (2) avoid allocations for new strings by converting code points to string iterals with TableGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173931 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
langCommentHTMLNamedCharacterReferenceEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
8f3aacc8c4849c9e0e7a236954725fffdeb917a6 |
29-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Propagate the spelling list index for an attribute across template instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173768 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
5cd532ca0bc1cb8110e24586d064f72332d8b767 |
29-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Replace AS_MSTypespec with AS_Keyword, for representing any attribute spelled as a keyword. Rationalize existing attributes to use it as appropriate, and to not lie about some __declspec attributes being GNU attributes. In passing, remove a gross hack which was discarding attributes which we could handle. This results in us actually respecting the __pascal keyword again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173746 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
7d470531fffc8072c358ec0ef8192fd02756fab1 |
27-Jan-2013 |
Michael Han <fragmentshaders@gmail.com> |
Add the missing line return to align parameters of printPretty. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173597 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
51d8c52ad36129760eaa586f85176037e2cd0d0e |
24-Jan-2013 |
Michael Han <fragmentshaders@gmail.com> |
PR14922: when printing an attribute, use the real syntax of the attribute (GNU, C++11, MS Declspec) instead of hardcoded GNU syntax. Introduce a spelling index to Attr class, which is an index into the attribute spelling list of an attribute defined in Attr.td. This index will determine the actual spelling used by an attribute, as it incorporates both the syntax and naming of the attribute. When constructing an attribute AST node, the spelling index is computed based on attribute kind, scope (if it's a C++11 attribute), and name, then passed to Attr that will use the index to print itself. Thanks to Richard Smith for the idea and review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173358 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
15bb58edc9d053aa49c28167deb41ff0409ddabc |
21-Jan-2013 |
Stephen Hines <srhines@google.com> |
Merge commit 'd130fd2e141f1fef412c2d58e7385370801bd718' into merge-llvm Conflicts: lib/Basic/Targets.cpp Change-Id: I90a669a33ffe4de8b32c8459016fd0b2a55da0ad
|
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f |
12-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove useless 'llvm::' qualifier from names like StringRef and others that are brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
98e7369d9ef5e53964cc8ae48ec2dfcf6c4633c0 |
10-Jan-2013 |
Jordan Rose <jordan_rose@apple.com> |
Error if an anonymous DiagGroup is referenced multiple times. Not only is this inefficient for TableGen, it's annoying for maintenance when renaming warning flags (unusual) or adding those flags to a group (more likely). This uses the new fix-it infrastructure for LLVM's SourceMgr/SMDiagnostic, as well as a few changes to TableGen to track more source information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172087 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
975b1203baeb04b13cdaa017b7fdd384f5adcad0 |
07-Jan-2013 |
Alexander Kornienko <alexfh@google.com> |
Fixed a number of -Wcovered-switch-default diagnostics in tools/clang/include/clang/AST/AttrDump.inc git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171768 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
c3cd2b0d538e4db78f1bcbedd0085e2005ce5c51 |
07-Jan-2013 |
Alexander Kornienko <alexfh@google.com> |
Implement Attr dumping for -ast-dump. http://llvm-reviews.chandlerc.com/D234 Patch by Philip Craig! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171760 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
30bc63ffbab71522e5c5a9adc5054e462a0cbf65 |
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort the #include lines under utils/... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169245 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
ptParserEmitter.cpp
ableGen.cpp
|
350aea7b794e4824f61d92f96140fbdcc0393588 |
15-Nov-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Reading expressions from attributes should be done using ReadExpr(), not ReadExpr(). Also add a test case making sure the thread safety attributes work as expected when they come from a PCH. Fixes rdar://12584141 & http://llvm.org/PR13982 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168017 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
6b2b8977bc8afd6b3e8399b7e28c249e9482f240 |
25-Oct-2012 |
Joerg Sonnenberger <joerg@bec.de> |
Don't require exception handling for clang-tblgen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166713 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
|
38859ee4a3c1253d5a45ed3f6b52e77702bfd913 |
25-Oct-2012 |
Joerg Sonnenberger <joerg@bec.de> |
Don't throw exceptions in clang-tblgen by switching to PrintFatalError. Add locations in a number of places, where they are available for free. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166691 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
langSACheckersEmitter.cpp
eonEmitter.cpp
ptParserEmitter.cpp
|
c635710bcbb9598acd5a14647ba7ca28bee89a68 |
23-Oct-2012 |
Michael J. Spencer <bigcheesegs@gmail.com> |
[Options] Add prefixes to options. Each option has a set of prefixes. When matching an argument such as -funroll-loops. First the leading - is removed as it is a prefix. Then a lower_bound search for "funroll-loops" is done against the option table by option name. From there each option prefix + option name combination is tested against the argument. This allows us to support Microsoft style options where both / and - are valid prefixes. It also simplifies the cases we already have where options come in both - and -- forms. Almost every option for gnu-ld happens to have this form. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166444 91177308-0d34-0410-b5e6-96231b3b80d8
ptParserEmitter.cpp
|
b43d87b0646aa04951056c7e0d1ab9a58eb09f66 |
12-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
Remove pointless classof()'s. Updates to llvm/Support/Casting.h have rendered these classof()'s irrelevant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165770 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
dbd91975742f4a6e797887f861c414cdd024255c |
10-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
tblgen: Build clang-tblgen without RTTI. clang-tblgen no longer needs RTTI! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165650 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
|
1ab46323089f9a836a510521aab55ff958b67150 |
10-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
tblgen: Use LLVM-style RTTI in clang-tblgen git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165649 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
langDiagnosticsEmitter.cpp
langSACheckersEmitter.cpp
ptParserEmitter.cpp
|
de3832b123c761e1dac39ba99c5d67151a2e05bc |
03-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
tblgen: Migrate clang-tblgen to new TableGenMain API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165167 91177308-0d34-0410-b5e6-96231b3b80d8
ableGen.cpp
|
0bd9838751384181ff387f2fb346896792b89617 |
22-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Comment sema: warn when comment has \deprecated but declaration does not have a deprecation attribute ('deprecated', 'availability' or 'unavailable'). This warning is under a separate flag, -Wdocumentation-deprecated-sync, so it can be turned off easily while leaving other -Wdocumentation warnings on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164467 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
abcf0dccc9cd4c802f4e7797bf452c6808d2226f |
13-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Comment parsing: handle \deprecated command. It is a block command, but it should be fine to use it without further explanations in the attached paragraph, so the warning about empty paragraph was turned off for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163836 91177308-0d34-0410-b5e6-96231b3b80d8
langCommentCommandInfoEmitter.cpp
|
e5cc4c967178669dd19832bc0fb03b293d5d969f |
11-Sep-2012 |
Stephen Hines <srhines@google.com> |
Merge up through LLVM r163557. New CommentCommandInfo and CommentHTMLTagsProperties targets for TableGen. Updated Android.mk source files for AST, StaticAnalyzer/Checkers, StaticAnalyzer/Core, driver, and TableGen. Split Rewrite/Android.mk into Core and Frontend sub-libraries. Change-Id: Ia114939e242a79570c41a519f4f3cc712a0ed9a8
ndroid.mk
|
9f0b1324a5352713337c75ef4a5acffd96609c6c |
11-Sep-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge-2012_09_10
|
e4330a302ac20b41b9800267ebd4b5b01f8553f8 |
10-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Comment AST: TableGen'ize all command lists in CommentCommandTraits.cpp. Now we have a list of all commands. This is a good thing in itself, but it also enables us to easily implement typo correction for command names. With this change we have objects that contain information about each command, so it makes sense to resolve command name just once during lexing (currently we store command names as strings and do a linear search every time some property value is needed). Thus comment token and AST nodes were changed to contain a command ID -- index into a tables of builtin and registered commands. Unknown commands are registered during parsing and thus are also uniformly assigned an ID. Using an ID instead of a StringRef is also a nice memory optimization since ID is a small integer that fits into a common bitfield in Comment class. This change implies that to get any information about a command (even a command name) we need a CommandTraits object to resolve the command ID to CommandInfo*. Currently a fresh temporary CommandTraits object is created whenever it is needed since it does not have any state. But with this change it has state -- new commands can be registered, so a CommandTraits object was added to ASTContext. Also, in libclang CXComment has to be expanded to include a CXTranslationUnit so that all functions working on comment AST nodes can get a CommandTraits object. This breaks binary compatibility of CXComment APIs. Now clang_FullComment_getAsXML(CXTranslationUnit TU, CXComment CXC) doesn't need TU parameter anymore, so it was removed. This is a source-incompatible change for this C API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163540 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
langCommentCommandInfoEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
31ba6135375433b617a8587ea6cc836a014ebd86 |
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Dont cast away const needlessly. Found by gcc48 -Wcast-qual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163325 91177308-0d34-0410-b5e6-96231b3b80d8
ptParserEmitter.cpp
|
c24a76e376a767edc14e60bed716396a84cb127a |
31-Aug-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Comment HTML tag name machers: move from StringSwitch to an efficient TableGen-generated string matcher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162969 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
langCommentHTMLTagsEmitter.cpp
ableGen.cpp
ableGenBackends.h
|
80ea4bc944eb01c220eeaa004b21ad709ba928e1 |
24-Aug-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2 Conflicts: lib/Sema/SemaDeclAttr.cpp Change-Id: If47d0d39459760017258502b4d9e859ac36a273b
|
0dae729a69c4fccc38c97d5dd44f7b20bb20de1c |
16-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't constant-fold when pretty-printing alignment attribute. This fixes a potential crasher -- Context is sometimes a null reference (!!) here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162007 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
b27660a733d420967371bbf578a75db21116895c |
14-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Placate the mingw32 buildbot by suffixing 64-bit constants with ULL. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161831 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
f8ee6bc1ef0eec8e22b413dfc2baa3cfa4f19f91 |
14-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix undefined behavior (and wrong code, as far as I can tell) in NEON builtin tablegen code, found by -fcatch-undefined-behavior. I would appreciate if someone more familiar with the NEON code could point me in the direction of how to write a test for this. We appear to have essentially no test coverage whatsoever for these builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161827 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
bb5185c0ca3de4e7d91d011a83c902d7b02a2a1a |
10-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Fix horrible regression in control of warnings caused by introduction of -Wpedantic. While -Wpedantic was reasonable, -Wno-pedantic would turn off a bunch of warnings that are on by default. This counters the intention of this warning flag. To fix this, -Wpedantic now includes extentions that are not on by default. The remaining warnings will manifest anyway, and won't accidentally get turned off by -Wno-pedantic. Fixes <rdar://problem/12076105> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161695 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
7094dee95f8c915d27097ac18b47d1ef31fd72ed |
10-Aug-2012 |
Joerg Sonnenberger <joerg@bec.de> |
Add missing cctype includes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161660 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
4a535368eb4fca10b05c442e04725747dbf76081 |
07-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Enhance ClangDiagnosticsEmitter to reject diagnostics that are errors that are also included in warning groups. Warning groups can only contain warnings, because only warnings can be mapped to errors or ignored. This caught a few diagnostics that were incorrectly in diagnostic groups, and could have resulted in a compiler crash when those diagnostic groups were mapped. Fixes <rdar://problem/12044436> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161389 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
66981c7ca1fcef529d7d5e5c53b07020ff23d8e3 |
03-Aug-2012 |
Jim Grosbach <grosbach@apple.com> |
TableGen: Remove extraneous \ character from arm_neon.h definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161244 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
08fc8eb5a1cc9c01af67e016ab21c9b905711eb1 |
03-Aug-2012 |
Shih-wei Liao <sliao@google.com> |
Merge with Clang upstream r160673 (Jul 24th 2012) Conflicts: lib/Sema/SemaDeclAttr.cpp Change-Id: I37f02f20642a037b9da8d35fefa01986cd250b14
|
cc4748a0cb633050fdfd0d8ba8ff4f8187a9e844 |
19-Jul-2012 |
Michael Han <Michael.Han@autodesk.com> |
Remove an unused header git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160492 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
e8cf7d143446c45568bb7c9a6fbd8f32ca6ae93e |
07-Jul-2012 |
Ted Kremenek <kremenek@apple.com> |
Re-apply r159875 with fixes. - Split pedantic driver flag test into separate test file, and XFAIL on cygwin,mingw32 - Fix bug in tablegen logic where a missing '{' caused errors to be included in -Wpedantic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159892 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
3b4c53259603ba389373362f476648b2b1ab9eca |
07-Jul-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert rr159875, "Implement -Wpedantic and --no-pedantic to complement -Weverything." It broke several builds. I suspect FileCheck might match assertion failure, even if clang/test/Misc/warning-flags.c passed the test. > 0. Program arguments: bin/./clang -### -pedantic -Wpedantic clang/test/Driver/warning-options.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159886 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
25570a94ca6b706d19812b0f8df25a63ec3445c8 |
07-Jul-2012 |
Ted Kremenek <kremenek@apple.com> |
Implement -Wpedantic and --no-pedantic to complement -Weverything. This patch introduces some magic in tablegen to create a "Pedantic" diagnostic group which automagically includes all warnings that are extensions. This allows a user to suppress specific warnings traditionally under -pedantic used an ordinary warning flag. This also allows users to use #pragma to silence specific -pedantic warnings, or promote them to errors, within blocks of text (just like any other warning). -Wpedantic is NOT an alias for -pedantic. Instead, it provides another way to (a) activate -pedantic warnings and (b) disable them. Where they differ is that -pedantic changes the behavior of the preprocessor slightly, whereas -Wpedantic does not (it just turns on the warnings). The magic in the tablegen diagnostic emitter has to do with computing the minimal set of diagnostic groups and diagnostics that should go into -Wpedantic, as those diagnostics that already members of groups that themselves are (transitively) members of -Wpedantic do not need to be included in the Pedantic group directly. I went back and forth on whether or not to magically generate this group, and the invariant was that we always wanted extension warnings to be included in -Wpedantic "some how", but the bookkeeping would be very onerous to manage by hand. -no-pedantic (and --no-pedantic) is included for completeness, and matches many of the same kind of flags the compiler already supports. It does what it says: cancels out -pedantic. One discrepancy is that if one specifies --no-pedantic and -Weverything or -Wpedantic the pedantic warnings are still enabled (essentially the -W flags win). We can debate the correct behavior here. Along the way, this patch nukes some code in TextDiagnosticPrinter.cpp and CXStoredDiagnostic.cpp that determine whether to include the "-pedantic" flag in the warning output. This is no longer needed, as all extensions now have a -W flag. This patch also significantly reduces the number of warnings not under flags from 229 to 158 (all extension warnings). That's a 31% reduction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159875 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
8d3ba23f2d9e6c87794d059412a0808c9cbacb25 |
06-Jul-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Implement AST classes for comments, a real parser for Doxygen comments and a very simple semantic analysis that just builds the AST; minor changes for lexer to pick up source locations I didn't think about before. Comments AST is modelled along the ideas of HTML AST: block and inline content. * Block content is a paragraph or a command that has a paragraph as an argument or verbatim command. * Inline content is placed within some block. Inline content includes plain text, inline commands and HTML as tag soup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159790 91177308-0d34-0410-b5e6-96231b3b80d8
ableGen.cpp
|
41de13b3b6f7bb92d8d7aca965472086eee463cf |
03-Jul-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
clang/utils/TableGen/ClangAttrEmitter.cpp: Fix abuse of StringRef (from getValueAsString()). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159662 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
8571897a792fcbc26d86c70d6c3ef835e75af984 |
20-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Fix a thinko and a stray debugging hunk in my attributes patch. Thanks to Jordan Rose and Richard Smith for catching these. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158826 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
8e083e71d48f7f4d6ef40c00531c2e14df745486 |
20-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Reapply r158700 and fixup patches, minus one hunk that slipped through and caused a crash in an obscure case. On the plus side, it caused me to catch another bug by inspection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158767 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
3532936f4f50c15fcec4d00f4cbb81a7a9dd9b7e |
19-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r158700 and dependent patches r158716, r158717, and r158731. The original r158700 caused crashes in the gcc test suite, g++.abi/vtable3a.C among others. It also caused failures in the libc++ test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158749 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
b5aa17c5a118d371db49eb0af8866829b1aff678 |
19-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Remove redundant uses of SmallString git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158731 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
c20c4e79ae1957ec5a88d7653a0aeda24b67ae3a |
19-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Stop abusing StringRef. Fixes the Windows build. I've also removed the duplicate check for PARSED_ATTR since it seems unnecessary, and would have made the code more complicated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158716 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
bfcb037a3479de4a453a8275c64ae441c22d43f9 |
19-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Improve the specification of spellings in Attr.td. Note that this is mostly a structural patch that handles the change from the old spelling style to the new one. One consequence of this is that all AT_foo_bar enum values have changed to not be based off of the first spelling, but rather off of the class name, so they are now AT_FooBar and the like (a straw poll on IRC showed support for this). Apologies for code churn. Most attributes have GNU spellings as a temporary solution until everything else is sorted out (such as a Keyword spelling, which I intend to add if someone else doesn't beat me to it). This is definitely a WIP. I've also killed BaseCheckAttr since it was unused, and I had to go through every attribute anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158700 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
93f95f2a2cbb6bb3d17bfb5fc74ce1cccea751b6 |
18-Jun-2012 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Handle C++11 attribute namespaces automatically. Now, as long as the 'Namespaces' variable is correct inside Attr.td, the generated code will correctly admit a C++11 attribute only when it has the appropriate namespace(s). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158661 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
3cc509b5ac0e99ef44c1bf8b57cd403b546abc3d |
13-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make clang-tblgen backends functions instead of TableGenBackends. Get rid of a bunch of header files. TableGen output should be unaffected. Patch by Sean Silva! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158388 91177308-0d34-0410-b5e6-96231b3b80d8
langASTNodesEmitter.cpp
langASTNodesEmitter.h
langAttrEmitter.cpp
langAttrEmitter.h
langDiagnosticsEmitter.cpp
langDiagnosticsEmitter.h
langSACheckersEmitter.cpp
langSACheckersEmitter.h
eonEmitter.cpp
eonEmitter.h
ptParserEmitter.cpp
ptParserEmitter.h
ableGen.cpp
ableGenBackends.h
|
b4a542549c2e0c9eeb6ece3f95767ccdd141fa3e |
30-May-2012 |
Jim Grosbach <grosbach@apple.com> |
TableGen: Remove extraneous '\' at EOL in generated tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157700 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
31c195ac0f3869e742d42f9d02b6cd33442fb630 |
15-May-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix our handling of visibility in explicit template instantiations. * Don't copy the visibility attribute during instantiations. We have to be able to distinguish struct HIDDEN foo {}; template<class T> DEFAULT void bar() {} template DEFAULT void bar<foo>(); from struct HIDDEN foo {}; template<class T> DEFAULT void bar() {} template void bar<foo>(); * If an instantiation has an attribute, it takes precedence over an attribute in the template. * With instantiation attributes handled with the above logic, we can now select the minimum visibility when looking at template arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156821 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
703d412d192397b6fa17c5d99a4c1389aa2be2f3 |
12-May-2012 |
Douglas Gregor <dgregor@apple.com> |
Teach the parser to deal with multiple spellings for the same attribute, rather than requiring multiple cases in consumers of this information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156666 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
667381b21f75d6964bbdf6af143308a02b9198a8 |
09-May-2012 |
Jim Grosbach <grosbach@apple.com> |
ARM: Support marking intrinsic definitions as 'unavailable' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156490 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
eonEmitter.h
|
46484770fe264fba24f7a9f608a3b7c3342690aa |
04-May-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove DiagGroups from notes, and add a TableGen assertion to catch them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156192 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
0c19b3c38e356058aeb2424d175eae232bf014d9 |
02-May-2012 |
Douglas Gregor <dgregor@apple.com> |
Replace the StringSwitch in AttributeList::getKind() with a TableGen-generated StringMatcher, for a 1.2% speedup in -fparse-only time in <rdar://problem/11004361>. Thanks to Benjamin for pointing me at StringMatcher! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156003 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
331d2ec7cd4c6b5e29cc61fcdc617bf708223cd4 |
02-May-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of 'ignored' attributes, so that all attributes we accept are not modeled somehow via Attr.td. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155998 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
3e7d31aa6050a2fb6cb35912793eb3f1b3a22030 |
02-May-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of an attribute that has no direct representation as an AST node, and fold a number of such attributes into Attr.td. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155995 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
d6268ffe94e5159ef41c61fe7f750c22546d3ef3 |
02-May-2012 |
Douglas Gregor <dgregor@apple.com> |
Revert my optimization to AttributeList::getKind() in r155987; Benjamin has suggested a better approach. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155989 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
b6dd6055a4fb8646805ba8f385aa7c99acd47817 |
02-May-2012 |
Douglas Gregor <dgregor@apple.com> |
Replace the StringSwitch in AttributeList::getKind(const IdentifierInfo *) with a static StringMap, improving -fsyntax-only performance by 1% for the example in <rdar://problem/11004361>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155987 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
d316862f4fb281ec08a2e45cd3e5580574adb889 |
24-Mar-2012 |
Shih-wei Liao <sliao@google.com> |
Merge branch 'upstream' into sliao_d
|
e53ac8aea2d9e8bbb11191398ea3cc2edb2d171a |
07-Mar-2012 |
Michael Han <Michael.Han@autodesk.com> |
Refactor Clang sema attribute handling. This submission improves Clang sema handling by using Clang tablegen to generate common boilerplate code. As a start, it implements AttributeList enumerator generation and case statements for AttributeList::getKind. A new field "SemaHandler" is introduced in Attr.td and by default set to 1 as most of attributes in Attr.td have semantic checking in Sema. For a small number of attributes that don't appear in Sema, the value is set to 0. Also there are a small number of attributes that only appear in Sema but not in Attr.td. Currently these attributes are still hardcoded in Sema AttributeList. Reviewed by Delesley Hutchins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152169 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
langAttrEmitter.h
ableGen.cpp
|
d42236e9d5aa8881bee103d923475daffc791f38 |
06-Mar-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[tablegen] Make sure that the code that is determining the order of warning groups is shared to avoid any "misalignment" if indices. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152074 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
91932089c31e1233f0c478b03412e90a65e07ad2 |
05-Mar-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge-20120305 Conflicts: lib/Basic/Targets.cpp Change-Id: Ib76c138030a701355ce39a6eda1a89a79f401667
|
d49cb20288b2dbc222aaf5673c1a4738c151b7bf |
15-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Store the warning option corresponding to a diagnostics as an index into the option table instead of storing the name. Another 8 bytes + relocation removed from every diagnostic on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150615 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
36d592718ff342f762e32cbde73d1113f88cb275 |
13-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
drop more llvm:: prefixes on SmallString<> More cleanup after r149799. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150380 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
b880609697b3db5ae3df77387532f8b0cec89274 |
10-Feb-2012 |
Daniel Dunbar <daniel@zuster.org> |
Remove stray semi-colon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150231 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
f94d392847fb183b3012dbcb2e372b586c80b9fb |
09-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill the brief and full explanation fields from StaticDiagInfoRec. They were unused and wasted space for nothing. - per PR11952. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150199 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
5bbc385ad2d8e487edfbc2756eaf4fb0b920cfe4 |
06-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move instantiateTemplateAttribute into the sema namespace, make helpers static. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149864 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
23323e0253716ff03c95a00fb6903019daafe3aa |
20-Jan-2012 |
DeLesley Hutchins <delesley@google.com> |
Delayed template instantiation of late-parsed attributes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148595 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
7b9ff0c09025dcbe48ec7db71330e2066d1e1863 |
20-Jan-2012 |
DeLesley Hutchins <delesley@google.com> |
Instantiate dependent attributes when instantiating templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148592 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
langAttrEmitter.h
ableGen.cpp
|
7530c034c0c71a64c5a9173206d9742ae847af8b |
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148292 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
561d3abc881033776ece385a01a510e1cbc1fa92 |
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary default cases in switches over enums. This allows -Wswitch-enum to find switches that need updating when these enums are modified. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148281 91177308-0d34-0410-b5e6-96231b3b80d8
ableGen.cpp
|
eb666737bae8a5af8fb6b485cd15e2e62caa5caf |
13-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
CodeInit was replaced by StringInit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148095 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
0b536f328121d5bf8bdf7e98887410cde131ac39 |
07-Jan-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused include of VectorExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147737 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
9082cddf28e03c2f718e92457e2d9c7390056b2d |
20-Dec-2011 |
Bob Wilson <bob.wilson@apple.com> |
Relax type checking for a few Neon intrinsics. <rdar://problem/10538555> Not long ago, I tightened up the type checking for pointer arguments of Neon intrinsics to match the specifications provided by ARM. One consequence was that it became impossible to access the unaligned versions of a few Neon load/store operations. Since there are just a few of these intrinsics where it makes a difference, I think it's better to relax the type checking than to either introduce new non-standard unaligned intrinsics or to disallow intrinsics for the unaligned operations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146963 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
99ba9e3bd70671f3441fb974895f226a83ce0e66 |
20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146959 91177308-0d34-0410-b5e6-96231b3b80d8
ableGen.cpp
|
2a710c84db1ebf0c16cba0ff121ca8e15f045a07 |
25-Nov-2011 |
Logan Chien <loganchien@google.com> |
Merge with clang upstream r145117 (Nov 25th 2011) Change-Id: Id4fde985342e3c81f13887e8728bd94b82523642
|
1bea8807bcd2be10bf6309a3a848489434464ced |
19-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Add support for pretty-printing attributes, from Richard Membarth! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145002 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
4648255cebd2fc7c18293c1f93afd6e9add9cccc |
16-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Fix Neon builtin pointer argument checking for "sret" builtins. The code for checking Neon builtin pointer argument types was assuming that there would only be one pointer argument. But, for vld2-4 builtins, the first argument is a special sret pointer where the result will be stored. So, instead of scanning all the arguments to find a pointer, have TableGen figure out the index of the pointer argument that needs checking. That's better than scanning all the arguments regardless. <rdar://problem/10448804> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144834 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
037ad1b8f00b80aa76e73e3118133e9a59fd177e |
15-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Validate DiagGroup names in TableGen, they're used as command line arguments so we don't want shell meta chars in there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144645 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
c4202bafb6523f9cfbe939d9c352be1720928241 |
08-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Check pointer types for arguments of Neon load/store macros. rdar://9958031 The Neon load/store intrinsics need to be implemented as macros to avoid hiding alignment attributes on the pointer arguments, and the macros can only evaluate those pointer arguments once (in case they have side effects), so it has been hard to get the right type checking for those pointers. I tried various alternatives in the arm_neon.h header, but it's much more straightforward to just check directly in Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144075 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
2d21c996bf9c26386f475c58adad2ef5851117c6 |
08-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Clean up type flags for overloaded Neon builtins. No functional change. This patch just adds a simple NeonTypeFlags class to replace the various hardcoded constants that had been used until now. Unfortunately I couldn't figure out a good way to avoid duplicating that class between clang and TableGen, but since it's small and rarely changes, that's not so bad. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144054 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
eonEmitter.h
|
aabc56f739632de543322fe6a8f36f22f7811cfd |
06-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use StringRef's case transformation methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143889 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
e4bacce68ed11612df3663f5c1db488911967b83 |
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Update the CMake build for clang-tblgen to reflect that it directly depends on the Support library rather than relying on TableGen's transitive dependency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143532 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
6f9f03ef370ad48ece0c5d10edda28f39ccadb5d |
08-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Check pointer types for arguments of Neon load/store macros. rdar://9958031 The Neon load/store intrinsics need to be implemented as macros to avoid hiding alignment attributes on the pointer arguments, and the macros can only evaluate those pointer arguments once (in case they have side effects), so it has been hard to get the right type checking for those pointers. I tried various alternatives in the arm_neon.h header, but it's much more straightforward to just check directly in Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144075 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
da95f73b59f9af964e33725c515139d34c90c863 |
08-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Clean up type flags for overloaded Neon builtins. No functional change. This patch just adds a simple NeonTypeFlags class to replace the various hardcoded constants that had been used until now. Unfortunately I couldn't figure out a good way to avoid duplicating that class between clang and TableGen, but since it's small and rarely changes, that's not so bad. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144054 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
eonEmitter.h
|
90c7892b699c5405a81bcc339432ba2f4b50e0d6 |
06-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use StringRef's case transformation methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143889 91177308-0d34-0410-b5e6-96231b3b80d8
langDiagnosticsEmitter.cpp
|
d4e85faaf36c39a34a622e54370535854c52d9e9 |
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Update the CMake build for clang-tblgen to reflect that it directly depends on the Support library rather than relying on TableGen's transitive dependency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143532 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
fe6bd6dc51777802a0118521b9039981a0e6a806 |
21-Oct-2011 |
Logan Chien <loganchien@google.com> |
Apply changes to migrate to upstream Oct 20th 2011 (r142531) Change-Id: I32cdb5da2c07c84e01f42b4e87161196f468806a
ndroid.mk
|
d1af3b901a2176bc7f4b7e2fadcd25110576b454 |
14-Oct-2011 |
Bob Wilson <bob.wilson@apple.com> |
Add __nodebug__ attribute to functions in arm_neon.h This matches what we do for Intel vector intrinsics. <rdar://problem/10280207> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141958 91177308-0d34-0410-b5e6-96231b3b80d8
eonEmitter.cpp
|
a6b8b2c09610b8bc4330e948ece8b940c2386406 |
10-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation refactoring: - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8
langAttrEmitter.cpp
|
d7c8556cc1bfad58c27a1bd6c8c650f86e257b99 |
08-Oct-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Make clang-tblgen's Makefile independent of Clang's top-level Makefile, to avoid having to make it available for the cross build when it builds only clang-tblgen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141453 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
51d7777a21b9706d503496c650af06f80d278c1a |
06-Oct-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Add the Clang tblgen backends to Clang, and flip the switch to cause the build systems to use clang-tblgen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141291 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
langASTNodesEmitter.cpp
langASTNodesEmitter.h
langAttrEmitter.cpp
langAttrEmitter.h
langDiagnosticsEmitter.cpp
langDiagnosticsEmitter.h
langSACheckersEmitter.cpp
langSACheckersEmitter.h
akefile
eonEmitter.cpp
eonEmitter.h
ptParserEmitter.cpp
ptParserEmitter.h
ableGen.cpp
|