• Home
  • History
  • Annotate
  • only in /external/clang/utils/TableGen/
History log of /external/clang/utils/TableGen/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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